Version Description
==
- September 2018 by Ipstenu
- Reboot and rebranding - all the good, none of the bad.
Download this release
Release Info
Developer | Ipstenu |
Plugin | LezWatch.TV News and Information |
Version | 1.0.0 |
Comparing to | |
See all releases |
Version 1.0.0
- assets/birthday.jpg +0 -0
- assets/css/images/ui-icons_444444_256x240.png +0 -0
- assets/css/images/ui-icons_555555_256x240.png +0 -0
- assets/css/images/ui-icons_777620_256x240.png +0 -0
- assets/css/images/ui-icons_777777_256x240.png +0 -0
- assets/css/images/ui-icons_cc0000_256x240.png +0 -0
- assets/css/images/ui-icons_ffffff_256x240.png +0 -0
- assets/css/jquery-ui.css +1312 -0
- assets/css/jquery-ui.min.css +7 -0
- assets/js/otd-datepicker.js +9 -0
- changelog.txt +4 -0
- gutenberg/_main.php +134 -0
- gutenberg/died-on-this-day/index.js +40 -0
- gutenberg/last-death/index.js +30 -0
- gutenberg/last-death/style.css +5 -0
- gutenberg/of-the-day/index.js +46 -0
- gutenberg/of-the-day/style.css +3 -0
- lezwatchtv-main.php +391 -0
- phpcs.xml.dist +8 -0
- readme.txt +107 -0
- uninstall.php +8 -0
- widgets/_main.php +10 -0
- widgets/last-death.php +85 -0
- widgets/of-the-day.php +107 -0
- widgets/on-this-day.php +103 -0
- widgets/statistics.php +105 -0
- widgets/this-year.php +105 -0
assets/birthday.jpg
ADDED
Binary file
|
assets/css/images/ui-icons_444444_256x240.png
ADDED
Binary file
|
assets/css/images/ui-icons_555555_256x240.png
ADDED
Binary file
|
assets/css/images/ui-icons_777620_256x240.png
ADDED
Binary file
|
assets/css/images/ui-icons_777777_256x240.png
ADDED
Binary file
|
assets/css/images/ui-icons_cc0000_256x240.png
ADDED
Binary file
|
assets/css/images/ui-icons_ffffff_256x240.png
ADDED
Binary file
|
assets/css/jquery-ui.css
ADDED
@@ -0,0 +1,1312 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*! jQuery UI - v1.12.1 - 2017-02-15
|
2 |
+
* http://jqueryui.com
|
3 |
+
* Includes: draggable.css, core.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css
|
4 |
+
* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=base&cornerRadiusShadow=8px&offsetLeftShadow=0px&offsetTopShadow=0px&thicknessShadow=5px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=666666&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cc0000&fcError=5f3f3f&borderColorError=f1a899&bgTextureError=flat&bgColorError=fddfdf&iconColorHighlight=777620&fcHighlight=777620&borderColorHighlight=dad55e&bgTextureHighlight=flat&bgColorHighlight=fffa90&iconColorActive=ffffff&fcActive=ffffff&borderColorActive=003eff&bgTextureActive=flat&bgColorActive=007fff&iconColorHover=555555&fcHover=2b2b2b&borderColorHover=cccccc&bgTextureHover=flat&bgColorHover=ededed&iconColorDefault=777777&fcDefault=454545&borderColorDefault=c5c5c5&bgTextureDefault=flat&bgColorDefault=f6f6f6&iconColorContent=444444&fcContent=333333&borderColorContent=dddddd&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=444444&fcHeader=333333&borderColorHeader=dddddd&bgTextureHeader=flat&bgColorHeader=e9e9e9&cornerRadius=3px&fwDefault=normal&fsDefault=1em&ffDefault=Arial%2CHelvetica%2Csans-serif
|
5 |
+
* Copyright jQuery Foundation and other contributors; Licensed MIT */
|
6 |
+
|
7 |
+
.ui-draggable-handle {
|
8 |
+
-ms-touch-action: none;
|
9 |
+
touch-action: none;
|
10 |
+
}
|
11 |
+
/* Layout helpers
|
12 |
+
----------------------------------*/
|
13 |
+
.ui-helper-hidden {
|
14 |
+
display: none;
|
15 |
+
}
|
16 |
+
.ui-helper-hidden-accessible {
|
17 |
+
border: 0;
|
18 |
+
clip: rect(0 0 0 0);
|
19 |
+
height: 1px;
|
20 |
+
margin: -1px;
|
21 |
+
overflow: hidden;
|
22 |
+
padding: 0;
|
23 |
+
position: absolute;
|
24 |
+
width: 1px;
|
25 |
+
}
|
26 |
+
.ui-helper-reset {
|
27 |
+
margin: 0;
|
28 |
+
padding: 0;
|
29 |
+
border: 0;
|
30 |
+
outline: 0;
|
31 |
+
line-height: 1.3;
|
32 |
+
text-decoration: none;
|
33 |
+
font-size: 100%;
|
34 |
+
list-style: none;
|
35 |
+
}
|
36 |
+
.ui-helper-clearfix:before,
|
37 |
+
.ui-helper-clearfix:after {
|
38 |
+
content: "";
|
39 |
+
display: table;
|
40 |
+
border-collapse: collapse;
|
41 |
+
}
|
42 |
+
.ui-helper-clearfix:after {
|
43 |
+
clear: both;
|
44 |
+
}
|
45 |
+
.ui-helper-zfix {
|
46 |
+
width: 100%;
|
47 |
+
height: 100%;
|
48 |
+
top: 0;
|
49 |
+
left: 0;
|
50 |
+
position: absolute;
|
51 |
+
opacity: 0;
|
52 |
+
filter:Alpha(Opacity=0); /* support: IE8 */
|
53 |
+
}
|
54 |
+
|
55 |
+
.ui-front {
|
56 |
+
z-index: 100;
|
57 |
+
}
|
58 |
+
|
59 |
+
|
60 |
+
/* Interaction Cues
|
61 |
+
----------------------------------*/
|
62 |
+
.ui-state-disabled {
|
63 |
+
cursor: default !important;
|
64 |
+
pointer-events: none;
|
65 |
+
}
|
66 |
+
|
67 |
+
|
68 |
+
/* Icons
|
69 |
+
----------------------------------*/
|
70 |
+
.ui-icon {
|
71 |
+
display: inline-block;
|
72 |
+
vertical-align: middle;
|
73 |
+
margin-top: -.25em;
|
74 |
+
position: relative;
|
75 |
+
text-indent: -99999px;
|
76 |
+
overflow: hidden;
|
77 |
+
background-repeat: no-repeat;
|
78 |
+
}
|
79 |
+
|
80 |
+
.ui-widget-icon-block {
|
81 |
+
left: 50%;
|
82 |
+
margin-left: -8px;
|
83 |
+
display: block;
|
84 |
+
}
|
85 |
+
|
86 |
+
/* Misc visuals
|
87 |
+
----------------------------------*/
|
88 |
+
|
89 |
+
/* Overlays */
|
90 |
+
.ui-widget-overlay {
|
91 |
+
position: fixed;
|
92 |
+
top: 0;
|
93 |
+
left: 0;
|
94 |
+
width: 100%;
|
95 |
+
height: 100%;
|
96 |
+
}
|
97 |
+
.ui-resizable {
|
98 |
+
position: relative;
|
99 |
+
}
|
100 |
+
.ui-resizable-handle {
|
101 |
+
position: absolute;
|
102 |
+
font-size: 0.1px;
|
103 |
+
display: block;
|
104 |
+
-ms-touch-action: none;
|
105 |
+
touch-action: none;
|
106 |
+
}
|
107 |
+
.ui-resizable-disabled .ui-resizable-handle,
|
108 |
+
.ui-resizable-autohide .ui-resizable-handle {
|
109 |
+
display: none;
|
110 |
+
}
|
111 |
+
.ui-resizable-n {
|
112 |
+
cursor: n-resize;
|
113 |
+
height: 7px;
|
114 |
+
width: 100%;
|
115 |
+
top: -5px;
|
116 |
+
left: 0;
|
117 |
+
}
|
118 |
+
.ui-resizable-s {
|
119 |
+
cursor: s-resize;
|
120 |
+
height: 7px;
|
121 |
+
width: 100%;
|
122 |
+
bottom: -5px;
|
123 |
+
left: 0;
|
124 |
+
}
|
125 |
+
.ui-resizable-e {
|
126 |
+
cursor: e-resize;
|
127 |
+
width: 7px;
|
128 |
+
right: -5px;
|
129 |
+
top: 0;
|
130 |
+
height: 100%;
|
131 |
+
}
|
132 |
+
.ui-resizable-w {
|
133 |
+
cursor: w-resize;
|
134 |
+
width: 7px;
|
135 |
+
left: -5px;
|
136 |
+
top: 0;
|
137 |
+
height: 100%;
|
138 |
+
}
|
139 |
+
.ui-resizable-se {
|
140 |
+
cursor: se-resize;
|
141 |
+
width: 12px;
|
142 |
+
height: 12px;
|
143 |
+
right: 1px;
|
144 |
+
bottom: 1px;
|
145 |
+
}
|
146 |
+
.ui-resizable-sw {
|
147 |
+
cursor: sw-resize;
|
148 |
+
width: 9px;
|
149 |
+
height: 9px;
|
150 |
+
left: -5px;
|
151 |
+
bottom: -5px;
|
152 |
+
}
|
153 |
+
.ui-resizable-nw {
|
154 |
+
cursor: nw-resize;
|
155 |
+
width: 9px;
|
156 |
+
height: 9px;
|
157 |
+
left: -5px;
|
158 |
+
top: -5px;
|
159 |
+
}
|
160 |
+
.ui-resizable-ne {
|
161 |
+
cursor: ne-resize;
|
162 |
+
width: 9px;
|
163 |
+
height: 9px;
|
164 |
+
right: -5px;
|
165 |
+
top: -5px;
|
166 |
+
}
|
167 |
+
.ui-selectable {
|
168 |
+
-ms-touch-action: none;
|
169 |
+
touch-action: none;
|
170 |
+
}
|
171 |
+
.ui-selectable-helper {
|
172 |
+
position: absolute;
|
173 |
+
z-index: 100;
|
174 |
+
border: 1px dotted black;
|
175 |
+
}
|
176 |
+
.ui-sortable-handle {
|
177 |
+
-ms-touch-action: none;
|
178 |
+
touch-action: none;
|
179 |
+
}
|
180 |
+
.ui-accordion .ui-accordion-header {
|
181 |
+
display: block;
|
182 |
+
cursor: pointer;
|
183 |
+
position: relative;
|
184 |
+
margin: 2px 0 0 0;
|
185 |
+
padding: .5em .5em .5em .7em;
|
186 |
+
font-size: 100%;
|
187 |
+
}
|
188 |
+
.ui-accordion .ui-accordion-content {
|
189 |
+
padding: 1em 2.2em;
|
190 |
+
border-top: 0;
|
191 |
+
overflow: auto;
|
192 |
+
}
|
193 |
+
.ui-autocomplete {
|
194 |
+
position: absolute;
|
195 |
+
top: 0;
|
196 |
+
left: 0;
|
197 |
+
cursor: default;
|
198 |
+
}
|
199 |
+
.ui-menu {
|
200 |
+
list-style: none;
|
201 |
+
padding: 0;
|
202 |
+
margin: 0;
|
203 |
+
display: block;
|
204 |
+
outline: 0;
|
205 |
+
}
|
206 |
+
.ui-menu .ui-menu {
|
207 |
+
position: absolute;
|
208 |
+
}
|
209 |
+
.ui-menu .ui-menu-item {
|
210 |
+
margin: 0;
|
211 |
+
cursor: pointer;
|
212 |
+
/* support: IE10, see #8844 */
|
213 |
+
list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
|
214 |
+
}
|
215 |
+
.ui-menu .ui-menu-item-wrapper {
|
216 |
+
position: relative;
|
217 |
+
padding: 3px 1em 3px .4em;
|
218 |
+
}
|
219 |
+
.ui-menu .ui-menu-divider {
|
220 |
+
margin: 5px 0;
|
221 |
+
height: 0;
|
222 |
+
font-size: 0;
|
223 |
+
line-height: 0;
|
224 |
+
border-width: 1px 0 0 0;
|
225 |
+
}
|
226 |
+
.ui-menu .ui-state-focus,
|
227 |
+
.ui-menu .ui-state-active {
|
228 |
+
margin: -1px;
|
229 |
+
}
|
230 |
+
|
231 |
+
/* icon support */
|
232 |
+
.ui-menu-icons {
|
233 |
+
position: relative;
|
234 |
+
}
|
235 |
+
.ui-menu-icons .ui-menu-item-wrapper {
|
236 |
+
padding-left: 2em;
|
237 |
+
}
|
238 |
+
|
239 |
+
/* left-aligned */
|
240 |
+
.ui-menu .ui-icon {
|
241 |
+
position: absolute;
|
242 |
+
top: 0;
|
243 |
+
bottom: 0;
|
244 |
+
left: .2em;
|
245 |
+
margin: auto 0;
|
246 |
+
}
|
247 |
+
|
248 |
+
/* right-aligned */
|
249 |
+
.ui-menu .ui-menu-icon {
|
250 |
+
left: auto;
|
251 |
+
right: 0;
|
252 |
+
}
|
253 |
+
.ui-button {
|
254 |
+
padding: .4em 1em;
|
255 |
+
display: inline-block;
|
256 |
+
position: relative;
|
257 |
+
line-height: normal;
|
258 |
+
margin-right: .1em;
|
259 |
+
cursor: pointer;
|
260 |
+
vertical-align: middle;
|
261 |
+
text-align: center;
|
262 |
+
-webkit-user-select: none;
|
263 |
+
-moz-user-select: none;
|
264 |
+
-ms-user-select: none;
|
265 |
+
user-select: none;
|
266 |
+
|
267 |
+
/* Support: IE <= 11 */
|
268 |
+
overflow: visible;
|
269 |
+
}
|
270 |
+
|
271 |
+
.ui-button,
|
272 |
+
.ui-button:link,
|
273 |
+
.ui-button:visited,
|
274 |
+
.ui-button:hover,
|
275 |
+
.ui-button:active {
|
276 |
+
text-decoration: none;
|
277 |
+
}
|
278 |
+
|
279 |
+
/* to make room for the icon, a width needs to be set here */
|
280 |
+
.ui-button-icon-only {
|
281 |
+
width: 2em;
|
282 |
+
box-sizing: border-box;
|
283 |
+
text-indent: -9999px;
|
284 |
+
white-space: nowrap;
|
285 |
+
}
|
286 |
+
|
287 |
+
/* no icon support for input elements */
|
288 |
+
input.ui-button.ui-button-icon-only {
|
289 |
+
text-indent: 0;
|
290 |
+
}
|
291 |
+
|
292 |
+
/* button icon element(s) */
|
293 |
+
.ui-button-icon-only .ui-icon {
|
294 |
+
position: absolute;
|
295 |
+
top: 50%;
|
296 |
+
left: 50%;
|
297 |
+
margin-top: -8px;
|
298 |
+
margin-left: -8px;
|
299 |
+
}
|
300 |
+
|
301 |
+
.ui-button.ui-icon-notext .ui-icon {
|
302 |
+
padding: 0;
|
303 |
+
width: 2.1em;
|
304 |
+
height: 2.1em;
|
305 |
+
text-indent: -9999px;
|
306 |
+
white-space: nowrap;
|
307 |
+
|
308 |
+
}
|
309 |
+
|
310 |
+
input.ui-button.ui-icon-notext .ui-icon {
|
311 |
+
width: auto;
|
312 |
+
height: auto;
|
313 |
+
text-indent: 0;
|
314 |
+
white-space: normal;
|
315 |
+
padding: .4em 1em;
|
316 |
+
}
|
317 |
+
|
318 |
+
/* workarounds */
|
319 |
+
/* Support: Firefox 5 - 40 */
|
320 |
+
input.ui-button::-moz-focus-inner,
|
321 |
+
button.ui-button::-moz-focus-inner {
|
322 |
+
border: 0;
|
323 |
+
padding: 0;
|
324 |
+
}
|
325 |
+
.ui-controlgroup {
|
326 |
+
vertical-align: middle;
|
327 |
+
display: inline-block;
|
328 |
+
}
|
329 |
+
.ui-controlgroup > .ui-controlgroup-item {
|
330 |
+
float: left;
|
331 |
+
margin-left: 0;
|
332 |
+
margin-right: 0;
|
333 |
+
}
|
334 |
+
.ui-controlgroup > .ui-controlgroup-item:focus,
|
335 |
+
.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus {
|
336 |
+
z-index: 9999;
|
337 |
+
}
|
338 |
+
.ui-controlgroup-vertical > .ui-controlgroup-item {
|
339 |
+
display: block;
|
340 |
+
float: none;
|
341 |
+
width: 100%;
|
342 |
+
margin-top: 0;
|
343 |
+
margin-bottom: 0;
|
344 |
+
text-align: left;
|
345 |
+
}
|
346 |
+
.ui-controlgroup-vertical .ui-controlgroup-item {
|
347 |
+
box-sizing: border-box;
|
348 |
+
}
|
349 |
+
.ui-controlgroup .ui-controlgroup-label {
|
350 |
+
padding: .4em 1em;
|
351 |
+
}
|
352 |
+
.ui-controlgroup .ui-controlgroup-label span {
|
353 |
+
font-size: 80%;
|
354 |
+
}
|
355 |
+
.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item {
|
356 |
+
border-left: none;
|
357 |
+
}
|
358 |
+
.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item {
|
359 |
+
border-top: none;
|
360 |
+
}
|
361 |
+
.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content {
|
362 |
+
border-right: none;
|
363 |
+
}
|
364 |
+
.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content {
|
365 |
+
border-bottom: none;
|
366 |
+
}
|
367 |
+
|
368 |
+
/* Spinner specific style fixes */
|
369 |
+
.ui-controlgroup-vertical .ui-spinner-input {
|
370 |
+
|
371 |
+
/* Support: IE8 only, Android < 4.4 only */
|
372 |
+
width: 75%;
|
373 |
+
width: calc( 100% - 2.4em );
|
374 |
+
}
|
375 |
+
.ui-controlgroup-vertical .ui-spinner .ui-spinner-up {
|
376 |
+
border-top-style: solid;
|
377 |
+
}
|
378 |
+
|
379 |
+
.ui-checkboxradio-label .ui-icon-background {
|
380 |
+
box-shadow: inset 1px 1px 1px #ccc;
|
381 |
+
border-radius: .12em;
|
382 |
+
border: none;
|
383 |
+
}
|
384 |
+
.ui-checkboxradio-radio-label .ui-icon-background {
|
385 |
+
width: 16px;
|
386 |
+
height: 16px;
|
387 |
+
border-radius: 1em;
|
388 |
+
overflow: visible;
|
389 |
+
border: none;
|
390 |
+
}
|
391 |
+
.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,
|
392 |
+
.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon {
|
393 |
+
background-image: none;
|
394 |
+
width: 8px;
|
395 |
+
height: 8px;
|
396 |
+
border-width: 4px;
|
397 |
+
border-style: solid;
|
398 |
+
}
|
399 |
+
.ui-checkboxradio-disabled {
|
400 |
+
pointer-events: none;
|
401 |
+
}
|
402 |
+
.ui-datepicker {
|
403 |
+
width: 17em;
|
404 |
+
padding: .2em .2em 0;
|
405 |
+
display: none;
|
406 |
+
}
|
407 |
+
.ui-datepicker .ui-datepicker-header {
|
408 |
+
position: relative;
|
409 |
+
padding: .2em 0;
|
410 |
+
}
|
411 |
+
.ui-datepicker .ui-datepicker-prev,
|
412 |
+
.ui-datepicker .ui-datepicker-next {
|
413 |
+
position: absolute;
|
414 |
+
top: 2px;
|
415 |
+
width: 1.8em;
|
416 |
+
height: 1.8em;
|
417 |
+
}
|
418 |
+
.ui-datepicker .ui-datepicker-prev-hover,
|
419 |
+
.ui-datepicker .ui-datepicker-next-hover {
|
420 |
+
top: 1px;
|
421 |
+
}
|
422 |
+
.ui-datepicker .ui-datepicker-prev {
|
423 |
+
left: 2px;
|
424 |
+
}
|
425 |
+
.ui-datepicker .ui-datepicker-next {
|
426 |
+
right: 2px;
|
427 |
+
}
|
428 |
+
.ui-datepicker .ui-datepicker-prev-hover {
|
429 |
+
left: 1px;
|
430 |
+
}
|
431 |
+
.ui-datepicker .ui-datepicker-next-hover {
|
432 |
+
right: 1px;
|
433 |
+
}
|
434 |
+
.ui-datepicker .ui-datepicker-prev span,
|
435 |
+
.ui-datepicker .ui-datepicker-next span {
|
436 |
+
display: block;
|
437 |
+
position: absolute;
|
438 |
+
left: 50%;
|
439 |
+
margin-left: -8px;
|
440 |
+
top: 50%;
|
441 |
+
margin-top: -8px;
|
442 |
+
}
|
443 |
+
.ui-datepicker .ui-datepicker-title {
|
444 |
+
margin: 0 2.3em;
|
445 |
+
line-height: 1.8em;
|
446 |
+
text-align: center;
|
447 |
+
}
|
448 |
+
.ui-datepicker .ui-datepicker-title select {
|
449 |
+
font-size: 1em;
|
450 |
+
margin: 1px 0;
|
451 |
+
}
|
452 |
+
.ui-datepicker select.ui-datepicker-month,
|
453 |
+
.ui-datepicker select.ui-datepicker-year {
|
454 |
+
width: 45%;
|
455 |
+
}
|
456 |
+
.ui-datepicker table {
|
457 |
+
width: 100%;
|
458 |
+
font-size: .9em;
|
459 |
+
border-collapse: collapse;
|
460 |
+
margin: 0 0 .4em;
|
461 |
+
}
|
462 |
+
.ui-datepicker th {
|
463 |
+
padding: .7em .3em;
|
464 |
+
text-align: center;
|
465 |
+
font-weight: bold;
|
466 |
+
border: 0;
|
467 |
+
}
|
468 |
+
.ui-datepicker td {
|
469 |
+
border: 0;
|
470 |
+
padding: 1px;
|
471 |
+
}
|
472 |
+
.ui-datepicker td span,
|
473 |
+
.ui-datepicker td a {
|
474 |
+
display: block;
|
475 |
+
padding: .2em;
|
476 |
+
text-align: right;
|
477 |
+
text-decoration: none;
|
478 |
+
}
|
479 |
+
.ui-datepicker .ui-datepicker-buttonpane {
|
480 |
+
background-image: none;
|
481 |
+
margin: .7em 0 0 0;
|
482 |
+
padding: 0 .2em;
|
483 |
+
border-left: 0;
|
484 |
+
border-right: 0;
|
485 |
+
border-bottom: 0;
|
486 |
+
}
|
487 |
+
.ui-datepicker .ui-datepicker-buttonpane button {
|
488 |
+
float: right;
|
489 |
+
margin: .5em .2em .4em;
|
490 |
+
cursor: pointer;
|
491 |
+
padding: .2em .6em .3em .6em;
|
492 |
+
width: auto;
|
493 |
+
overflow: visible;
|
494 |
+
}
|
495 |
+
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
|
496 |
+
float: left;
|
497 |
+
}
|
498 |
+
|
499 |
+
/* with multiple calendars */
|
500 |
+
.ui-datepicker.ui-datepicker-multi {
|
501 |
+
width: auto;
|
502 |
+
}
|
503 |
+
.ui-datepicker-multi .ui-datepicker-group {
|
504 |
+
float: left;
|
505 |
+
}
|
506 |
+
.ui-datepicker-multi .ui-datepicker-group table {
|
507 |
+
width: 95%;
|
508 |
+
margin: 0 auto .4em;
|
509 |
+
}
|
510 |
+
.ui-datepicker-multi-2 .ui-datepicker-group {
|
511 |
+
width: 50%;
|
512 |
+
}
|
513 |
+
.ui-datepicker-multi-3 .ui-datepicker-group {
|
514 |
+
width: 33.3%;
|
515 |
+
}
|
516 |
+
.ui-datepicker-multi-4 .ui-datepicker-group {
|
517 |
+
width: 25%;
|
518 |
+
}
|
519 |
+
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
|
520 |
+
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
|
521 |
+
border-left-width: 0;
|
522 |
+
}
|
523 |
+
.ui-datepicker-multi .ui-datepicker-buttonpane {
|
524 |
+
clear: left;
|
525 |
+
}
|
526 |
+
.ui-datepicker-row-break {
|
527 |
+
clear: both;
|
528 |
+
width: 100%;
|
529 |
+
font-size: 0;
|
530 |
+
}
|
531 |
+
|
532 |
+
/* RTL support */
|
533 |
+
.ui-datepicker-rtl {
|
534 |
+
direction: rtl;
|
535 |
+
}
|
536 |
+
.ui-datepicker-rtl .ui-datepicker-prev {
|
537 |
+
right: 2px;
|
538 |
+
left: auto;
|
539 |
+
}
|
540 |
+
.ui-datepicker-rtl .ui-datepicker-next {
|
541 |
+
left: 2px;
|
542 |
+
right: auto;
|
543 |
+
}
|
544 |
+
.ui-datepicker-rtl .ui-datepicker-prev:hover {
|
545 |
+
right: 1px;
|
546 |
+
left: auto;
|
547 |
+
}
|
548 |
+
.ui-datepicker-rtl .ui-datepicker-next:hover {
|
549 |
+
left: 1px;
|
550 |
+
right: auto;
|
551 |
+
}
|
552 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane {
|
553 |
+
clear: right;
|
554 |
+
}
|
555 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane button {
|
556 |
+
float: left;
|
557 |
+
}
|
558 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
|
559 |
+
.ui-datepicker-rtl .ui-datepicker-group {
|
560 |
+
float: right;
|
561 |
+
}
|
562 |
+
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
|
563 |
+
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
|
564 |
+
border-right-width: 0;
|
565 |
+
border-left-width: 1px;
|
566 |
+
}
|
567 |
+
|
568 |
+
/* Icons */
|
569 |
+
.ui-datepicker .ui-icon {
|
570 |
+
display: block;
|
571 |
+
text-indent: -99999px;
|
572 |
+
overflow: hidden;
|
573 |
+
background-repeat: no-repeat;
|
574 |
+
left: .5em;
|
575 |
+
top: .3em;
|
576 |
+
}
|
577 |
+
.ui-dialog {
|
578 |
+
position: absolute;
|
579 |
+
top: 0;
|
580 |
+
left: 0;
|
581 |
+
padding: .2em;
|
582 |
+
outline: 0;
|
583 |
+
}
|
584 |
+
.ui-dialog .ui-dialog-titlebar {
|
585 |
+
padding: .4em 1em;
|
586 |
+
position: relative;
|
587 |
+
}
|
588 |
+
.ui-dialog .ui-dialog-title {
|
589 |
+
float: left;
|
590 |
+
margin: .1em 0;
|
591 |
+
white-space: nowrap;
|
592 |
+
width: 90%;
|
593 |
+
overflow: hidden;
|
594 |
+
text-overflow: ellipsis;
|
595 |
+
}
|
596 |
+
.ui-dialog .ui-dialog-titlebar-close {
|
597 |
+
position: absolute;
|
598 |
+
right: .3em;
|
599 |
+
top: 50%;
|
600 |
+
width: 20px;
|
601 |
+
margin: -10px 0 0 0;
|
602 |
+
padding: 1px;
|
603 |
+
height: 20px;
|
604 |
+
}
|
605 |
+
.ui-dialog .ui-dialog-content {
|
606 |
+
position: relative;
|
607 |
+
border: 0;
|
608 |
+
padding: .5em 1em;
|
609 |
+
background: none;
|
610 |
+
overflow: auto;
|
611 |
+
}
|
612 |
+
.ui-dialog .ui-dialog-buttonpane {
|
613 |
+
text-align: left;
|
614 |
+
border-width: 1px 0 0 0;
|
615 |
+
background-image: none;
|
616 |
+
margin-top: .5em;
|
617 |
+
padding: .3em 1em .5em .4em;
|
618 |
+
}
|
619 |
+
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
|
620 |
+
float: right;
|
621 |
+
}
|
622 |
+
.ui-dialog .ui-dialog-buttonpane button {
|
623 |
+
margin: .5em .4em .5em 0;
|
624 |
+
cursor: pointer;
|
625 |
+
}
|
626 |
+
.ui-dialog .ui-resizable-n {
|
627 |
+
height: 2px;
|
628 |
+
top: 0;
|
629 |
+
}
|
630 |
+
.ui-dialog .ui-resizable-e {
|
631 |
+
width: 2px;
|
632 |
+
right: 0;
|
633 |
+
}
|
634 |
+
.ui-dialog .ui-resizable-s {
|
635 |
+
height: 2px;
|
636 |
+
bottom: 0;
|
637 |
+
}
|
638 |
+
.ui-dialog .ui-resizable-w {
|
639 |
+
width: 2px;
|
640 |
+
left: 0;
|
641 |
+
}
|
642 |
+
.ui-dialog .ui-resizable-se,
|
643 |
+
.ui-dialog .ui-resizable-sw,
|
644 |
+
.ui-dialog .ui-resizable-ne,
|
645 |
+
.ui-dialog .ui-resizable-nw {
|
646 |
+
width: 7px;
|
647 |
+
height: 7px;
|
648 |
+
}
|
649 |
+
.ui-dialog .ui-resizable-se {
|
650 |
+
right: 0;
|
651 |
+
bottom: 0;
|
652 |
+
}
|
653 |
+
.ui-dialog .ui-resizable-sw {
|
654 |
+
left: 0;
|
655 |
+
bottom: 0;
|
656 |
+
}
|
657 |
+
.ui-dialog .ui-resizable-ne {
|
658 |
+
right: 0;
|
659 |
+
top: 0;
|
660 |
+
}
|
661 |
+
.ui-dialog .ui-resizable-nw {
|
662 |
+
left: 0;
|
663 |
+
top: 0;
|
664 |
+
}
|
665 |
+
.ui-draggable .ui-dialog-titlebar {
|
666 |
+
cursor: move;
|
667 |
+
}
|
668 |
+
.ui-progressbar {
|
669 |
+
height: 2em;
|
670 |
+
text-align: left;
|
671 |
+
overflow: hidden;
|
672 |
+
}
|
673 |
+
.ui-progressbar .ui-progressbar-value {
|
674 |
+
margin: -1px;
|
675 |
+
height: 100%;
|
676 |
+
}
|
677 |
+
.ui-progressbar .ui-progressbar-overlay {
|
678 |
+
background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");
|
679 |
+
height: 100%;
|
680 |
+
filter: alpha(opacity=25); /* support: IE8 */
|
681 |
+
opacity: 0.25;
|
682 |
+
}
|
683 |
+
.ui-progressbar-indeterminate .ui-progressbar-value {
|
684 |
+
background-image: none;
|
685 |
+
}
|
686 |
+
.ui-selectmenu-menu {
|
687 |
+
padding: 0;
|
688 |
+
margin: 0;
|
689 |
+
position: absolute;
|
690 |
+
top: 0;
|
691 |
+
left: 0;
|
692 |
+
display: none;
|
693 |
+
}
|
694 |
+
.ui-selectmenu-menu .ui-menu {
|
695 |
+
overflow: auto;
|
696 |
+
overflow-x: hidden;
|
697 |
+
padding-bottom: 1px;
|
698 |
+
}
|
699 |
+
.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
|
700 |
+
font-size: 1em;
|
701 |
+
font-weight: bold;
|
702 |
+
line-height: 1.5;
|
703 |
+
padding: 2px 0.4em;
|
704 |
+
margin: 0.5em 0 0 0;
|
705 |
+
height: auto;
|
706 |
+
border: 0;
|
707 |
+
}
|
708 |
+
.ui-selectmenu-open {
|
709 |
+
display: block;
|
710 |
+
}
|
711 |
+
.ui-selectmenu-text {
|
712 |
+
display: block;
|
713 |
+
margin-right: 20px;
|
714 |
+
overflow: hidden;
|
715 |
+
text-overflow: ellipsis;
|
716 |
+
}
|
717 |
+
.ui-selectmenu-button.ui-button {
|
718 |
+
text-align: left;
|
719 |
+
white-space: nowrap;
|
720 |
+
width: 14em;
|
721 |
+
}
|
722 |
+
.ui-selectmenu-icon.ui-icon {
|
723 |
+
float: right;
|
724 |
+
margin-top: 0;
|
725 |
+
}
|
726 |
+
.ui-slider {
|
727 |
+
position: relative;
|
728 |
+
text-align: left;
|
729 |
+
}
|
730 |
+
.ui-slider .ui-slider-handle {
|
731 |
+
position: absolute;
|
732 |
+
z-index: 2;
|
733 |
+
width: 1.2em;
|
734 |
+
height: 1.2em;
|
735 |
+
cursor: default;
|
736 |
+
-ms-touch-action: none;
|
737 |
+
touch-action: none;
|
738 |
+
}
|
739 |
+
.ui-slider .ui-slider-range {
|
740 |
+
position: absolute;
|
741 |
+
z-index: 1;
|
742 |
+
font-size: .7em;
|
743 |
+
display: block;
|
744 |
+
border: 0;
|
745 |
+
background-position: 0 0;
|
746 |
+
}
|
747 |
+
|
748 |
+
/* support: IE8 - See #6727 */
|
749 |
+
.ui-slider.ui-state-disabled .ui-slider-handle,
|
750 |
+
.ui-slider.ui-state-disabled .ui-slider-range {
|
751 |
+
filter: inherit;
|
752 |
+
}
|
753 |
+
|
754 |
+
.ui-slider-horizontal {
|
755 |
+
height: .8em;
|
756 |
+
}
|
757 |
+
.ui-slider-horizontal .ui-slider-handle {
|
758 |
+
top: -.3em;
|
759 |
+
margin-left: -.6em;
|
760 |
+
}
|
761 |
+
.ui-slider-horizontal .ui-slider-range {
|
762 |
+
top: 0;
|
763 |
+
height: 100%;
|
764 |
+
}
|
765 |
+
.ui-slider-horizontal .ui-slider-range-min {
|
766 |
+
left: 0;
|
767 |
+
}
|
768 |
+
.ui-slider-horizontal .ui-slider-range-max {
|
769 |
+
right: 0;
|
770 |
+
}
|
771 |
+
|
772 |
+
.ui-slider-vertical {
|
773 |
+
width: .8em;
|
774 |
+
height: 100px;
|
775 |
+
}
|
776 |
+
.ui-slider-vertical .ui-slider-handle {
|
777 |
+
left: -.3em;
|
778 |
+
margin-left: 0;
|
779 |
+
margin-bottom: -.6em;
|
780 |
+
}
|
781 |
+
.ui-slider-vertical .ui-slider-range {
|
782 |
+
left: 0;
|
783 |
+
width: 100%;
|
784 |
+
}
|
785 |
+
.ui-slider-vertical .ui-slider-range-min {
|
786 |
+
bottom: 0;
|
787 |
+
}
|
788 |
+
.ui-slider-vertical .ui-slider-range-max {
|
789 |
+
top: 0;
|
790 |
+
}
|
791 |
+
.ui-spinner {
|
792 |
+
position: relative;
|
793 |
+
display: inline-block;
|
794 |
+
overflow: hidden;
|
795 |
+
padding: 0;
|
796 |
+
vertical-align: middle;
|
797 |
+
}
|
798 |
+
.ui-spinner-input {
|
799 |
+
border: none;
|
800 |
+
background: none;
|
801 |
+
color: inherit;
|
802 |
+
padding: .222em 0;
|
803 |
+
margin: .2em 0;
|
804 |
+
vertical-align: middle;
|
805 |
+
margin-left: .4em;
|
806 |
+
margin-right: 2em;
|
807 |
+
}
|
808 |
+
.ui-spinner-button {
|
809 |
+
width: 1.6em;
|
810 |
+
height: 50%;
|
811 |
+
font-size: .5em;
|
812 |
+
padding: 0;
|
813 |
+
margin: 0;
|
814 |
+
text-align: center;
|
815 |
+
position: absolute;
|
816 |
+
cursor: default;
|
817 |
+
display: block;
|
818 |
+
overflow: hidden;
|
819 |
+
right: 0;
|
820 |
+
}
|
821 |
+
/* more specificity required here to override default borders */
|
822 |
+
.ui-spinner a.ui-spinner-button {
|
823 |
+
border-top-style: none;
|
824 |
+
border-bottom-style: none;
|
825 |
+
border-right-style: none;
|
826 |
+
}
|
827 |
+
.ui-spinner-up {
|
828 |
+
top: 0;
|
829 |
+
}
|
830 |
+
.ui-spinner-down {
|
831 |
+
bottom: 0;
|
832 |
+
}
|
833 |
+
.ui-tabs {
|
834 |
+
position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
|
835 |
+
padding: .2em;
|
836 |
+
}
|
837 |
+
.ui-tabs .ui-tabs-nav {
|
838 |
+
margin: 0;
|
839 |
+
padding: .2em .2em 0;
|
840 |
+
}
|
841 |
+
.ui-tabs .ui-tabs-nav li {
|
842 |
+
list-style: none;
|
843 |
+
float: left;
|
844 |
+
position: relative;
|
845 |
+
top: 0;
|
846 |
+
margin: 1px .2em 0 0;
|
847 |
+
border-bottom-width: 0;
|
848 |
+
padding: 0;
|
849 |
+
white-space: nowrap;
|
850 |
+
}
|
851 |
+
.ui-tabs .ui-tabs-nav .ui-tabs-anchor {
|
852 |
+
float: left;
|
853 |
+
padding: .5em 1em;
|
854 |
+
text-decoration: none;
|
855 |
+
}
|
856 |
+
.ui-tabs .ui-tabs-nav li.ui-tabs-active {
|
857 |
+
margin-bottom: -1px;
|
858 |
+
padding-bottom: 1px;
|
859 |
+
}
|
860 |
+
.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
|
861 |
+
.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
|
862 |
+
.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
|
863 |
+
cursor: text;
|
864 |
+
}
|
865 |
+
.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
|
866 |
+
cursor: pointer;
|
867 |
+
}
|
868 |
+
.ui-tabs .ui-tabs-panel {
|
869 |
+
display: block;
|
870 |
+
border-width: 0;
|
871 |
+
padding: 1em 1.4em;
|
872 |
+
background: none;
|
873 |
+
}
|
874 |
+
.ui-tooltip {
|
875 |
+
padding: 8px;
|
876 |
+
position: absolute;
|
877 |
+
z-index: 9999;
|
878 |
+
max-width: 300px;
|
879 |
+
}
|
880 |
+
body .ui-tooltip {
|
881 |
+
border-width: 2px;
|
882 |
+
}
|
883 |
+
|
884 |
+
/* Component containers
|
885 |
+
----------------------------------*/
|
886 |
+
.ui-widget {
|
887 |
+
font-family: Arial,Helvetica,sans-serif;
|
888 |
+
font-size: 1em;
|
889 |
+
}
|
890 |
+
.ui-widget .ui-widget {
|
891 |
+
font-size: 1em;
|
892 |
+
}
|
893 |
+
.ui-widget input,
|
894 |
+
.ui-widget select,
|
895 |
+
.ui-widget textarea,
|
896 |
+
.ui-widget button {
|
897 |
+
font-family: Arial,Helvetica,sans-serif;
|
898 |
+
font-size: 1em;
|
899 |
+
}
|
900 |
+
.ui-widget.ui-widget-content {
|
901 |
+
border: 1px solid #c5c5c5;
|
902 |
+
}
|
903 |
+
.ui-widget-content {
|
904 |
+
border: 1px solid #dddddd;
|
905 |
+
background: #ffffff;
|
906 |
+
color: #333333;
|
907 |
+
}
|
908 |
+
.ui-widget-content a {
|
909 |
+
color: #333333;
|
910 |
+
}
|
911 |
+
.ui-widget-header {
|
912 |
+
border: 1px solid #dddddd;
|
913 |
+
background: #e9e9e9;
|
914 |
+
color: #333333;
|
915 |
+
font-weight: bold;
|
916 |
+
}
|
917 |
+
.ui-widget-header a {
|
918 |
+
color: #333333;
|
919 |
+
}
|
920 |
+
|
921 |
+
/* Interaction states
|
922 |
+
----------------------------------*/
|
923 |
+
.ui-state-default,
|
924 |
+
.ui-widget-content .ui-state-default,
|
925 |
+
.ui-widget-header .ui-state-default,
|
926 |
+
.ui-button,
|
927 |
+
|
928 |
+
/* We use html here because we need a greater specificity to make sure disabled
|
929 |
+
works properly when clicked or hovered */
|
930 |
+
html .ui-button.ui-state-disabled:hover,
|
931 |
+
html .ui-button.ui-state-disabled:active {
|
932 |
+
border: 1px solid #c5c5c5;
|
933 |
+
background: #f6f6f6;
|
934 |
+
font-weight: normal;
|
935 |
+
color: #454545;
|
936 |
+
}
|
937 |
+
.ui-state-default a,
|
938 |
+
.ui-state-default a:link,
|
939 |
+
.ui-state-default a:visited,
|
940 |
+
a.ui-button,
|
941 |
+
a:link.ui-button,
|
942 |
+
a:visited.ui-button,
|
943 |
+
.ui-button {
|
944 |
+
color: #454545;
|
945 |
+
text-decoration: none;
|
946 |
+
}
|
947 |
+
.ui-state-hover,
|
948 |
+
.ui-widget-content .ui-state-hover,
|
949 |
+
.ui-widget-header .ui-state-hover,
|
950 |
+
.ui-state-focus,
|
951 |
+
.ui-widget-content .ui-state-focus,
|
952 |
+
.ui-widget-header .ui-state-focus,
|
953 |
+
.ui-button:hover,
|
954 |
+
.ui-button:focus {
|
955 |
+
border: 1px solid #cccccc;
|
956 |
+
background: #ededed;
|
957 |
+
font-weight: normal;
|
958 |
+
color: #2b2b2b;
|
959 |
+
}
|
960 |
+
.ui-state-hover a,
|
961 |
+
.ui-state-hover a:hover,
|
962 |
+
.ui-state-hover a:link,
|
963 |
+
.ui-state-hover a:visited,
|
964 |
+
.ui-state-focus a,
|
965 |
+
.ui-state-focus a:hover,
|
966 |
+
.ui-state-focus a:link,
|
967 |
+
.ui-state-focus a:visited,
|
968 |
+
a.ui-button:hover,
|
969 |
+
a.ui-button:focus {
|
970 |
+
color: #2b2b2b;
|
971 |
+
text-decoration: none;
|
972 |
+
}
|
973 |
+
|
974 |
+
.ui-visual-focus {
|
975 |
+
box-shadow: 0 0 3px 1px rgb(94, 158, 214);
|
976 |
+
}
|
977 |
+
.ui-state-active,
|
978 |
+
.ui-widget-content .ui-state-active,
|
979 |
+
.ui-widget-header .ui-state-active,
|
980 |
+
a.ui-button:active,
|
981 |
+
.ui-button:active,
|
982 |
+
.ui-button.ui-state-active:hover {
|
983 |
+
border: 1px solid #003eff;
|
984 |
+
background: #007fff;
|
985 |
+
font-weight: normal;
|
986 |
+
color: #ffffff;
|
987 |
+
}
|
988 |
+
.ui-icon-background,
|
989 |
+
.ui-state-active .ui-icon-background {
|
990 |
+
border: #003eff;
|
991 |
+
background-color: #ffffff;
|
992 |
+
}
|
993 |
+
.ui-state-active a,
|
994 |
+
.ui-state-active a:link,
|
995 |
+
.ui-state-active a:visited {
|
996 |
+
color: #ffffff;
|
997 |
+
text-decoration: none;
|
998 |
+
}
|
999 |
+
|
1000 |
+
/* Interaction Cues
|
1001 |
+
----------------------------------*/
|
1002 |
+
.ui-state-highlight,
|
1003 |
+
.ui-widget-content .ui-state-highlight,
|
1004 |
+
.ui-widget-header .ui-state-highlight {
|
1005 |
+
border: 1px solid #dad55e;
|
1006 |
+
background: #fffa90;
|
1007 |
+
color: #777620;
|
1008 |
+
}
|
1009 |
+
.ui-state-checked {
|
1010 |
+
border: 1px solid #dad55e;
|
1011 |
+
background: #fffa90;
|
1012 |
+
}
|
1013 |
+
.ui-state-highlight a,
|
1014 |
+
.ui-widget-content .ui-state-highlight a,
|
1015 |
+
.ui-widget-header .ui-state-highlight a {
|
1016 |
+
color: #777620;
|
1017 |
+
}
|
1018 |
+
.ui-state-error,
|
1019 |
+
.ui-widget-content .ui-state-error,
|
1020 |
+
.ui-widget-header .ui-state-error {
|
1021 |
+
border: 1px solid #f1a899;
|
1022 |
+
background: #fddfdf;
|
1023 |
+
color: #5f3f3f;
|
1024 |
+
}
|
1025 |
+
.ui-state-error a,
|
1026 |
+
.ui-widget-content .ui-state-error a,
|
1027 |
+
.ui-widget-header .ui-state-error a {
|
1028 |
+
color: #5f3f3f;
|
1029 |
+
}
|
1030 |
+
.ui-state-error-text,
|
1031 |
+
.ui-widget-content .ui-state-error-text,
|
1032 |
+
.ui-widget-header .ui-state-error-text {
|
1033 |
+
color: #5f3f3f;
|
1034 |
+
}
|
1035 |
+
.ui-priority-primary,
|
1036 |
+
.ui-widget-content .ui-priority-primary,
|
1037 |
+
.ui-widget-header .ui-priority-primary {
|
1038 |
+
font-weight: bold;
|
1039 |
+
}
|
1040 |
+
.ui-priority-secondary,
|
1041 |
+
.ui-widget-content .ui-priority-secondary,
|
1042 |
+
.ui-widget-header .ui-priority-secondary {
|
1043 |
+
opacity: .7;
|
1044 |
+
filter:Alpha(Opacity=70); /* support: IE8 */
|
1045 |
+
font-weight: normal;
|
1046 |
+
}
|
1047 |
+
.ui-state-disabled,
|
1048 |
+
.ui-widget-content .ui-state-disabled,
|
1049 |
+
.ui-widget-header .ui-state-disabled {
|
1050 |
+
opacity: .35;
|
1051 |
+
filter:Alpha(Opacity=35); /* support: IE8 */
|
1052 |
+
background-image: none;
|
1053 |
+
}
|
1054 |
+
.ui-state-disabled .ui-icon {
|
1055 |
+
filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
|
1056 |
+
}
|
1057 |
+
|
1058 |
+
/* Icons
|
1059 |
+
----------------------------------*/
|
1060 |
+
|
1061 |
+
/* states and images */
|
1062 |
+
.ui-icon {
|
1063 |
+
width: 16px;
|
1064 |
+
height: 16px;
|
1065 |
+
}
|
1066 |
+
.ui-icon,
|
1067 |
+
.ui-widget-content .ui-icon {
|
1068 |
+
background-image: url("images/ui-icons_444444_256x240.png");
|
1069 |
+
}
|
1070 |
+
.ui-widget-header .ui-icon {
|
1071 |
+
background-image: url("images/ui-icons_444444_256x240.png");
|
1072 |
+
}
|
1073 |
+
.ui-state-hover .ui-icon,
|
1074 |
+
.ui-state-focus .ui-icon,
|
1075 |
+
.ui-button:hover .ui-icon,
|
1076 |
+
.ui-button:focus .ui-icon {
|
1077 |
+
background-image: url("images/ui-icons_555555_256x240.png");
|
1078 |
+
}
|
1079 |
+
.ui-state-active .ui-icon,
|
1080 |
+
.ui-button:active .ui-icon {
|
1081 |
+
background-image: url("images/ui-icons_ffffff_256x240.png");
|
1082 |
+
}
|
1083 |
+
.ui-state-highlight .ui-icon,
|
1084 |
+
.ui-button .ui-state-highlight.ui-icon {
|
1085 |
+
background-image: url("images/ui-icons_777620_256x240.png");
|
1086 |
+
}
|
1087 |
+
.ui-state-error .ui-icon,
|
1088 |
+
.ui-state-error-text .ui-icon {
|
1089 |
+
background-image: url("images/ui-icons_cc0000_256x240.png");
|
1090 |
+
}
|
1091 |
+
.ui-button .ui-icon {
|
1092 |
+
background-image: url("images/ui-icons_777777_256x240.png");
|
1093 |
+
}
|
1094 |
+
|
1095 |
+
/* positioning */
|
1096 |
+
.ui-icon-blank { background-position: 16px 16px; }
|
1097 |
+
.ui-icon-caret-1-n { background-position: 0 0; }
|
1098 |
+
.ui-icon-caret-1-ne { background-position: -16px 0; }
|
1099 |
+
.ui-icon-caret-1-e { background-position: -32px 0; }
|
1100 |
+
.ui-icon-caret-1-se { background-position: -48px 0; }
|
1101 |
+
.ui-icon-caret-1-s { background-position: -65px 0; }
|
1102 |
+
.ui-icon-caret-1-sw { background-position: -80px 0; }
|
1103 |
+
.ui-icon-caret-1-w { background-position: -96px 0; }
|
1104 |
+
.ui-icon-caret-1-nw { background-position: -112px 0; }
|
1105 |
+
.ui-icon-caret-2-n-s { background-position: -128px 0; }
|
1106 |
+
.ui-icon-caret-2-e-w { background-position: -144px 0; }
|
1107 |
+
.ui-icon-triangle-1-n { background-position: 0 -16px; }
|
1108 |
+
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
|
1109 |
+
.ui-icon-triangle-1-e { background-position: -32px -16px; }
|
1110 |
+
.ui-icon-triangle-1-se { background-position: -48px -16px; }
|
1111 |
+
.ui-icon-triangle-1-s { background-position: -65px -16px; }
|
1112 |
+
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
|
1113 |
+
.ui-icon-triangle-1-w { background-position: -96px -16px; }
|
1114 |
+
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
|
1115 |
+
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
|
1116 |
+
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
|
1117 |
+
.ui-icon-arrow-1-n { background-position: 0 -32px; }
|
1118 |
+
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
|
1119 |
+
.ui-icon-arrow-1-e { background-position: -32px -32px; }
|
1120 |
+
.ui-icon-arrow-1-se { background-position: -48px -32px; }
|
1121 |
+
.ui-icon-arrow-1-s { background-position: -65px -32px; }
|
1122 |
+
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
|
1123 |
+
.ui-icon-arrow-1-w { background-position: -96px -32px; }
|
1124 |
+
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
|
1125 |
+
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
|
1126 |
+
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
|
1127 |
+
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
|
1128 |
+
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
|
1129 |
+
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
|
1130 |
+
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
|
1131 |
+
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
|
1132 |
+
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
|
1133 |
+
.ui-icon-arrowthick-1-n { background-position: 1px -48px; }
|
1134 |
+
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
|
1135 |
+
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
|
1136 |
+
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
|
1137 |
+
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
|
1138 |
+
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
|
1139 |
+
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
|
1140 |
+
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
|
1141 |
+
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
|
1142 |
+
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
|
1143 |
+
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
|
1144 |
+
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
|
1145 |
+
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
|
1146 |
+
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
|
1147 |
+
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
|
1148 |
+
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
|
1149 |
+
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
|
1150 |
+
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
|
1151 |
+
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
|
1152 |
+
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
|
1153 |
+
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
|
1154 |
+
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
|
1155 |
+
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
|
1156 |
+
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
|
1157 |
+
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
|
1158 |
+
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
|
1159 |
+
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
|
1160 |
+
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
|
1161 |
+
.ui-icon-arrow-4 { background-position: 0 -80px; }
|
1162 |
+
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
|
1163 |
+
.ui-icon-extlink { background-position: -32px -80px; }
|
1164 |
+
.ui-icon-newwin { background-position: -48px -80px; }
|
1165 |
+
.ui-icon-refresh { background-position: -64px -80px; }
|
1166 |
+
.ui-icon-shuffle { background-position: -80px -80px; }
|
1167 |
+
.ui-icon-transfer-e-w { background-position: -96px -80px; }
|
1168 |
+
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
|
1169 |
+
.ui-icon-folder-collapsed { background-position: 0 -96px; }
|
1170 |
+
.ui-icon-folder-open { background-position: -16px -96px; }
|
1171 |
+
.ui-icon-document { background-position: -32px -96px; }
|
1172 |
+
.ui-icon-document-b { background-position: -48px -96px; }
|
1173 |
+
.ui-icon-note { background-position: -64px -96px; }
|
1174 |
+
.ui-icon-mail-closed { background-position: -80px -96px; }
|
1175 |
+
.ui-icon-mail-open { background-position: -96px -96px; }
|
1176 |
+
.ui-icon-suitcase { background-position: -112px -96px; }
|
1177 |
+
.ui-icon-comment { background-position: -128px -96px; }
|
1178 |
+
.ui-icon-person { background-position: -144px -96px; }
|
1179 |
+
.ui-icon-print { background-position: -160px -96px; }
|
1180 |
+
.ui-icon-trash { background-position: -176px -96px; }
|
1181 |
+
.ui-icon-locked { background-position: -192px -96px; }
|
1182 |
+
.ui-icon-unlocked { background-position: -208px -96px; }
|
1183 |
+
.ui-icon-bookmark { background-position: -224px -96px; }
|
1184 |
+
.ui-icon-tag { background-position: -240px -96px; }
|
1185 |
+
.ui-icon-home { background-position: 0 -112px; }
|
1186 |
+
.ui-icon-flag { background-position: -16px -112px; }
|
1187 |
+
.ui-icon-calendar { background-position: -32px -112px; }
|
1188 |
+
.ui-icon-cart { background-position: -48px -112px; }
|
1189 |
+
.ui-icon-pencil { background-position: -64px -112px; }
|
1190 |
+
.ui-icon-clock { background-position: -80px -112px; }
|
1191 |
+
.ui-icon-disk { background-position: -96px -112px; }
|
1192 |
+
.ui-icon-calculator { background-position: -112px -112px; }
|
1193 |
+
.ui-icon-zoomin { background-position: -128px -112px; }
|
1194 |
+
.ui-icon-zoomout { background-position: -144px -112px; }
|
1195 |
+
.ui-icon-search { background-position: -160px -112px; }
|
1196 |
+
.ui-icon-wrench { background-position: -176px -112px; }
|
1197 |
+
.ui-icon-gear { background-position: -192px -112px; }
|
1198 |
+
.ui-icon-heart { background-position: -208px -112px; }
|
1199 |
+
.ui-icon-star { background-position: -224px -112px; }
|
1200 |
+
.ui-icon-link { background-position: -240px -112px; }
|
1201 |
+
.ui-icon-cancel { background-position: 0 -128px; }
|
1202 |
+
.ui-icon-plus { background-position: -16px -128px; }
|
1203 |
+
.ui-icon-plusthick { background-position: -32px -128px; }
|
1204 |
+
.ui-icon-minus { background-position: -48px -128px; }
|
1205 |
+
.ui-icon-minusthick { background-position: -64px -128px; }
|
1206 |
+
.ui-icon-close { background-position: -80px -128px; }
|
1207 |
+
.ui-icon-closethick { background-position: -96px -128px; }
|
1208 |
+
.ui-icon-key { background-position: -112px -128px; }
|
1209 |
+
.ui-icon-lightbulb { background-position: -128px -128px; }
|
1210 |
+
.ui-icon-scissors { background-position: -144px -128px; }
|
1211 |
+
.ui-icon-clipboard { background-position: -160px -128px; }
|
1212 |
+
.ui-icon-copy { background-position: -176px -128px; }
|
1213 |
+
.ui-icon-contact { background-position: -192px -128px; }
|
1214 |
+
.ui-icon-image { background-position: -208px -128px; }
|
1215 |
+
.ui-icon-video { background-position: -224px -128px; }
|
1216 |
+
.ui-icon-script { background-position: -240px -128px; }
|
1217 |
+
.ui-icon-alert { background-position: 0 -144px; }
|
1218 |
+
.ui-icon-info { background-position: -16px -144px; }
|
1219 |
+
.ui-icon-notice { background-position: -32px -144px; }
|
1220 |
+
.ui-icon-help { background-position: -48px -144px; }
|
1221 |
+
.ui-icon-check { background-position: -64px -144px; }
|
1222 |
+
.ui-icon-bullet { background-position: -80px -144px; }
|
1223 |
+
.ui-icon-radio-on { background-position: -96px -144px; }
|
1224 |
+
.ui-icon-radio-off { background-position: -112px -144px; }
|
1225 |
+
.ui-icon-pin-w { background-position: -128px -144px; }
|
1226 |
+
.ui-icon-pin-s { background-position: -144px -144px; }
|
1227 |
+
.ui-icon-play { background-position: 0 -160px; }
|
1228 |
+
.ui-icon-pause { background-position: -16px -160px; }
|
1229 |
+
.ui-icon-seek-next { background-position: -32px -160px; }
|
1230 |
+
.ui-icon-seek-prev { background-position: -48px -160px; }
|
1231 |
+
.ui-icon-seek-end { background-position: -64px -160px; }
|
1232 |
+
.ui-icon-seek-start { background-position: -80px -160px; }
|
1233 |
+
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
|
1234 |
+
.ui-icon-seek-first { background-position: -80px -160px; }
|
1235 |
+
.ui-icon-stop { background-position: -96px -160px; }
|
1236 |
+
.ui-icon-eject { background-position: -112px -160px; }
|
1237 |
+
.ui-icon-volume-off { background-position: -128px -160px; }
|
1238 |
+
.ui-icon-volume-on { background-position: -144px -160px; }
|
1239 |
+
.ui-icon-power { background-position: 0 -176px; }
|
1240 |
+
.ui-icon-signal-diag { background-position: -16px -176px; }
|
1241 |
+
.ui-icon-signal { background-position: -32px -176px; }
|
1242 |
+
.ui-icon-battery-0 { background-position: -48px -176px; }
|
1243 |
+
.ui-icon-battery-1 { background-position: -64px -176px; }
|
1244 |
+
.ui-icon-battery-2 { background-position: -80px -176px; }
|
1245 |
+
.ui-icon-battery-3 { background-position: -96px -176px; }
|
1246 |
+
.ui-icon-circle-plus { background-position: 0 -192px; }
|
1247 |
+
.ui-icon-circle-minus { background-position: -16px -192px; }
|
1248 |
+
.ui-icon-circle-close { background-position: -32px -192px; }
|
1249 |
+
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
|
1250 |
+
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
|
1251 |
+
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
|
1252 |
+
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
|
1253 |
+
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
|
1254 |
+
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
|
1255 |
+
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
|
1256 |
+
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
|
1257 |
+
.ui-icon-circle-zoomin { background-position: -176px -192px; }
|
1258 |
+
.ui-icon-circle-zoomout { background-position: -192px -192px; }
|
1259 |
+
.ui-icon-circle-check { background-position: -208px -192px; }
|
1260 |
+
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
|
1261 |
+
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
|
1262 |
+
.ui-icon-circlesmall-close { background-position: -32px -208px; }
|
1263 |
+
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
|
1264 |
+
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
|
1265 |
+
.ui-icon-squaresmall-close { background-position: -80px -208px; }
|
1266 |
+
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
|
1267 |
+
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
|
1268 |
+
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
1269 |
+
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
1270 |
+
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
1271 |
+
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
1272 |
+
|
1273 |
+
|
1274 |
+
/* Misc visuals
|
1275 |
+
----------------------------------*/
|
1276 |
+
|
1277 |
+
/* Corner radius */
|
1278 |
+
.ui-corner-all,
|
1279 |
+
.ui-corner-top,
|
1280 |
+
.ui-corner-left,
|
1281 |
+
.ui-corner-tl {
|
1282 |
+
border-top-left-radius: 3px;
|
1283 |
+
}
|
1284 |
+
.ui-corner-all,
|
1285 |
+
.ui-corner-top,
|
1286 |
+
.ui-corner-right,
|
1287 |
+
.ui-corner-tr {
|
1288 |
+
border-top-right-radius: 3px;
|
1289 |
+
}
|
1290 |
+
.ui-corner-all,
|
1291 |
+
.ui-corner-bottom,
|
1292 |
+
.ui-corner-left,
|
1293 |
+
.ui-corner-bl {
|
1294 |
+
border-bottom-left-radius: 3px;
|
1295 |
+
}
|
1296 |
+
.ui-corner-all,
|
1297 |
+
.ui-corner-bottom,
|
1298 |
+
.ui-corner-right,
|
1299 |
+
.ui-corner-br {
|
1300 |
+
border-bottom-right-radius: 3px;
|
1301 |
+
}
|
1302 |
+
|
1303 |
+
/* Overlays */
|
1304 |
+
.ui-widget-overlay {
|
1305 |
+
background: #aaaaaa;
|
1306 |
+
opacity: .3;
|
1307 |
+
filter: Alpha(Opacity=30); /* support: IE8 */
|
1308 |
+
}
|
1309 |
+
.ui-widget-shadow {
|
1310 |
+
-webkit-box-shadow: 0px 0px 5px #666666;
|
1311 |
+
box-shadow: 0px 0px 5px #666666;
|
1312 |
+
}
|
assets/css/jquery-ui.min.css
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*! jQuery UI - v1.12.1 - 2017-02-15
|
2 |
+
* http://jqueryui.com
|
3 |
+
* Includes: draggable.css, core.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css
|
4 |
+
* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=base&cornerRadiusShadow=8px&offsetLeftShadow=0px&offsetTopShadow=0px&thicknessShadow=5px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=666666&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cc0000&fcError=5f3f3f&borderColorError=f1a899&bgTextureError=flat&bgColorError=fddfdf&iconColorHighlight=777620&fcHighlight=777620&borderColorHighlight=dad55e&bgTextureHighlight=flat&bgColorHighlight=fffa90&iconColorActive=ffffff&fcActive=ffffff&borderColorActive=003eff&bgTextureActive=flat&bgColorActive=007fff&iconColorHover=555555&fcHover=2b2b2b&borderColorHover=cccccc&bgTextureHover=flat&bgColorHover=ededed&iconColorDefault=777777&fcDefault=454545&borderColorDefault=c5c5c5&bgTextureDefault=flat&bgColorDefault=f6f6f6&iconColorContent=444444&fcContent=333333&borderColorContent=dddddd&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=444444&fcHeader=333333&borderColorHeader=dddddd&bgTextureHeader=flat&bgColorHeader=e9e9e9&cornerRadius=3px&fwDefault=normal&fsDefault=1em&ffDefault=Arial%2CHelvetica%2Csans-serif
|
5 |
+
* Copyright jQuery Foundation and other contributors; Licensed MIT */
|
6 |
+
|
7 |
+
.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;font-size:100%}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup > .ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup > .ui-controlgroup-item:focus,.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical > .ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc( 100% - 2.4em )}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #c5c5c5}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #ddd;background:#e9e9e9;color:#333;font-weight:bold}.ui-widget-header a{color:#333}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:normal;color:#454545}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#454545;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #ccc;background:#ededed;font-weight:normal;color:#2b2b2b}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#2b2b2b;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #003eff;background:#007fff;font-weight:normal;color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#003eff;background-color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-checked{border:1px solid #dad55e;background:#fffa90}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#5f3f3f}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_555555_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_777620_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cc0000_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_777777_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:3px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:0 0 5px #666;box-shadow:0 0 5px #666}
|
assets/js/otd-datepicker.js
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Datepicker format
|
3 |
+
*/
|
4 |
+
|
5 |
+
jQuery(function() {
|
6 |
+
jQuery( ".datepicker" ).datepicker({
|
7 |
+
dateFormat : "mm-dd"
|
8 |
+
});
|
9 |
+
});
|
changelog.txt
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
=== 1.0.0 ===
|
2 |
+
|
3 |
+
* September 2018 by Ipstenu
|
4 |
+
* Reboot and rebranding - all the good, none of the bad.
|
gutenberg/_main.php
ADDED
@@ -0,0 +1,134 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Plugin File: Gutenberg Blocks
|
4 |
+
* @since 1.0
|
5 |
+
*/
|
6 |
+
|
7 |
+
if ( ! defined( 'WPINC' ) ) {
|
8 |
+
die;
|
9 |
+
}
|
10 |
+
|
11 |
+
class LezWatchTV_Gutenblocks {
|
12 |
+
|
13 |
+
protected static $directory;
|
14 |
+
|
15 |
+
public function __construct() {
|
16 |
+
self::$directory = dirname( __FILE__ );
|
17 |
+
|
18 |
+
//add_action( 'init', array( $this, 'died_on_this_day' ) );
|
19 |
+
add_action( 'init', array( $this, 'of_the_day' ) );
|
20 |
+
add_action( 'init', array( $this, 'last_death' ) );
|
21 |
+
|
22 |
+
// Add a block category
|
23 |
+
add_filter( 'block_categories', function( $categories, $post ) {
|
24 |
+
return array_merge(
|
25 |
+
$categories,
|
26 |
+
array(
|
27 |
+
array(
|
28 |
+
'slug' => 'lezwatchtv',
|
29 |
+
'title' => 'LezWatchTV',
|
30 |
+
),
|
31 |
+
)
|
32 |
+
);
|
33 |
+
}, 10, 2 );
|
34 |
+
}
|
35 |
+
|
36 |
+
public function last_death() {
|
37 |
+
$index_js = 'last-death/index.js';
|
38 |
+
wp_register_script(
|
39 |
+
'last-death-editor',
|
40 |
+
plugins_url( $index_js, __FILE__ ),
|
41 |
+
array( 'wp-blocks', 'wp-element', 'wp-components', 'wp-editor' ),
|
42 |
+
filemtime( self::$directory . '/' . $index_js ),
|
43 |
+
false
|
44 |
+
);
|
45 |
+
|
46 |
+
$style_css = 'last-death/style.css';
|
47 |
+
wp_register_style(
|
48 |
+
'last-death-style',
|
49 |
+
plugins_url( $style_css, __FILE__ ),
|
50 |
+
array( 'wp-editor', 'wp-blocks' ),
|
51 |
+
filemtime( self::$directory . '/' . $style_css )
|
52 |
+
);
|
53 |
+
|
54 |
+
register_block_type(
|
55 |
+
'lezwatchtv/last-death',
|
56 |
+
array(
|
57 |
+
'attributes' => array(),
|
58 |
+
'editor_script' => 'last-death-editor',
|
59 |
+
'render_callback' => array( 'LezWatchTV', 'last_death' ),
|
60 |
+
)
|
61 |
+
);
|
62 |
+
}
|
63 |
+
|
64 |
+
public function of_the_day() {
|
65 |
+
$index_js = 'of-the-day/index.js';
|
66 |
+
wp_register_script(
|
67 |
+
'of-the-day-editor',
|
68 |
+
plugins_url( $index_js, __FILE__ ),
|
69 |
+
array( 'wp-blocks', 'wp-element', 'wp-components', 'wp-editor' ),
|
70 |
+
filemtime( self::$directory . '/' . $index_js ),
|
71 |
+
false
|
72 |
+
);
|
73 |
+
|
74 |
+
$style_css = 'of-the-day/style.css';
|
75 |
+
wp_register_style(
|
76 |
+
'of-the-day-style',
|
77 |
+
plugins_url( $style_css, __FILE__ ),
|
78 |
+
array( 'wp-editor', 'wp-blocks' ),
|
79 |
+
filemtime( self::$directory . '/' . $style_css )
|
80 |
+
);
|
81 |
+
|
82 |
+
register_block_type(
|
83 |
+
'lezwatchtv/of-the-day',
|
84 |
+
array(
|
85 |
+
'attributes' => array(
|
86 |
+
'data' => array(
|
87 |
+
'type' => 'string',
|
88 |
+
'default' => 'of-the-day',
|
89 |
+
),
|
90 |
+
'otd' => array(
|
91 |
+
'type' => 'string',
|
92 |
+
),
|
93 |
+
),
|
94 |
+
'editor_script' => 'of-the-day-editor',
|
95 |
+
'style' => 'of-the-day-style',
|
96 |
+
'render_callback' => array( 'LezWatchTV', 'shortcode' ),
|
97 |
+
)
|
98 |
+
);
|
99 |
+
}
|
100 |
+
|
101 |
+
public function died_on_this_day() {
|
102 |
+
$index_js = 'died-on-this-day/index.js';
|
103 |
+
wp_register_script(
|
104 |
+
'died-on-this-day-editor',
|
105 |
+
plugins_url( $index_js, __FILE__ ),
|
106 |
+
array( 'wp-blocks', 'wp-element', 'wp-components', 'wp-editor' ),
|
107 |
+
filemtime( self::$directory . '/' . $index_js ),
|
108 |
+
false
|
109 |
+
);
|
110 |
+
|
111 |
+
register_block_type(
|
112 |
+
'lezwatchtv/died-on-this-day',
|
113 |
+
array(
|
114 |
+
'attributes' => array(
|
115 |
+
'data' => array(
|
116 |
+
'type' => 'string',
|
117 |
+
'default' => 'on-this-day',
|
118 |
+
),
|
119 |
+
'date' => array(
|
120 |
+
'type' => 'array',
|
121 |
+
'default' => time(),
|
122 |
+
),
|
123 |
+
),
|
124 |
+
'editor_script' => 'died-on-this-day-editor',
|
125 |
+
'render_callback' => array( 'LezWatchTV', 'shortcode' ),
|
126 |
+
)
|
127 |
+
);
|
128 |
+
}
|
129 |
+
|
130 |
+
}
|
131 |
+
|
132 |
+
if ( function_exists( 'register_block_type' ) ) {
|
133 |
+
new LezWatchTV_Gutenblocks();
|
134 |
+
}
|
gutenberg/died-on-this-day/index.js
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// License: GPLv2+
|
2 |
+
// https://gist.github.com/pento/cf38fd73ce0f13fcf0f0ae7d6c4b685d
|
3 |
+
|
4 |
+
var el = wp.element.createElement,
|
5 |
+
registerBlockType = wp.blocks.registerBlockType,
|
6 |
+
ServerSideRender = wp.components.ServerSideRender,
|
7 |
+
DateTimePicker = wp.components.DateTimePicker,
|
8 |
+
InspectorControls = wp.editor.InspectorControls;
|
9 |
+
|
10 |
+
// https://fontawesome.com/icons/dizzy?style=regular
|
11 |
+
const iconDizzy = el('svg', { width: 20, height: 20, viewBox: '0 0 496 512' },
|
12 |
+
el('path', { d: "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-33.8-217.9c7.8-7.8 7.8-20.5 0-28.3L196.3 192l17.9-17.9c7.8-7.8 7.8-20.5 0-28.3-7.8-7.8-20.5-7.8-28.3 0L168 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.9 7.7 20.5 7.7 28.4-.2zm160-92.2c-7.8-7.8-20.5-7.8-28.3 0L328 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.8 7.8 20.5 7.8 28.3 0 7.8-7.8 7.8-20.5 0-28.3l-17.8-18 17.9-17.9c7.7-7.8 7.7-20.4 0-28.2zM248 272c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64z" } )
|
13 |
+
);
|
14 |
+
|
15 |
+
registerBlockType( 'lezwatchtv/died-on-this-day', {
|
16 |
+
title: 'Died On This Day (LezWatchTV)',
|
17 |
+
icon: iconDizzy,
|
18 |
+
category: 'lezwatchtv',
|
19 |
+
|
20 |
+
edit: function( props ) {
|
21 |
+
return [
|
22 |
+
el( ServerSideRender, {
|
23 |
+
block: 'lezwatchtv/died-on-this-day',
|
24 |
+
attributes: props.attributes,
|
25 |
+
} ),
|
26 |
+
el( InspectorControls, {},
|
27 |
+
el( DateTimePicker, {
|
28 |
+
currentTime : props.attributes.date,
|
29 |
+
locale : 'en',
|
30 |
+
onChange: ( selected ) => { props.setAttributes( { date: selected } ); },
|
31 |
+
selected : props.attributes.date
|
32 |
+
} )
|
33 |
+
),
|
34 |
+
];
|
35 |
+
},
|
36 |
+
|
37 |
+
save: function() {
|
38 |
+
return null;
|
39 |
+
},
|
40 |
+
} );
|
gutenberg/last-death/index.js
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// License: GPLv2+
|
2 |
+
// https://gist.github.com/pento/cf38fd73ce0f13fcf0f0ae7d6c4b685d
|
3 |
+
|
4 |
+
var el = wp.element.createElement,
|
5 |
+
registerBlockType = wp.blocks.registerBlockType,
|
6 |
+
ServerSideRender = wp.components.ServerSideRender;
|
7 |
+
|
8 |
+
// https://fontawesome.com/icons/skull?style=solid
|
9 |
+
const iconSkull = el('svg', { width: 20, height: 20, viewBox: '0 0 512 512' },
|
10 |
+
el('path', { d: "M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z" } )
|
11 |
+
);
|
12 |
+
|
13 |
+
registerBlockType( 'lezwatchtv/last-death', {
|
14 |
+
title: 'Last Death (LezWatchTV)',
|
15 |
+
icon: iconSkull,
|
16 |
+
category: 'lezwatchtv',
|
17 |
+
|
18 |
+
|
19 |
+
edit: function( props ) {
|
20 |
+
return [
|
21 |
+
el( ServerSideRender, {
|
22 |
+
block: 'lezwatchtv/last-death',
|
23 |
+
} ),
|
24 |
+
];
|
25 |
+
},
|
26 |
+
|
27 |
+
save: function() {
|
28 |
+
return null;
|
29 |
+
},
|
30 |
+
} );
|
gutenberg/last-death/style.css
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.lezwatchtv.last-death {
|
2 |
+
background-color: #ebf5fa;
|
3 |
+
font-size: 0.875rem;
|
4 |
+
padding: 1rem;
|
5 |
+
}
|
gutenberg/of-the-day/index.js
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// License: GPLv2+
|
2 |
+
// https://gist.github.com/pento/cf38fd73ce0f13fcf0f0ae7d6c4b685d
|
3 |
+
|
4 |
+
var el = wp.element.createElement,
|
5 |
+
registerBlockType = wp.blocks.registerBlockType,
|
6 |
+
ServerSideRender = wp.components.ServerSideRender,
|
7 |
+
SelectControl = wp.components.SelectControl,
|
8 |
+
InspectorControls = wp.editor.InspectorControls;
|
9 |
+
|
10 |
+
// https://fontawesome.com/icons/calendar-check?style=regular
|
11 |
+
const iconCalendar = el('svg', { width: 20, height: 20, viewBox: '0 0 482 512' },
|
12 |
+
el('path', { d: "M400 64h-48V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H160V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V160h352v298a6 6 0 0 1-6 6zm-52.849-200.65L198.842 404.519c-4.705 4.667-12.303 4.637-16.971-.068l-75.091-75.699c-4.667-4.705-4.637-12.303.068-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l44.104 44.461 111.072-110.181c4.705-4.667 12.303-4.637 16.971.068l22.536 22.718c4.667 4.705 4.636 12.303-.069 16.97z" } )
|
13 |
+
);
|
14 |
+
|
15 |
+
registerBlockType( 'lezwatchtv/of-the-day', {
|
16 |
+
title: '... Of The Day (LezWatchTV)',
|
17 |
+
icon: iconCalendar,
|
18 |
+
category: 'lezwatchtv',
|
19 |
+
|
20 |
+
edit: function( props ) {
|
21 |
+
return [
|
22 |
+
el( ServerSideRender, {
|
23 |
+
block: 'lezwatchtv/of-the-day',
|
24 |
+
attributes: props.attributes,
|
25 |
+
} ),
|
26 |
+
el( InspectorControls, {},
|
27 |
+
el( SelectControl, {
|
28 |
+
type: 'string',
|
29 |
+
label: 'Content Type',
|
30 |
+
value: props.attributes.otd,
|
31 |
+
onChange: ( value ) => { props.setAttributes( { otd: value } ); },
|
32 |
+
options: [
|
33 |
+
{ value: 'character', label: 'Character' },
|
34 |
+
{ value: 'show', label: 'TV Show' },
|
35 |
+
{ value: 'death', label: 'Character Death' },
|
36 |
+
{ value: 'birthday', label: 'Actor Birthday' },
|
37 |
+
],
|
38 |
+
} )
|
39 |
+
),
|
40 |
+
];
|
41 |
+
},
|
42 |
+
|
43 |
+
save: function() {
|
44 |
+
return null;
|
45 |
+
},
|
46 |
+
} );
|
gutenberg/of-the-day/style.css
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
.lezwatchtv.of-the-day {
|
2 |
+
text-align: center;
|
3 |
+
}
|
lezwatchtv-main.php
ADDED
@@ -0,0 +1,391 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Plugin Name: LezWatch.TV News & Information
|
4 |
+
* Plugin URI: https://lezwatchtv.com/about/resources/
|
5 |
+
* Description: Display information on queer female and trans representation on TV. Brought to you by LezWatch.TV.
|
6 |
+
* Version: 1.0.0
|
7 |
+
* Author: LezWatch.TV
|
8 |
+
* Author URI: https://lezwatchtv.com/
|
9 |
+
* License: GPLv2 (or Later)
|
10 |
+
*
|
11 |
+
* Copyright 2017-18 LezWatch.TV (email: webmaster@lezwatchtv.com)
|
12 |
+
*
|
13 |
+
* This file is part of LezWatch.TV News & Information, a plugin for WordPress.
|
14 |
+
*
|
15 |
+
* This plugin is free software: you can redistribute it and/or modify
|
16 |
+
* it under the terms of the GNU General Public License as published by
|
17 |
+
* the Free Software Foundation, either version 2 of the License, or
|
18 |
+
* (at your option) any later version.
|
19 |
+
*
|
20 |
+
* This plugin is distributed in the hope that it will be useful,
|
21 |
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
22 |
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
23 |
+
* GNU General Public License for more details.
|
24 |
+
*
|
25 |
+
* You should have received a copy of the GNU General Public License
|
26 |
+
* along with WordPress. If not, see <http://www.gnu.org/licenses/>.
|
27 |
+
*/
|
28 |
+
|
29 |
+
/*
|
30 |
+
* class LezWatch.TV
|
31 |
+
*
|
32 |
+
* Main class for plugin
|
33 |
+
*
|
34 |
+
* @since 1.0
|
35 |
+
*/
|
36 |
+
class LezWatchTV {
|
37 |
+
|
38 |
+
protected static $version;
|
39 |
+
public static $apiurl;
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Constructor
|
43 |
+
*/
|
44 |
+
public function __construct() {
|
45 |
+
add_action( 'widgets_init', array( $this, 'register_widgets' ) );
|
46 |
+
add_action( 'admin_init', array( $this, 'admin_init' ) );
|
47 |
+
add_action( 'init', array( $this, 'init' ) );
|
48 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
|
49 |
+
|
50 |
+
self::$version = '1.0.0';
|
51 |
+
self::$apiurl = 'https://lezwatchtv.com/wp-json/lwtv/v1';
|
52 |
+
|
53 |
+
// This should only apply to LWTV Dev sites.
|
54 |
+
if ( WP_DEBUG && ( defined( 'LWTV_DEV_SITE' ) && LWTV_DEV_SITE ) ) {
|
55 |
+
self::$apiurl = home_url() . '/wp-json/lwtv/v1';
|
56 |
+
}
|
57 |
+
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Admin Init
|
61 |
+
*/
|
62 |
+
public function admin_init() {
|
63 |
+
if ( is_plugin_active( 'bury-your-queers/bury-your-queers.php' ) ) {
|
64 |
+
deactivate_plugins( 'bury-your-queers/bury-your-queers.php' );
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Init
|
70 |
+
*/
|
71 |
+
public function init() {
|
72 |
+
add_shortcode( 'lwtv', array( $this, 'shortcode' ) );
|
73 |
+
add_filter( 'plugin_row_meta', array( $this, 'donate_link' ), 10, 2 );
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Admin Scripts
|
78 |
+
*/
|
79 |
+
public function admin_enqueue_scripts( $hook ) {
|
80 |
+
if ( 'widgets.php' !== $hook ) {
|
81 |
+
return;
|
82 |
+
}
|
83 |
+
|
84 |
+
wp_enqueue_script( 'lwtv-onthisday', plugins_url( 'assets/js/otd-datepicker.js', __FILE__ ), array( 'jquery-ui-datepicker' ), self::$version, true );
|
85 |
+
wp_enqueue_style( 'jquery-ui', plugins_url( 'assets/css/jquery-ui.css', __FILE__ ), array(), self::$version );
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* Shortcode
|
90 |
+
*/
|
91 |
+
public static function shortcode( $atts ) {
|
92 |
+
$attributes = shortcode_atts(
|
93 |
+
[
|
94 |
+
'data' => 'of-the-day',
|
95 |
+
'date' => 'today',
|
96 |
+
'stat' => 'all',
|
97 |
+
'otd' => 'character',
|
98 |
+
],
|
99 |
+
$atts
|
100 |
+
);
|
101 |
+
|
102 |
+
$this_day = sanitize_text_field( $attributes['date'] );
|
103 |
+
$stat_fmt = sanitize_text_field( $attributes['stat'] );
|
104 |
+
$otd_type = sanitize_text_field( $attributes['otd'] );
|
105 |
+
|
106 |
+
switch ( $attributes['data'] ) {
|
107 |
+
case 'last-death':
|
108 |
+
$return = self::last_death();
|
109 |
+
break;
|
110 |
+
case 'of-the-day':
|
111 |
+
$return = self::of_the_day( $otd_type );
|
112 |
+
break;
|
113 |
+
case 'on-this-day':
|
114 |
+
case 'died-on-this-day':
|
115 |
+
$return = self::died_on_this_day( $this_day );
|
116 |
+
break;
|
117 |
+
case 'stats':
|
118 |
+
$return = self::statistics( $stat_fmt );
|
119 |
+
break;
|
120 |
+
case 'this-year':
|
121 |
+
$return = self::this_year( $this_day );
|
122 |
+
break;
|
123 |
+
default:
|
124 |
+
$return = '';
|
125 |
+
}
|
126 |
+
|
127 |
+
return $return;
|
128 |
+
}
|
129 |
+
|
130 |
+
/**
|
131 |
+
* Register Widgets
|
132 |
+
*/
|
133 |
+
public function register_widgets() {
|
134 |
+
|
135 |
+
$widgets = array( 'LezWatchTV_Last_Death_Widget', 'LezWatchTV_Of_The_Day_Widget', 'LezWatchTV_On_This_Day_Widget', 'LezWatchTV_Statistics_Widget', 'LezWatchTV_This_Year_Widget' );
|
136 |
+
|
137 |
+
foreach ( $widgets as $widget ) {
|
138 |
+
$this->widget = new $widget();
|
139 |
+
register_widget( $this->widget );
|
140 |
+
}
|
141 |
+
}
|
142 |
+
|
143 |
+
/**
|
144 |
+
* The Last Death
|
145 |
+
* Code that generates the last death
|
146 |
+
*/
|
147 |
+
public static function last_death() {
|
148 |
+
|
149 |
+
$request = wp_remote_get( self::$apiurl . '/last-death/' );
|
150 |
+
|
151 |
+
// Make sure it's running before we do anything...
|
152 |
+
if ( wp_remote_retrieve_response_code( $request ) !== 200 ) {
|
153 |
+
$response = __( '<p>LezWatch.TV is temporarily offline, but will return soon.</p>', 'lezwatchtv' );
|
154 |
+
} else {
|
155 |
+
$response = wp_remote_retrieve_body( $request );
|
156 |
+
$response = json_decode( $response, true );
|
157 |
+
// translators: %s is the amount of time since a queer death (1 day, 2 days, 1 month, etc)
|
158 |
+
$return = '<p>' . sprintf( __( 'It has been %s since the last queer female death on television', 'lezwatchtv' ), '<strong>' . human_time_diff( $response['died'], current_time( 'timestamp' ) ) . '</strong> ' );
|
159 |
+
$return .= ': <a href="' . $response['url'] . '">' . $response['name'] . '</a> - ' . date( 'F j, Y', $response['died'] ) . '</p>';
|
160 |
+
}
|
161 |
+
|
162 |
+
$return = '<div class="lezwatchtv last-death">' . $return . '</div>';
|
163 |
+
|
164 |
+
return $return;
|
165 |
+
}
|
166 |
+
|
167 |
+
/**
|
168 |
+
* Of The Day
|
169 |
+
* Code that generates the Of The Day code
|
170 |
+
*/
|
171 |
+
public static function of_the_day( $type = 'character' ) {
|
172 |
+
|
173 |
+
// Quick Failsafe
|
174 |
+
$valid_types = array( 'character', 'show', 'death', 'birthday' );
|
175 |
+
if ( ! in_array( $type, $valid_types, true ) ) {
|
176 |
+
$type = 'character';
|
177 |
+
}
|
178 |
+
|
179 |
+
$request = wp_remote_get( self::$apiurl . '/of-the-day/' . $type );
|
180 |
+
|
181 |
+
// Make sure it's running before we do anything...
|
182 |
+
if ( wp_remote_retrieve_response_code( $request ) !== 200 ) {
|
183 |
+
return __( '<p>LezWatch.TV is temporarily offline, but will return soon.</p>', 'lezwatchtv' );
|
184 |
+
}
|
185 |
+
|
186 |
+
$response = wp_remote_retrieve_body( $request );
|
187 |
+
$response = json_decode( $response, true );
|
188 |
+
|
189 |
+
switch ( $type ) {
|
190 |
+
case 'death':
|
191 |
+
$image = '';
|
192 |
+
$title = '';
|
193 |
+
$content = self::died_on_this_day( 'today' );
|
194 |
+
break;
|
195 |
+
case 'birthday':
|
196 |
+
if ( ! empty( $response ) && isset( $response['birthdays'] ) ) {
|
197 |
+
$image = '<img src="' . plugins_url( 'assets/birthday.jpg', __FILE__ ) . '" width="' . get_option( 'medium_size_w' ) . '">';
|
198 |
+
$content = $response['birthdays'];
|
199 |
+
} else {
|
200 |
+
$image = '';
|
201 |
+
$title = '';
|
202 |
+
$content = __( 'No one is celebrating a birthday today.', 'lezwatchtv' );
|
203 |
+
}
|
204 |
+
break;
|
205 |
+
default:
|
206 |
+
$image = '<a href="' . $response['url'] . '"><img src="' . $response['image'] . '" width="' . get_option( 'medium_size_w' ) . '"></a><br />';
|
207 |
+
$content = '<a href="' . $response['url'] . '">' . $response['name'] . '</a>';
|
208 |
+
}
|
209 |
+
|
210 |
+
$return = '<div class="lezwatchtv of-the-day ' . $type . '-of-the-day">' . $image . $content . '</div>';
|
211 |
+
|
212 |
+
return $return;
|
213 |
+
}
|
214 |
+
|
215 |
+
/**
|
216 |
+
* On This Day
|
217 |
+
* Code that generates the On This Day death code
|
218 |
+
*/
|
219 |
+
public static function died_on_this_day( $this_day = 'today' ) {
|
220 |
+
|
221 |
+
$this_day = sanitize_text_field( $this_day );
|
222 |
+
if ( 'today' !== $this_day ) {
|
223 |
+
$month = substr( $this_day, 0, 2 );
|
224 |
+
$day = substr( $this_day, 3, 2 );
|
225 |
+
$this_day = ( true === checkdate( $month, $day, date( 'Y' ) ) ) ? $this_day : 'today';
|
226 |
+
}
|
227 |
+
|
228 |
+
$echo_day = ( 'today' === $this_day ) ? time() : strtotime( date( 'Y' ) . '-' . $this_day );
|
229 |
+
$json_day = ( 'today' === $this_day ) ? '' : $this_day . '/';
|
230 |
+
$request = wp_remote_get( self::$apiurl . '/on-this-day/' . $json_day );
|
231 |
+
|
232 |
+
// Make sure it's running before we do anything...
|
233 |
+
if ( wp_remote_retrieve_response_code( $request ) !== 200 ) {
|
234 |
+
return __( '<p>LezWatch.TV is temporarily offline, but will return soon.</p>', 'lezwatchtv' );
|
235 |
+
}
|
236 |
+
|
237 |
+
$response = wp_remote_retrieve_body( $request );
|
238 |
+
$response = json_decode( $response, true );
|
239 |
+
|
240 |
+
$count = ( 'none' === key( $response ) ) ? 0 : count( $response );
|
241 |
+
$how_many = __( 'no characters died!', 'lezwatchtv' );
|
242 |
+
$the_dead = '';
|
243 |
+
|
244 |
+
if ( $count > 0 ) {
|
245 |
+
// translators: %s is the number of dead characters.
|
246 |
+
$how_many = sprintf( _n( '%s character died:', '%s characters died:', $count, 'lezwatchtv' ), $count );
|
247 |
+
|
248 |
+
$the_dead = '<ul class="byq-otd">';
|
249 |
+
|
250 |
+
foreach ( $response as $dead_character ) {
|
251 |
+
$the_dead .= '<li><a href="' . $dead_character['url'] . '">' . $dead_character['name'] . '</a> - ' . $dead_character['died'] . '</li>';
|
252 |
+
}
|
253 |
+
$the_dead .= '</ul>';
|
254 |
+
}
|
255 |
+
|
256 |
+
// translators: %1$s is the date; %2$s is the number of dead
|
257 |
+
$onthisday = '<p>' . sprintf( __( 'On %1$s, %2$s', 'lezwatchtv' ), date( 'F jS', $echo_day ), $how_many ) . '</p>';
|
258 |
+
$return = $onthisday . $the_dead;
|
259 |
+
|
260 |
+
return $return;
|
261 |
+
}
|
262 |
+
|
263 |
+
/**
|
264 |
+
* Statistics
|
265 |
+
* Code that generates the stats of death code
|
266 |
+
*/
|
267 |
+
public static function statistics( $format = 'all' ) {
|
268 |
+
$format = sanitize_text_field( $format );
|
269 |
+
|
270 |
+
// Request Data
|
271 |
+
$request = wp_remote_get( self::$apiurl . '/stats/death/' );
|
272 |
+
|
273 |
+
// Make sure it's running before we do anything...
|
274 |
+
if ( wp_remote_retrieve_response_code( $request ) !== 200 ) {
|
275 |
+
return __( '<p>LezWatch.TV is temporarily offline, but will return soon.</p>', 'lezwatchtv' );
|
276 |
+
}
|
277 |
+
|
278 |
+
$response = wp_remote_retrieve_body( $request );
|
279 |
+
$response = json_decode( $response, true );
|
280 |
+
|
281 |
+
// The Math part
|
282 |
+
$live_chars = $response['characters']['alive'];
|
283 |
+
$dead_chars = $response['characters']['dead'];
|
284 |
+
$total_chars = $live_chars + $dead_chars;
|
285 |
+
$percent_chars = number_format( ( $dead_chars / $total_chars ) * 100, 2 );
|
286 |
+
|
287 |
+
$live_shows = $response['shows']['no-death'];
|
288 |
+
$dead_shows = $response['shows']['death'];
|
289 |
+
$total_shows = $live_shows + $dead_shows;
|
290 |
+
$percent_shows = number_format( ( $dead_shows / $total_shows ) * 100, 2 );
|
291 |
+
|
292 |
+
// translators: %1$s is the number of dead characters out of %2$s total characters.
|
293 |
+
$character_return = sprintf( __( 'There are %1$s dead characters out of %2$s.', 'lezwatchtv' ), $live_chars, $total_chars );
|
294 |
+
// translators: %s is the percentage of dead.
|
295 |
+
$character_percent_return = sprintf( __( '%s%% of all queer females on TV are dead.', 'lezwatchtv' ), $percent_chars );
|
296 |
+
|
297 |
+
// translators: %1$s is the number of shows with dead characters out of %2$s total shows.
|
298 |
+
$show_return = sprintf( __( 'There are %1$s shows with dead characters out of %2$s.', 'lezwatchtv' ), $dead_shows, $total_shows );
|
299 |
+
// translators: %s is the percentage of shows with dead.
|
300 |
+
$show_percent_return = sprintf( __( '%s%% of TV shows with any queer female have at least one dead.', 'lezwatchtv' ), $percent_shows );
|
301 |
+
|
302 |
+
switch ( $format ) {
|
303 |
+
case 'characters':
|
304 |
+
$return = $character_percent_return;
|
305 |
+
break;
|
306 |
+
|
307 |
+
case 'shows':
|
308 |
+
$return = $show_percent_return;
|
309 |
+
break;
|
310 |
+
|
311 |
+
default:
|
312 |
+
$return = $character_percent_return . ' ' . $show_percent_return;
|
313 |
+
}
|
314 |
+
return '<p>' . $return . '</p>';
|
315 |
+
}
|
316 |
+
|
317 |
+
|
318 |
+
/**
|
319 |
+
* this_year function.
|
320 |
+
*
|
321 |
+
* @access public
|
322 |
+
* @param bool $year (default: false)
|
323 |
+
* @return void
|
324 |
+
*/
|
325 |
+
public function this_year( $year = false ) {
|
326 |
+
|
327 |
+
// If the year isn't valid, we default to this year
|
328 |
+
$year = ( ! $year || ! preg_match( '/^[0-9]{4}$/', $year ) ) ? date( 'Y' ) : $year;
|
329 |
+
|
330 |
+
// Get the data
|
331 |
+
$request = wp_remote_get( self::$apiurl . '/what-happened/' . $year );
|
332 |
+
|
333 |
+
// Make sure it's running before we do anything...
|
334 |
+
if ( wp_remote_retrieve_response_code( $request ) !== 200 ) {
|
335 |
+
return __( '<p>LezWatch.TV is temporarily offline, but will return soon.</p>', 'lezwatchtv' );
|
336 |
+
}
|
337 |
+
|
338 |
+
$response = wp_remote_retrieve_body( $request );
|
339 |
+
$response = json_decode( $response, true );
|
340 |
+
|
341 |
+
// If we got an error, bail
|
342 |
+
if ( array_key_exists( 'success', $response ) && ! $response['success'] ) {
|
343 |
+
// translators: %s is a year. Probably 1961.
|
344 |
+
$fail = sprintf( __( 'There were no queer female or trans characters on TV prior to %s.', 'lezwatchtv' ), $response['data'] );
|
345 |
+
return $fail;
|
346 |
+
}
|
347 |
+
|
348 |
+
// Posts etc made.
|
349 |
+
// translators: %s is the number of characters
|
350 |
+
$characters = ( 0 === $response['characters'] ) ? __( 'no characters', 'lezwatchtv' ) : sprintf( _n( '%s character', '%s characters', $response['characters'], 'bury-your-queers' ), $response['characters'] );
|
351 |
+
// translators: %s is the number of shows
|
352 |
+
$shows = ( 0 === $response['shows'] ) ? 'no shows' : sprintf( _n( '%s show', '%s shows', $response['shows'], 'bury-your-queers' ), $response['shows'] );
|
353 |
+
// translators: %s is the number of posts
|
354 |
+
$posts = ( 0 === $response['posts'] ) ? 'no posts' : sprintf( _n( '%s post', '%s posts', $response['posts'], 'bury-your-queers' ), $response['posts'] );
|
355 |
+
|
356 |
+
// This Year On Air information:
|
357 |
+
// translators: %s is the number of shows on air in that year
|
358 |
+
$on_air = ( 0 === $response['on_air']['current'] ) ? __( 'no shows', 'lezwatchtv' ) : sprintf( _n( '%s show', '%s shows', $response['on_air']['current'], 'bury-your-queers' ), $response['on_air']['current'] );
|
359 |
+
// translators: %s is the number of shows that started in that year
|
360 |
+
$started = ( 0 === $response['on_air']['started'] ) ? __( 'no shows', 'lezwatchtv' ) : sprintf( _n( 'Only %s show', 'A total of %s shows', $response['on_air']['started'], 'bury-your-queers' ), $response['on_air']['started'] );
|
361 |
+
// translators: %s is the number of shows that ended in that year
|
362 |
+
$ended = ( 0 === $response['on_air']['ended'] ) ? __( 'no shows', 'lezwatchtv' ) : sprintf( _n( 'only %s show', '%s shows', $response['on_air']['ended'], 'bury-your-queers' ), $response['on_air']['ended'] );
|
363 |
+
|
364 |
+
// Death
|
365 |
+
// translators: %s is the number of characters that died in that year
|
366 |
+
$death_this_year = ( 0 === $response['dead_year'] ) ? __( 'Amazingly no characters died', 'lezwatchtv' ) : sprintf( _n( 'Only %s character died', 'Sadly, %s characters died', $response['dead_year'], 'bury-your-queers' ), $response['dead_year'] );
|
367 |
+
|
368 |
+
// The Output
|
369 |
+
// translators: %1$s is the year; %2$s is the number of characters on TV that Year; %3$s is the number of shows that begun that year; %4$s is the number of shows that ended that year; %5$s is the all the stuff about dead that year
|
370 |
+
$return = sprintf( __( 'In %1$s, there were %2$s with queer female or trans characters on the air. %3$s started and %4$s ended that year. %5$s.', 'lezwatchtv' ), $year, $on_air, $started, $ended, $death_this_year );
|
371 |
+
|
372 |
+
return $return;
|
373 |
+
}
|
374 |
+
|
375 |
+
// donate link on manage plugin page
|
376 |
+
public function donate_link( $links, $file ) {
|
377 |
+
if ( plugin_basename( __FILE__ ) === $file ) {
|
378 |
+
$donate_link = '<a href="https://ko-fi.com/A236CEN/">' . __( 'Donate', 'lezwatchtv' ) . '</a>';
|
379 |
+
$links[] = $donate_link;
|
380 |
+
}
|
381 |
+
return $links;
|
382 |
+
}
|
383 |
+
|
384 |
+
}
|
385 |
+
new LezWatchTV();
|
386 |
+
|
387 |
+
// Include Widgets
|
388 |
+
require_once 'widgets/_main.php';
|
389 |
+
|
390 |
+
// Include Gutenberg
|
391 |
+
require_once 'gutenberg/_main.php';
|
phpcs.xml.dist
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<ruleset name="LezWatch.TV Coding Standards">
|
3 |
+
<description>A custom ruleset to take in account both WordPress and Lesbian standards.</description>
|
4 |
+
<rule ref="WordPress-Extra">
|
5 |
+
<exclude name="WordPress.Files.FileName.InvalidClassFileName" />
|
6 |
+
<exclude name="WordPress.Files.FileName.NotHyphenatedLowercase" />
|
7 |
+
</rule>
|
8 |
+
</ruleset>
|
readme.txt
ADDED
@@ -0,0 +1,107 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
=== LezWatch.TV News and Information ===
|
2 |
+
Contributors: Ipstenu, liljimmi
|
3 |
+
Tags: television, queer, lesbian, tv, lezwatchtv
|
4 |
+
Requires at least: 4.8
|
5 |
+
Tested up to: 5.0
|
6 |
+
Stable tag: 1.0
|
7 |
+
License: GPLv2 (or Later)
|
8 |
+
|
9 |
+
Display information on queer female, transgender, and non-binary representation on TV. Brought to you by LezWatch.TV.
|
10 |
+
|
11 |
+
== Description ==
|
12 |
+
|
13 |
+
[LezWatch.TV](https://lezwatchtv.com/) catalogs and documents queer female, transgender, and non-binary characters, as well as their actors and shows from TV, web and streaming media. With that data, statistics are calculated on the state of international queer story representation. We provide easy and free access to finding the best shows with queer characters and stories in the genres fans want to see. We can help you keep up to date with the global happenings of queer representation on television.
|
14 |
+
|
15 |
+
Currently we provide the following information about those characters:
|
16 |
+
|
17 |
+
* **... of the Day:** A character or show (or death of a character) of the current day
|
18 |
+
* **Last Death:** The latest character death
|
19 |
+
* **On This Day:** The names of characters who died on that day
|
20 |
+
* **Statistics:** The percentage of characters who died and/or shows with death
|
21 |
+
* **This Year:** An overview of data from a specific year
|
22 |
+
|
23 |
+
= Privacy Policy =
|
24 |
+
|
25 |
+
In using this plugin, your website will contact the LezWatch.TV API to request up-to-date information. The IP address of your domain will be tracked, in order to generate usage statistics of the service. There is no information collected from the visitors to your site.
|
26 |
+
|
27 |
+
By using this plugin, you agree to the [terms of Use of LezWatch.TV](https://lezwatchtv.com/tos/) as a service provider. All data collected falls under the [LezWatch.TV Privacy Policy](https://lezwatchtv.com/tos/privacy/).
|
28 |
+
|
29 |
+
= Usage =
|
30 |
+
|
31 |
+
The data can be displayed via a widget, a shortcode, or a Gutenberg Block.
|
32 |
+
|
33 |
+
**Widgets**
|
34 |
+
|
35 |
+
* **LWTV - ... Of The Day**
|
36 |
+
* **LWTV - On This Day**
|
37 |
+
* **LWTV - Last Death**
|
38 |
+
* **LWTV - Statistics**
|
39 |
+
|
40 |
+
**Shortcodes**
|
41 |
+
|
42 |
+
* `[lwtv data="of-the-day" otd={character|show|death|birthday}]`
|
43 |
+
* `[lwtv data="died-on-this-day"]`
|
44 |
+
* `[lwtv data="died-on-this-day" format="MM-DD"]`
|
45 |
+
* `[lwtv data="this-year" format="YYYY"]`
|
46 |
+
* `[lwtv data="last-death"]`
|
47 |
+
|
48 |
+
**Blocks**
|
49 |
+
|
50 |
+
* ... Of The Day
|
51 |
+
* Last Death
|
52 |
+
|
53 |
+
Notes:
|
54 |
+
* If no type is passed to '... Of The Day' it will default to the character of the day.
|
55 |
+
* If no date is passed to 'On This Day' it will default to today.
|
56 |
+
* If no format type is passed to 'Stats' it will default to display both character and show stats.
|
57 |
+
* If no year is passed to 'This Year' it will default to this current year.
|
58 |
+
|
59 |
+
== Frequently Asked Questions ==
|
60 |
+
|
61 |
+
= Where do you get your data? =
|
62 |
+
|
63 |
+
Data is pulled from [LezWatch.TV](https://lezwatchtv.com).
|
64 |
+
|
65 |
+
= How accurate is the data? =
|
66 |
+
|
67 |
+
As accurate as humanly possible. LezWatch.TV content is curated by hand.
|
68 |
+
|
69 |
+
= Is this US shows only? =
|
70 |
+
|
71 |
+
No! LezWatch.TV records shows from the entire planet.
|
72 |
+
|
73 |
+
= Who owns LezWatch.TV =
|
74 |
+
|
75 |
+
[We do](https://lezwatchtv.com/about/).
|
76 |
+
|
77 |
+
= You're missing some shows/characters =
|
78 |
+
|
79 |
+
We know. The world is a big place. [Please drop us a line and let us know](https://lezwatchtv.com/about/contact/). We're always trying to make it better.
|
80 |
+
|
81 |
+
= Why only female queers? =
|
82 |
+
|
83 |
+
Because the site data is from LezWatch.TV and that's what we specialize in. If someone wants to make a similar site for male queers, we're happy to help them output their data so it can be used.
|
84 |
+
|
85 |
+
= What information from my site is tracked? =
|
86 |
+
|
87 |
+
The IP address and domain of sites that use this plugin are tracked _only_ when the plugin is activated and used on the front-end of your website. No data is tracked until a widget or shortcode is in place. For more information, please review the following:
|
88 |
+
|
89 |
+
* [Terms of Use](https://lezwatchtv.com/tos/)
|
90 |
+
* [Privacy Policy](https://lezwatchtv.com/tos/privacy/).
|
91 |
+
|
92 |
+
== Screenshots ==
|
93 |
+
|
94 |
+
== Installation ==
|
95 |
+
|
96 |
+
1. Download the plugin .zip file and make note of where on your computer you downloaded it to.
|
97 |
+
2. In the WordPress admin (yourdomain.com/wp-admin) go to Plugins > Add New or click the "Add New" button on the main plugins screen.
|
98 |
+
3. On the following screen, click the "Upload Plugin" button.
|
99 |
+
4. Browse your computer to where you downloaded the plugin .zip file, select it and click the "Install Now" button.
|
100 |
+
5. After the plugin has successfully installed, click "Activate Plugin" and enjoy!
|
101 |
+
|
102 |
+
==Changelog==
|
103 |
+
|
104 |
+
=== 1.0.0 ===
|
105 |
+
|
106 |
+
* September 2018 by Ipstenu
|
107 |
+
* Reboot and rebranding - all the good, none of the bad.
|
uninstall.php
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* This file is part of LezWatch.TV News & Information, a plugin for WordPress.
|
4 |
+
*/
|
5 |
+
|
6 |
+
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
|
7 |
+
die;
|
8 |
+
}
|
widgets/_main.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Plugin File: Widgets to include.
|
4 |
+
*/
|
5 |
+
|
6 |
+
require_once 'last-death.php';
|
7 |
+
require_once 'of-the-day.php';
|
8 |
+
require_once 'on-this-day.php';
|
9 |
+
require_once 'statistics.php';
|
10 |
+
require_once 'this-year.php';
|
widgets/last-death.php
ADDED
@@ -0,0 +1,85 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Plugin File: Widget -- Last Death
|
4 |
+
* Widget to display last queer death
|
5 |
+
* @since 1.0.0
|
6 |
+
*/
|
7 |
+
|
8 |
+
class LezWatchTV_Last_Death_Widget extends WP_Widget {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Holds widget settings defaults, populated in constructor.
|
12 |
+
*/
|
13 |
+
protected $defaults;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Constructor.
|
17 |
+
*
|
18 |
+
* Set the default widget options and create widget.
|
19 |
+
*/
|
20 |
+
public function __construct() {
|
21 |
+
|
22 |
+
$this->defaults = array(
|
23 |
+
'title' => __( 'Last Queer Death', 'lezwatchtv' ),
|
24 |
+
);
|
25 |
+
|
26 |
+
$widget_ops = array(
|
27 |
+
'classname' => 'dead-character deadwidget',
|
28 |
+
'description' => __( 'Displays time since the last queer female or trans character death on television.', 'lezwatchtv' ),
|
29 |
+
);
|
30 |
+
|
31 |
+
$control_ops = array(
|
32 |
+
'id_base' => 'byq-dead-char',
|
33 |
+
);
|
34 |
+
|
35 |
+
parent::__construct( 'byq-dead-char', __( 'LWTV - Last Death', 'lezwatchtv' ), $widget_ops, $control_ops );
|
36 |
+
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Echo the widget content.
|
40 |
+
*
|
41 |
+
* @param array $args Display arguments
|
42 |
+
* @param array $instance The settings for the particular instance of the widget
|
43 |
+
*/
|
44 |
+
public function widget( $args, $instance ) {
|
45 |
+
|
46 |
+
$instance = wp_parse_args( (array) $instance, $this->defaults );
|
47 |
+
|
48 |
+
echo $args['before_widget'];
|
49 |
+
|
50 |
+
if ( ! empty( $instance['title'] ) ) {
|
51 |
+
echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];
|
52 |
+
}
|
53 |
+
|
54 |
+
echo wp_kses_post( LezWatchTV::last_death() );
|
55 |
+
|
56 |
+
echo $args['after_widget'];
|
57 |
+
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Update a particular instance.
|
61 |
+
*
|
62 |
+
* @param array $new_instance New settings for this instance as input by the user via form()
|
63 |
+
* @param array $old_instance Old settings for this instance
|
64 |
+
* @return array Settings to save or bool false to cancel saving
|
65 |
+
*/
|
66 |
+
public function update( $new_instance, $old_instance ) {
|
67 |
+
$new_instance['title'] = wp_strip_all_tags( $new_instance['title'] );
|
68 |
+
return $new_instance;
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Echo the settings update form.
|
73 |
+
*
|
74 |
+
* @param array $instance Current settings
|
75 |
+
*/
|
76 |
+
public function form( $instance ) {
|
77 |
+
$instance = wp_parse_args( (array) $instance, $this->defaults );
|
78 |
+
?>
|
79 |
+
<p>
|
80 |
+
<label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title', 'lezwatchtv' ); ?>: </label>
|
81 |
+
<input type="text" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" value="<?php echo esc_attr( $instance['title'] ); ?>" class="widefat" />
|
82 |
+
</p>
|
83 |
+
<?php
|
84 |
+
}
|
85 |
+
}
|
widgets/of-the-day.php
ADDED
@@ -0,0 +1,107 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Plugin File: Widget -- Of The Day
|
4 |
+
* Widget to display ... Of The Day
|
5 |
+
* @since 1.0
|
6 |
+
*/
|
7 |
+
|
8 |
+
class LezWatchTV_Of_The_Day_Widget extends WP_Widget {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Holds widget settings defaults, populated in constructor.
|
12 |
+
*/
|
13 |
+
protected $defaults;
|
14 |
+
protected $valid_types;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Constructor.
|
18 |
+
*
|
19 |
+
* Set the default widget options and create widget.
|
20 |
+
*/
|
21 |
+
public function __construct() {
|
22 |
+
|
23 |
+
$this->defaults = array(
|
24 |
+
'title' => __( 'Of The Day', 'lezwatchtv' ),
|
25 |
+
'type' => 'character',
|
26 |
+
);
|
27 |
+
$this->valid_types = array( 'character', 'show', 'death' );
|
28 |
+
|
29 |
+
$widget_ops = array(
|
30 |
+
'classname' => 'widget-lwtv-of-the-day',
|
31 |
+
'description' => __( 'Displays the character, show, or death of the day.', 'lezwatchtv' ),
|
32 |
+
);
|
33 |
+
|
34 |
+
$control_ops = array(
|
35 |
+
'id_base' => 'lwtv-of-the-day',
|
36 |
+
);
|
37 |
+
|
38 |
+
parent::__construct( 'lwtv-of-the-day', __( 'LWTV - Of The Day', 'lezwatchtv' ), $widget_ops, $control_ops );
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Echo the widget content.
|
43 |
+
*
|
44 |
+
* @param array $args Display arguments
|
45 |
+
* @param array $instance The settings for the particular instance of the widget
|
46 |
+
*/
|
47 |
+
public function widget( $args, $instance ) {
|
48 |
+
|
49 |
+
$instance = wp_parse_args( (array) $instance, $this->defaults );
|
50 |
+
|
51 |
+
echo $args['before_widget'];
|
52 |
+
|
53 |
+
if ( ! empty( $instance['title'] ) ) {
|
54 |
+
echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];
|
55 |
+
}
|
56 |
+
|
57 |
+
$type = ( ! empty( $instance['type'] ) ) ? $instance['type'] : 'character';
|
58 |
+
|
59 |
+
echo '<center>' . LezWatchTV::of_the_day( $type ) . '</center>';
|
60 |
+
|
61 |
+
echo $args['after_widget'];
|
62 |
+
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* Update a particular instance.
|
66 |
+
*
|
67 |
+
* @param array $new_instance New settings for this instance as input by the user via form()
|
68 |
+
* @param array $old_instance Old settings for this instance
|
69 |
+
* @return array Settings to save or bool false to cancel saving
|
70 |
+
*/
|
71 |
+
public function update( $new_instance, $old_instance ) {
|
72 |
+
$new_instance['title'] = wp_strip_all_tags( $new_instance['title'] );
|
73 |
+
|
74 |
+
if ( ! in_array( $new_instance['type'], $this->valid_types ) ) {
|
75 |
+
$new_instance['type'] = 'character';
|
76 |
+
}
|
77 |
+
$new_instance['type'] = sanitize_html_class( $new_instance['type'], 'character' );
|
78 |
+
|
79 |
+
return $new_instance;
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* Echo the settings update form.
|
84 |
+
*
|
85 |
+
* @param array $instance Current settings
|
86 |
+
*/
|
87 |
+
public function form( $instance ) {
|
88 |
+
$instance = wp_parse_args( (array) $instance, $this->defaults );
|
89 |
+
?>
|
90 |
+
<p>
|
91 |
+
<label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title', 'lezwatchtv' ); ?>: </label>
|
92 |
+
<input type="text" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" value="<?php echo esc_attr( $instance['title'] ); ?>" class="widefat" />
|
93 |
+
</p>
|
94 |
+
|
95 |
+
<p>
|
96 |
+
<label for="<?php echo esc_attr( $this->get_field_id( 'type' ) ); ?>"><?php esc_html_e( 'Type', 'lezwatchtv' ); ?>: </label>
|
97 |
+
<select id="<?php echo esc_attr( $this->get_field_id( 'type' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'type' ) ); ?>" class="widefat">
|
98 |
+
<?php
|
99 |
+
foreach ( $this->valid_types as $type ) {
|
100 |
+
echo '<option ' . selected( $instance['type'], $type ) . 'value="' . esc_attr( $type ) . '">' . esc_html( ucfirst( $type ) ) . '</option>';
|
101 |
+
}
|
102 |
+
?>
|
103 |
+
</select>
|
104 |
+
</p>
|
105 |
+
<?php
|
106 |
+
}
|
107 |
+
}
|
widgets/on-this-day.php
ADDED
@@ -0,0 +1,103 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Plugin File: Widget -- On This Day
|
4 |
+
* Widget to display On This Day
|
5 |
+
* @since 1.0
|
6 |
+
*/
|
7 |
+
|
8 |
+
class LezWatchTV_On_This_Day_Widget extends WP_Widget {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Holds widget settings defaults, populated in constructor.
|
12 |
+
*/
|
13 |
+
protected $defaults;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Constructor.
|
17 |
+
*
|
18 |
+
* Set the default widget options and create widget.
|
19 |
+
*/
|
20 |
+
public function __construct() {
|
21 |
+
|
22 |
+
$this->defaults = array(
|
23 |
+
'title' => __( 'On This Day', 'lezwatchtv' ),
|
24 |
+
'date' => '',
|
25 |
+
);
|
26 |
+
|
27 |
+
$widget_ops = array(
|
28 |
+
'classname' => 'dead-on-this-day deadwidget',
|
29 |
+
'description' => __( 'Displays any queer female or trans TV character who died on this day in years past.', 'lezwatchtv' ),
|
30 |
+
);
|
31 |
+
|
32 |
+
$control_ops = array(
|
33 |
+
'id_base' => 'byq-on-this-day',
|
34 |
+
);
|
35 |
+
|
36 |
+
parent::__construct( 'byq-on-this-day', __( 'LWTV - On This Day', 'lezwatchtv' ), $widget_ops, $control_ops );
|
37 |
+
}
|
38 |
+
|
39 |
+
/**
|
40 |
+
* Echo the widget content.
|
41 |
+
*
|
42 |
+
* @param array $args Display arguments
|
43 |
+
* @param array $instance The settings for the particular instance of the widget
|
44 |
+
*/
|
45 |
+
public function widget( $args, $instance ) {
|
46 |
+
|
47 |
+
$instance = wp_parse_args( (array) $instance, $this->defaults );
|
48 |
+
|
49 |
+
echo $args['before_widget'];
|
50 |
+
|
51 |
+
if ( ! empty( $instance['title'] ) ) {
|
52 |
+
echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];
|
53 |
+
}
|
54 |
+
|
55 |
+
$date = ( ! empty( $instance['date'] ) ) ? $instance['date'] : 'today' ;
|
56 |
+
|
57 |
+
echo LezWatchTV::died_on_this_day( $date );
|
58 |
+
|
59 |
+
echo $args['after_widget'];
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* Update a particular instance.
|
64 |
+
*
|
65 |
+
* @param array $new_instance New settings for this instance as input by the user via form()
|
66 |
+
* @param array $old_instance Old settings for this instance
|
67 |
+
* @return array Settings to save or bool false to cancel saving
|
68 |
+
*/
|
69 |
+
public function update( $new_instance, $old_instance ) {
|
70 |
+
$new_instance['title'] = wp_strip_all_tags( $new_instance['title'] );
|
71 |
+
|
72 |
+
$new_instance['date'] = substr( $new_instance['date'], 0, 5 );
|
73 |
+
$month = substr( $new_instance['date'], 0, 2 );
|
74 |
+
$day = substr( $new_instance['date'], 3, 2 );
|
75 |
+
if ( checkdate( $month, $day, date( 'Y' ) ) === false ) {
|
76 |
+
$new_instance['date'] = '';
|
77 |
+
}
|
78 |
+
$new_instance['date'] = wp_strip_all_tags( $new_instance['date'] );
|
79 |
+
|
80 |
+
return $new_instance;
|
81 |
+
}
|
82 |
+
|
83 |
+
/**
|
84 |
+
* Echo the settings update form.
|
85 |
+
*
|
86 |
+
* @param array $instance Current settings
|
87 |
+
*/
|
88 |
+
public function form( $instance ) {
|
89 |
+
$instance = wp_parse_args( (array) $instance, $this->defaults );
|
90 |
+
?>
|
91 |
+
<p>
|
92 |
+
<label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title', 'lezwatchtv' ); ?>: </label>
|
93 |
+
<input type="text" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" value="<?php echo esc_attr( $instance['title'] ); ?>" class="widefat" />
|
94 |
+
</p>
|
95 |
+
|
96 |
+
<p>
|
97 |
+
<label for="<?php echo esc_attr( $this->get_field_id( 'date' ) ); ?>"><?php esc_html_e( 'Date (Optional)', 'lezwatchtv' ); ?>: </label>
|
98 |
+
<input type="text" id="<?php echo esc_attr( $this->get_field_id( 'date' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'date' ) ); ?>" class="datepicker" value="<?php echo esc_attr( $instance['date'] ); ?>" class="widefat" />
|
99 |
+
<br><em><?php esc_html_e( 'If left blank, the date used will be the current day.', 'lezwatchtv' ); ?></em>
|
100 |
+
</p>
|
101 |
+
<?php
|
102 |
+
}
|
103 |
+
}
|
widgets/statistics.php
ADDED
@@ -0,0 +1,105 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Plugin File: Widgets -- Statistics
|
4 |
+
* Widget to display death statistics
|
5 |
+
* @since 1.0
|
6 |
+
*/
|
7 |
+
|
8 |
+
class LezWatchTV_Statistics_Widget extends WP_Widget {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Holds widget settings defaults, populated in constructor.
|
12 |
+
*/
|
13 |
+
protected $defaults;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Constructor.
|
17 |
+
*
|
18 |
+
* Set the default widget options and create widget.
|
19 |
+
*/
|
20 |
+
public function __construct() {
|
21 |
+
|
22 |
+
$this->defaults = array(
|
23 |
+
'title' => __( 'Queer Fatality Statistics', 'lezwatchtv' ),
|
24 |
+
'type' => '',
|
25 |
+
);
|
26 |
+
|
27 |
+
$widget_ops = array(
|
28 |
+
'classname' => 'dead-stats deadwidget',
|
29 |
+
'description' => __( 'Displays the percentage of how many queer female or trans TV characters who have died, and/or how many shows have death.', 'lezwatchtv' ),
|
30 |
+
);
|
31 |
+
|
32 |
+
$control_ops = array(
|
33 |
+
'id_base' => 'byq-statistics',
|
34 |
+
);
|
35 |
+
|
36 |
+
parent::__construct( 'byq-statistics', __( 'LWTV - Statistics', 'lezwatchtv' ), $widget_ops, $control_ops );
|
37 |
+
}
|
38 |
+
|
39 |
+
/**
|
40 |
+
* Echo the widget content.
|
41 |
+
*
|
42 |
+
* @param array $args Display arguments
|
43 |
+
* @param array $instance The settings for the particular instance of the widget
|
44 |
+
*/
|
45 |
+
public function widget( $args, $instance ) {
|
46 |
+
|
47 |
+
$instance = wp_parse_args( (array) $instance, $this->defaults );
|
48 |
+
|
49 |
+
echo $args['before_widget'];
|
50 |
+
|
51 |
+
if ( ! empty( $instance['title'] ) ) {
|
52 |
+
echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];
|
53 |
+
}
|
54 |
+
|
55 |
+
$type = ( ! empty( $instance['type'] ) )? $instance['type'] : 'all' ;
|
56 |
+
|
57 |
+
echo LezWatchTV::statistics( $type );
|
58 |
+
|
59 |
+
echo $args['after_widget'];
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* Update a particular instance.
|
64 |
+
*
|
65 |
+
* @param array $new_instance New settings for this instance as input by the user via form()
|
66 |
+
* @param array $old_instance Old settings for this instance
|
67 |
+
* @return array Settings to save or bool false to cancel saving
|
68 |
+
*/
|
69 |
+
public function update( $new_instance, $old_instance ) {
|
70 |
+
$new_instance['title'] = wp_strip_all_tags( $new_instance['title'] );
|
71 |
+
$new_instance['type'] = wp_strip_all_tags( $new_instance['type'] );
|
72 |
+
return $new_instance;
|
73 |
+
}
|
74 |
+
|
75 |
+
/**
|
76 |
+
* Echo the settings update form.
|
77 |
+
*
|
78 |
+
* @param array $instance Current settings
|
79 |
+
*/
|
80 |
+
public function form( $instance ) {
|
81 |
+
$instance = wp_parse_args( (array) $instance, $this->defaults );
|
82 |
+
|
83 |
+
$stat_types = array( 'characters', 'shows' );
|
84 |
+
|
85 |
+
?>
|
86 |
+
<p>
|
87 |
+
<label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title', 'lezwatchtv' ); ?>: </label>
|
88 |
+
<input type="text" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" value="<?php echo esc_attr( $instance['title'] ); ?>" class="widefat" />
|
89 |
+
</p>
|
90 |
+
|
91 |
+
<p>
|
92 |
+
<label for="<?php echo esc_attr( $this->get_field_id( 'type' ) ); ?>"><?php esc_html_e( 'Type', 'lezwatchtv' ); ?>: </label>
|
93 |
+
|
94 |
+
<select id="<?php echo $this->get_field_id( 'type' ); ?>" name="<?php echo $this->get_field_name( 'type' ); ?>" class="widefat" style="width:100%;">
|
95 |
+
<option value="" selected>All</option>
|
96 |
+
<?php
|
97 |
+
foreach ( $stat_types as $type ) {
|
98 |
+
echo '<option ' . selected( $instance['type'], $type ) . 'value="' . esc_attr( $type ) . '">' . esc_html( ucfirst( $type ) ) . '</option>';
|
99 |
+
}
|
100 |
+
?>
|
101 |
+
</select>
|
102 |
+
</p>
|
103 |
+
<?php
|
104 |
+
}
|
105 |
+
}
|
widgets/this-year.php
ADDED
@@ -0,0 +1,105 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Plugin File: Widgets -- This Year
|
4 |
+
* Widget to display This Year data
|
5 |
+
* @since 1.0
|
6 |
+
*/
|
7 |
+
|
8 |
+
class LezWatchTV_This_Year_Widget extends WP_Widget {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Holds widget settings defaults, populated in constructor.
|
12 |
+
*/
|
13 |
+
protected $defaults;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Constructor.
|
17 |
+
*
|
18 |
+
* Set the default widget options and create widget.
|
19 |
+
*/
|
20 |
+
public function __construct() {
|
21 |
+
|
22 |
+
$this->defaults = array(
|
23 |
+
'title' => __( 'In This Year', 'lezwatchtv' ),
|
24 |
+
'year' => date( 'Y' ),
|
25 |
+
);
|
26 |
+
|
27 |
+
$widget_ops = array(
|
28 |
+
'classname' => 'in-this-year thisyearwidget',
|
29 |
+
'description' => __( 'Displays a review of queer female and trans representation on TV for a given year.', 'lezwatchtv' ),
|
30 |
+
);
|
31 |
+
|
32 |
+
$control_ops = array(
|
33 |
+
'id_base' => 'byq-in-this-year',
|
34 |
+
);
|
35 |
+
|
36 |
+
parent::__construct( 'byq-in-this-year', __( 'LWTV - In This Year', 'lezwatchtv' ), $widget_ops, $control_ops );
|
37 |
+
}
|
38 |
+
|
39 |
+
/**
|
40 |
+
* Echo the widget content.
|
41 |
+
*
|
42 |
+
* @param array $args Display arguments
|
43 |
+
* @param array $instance The settings for the particular instance of the widget
|
44 |
+
*/
|
45 |
+
public function widget( $args, $instance ) {
|
46 |
+
|
47 |
+
extract( $args );
|
48 |
+
$instance = wp_parse_args( (array) $instance, $this->defaults );
|
49 |
+
|
50 |
+
echo $args['before_widget'];
|
51 |
+
|
52 |
+
if ( ! empty( $instance['title'] ) ) {
|
53 |
+
echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];
|
54 |
+
}
|
55 |
+
|
56 |
+
$year = ( ! empty( $instance['year'] ) )? $instance['year'] : date( 'Y' ) ;
|
57 |
+
|
58 |
+
echo LezWatchTV::this_year( $year );
|
59 |
+
|
60 |
+
echo $args['after_widget'];
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Update a particular instance.
|
65 |
+
*
|
66 |
+
* @param array $new_instance New settings for this instance as input by the user via form()
|
67 |
+
* @param array $old_instance Old settings for this instance
|
68 |
+
* @return array Settings to save or bool false to cancel saving
|
69 |
+
*/
|
70 |
+
public function update( $new_instance, $old_instance ) {
|
71 |
+
$new_instance['title'] = wp_strip_all_tags( $new_instance['title'] );
|
72 |
+
$new_instance['year'] = ( preg_match( '/^[0-9]{4}$/', $new_instance['year'] ) ) ? $new_instance['year'] : date( 'Y' );
|
73 |
+
return $new_instance;
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Echo the settings update form.
|
78 |
+
*
|
79 |
+
* @param array $instance Current settings
|
80 |
+
*/
|
81 |
+
public function form( $instance ) {
|
82 |
+
$instance = wp_parse_args( (array) $instance, $this->defaults );
|
83 |
+
|
84 |
+
// Get the first year
|
85 |
+
$request = wp_remote_get( LezWatchTV::$apiurl . '/stats/first-year/' );
|
86 |
+
$response = wp_remote_retrieve_body( $request );
|
87 |
+
$response = json_decode( $response, true );
|
88 |
+
?>
|
89 |
+
<p>
|
90 |
+
<label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title', 'lezwatchtv' ); ?>: </label>
|
91 |
+
<input type="text" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" value="<?php echo esc_attr( $instance['title'] ); ?>" class="widefat" />
|
92 |
+
</p>
|
93 |
+
<p>
|
94 |
+
<label for="<?php echo esc_attr( $this->get_field_id( 'date' ) ); ?>"><?php esc_html_e( 'Year', 'lezwatchtv' ); ?>: </label>
|
95 |
+
<select id="<?php echo $this->get_field_id( 'year' ); ?>" name="<?php echo $this->get_field_name( 'year' ); ?>" class="widefat" style="width:100%;">
|
96 |
+
<?php
|
97 |
+
for ( $year = $response['first']; $year <= date( 'Y' ); ++$year ) {
|
98 |
+
echo '<option ' . selected( $instance['year'], $year ) . ' value="' . $year . '">' . $year . '</option>';
|
99 |
+
}
|
100 |
+
?>
|
101 |
+
</select>
|
102 |
+
</p>
|
103 |
+
<?php
|
104 |
+
}
|
105 |
+
}
|