Countdown, Coming Soon – Countdown & Clock - Version 1.2.1

Version Description

  • Countdown responsiveness
  • Countdown alignment
  • Countdown On of logic
  • Hide on mobile devices (pro)
  • Show on mobile devices (pro)
  • Bug fixes
  • Code optimization
Download this release

Release Info

Developer Otto42
Plugin Icon 128x128 Countdown, Coming Soon – Countdown & Clock
Version 1.2.1
Comparing to
See all releases

Version 1.2.1

Files changed (45) hide show
  1. CountdownInit.php +57 -0
  2. assets/css/Css.php +37 -0
  3. assets/css/TimeCircles.css +1 -0
  4. assets/css/admin.css +300 -0
  5. assets/css/bootstrap.css +6846 -0
  6. assets/css/colorpicker.css +1 -0
  7. assets/css/ion.rangeSlider.css +1 -0
  8. assets/css/ion.rangeSlider.skinFlat.css +1 -0
  9. assets/css/jquery.dateTimePicker.min.css +1 -0
  10. assets/css/select2.css +1 -0
  11. assets/img/CirclePopup.png +0 -0
  12. assets/img/Cricle.png +0 -0
  13. assets/img/Flipclock.png +0 -0
  14. assets/img/sprite-skin-flat.png +0 -0
  15. assets/js/Admin.js +147 -0
  16. assets/js/Countdown.js +513 -0
  17. assets/js/Js.php +35 -0
  18. assets/js/TimeCircles.js +960 -0
  19. assets/js/ionRangeSlider.js +12 -0
  20. assets/js/jquery.datetimepicker.full.min.js +2 -0
  21. assets/js/minicolors.js +11 -0
  22. assets/js/select2.js +5746 -0
  23. assets/js/ycdGoogleFonts.js +52 -0
  24. assets/views/advancedOptions.php +36 -0
  25. assets/views/circlePreview.php +3 -0
  26. assets/views/cricleMainView.php +491 -0
  27. assets/views/types.php +17 -0
  28. assets/views/upgrade.php +10 -0
  29. classes/Actions.php +129 -0
  30. classes/Ajax.php +23 -0
  31. classes/CountdownType.php +31 -0
  32. classes/Filters.php +33 -0
  33. classes/RegisterPostType.php +182 -0
  34. classes/countdown/CircleCountdown.php +189 -0
  35. classes/countdown/Countdown.php +325 -0
  36. classes/countdown/CountdownModel.php +23 -0
  37. config/boot.php +10 -0
  38. config/config-pkg.php +2 -0
  39. config/config.php +39 -0
  40. config/optionsConfig.php +102 -0
  41. countdown-builder.php +25 -0
  42. helpers/AdminHelper.php +654 -0
  43. helpers/MultipleChoiceButton.php +242 -0
  44. helpers/ScriptsIncluder.php +120 -0
  45. readme.txt +110 -0
CountdownInit.php ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ycd;
3
+
4
+ class CountdownInit {
5
+
6
+ private static $instance = null;
7
+ private $actions;
8
+ private $filters;
9
+
10
+ private function __construct() {
11
+ $this->init();
12
+ }
13
+
14
+ private function __clone() {
15
+ }
16
+
17
+ public static function getInstance() {
18
+ if(!isset(self::$instance)) {
19
+ self::$instance = new self();
20
+ }
21
+ return self::$instance;
22
+ }
23
+
24
+ public function init() {
25
+ $this->includeData();
26
+ $this->actions();
27
+ $this->filters();
28
+ }
29
+
30
+ private function includeData() {
31
+ if (YCD_PKG_VERSION > YCD_FREE_VERSION) {
32
+ require_once YCD_HELPERS_PATH.'CheckerPro.php';
33
+ }
34
+ require_once YCD_HELPERS_PATH.'ScriptsIncluder.php';
35
+ require_once YCD_HELPERS_PATH.'MultipleChoiceButton.php';
36
+ require_once YCD_HELPERS_PATH.'AdminHelper.php';
37
+ require_once YCD_CLASSES_PATH.'CountdownType.php';
38
+ require_once(YCD_COUNTDOWNS_PATH.'CountdownModel.php');
39
+ require_once YCD_COUNTDOWNS_PATH.'Countdown.php';
40
+ require_once YCD_CSS_PATH.'Css.php';
41
+ require_once YCD_JS_PATH.'Js.php';
42
+ require_once YCD_CLASSES_PATH.'RegisterPostType.php';
43
+ require_once YCD_CLASSES_PATH.'Actions.php';
44
+ require_once YCD_CLASSES_PATH.'Ajax.php';
45
+ require_once YCD_CLASSES_PATH.'Filters.php';
46
+ }
47
+
48
+ public function actions() {
49
+ $this->actions = new Actions();
50
+ }
51
+
52
+ public function filters() {
53
+ $this->filters = new Filters();
54
+ }
55
+ }
56
+
57
+ CountdownInit::getInstance();
assets/css/Css.php ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ycd;
3
+
4
+ class Css {
5
+
6
+ public function __construct() {
7
+ $this->init();
8
+ }
9
+
10
+ public function init() {
11
+
12
+ add_action('admin_enqueue_scripts', array($this, 'enqueueStyles'));
13
+ }
14
+
15
+ public function enqueueStyles($hook) {
16
+
17
+ ScriptsIncluder::registerStyle('admin.css');
18
+ ScriptsIncluder::registerStyle('bootstrap.css');
19
+ ScriptsIncluder::registerStyle('colorpicker.css');
20
+ ScriptsIncluder::registerStyle('ion.rangeSlider.css');
21
+ ScriptsIncluder::registerStyle('ion.rangeSlider.skinFlat.css');
22
+ ScriptsIncluder::registerStyle('select2.css');
23
+ ScriptsIncluder::registerStyle('jquery.dateTimePicker.min.css');
24
+
25
+ if($hook == 'ycdcountdown_page_ycdcountdown' || get_post_type(@$_GET['post']) == YCD_COUNTDOWN_POST_TYPE) {
26
+ ScriptsIncluder::enqueueStyle('bootstrap.css');
27
+ ScriptsIncluder::enqueueStyle('admin.css');
28
+ ScriptsIncluder::enqueueStyle('colorpicker.css');
29
+ ScriptsIncluder::enqueueStyle('ion.rangeSlider.css');
30
+ ScriptsIncluder::enqueueStyle('ion.rangeSlider.skinFlat.css');
31
+ ScriptsIncluder::enqueueStyle('select2.css');
32
+ ScriptsIncluder::enqueueStyle('jquery.dateTimePicker.min.css');
33
+ }
34
+ }
35
+ }
36
+
37
+ new Css();
assets/css/TimeCircles.css ADDED
@@ -0,0 +1 @@
 
1
+ .time_circles>div>h4,.time_circles>div>span{margin:0;padding:0;text-align:center;font-family:'Century Gothic',Arial;line-height:1}.time_circles{position:relative;width:100%;height:100%}.time_circles>div{position:absolute;text-align:center}.time_circles>div>h4{text-transform:uppercase}.time_circles>div>span{display:block;width:100%;font-weight:700}
assets/css/admin.css ADDED
@@ -0,0 +1,300 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .ycd-bootstrap-wrapper .row {
2
+ margin-left: 0;
3
+ margin-right: 0;
4
+ }
5
+
6
+ .ycd-hide-content,
7
+ .ycd-hide {
8
+ display: none;
9
+ }
10
+
11
+ .countdowns-div {
12
+ width: 250px;
13
+ height: 150px;
14
+ border: 1px solid #CCCCCC;
15
+ float: left;
16
+ margin-right: 10px;
17
+ margin-bottom: 10px;
18
+ background-color: #DEDEDE;
19
+ background-size: 100%;
20
+ transition: all .1s ease-in-out;
21
+ }
22
+
23
+ .countdowns-div:hover {
24
+ background-color: #CDCDCD;
25
+ transform: scale(1.05);
26
+ }
27
+
28
+ .circle-countdown {
29
+ background-image: url("../img/Cricle.png");
30
+ background-size: 100% 100%;
31
+ }
32
+
33
+ .flipClock-countdown,
34
+ .flipClock-countdown-pro {
35
+ background-image: url("../img/Flipclock.png");
36
+ background-size: 100% 100%;
37
+ }
38
+
39
+ .circlePopup-countdown,
40
+ .circlePopup-countdown-pro {
41
+ background-image: url("../img/CirclePopup.png");
42
+ background-repeat: no-repeat;
43
+ background-position: 13%;
44
+ background-color: black;
45
+ }
46
+
47
+ .circlePopup-countdown:hover,
48
+ .circlePopup-countdown-pro:hover {
49
+ background-color: black;
50
+ }
51
+
52
+ .countdowns-div {
53
+ position: relative;
54
+ }
55
+
56
+ .ycd-type-title-pro {
57
+ font-size: 23px;
58
+ font-weight: 600;
59
+ color: red;
60
+ opacity: 1;
61
+ overflow-wrap: break-word;
62
+ width: auto;
63
+ margin-top: -15px;
64
+ -ms-transform: rotate(7deg);
65
+ /* -webkit-transform: rotate(7deg); */
66
+ transform: rotate(36deg);
67
+ top: 28px;
68
+ right: -13px;
69
+ position: absolute;
70
+ }
71
+
72
+ .js-ycd-select {
73
+ min-width: 100% !important;
74
+ width: 100% !important;
75
+ }
76
+
77
+ /*Checkbox slider start*/
78
+ /* The switch - the box around the slider */
79
+ .ycd-switch {
80
+ position: relative;
81
+ display: inline-block;
82
+ width: 60px;
83
+ height: 34px;
84
+ }
85
+
86
+ /* Hide default HTML checkbox */
87
+ .ycd-switch input {display:none;}
88
+
89
+ /* The slider */
90
+ .ycd-slider {
91
+ position: absolute;
92
+ cursor: pointer;
93
+ top: 0;
94
+ left: 0;
95
+ right: 0;
96
+ bottom: 0;
97
+ background-color: #ccc;
98
+ -webkit-transition: .4s;
99
+ transition: .4s;
100
+ transform: scale(0.8, 0.8);
101
+ }
102
+
103
+ .ycd-slider:before {
104
+ position: absolute;
105
+ content: "";
106
+ height: 26px;
107
+ width: 26px;
108
+ left: 4px;
109
+ bottom: 4px;
110
+ background-color: white;
111
+ -webkit-transition: .4s;
112
+ transition: .4s;
113
+ }
114
+
115
+ input:checked + .ycd-slider {
116
+ background-color: #2196F3;
117
+ }
118
+
119
+ input:focus + .ycd-slider {
120
+ box-shadow: 0 0 1px #2196F3;
121
+ }
122
+
123
+ input:checked + .ycd-slider:before {
124
+ -webkit-transform: translateX(26px);
125
+ -ms-transform: translateX(26px);
126
+ transform: translateX(26px);
127
+ }
128
+
129
+ /* Rounded sliders */
130
+ .ycd-slider.ycd-round {
131
+ border-radius: 34px;
132
+ }
133
+
134
+ .ycd-slider.ycd-round:before {
135
+ border-radius: 50%;
136
+ }
137
+ /*Checkbox slider end*/
138
+
139
+ .ycd-live-preview {
140
+ position: fixed;
141
+ right: 0;
142
+ bottom: 5px;
143
+ background-color: white;
144
+ border: 1px solid #ccc;
145
+ min-width: 400px;
146
+ z-index: 999;
147
+ }
148
+
149
+ .ycd-live-preview h3 {
150
+ text-align: center;
151
+ }
152
+
153
+ .ycd-pro-span {
154
+ display: inline-block;
155
+ color: red;
156
+ margin-left: 5px;
157
+ }
158
+
159
+ .ycd-circle-popup-shortcode {
160
+ padding: 10px;
161
+ }
162
+
163
+ .ycd-circles-width-wrapper .irs-single {
164
+ display: none;
165
+ }
166
+
167
+ .irs-line {
168
+ margin-top: -14px;
169
+ }
170
+
171
+ .irs-bar {
172
+ cursor: pointer;
173
+ }
174
+
175
+ .ycd-range-slider-wrapper {
176
+ margin-top: 7px;
177
+ }
178
+
179
+ .ycd-label-of-select {
180
+ margin-top: 4px;
181
+ }
182
+
183
+ .ycd-label-of-switch,
184
+ .ycd-label-of-input {
185
+ margin-top: 6px;
186
+ }
187
+
188
+ .ycd-label-of-color {
189
+ margin-top: 5px;
190
+ }
191
+
192
+ .ycd-label-of-select {
193
+ margin-top: 3px;
194
+ }
195
+
196
+ .ycd-live-preview-text {
197
+ border-bottom: 1px solid #CCCCCC;
198
+ position: relative;
199
+ margin-top: 10px;
200
+ cursor: pointer;
201
+ }
202
+
203
+ .ycd-live-preview-text h3 {
204
+ margin-top: 0;
205
+ }
206
+
207
+ .ycd-toggle-icon-open:before {
208
+ content: "\f142";
209
+ display: inline-block;
210
+ font: 400 20px/1 dashicons;
211
+ speak: none;
212
+ -webkit-font-smoothing: antialiased;
213
+ -moz-osx-font-smoothing: grayscale;
214
+ text-decoration: none!important;
215
+ cursor: pointer;
216
+ }
217
+
218
+ .ycd-toggle-icon-close:before {
219
+ content: "\f140";
220
+ display: inline-block;
221
+ font: 400 20px/1 dashicons;
222
+ speak: none;
223
+ -webkit-font-smoothing: antialiased;
224
+ -moz-osx-font-smoothing: grayscale;
225
+ text-decoration: none!important;
226
+ cursor: pointer;
227
+ }
228
+
229
+ .ycd-toggle-icon {
230
+ margin-top: 4px;
231
+ width: 20px;
232
+ border-radius: 50%;
233
+ text-indent: -1px;
234
+ position: absolute;
235
+ top: -5px;
236
+ right: 11px
237
+ }
238
+
239
+ .ycd-upgrade-button-red {
240
+ background: #d10303;
241
+ border: 1px solid #d10303;
242
+ padding: 4px 5px 5px 5px;
243
+ color: #fff !important;
244
+ font-size: 16px;
245
+ border-radius: 3px;
246
+ cursor: pointer;
247
+ align-items: flex-start;
248
+ text-align: center !important;
249
+ }
250
+
251
+ .ycd-upgrade-button-red:hover {
252
+ background: #fff;
253
+ color: #d10303 !important;
254
+ border: 1px solid #d10303 !important;
255
+ }
256
+
257
+ .ycd-upgrade-button-red .h2 {
258
+ font-size: 22px !important;
259
+ margin: 0 0 5px 0 !important;
260
+ display: inline-block !important;
261
+ }
262
+
263
+ .ycf-pro-wrapper {
264
+ text-align: center;
265
+ }
266
+
267
+ .ycd-popup-theme {
268
+ margin-left: 8px !important;
269
+ }
270
+
271
+ .ycd-popup-theme:first-child {
272
+ margin-left: 0 !important;
273
+ }
274
+
275
+ .ycd-accordion-content {
276
+ padding-left: 45px;
277
+ }
278
+
279
+ .ycd-bootstrap-wrapper {
280
+ position: relative;
281
+ }
282
+
283
+ .ycd-pro-options-div {
284
+ position: absolute;
285
+ width: 100%;
286
+ height: 100%;
287
+ background-color: rgba(238,238,238,0.4);
288
+ top: 0;
289
+ cursor: pointer;
290
+ }
291
+
292
+ .ycd-pro-options-title {
293
+ position: absolute;
294
+ top: 30%;
295
+ left: 54%;
296
+ font-size: 30px;
297
+ color: red;
298
+ opacity: 1;
299
+ overflow-wrap: break-word;
300
+ }
assets/css/bootstrap.css ADDED
@@ -0,0 +1,6846 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .ycd-bootstrap-wrapper {
2
+ /*!
3
+ * Bootstrap v3.3.6 (http://getbootstrap.com)
4
+ * Copyright 2011-2015 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6
+ */
7
+ /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
8
+ /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
9
+ /*# sourceMappingURL=bootstrap.css.map */
10
+ }
11
+ .ycd-bootstrap-wrapper html {
12
+ font-family: sans-serif;
13
+ -webkit-text-size-adjust: 100%;
14
+ -ms-text-size-adjust: 100%;
15
+ }
16
+ .ycd-bootstrap-wrapper body {
17
+ margin: 0;
18
+ }
19
+ .ycd-bootstrap-wrapper article,
20
+ .ycd-bootstrap-wrapper aside,
21
+ .ycd-bootstrap-wrapper details,
22
+ .ycd-bootstrap-wrapper figcaption,
23
+ .ycd-bootstrap-wrapper figure,
24
+ .ycd-bootstrap-wrapper footer,
25
+ .ycd-bootstrap-wrapper header,
26
+ .ycd-bootstrap-wrapper hgroup,
27
+ .ycd-bootstrap-wrapper main,
28
+ .ycd-bootstrap-wrapper menu,
29
+ .ycd-bootstrap-wrapper nav,
30
+ .ycd-bootstrap-wrapper section,
31
+ .ycd-bootstrap-wrapper summary {
32
+ display: block;
33
+ }
34
+ .ycd-bootstrap-wrapper audio,
35
+ .ycd-bootstrap-wrapper canvas,
36
+ .ycd-bootstrap-wrapper progress,
37
+ .ycd-bootstrap-wrapper video {
38
+ display: inline-block;
39
+ vertical-align: baseline;
40
+ }
41
+ .ycd-bootstrap-wrapper audio:not([controls]) {
42
+ display: none;
43
+ height: 0;
44
+ }
45
+ .ycd-bootstrap-wrapper [hidden],
46
+ .ycd-bootstrap-wrapper template {
47
+ display: none;
48
+ }
49
+ .ycd-bootstrap-wrapper a {
50
+ background-color: transparent;
51
+ }
52
+ .ycd-bootstrap-wrapper a:active,
53
+ .ycd-bootstrap-wrapper a:hover {
54
+ outline: 0;
55
+ }
56
+ .ycd-bootstrap-wrapper abbr[title] {
57
+ border-bottom: 1px dotted;
58
+ }
59
+ .ycd-bootstrap-wrapper b,
60
+ .ycd-bootstrap-wrapper strong {
61
+ font-weight: bold;
62
+ }
63
+ .ycd-bootstrap-wrapper dfn {
64
+ font-style: italic;
65
+ }
66
+ .ycd-bootstrap-wrapper h1 {
67
+ margin: .67em 0;
68
+ font-size: 2em;
69
+ }
70
+ .ycd-bootstrap-wrapper mark {
71
+ color: #000;
72
+ background: #ff0;
73
+ }
74
+ .ycd-bootstrap-wrapper small {
75
+ font-size: 80%;
76
+ }
77
+ .ycd-bootstrap-wrapper sub,
78
+ .ycd-bootstrap-wrapper sup {
79
+ position: relative;
80
+ font-size: 75%;
81
+ line-height: 0;
82
+ vertical-align: baseline;
83
+ }
84
+ .ycd-bootstrap-wrapper sup {
85
+ top: -0.5em;
86
+ }
87
+ .ycd-bootstrap-wrapper sub {
88
+ bottom: -0.25em;
89
+ }
90
+ .ycd-bootstrap-wrapper img {
91
+ border: 0;
92
+ }
93
+ .ycd-bootstrap-wrapper svg:not(:root) {
94
+ overflow: hidden;
95
+ }
96
+ .ycd-bootstrap-wrapper figure {
97
+ margin: 1em 40px;
98
+ }
99
+ .ycd-bootstrap-wrapper hr {
100
+ height: 0;
101
+ -webkit-box-sizing: content-box;
102
+ -moz-box-sizing: content-box;
103
+ box-sizing: content-box;
104
+ }
105
+ .ycd-bootstrap-wrapper pre {
106
+ overflow: auto;
107
+ }
108
+ .ycd-bootstrap-wrapper code,
109
+ .ycd-bootstrap-wrapper kbd,
110
+ .ycd-bootstrap-wrapper pre,
111
+ .ycd-bootstrap-wrapper samp {
112
+ font-family: monospace, monospace;
113
+ font-size: 1em;
114
+ }
115
+ .ycd-bootstrap-wrapper button,
116
+ .ycd-bootstrap-wrapper input,
117
+ .ycd-bootstrap-wrapper optgroup,
118
+ .ycd-bootstrap-wrapper select,
119
+ .ycd-bootstrap-wrapper textarea {
120
+ margin: 0;
121
+ font: inherit;
122
+ color: inherit;
123
+ }
124
+ .ycd-bootstrap-wrapper button {
125
+ overflow: visible;
126
+ }
127
+ .ycd-bootstrap-wrapper button,
128
+ .ycd-bootstrap-wrapper select {
129
+ text-transform: none;
130
+ }
131
+ .ycd-bootstrap-wrapper button,
132
+ .ycd-bootstrap-wrapper html input[type="button"],
133
+ .ycd-bootstrap-wrapper input[type="reset"],
134
+ .ycd-bootstrap-wrapper input[type="submit"] {
135
+ -webkit-appearance: button;
136
+ cursor: pointer;
137
+ }
138
+ .ycd-bootstrap-wrapper button[disabled],
139
+ .ycd-bootstrap-wrapper html input[disabled] {
140
+ cursor: default;
141
+ }
142
+ .ycd-bootstrap-wrapper button::-moz-focus-inner,
143
+ .ycd-bootstrap-wrapper input::-moz-focus-inner {
144
+ padding: 0;
145
+ border: 0;
146
+ }
147
+ .ycd-bootstrap-wrapper input {
148
+ line-height: normal;
149
+ }
150
+ .ycd-bootstrap-wrapper input[type="checkbox"],
151
+ .ycd-bootstrap-wrapper input[type="radio"] {
152
+ -webkit-box-sizing: border-box;
153
+ -moz-box-sizing: border-box;
154
+ box-sizing: border-box;
155
+ padding: 0;
156
+ }
157
+ .ycd-bootstrap-wrapper input[type="number"]::-webkit-inner-spin-button,
158
+ .ycd-bootstrap-wrapper input[type="number"]::-webkit-outer-spin-button {
159
+ height: auto;
160
+ }
161
+ .ycd-bootstrap-wrapper input[type="search"] {
162
+ -webkit-box-sizing: content-box;
163
+ -moz-box-sizing: content-box;
164
+ box-sizing: content-box;
165
+ -webkit-appearance: textfield;
166
+ }
167
+ .ycd-bootstrap-wrapper input[type="search"]::-webkit-search-cancel-button,
168
+ .ycd-bootstrap-wrapper input[type="search"]::-webkit-search-decoration {
169
+ -webkit-appearance: none;
170
+ }
171
+ .ycd-bootstrap-wrapper fieldset {
172
+ padding: .35em .625em .75em;
173
+ margin: 0 2px;
174
+ border: 1px solid #c0c0c0;
175
+ }
176
+ .ycd-bootstrap-wrapper legend {
177
+ padding: 0;
178
+ border: 0;
179
+ }
180
+ .ycd-bootstrap-wrapper textarea {
181
+ overflow: auto;
182
+ }
183
+ .ycd-bootstrap-wrapper optgroup {
184
+ font-weight: bold;
185
+ }
186
+ .ycd-bootstrap-wrapper table {
187
+ border-spacing: 0;
188
+ border-collapse: collapse;
189
+ }
190
+ .ycd-bootstrap-wrapper td,
191
+ .ycd-bootstrap-wrapper th {
192
+ padding: 0;
193
+ }
194
+ @media print {
195
+ .ycd-bootstrap-wrapper *,
196
+ .ycd-bootstrap-wrapper *:before,
197
+ .ycd-bootstrap-wrapper *:after {
198
+ color: #000 !important;
199
+ text-shadow: none !important;
200
+ background: transparent !important;
201
+ -webkit-box-shadow: none !important;
202
+ box-shadow: none !important;
203
+ }
204
+ .ycd-bootstrap-wrapper a,
205
+ .ycd-bootstrap-wrapper a:visited {
206
+ text-decoration: underline;
207
+ }
208
+ .ycd-bootstrap-wrapper a[href]:after {
209
+ content: " (" attr(href) ")";
210
+ }
211
+ .ycd-bootstrap-wrapper abbr[title]:after {
212
+ content: " (" attr(title) ")";
213
+ }
214
+ .ycd-bootstrap-wrapper a[href^="#"]:after,
215
+ .ycd-bootstrap-wrapper a[href^="javascript:"]:after {
216
+ content: "";
217
+ }
218
+ .ycd-bootstrap-wrapper pre,
219
+ .ycd-bootstrap-wrapper blockquote {
220
+ border: 1px solid #999;
221
+ page-break-inside: avoid;
222
+ }
223
+ .ycd-bootstrap-wrapper thead {
224
+ display: table-header-group;
225
+ }
226
+ .ycd-bootstrap-wrapper tr,
227
+ .ycd-bootstrap-wrapper img {
228
+ page-break-inside: avoid;
229
+ }
230
+ .ycd-bootstrap-wrapper img {
231
+ max-width: 100% !important;
232
+ }
233
+ .ycd-bootstrap-wrapper p,
234
+ .ycd-bootstrap-wrapper h2,
235
+ .ycd-bootstrap-wrapper h3 {
236
+ orphans: 3;
237
+ widows: 3;
238
+ }
239
+ .ycd-bootstrap-wrapper h2,
240
+ .ycd-bootstrap-wrapper h3 {
241
+ page-break-after: avoid;
242
+ }
243
+ .ycd-bootstrap-wrapper .navbar {
244
+ display: none;
245
+ }
246
+ .ycd-bootstrap-wrapper .btn > .caret,
247
+ .ycd-bootstrap-wrapper .dropup > .btn > .caret {
248
+ border-top-color: #000 !important;
249
+ }
250
+ .ycd-bootstrap-wrapper .label {
251
+ border: 1px solid #000;
252
+ }
253
+ .ycd-bootstrap-wrapper .table {
254
+ border-collapse: collapse !important;
255
+ }
256
+ .ycd-bootstrap-wrapper .table td,
257
+ .ycd-bootstrap-wrapper .table th {
258
+ background-color: #fff !important;
259
+ }
260
+ .ycd-bootstrap-wrapper .table-bordered th,
261
+ .ycd-bootstrap-wrapper .table-bordered td {
262
+ border: 1px solid #ddd !important;
263
+ }
264
+ }
265
+ @font-face {
266
+ font-family: 'Glyphicons Halflings';
267
+ src: url('http://localhost/fonts/glyphicons-halflings-regular.eot');
268
+ src: url('http://localhost/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('http://localhost/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('http://localhost/fonts/glyphicons-halflings-regular.woff') format('woff'), url('http://localhost/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('http://localhost/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
269
+ }
270
+ .ycd-bootstrap-wrapper .glyphicon {
271
+ position: relative;
272
+ top: 1px;
273
+ display: inline-block;
274
+ font-family: 'Glyphicons Halflings';
275
+ font-style: normal;
276
+ font-weight: normal;
277
+ line-height: 1;
278
+ -webkit-font-smoothing: antialiased;
279
+ -moz-osx-font-smoothing: grayscale;
280
+ }
281
+ .ycd-bootstrap-wrapper .glyphicon-asterisk:before {
282
+ content: "\002a";
283
+ }
284
+ .ycd-bootstrap-wrapper .glyphicon-plus:before {
285
+ content: "\002b";
286
+ }
287
+ .ycd-bootstrap-wrapper .glyphicon-euro:before,
288
+ .ycd-bootstrap-wrapper .glyphicon-eur:before {
289
+ content: "\20ac";
290
+ }
291
+ .ycd-bootstrap-wrapper .glyphicon-minus:before {
292
+ content: "\2212";
293
+ }
294
+ .ycd-bootstrap-wrapper .glyphicon-cloud:before {
295
+ content: "\2601";
296
+ }
297
+ .ycd-bootstrap-wrapper .glyphicon-envelope:before {
298
+ content: "\2709";
299
+ }
300
+ .ycd-bootstrap-wrapper .glyphicon-pencil:before {
301
+ content: "\270f";
302
+ }
303
+ .ycd-bootstrap-wrapper .glyphicon-glass:before {
304
+ content: "\e001";
305
+ }
306
+ .ycd-bootstrap-wrapper .glyphicon-music:before {
307
+ content: "\e002";
308
+ }
309
+ .ycd-bootstrap-wrapper .glyphicon-search:before {
310
+ content: "\e003";
311
+ }
312
+ .ycd-bootstrap-wrapper .glyphicon-heart:before {
313
+ content: "\e005";
314
+ }
315
+ .ycd-bootstrap-wrapper .glyphicon-star:before {
316
+ content: "\e006";
317
+ }
318
+ .ycd-bootstrap-wrapper .glyphicon-star-empty:before {
319
+ content: "\e007";
320
+ }
321
+ .ycd-bootstrap-wrapper .glyphicon-user:before {
322
+ content: "\e008";
323
+ }
324
+ .ycd-bootstrap-wrapper .glyphicon-film:before {
325
+ content: "\e009";
326
+ }
327
+ .ycd-bootstrap-wrapper .glyphicon-th-large:before {
328
+ content: "\e010";
329
+ }
330
+ .ycd-bootstrap-wrapper .glyphicon-th:before {
331
+ content: "\e011";
332
+ }
333
+ .ycd-bootstrap-wrapper .glyphicon-th-list:before {
334
+ content: "\e012";
335
+ }
336
+ .ycd-bootstrap-wrapper .glyphicon-ok:before {
337
+ content: "\e013";
338
+ }
339
+ .ycd-bootstrap-wrapper .glyphicon-remove:before {
340
+ content: "\e014";
341
+ }
342
+ .ycd-bootstrap-wrapper .glyphicon-zoom-in:before {
343
+ content: "\e015";
344
+ }
345
+ .ycd-bootstrap-wrapper .glyphicon-zoom-out:before {
346
+ content: "\e016";
347
+ }
348
+ .ycd-bootstrap-wrapper .glyphicon-off:before {
349
+ content: "\e017";
350
+ }
351
+ .ycd-bootstrap-wrapper .glyphicon-signal:before {
352
+ content: "\e018";
353
+ }
354
+ .ycd-bootstrap-wrapper .glyphicon-cog:before {
355
+ content: "\e019";
356
+ }
357
+ .ycd-bootstrap-wrapper .glyphicon-trash:before {
358
+ content: "\e020";
359
+ }
360
+ .ycd-bootstrap-wrapper .glyphicon-home:before {
361
+ content: "\e021";
362
+ }
363
+ .ycd-bootstrap-wrapper .glyphicon-file:before {
364
+ content: "\e022";
365
+ }
366
+ .ycd-bootstrap-wrapper .glyphicon-time:before {
367
+ content: "\e023";
368
+ }
369
+ .ycd-bootstrap-wrapper .glyphicon-road:before {
370
+ content: "\e024";
371
+ }
372
+ .ycd-bootstrap-wrapper .glyphicon-download-alt:before {
373
+ content: "\e025";
374
+ }
375
+ .ycd-bootstrap-wrapper .glyphicon-download:before {
376
+ content: "\e026";
377
+ }
378
+ .ycd-bootstrap-wrapper .glyphicon-upload:before {
379
+ content: "\e027";
380
+ }
381
+ .ycd-bootstrap-wrapper .glyphicon-inbox:before {
382
+ content: "\e028";
383
+ }
384
+ .ycd-bootstrap-wrapper .glyphicon-play-circle:before {
385
+ content: "\e029";
386
+ }
387
+ .ycd-bootstrap-wrapper .glyphicon-repeat:before {
388
+ content: "\e030";
389
+ }
390
+ .ycd-bootstrap-wrapper .glyphicon-refresh:before {
391
+ content: "\e031";
392
+ }
393
+ .ycd-bootstrap-wrapper .glyphicon-list-alt:before {
394
+ content: "\e032";
395
+ }
396
+ .ycd-bootstrap-wrapper .glyphicon-lock:before {
397
+ content: "\e033";
398
+ }
399
+ .ycd-bootstrap-wrapper .glyphicon-flag:before {
400
+ content: "\e034";
401
+ }
402
+ .ycd-bootstrap-wrapper .glyphicon-headphones:before {
403
+ content: "\e035";
404
+ }
405
+ .ycd-bootstrap-wrapper .glyphicon-volume-off:before {
406
+ content: "\e036";
407
+ }
408
+ .ycd-bootstrap-wrapper .glyphicon-volume-down:before {
409
+ content: "\e037";
410
+ }
411
+ .ycd-bootstrap-wrapper .glyphicon-volume-up:before {
412
+ content: "\e038";
413
+ }
414
+ .ycd-bootstrap-wrapper .glyphicon-qrcode:before {
415
+ content: "\e039";
416
+ }
417
+ .ycd-bootstrap-wrapper .glyphicon-barcode:before {
418
+ content: "\e040";
419
+ }
420
+ .ycd-bootstrap-wrapper .glyphicon-tag:before {
421
+ content: "\e041";
422
+ }
423
+ .ycd-bootstrap-wrapper .glyphicon-tags:before {
424
+ content: "\e042";
425
+ }
426
+ .ycd-bootstrap-wrapper .glyphicon-book:before {
427
+ content: "\e043";
428
+ }
429
+ .ycd-bootstrap-wrapper .glyphicon-bookmark:before {
430
+ content: "\e044";
431
+ }
432
+ .ycd-bootstrap-wrapper .glyphicon-print:before {
433
+ content: "\e045";
434
+ }
435
+ .ycd-bootstrap-wrapper .glyphicon-camera:before {
436
+ content: "\e046";
437
+ }
438
+ .ycd-bootstrap-wrapper .glyphicon-font:before {
439
+ content: "\e047";
440
+ }
441
+ .ycd-bootstrap-wrapper .glyphicon-bold:before {
442
+ content: "\e048";
443
+ }
444
+ .ycd-bootstrap-wrapper .glyphicon-italic:before {
445
+ content: "\e049";
446
+ }
447
+ .ycd-bootstrap-wrapper .glyphicon-text-height:before {
448
+ content: "\e050";
449
+ }
450
+ .ycd-bootstrap-wrapper .glyphicon-text-width:before {
451
+ content: "\e051";
452
+ }
453
+ .ycd-bootstrap-wrapper .glyphicon-align-left:before {
454
+ content: "\e052";
455
+ }
456
+ .ycd-bootstrap-wrapper .glyphicon-align-center:before {
457
+ content: "\e053";
458
+ }
459
+ .ycd-bootstrap-wrapper .glyphicon-align-right:before {
460
+ content: "\e054";
461
+ }
462
+ .ycd-bootstrap-wrapper .glyphicon-align-justify:before {
463
+ content: "\e055";
464
+ }
465
+ .ycd-bootstrap-wrapper .glyphicon-list:before {
466
+ content: "\e056";
467
+ }
468
+ .ycd-bootstrap-wrapper .glyphicon-indent-left:before {
469
+ content: "\e057";
470
+ }
471
+ .ycd-bootstrap-wrapper .glyphicon-indent-right:before {
472
+ content: "\e058";
473
+ }
474
+ .ycd-bootstrap-wrapper .glyphicon-facetime-video:before {
475
+ content: "\e059";
476
+ }
477
+ .ycd-bootstrap-wrapper .glyphicon-picture:before {
478
+ content: "\e060";
479
+ }
480
+ .ycd-bootstrap-wrapper .glyphicon-map-marker:before {
481
+ content: "\e062";
482
+ }
483
+ .ycd-bootstrap-wrapper .glyphicon-adjust:before {
484
+ content: "\e063";
485
+ }
486
+ .ycd-bootstrap-wrapper .glyphicon-tint:before {
487
+ content: "\e064";
488
+ }
489
+ .ycd-bootstrap-wrapper .glyphicon-edit:before {
490
+ content: "\e065";
491
+ }
492
+ .ycd-bootstrap-wrapper .glyphicon-share:before {
493
+ content: "\e066";
494
+ }
495
+ .ycd-bootstrap-wrapper .glyphicon-check:before {
496
+ content: "\e067";
497
+ }
498
+ .ycd-bootstrap-wrapper .glyphicon-move:before {
499
+ content: "\e068";
500
+ }
501
+ .ycd-bootstrap-wrapper .glyphicon-step-backward:before {
502
+ content: "\e069";
503
+ }
504
+ .ycd-bootstrap-wrapper .glyphicon-fast-backward:before {
505
+ content: "\e070";
506
+ }
507
+ .ycd-bootstrap-wrapper .glyphicon-backward:before {
508
+ content: "\e071";
509
+ }
510
+ .ycd-bootstrap-wrapper .glyphicon-play:before {
511
+ content: "\e072";
512
+ }
513
+ .ycd-bootstrap-wrapper .glyphicon-pause:before {
514
+ content: "\e073";
515
+ }
516
+ .ycd-bootstrap-wrapper .glyphicon-stop:before {
517
+ content: "\e074";
518
+ }
519
+ .ycd-bootstrap-wrapper .glyphicon-forward:before {
520
+ content: "\e075";
521
+ }
522
+ .ycd-bootstrap-wrapper .glyphicon-fast-forward:before {
523
+ content: "\e076";
524
+ }
525
+ .ycd-bootstrap-wrapper .glyphicon-step-forward:before {
526
+ content: "\e077";
527
+ }
528
+ .ycd-bootstrap-wrapper .glyphicon-eject:before {
529
+ content: "\e078";
530
+ }
531
+ .ycd-bootstrap-wrapper .glyphicon-chevron-left:before {
532
+ content: "\e079";
533
+ }
534
+ .ycd-bootstrap-wrapper .glyphicon-chevron-right:before {
535
+ content: "\e080";
536
+ }
537
+ .ycd-bootstrap-wrapper .glyphicon-plus-sign:before {
538
+ content: "\e081";
539
+ }
540
+ .ycd-bootstrap-wrapper .glyphicon-minus-sign:before {
541
+ content: "\e082";
542
+ }
543
+ .ycd-bootstrap-wrapper .glyphicon-remove-sign:before {
544
+ content: "\e083";
545
+ }
546
+ .ycd-bootstrap-wrapper .glyphicon-ok-sign:before {
547
+ content: "\e084";
548
+ }
549
+ .ycd-bootstrap-wrapper .glyphicon-question-sign:before {
550
+ content: "\e085";
551
+ }
552
+ .ycd-bootstrap-wrapper .glyphicon-info-sign:before {
553
+ content: "\e086";
554
+ }
555
+ .ycd-bootstrap-wrapper .glyphicon-screenshot:before {
556
+ content: "\e087";
557
+ }
558
+ .ycd-bootstrap-wrapper .glyphicon-remove-circle:before {
559
+ content: "\e088";
560
+ }
561
+ .ycd-bootstrap-wrapper .glyphicon-ok-circle:before {
562
+ content: "\e089";
563
+ }
564
+ .ycd-bootstrap-wrapper .glyphicon-ban-circle:before {
565
+ content: "\e090";
566
+ }
567
+ .ycd-bootstrap-wrapper .glyphicon-arrow-left:before {
568
+ content: "\e091";
569
+ }
570
+ .ycd-bootstrap-wrapper .glyphicon-arrow-right:before {
571
+ content: "\e092";
572
+ }
573
+ .ycd-bootstrap-wrapper .glyphicon-arrow-up:before {
574
+ content: "\e093";
575
+ }
576
+ .ycd-bootstrap-wrapper .glyphicon-arrow-down:before {
577
+ content: "\e094";
578
+ }
579
+ .ycd-bootstrap-wrapper .glyphicon-share-alt:before {
580
+ content: "\e095";
581
+ }
582
+ .ycd-bootstrap-wrapper .glyphicon-resize-full:before {
583
+ content: "\e096";
584
+ }
585
+ .ycd-bootstrap-wrapper .glyphicon-resize-small:before {
586
+ content: "\e097";
587
+ }
588
+ .ycd-bootstrap-wrapper .glyphicon-exclamation-sign:before {
589
+ content: "\e101";
590
+ }
591
+ .ycd-bootstrap-wrapper .glyphicon-gift:before {
592
+ content: "\e102";
593
+ }
594
+ .ycd-bootstrap-wrapper .glyphicon-leaf:before {
595
+ content: "\e103";
596
+ }
597
+ .ycd-bootstrap-wrapper .glyphicon-fire:before {
598
+ content: "\e104";
599
+ }
600
+ .ycd-bootstrap-wrapper .glyphicon-eye-open:before {
601
+ content: "\e105";
602
+ }
603
+ .ycd-bootstrap-wrapper .glyphicon-eye-close:before {
604
+ content: "\e106";
605
+ }
606
+ .ycd-bootstrap-wrapper .glyphicon-warning-sign:before {
607
+ content: "\e107";
608
+ }
609
+ .ycd-bootstrap-wrapper .glyphicon-plane:before {
610
+ content: "\e108";
611
+ }
612
+ .ycd-bootstrap-wrapper .glyphicon-calendar:before {
613
+ content: "\e109";
614
+ }
615
+ .ycd-bootstrap-wrapper .glyphicon-random:before {
616
+ content: "\e110";
617
+ }
618
+ .ycd-bootstrap-wrapper .glyphicon-comment:before {
619
+ content: "\e111";
620
+ }
621
+ .ycd-bootstrap-wrapper .glyphicon-magnet:before {
622
+ content: "\e112";
623
+ }
624
+ .ycd-bootstrap-wrapper .glyphicon-chevron-up:before {
625
+ content: "\e113";
626
+ }
627
+ .ycd-bootstrap-wrapper .glyphicon-chevron-down:before {
628
+ content: "\e114";
629
+ }
630
+ .ycd-bootstrap-wrapper .glyphicon-retweet:before {
631
+ content: "\e115";
632
+ }
633
+ .ycd-bootstrap-wrapper .glyphicon-shopping-cart:before {
634
+ content: "\e116";
635
+ }
636
+ .ycd-bootstrap-wrapper .glyphicon-folder-close:before {
637
+ content: "\e117";
638
+ }
639
+ .ycd-bootstrap-wrapper .glyphicon-folder-open:before {
640
+ content: "\e118";
641
+ }
642
+ .ycd-bootstrap-wrapper .glyphicon-resize-vertical:before {
643
+ content: "\e119";
644
+ }
645
+ .ycd-bootstrap-wrapper .glyphicon-resize-horizontal:before {
646
+ content: "\e120";
647
+ }
648
+ .ycd-bootstrap-wrapper .glyphicon-hdd:before {
649
+ content: "\e121";
650
+ }
651
+ .ycd-bootstrap-wrapper .glyphicon-bullhorn:before {
652
+ content: "\e122";
653
+ }
654
+ .ycd-bootstrap-wrapper .glyphicon-bell:before {
655
+ content: "\e123";
656
+ }
657
+ .ycd-bootstrap-wrapper .glyphicon-certificate:before {
658
+ content: "\e124";
659
+ }
660
+ .ycd-bootstrap-wrapper .glyphicon-thumbs-up:before {
661
+ content: "\e125";
662
+ }
663
+ .ycd-bootstrap-wrapper .glyphicon-thumbs-down:before {
664
+ content: "\e126";
665
+ }
666
+ .ycd-bootstrap-wrapper .glyphicon-hand-right:before {
667
+ content: "\e127";
668
+ }
669
+ .ycd-bootstrap-wrapper .glyphicon-hand-left:before {
670
+ content: "\e128";
671
+ }
672
+ .ycd-bootstrap-wrapper .glyphicon-hand-up:before {
673
+ content: "\e129";
674
+ }
675
+ .ycd-bootstrap-wrapper .glyphicon-hand-down:before {
676
+ content: "\e130";
677
+ }
678
+ .ycd-bootstrap-wrapper .glyphicon-circle-arrow-right:before {
679
+ content: "\e131";
680
+ }
681
+ .ycd-bootstrap-wrapper .glyphicon-circle-arrow-left:before {
682
+ content: "\e132";
683
+ }
684
+ .ycd-bootstrap-wrapper .glyphicon-circle-arrow-up:before {
685
+ content: "\e133";
686
+ }
687
+ .ycd-bootstrap-wrapper .glyphicon-circle-arrow-down:before {
688
+ content: "\e134";
689
+ }
690
+ .ycd-bootstrap-wrapper .glyphicon-globe:before {
691
+ content: "\e135";
692
+ }
693
+ .ycd-bootstrap-wrapper .glyphicon-wrench:before {
694
+ content: "\e136";
695
+ }
696
+ .ycd-bootstrap-wrapper .glyphicon-tasks:before {
697
+ content: "\e137";
698
+ }
699
+ .ycd-bootstrap-wrapper .glyphicon-filter:before {
700
+ content: "\e138";
701
+ }
702
+ .ycd-bootstrap-wrapper .glyphicon-briefcase:before {
703
+ content: "\e139";
704
+ }
705
+ .ycd-bootstrap-wrapper .glyphicon-fullscreen:before {
706
+ content: "\e140";
707
+ }
708
+ .ycd-bootstrap-wrapper .glyphicon-dashboard:before {
709
+ content: "\e141";
710
+ }
711
+ .ycd-bootstrap-wrapper .glyphicon-paperclip:before {
712
+ content: "\e142";
713
+ }
714
+ .ycd-bootstrap-wrapper .glyphicon-heart-empty:before {
715
+ content: "\e143";
716
+ }
717
+ .ycd-bootstrap-wrapper .glyphicon-link:before {
718
+ content: "\e144";
719
+ }
720
+ .ycd-bootstrap-wrapper .glyphicon-phone:before {
721
+ content: "\e145";
722
+ }
723
+ .ycd-bootstrap-wrapper .glyphicon-pushpin:before {
724
+ content: "\e146";
725
+ }
726
+ .ycd-bootstrap-wrapper .glyphicon-usd:before {
727
+ content: "\e148";
728
+ }
729
+ .ycd-bootstrap-wrapper .glyphicon-gbp:before {
730
+ content: "\e149";
731
+ }
732
+ .ycd-bootstrap-wrapper .glyphicon-sort:before {
733
+ content: "\e150";
734
+ }
735
+ .ycd-bootstrap-wrapper .glyphicon-sort-by-alphabet:before {
736
+ content: "\e151";
737
+ }
738
+ .ycd-bootstrap-wrapper .glyphicon-sort-by-alphabet-alt:before {
739
+ content: "\e152";
740
+ }
741
+ .ycd-bootstrap-wrapper .glyphicon-sort-by-order:before {
742
+ content: "\e153";
743
+ }
744
+ .ycd-bootstrap-wrapper .glyphicon-sort-by-order-alt:before {
745
+ content: "\e154";
746
+ }
747
+ .ycd-bootstrap-wrapper .glyphicon-sort-by-attributes:before {
748
+ content: "\e155";
749
+ }
750
+ .ycd-bootstrap-wrapper .glyphicon-sort-by-attributes-alt:before {
751
+ content: "\e156";
752
+ }
753
+ .ycd-bootstrap-wrapper .glyphicon-unchecked:before {
754
+ content: "\e157";
755
+ }
756
+ .ycd-bootstrap-wrapper .glyphicon-expand:before {
757
+ content: "\e158";
758
+ }
759
+ .ycd-bootstrap-wrapper .glyphicon-collapse-down:before {
760
+ content: "\e159";
761
+ }
762
+ .ycd-bootstrap-wrapper .glyphicon-collapse-up:before {
763
+ content: "\e160";
764
+ }
765
+ .ycd-bootstrap-wrapper .glyphicon-log-in:before {
766
+ content: "\e161";
767
+ }
768
+ .ycd-bootstrap-wrapper .glyphicon-flash:before {
769
+ content: "\e162";
770
+ }
771
+ .ycd-bootstrap-wrapper .glyphicon-log-out:before {
772
+ content: "\e163";
773
+ }
774
+ .ycd-bootstrap-wrapper .glyphicon-new-window:before {
775
+ content: "\e164";
776
+ }
777
+ .ycd-bootstrap-wrapper .glyphicon-record:before {
778
+ content: "\e165";
779
+ }
780
+ .ycd-bootstrap-wrapper .glyphicon-save:before {
781
+ content: "\e166";
782
+ }
783
+ .ycd-bootstrap-wrapper .glyphicon-open:before {
784
+ content: "\e167";
785
+ }
786
+ .ycd-bootstrap-wrapper .glyphicon-saved:before {
787
+ content: "\e168";
788
+ }
789
+ .ycd-bootstrap-wrapper .glyphicon-import:before {
790
+ content: "\e169";
791
+ }
792
+ .ycd-bootstrap-wrapper .glyphicon-export:before {
793
+ content: "\e170";
794
+ }
795
+ .ycd-bootstrap-wrapper .glyphicon-send:before {
796
+ content: "\e171";
797
+ }
798
+ .ycd-bootstrap-wrapper .glyphicon-floppy-disk:before {
799
+ content: "\e172";
800
+ }
801
+ .ycd-bootstrap-wrapper .glyphicon-floppy-saved:before {
802
+ content: "\e173";
803
+ }
804
+ .ycd-bootstrap-wrapper .glyphicon-floppy-remove:before {
805
+ content: "\e174";
806
+ }
807
+ .ycd-bootstrap-wrapper .glyphicon-floppy-save:before {
808
+ content: "\e175";
809
+ }
810
+ .ycd-bootstrap-wrapper .glyphicon-floppy-open:before {
811
+ content: "\e176";
812
+ }
813
+ .ycd-bootstrap-wrapper .glyphicon-credit-card:before {
814
+ content: "\e177";
815
+ }
816
+ .ycd-bootstrap-wrapper .glyphicon-transfer:before {
817
+ content: "\e178";
818
+ }
819
+ .ycd-bootstrap-wrapper .glyphicon-cutlery:before {
820
+ content: "\e179";
821
+ }
822
+ .ycd-bootstrap-wrapper .glyphicon-header:before {
823
+ content: "\e180";
824
+ }
825
+ .ycd-bootstrap-wrapper .glyphicon-compressed:before {
826
+ content: "\e181";
827
+ }
828
+ .ycd-bootstrap-wrapper .glyphicon-earphone:before {
829
+ content: "\e182";
830
+ }
831
+ .ycd-bootstrap-wrapper .glyphicon-phone-alt:before {
832
+ content: "\e183";
833
+ }
834
+ .ycd-bootstrap-wrapper .glyphicon-tower:before {
835
+ content: "\e184";
836
+ }
837
+ .ycd-bootstrap-wrapper .glyphicon-stats:before {
838
+ content: "\e185";
839
+ }
840
+ .ycd-bootstrap-wrapper .glyphicon-sd-video:before {
841
+ content: "\e186";
842
+ }
843
+ .ycd-bootstrap-wrapper .glyphicon-hd-video:before {
844
+ content: "\e187";
845
+ }
846
+ .ycd-bootstrap-wrapper .glyphicon-subtitles:before {
847
+ content: "\e188";
848
+ }
849
+ .ycd-bootstrap-wrapper .glyphicon-sound-stereo:before {
850
+ content: "\e189";
851
+ }
852
+ .ycd-bootstrap-wrapper .glyphicon-sound-dolby:before {
853
+ content: "\e190";
854
+ }
855
+ .ycd-bootstrap-wrapper .glyphicon-sound-5-1:before {
856
+ content: "\e191";
857
+ }
858
+ .ycd-bootstrap-wrapper .glyphicon-sound-6-1:before {
859
+ content: "\e192";
860
+ }
861
+ .ycd-bootstrap-wrapper .glyphicon-sound-7-1:before {
862
+ content: "\e193";
863
+ }
864
+ .ycd-bootstrap-wrapper .glyphicon-copyright-mark:before {
865
+ content: "\e194";
866
+ }
867
+ .ycd-bootstrap-wrapper .glyphicon-registration-mark:before {
868
+ content: "\e195";
869
+ }
870
+ .ycd-bootstrap-wrapper .glyphicon-cloud-download:before {
871
+ content: "\e197";
872
+ }
873
+ .ycd-bootstrap-wrapper .glyphicon-cloud-upload:before {
874
+ content: "\e198";
875
+ }
876
+ .ycd-bootstrap-wrapper .glyphicon-tree-conifer:before {
877
+ content: "\e199";
878
+ }
879
+ .ycd-bootstrap-wrapper .glyphicon-tree-deciduous:before {
880
+ content: "\e200";
881
+ }
882
+ .ycd-bootstrap-wrapper .glyphicon-cd:before {
883
+ content: "\e201";
884
+ }
885
+ .ycd-bootstrap-wrapper .glyphicon-save-file:before {
886
+ content: "\e202";
887
+ }
888
+ .ycd-bootstrap-wrapper .glyphicon-open-file:before {
889
+ content: "\e203";
890
+ }
891
+ .ycd-bootstrap-wrapper .glyphicon-level-up:before {
892
+ content: "\e204";
893
+ }
894
+ .ycd-bootstrap-wrapper .glyphicon-copy:before {
895
+ content: "\e205";
896
+ }
897
+ .ycd-bootstrap-wrapper .glyphicon-paste:before {
898
+ content: "\e206";
899
+ }
900
+ .ycd-bootstrap-wrapper .glyphicon-alert:before {
901
+ content: "\e209";
902
+ }
903
+ .ycd-bootstrap-wrapper .glyphicon-equalizer:before {
904
+ content: "\e210";
905
+ }
906
+ .ycd-bootstrap-wrapper .glyphicon-king:before {
907
+ content: "\e211";
908
+ }
909
+ .ycd-bootstrap-wrapper .glyphicon-queen:before {
910
+ content: "\e212";
911
+ }
912
+ .ycd-bootstrap-wrapper .glyphicon-pawn:before {
913
+ content: "\e213";
914
+ }
915
+ .ycd-bootstrap-wrapper .glyphicon-bishop:before {
916
+ content: "\e214";
917
+ }
918
+ .ycd-bootstrap-wrapper .glyphicon-knight:before {
919
+ content: "\e215";
920
+ }
921
+ .ycd-bootstrap-wrapper .glyphicon-baby-formula:before {
922
+ content: "\e216";
923
+ }
924
+ .ycd-bootstrap-wrapper .glyphicon-tent:before {
925
+ content: "\26fa";
926
+ }
927
+ .ycd-bootstrap-wrapper .glyphicon-blackboard:before {
928
+ content: "\e218";
929
+ }
930
+ .ycd-bootstrap-wrapper .glyphicon-bed:before {
931
+ content: "\e219";
932
+ }
933
+ .ycd-bootstrap-wrapper .glyphicon-apple:before {
934
+ content: "\f8ff";
935
+ }
936
+ .ycd-bootstrap-wrapper .glyphicon-erase:before {
937
+ content: "\e221";
938
+ }
939
+ .ycd-bootstrap-wrapper .glyphicon-hourglass:before {
940
+ content: "\231b";
941
+ }
942
+ .ycd-bootstrap-wrapper .glyphicon-lamp:before {
943
+ content: "\e223";
944
+ }
945
+ .ycd-bootstrap-wrapper .glyphicon-duplicate:before {
946
+ content: "\e224";
947
+ }
948
+ .ycd-bootstrap-wrapper .glyphicon-piggy-bank:before {
949
+ content: "\e225";
950
+ }
951
+ .ycd-bootstrap-wrapper .glyphicon-scissors:before {
952
+ content: "\e226";
953
+ }
954
+ .ycd-bootstrap-wrapper .glyphicon-bitcoin:before {
955
+ content: "\e227";
956
+ }
957
+ .ycd-bootstrap-wrapper .glyphicon-btc:before {
958
+ content: "\e227";
959
+ }
960
+ .ycd-bootstrap-wrapper .glyphicon-xbt:before {
961
+ content: "\e227";
962
+ }
963
+ .ycd-bootstrap-wrapper .glyphicon-yen:before {
964
+ content: "\00a5";
965
+ }
966
+ .ycd-bootstrap-wrapper .glyphicon-jpy:before {
967
+ content: "\00a5";
968
+ }
969
+ .ycd-bootstrap-wrapper .glyphicon-ruble:before {
970
+ content: "\20bd";
971
+ }
972
+ .ycd-bootstrap-wrapper .glyphicon-rub:before {
973
+ content: "\20bd";
974
+ }
975
+ .ycd-bootstrap-wrapper .glyphicon-scale:before {
976
+ content: "\e230";
977
+ }
978
+ .ycd-bootstrap-wrapper .glyphicon-ice-lolly:before {
979
+ content: "\e231";
980
+ }
981
+ .ycd-bootstrap-wrapper .glyphicon-ice-lolly-tasted:before {
982
+ content: "\e232";
983
+ }
984
+ .ycd-bootstrap-wrapper .glyphicon-education:before {
985
+ content: "\e233";
986
+ }
987
+ .ycd-bootstrap-wrapper .glyphicon-option-horizontal:before {
988
+ content: "\e234";
989
+ }
990
+ .ycd-bootstrap-wrapper .glyphicon-option-vertical:before {
991
+ content: "\e235";
992
+ }
993
+ .ycd-bootstrap-wrapper .glyphicon-menu-hamburger:before {
994
+ content: "\e236";
995
+ }
996
+ .ycd-bootstrap-wrapper .glyphicon-modal-window:before {
997
+ content: "\e237";
998
+ }
999
+ .ycd-bootstrap-wrapper .glyphicon-oil:before {
1000
+ content: "\e238";
1001
+ }
1002
+ .ycd-bootstrap-wrapper .glyphicon-grain:before {
1003
+ content: "\e239";
1004
+ }
1005
+ .ycd-bootstrap-wrapper .glyphicon-sunglasses:before {
1006
+ content: "\e240";
1007
+ }
1008
+ .ycd-bootstrap-wrapper .glyphicon-text-size:before {
1009
+ content: "\e241";
1010
+ }
1011
+ .ycd-bootstrap-wrapper .glyphicon-text-color:before {
1012
+ content: "\e242";
1013
+ }
1014
+ .ycd-bootstrap-wrapper .glyphicon-text-background:before {
1015
+ content: "\e243";
1016
+ }
1017
+ .ycd-bootstrap-wrapper .glyphicon-object-align-top:before {
1018
+ content: "\e244";
1019
+ }
1020
+ .ycd-bootstrap-wrapper .glyphicon-object-align-bottom:before {
1021
+ content: "\e245";
1022
+ }
1023
+ .ycd-bootstrap-wrapper .glyphicon-object-align-horizontal:before {
1024
+ content: "\e246";
1025
+ }
1026
+ .ycd-bootstrap-wrapper .glyphicon-object-align-left:before {
1027
+ content: "\e247";
1028
+ }
1029
+ .ycd-bootstrap-wrapper .glyphicon-object-align-vertical:before {
1030
+ content: "\e248";
1031
+ }
1032
+ .ycd-bootstrap-wrapper .glyphicon-object-align-right:before {
1033
+ content: "\e249";
1034
+ }
1035
+ .ycd-bootstrap-wrapper .glyphicon-triangle-right:before {
1036
+ content: "\e250";
1037
+ }
1038
+ .ycd-bootstrap-wrapper .glyphicon-triangle-left:before {
1039
+ content: "\e251";
1040
+ }
1041
+ .ycd-bootstrap-wrapper .glyphicon-triangle-bottom:before {
1042
+ content: "\e252";
1043
+ }
1044
+ .ycd-bootstrap-wrapper .glyphicon-triangle-top:before {
1045
+ content: "\e253";
1046
+ }
1047
+ .ycd-bootstrap-wrapper .glyphicon-console:before {
1048
+ content: "\e254";
1049
+ }
1050
+ .ycd-bootstrap-wrapper .glyphicon-superscript:before {
1051
+ content: "\e255";
1052
+ }
1053
+ .ycd-bootstrap-wrapper .glyphicon-subscript:before {
1054
+ content: "\e256";
1055
+ }
1056
+ .ycd-bootstrap-wrapper .glyphicon-menu-left:before {
1057
+ content: "\e257";
1058
+ }
1059
+ .ycd-bootstrap-wrapper .glyphicon-menu-right:before {
1060
+ content: "\e258";
1061
+ }
1062
+ .ycd-bootstrap-wrapper .glyphicon-menu-down:before {
1063
+ content: "\e259";
1064
+ }
1065
+ .ycd-bootstrap-wrapper .glyphicon-menu-up:before {
1066
+ content: "\e260";
1067
+ }
1068
+ .ycd-bootstrap-wrapper * {
1069
+ -webkit-box-sizing: border-box;
1070
+ -moz-box-sizing: border-box;
1071
+ box-sizing: border-box;
1072
+ }
1073
+ .ycd-bootstrap-wrapper *:before,
1074
+ .ycd-bootstrap-wrapper *:after {
1075
+ -webkit-box-sizing: border-box;
1076
+ -moz-box-sizing: border-box;
1077
+ box-sizing: border-box;
1078
+ }
1079
+ .ycd-bootstrap-wrapper html {
1080
+ font-size: 10px;
1081
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
1082
+ }
1083
+ .ycd-bootstrap-wrapper body {
1084
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
1085
+ font-size: 14px;
1086
+ line-height: 1.42857143;
1087
+ color: #333;
1088
+ background-color: #fff;
1089
+ }
1090
+ .ycd-bootstrap-wrapper input,
1091
+ .ycd-bootstrap-wrapper button,
1092
+ .ycd-bootstrap-wrapper select,
1093
+ .ycd-bootstrap-wrapper textarea {
1094
+ font-family: inherit;
1095
+ font-size: inherit;
1096
+ line-height: inherit;
1097
+ }
1098
+ .ycd-bootstrap-wrapper a {
1099
+ color: #337ab7;
1100
+ text-decoration: none;
1101
+ }
1102
+ .ycd-bootstrap-wrapper a:hover,
1103
+ .ycd-bootstrap-wrapper a:focus {
1104
+ color: #23527c;
1105
+ text-decoration: underline;
1106
+ }
1107
+ .ycd-bootstrap-wrapper a:focus {
1108
+ outline: thin dotted;
1109
+ outline: 5px auto -webkit-focus-ring-color;
1110
+ outline-offset: -2px;
1111
+ }
1112
+ .ycd-bootstrap-wrapper figure {
1113
+ margin: 0;
1114
+ }
1115
+ .ycd-bootstrap-wrapper img {
1116
+ vertical-align: middle;
1117
+ }
1118
+ .ycd-bootstrap-wrapper .img-responsive,
1119
+ .ycd-bootstrap-wrapper .thumbnail > img,
1120
+ .ycd-bootstrap-wrapper .thumbnail a > img,
1121
+ .ycd-bootstrap-wrapper .carousel-inner > .item > img,
1122
+ .ycd-bootstrap-wrapper .carousel-inner > .item > a > img {
1123
+ display: block;
1124
+ max-width: 100%;
1125
+ height: auto;
1126
+ }
1127
+ .ycd-bootstrap-wrapper .img-rounded {
1128
+ border-radius: 6px;
1129
+ }
1130
+ .ycd-bootstrap-wrapper .img-thumbnail {
1131
+ display: inline-block;
1132
+ max-width: 100%;
1133
+ height: auto;
1134
+ padding: 4px;
1135
+ line-height: 1.42857143;
1136
+ background-color: #fff;
1137
+ border: 1px solid #ddd;
1138
+ border-radius: 4px;
1139
+ -webkit-transition: all 0.2s ease-in-out;
1140
+ -o-transition: all 0.2s ease-in-out;
1141
+ transition: all 0.2s ease-in-out;
1142
+ }
1143
+ .ycd-bootstrap-wrapper .img-circle {
1144
+ border-radius: 50%;
1145
+ }
1146
+ .ycd-bootstrap-wrapper hr {
1147
+ margin-top: 20px;
1148
+ margin-bottom: 20px;
1149
+ border: 0;
1150
+ border-top: 1px solid #eee;
1151
+ }
1152
+ .ycd-bootstrap-wrapper .sr-only {
1153
+ position: absolute;
1154
+ width: 1px;
1155
+ height: 1px;
1156
+ padding: 0;
1157
+ margin: -1px;
1158
+ overflow: hidden;
1159
+ clip: rect(0, 0, 0, 0);
1160
+ border: 0;
1161
+ }
1162
+ .ycd-bootstrap-wrapper .sr-only-focusable:active,
1163
+ .ycd-bootstrap-wrapper .sr-only-focusable:focus {
1164
+ position: static;
1165
+ width: auto;
1166
+ height: auto;
1167
+ margin: 0;
1168
+ overflow: visible;
1169
+ clip: auto;
1170
+ }
1171
+ .ycd-bootstrap-wrapper [role="button"] {
1172
+ cursor: pointer;
1173
+ }
1174
+ .ycd-bootstrap-wrapper h1,
1175
+ .ycd-bootstrap-wrapper h2,
1176
+ .ycd-bootstrap-wrapper h3,
1177
+ .ycd-bootstrap-wrapper h4,
1178
+ .ycd-bootstrap-wrapper h5,
1179
+ .ycd-bootstrap-wrapper h6,
1180
+ .ycd-bootstrap-wrapper .h1,
1181
+ .ycd-bootstrap-wrapper .h2,
1182
+ .ycd-bootstrap-wrapper .h3,
1183
+ .ycd-bootstrap-wrapper .h4,
1184
+ .ycd-bootstrap-wrapper .h5,
1185
+ .ycd-bootstrap-wrapper .h6 {
1186
+ font-family: inherit;
1187
+ font-weight: 500;
1188
+ line-height: 1.1;
1189
+ color: inherit;
1190
+ }
1191
+ .ycd-bootstrap-wrapper h1 small,
1192
+ .ycd-bootstrap-wrapper h2 small,
1193
+ .ycd-bootstrap-wrapper h3 small,
1194
+ .ycd-bootstrap-wrapper h4 small,
1195
+ .ycd-bootstrap-wrapper h5 small,
1196
+ .ycd-bootstrap-wrapper h6 small,
1197
+ .ycd-bootstrap-wrapper .h1 small,
1198
+ .ycd-bootstrap-wrapper .h2 small,
1199
+ .ycd-bootstrap-wrapper .h3 small,
1200
+ .ycd-bootstrap-wrapper .h4 small,
1201
+ .ycd-bootstrap-wrapper .h5 small,
1202
+ .ycd-bootstrap-wrapper .h6 small,
1203
+ .ycd-bootstrap-wrapper h1 .small,
1204
+ .ycd-bootstrap-wrapper h2 .small,
1205
+ .ycd-bootstrap-wrapper h3 .small,
1206
+ .ycd-bootstrap-wrapper h4 .small,
1207
+ .ycd-bootstrap-wrapper h5 .small,
1208
+ .ycd-bootstrap-wrapper h6 .small,
1209
+ .ycd-bootstrap-wrapper .h1 .small,
1210
+ .ycd-bootstrap-wrapper .h2 .small,
1211
+ .ycd-bootstrap-wrapper .h3 .small,
1212
+ .ycd-bootstrap-wrapper .h4 .small,
1213
+ .ycd-bootstrap-wrapper .h5 .small,
1214
+ .ycd-bootstrap-wrapper .h6 .small {
1215
+ font-weight: normal;
1216
+ line-height: 1;
1217
+ color: #777;
1218
+ }
1219
+ .ycd-bootstrap-wrapper h1,
1220
+ .ycd-bootstrap-wrapper .h1,
1221
+ .ycd-bootstrap-wrapper h2,
1222
+ .ycd-bootstrap-wrapper .h2,
1223
+ .ycd-bootstrap-wrapper h3,
1224
+ .ycd-bootstrap-wrapper .h3 {
1225
+ margin-top: 20px;
1226
+ margin-bottom: 10px;
1227
+ }
1228
+ .ycd-bootstrap-wrapper h1 small,
1229
+ .ycd-bootstrap-wrapper .h1 small,
1230
+ .ycd-bootstrap-wrapper h2 small,
1231
+ .ycd-bootstrap-wrapper .h2 small,
1232
+ .ycd-bootstrap-wrapper h3 small,
1233
+ .ycd-bootstrap-wrapper .h3 small,
1234
+ .ycd-bootstrap-wrapper h1 .small,
1235
+ .ycd-bootstrap-wrapper .h1 .small,
1236
+ .ycd-bootstrap-wrapper h2 .small,
1237
+ .ycd-bootstrap-wrapper .h2 .small,
1238
+ .ycd-bootstrap-wrapper h3 .small,
1239
+ .ycd-bootstrap-wrapper .h3 .small {
1240
+ font-size: 65%;
1241
+ }
1242
+ .ycd-bootstrap-wrapper h4,
1243
+ .ycd-bootstrap-wrapper .h4,
1244
+ .ycd-bootstrap-wrapper h5,
1245
+ .ycd-bootstrap-wrapper .h5,
1246
+ .ycd-bootstrap-wrapper h6,
1247
+ .ycd-bootstrap-wrapper .h6 {
1248
+ margin-top: 10px;
1249
+ margin-bottom: 10px;
1250
+ }
1251
+ .ycd-bootstrap-wrapper h4 small,
1252
+ .ycd-bootstrap-wrapper .h4 small,
1253
+ .ycd-bootstrap-wrapper h5 small,
1254
+ .ycd-bootstrap-wrapper .h5 small,
1255
+ .ycd-bootstrap-wrapper h6 small,
1256
+ .ycd-bootstrap-wrapper .h6 small,
1257
+ .ycd-bootstrap-wrapper h4 .small,
1258
+ .ycd-bootstrap-wrapper .h4 .small,
1259
+ .ycd-bootstrap-wrapper h5 .small,
1260
+ .ycd-bootstrap-wrapper .h5 .small,
1261
+ .ycd-bootstrap-wrapper h6 .small,
1262
+ .ycd-bootstrap-wrapper .h6 .small {
1263
+ font-size: 75%;
1264
+ }
1265
+ .ycd-bootstrap-wrapper h1,
1266
+ .ycd-bootstrap-wrapper .h1 {
1267
+ font-size: 36px;
1268
+ }
1269
+ .ycd-bootstrap-wrapper h2,
1270
+ .ycd-bootstrap-wrapper .h2 {
1271
+ font-size: 30px;
1272
+ }
1273
+ .ycd-bootstrap-wrapper h3,
1274
+ .ycd-bootstrap-wrapper .h3 {
1275
+ font-size: 24px;
1276
+ }
1277
+ .ycd-bootstrap-wrapper h4,
1278
+ .ycd-bootstrap-wrapper .h4 {
1279
+ font-size: 18px;
1280
+ }
1281
+ .ycd-bootstrap-wrapper h5,
1282
+ .ycd-bootstrap-wrapper .h5 {
1283
+ font-size: 14px;
1284
+ }
1285
+ .ycd-bootstrap-wrapper h6,
1286
+ .ycd-bootstrap-wrapper .h6 {
1287
+ font-size: 12px;
1288
+ }
1289
+ .ycd-bootstrap-wrapper p {
1290
+ margin: 0 0 10px;
1291
+ }
1292
+ .ycd-bootstrap-wrapper .lead {
1293
+ margin-bottom: 20px;
1294
+ font-size: 16px;
1295
+ font-weight: 300;
1296
+ line-height: 1.4;
1297
+ }
1298
+ @media (min-width: 768px) {
1299
+ .ycd-bootstrap-wrapper .lead {
1300
+ font-size: 21px;
1301
+ }
1302
+ }
1303
+ .ycd-bootstrap-wrapper small,
1304
+ .ycd-bootstrap-wrapper .small {
1305
+ font-size: 85%;
1306
+ }
1307
+ .ycd-bootstrap-wrapper mark,
1308
+ .ycd-bootstrap-wrapper .mark {
1309
+ padding: .2em;
1310
+ background-color: #fcf8e3;
1311
+ }
1312
+ .ycd-bootstrap-wrapper .text-left {
1313
+ text-align: left;
1314
+ }
1315
+ .ycd-bootstrap-wrapper .text-right {
1316
+ text-align: right;
1317
+ }
1318
+ .ycd-bootstrap-wrapper .text-center {
1319
+ text-align: center;
1320
+ }
1321
+ .ycd-bootstrap-wrapper .text-justify {
1322
+ text-align: justify;
1323
+ }
1324
+ .ycd-bootstrap-wrapper .text-nowrap {
1325
+ white-space: nowrap;
1326
+ }
1327
+ .ycd-bootstrap-wrapper .text-lowercase {
1328
+ text-transform: lowercase;
1329
+ }
1330
+ .ycd-bootstrap-wrapper .text-uppercase {
1331
+ text-transform: uppercase;
1332
+ }
1333
+ .ycd-bootstrap-wrapper .text-capitalize {
1334
+ text-transform: capitalize;
1335
+ }
1336
+ .ycd-bootstrap-wrapper .text-muted {
1337
+ color: #777;
1338
+ }
1339
+ .ycd-bootstrap-wrapper .text-primary {
1340
+ color: #337ab7;
1341
+ }
1342
+ .ycd-bootstrap-wrapper a.text-primary:hover,
1343
+ .ycd-bootstrap-wrapper a.text-primary:focus {
1344
+ color: #286090;
1345
+ }
1346
+ .ycd-bootstrap-wrapper .text-success {
1347
+ color: #3c763d;
1348
+ }
1349
+ .ycd-bootstrap-wrapper a.text-success:hover,
1350
+ .ycd-bootstrap-wrapper a.text-success:focus {
1351
+ color: #2b542c;
1352
+ }
1353
+ .ycd-bootstrap-wrapper .text-info {
1354
+ color: #31708f;
1355
+ }
1356
+ .ycd-bootstrap-wrapper a.text-info:hover,
1357
+ .ycd-bootstrap-wrapper a.text-info:focus {
1358
+ color: #245269;
1359
+ }
1360
+ .ycd-bootstrap-wrapper .text-warning {
1361
+ color: #8a6d3b;
1362
+ }
1363
+ .ycd-bootstrap-wrapper a.text-warning:hover,
1364
+ .ycd-bootstrap-wrapper a.text-warning:focus {
1365
+ color: #66512c;
1366
+ }
1367
+ .ycd-bootstrap-wrapper .text-danger {
1368
+ color: #a94442;
1369
+ }
1370
+ .ycd-bootstrap-wrapper a.text-danger:hover,
1371
+ .ycd-bootstrap-wrapper a.text-danger:focus {
1372
+ color: #843534;
1373
+ }
1374
+ .ycd-bootstrap-wrapper .bg-primary {
1375
+ color: #fff;
1376
+ background-color: #337ab7;
1377
+ }
1378
+ .ycd-bootstrap-wrapper a.bg-primary:hover,
1379
+ .ycd-bootstrap-wrapper a.bg-primary:focus {
1380
+ background-color: #286090;
1381
+ }
1382
+ .ycd-bootstrap-wrapper .bg-success {
1383
+ background-color: #dff0d8;
1384
+ }
1385
+ .ycd-bootstrap-wrapper a.bg-success:hover,
1386
+ .ycd-bootstrap-wrapper a.bg-success:focus {
1387
+ background-color: #c1e2b3;
1388
+ }
1389
+ .ycd-bootstrap-wrapper .bg-info {
1390
+ background-color: #d9edf7;
1391
+ }
1392
+ .ycd-bootstrap-wrapper a.bg-info:hover,
1393
+ .ycd-bootstrap-wrapper a.bg-info:focus {
1394
+ background-color: #afd9ee;
1395
+ }
1396
+ .ycd-bootstrap-wrapper .bg-warning {
1397
+ background-color: #fcf8e3;
1398
+ }
1399
+ .ycd-bootstrap-wrapper a.bg-warning:hover,
1400
+ .ycd-bootstrap-wrapper a.bg-warning:focus {
1401
+ background-color: #f7ecb5;
1402
+ }
1403
+ .ycd-bootstrap-wrapper .bg-danger {
1404
+ background-color: #f2dede;
1405
+ }
1406
+ .ycd-bootstrap-wrapper a.bg-danger:hover,
1407
+ .ycd-bootstrap-wrapper a.bg-danger:focus {
1408
+ background-color: #e4b9b9;
1409
+ }
1410
+ .ycd-bootstrap-wrapper .page-header {
1411
+ padding-bottom: 9px;
1412
+ margin: 40px 0 20px;
1413
+ border-bottom: 1px solid #eee;
1414
+ }
1415
+ .ycd-bootstrap-wrapper ul,
1416
+ .ycd-bootstrap-wrapper ol {
1417
+ margin-top: 0;
1418
+ margin-bottom: 10px;
1419
+ }
1420
+ .ycd-bootstrap-wrapper ul ul,
1421
+ .ycd-bootstrap-wrapper ol ul,
1422
+ .ycd-bootstrap-wrapper ul ol,
1423
+ .ycd-bootstrap-wrapper ol ol {
1424
+ margin-bottom: 0;
1425
+ }
1426
+ .ycd-bootstrap-wrapper .list-unstyled {
1427
+ padding-left: 0;
1428
+ list-style: none;
1429
+ }
1430
+ .ycd-bootstrap-wrapper .list-inline {
1431
+ padding-left: 0;
1432
+ margin-left: -5px;
1433
+ list-style: none;
1434
+ }
1435
+ .ycd-bootstrap-wrapper .list-inline > li {
1436
+ display: inline-block;
1437
+ padding-right: 5px;
1438
+ padding-left: 5px;
1439
+ }
1440
+ .ycd-bootstrap-wrapper dl {
1441
+ margin-top: 0;
1442
+ margin-bottom: 20px;
1443
+ }
1444
+ .ycd-bootstrap-wrapper dt,
1445
+ .ycd-bootstrap-wrapper dd {
1446
+ line-height: 1.42857143;
1447
+ }
1448
+ .ycd-bootstrap-wrapper dt {
1449
+ font-weight: bold;
1450
+ }
1451
+ .ycd-bootstrap-wrapper dd {
1452
+ margin-left: 0;
1453
+ }
1454
+ @media (min-width: 768px) {
1455
+ .ycd-bootstrap-wrapper .dl-horizontal dt {
1456
+ float: left;
1457
+ width: 160px;
1458
+ overflow: hidden;
1459
+ clear: left;
1460
+ text-align: right;
1461
+ text-overflow: ellipsis;
1462
+ white-space: nowrap;
1463
+ }
1464
+ .ycd-bootstrap-wrapper .dl-horizontal dd {
1465
+ margin-left: 180px;
1466
+ }
1467
+ }
1468
+ .ycd-bootstrap-wrapper abbr[title],
1469
+ .ycd-bootstrap-wrapper abbr[data-original-title] {
1470
+ cursor: help;
1471
+ border-bottom: 1px dotted #777;
1472
+ }
1473
+ .ycd-bootstrap-wrapper .initialism {
1474
+ font-size: 90%;
1475
+ text-transform: uppercase;
1476
+ }
1477
+ .ycd-bootstrap-wrapper blockquote {
1478
+ padding: 10px 20px;
1479
+ margin: 0 0 20px;
1480
+ font-size: 17.5px;
1481
+ border-left: 5px solid #eee;
1482
+ }
1483
+ .ycd-bootstrap-wrapper blockquote p:last-child,
1484
+ .ycd-bootstrap-wrapper blockquote ul:last-child,
1485
+ .ycd-bootstrap-wrapper blockquote ol:last-child {
1486
+ margin-bottom: 0;
1487
+ }
1488
+ .ycd-bootstrap-wrapper blockquote footer,
1489
+ .ycd-bootstrap-wrapper blockquote small,
1490
+ .ycd-bootstrap-wrapper blockquote .small {
1491
+ display: block;
1492
+ font-size: 80%;
1493
+ line-height: 1.42857143;
1494
+ color: #777;
1495
+ }
1496
+ .ycd-bootstrap-wrapper blockquote footer:before,
1497
+ .ycd-bootstrap-wrapper blockquote small:before,
1498
+ .ycd-bootstrap-wrapper blockquote .small:before {
1499
+ content: '\2014 \00A0';
1500
+ }
1501
+ .ycd-bootstrap-wrapper .blockquote-reverse,
1502
+ .ycd-bootstrap-wrapper blockquote.pull-right {
1503
+ padding-right: 15px;
1504
+ padding-left: 0;
1505
+ text-align: right;
1506
+ border-right: 5px solid #eee;
1507
+ border-left: 0;
1508
+ }
1509
+ .ycd-bootstrap-wrapper .blockquote-reverse footer:before,
1510
+ .ycd-bootstrap-wrapper blockquote.pull-right footer:before,
1511
+ .ycd-bootstrap-wrapper .blockquote-reverse small:before,
1512
+ .ycd-bootstrap-wrapper blockquote.pull-right small:before,
1513
+ .ycd-bootstrap-wrapper .blockquote-reverse .small:before,
1514
+ .ycd-bootstrap-wrapper blockquote.pull-right .small:before {
1515
+ content: '';
1516
+ }
1517
+ .ycd-bootstrap-wrapper .blockquote-reverse footer:after,
1518
+ .ycd-bootstrap-wrapper blockquote.pull-right footer:after,
1519
+ .ycd-bootstrap-wrapper .blockquote-reverse small:after,
1520
+ .ycd-bootstrap-wrapper blockquote.pull-right small:after,
1521
+ .ycd-bootstrap-wrapper .blockquote-reverse .small:after,
1522
+ .ycd-bootstrap-wrapper blockquote.pull-right .small:after {
1523
+ content: '\00A0 \2014';
1524
+ }
1525
+ .ycd-bootstrap-wrapper address {
1526
+ margin-bottom: 20px;
1527
+ font-style: normal;
1528
+ line-height: 1.42857143;
1529
+ }
1530
+ .ycd-bootstrap-wrapper code,
1531
+ .ycd-bootstrap-wrapper kbd,
1532
+ .ycd-bootstrap-wrapper pre,
1533
+ .ycd-bootstrap-wrapper samp {
1534
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
1535
+ }
1536
+ .ycd-bootstrap-wrapper code {
1537
+ padding: 2px 4px;
1538
+ font-size: 90%;
1539
+ color: #c7254e;
1540
+ background-color: #f9f2f4;
1541
+ border-radius: 4px;
1542
+ }
1543
+ .ycd-bootstrap-wrapper kbd {
1544
+ padding: 2px 4px;
1545
+ font-size: 90%;
1546
+ color: #fff;
1547
+ background-color: #333;
1548
+ border-radius: 3px;
1549
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
1550
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
1551
+ }
1552
+ .ycd-bootstrap-wrapper kbd kbd {
1553
+ padding: 0;
1554
+ font-size: 100%;
1555
+ font-weight: bold;
1556
+ -webkit-box-shadow: none;
1557
+ box-shadow: none;
1558
+ }
1559
+ .ycd-bootstrap-wrapper pre {
1560
+ display: block;
1561
+ padding: 9.5px;
1562
+ margin: 0 0 10px;
1563
+ font-size: 13px;
1564
+ line-height: 1.42857143;
1565
+ color: #333;
1566
+ word-break: break-all;
1567
+ word-wrap: break-word;
1568
+ background-color: #f5f5f5;
1569
+ border: 1px solid #ccc;
1570
+ border-radius: 4px;
1571
+ }
1572
+ .ycd-bootstrap-wrapper pre code {
1573
+ padding: 0;
1574
+ font-size: inherit;
1575
+ color: inherit;
1576
+ white-space: pre-wrap;
1577
+ background-color: transparent;
1578
+ border-radius: 0;
1579
+ }
1580
+ .ycd-bootstrap-wrapper .pre-scrollable {
1581
+ max-height: 340px;
1582
+ overflow-y: scroll;
1583
+ }
1584
+ .ycd-bootstrap-wrapper .container {
1585
+ padding-right: 15px;
1586
+ padding-left: 15px;
1587
+ margin-right: auto;
1588
+ margin-left: auto;
1589
+ }
1590
+ @media (min-width: 768px) {
1591
+ .ycd-bootstrap-wrapper .container {
1592
+ width: 750px;
1593
+ }
1594
+ }
1595
+ @media (min-width: 992px) {
1596
+ .ycd-bootstrap-wrapper .container {
1597
+ width: 970px;
1598
+ }
1599
+ }
1600
+ @media (min-width: 1200px) {
1601
+ .ycd-bootstrap-wrapper .container {
1602
+ width: 1170px;
1603
+ }
1604
+ }
1605
+ .ycd-bootstrap-wrapper .container-fluid {
1606
+ padding-right: 15px;
1607
+ padding-left: 15px;
1608
+ margin-right: auto;
1609
+ margin-left: auto;
1610
+ }
1611
+ .ycd-bootstrap-wrapper .row {
1612
+ margin-right: -15px;
1613
+ margin-left: -15px;
1614
+ }
1615
+ .ycd-bootstrap-wrapper .col-xs-1,
1616
+ .ycd-bootstrap-wrapper .col-sm-1,
1617
+ .ycd-bootstrap-wrapper .col-md-1,
1618
+ .ycd-bootstrap-wrapper .col-lg-1,
1619
+ .ycd-bootstrap-wrapper .col-xs-2,
1620
+ .ycd-bootstrap-wrapper .col-sm-2,
1621
+ .ycd-bootstrap-wrapper .col-md-2,
1622
+ .ycd-bootstrap-wrapper .col-lg-2,
1623
+ .ycd-bootstrap-wrapper .col-xs-3,
1624
+ .ycd-bootstrap-wrapper .col-sm-3,
1625
+ .ycd-bootstrap-wrapper .col-md-3,
1626
+ .ycd-bootstrap-wrapper .col-lg-3,
1627
+ .ycd-bootstrap-wrapper .col-xs-4,
1628
+ .ycd-bootstrap-wrapper .col-sm-4,
1629
+ .ycd-bootstrap-wrapper .col-md-4,
1630
+ .ycd-bootstrap-wrapper .col-lg-4,
1631
+ .ycd-bootstrap-wrapper .col-xs-5,
1632
+ .ycd-bootstrap-wrapper .col-sm-5,
1633
+ .ycd-bootstrap-wrapper .col-md-5,
1634
+ .ycd-bootstrap-wrapper .col-lg-5,
1635
+ .ycd-bootstrap-wrapper .col-xs-6,
1636
+ .ycd-bootstrap-wrapper .col-sm-6,
1637
+ .ycd-bootstrap-wrapper .col-md-6,
1638
+ .ycd-bootstrap-wrapper .col-lg-6,
1639
+ .ycd-bootstrap-wrapper .col-xs-7,
1640
+ .ycd-bootstrap-wrapper .col-sm-7,
1641
+ .ycd-bootstrap-wrapper .col-md-7,
1642
+ .ycd-bootstrap-wrapper .col-lg-7,
1643
+ .ycd-bootstrap-wrapper .col-xs-8,
1644
+ .ycd-bootstrap-wrapper .col-sm-8,
1645
+ .ycd-bootstrap-wrapper .col-md-8,
1646
+ .ycd-bootstrap-wrapper .col-lg-8,
1647
+ .ycd-bootstrap-wrapper .col-xs-9,
1648
+ .ycd-bootstrap-wrapper .col-sm-9,
1649
+ .ycd-bootstrap-wrapper .col-md-9,
1650
+ .ycd-bootstrap-wrapper .col-lg-9,
1651
+ .ycd-bootstrap-wrapper .col-xs-10,
1652
+ .ycd-bootstrap-wrapper .col-sm-10,
1653
+ .ycd-bootstrap-wrapper .col-md-10,
1654
+ .ycd-bootstrap-wrapper .col-lg-10,
1655
+ .ycd-bootstrap-wrapper .col-xs-11,
1656
+ .ycd-bootstrap-wrapper .col-sm-11,
1657
+ .ycd-bootstrap-wrapper .col-md-11,
1658
+ .ycd-bootstrap-wrapper .col-lg-11,
1659
+ .ycd-bootstrap-wrapper .col-xs-12,
1660
+ .ycd-bootstrap-wrapper .col-sm-12,
1661
+ .ycd-bootstrap-wrapper .col-md-12,
1662
+ .ycd-bootstrap-wrapper .col-lg-12 {
1663
+ position: relative;
1664
+ min-height: 1px;
1665
+ padding-right: 15px;
1666
+ padding-left: 15px;
1667
+ }
1668
+ .ycd-bootstrap-wrapper .col-xs-1,
1669
+ .ycd-bootstrap-wrapper .col-xs-2,
1670
+ .ycd-bootstrap-wrapper .col-xs-3,
1671
+ .ycd-bootstrap-wrapper .col-xs-4,
1672
+ .ycd-bootstrap-wrapper .col-xs-5,
1673
+ .ycd-bootstrap-wrapper .col-xs-6,
1674
+ .ycd-bootstrap-wrapper .col-xs-7,
1675
+ .ycd-bootstrap-wrapper .col-xs-8,
1676
+ .ycd-bootstrap-wrapper .col-xs-9,
1677
+ .ycd-bootstrap-wrapper .col-xs-10,
1678
+ .ycd-bootstrap-wrapper .col-xs-11,
1679
+ .ycd-bootstrap-wrapper .col-xs-12 {
1680
+ float: left;
1681
+ }
1682
+ .ycd-bootstrap-wrapper .col-xs-12 {
1683
+ width: 100%;
1684
+ }
1685
+ .ycd-bootstrap-wrapper .col-xs-11 {
1686
+ width: 91.66666667%;
1687
+ }
1688
+ .ycd-bootstrap-wrapper .col-xs-10 {
1689
+ width: 83.33333333%;
1690
+ }
1691
+ .ycd-bootstrap-wrapper .col-xs-9 {
1692
+ width: 75%;
1693
+ }
1694
+ .ycd-bootstrap-wrapper .col-xs-8 {
1695
+ width: 66.66666667%;
1696
+ }
1697
+ .ycd-bootstrap-wrapper .col-xs-7 {
1698
+ width: 58.33333333%;
1699
+ }
1700
+ .ycd-bootstrap-wrapper .col-xs-6 {
1701
+ width: 50%;
1702
+ }
1703
+ .ycd-bootstrap-wrapper .col-xs-5 {
1704
+ width: 41.66666667%;
1705
+ }
1706
+ .ycd-bootstrap-wrapper .col-xs-4 {
1707
+ width: 33.33333333%;
1708
+ }
1709
+ .ycd-bootstrap-wrapper .col-xs-3 {
1710
+ width: 25%;
1711
+ }
1712
+ .ycd-bootstrap-wrapper .col-xs-2 {
1713
+ width: 16.66666667%;
1714
+ }
1715
+ .ycd-bootstrap-wrapper .col-xs-1 {
1716
+ width: 8.33333333%;
1717
+ }
1718
+ .ycd-bootstrap-wrapper .col-xs-pull-12 {
1719
+ right: 100%;
1720
+ }
1721
+ .ycd-bootstrap-wrapper .col-xs-pull-11 {
1722
+ right: 91.66666667%;
1723
+ }
1724
+ .ycd-bootstrap-wrapper .col-xs-pull-10 {
1725
+ right: 83.33333333%;
1726
+ }
1727
+ .ycd-bootstrap-wrapper .col-xs-pull-9 {
1728
+ right: 75%;
1729
+ }
1730
+ .ycd-bootstrap-wrapper .col-xs-pull-8 {
1731
+ right: 66.66666667%;
1732
+ }
1733
+ .ycd-bootstrap-wrapper .col-xs-pull-7 {
1734
+ right: 58.33333333%;
1735
+ }
1736
+ .ycd-bootstrap-wrapper .col-xs-pull-6 {
1737
+ right: 50%;
1738
+ }
1739
+ .ycd-bootstrap-wrapper .col-xs-pull-5 {
1740
+ right: 41.66666667%;
1741
+ }
1742
+ .ycd-bootstrap-wrapper .col-xs-pull-4 {
1743
+ right: 33.33333333%;
1744
+ }
1745
+ .ycd-bootstrap-wrapper .col-xs-pull-3 {
1746
+ right: 25%;
1747
+ }
1748
+ .ycd-bootstrap-wrapper .col-xs-pull-2 {
1749
+ right: 16.66666667%;
1750
+ }
1751
+ .ycd-bootstrap-wrapper .col-xs-pull-1 {
1752
+ right: 8.33333333%;
1753
+ }
1754
+ .ycd-bootstrap-wrapper .col-xs-pull-0 {
1755
+ right: auto;
1756
+ }
1757
+ .ycd-bootstrap-wrapper .col-xs-push-12 {
1758
+ left: 100%;
1759
+ }
1760
+ .ycd-bootstrap-wrapper .col-xs-push-11 {
1761
+ left: 91.66666667%;
1762
+ }
1763
+ .ycd-bootstrap-wrapper .col-xs-push-10 {
1764
+ left: 83.33333333%;
1765
+ }
1766
+ .ycd-bootstrap-wrapper .col-xs-push-9 {
1767
+ left: 75%;
1768
+ }
1769
+ .ycd-bootstrap-wrapper .col-xs-push-8 {
1770
+ left: 66.66666667%;
1771
+ }
1772
+ .ycd-bootstrap-wrapper .col-xs-push-7 {
1773
+ left: 58.33333333%;
1774
+ }
1775
+ .ycd-bootstrap-wrapper .col-xs-push-6 {
1776
+ left: 50%;
1777
+ }
1778
+ .ycd-bootstrap-wrapper .col-xs-push-5 {
1779
+ left: 41.66666667%;
1780
+ }
1781
+ .ycd-bootstrap-wrapper .col-xs-push-4 {
1782
+ left: 33.33333333%;
1783
+ }
1784
+ .ycd-bootstrap-wrapper .col-xs-push-3 {
1785
+ left: 25%;
1786
+ }
1787
+ .ycd-bootstrap-wrapper .col-xs-push-2 {
1788
+ left: 16.66666667%;
1789
+ }
1790
+ .ycd-bootstrap-wrapper .col-xs-push-1 {
1791
+ left: 8.33333333%;
1792
+ }
1793
+ .ycd-bootstrap-wrapper .col-xs-push-0 {
1794
+ left: auto;
1795
+ }
1796
+ .ycd-bootstrap-wrapper .col-xs-offset-12 {
1797
+ margin-left: 100%;
1798
+ }
1799
+ .ycd-bootstrap-wrapper .col-xs-offset-11 {
1800
+ margin-left: 91.66666667%;
1801
+ }
1802
+ .ycd-bootstrap-wrapper .col-xs-offset-10 {
1803
+ margin-left: 83.33333333%;
1804
+ }
1805
+ .ycd-bootstrap-wrapper .col-xs-offset-9 {
1806
+ margin-left: 75%;
1807
+ }
1808
+ .ycd-bootstrap-wrapper .col-xs-offset-8 {
1809
+ margin-left: 66.66666667%;
1810
+ }
1811
+ .ycd-bootstrap-wrapper .col-xs-offset-7 {
1812
+ margin-left: 58.33333333%;
1813
+ }
1814
+ .ycd-bootstrap-wrapper .col-xs-offset-6 {
1815
+ margin-left: 50%;
1816
+ }
1817
+ .ycd-bootstrap-wrapper .col-xs-offset-5 {
1818
+ margin-left: 41.66666667%;
1819
+ }
1820
+ .ycd-bootstrap-wrapper .col-xs-offset-4 {
1821
+ margin-left: 33.33333333%;
1822
+ }
1823
+ .ycd-bootstrap-wrapper .col-xs-offset-3 {
1824
+ margin-left: 25%;
1825
+ }
1826
+ .ycd-bootstrap-wrapper .col-xs-offset-2 {
1827
+ margin-left: 16.66666667%;
1828
+ }
1829
+ .ycd-bootstrap-wrapper .col-xs-offset-1 {
1830
+ margin-left: 8.33333333%;
1831
+ }
1832
+ .ycd-bootstrap-wrapper .col-xs-offset-0 {
1833
+ margin-left: 0;
1834
+ }
1835
+ @media (min-width: 768px) {
1836
+ .ycd-bootstrap-wrapper .col-sm-1,
1837
+ .ycd-bootstrap-wrapper .col-sm-2,
1838
+ .ycd-bootstrap-wrapper .col-sm-3,
1839
+ .ycd-bootstrap-wrapper .col-sm-4,
1840
+ .ycd-bootstrap-wrapper .col-sm-5,
1841
+ .ycd-bootstrap-wrapper .col-sm-6,
1842
+ .ycd-bootstrap-wrapper .col-sm-7,
1843
+ .ycd-bootstrap-wrapper .col-sm-8,
1844
+ .ycd-bootstrap-wrapper .col-sm-9,
1845
+ .ycd-bootstrap-wrapper .col-sm-10,
1846
+ .ycd-bootstrap-wrapper .col-sm-11,
1847
+ .ycd-bootstrap-wrapper .col-sm-12 {
1848
+ float: left;
1849
+ }
1850
+ .ycd-bootstrap-wrapper .col-sm-12 {
1851
+ width: 100%;
1852
+ }
1853
+ .ycd-bootstrap-wrapper .col-sm-11 {
1854
+ width: 91.66666667%;
1855
+ }
1856
+ .ycd-bootstrap-wrapper .col-sm-10 {
1857
+ width: 83.33333333%;
1858
+ }
1859
+ .ycd-bootstrap-wrapper .col-sm-9 {
1860
+ width: 75%;
1861
+ }
1862
+ .ycd-bootstrap-wrapper .col-sm-8 {
1863
+ width: 66.66666667%;
1864
+ }
1865
+ .ycd-bootstrap-wrapper .col-sm-7 {
1866
+ width: 58.33333333%;
1867
+ }
1868
+ .ycd-bootstrap-wrapper .col-sm-6 {
1869
+ width: 50%;
1870
+ }
1871
+ .ycd-bootstrap-wrapper .col-sm-5 {
1872
+ width: 41.66666667%;
1873
+ }
1874
+ .ycd-bootstrap-wrapper .col-sm-4 {
1875
+ width: 33.33333333%;
1876
+ }
1877
+ .ycd-bootstrap-wrapper .col-sm-3 {
1878
+ width: 25%;
1879
+ }
1880
+ .ycd-bootstrap-wrapper .col-sm-2 {
1881
+ width: 16.66666667%;
1882
+ }
1883
+ .ycd-bootstrap-wrapper .col-sm-1 {
1884
+ width: 8.33333333%;
1885
+ }
1886
+ .ycd-bootstrap-wrapper .col-sm-pull-12 {
1887
+ right: 100%;
1888
+ }
1889
+ .ycd-bootstrap-wrapper .col-sm-pull-11 {
1890
+ right: 91.66666667%;
1891
+ }
1892
+ .ycd-bootstrap-wrapper .col-sm-pull-10 {
1893
+ right: 83.33333333%;
1894
+ }
1895
+ .ycd-bootstrap-wrapper .col-sm-pull-9 {
1896
+ right: 75%;
1897
+ }
1898
+ .ycd-bootstrap-wrapper .col-sm-pull-8 {
1899
+ right: 66.66666667%;
1900
+ }
1901
+ .ycd-bootstrap-wrapper .col-sm-pull-7 {
1902
+ right: 58.33333333%;
1903
+ }
1904
+ .ycd-bootstrap-wrapper .col-sm-pull-6 {
1905
+ right: 50%;
1906
+ }
1907
+ .ycd-bootstrap-wrapper .col-sm-pull-5 {
1908
+ right: 41.66666667%;
1909
+ }
1910
+ .ycd-bootstrap-wrapper .col-sm-pull-4 {
1911
+ right: 33.33333333%;
1912
+ }
1913
+ .ycd-bootstrap-wrapper .col-sm-pull-3 {
1914
+ right: 25%;
1915
+ }
1916
+ .ycd-bootstrap-wrapper .col-sm-pull-2 {
1917
+ right: 16.66666667%;
1918
+ }
1919
+ .ycd-bootstrap-wrapper .col-sm-pull-1 {
1920
+ right: 8.33333333%;
1921
+ }
1922
+ .ycd-bootstrap-wrapper .col-sm-pull-0 {
1923
+ right: auto;
1924
+ }
1925
+ .ycd-bootstrap-wrapper .col-sm-push-12 {
1926
+ left: 100%;
1927
+ }
1928
+ .ycd-bootstrap-wrapper .col-sm-push-11 {
1929
+ left: 91.66666667%;
1930
+ }
1931
+ .ycd-bootstrap-wrapper .col-sm-push-10 {
1932
+ left: 83.33333333%;
1933
+ }
1934
+ .ycd-bootstrap-wrapper .col-sm-push-9 {
1935
+ left: 75%;
1936
+ }
1937
+ .ycd-bootstrap-wrapper .col-sm-push-8 {
1938
+ left: 66.66666667%;
1939
+ }
1940
+ .ycd-bootstrap-wrapper .col-sm-push-7 {
1941
+ left: 58.33333333%;
1942
+ }
1943
+ .ycd-bootstrap-wrapper .col-sm-push-6 {
1944
+ left: 50%;
1945
+ }
1946
+ .ycd-bootstrap-wrapper .col-sm-push-5 {
1947
+ left: 41.66666667%;
1948
+ }
1949
+ .ycd-bootstrap-wrapper .col-sm-push-4 {
1950
+ left: 33.33333333%;
1951
+ }
1952
+ .ycd-bootstrap-wrapper .col-sm-push-3 {
1953
+ left: 25%;
1954
+ }
1955
+ .ycd-bootstrap-wrapper .col-sm-push-2 {
1956
+ left: 16.66666667%;
1957
+ }
1958
+ .ycd-bootstrap-wrapper .col-sm-push-1 {
1959
+ left: 8.33333333%;
1960
+ }
1961
+ .ycd-bootstrap-wrapper .col-sm-push-0 {
1962
+ left: auto;
1963
+ }
1964
+ .ycd-bootstrap-wrapper .col-sm-offset-12 {
1965
+ margin-left: 100%;
1966
+ }
1967
+ .ycd-bootstrap-wrapper .col-sm-offset-11 {
1968
+ margin-left: 91.66666667%;
1969
+ }
1970
+ .ycd-bootstrap-wrapper .col-sm-offset-10 {
1971
+ margin-left: 83.33333333%;
1972
+ }
1973
+ .ycd-bootstrap-wrapper .col-sm-offset-9 {
1974
+ margin-left: 75%;
1975
+ }
1976
+ .ycd-bootstrap-wrapper .col-sm-offset-8 {
1977
+ margin-left: 66.66666667%;
1978
+ }
1979
+ .ycd-bootstrap-wrapper .col-sm-offset-7 {
1980
+ margin-left: 58.33333333%;
1981
+ }
1982
+ .ycd-bootstrap-wrapper .col-sm-offset-6 {
1983
+ margin-left: 50%;
1984
+ }
1985
+ .ycd-bootstrap-wrapper .col-sm-offset-5 {
1986
+ margin-left: 41.66666667%;
1987
+ }
1988
+ .ycd-bootstrap-wrapper .col-sm-offset-4 {
1989
+ margin-left: 33.33333333%;
1990
+ }
1991
+ .ycd-bootstrap-wrapper .col-sm-offset-3 {
1992
+ margin-left: 25%;
1993
+ }
1994
+ .ycd-bootstrap-wrapper .col-sm-offset-2 {
1995
+ margin-left: 16.66666667%;
1996
+ }
1997
+ .ycd-bootstrap-wrapper .col-sm-offset-1 {
1998
+ margin-left: 8.33333333%;
1999
+ }
2000
+ .ycd-bootstrap-wrapper .col-sm-offset-0 {
2001
+ margin-left: 0;
2002
+ }
2003
+ }
2004
+ @media (min-width: 992px) {
2005
+ .ycd-bootstrap-wrapper .col-md-1,
2006
+ .ycd-bootstrap-wrapper .col-md-2,
2007
+ .ycd-bootstrap-wrapper .col-md-3,
2008
+ .ycd-bootstrap-wrapper .col-md-4,
2009
+ .ycd-bootstrap-wrapper .col-md-5,
2010
+ .ycd-bootstrap-wrapper .col-md-6,
2011
+ .ycd-bootstrap-wrapper .col-md-7,
2012
+ .ycd-bootstrap-wrapper .col-md-8,
2013
+ .ycd-bootstrap-wrapper .col-md-9,
2014
+ .ycd-bootstrap-wrapper .col-md-10,
2015
+ .ycd-bootstrap-wrapper .col-md-11,
2016
+ .ycd-bootstrap-wrapper .col-md-12 {
2017
+ float: left;
2018
+ }
2019
+ .ycd-bootstrap-wrapper .col-md-12 {
2020
+ width: 100%;
2021
+ }
2022
+ .ycd-bootstrap-wrapper .col-md-11 {
2023
+ width: 91.66666667%;
2024
+ }
2025
+ .ycd-bootstrap-wrapper .col-md-10 {
2026
+ width: 83.33333333%;
2027
+ }
2028
+ .ycd-bootstrap-wrapper .col-md-9 {
2029
+ width: 75%;
2030
+ }
2031
+ .ycd-bootstrap-wrapper .col-md-8 {
2032
+ width: 66.66666667%;
2033
+ }
2034
+ .ycd-bootstrap-wrapper .col-md-7 {
2035
+ width: 58.33333333%;
2036
+ }
2037
+ .ycd-bootstrap-wrapper .col-md-6 {
2038
+ width: 50%;
2039
+ }
2040
+ .ycd-bootstrap-wrapper .col-md-5 {
2041
+ width: 41.66666667%;
2042
+ }
2043
+ .ycd-bootstrap-wrapper .col-md-4 {
2044
+ width: 33.33333333%;
2045
+ }
2046
+ .ycd-bootstrap-wrapper .col-md-3 {
2047
+ width: 25%;
2048
+ }
2049
+ .ycd-bootstrap-wrapper .col-md-2 {
2050
+ width: 16.66666667%;
2051
+ }
2052
+ .ycd-bootstrap-wrapper .col-md-1 {
2053
+ width: 8.33333333%;
2054
+ }
2055
+ .ycd-bootstrap-wrapper .col-md-pull-12 {
2056
+ right: 100%;
2057
+ }
2058
+ .ycd-bootstrap-wrapper .col-md-pull-11 {
2059
+ right: 91.66666667%;
2060
+ }
2061
+ .ycd-bootstrap-wrapper .col-md-pull-10 {
2062
+ right: 83.33333333%;
2063
+ }
2064
+ .ycd-bootstrap-wrapper .col-md-pull-9 {
2065
+ right: 75%;
2066
+ }
2067
+ .ycd-bootstrap-wrapper .col-md-pull-8 {
2068
+ right: 66.66666667%;
2069
+ }
2070
+ .ycd-bootstrap-wrapper .col-md-pull-7 {
2071
+ right: 58.33333333%;
2072
+ }
2073
+ .ycd-bootstrap-wrapper .col-md-pull-6 {
2074
+ right: 50%;
2075
+ }
2076
+ .ycd-bootstrap-wrapper .col-md-pull-5 {
2077
+ right: 41.66666667%;
2078
+ }
2079
+ .ycd-bootstrap-wrapper .col-md-pull-4 {
2080
+ right: 33.33333333%;
2081
+ }
2082
+ .ycd-bootstrap-wrapper .col-md-pull-3 {
2083
+ right: 25%;
2084
+ }
2085
+ .ycd-bootstrap-wrapper .col-md-pull-2 {
2086
+ right: 16.66666667%;
2087
+ }
2088
+ .ycd-bootstrap-wrapper .col-md-pull-1 {
2089
+ right: 8.33333333%;
2090
+ }
2091
+ .ycd-bootstrap-wrapper .col-md-pull-0 {
2092
+ right: auto;
2093
+ }
2094
+ .ycd-bootstrap-wrapper .col-md-push-12 {
2095
+ left: 100%;
2096
+ }
2097
+ .ycd-bootstrap-wrapper .col-md-push-11 {
2098
+ left: 91.66666667%;
2099
+ }
2100
+ .ycd-bootstrap-wrapper .col-md-push-10 {
2101
+ left: 83.33333333%;
2102
+ }
2103
+ .ycd-bootstrap-wrapper .col-md-push-9 {
2104
+ left: 75%;
2105
+ }
2106
+ .ycd-bootstrap-wrapper .col-md-push-8 {
2107
+ left: 66.66666667%;
2108
+ }
2109
+ .ycd-bootstrap-wrapper .col-md-push-7 {
2110
+ left: 58.33333333%;
2111
+ }
2112
+ .ycd-bootstrap-wrapper .col-md-push-6 {
2113
+ left: 50%;
2114
+ }
2115
+ .ycd-bootstrap-wrapper .col-md-push-5 {
2116
+ left: 41.66666667%;
2117
+ }
2118
+ .ycd-bootstrap-wrapper .col-md-push-4 {
2119
+ left: 33.33333333%;
2120
+ }
2121
+ .ycd-bootstrap-wrapper .col-md-push-3 {
2122
+ left: 25%;
2123
+ }
2124
+ .ycd-bootstrap-wrapper .col-md-push-2 {
2125
+ left: 16.66666667%;
2126
+ }
2127
+ .ycd-bootstrap-wrapper .col-md-push-1 {
2128
+ left: 8.33333333%;
2129
+ }
2130
+ .ycd-bootstrap-wrapper .col-md-push-0 {
2131
+ left: auto;
2132
+ }
2133
+ .ycd-bootstrap-wrapper .col-md-offset-12 {
2134
+ margin-left: 100%;
2135
+ }
2136
+ .ycd-bootstrap-wrapper .col-md-offset-11 {
2137
+ margin-left: 91.66666667%;
2138
+ }
2139
+ .ycd-bootstrap-wrapper .col-md-offset-10 {
2140
+ margin-left: 83.33333333%;
2141
+ }
2142
+ .ycd-bootstrap-wrapper .col-md-offset-9 {
2143
+ margin-left: 75%;
2144
+ }
2145
+ .ycd-bootstrap-wrapper .col-md-offset-8 {
2146
+ margin-left: 66.66666667%;
2147
+ }
2148
+ .ycd-bootstrap-wrapper .col-md-offset-7 {
2149
+ margin-left: 58.33333333%;
2150
+ }
2151
+ .ycd-bootstrap-wrapper .col-md-offset-6 {
2152
+ margin-left: 50%;
2153
+ }
2154
+ .ycd-bootstrap-wrapper .col-md-offset-5 {
2155
+ margin-left: 41.66666667%;
2156
+ }
2157
+ .ycd-bootstrap-wrapper .col-md-offset-4 {
2158
+ margin-left: 33.33333333%;
2159
+ }
2160
+ .ycd-bootstrap-wrapper .col-md-offset-3 {
2161
+ margin-left: 25%;
2162
+ }
2163
+ .ycd-bootstrap-wrapper .col-md-offset-2 {
2164
+ margin-left: 16.66666667%;
2165
+ }
2166
+ .ycd-bootstrap-wrapper .col-md-offset-1 {
2167
+ margin-left: 8.33333333%;
2168
+ }
2169
+ .ycd-bootstrap-wrapper .col-md-offset-0 {
2170
+ margin-left: 0;
2171
+ }
2172
+ }
2173
+ @media (min-width: 1200px) {
2174
+ .ycd-bootstrap-wrapper .col-lg-1,
2175
+ .ycd-bootstrap-wrapper .col-lg-2,
2176
+ .ycd-bootstrap-wrapper .col-lg-3,
2177
+ .ycd-bootstrap-wrapper .col-lg-4,
2178
+ .ycd-bootstrap-wrapper .col-lg-5,
2179
+ .ycd-bootstrap-wrapper .col-lg-6,
2180
+ .ycd-bootstrap-wrapper .col-lg-7,
2181
+ .ycd-bootstrap-wrapper .col-lg-8,
2182
+ .ycd-bootstrap-wrapper .col-lg-9,
2183
+ .ycd-bootstrap-wrapper .col-lg-10,
2184
+ .ycd-bootstrap-wrapper .col-lg-11,
2185
+ .ycd-bootstrap-wrapper .col-lg-12 {
2186
+ float: left;
2187
+ }
2188
+ .ycd-bootstrap-wrapper .col-lg-12 {
2189
+ width: 100%;
2190
+ }
2191
+ .ycd-bootstrap-wrapper .col-lg-11 {
2192
+ width: 91.66666667%;
2193
+ }
2194
+ .ycd-bootstrap-wrapper .col-lg-10 {
2195
+ width: 83.33333333%;
2196
+ }
2197
+ .ycd-bootstrap-wrapper .col-lg-9 {
2198
+ width: 75%;
2199
+ }
2200
+ .ycd-bootstrap-wrapper .col-lg-8 {
2201
+ width: 66.66666667%;
2202
+ }
2203
+ .ycd-bootstrap-wrapper .col-lg-7 {
2204
+ width: 58.33333333%;
2205
+ }
2206
+ .ycd-bootstrap-wrapper .col-lg-6 {
2207
+ width: 50%;
2208
+ }
2209
+ .ycd-bootstrap-wrapper .col-lg-5 {
2210
+ width: 41.66666667%;
2211
+ }
2212
+ .ycd-bootstrap-wrapper .col-lg-4 {
2213
+ width: 33.33333333%;
2214
+ }
2215
+ .ycd-bootstrap-wrapper .col-lg-3 {
2216
+ width: 25%;
2217
+ }
2218
+ .ycd-bootstrap-wrapper .col-lg-2 {
2219
+ width: 16.66666667%;
2220
+ }
2221
+ .ycd-bootstrap-wrapper .col-lg-1 {
2222
+ width: 8.33333333%;
2223
+ }
2224
+ .ycd-bootstrap-wrapper .col-lg-pull-12 {
2225
+ right: 100%;
2226
+ }
2227
+ .ycd-bootstrap-wrapper .col-lg-pull-11 {
2228
+ right: 91.66666667%;
2229
+ }
2230
+ .ycd-bootstrap-wrapper .col-lg-pull-10 {
2231
+ right: 83.33333333%;
2232
+ }
2233
+ .ycd-bootstrap-wrapper .col-lg-pull-9 {
2234
+ right: 75%;
2235
+ }
2236
+ .ycd-bootstrap-wrapper .col-lg-pull-8 {
2237
+ right: 66.66666667%;
2238
+ }
2239
+ .ycd-bootstrap-wrapper .col-lg-pull-7 {
2240
+ right: 58.33333333%;
2241
+ }
2242
+ .ycd-bootstrap-wrapper .col-lg-pull-6 {
2243
+ right: 50%;
2244
+ }
2245
+ .ycd-bootstrap-wrapper .col-lg-pull-5 {
2246
+ right: 41.66666667%;
2247
+ }
2248
+ .ycd-bootstrap-wrapper .col-lg-pull-4 {
2249
+ right: 33.33333333%;
2250
+ }
2251
+ .ycd-bootstrap-wrapper .col-lg-pull-3 {
2252
+ right: 25%;
2253
+ }
2254
+ .ycd-bootstrap-wrapper .col-lg-pull-2 {
2255
+ right: 16.66666667%;
2256
+ }
2257
+ .ycd-bootstrap-wrapper .col-lg-pull-1 {
2258
+ right: 8.33333333%;
2259
+ }
2260
+ .ycd-bootstrap-wrapper .col-lg-pull-0 {
2261
+ right: auto;
2262
+ }
2263
+ .ycd-bootstrap-wrapper .col-lg-push-12 {
2264
+ left: 100%;
2265
+ }
2266
+ .ycd-bootstrap-wrapper .col-lg-push-11 {
2267
+ left: 91.66666667%;
2268
+ }
2269
+ .ycd-bootstrap-wrapper .col-lg-push-10 {
2270
+ left: 83.33333333%;
2271
+ }
2272
+ .ycd-bootstrap-wrapper .col-lg-push-9 {
2273
+ left: 75%;
2274
+ }
2275
+ .ycd-bootstrap-wrapper .col-lg-push-8 {
2276
+ left: 66.66666667%;
2277
+ }
2278
+ .ycd-bootstrap-wrapper .col-lg-push-7 {
2279
+ left: 58.33333333%;
2280
+ }
2281
+ .ycd-bootstrap-wrapper .col-lg-push-6 {
2282
+ left: 50%;
2283
+ }
2284
+ .ycd-bootstrap-wrapper .col-lg-push-5 {
2285
+ left: 41.66666667%;
2286
+ }
2287
+ .ycd-bootstrap-wrapper .col-lg-push-4 {
2288
+ left: 33.33333333%;
2289
+ }
2290
+ .ycd-bootstrap-wrapper .col-lg-push-3 {
2291
+ left: 25%;
2292
+ }
2293
+ .ycd-bootstrap-wrapper .col-lg-push-2 {
2294
+ left: 16.66666667%;
2295
+ }
2296
+ .ycd-bootstrap-wrapper .col-lg-push-1 {
2297
+ left: 8.33333333%;
2298
+ }
2299
+ .ycd-bootstrap-wrapper .col-lg-push-0 {
2300
+ left: auto;
2301
+ }
2302
+ .ycd-bootstrap-wrapper .col-lg-offset-12 {
2303
+ margin-left: 100%;
2304
+ }
2305
+ .ycd-bootstrap-wrapper .col-lg-offset-11 {
2306
+ margin-left: 91.66666667%;
2307
+ }
2308
+ .ycd-bootstrap-wrapper .col-lg-offset-10 {
2309
+ margin-left: 83.33333333%;
2310
+ }
2311
+ .ycd-bootstrap-wrapper .col-lg-offset-9 {
2312
+ margin-left: 75%;
2313
+ }
2314
+ .ycd-bootstrap-wrapper .col-lg-offset-8 {
2315
+ margin-left: 66.66666667%;
2316
+ }
2317
+ .ycd-bootstrap-wrapper .col-lg-offset-7 {
2318
+ margin-left: 58.33333333%;
2319
+ }
2320
+ .ycd-bootstrap-wrapper .col-lg-offset-6 {
2321
+ margin-left: 50%;
2322
+ }
2323
+ .ycd-bootstrap-wrapper .col-lg-offset-5 {
2324
+ margin-left: 41.66666667%;
2325
+ }
2326
+ .ycd-bootstrap-wrapper .col-lg-offset-4 {
2327
+ margin-left: 33.33333333%;
2328
+ }
2329
+ .ycd-bootstrap-wrapper .col-lg-offset-3 {
2330
+ margin-left: 25%;
2331
+ }
2332
+ .ycd-bootstrap-wrapper .col-lg-offset-2 {
2333
+ margin-left: 16.66666667%;
2334
+ }
2335
+ .ycd-bootstrap-wrapper .col-lg-offset-1 {
2336
+ margin-left: 8.33333333%;
2337
+ }
2338
+ .ycd-bootstrap-wrapper .col-lg-offset-0 {
2339
+ margin-left: 0;
2340
+ }
2341
+ }
2342
+ .ycd-bootstrap-wrapper table {
2343
+ background-color: transparent;
2344
+ }
2345
+ .ycd-bootstrap-wrapper caption {
2346
+ padding-top: 8px;
2347
+ padding-bottom: 8px;
2348
+ color: #777;
2349
+ text-align: left;
2350
+ }
2351
+ .ycd-bootstrap-wrapper th {
2352
+ text-align: left;
2353
+ }
2354
+ .ycd-bootstrap-wrapper .table {
2355
+ width: 100%;
2356
+ max-width: 100%;
2357
+ margin-bottom: 20px;
2358
+ }
2359
+ .ycd-bootstrap-wrapper .table > thead > tr > th,
2360
+ .ycd-bootstrap-wrapper .table > tbody > tr > th,
2361
+ .ycd-bootstrap-wrapper .table > tfoot > tr > th,
2362
+ .ycd-bootstrap-wrapper .table > thead > tr > td,
2363
+ .ycd-bootstrap-wrapper .table > tbody > tr > td,
2364
+ .ycd-bootstrap-wrapper .table > tfoot > tr > td {
2365
+ padding: 8px;
2366
+ line-height: 1.42857143;
2367
+ vertical-align: top;
2368
+ border-top: 1px solid #ddd;
2369
+ }
2370
+ .ycd-bootstrap-wrapper .table > thead > tr > th {
2371
+ vertical-align: bottom;
2372
+ border-bottom: 2px solid #ddd;
2373
+ }
2374
+ .ycd-bootstrap-wrapper .table > caption + thead > tr:first-child > th,
2375
+ .ycd-bootstrap-wrapper .table > colgroup + thead > tr:first-child > th,
2376
+ .ycd-bootstrap-wrapper .table > thead:first-child > tr:first-child > th,
2377
+ .ycd-bootstrap-wrapper .table > caption + thead > tr:first-child > td,
2378
+ .ycd-bootstrap-wrapper .table > colgroup + thead > tr:first-child > td,
2379
+ .ycd-bootstrap-wrapper .table > thead:first-child > tr:first-child > td {
2380
+ border-top: 0;
2381
+ }
2382
+ .ycd-bootstrap-wrapper .table > tbody + tbody {
2383
+ border-top: 2px solid #ddd;
2384
+ }
2385
+ .ycd-bootstrap-wrapper .table .table {
2386
+ background-color: #fff;
2387
+ }
2388
+ .ycd-bootstrap-wrapper .table-condensed > thead > tr > th,
2389
+ .ycd-bootstrap-wrapper .table-condensed > tbody > tr > th,
2390
+ .ycd-bootstrap-wrapper .table-condensed > tfoot > tr > th,
2391
+ .ycd-bootstrap-wrapper .table-condensed > thead > tr > td,
2392
+ .ycd-bootstrap-wrapper .table-condensed > tbody > tr > td,
2393
+ .ycd-bootstrap-wrapper .table-condensed > tfoot > tr > td {
2394
+ padding: 5px;
2395
+ }
2396
+ .ycd-bootstrap-wrapper .table-bordered {
2397
+ border: 1px solid #ddd;
2398
+ }
2399
+ .ycd-bootstrap-wrapper .table-bordered > thead > tr > th,
2400
+ .ycd-bootstrap-wrapper .table-bordered > tbody > tr > th,
2401
+ .ycd-bootstrap-wrapper .table-bordered > tfoot > tr > th,
2402
+ .ycd-bootstrap-wrapper .table-bordered > thead > tr > td,
2403
+ .ycd-bootstrap-wrapper .table-bordered > tbody > tr > td,
2404
+ .ycd-bootstrap-wrapper .table-bordered > tfoot > tr > td {
2405
+ border: 1px solid #ddd;
2406
+ }
2407
+ .ycd-bootstrap-wrapper .table-bordered > thead > tr > th,
2408
+ .ycd-bootstrap-wrapper .table-bordered > thead > tr > td {
2409
+ border-bottom-width: 2px;
2410
+ }
2411
+ .ycd-bootstrap-wrapper .table-striped > tbody > tr:nth-of-type(odd) {
2412
+ background-color: #f9f9f9;
2413
+ }
2414
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr:hover {
2415
+ background-color: #f5f5f5;
2416
+ }
2417
+ .ycd-bootstrap-wrapper table col[class*="col-"] {
2418
+ position: static;
2419
+ display: table-column;
2420
+ float: none;
2421
+ }
2422
+ .ycd-bootstrap-wrapper table td[class*="col-"],
2423
+ .ycd-bootstrap-wrapper table th[class*="col-"] {
2424
+ position: static;
2425
+ display: table-cell;
2426
+ float: none;
2427
+ }
2428
+ .ycd-bootstrap-wrapper .table > thead > tr > td.active,
2429
+ .ycd-bootstrap-wrapper .table > tbody > tr > td.active,
2430
+ .ycd-bootstrap-wrapper .table > tfoot > tr > td.active,
2431
+ .ycd-bootstrap-wrapper .table > thead > tr > th.active,
2432
+ .ycd-bootstrap-wrapper .table > tbody > tr > th.active,
2433
+ .ycd-bootstrap-wrapper .table > tfoot > tr > th.active,
2434
+ .ycd-bootstrap-wrapper .table > thead > tr.active > td,
2435
+ .ycd-bootstrap-wrapper .table > tbody > tr.active > td,
2436
+ .ycd-bootstrap-wrapper .table > tfoot > tr.active > td,
2437
+ .ycd-bootstrap-wrapper .table > thead > tr.active > th,
2438
+ .ycd-bootstrap-wrapper .table > tbody > tr.active > th,
2439
+ .ycd-bootstrap-wrapper .table > tfoot > tr.active > th {
2440
+ background-color: #f5f5f5;
2441
+ }
2442
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr > td.active:hover,
2443
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr > th.active:hover,
2444
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr.active:hover > td,
2445
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr:hover > .active,
2446
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr.active:hover > th {
2447
+ background-color: #e8e8e8;
2448
+ }
2449
+ .ycd-bootstrap-wrapper .table > thead > tr > td.success,
2450
+ .ycd-bootstrap-wrapper .table > tbody > tr > td.success,
2451
+ .ycd-bootstrap-wrapper .table > tfoot > tr > td.success,
2452
+ .ycd-bootstrap-wrapper .table > thead > tr > th.success,
2453
+ .ycd-bootstrap-wrapper .table > tbody > tr > th.success,
2454
+ .ycd-bootstrap-wrapper .table > tfoot > tr > th.success,
2455
+ .ycd-bootstrap-wrapper .table > thead > tr.success > td,
2456
+ .ycd-bootstrap-wrapper .table > tbody > tr.success > td,
2457
+ .ycd-bootstrap-wrapper .table > tfoot > tr.success > td,
2458
+ .ycd-bootstrap-wrapper .table > thead > tr.success > th,
2459
+ .ycd-bootstrap-wrapper .table > tbody > tr.success > th,
2460
+ .ycd-bootstrap-wrapper .table > tfoot > tr.success > th {
2461
+ background-color: #dff0d8;
2462
+ }
2463
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr > td.success:hover,
2464
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr > th.success:hover,
2465
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr.success:hover > td,
2466
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr:hover > .success,
2467
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr.success:hover > th {
2468
+ background-color: #d0e9c6;
2469
+ }
2470
+ .ycd-bootstrap-wrapper .table > thead > tr > td.info,
2471
+ .ycd-bootstrap-wrapper .table > tbody > tr > td.info,
2472
+ .ycd-bootstrap-wrapper .table > tfoot > tr > td.info,
2473
+ .ycd-bootstrap-wrapper .table > thead > tr > th.info,
2474
+ .ycd-bootstrap-wrapper .table > tbody > tr > th.info,
2475
+ .ycd-bootstrap-wrapper .table > tfoot > tr > th.info,
2476
+ .ycd-bootstrap-wrapper .table > thead > tr.info > td,
2477
+ .ycd-bootstrap-wrapper .table > tbody > tr.info > td,
2478
+ .ycd-bootstrap-wrapper .table > tfoot > tr.info > td,
2479
+ .ycd-bootstrap-wrapper .table > thead > tr.info > th,
2480
+ .ycd-bootstrap-wrapper .table > tbody > tr.info > th,
2481
+ .ycd-bootstrap-wrapper .table > tfoot > tr.info > th {
2482
+ background-color: #d9edf7;
2483
+ }
2484
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr > td.info:hover,
2485
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr > th.info:hover,
2486
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr.info:hover > td,
2487
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr:hover > .info,
2488
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr.info:hover > th {
2489
+ background-color: #c4e3f3;
2490
+ }
2491
+ .ycd-bootstrap-wrapper .table > thead > tr > td.warning,
2492
+ .ycd-bootstrap-wrapper .table > tbody > tr > td.warning,
2493
+ .ycd-bootstrap-wrapper .table > tfoot > tr > td.warning,
2494
+ .ycd-bootstrap-wrapper .table > thead > tr > th.warning,
2495
+ .ycd-bootstrap-wrapper .table > tbody > tr > th.warning,
2496
+ .ycd-bootstrap-wrapper .table > tfoot > tr > th.warning,
2497
+ .ycd-bootstrap-wrapper .table > thead > tr.warning > td,
2498
+ .ycd-bootstrap-wrapper .table > tbody > tr.warning > td,
2499
+ .ycd-bootstrap-wrapper .table > tfoot > tr.warning > td,
2500
+ .ycd-bootstrap-wrapper .table > thead > tr.warning > th,
2501
+ .ycd-bootstrap-wrapper .table > tbody > tr.warning > th,
2502
+ .ycd-bootstrap-wrapper .table > tfoot > tr.warning > th {
2503
+ background-color: #fcf8e3;
2504
+ }
2505
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr > td.warning:hover,
2506
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr > th.warning:hover,
2507
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr.warning:hover > td,
2508
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr:hover > .warning,
2509
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr.warning:hover > th {
2510
+ background-color: #faf2cc;
2511
+ }
2512
+ .ycd-bootstrap-wrapper .table > thead > tr > td.danger,
2513
+ .ycd-bootstrap-wrapper .table > tbody > tr > td.danger,
2514
+ .ycd-bootstrap-wrapper .table > tfoot > tr > td.danger,
2515
+ .ycd-bootstrap-wrapper .table > thead > tr > th.danger,
2516
+ .ycd-bootstrap-wrapper .table > tbody > tr > th.danger,
2517
+ .ycd-bootstrap-wrapper .table > tfoot > tr > th.danger,
2518
+ .ycd-bootstrap-wrapper .table > thead > tr.danger > td,
2519
+ .ycd-bootstrap-wrapper .table > tbody > tr.danger > td,
2520
+ .ycd-bootstrap-wrapper .table > tfoot > tr.danger > td,
2521
+ .ycd-bootstrap-wrapper .table > thead > tr.danger > th,
2522
+ .ycd-bootstrap-wrapper .table > tbody > tr.danger > th,
2523
+ .ycd-bootstrap-wrapper .table > tfoot > tr.danger > th {
2524
+ background-color: #f2dede;
2525
+ }
2526
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr > td.danger:hover,
2527
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr > th.danger:hover,
2528
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr.danger:hover > td,
2529
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr:hover > .danger,
2530
+ .ycd-bootstrap-wrapper .table-hover > tbody > tr.danger:hover > th {
2531
+ background-color: #ebcccc;
2532
+ }
2533
+ .ycd-bootstrap-wrapper .table-responsive {
2534
+ min-height: .01%;
2535
+ overflow-x: auto;
2536
+ }
2537
+ @media screen and (max-width: 767px) {
2538
+ .ycd-bootstrap-wrapper .table-responsive {
2539
+ width: 100%;
2540
+ margin-bottom: 15px;
2541
+ overflow-y: hidden;
2542
+ -ms-overflow-style: -ms-autohiding-scrollbar;
2543
+ border: 1px solid #ddd;
2544
+ }
2545
+ .ycd-bootstrap-wrapper .table-responsive > .table {
2546
+ margin-bottom: 0;
2547
+ }
2548
+ .ycd-bootstrap-wrapper .table-responsive > .table > thead > tr > th,
2549
+ .ycd-bootstrap-wrapper .table-responsive > .table > tbody > tr > th,
2550
+ .ycd-bootstrap-wrapper .table-responsive > .table > tfoot > tr > th,
2551
+ .ycd-bootstrap-wrapper .table-responsive > .table > thead > tr > td,
2552
+ .ycd-bootstrap-wrapper .table-responsive > .table > tbody > tr > td,
2553
+ .ycd-bootstrap-wrapper .table-responsive > .table > tfoot > tr > td {
2554
+ white-space: nowrap;
2555
+ }
2556
+ .ycd-bootstrap-wrapper .table-responsive > .table-bordered {
2557
+ border: 0;
2558
+ }
2559
+ .ycd-bootstrap-wrapper .table-responsive > .table-bordered > thead > tr > th:first-child,
2560
+ .ycd-bootstrap-wrapper .table-responsive > .table-bordered > tbody > tr > th:first-child,
2561
+ .ycd-bootstrap-wrapper .table-responsive > .table-bordered > tfoot > tr > th:first-child,
2562
+ .ycd-bootstrap-wrapper .table-responsive > .table-bordered > thead > tr > td:first-child,
2563
+ .ycd-bootstrap-wrapper .table-responsive > .table-bordered > tbody > tr > td:first-child,
2564
+ .ycd-bootstrap-wrapper .table-responsive > .table-bordered > tfoot > tr > td:first-child {
2565
+ border-left: 0;
2566
+ }
2567
+ .ycd-bootstrap-wrapper .table-responsive > .table-bordered > thead > tr > th:last-child,
2568
+ .ycd-bootstrap-wrapper .table-responsive > .table-bordered > tbody > tr > th:last-child,
2569
+ .ycd-bootstrap-wrapper .table-responsive > .table-bordered > tfoot > tr > th:last-child,
2570
+ .ycd-bootstrap-wrapper .table-responsive > .table-bordered > thead > tr > td:last-child,
2571
+ .ycd-bootstrap-wrapper .table-responsive > .table-bordered > tbody > tr > td:last-child,
2572
+ .ycd-bootstrap-wrapper .table-responsive > .table-bordered > tfoot > tr > td:last-child {
2573
+ border-right: 0;
2574
+ }
2575
+ .ycd-bootstrap-wrapper .table-responsive > .table-bordered > tbody > tr:last-child > th,
2576
+ .ycd-bootstrap-wrapper .table-responsive > .table-bordered > tfoot > tr:last-child > th,
2577
+ .ycd-bootstrap-wrapper .table-responsive > .table-bordered > tbody > tr:last-child > td,
2578
+ .ycd-bootstrap-wrapper .table-responsive > .table-bordered > tfoot > tr:last-child > td {
2579
+ border-bottom: 0;
2580
+ }
2581
+ }
2582
+ .ycd-bootstrap-wrapper fieldset {
2583
+ min-width: 0;
2584
+ padding: 0;
2585
+ margin: 0;
2586
+ border: 0;
2587
+ }
2588
+ .ycd-bootstrap-wrapper legend {
2589
+ display: block;
2590
+ width: 100%;
2591
+ padding: 0;
2592
+ margin-bottom: 20px;
2593
+ font-size: 21px;
2594
+ line-height: inherit;
2595
+ color: #333;
2596
+ border: 0;
2597
+ border-bottom: 1px solid #e5e5e5;
2598
+ }
2599
+ .ycd-bootstrap-wrapper label {
2600
+ display: inline-block;
2601
+ max-width: 100%;
2602
+ margin-bottom: 5px;
2603
+ font-weight: bold;
2604
+ }
2605
+ .ycd-bootstrap-wrapper input[type="search"] {
2606
+ -webkit-box-sizing: border-box;
2607
+ -moz-box-sizing: border-box;
2608
+ box-sizing: border-box;
2609
+ }
2610
+ .ycd-bootstrap-wrapper input[type="radio"],
2611
+ .ycd-bootstrap-wrapper input[type="checkbox"] {
2612
+ margin: 4px 0 0;
2613
+ margin-top: 1px \9;
2614
+ line-height: normal;
2615
+ }
2616
+ .ycd-bootstrap-wrapper input[type="file"] {
2617
+ display: block;
2618
+ }
2619
+ .ycd-bootstrap-wrapper input[type="range"] {
2620
+ display: block;
2621
+ width: 100%;
2622
+ }
2623
+ .ycd-bootstrap-wrapper select[multiple],
2624
+ .ycd-bootstrap-wrapper select[size] {
2625
+ height: auto;
2626
+ }
2627
+ .ycd-bootstrap-wrapper input[type="file"]:focus,
2628
+ .ycd-bootstrap-wrapper input[type="radio"]:focus,
2629
+ .ycd-bootstrap-wrapper input[type="checkbox"]:focus {
2630
+ outline: thin dotted;
2631
+ outline: 5px auto -webkit-focus-ring-color;
2632
+ outline-offset: -2px;
2633
+ }
2634
+ .ycd-bootstrap-wrapper output {
2635
+ display: block;
2636
+ padding-top: 7px;
2637
+ font-size: 14px;
2638
+ line-height: 1.42857143;
2639
+ color: #555;
2640
+ }
2641
+ .ycd-bootstrap-wrapper .form-control {
2642
+ display: block;
2643
+ width: 100%;
2644
+ height: 34px;
2645
+ padding: 6px 12px;
2646
+ font-size: 14px;
2647
+ line-height: 1.42857143;
2648
+ color: #555;
2649
+ background-color: #fff;
2650
+ background-image: none;
2651
+ border: 1px solid #ccc;
2652
+ border-radius: 4px;
2653
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
2654
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
2655
+ -webkit-transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s;
2656
+ -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
2657
+ transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
2658
+ }
2659
+ .ycd-bootstrap-wrapper .form-control:focus {
2660
+ border-color: #66afe9;
2661
+ outline: 0;
2662
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
2663
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
2664
+ }
2665
+ .ycd-bootstrap-wrapper .form-control::-moz-placeholder {
2666
+ color: #999;
2667
+ opacity: 1;
2668
+ }
2669
+ .ycd-bootstrap-wrapper .form-control:-ms-input-placeholder {
2670
+ color: #999;
2671
+ }
2672
+ .ycd-bootstrap-wrapper .form-control::-webkit-input-placeholder {
2673
+ color: #999;
2674
+ }
2675
+ .ycd-bootstrap-wrapper .form-control::-ms-expand {
2676
+ background-color: transparent;
2677
+ border: 0;
2678
+ }
2679
+ .ycd-bootstrap-wrapper .form-control[disabled],
2680
+ .ycd-bootstrap-wrapper .form-control[readonly],
2681
+ .ycd-bootstrap-wrapper fieldset[disabled] .form-control {
2682
+ background-color: #eee;
2683
+ opacity: 1;
2684
+ }
2685
+ .ycd-bootstrap-wrapper .form-control[disabled],
2686
+ .ycd-bootstrap-wrapper fieldset[disabled] .form-control {
2687
+ cursor: not-allowed;
2688
+ }
2689
+ .ycd-bootstrap-wrapper textarea.form-control {
2690
+ height: auto;
2691
+ }
2692
+ .ycd-bootstrap-wrapper input[type="search"] {
2693
+ -webkit-appearance: none;
2694
+ }
2695
+ @media screen and (-webkit-min-device-pixel-ratio: 0) {
2696
+ .ycd-bootstrap-wrapper input[type="date"].form-control,
2697
+ .ycd-bootstrap-wrapper input[type="time"].form-control,
2698
+ .ycd-bootstrap-wrapper input[type="datetime-local"].form-control,
2699
+ .ycd-bootstrap-wrapper input[type="month"].form-control {
2700
+ line-height: 34px;
2701
+ }
2702
+ .ycd-bootstrap-wrapper input[type="date"].input-sm,
2703
+ .ycd-bootstrap-wrapper input[type="time"].input-sm,
2704
+ .ycd-bootstrap-wrapper input[type="datetime-local"].input-sm,
2705
+ .ycd-bootstrap-wrapper input[type="month"].input-sm,
2706
+ .ycd-bootstrap-wrapper .input-group-sm input[type="date"],
2707
+ .ycd-bootstrap-wrapper .input-group-sm input[type="time"],
2708
+ .ycd-bootstrap-wrapper .input-group-sm input[type="datetime-local"],
2709
+ .ycd-bootstrap-wrapper .input-group-sm input[type="month"] {
2710
+ line-height: 30px;
2711
+ }
2712
+ .ycd-bootstrap-wrapper input[type="date"].input-lg,
2713
+ .ycd-bootstrap-wrapper input[type="time"].input-lg,
2714
+ .ycd-bootstrap-wrapper input[type="datetime-local"].input-lg,
2715
+ .ycd-bootstrap-wrapper input[type="month"].input-lg,
2716
+ .ycd-bootstrap-wrapper .input-group-lg input[type="date"],
2717
+ .ycd-bootstrap-wrapper .input-group-lg input[type="time"],
2718
+ .ycd-bootstrap-wrapper .input-group-lg input[type="datetime-local"],
2719
+ .ycd-bootstrap-wrapper .input-group-lg input[type="month"] {
2720
+ line-height: 46px;
2721
+ }
2722
+ }
2723
+ .ycd-bootstrap-wrapper .form-group {
2724
+ margin-bottom: 15px;
2725
+ }
2726
+ .ycd-bootstrap-wrapper .radio,
2727
+ .ycd-bootstrap-wrapper .checkbox {
2728
+ position: relative;
2729
+ display: block;
2730
+ margin-top: 10px;
2731
+ margin-bottom: 10px;
2732
+ }
2733
+ .ycd-bootstrap-wrapper .radio label,
2734
+ .ycd-bootstrap-wrapper .checkbox label {
2735
+ min-height: 20px;
2736
+ padding-left: 20px;
2737
+ margin-bottom: 0;
2738
+ font-weight: normal;
2739
+ cursor: pointer;
2740
+ }
2741
+ .ycd-bootstrap-wrapper .radio input[type="radio"],
2742
+ .ycd-bootstrap-wrapper .radio-inline input[type="radio"],
2743
+ .ycd-bootstrap-wrapper .checkbox input[type="checkbox"],
2744
+ .ycd-bootstrap-wrapper .checkbox-inline input[type="checkbox"] {
2745
+ position: absolute;
2746
+ margin-top: 4px \9;
2747
+ margin-left: -20px;
2748
+ }
2749
+ .ycd-bootstrap-wrapper .radio + .radio,
2750
+ .ycd-bootstrap-wrapper .checkbox + .checkbox {
2751
+ margin-top: -5px;
2752
+ }
2753
+ .ycd-bootstrap-wrapper .radio-inline,
2754
+ .ycd-bootstrap-wrapper .checkbox-inline {
2755
+ position: relative;
2756
+ display: inline-block;
2757
+ padding-left: 20px;
2758
+ margin-bottom: 0;
2759
+ font-weight: normal;
2760
+ vertical-align: middle;
2761
+ cursor: pointer;
2762
+ }
2763
+ .ycd-bootstrap-wrapper .radio-inline + .radio-inline,
2764
+ .ycd-bootstrap-wrapper .checkbox-inline + .checkbox-inline {
2765
+ margin-top: 0;
2766
+ margin-left: 10px;
2767
+ }
2768
+ .ycd-bootstrap-wrapper input[type="radio"][disabled],
2769
+ .ycd-bootstrap-wrapper input[type="checkbox"][disabled],
2770
+ .ycd-bootstrap-wrapper input[type="radio"].disabled,
2771
+ .ycd-bootstrap-wrapper input[type="checkbox"].disabled,
2772
+ .ycd-bootstrap-wrapper fieldset[disabled] input[type="radio"],
2773
+ .ycd-bootstrap-wrapper fieldset[disabled] input[type="checkbox"] {
2774
+ cursor: not-allowed;
2775
+ }
2776
+ .ycd-bootstrap-wrapper .radio-inline.disabled,
2777
+ .ycd-bootstrap-wrapper .checkbox-inline.disabled,
2778
+ .ycd-bootstrap-wrapper fieldset[disabled] .radio-inline,
2779
+ .ycd-bootstrap-wrapper fieldset[disabled] .checkbox-inline {
2780
+ cursor: not-allowed;
2781
+ }
2782
+ .ycd-bootstrap-wrapper .radio.disabled label,
2783
+ .ycd-bootstrap-wrapper .checkbox.disabled label,
2784
+ .ycd-bootstrap-wrapper fieldset[disabled] .radio label,
2785
+ .ycd-bootstrap-wrapper fieldset[disabled] .checkbox label {
2786
+ cursor: not-allowed;
2787
+ }
2788
+ .ycd-bootstrap-wrapper .form-control-static {
2789
+ min-height: 34px;
2790
+ padding-top: 7px;
2791
+ padding-bottom: 7px;
2792
+ margin-bottom: 0;
2793
+ }
2794
+ .ycd-bootstrap-wrapper .form-control-static.input-lg,
2795
+ .ycd-bootstrap-wrapper .form-control-static.input-sm {
2796
+ padding-right: 0;
2797
+ padding-left: 0;
2798
+ }
2799
+ .ycd-bootstrap-wrapper .input-sm {
2800
+ height: 30px;
2801
+ padding: 5px 10px;
2802
+ font-size: 12px;
2803
+ line-height: 1.5;
2804
+ border-radius: 3px;
2805
+ }
2806
+ .ycd-bootstrap-wrapper select.input-sm {
2807
+ height: 30px;
2808
+ line-height: 30px;
2809
+ }
2810
+ .ycd-bootstrap-wrapper textarea.input-sm,
2811
+ .ycd-bootstrap-wrapper select[multiple].input-sm {
2812
+ height: auto;
2813
+ }
2814
+ .ycd-bootstrap-wrapper .form-group-sm .form-control {
2815
+ height: 30px;
2816
+ padding: 5px 10px;
2817
+ font-size: 12px;
2818
+ line-height: 1.5;
2819
+ border-radius: 3px;
2820
+ }
2821
+ .ycd-bootstrap-wrapper .form-group-sm select.form-control {
2822
+ height: 30px;
2823
+ line-height: 30px;
2824
+ }
2825
+ .ycd-bootstrap-wrapper .form-group-sm textarea.form-control,
2826
+ .ycd-bootstrap-wrapper .form-group-sm select[multiple].form-control {
2827
+ height: auto;
2828
+ }
2829
+ .ycd-bootstrap-wrapper .form-group-sm .form-control-static {
2830
+ height: 30px;
2831
+ min-height: 32px;
2832
+ padding: 6px 10px;
2833
+ font-size: 12px;
2834
+ line-height: 1.5;
2835
+ }
2836
+ .ycd-bootstrap-wrapper .input-lg {
2837
+ height: 46px;
2838
+ padding: 10px 16px;
2839
+ font-size: 18px;
2840
+ line-height: 1.3333333;
2841
+ border-radius: 6px;
2842
+ }
2843
+ .ycd-bootstrap-wrapper select.input-lg {
2844
+ height: 46px;
2845
+ line-height: 46px;
2846
+ }
2847
+ .ycd-bootstrap-wrapper textarea.input-lg,
2848
+ .ycd-bootstrap-wrapper select[multiple].input-lg {
2849
+ height: auto;
2850
+ }
2851
+ .ycd-bootstrap-wrapper .form-group-lg .form-control {
2852
+ height: 46px;
2853
+ padding: 10px 16px;
2854
+ font-size: 18px;
2855
+ line-height: 1.3333333;
2856
+ border-radius: 6px;
2857
+ }
2858
+ .ycd-bootstrap-wrapper .form-group-lg select.form-control {
2859
+ height: 46px;
2860
+ line-height: 46px;
2861
+ }
2862
+ .ycd-bootstrap-wrapper .form-group-lg textarea.form-control,
2863
+ .ycd-bootstrap-wrapper .form-group-lg select[multiple].form-control {
2864
+ height: auto;
2865
+ }
2866
+ .ycd-bootstrap-wrapper .form-group-lg .form-control-static {
2867
+ height: 46px;
2868
+ min-height: 38px;
2869
+ padding: 11px 16px;
2870
+ font-size: 18px;
2871
+ line-height: 1.3333333;
2872
+ }
2873
+ .ycd-bootstrap-wrapper .has-feedback {
2874
+ position: relative;
2875
+ }
2876
+ .ycd-bootstrap-wrapper .has-feedback .form-control {
2877
+ padding-right: 42.5px;
2878
+ }
2879
+ .ycd-bootstrap-wrapper .form-control-feedback {
2880
+ position: absolute;
2881
+ top: 0;
2882
+ right: 0;
2883
+ z-index: 2;
2884
+ display: block;
2885
+ width: 34px;
2886
+ height: 34px;
2887
+ line-height: 34px;
2888
+ text-align: center;
2889
+ pointer-events: none;
2890
+ }
2891
+ .ycd-bootstrap-wrapper .input-lg + .form-control-feedback,
2892
+ .ycd-bootstrap-wrapper .input-group-lg + .form-control-feedback,
2893
+ .ycd-bootstrap-wrapper .form-group-lg .form-control + .form-control-feedback {
2894
+ width: 46px;
2895
+ height: 46px;
2896
+ line-height: 46px;
2897
+ }
2898
+ .ycd-bootstrap-wrapper .input-sm + .form-control-feedback,
2899
+ .ycd-bootstrap-wrapper .input-group-sm + .form-control-feedback,
2900
+ .ycd-bootstrap-wrapper .form-group-sm .form-control + .form-control-feedback {
2901
+ width: 30px;
2902
+ height: 30px;
2903
+ line-height: 30px;
2904
+ }
2905
+ .ycd-bootstrap-wrapper .has-success .help-block,
2906
+ .ycd-bootstrap-wrapper .has-success .control-label,
2907
+ .ycd-bootstrap-wrapper .has-success .radio,
2908
+ .ycd-bootstrap-wrapper .has-success .checkbox,
2909
+ .ycd-bootstrap-wrapper .has-success .radio-inline,
2910
+ .ycd-bootstrap-wrapper .has-success .checkbox-inline,
2911
+ .ycd-bootstrap-wrapper .has-success.radio label,
2912
+ .ycd-bootstrap-wrapper .has-success.checkbox label,
2913
+ .ycd-bootstrap-wrapper .has-success.radio-inline label,
2914
+ .ycd-bootstrap-wrapper .has-success.checkbox-inline label {
2915
+ color: #3c763d;
2916
+ }
2917
+ .ycd-bootstrap-wrapper .has-success .form-control {
2918
+ border-color: #3c763d;
2919
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
2920
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
2921
+ }
2922
+ .ycd-bootstrap-wrapper .has-success .form-control:focus {
2923
+ border-color: #2b542c;
2924
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
2925
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
2926
+ }
2927
+ .ycd-bootstrap-wrapper .has-success .input-group-addon {
2928
+ color: #3c763d;
2929
+ background-color: #dff0d8;
2930
+ border-color: #3c763d;
2931
+ }
2932
+ .ycd-bootstrap-wrapper .has-success .form-control-feedback {
2933
+ color: #3c763d;
2934
+ }
2935
+ .ycd-bootstrap-wrapper .has-warning .help-block,
2936
+ .ycd-bootstrap-wrapper .has-warning .control-label,
2937
+ .ycd-bootstrap-wrapper .has-warning .radio,
2938
+ .ycd-bootstrap-wrapper .has-warning .checkbox,
2939
+ .ycd-bootstrap-wrapper .has-warning .radio-inline,
2940
+ .ycd-bootstrap-wrapper .has-warning .checkbox-inline,
2941
+ .ycd-bootstrap-wrapper .has-warning.radio label,
2942
+ .ycd-bootstrap-wrapper .has-warning.checkbox label,
2943
+ .ycd-bootstrap-wrapper .has-warning.radio-inline label,
2944
+ .ycd-bootstrap-wrapper .has-warning.checkbox-inline label {
2945
+ color: #8a6d3b;
2946
+ }
2947
+ .ycd-bootstrap-wrapper .has-warning .form-control {
2948
+ border-color: #8a6d3b;
2949
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
2950
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
2951
+ }
2952
+ .ycd-bootstrap-wrapper .has-warning .form-control:focus {
2953
+ border-color: #66512c;
2954
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
2955
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
2956
+ }
2957
+ .ycd-bootstrap-wrapper .has-warning .input-group-addon {
2958
+ color: #8a6d3b;
2959
+ background-color: #fcf8e3;
2960
+ border-color: #8a6d3b;
2961
+ }
2962
+ .ycd-bootstrap-wrapper .has-warning .form-control-feedback {
2963
+ color: #8a6d3b;
2964
+ }
2965
+ .ycd-bootstrap-wrapper .has-error .help-block,
2966
+ .ycd-bootstrap-wrapper .has-error .control-label,
2967
+ .ycd-bootstrap-wrapper .has-error .radio,
2968
+ .ycd-bootstrap-wrapper .has-error .checkbox,
2969
+ .ycd-bootstrap-wrapper .has-error .radio-inline,
2970
+ .ycd-bootstrap-wrapper .has-error .checkbox-inline,
2971
+ .ycd-bootstrap-wrapper .has-error.radio label,
2972
+ .ycd-bootstrap-wrapper .has-error.checkbox label,
2973
+ .ycd-bootstrap-wrapper .has-error.radio-inline label,
2974
+ .ycd-bootstrap-wrapper .has-error.checkbox-inline label {
2975
+ color: #a94442;
2976
+ }
2977
+ .ycd-bootstrap-wrapper .has-error .form-control {
2978
+ border-color: #a94442;
2979
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
2980
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
2981
+ }
2982
+ .ycd-bootstrap-wrapper .has-error .form-control:focus {
2983
+ border-color: #843534;
2984
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
2985
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
2986
+ }
2987
+ .ycd-bootstrap-wrapper .has-error .input-group-addon {
2988
+ color: #a94442;
2989
+ background-color: #f2dede;
2990
+ border-color: #a94442;
2991
+ }
2992
+ .ycd-bootstrap-wrapper .has-error .form-control-feedback {
2993
+ color: #a94442;
2994
+ }
2995
+ .ycd-bootstrap-wrapper .has-feedback label ~ .form-control-feedback {
2996
+ top: 25px;
2997
+ }
2998
+ .ycd-bootstrap-wrapper .has-feedback label.sr-only ~ .form-control-feedback {
2999
+ top: 0;
3000
+ }
3001
+ .ycd-bootstrap-wrapper .help-block {
3002
+ display: block;
3003
+ margin-top: 5px;
3004
+ margin-bottom: 10px;
3005
+ color: #737373;
3006
+ }
3007
+ @media (min-width: 768px) {
3008
+ .ycd-bootstrap-wrapper .form-inline .form-group {
3009
+ display: inline-block;
3010
+ margin-bottom: 0;
3011
+ vertical-align: middle;
3012
+ }
3013
+ .ycd-bootstrap-wrapper .form-inline .form-control {
3014
+ display: inline-block;
3015
+ width: auto;
3016
+ vertical-align: middle;
3017
+ }
3018
+ .ycd-bootstrap-wrapper .form-inline .form-control-static {
3019
+ display: inline-block;
3020
+ }
3021
+ .ycd-bootstrap-wrapper .form-inline .input-group {
3022
+ display: inline-table;
3023
+ vertical-align: middle;
3024
+ }
3025
+ .ycd-bootstrap-wrapper .form-inline .input-group .input-group-addon,
3026
+ .ycd-bootstrap-wrapper .form-inline .input-group .input-group-btn,
3027
+ .ycd-bootstrap-wrapper .form-inline .input-group .form-control {
3028
+ width: auto;
3029
+ }
3030
+ .ycd-bootstrap-wrapper .form-inline .input-group > .form-control {
3031
+ width: 100%;
3032
+ }
3033
+ .ycd-bootstrap-wrapper .form-inline .control-label {
3034
+ margin-bottom: 0;
3035
+ vertical-align: middle;
3036
+ }
3037
+ .ycd-bootstrap-wrapper .form-inline .radio,
3038
+ .ycd-bootstrap-wrapper .form-inline .checkbox {
3039
+ display: inline-block;
3040
+ margin-top: 0;
3041
+ margin-bottom: 0;
3042
+ vertical-align: middle;
3043
+ }
3044
+ .ycd-bootstrap-wrapper .form-inline .radio label,
3045
+ .ycd-bootstrap-wrapper .form-inline .checkbox label {
3046
+ padding-left: 0;
3047
+ }
3048
+ .ycd-bootstrap-wrapper .form-inline .radio input[type="radio"],
3049
+ .ycd-bootstrap-wrapper .form-inline .checkbox input[type="checkbox"] {
3050
+ position: relative;
3051
+ margin-left: 0;
3052
+ }
3053
+ .ycd-bootstrap-wrapper .form-inline .has-feedback .form-control-feedback {
3054
+ top: 0;
3055
+ }
3056
+ }
3057
+ .ycd-bootstrap-wrapper .form-horizontal .radio,
3058
+ .ycd-bootstrap-wrapper .form-horizontal .checkbox,
3059
+ .ycd-bootstrap-wrapper .form-horizontal .radio-inline,
3060
+ .ycd-bootstrap-wrapper .form-horizontal .checkbox-inline {
3061
+ padding-top: 7px;
3062
+ margin-top: 0;
3063
+ margin-bottom: 0;
3064
+ }
3065
+ .ycd-bootstrap-wrapper .form-horizontal .radio,
3066
+ .ycd-bootstrap-wrapper .form-horizontal .checkbox {
3067
+ min-height: 27px;
3068
+ }
3069
+ .ycd-bootstrap-wrapper .form-horizontal .form-group {
3070
+ margin-right: -15px;
3071
+ margin-left: -15px;
3072
+ }
3073
+ @media (min-width: 768px) {
3074
+ .ycd-bootstrap-wrapper .form-horizontal .control-label {
3075
+ padding-top: 7px;
3076
+ margin-bottom: 0;
3077
+ text-align: left;
3078
+ }
3079
+ }
3080
+ .ycd-bootstrap-wrapper .form-horizontal .has-feedback .form-control-feedback {
3081
+ right: 15px;
3082
+ }
3083
+ @media (min-width: 768px) {
3084
+ .ycd-bootstrap-wrapper .form-horizontal .form-group-lg .control-label {
3085
+ padding-top: 11px;
3086
+ font-size: 18px;
3087
+ }
3088
+ }
3089
+ @media (min-width: 768px) {
3090
+ .ycd-bootstrap-wrapper .form-horizontal .form-group-sm .control-label {
3091
+ padding-top: 6px;
3092
+ font-size: 12px;
3093
+ }
3094
+ }
3095
+ .ycd-bootstrap-wrapper .btn {
3096
+ display: inline-block;
3097
+ padding: 6px 12px;
3098
+ margin-bottom: 0;
3099
+ font-size: 14px;
3100
+ font-weight: normal;
3101
+ line-height: 1.42857143;
3102
+ text-align: center;
3103
+ white-space: nowrap;
3104
+ vertical-align: middle;
3105
+ -ms-touch-action: manipulation;
3106
+ touch-action: manipulation;
3107
+ cursor: pointer;
3108
+ -webkit-user-select: none;
3109
+ -moz-user-select: none;
3110
+ -ms-user-select: none;
3111
+ user-select: none;
3112
+ background-image: none;
3113
+ border: 1px solid transparent;
3114
+ border-radius: 4px;
3115
+ }
3116
+ .ycd-bootstrap-wrapper .btn:focus,
3117
+ .ycd-bootstrap-wrapper .btn:active:focus,
3118
+ .ycd-bootstrap-wrapper .btn.active:focus,
3119
+ .ycd-bootstrap-wrapper .btn.focus,
3120
+ .ycd-bootstrap-wrapper .btn:active.focus,
3121
+ .ycd-bootstrap-wrapper .btn.active.focus {
3122
+ outline: thin dotted;
3123
+ outline: 5px auto -webkit-focus-ring-color;
3124
+ outline-offset: -2px;
3125
+ }
3126
+ .ycd-bootstrap-wrapper .btn:hover,
3127
+ .ycd-bootstrap-wrapper .btn:focus,
3128
+ .ycd-bootstrap-wrapper .btn.focus {
3129
+ color: #333;
3130
+ text-decoration: none;
3131
+ }
3132
+ .ycd-bootstrap-wrapper .btn:active,
3133
+ .ycd-bootstrap-wrapper .btn.active {
3134
+ background-image: none;
3135
+ outline: 0;
3136
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
3137
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
3138
+ }
3139
+ .ycd-bootstrap-wrapper .btn.disabled,
3140
+ .ycd-bootstrap-wrapper .btn[disabled],
3141
+ .ycd-bootstrap-wrapper fieldset[disabled] .btn {
3142
+ cursor: not-allowed;
3143
+ filter: alpha(opacity=65);
3144
+ -webkit-box-shadow: none;
3145
+ box-shadow: none;
3146
+ opacity: .65;
3147
+ }
3148
+ .ycd-bootstrap-wrapper a.btn.disabled,
3149
+ .ycd-bootstrap-wrapper fieldset[disabled] a.btn {
3150
+ pointer-events: none;
3151
+ }
3152
+ .ycd-bootstrap-wrapper .btn-default {
3153
+ color: #333;
3154
+ background-color: #fff;
3155
+ border-color: #ccc;
3156
+ }
3157
+ .ycd-bootstrap-wrapper .btn-default:focus,
3158
+ .ycd-bootstrap-wrapper .btn-default.focus {
3159
+ color: #333;
3160
+ background-color: #e6e6e6;
3161
+ border-color: #8c8c8c;
3162
+ }
3163
+ .ycd-bootstrap-wrapper .btn-default:hover {
3164
+ color: #333;
3165
+ background-color: #e6e6e6;
3166
+ border-color: #adadad;
3167
+ }
3168
+ .ycd-bootstrap-wrapper .btn-default:active,
3169
+ .ycd-bootstrap-wrapper .btn-default.active,
3170
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-default {
3171
+ color: #333;
3172
+ background-color: #e6e6e6;
3173
+ border-color: #adadad;
3174
+ }
3175
+ .ycd-bootstrap-wrapper .btn-default:active:hover,
3176
+ .ycd-bootstrap-wrapper .btn-default.active:hover,
3177
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-default:hover,
3178
+ .ycd-bootstrap-wrapper .btn-default:active:focus,
3179
+ .ycd-bootstrap-wrapper .btn-default.active:focus,
3180
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-default:focus,
3181
+ .ycd-bootstrap-wrapper .btn-default:active.focus,
3182
+ .ycd-bootstrap-wrapper .btn-default.active.focus,
3183
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-default.focus {
3184
+ color: #333;
3185
+ background-color: #d4d4d4;
3186
+ border-color: #8c8c8c;
3187
+ }
3188
+ .ycd-bootstrap-wrapper .btn-default:active,
3189
+ .ycd-bootstrap-wrapper .btn-default.active,
3190
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-default {
3191
+ background-image: none;
3192
+ }
3193
+ .ycd-bootstrap-wrapper .btn-default.disabled:hover,
3194
+ .ycd-bootstrap-wrapper .btn-default[disabled]:hover,
3195
+ .ycd-bootstrap-wrapper fieldset[disabled] .btn-default:hover,
3196
+ .ycd-bootstrap-wrapper .btn-default.disabled:focus,
3197
+ .ycd-bootstrap-wrapper .btn-default[disabled]:focus,
3198
+ .ycd-bootstrap-wrapper fieldset[disabled] .btn-default:focus,
3199
+ .ycd-bootstrap-wrapper .btn-default.disabled.focus,
3200
+ .ycd-bootstrap-wrapper .btn-default[disabled].focus,
3201
+ .ycd-bootstrap-wrapper fieldset[disabled] .btn-default.focus {
3202
+ background-color: #fff;
3203
+ border-color: #ccc;
3204
+ }
3205
+ .ycd-bootstrap-wrapper .btn-default .badge {
3206
+ color: #fff;
3207
+ background-color: #333;
3208
+ }
3209
+ .ycd-bootstrap-wrapper .btn-primary {
3210
+ color: #fff;
3211
+ background-color: #337ab7;
3212
+ border-color: #2e6da4;
3213
+ }
3214
+ .ycd-bootstrap-wrapper .btn-primary:focus,
3215
+ .ycd-bootstrap-wrapper .btn-primary.focus {
3216
+ color: #fff;
3217
+ background-color: #286090;
3218
+ border-color: #122b40;
3219
+ }
3220
+ .ycd-bootstrap-wrapper .btn-primary:hover {
3221
+ color: #fff;
3222
+ background-color: #286090;
3223
+ border-color: #204d74;
3224
+ }
3225
+ .ycd-bootstrap-wrapper .btn-primary:active,
3226
+ .ycd-bootstrap-wrapper .btn-primary.active,
3227
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-primary {
3228
+ color: #fff;
3229
+ background-color: #286090;
3230
+ border-color: #204d74;
3231
+ }
3232
+ .ycd-bootstrap-wrapper .btn-primary:active:hover,
3233
+ .ycd-bootstrap-wrapper .btn-primary.active:hover,
3234
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-primary:hover,
3235
+ .ycd-bootstrap-wrapper .btn-primary:active:focus,
3236
+ .ycd-bootstrap-wrapper .btn-primary.active:focus,
3237
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-primary:focus,
3238
+ .ycd-bootstrap-wrapper .btn-primary:active.focus,
3239
+ .ycd-bootstrap-wrapper .btn-primary.active.focus,
3240
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-primary.focus {
3241
+ color: #fff;
3242
+ background-color: #204d74;
3243
+ border-color: #122b40;
3244
+ }
3245
+ .ycd-bootstrap-wrapper .btn-primary:active,
3246
+ .ycd-bootstrap-wrapper .btn-primary.active,
3247
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-primary {
3248
+ background-image: none;
3249
+ }
3250
+ .ycd-bootstrap-wrapper .btn-primary.disabled:hover,
3251
+ .ycd-bootstrap-wrapper .btn-primary[disabled]:hover,
3252
+ .ycd-bootstrap-wrapper fieldset[disabled] .btn-primary:hover,
3253
+ .ycd-bootstrap-wrapper .btn-primary.disabled:focus,
3254
+ .ycd-bootstrap-wrapper .btn-primary[disabled]:focus,
3255
+ .ycd-bootstrap-wrapper fieldset[disabled] .btn-primary:focus,
3256
+ .ycd-bootstrap-wrapper .btn-primary.disabled.focus,
3257
+ .ycd-bootstrap-wrapper .btn-primary[disabled].focus,
3258
+ .ycd-bootstrap-wrapper fieldset[disabled] .btn-primary.focus {
3259
+ background-color: #337ab7;
3260
+ border-color: #2e6da4;
3261
+ }
3262
+ .ycd-bootstrap-wrapper .btn-primary .badge {
3263
+ color: #337ab7;
3264
+ background-color: #fff;
3265
+ }
3266
+ .ycd-bootstrap-wrapper .btn-success {
3267
+ color: #fff;
3268
+ background-color: #5cb85c;
3269
+ border-color: #4cae4c;
3270
+ }
3271
+ .ycd-bootstrap-wrapper .btn-success:focus,
3272
+ .ycd-bootstrap-wrapper .btn-success.focus {
3273
+ color: #fff;
3274
+ background-color: #449d44;
3275
+ border-color: #255625;
3276
+ }
3277
+ .ycd-bootstrap-wrapper .btn-success:hover {
3278
+ color: #fff;
3279
+ background-color: #449d44;
3280
+ border-color: #398439;
3281
+ }
3282
+ .ycd-bootstrap-wrapper .btn-success:active,
3283
+ .ycd-bootstrap-wrapper .btn-success.active,
3284
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-success {
3285
+ color: #fff;
3286
+ background-color: #449d44;
3287
+ border-color: #398439;
3288
+ }
3289
+ .ycd-bootstrap-wrapper .btn-success:active:hover,
3290
+ .ycd-bootstrap-wrapper .btn-success.active:hover,
3291
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-success:hover,
3292
+ .ycd-bootstrap-wrapper .btn-success:active:focus,
3293
+ .ycd-bootstrap-wrapper .btn-success.active:focus,
3294
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-success:focus,
3295
+ .ycd-bootstrap-wrapper .btn-success:active.focus,
3296
+ .ycd-bootstrap-wrapper .btn-success.active.focus,
3297
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-success.focus {
3298
+ color: #fff;
3299
+ background-color: #398439;
3300
+ border-color: #255625;
3301
+ }
3302
+ .ycd-bootstrap-wrapper .btn-success:active,
3303
+ .ycd-bootstrap-wrapper .btn-success.active,
3304
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-success {
3305
+ background-image: none;
3306
+ }
3307
+ .ycd-bootstrap-wrapper .btn-success.disabled:hover,
3308
+ .ycd-bootstrap-wrapper .btn-success[disabled]:hover,
3309
+ .ycd-bootstrap-wrapper fieldset[disabled] .btn-success:hover,
3310
+ .ycd-bootstrap-wrapper .btn-success.disabled:focus,
3311
+ .ycd-bootstrap-wrapper .btn-success[disabled]:focus,
3312
+ .ycd-bootstrap-wrapper fieldset[disabled] .btn-success:focus,
3313
+ .ycd-bootstrap-wrapper .btn-success.disabled.focus,
3314
+ .ycd-bootstrap-wrapper .btn-success[disabled].focus,
3315
+ .ycd-bootstrap-wrapper fieldset[disabled] .btn-success.focus {
3316
+ background-color: #5cb85c;
3317
+ border-color: #4cae4c;
3318
+ }
3319
+ .ycd-bootstrap-wrapper .btn-success .badge {
3320
+ color: #5cb85c;
3321
+ background-color: #fff;
3322
+ }
3323
+ .ycd-bootstrap-wrapper .btn-info {
3324
+ color: #fff;
3325
+ background-color: #5bc0de;
3326
+ border-color: #46b8da;
3327
+ }
3328
+ .ycd-bootstrap-wrapper .btn-info:focus,
3329
+ .ycd-bootstrap-wrapper .btn-info.focus {
3330
+ color: #fff;
3331
+ background-color: #31b0d5;
3332
+ border-color: #1b6d85;
3333
+ }
3334
+ .ycd-bootstrap-wrapper .btn-info:hover {
3335
+ color: #fff;
3336
+ background-color: #31b0d5;
3337
+ border-color: #269abc;
3338
+ }
3339
+ .ycd-bootstrap-wrapper .btn-info:active,
3340
+ .ycd-bootstrap-wrapper .btn-info.active,
3341
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-info {
3342
+ color: #fff;
3343
+ background-color: #31b0d5;
3344
+ border-color: #269abc;
3345
+ }
3346
+ .ycd-bootstrap-wrapper .btn-info:active:hover,
3347
+ .ycd-bootstrap-wrapper .btn-info.active:hover,
3348
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-info:hover,
3349
+ .ycd-bootstrap-wrapper .btn-info:active:focus,
3350
+ .ycd-bootstrap-wrapper .btn-info.active:focus,
3351
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-info:focus,
3352
+ .ycd-bootstrap-wrapper .btn-info:active.focus,
3353
+ .ycd-bootstrap-wrapper .btn-info.active.focus,
3354
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-info.focus {
3355
+ color: #fff;
3356
+ background-color: #269abc;
3357
+ border-color: #1b6d85;
3358
+ }
3359
+ .ycd-bootstrap-wrapper .btn-info:active,
3360
+ .ycd-bootstrap-wrapper .btn-info.active,
3361
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-info {
3362
+ background-image: none;
3363
+ }
3364
+ .ycd-bootstrap-wrapper .btn-info.disabled:hover,
3365
+ .ycd-bootstrap-wrapper .btn-info[disabled]:hover,
3366
+ .ycd-bootstrap-wrapper fieldset[disabled] .btn-info:hover,
3367
+ .ycd-bootstrap-wrapper .btn-info.disabled:focus,
3368
+ .ycd-bootstrap-wrapper .btn-info[disabled]:focus,
3369
+ .ycd-bootstrap-wrapper fieldset[disabled] .btn-info:focus,
3370
+ .ycd-bootstrap-wrapper .btn-info.disabled.focus,
3371
+ .ycd-bootstrap-wrapper .btn-info[disabled].focus,
3372
+ .ycd-bootstrap-wrapper fieldset[disabled] .btn-info.focus {
3373
+ background-color: #5bc0de;
3374
+ border-color: #46b8da;
3375
+ }
3376
+ .ycd-bootstrap-wrapper .btn-info .badge {
3377
+ color: #5bc0de;
3378
+ background-color: #fff;
3379
+ }
3380
+ .ycd-bootstrap-wrapper .btn-warning {
3381
+ color: #fff;
3382
+ background-color: #f0ad4e;
3383
+ border-color: #eea236;
3384
+ }
3385
+ .ycd-bootstrap-wrapper .btn-warning:focus,
3386
+ .ycd-bootstrap-wrapper .btn-warning.focus {
3387
+ color: #fff;
3388
+ background-color: #ec971f;
3389
+ border-color: #985f0d;
3390
+ }
3391
+ .ycd-bootstrap-wrapper .btn-warning:hover {
3392
+ color: #fff;
3393
+ background-color: #ec971f;
3394
+ border-color: #d58512;
3395
+ }
3396
+ .ycd-bootstrap-wrapper .btn-warning:active,
3397
+ .ycd-bootstrap-wrapper .btn-warning.active,
3398
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-warning {
3399
+ color: #fff;
3400
+ background-color: #ec971f;
3401
+ border-color: #d58512;
3402
+ }
3403
+ .ycd-bootstrap-wrapper .btn-warning:active:hover,
3404
+ .ycd-bootstrap-wrapper .btn-warning.active:hover,
3405
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-warning:hover,
3406
+ .ycd-bootstrap-wrapper .btn-warning:active:focus,
3407
+ .ycd-bootstrap-wrapper .btn-warning.active:focus,
3408
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-warning:focus,
3409
+ .ycd-bootstrap-wrapper .btn-warning:active.focus,
3410
+ .ycd-bootstrap-wrapper .btn-warning.active.focus,
3411
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-warning.focus {
3412
+ color: #fff;
3413
+ background-color: #d58512;
3414
+ border-color: #985f0d;
3415
+ }
3416
+ .ycd-bootstrap-wrapper .btn-warning:active,
3417
+ .ycd-bootstrap-wrapper .btn-warning.active,
3418
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-warning {
3419
+ background-image: none;
3420
+ }
3421
+ .ycd-bootstrap-wrapper .btn-warning.disabled:hover,
3422
+ .ycd-bootstrap-wrapper .btn-warning[disabled]:hover,
3423
+ .ycd-bootstrap-wrapper fieldset[disabled] .btn-warning:hover,
3424
+ .ycd-bootstrap-wrapper .btn-warning.disabled:focus,
3425
+ .ycd-bootstrap-wrapper .btn-warning[disabled]:focus,
3426
+ .ycd-bootstrap-wrapper fieldset[disabled] .btn-warning:focus,
3427
+ .ycd-bootstrap-wrapper .btn-warning.disabled.focus,
3428
+ .ycd-bootstrap-wrapper .btn-warning[disabled].focus,
3429
+ .ycd-bootstrap-wrapper fieldset[disabled] .btn-warning.focus {
3430
+ background-color: #f0ad4e;
3431
+ border-color: #eea236;
3432
+ }
3433
+ .ycd-bootstrap-wrapper .btn-warning .badge {
3434
+ color: #f0ad4e;
3435
+ background-color: #fff;
3436
+ }
3437
+ .ycd-bootstrap-wrapper .btn-danger {
3438
+ color: #fff;
3439
+ background-color: #d9534f;
3440
+ border-color: #d43f3a;
3441
+ }
3442
+ .ycd-bootstrap-wrapper .btn-danger:focus,
3443
+ .ycd-bootstrap-wrapper .btn-danger.focus {
3444
+ color: #fff;
3445
+ background-color: #c9302c;
3446
+ border-color: #761c19;
3447
+ }
3448
+ .ycd-bootstrap-wrapper .btn-danger:hover {
3449
+ color: #fff;
3450
+ background-color: #c9302c;
3451
+ border-color: #ac2925;
3452
+ }
3453
+ .ycd-bootstrap-wrapper .btn-danger:active,
3454
+ .ycd-bootstrap-wrapper .btn-danger.active,
3455
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-danger {
3456
+ color: #fff;
3457
+ background-color: #c9302c;
3458
+ border-color: #ac2925;
3459
+ }
3460
+ .ycd-bootstrap-wrapper .btn-danger:active:hover,
3461
+ .ycd-bootstrap-wrapper .btn-danger.active:hover,
3462
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-danger:hover,
3463
+ .ycd-bootstrap-wrapper .btn-danger:active:focus,
3464
+ .ycd-bootstrap-wrapper .btn-danger.active:focus,
3465
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-danger:focus,
3466
+ .ycd-bootstrap-wrapper .btn-danger:active.focus,
3467
+ .ycd-bootstrap-wrapper .btn-danger.active.focus,
3468
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-danger.focus {
3469
+ color: #fff;
3470
+ background-color: #ac2925;
3471
+ border-color: #761c19;
3472
+ }
3473
+ .ycd-bootstrap-wrapper .btn-danger:active,
3474
+ .ycd-bootstrap-wrapper .btn-danger.active,
3475
+ .ycd-bootstrap-wrapper .open > .dropdown-toggle.btn-danger {
3476
+ background-image: none;
3477
+ }
3478
+ .ycd-bootstrap-wrapper .btn-danger.disabled:hover,
3479
+ .ycd-bootstrap-wrapper .btn-danger[disabled]:hover,
3480
+ .ycd-bootstrap-wrapper fieldset[disabled] .btn-danger:hover,
3481
+ .ycd-bootstrap-wrapper .btn-danger.disabled:focus,
3482
+ .ycd-bootstrap-wrapper .btn-danger[disabled]:focus,
3483
+ .ycd-bootstrap-wrapper fieldset[disabled] .btn-danger:focus,
3484
+ .ycd-bootstrap-wrapper .btn-danger.disabled.focus,
3485
+ .ycd-bootstrap-wrapper .btn-danger[disabled].focus,
3486
+ .ycd-bootstrap-wrapper fieldset[disabled] .btn-danger.focus {
3487
+ background-color: #d9534f;
3488
+ border-color: #d43f3a;
3489
+ }
3490
+ .ycd-bootstrap-wrapper .btn-danger .badge {
3491
+ color: #d9534f;
3492
+ background-color: #fff;
3493
+ }
3494
+ .ycd-bootstrap-wrapper .btn-link {
3495
+ font-weight: normal;
3496
+ color: #337ab7;
3497
+ border-radius: 0;
3498
+ }
3499
+ .ycd-bootstrap-wrapper .btn-link,
3500
+ .ycd-bootstrap-wrapper .btn-link:active,
3501
+ .ycd-bootstrap-wrapper .btn-link.active,
3502
+ .ycd-bootstrap-wrapper .btn-link[disabled],
3503
+ .ycd-bootstrap-wrapper fieldset[disabled] .btn-link {
3504
+ background-color: transparent;
3505
+ -webkit-box-shadow: none;
3506
+ box-shadow: none;
3507
+ }
3508
+ .ycd-bootstrap-wrapper .btn-link,
3509
+ .ycd-bootstrap-wrapper .btn-link:hover,
3510
+ .ycd-bootstrap-wrapper .btn-link:focus,
3511
+ .ycd-bootstrap-wrapper .btn-link:active {
3512
+ border-color: transparent;
3513
+ }
3514
+ .ycd-bootstrap-wrapper .btn-link:hover,
3515
+ .ycd-bootstrap-wrapper .btn-link:focus {
3516
+ color: #23527c;
3517
+ text-decoration: underline;
3518
+ background-color: transparent;
3519
+ }
3520
+ .ycd-bootstrap-wrapper .btn-link[disabled]:hover,
3521
+ .ycd-bootstrap-wrapper fieldset[disabled] .btn-link:hover,
3522
+ .ycd-bootstrap-wrapper .btn-link[disabled]:focus,
3523
+ .ycd-bootstrap-wrapper fieldset[disabled] .btn-link:focus {
3524
+ color: #777;
3525
+ text-decoration: none;
3526
+ }
3527
+ .ycd-bootstrap-wrapper .btn-lg,
3528
+ .ycd-bootstrap-wrapper .btn-group-lg > .btn {
3529
+ padding: 10px 16px;
3530
+ font-size: 18px;
3531
+ line-height: 1.3333333;
3532
+ border-radius: 6px;
3533
+ }
3534
+ .ycd-bootstrap-wrapper .btn-sm,
3535
+ .ycd-bootstrap-wrapper .btn-group-sm > .btn {
3536
+ padding: 5px 10px;
3537
+ font-size: 12px;
3538
+ line-height: 1.5;
3539
+ border-radius: 3px;
3540
+ }
3541
+ .ycd-bootstrap-wrapper .btn-xs,
3542
+ .ycd-bootstrap-wrapper .btn-group-xs > .btn {
3543
+ padding: 1px 5px;
3544
+ font-size: 12px;
3545
+ line-height: 1.5;
3546
+ border-radius: 3px;
3547
+ }
3548
+ .ycd-bootstrap-wrapper .btn-block {
3549
+ display: block;
3550
+ width: 100%;
3551
+ }
3552
+ .ycd-bootstrap-wrapper .btn-block + .btn-block {
3553
+ margin-top: 5px;
3554
+ }
3555
+ .ycd-bootstrap-wrapper input[type="submit"].btn-block,
3556
+ .ycd-bootstrap-wrapper input[type="reset"].btn-block,
3557
+ .ycd-bootstrap-wrapper input[type="button"].btn-block {
3558
+ width: 100%;
3559
+ }
3560
+ .ycd-bootstrap-wrapper .fade {
3561
+ opacity: 0;
3562
+ -webkit-transition: opacity .15s linear;
3563
+ -o-transition: opacity .15s linear;
3564
+ transition: opacity .15s linear;
3565
+ }
3566
+ .ycd-bootstrap-wrapper .fade.in {
3567
+ opacity: 1;
3568
+ }
3569
+ .ycd-bootstrap-wrapper .collapse {
3570
+ display: none;
3571
+ }
3572
+ .ycd-bootstrap-wrapper .collapse.in {
3573
+ display: block;
3574
+ }
3575
+ .ycd-bootstrap-wrapper tr.collapse.in {
3576
+ display: table-row;
3577
+ }
3578
+ .ycd-bootstrap-wrapper tbody.collapse.in {
3579
+ display: table-row-group;
3580
+ }
3581
+ .ycd-bootstrap-wrapper .collapsing {
3582
+ position: relative;
3583
+ height: 0;
3584
+ overflow: hidden;
3585
+ -webkit-transition-timing-function: ease;
3586
+ -o-transition-timing-function: ease;
3587
+ transition-timing-function: ease;
3588
+ -webkit-transition-duration: .35s;
3589
+ -o-transition-duration: .35s;
3590
+ transition-duration: .35s;
3591
+ -webkit-transition-property: height, visibility;
3592
+ -o-transition-property: height, visibility;
3593
+ transition-property: height, visibility;
3594
+ }
3595
+ .ycd-bootstrap-wrapper .caret {
3596
+ display: inline-block;
3597
+ width: 0;
3598
+ height: 0;
3599
+ margin-left: 2px;
3600
+ vertical-align: middle;
3601
+ border-top: 4px dashed;
3602
+ border-top: 4px solid \9;
3603
+ border-right: 4px solid transparent;
3604
+ border-left: 4px solid transparent;
3605
+ }
3606
+ .ycd-bootstrap-wrapper .dropup,
3607
+ .ycd-bootstrap-wrapper .dropdown {
3608
+ position: relative;
3609
+ }
3610
+ .ycd-bootstrap-wrapper .dropdown-toggle:focus {
3611
+ outline: 0;
3612
+ }
3613
+ .ycd-bootstrap-wrapper .dropdown-menu {
3614
+ position: absolute;
3615
+ top: 100%;
3616
+ left: 0;
3617
+ z-index: 1000;
3618
+ display: none;
3619
+ float: left;
3620
+ min-width: 160px;
3621
+ padding: 5px 0;
3622
+ margin: 2px 0 0;
3623
+ font-size: 14px;
3624
+ text-align: left;
3625
+ list-style: none;
3626
+ background-color: #fff;
3627
+ -webkit-background-clip: padding-box;
3628
+ background-clip: padding-box;
3629
+ border: 1px solid #ccc;
3630
+ border: 1px solid rgba(0, 0, 0, 0.15);
3631
+ border-radius: 4px;
3632
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
3633
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
3634
+ }
3635
+ .ycd-bootstrap-wrapper .dropdown-menu.pull-right {
3636
+ right: 0;
3637
+ left: auto;
3638
+ }
3639
+ .ycd-bootstrap-wrapper .dropdown-menu .divider {
3640
+ height: 1px;
3641
+ margin: 9px 0;
3642
+ overflow: hidden;
3643
+ background-color: #e5e5e5;
3644
+ }
3645
+ .ycd-bootstrap-wrapper .dropdown-menu > li > a {
3646
+ display: block;
3647
+ padding: 3px 20px;
3648
+ clear: both;
3649
+ font-weight: normal;
3650
+ line-height: 1.42857143;
3651
+ color: #333;
3652
+ white-space: nowrap;
3653
+ }
3654
+ .ycd-bootstrap-wrapper .dropdown-menu > li > a:hover,
3655
+ .ycd-bootstrap-wrapper .dropdown-menu > li > a:focus {
3656
+ color: #262626;
3657
+ text-decoration: none;
3658
+ background-color: #f5f5f5;
3659
+ }
3660
+ .ycd-bootstrap-wrapper .dropdown-menu > .active > a,
3661
+ .ycd-bootstrap-wrapper .dropdown-menu > .active > a:hover,
3662
+ .ycd-bootstrap-wrapper .dropdown-menu > .active > a:focus {
3663
+ color: #fff;
3664
+ text-decoration: none;
3665
+ background-color: #337ab7;
3666
+ outline: 0;
3667
+ }
3668
+ .ycd-bootstrap-wrapper .dropdown-menu > .disabled > a,
3669
+ .ycd-bootstrap-wrapper .dropdown-menu > .disabled > a:hover,
3670
+ .ycd-bootstrap-wrapper .dropdown-menu > .disabled > a:focus {
3671
+ color: #777;
3672
+ }
3673
+ .ycd-bootstrap-wrapper .dropdown-menu > .disabled > a:hover,
3674
+ .ycd-bootstrap-wrapper .dropdown-menu > .disabled > a:focus {
3675
+ text-decoration: none;
3676
+ cursor: not-allowed;
3677
+ background-color: transparent;
3678
+ background-image: none;
3679
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
3680
+ }
3681
+ .ycd-bootstrap-wrapper .open > .dropdown-menu {
3682
+ display: block;
3683
+ }
3684
+ .ycd-bootstrap-wrapper .open > a {
3685
+ outline: 0;
3686
+ }
3687
+ .ycd-bootstrap-wrapper .dropdown-menu-right {
3688
+ right: 0;
3689
+ left: auto;
3690
+ }
3691
+ .ycd-bootstrap-wrapper .dropdown-menu-left {
3692
+ right: auto;
3693
+ left: 0;
3694
+ }
3695
+ .ycd-bootstrap-wrapper .dropdown-header {
3696
+ display: block;
3697
+ padding: 3px 20px;
3698
+ font-size: 12px;
3699
+ line-height: 1.42857143;
3700
+ color: #777;
3701
+ white-space: nowrap;
3702
+ }
3703
+ .ycd-bootstrap-wrapper .dropdown-backdrop {
3704
+ position: fixed;
3705
+ top: 0;
3706
+ right: 0;
3707
+ bottom: 0;
3708
+ left: 0;
3709
+ z-index: 990;
3710
+ }
3711
+ .ycd-bootstrap-wrapper .pull-right > .dropdown-menu {
3712
+ right: 0;
3713
+ left: auto;
3714
+ }
3715
+ .ycd-bootstrap-wrapper .dropup .caret,
3716
+ .ycd-bootstrap-wrapper .navbar-fixed-bottom .dropdown .caret {
3717
+ content: "";
3718
+ border-top: 0;
3719
+ border-bottom: 4px dashed;
3720
+ border-bottom: 4px solid \9;
3721
+ }
3722
+ .ycd-bootstrap-wrapper .dropup .dropdown-menu,
3723
+ .ycd-bootstrap-wrapper .navbar-fixed-bottom .dropdown .dropdown-menu {
3724
+ top: auto;
3725
+ bottom: 100%;
3726
+ margin-bottom: 2px;
3727
+ }
3728
+ @media (min-width: 768px) {
3729
+ .ycd-bootstrap-wrapper .navbar-right .dropdown-menu {
3730
+ right: 0;
3731
+ left: auto;
3732
+ }
3733
+ .ycd-bootstrap-wrapper .navbar-right .dropdown-menu-left {
3734
+ right: auto;
3735
+ left: 0;
3736
+ }
3737
+ }
3738
+ .ycd-bootstrap-wrapper .btn-group,
3739
+ .ycd-bootstrap-wrapper .btn-group-vertical {
3740
+ position: relative;
3741
+ display: inline-block;
3742
+ vertical-align: middle;
3743
+ }
3744
+ .ycd-bootstrap-wrapper .btn-group > .btn,
3745
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn {
3746
+ position: relative;
3747
+ float: left;
3748
+ }
3749
+ .ycd-bootstrap-wrapper .btn-group > .btn:hover,
3750
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn:hover,
3751
+ .ycd-bootstrap-wrapper .btn-group > .btn:focus,
3752
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn:focus,
3753
+ .ycd-bootstrap-wrapper .btn-group > .btn:active,
3754
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn:active,
3755
+ .ycd-bootstrap-wrapper .btn-group > .btn.active,
3756
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn.active {
3757
+ z-index: 2;
3758
+ }
3759
+ .ycd-bootstrap-wrapper .btn-group .btn + .btn,
3760
+ .ycd-bootstrap-wrapper .btn-group .btn + .btn-group,
3761
+ .ycd-bootstrap-wrapper .btn-group .btn-group + .btn,
3762
+ .ycd-bootstrap-wrapper .btn-group .btn-group + .btn-group {
3763
+ margin-left: -1px;
3764
+ }
3765
+ .ycd-bootstrap-wrapper .btn-toolbar {
3766
+ margin-left: -5px;
3767
+ }
3768
+ .ycd-bootstrap-wrapper .btn-toolbar .btn,
3769
+ .ycd-bootstrap-wrapper .btn-toolbar .btn-group,
3770
+ .ycd-bootstrap-wrapper .btn-toolbar .input-group {
3771
+ float: left;
3772
+ }
3773
+ .ycd-bootstrap-wrapper .btn-toolbar > .btn,
3774
+ .ycd-bootstrap-wrapper .btn-toolbar > .btn-group,
3775
+ .ycd-bootstrap-wrapper .btn-toolbar > .input-group {
3776
+ margin-left: 5px;
3777
+ }
3778
+ .ycd-bootstrap-wrapper .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
3779
+ border-radius: 0;
3780
+ }
3781
+ .ycd-bootstrap-wrapper .btn-group > .btn:first-child {
3782
+ margin-left: 0;
3783
+ }
3784
+ .ycd-bootstrap-wrapper .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
3785
+ border-top-right-radius: 0;
3786
+ border-bottom-right-radius: 0;
3787
+ }
3788
+ .ycd-bootstrap-wrapper .btn-group > .btn:last-child:not(:first-child),
3789
+ .ycd-bootstrap-wrapper .btn-group > .dropdown-toggle:not(:first-child) {
3790
+ border-top-left-radius: 0;
3791
+ border-bottom-left-radius: 0;
3792
+ }
3793
+ .ycd-bootstrap-wrapper .btn-group > .btn-group {
3794
+ float: left;
3795
+ }
3796
+ .ycd-bootstrap-wrapper .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
3797
+ border-radius: 0;
3798
+ }
3799
+ .ycd-bootstrap-wrapper .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
3800
+ .ycd-bootstrap-wrapper .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
3801
+ border-top-right-radius: 0;
3802
+ border-bottom-right-radius: 0;
3803
+ }
3804
+ .ycd-bootstrap-wrapper .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
3805
+ border-top-left-radius: 0;
3806
+ border-bottom-left-radius: 0;
3807
+ }
3808
+ .ycd-bootstrap-wrapper .btn-group .dropdown-toggle:active,
3809
+ .ycd-bootstrap-wrapper .btn-group.open .dropdown-toggle {
3810
+ outline: 0;
3811
+ }
3812
+ .ycd-bootstrap-wrapper .btn-group > .btn + .dropdown-toggle {
3813
+ padding-right: 8px;
3814
+ padding-left: 8px;
3815
+ }
3816
+ .ycd-bootstrap-wrapper .btn-group > .btn-lg + .dropdown-toggle {
3817
+ padding-right: 12px;
3818
+ padding-left: 12px;
3819
+ }
3820
+ .ycd-bootstrap-wrapper .btn-group.open .dropdown-toggle {
3821
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
3822
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
3823
+ }
3824
+ .ycd-bootstrap-wrapper .btn-group.open .dropdown-toggle.btn-link {
3825
+ -webkit-box-shadow: none;
3826
+ box-shadow: none;
3827
+ }
3828
+ .ycd-bootstrap-wrapper .btn .caret {
3829
+ margin-left: 0;
3830
+ }
3831
+ .ycd-bootstrap-wrapper .btn-lg .caret {
3832
+ border-width: 5px 5px 0;
3833
+ border-bottom-width: 0;
3834
+ }
3835
+ .ycd-bootstrap-wrapper .dropup .btn-lg .caret {
3836
+ border-width: 0 5px 5px;
3837
+ }
3838
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn,
3839
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn-group,
3840
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn-group > .btn {
3841
+ display: block;
3842
+ float: none;
3843
+ width: 100%;
3844
+ max-width: 100%;
3845
+ }
3846
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn-group > .btn {
3847
+ float: none;
3848
+ }
3849
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn + .btn,
3850
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn + .btn-group,
3851
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn-group + .btn,
3852
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn-group + .btn-group {
3853
+ margin-top: -1px;
3854
+ margin-left: 0;
3855
+ }
3856
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn:not(:first-child):not(:last-child) {
3857
+ border-radius: 0;
3858
+ }
3859
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn:first-child:not(:last-child) {
3860
+ border-top-left-radius: 4px;
3861
+ border-top-right-radius: 4px;
3862
+ border-bottom-right-radius: 0;
3863
+ border-bottom-left-radius: 0;
3864
+ }
3865
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn:last-child:not(:first-child) {
3866
+ border-top-left-radius: 0;
3867
+ border-top-right-radius: 0;
3868
+ border-bottom-right-radius: 4px;
3869
+ border-bottom-left-radius: 4px;
3870
+ }
3871
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
3872
+ border-radius: 0;
3873
+ }
3874
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
3875
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
3876
+ border-bottom-right-radius: 0;
3877
+ border-bottom-left-radius: 0;
3878
+ }
3879
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
3880
+ border-top-left-radius: 0;
3881
+ border-top-right-radius: 0;
3882
+ }
3883
+ .ycd-bootstrap-wrapper .btn-group-justified {
3884
+ display: table;
3885
+ width: 100%;
3886
+ table-layout: fixed;
3887
+ border-collapse: separate;
3888
+ }
3889
+ .ycd-bootstrap-wrapper .btn-group-justified > .btn,
3890
+ .ycd-bootstrap-wrapper .btn-group-justified > .btn-group {
3891
+ display: table-cell;
3892
+ float: none;
3893
+ width: 1%;
3894
+ }
3895
+ .ycd-bootstrap-wrapper .btn-group-justified > .btn-group .btn {
3896
+ width: 100%;
3897
+ }
3898
+ .ycd-bootstrap-wrapper .btn-group-justified > .btn-group .dropdown-menu {
3899
+ left: auto;
3900
+ }
3901
+ .ycd-bootstrap-wrapper [data-toggle="buttons"] > .btn input[type="radio"],
3902
+ .ycd-bootstrap-wrapper [data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
3903
+ .ycd-bootstrap-wrapper [data-toggle="buttons"] > .btn input[type="checkbox"],
3904
+ .ycd-bootstrap-wrapper [data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
3905
+ position: absolute;
3906
+ clip: rect(0, 0, 0, 0);
3907
+ pointer-events: none;
3908
+ }
3909
+ .ycd-bootstrap-wrapper .input-group {
3910
+ position: relative;
3911
+ display: table;
3912
+ border-collapse: separate;
3913
+ }
3914
+ .ycd-bootstrap-wrapper .input-group[class*="col-"] {
3915
+ float: none;
3916
+ padding-right: 0;
3917
+ padding-left: 0;
3918
+ }
3919
+ .ycd-bootstrap-wrapper .input-group .form-control {
3920
+ position: relative;
3921
+ z-index: 2;
3922
+ float: left;
3923
+ width: 100%;
3924
+ margin-bottom: 0;
3925
+ }
3926
+ .ycd-bootstrap-wrapper .input-group .form-control:focus {
3927
+ z-index: 3;
3928
+ }
3929
+ .ycd-bootstrap-wrapper .input-group-lg > .form-control,
3930
+ .ycd-bootstrap-wrapper .input-group-lg > .input-group-addon,
3931
+ .ycd-bootstrap-wrapper .input-group-lg > .input-group-btn > .btn {
3932
+ height: 46px;
3933
+ padding: 10px 16px;
3934
+ font-size: 18px;
3935
+ line-height: 1.3333333;
3936
+ border-radius: 6px;
3937
+ }
3938
+ .ycd-bootstrap-wrapper select.input-group-lg > .form-control,
3939
+ .ycd-bootstrap-wrapper select.input-group-lg > .input-group-addon,
3940
+ .ycd-bootstrap-wrapper select.input-group-lg > .input-group-btn > .btn {
3941
+ height: 46px;
3942
+ line-height: 46px;
3943
+ }
3944
+ .ycd-bootstrap-wrapper textarea.input-group-lg > .form-control,
3945
+ .ycd-bootstrap-wrapper textarea.input-group-lg > .input-group-addon,
3946
+ .ycd-bootstrap-wrapper textarea.input-group-lg > .input-group-btn > .btn,
3947
+ .ycd-bootstrap-wrapper select[multiple].input-group-lg > .form-control,
3948
+ .ycd-bootstrap-wrapper select[multiple].input-group-lg > .input-group-addon,
3949
+ .ycd-bootstrap-wrapper select[multiple].input-group-lg > .input-group-btn > .btn {
3950
+ height: auto;
3951
+ }
3952
+ .ycd-bootstrap-wrapper .input-group-sm > .form-control,
3953
+ .ycd-bootstrap-wrapper .input-group-sm > .input-group-addon,
3954
+ .ycd-bootstrap-wrapper .input-group-sm > .input-group-btn > .btn {
3955
+ height: 30px;
3956
+ padding: 5px 10px;
3957
+ font-size: 12px;
3958
+ line-height: 1.5;
3959
+ border-radius: 3px;
3960
+ }
3961
+ .ycd-bootstrap-wrapper select.input-group-sm > .form-control,
3962
+ .ycd-bootstrap-wrapper select.input-group-sm > .input-group-addon,
3963
+ .ycd-bootstrap-wrapper select.input-group-sm > .input-group-btn > .btn {
3964
+ height: 30px;
3965
+ line-height: 30px;
3966
+ }
3967
+ .ycd-bootstrap-wrapper textarea.input-group-sm > .form-control,
3968
+ .ycd-bootstrap-wrapper textarea.input-group-sm > .input-group-addon,
3969
+ .ycd-bootstrap-wrapper textarea.input-group-sm > .input-group-btn > .btn,
3970
+ .ycd-bootstrap-wrapper select[multiple].input-group-sm > .form-control,
3971
+ .ycd-bootstrap-wrapper select[multiple].input-group-sm > .input-group-addon,
3972
+ .ycd-bootstrap-wrapper select[multiple].input-group-sm > .input-group-btn > .btn {
3973
+ height: auto;
3974
+ }
3975
+ .ycd-bootstrap-wrapper .input-group-addon,
3976
+ .ycd-bootstrap-wrapper .input-group-btn,
3977
+ .ycd-bootstrap-wrapper .input-group .form-control {
3978
+ display: table-cell;
3979
+ }
3980
+ .ycd-bootstrap-wrapper .input-group-addon:not(:first-child):not(:last-child),
3981
+ .ycd-bootstrap-wrapper .input-group-btn:not(:first-child):not(:last-child),
3982
+ .ycd-bootstrap-wrapper .input-group .form-control:not(:first-child):not(:last-child) {
3983
+ border-radius: 0;
3984
+ }
3985
+ .ycd-bootstrap-wrapper .input-group-addon,
3986
+ .ycd-bootstrap-wrapper .input-group-btn {
3987
+ width: 1%;
3988
+ white-space: nowrap;
3989
+ vertical-align: middle;
3990
+ }
3991
+ .ycd-bootstrap-wrapper .input-group-addon {
3992
+ padding: 6px 12px;
3993
+ font-size: 14px;
3994
+ font-weight: normal;
3995
+ line-height: 1;
3996
+ color: #555;
3997
+ text-align: center;
3998
+ background-color: #eee;
3999
+ border: 1px solid #ccc;
4000
+ border-radius: 4px;
4001
+ }
4002
+ .ycd-bootstrap-wrapper .input-group-addon.input-sm {
4003
+ padding: 5px 10px;
4004
+ font-size: 12px;
4005
+ border-radius: 3px;
4006
+ }
4007
+ .ycd-bootstrap-wrapper .input-group-addon.input-lg {
4008
+ padding: 10px 16px;
4009
+ font-size: 18px;
4010
+ border-radius: 6px;
4011
+ }
4012
+ .ycd-bootstrap-wrapper .input-group-addon input[type="radio"],
4013
+ .ycd-bootstrap-wrapper .input-group-addon input[type="checkbox"] {
4014
+ margin-top: 0;
4015
+ }
4016
+ .ycd-bootstrap-wrapper .input-group .form-control:first-child,
4017
+ .ycd-bootstrap-wrapper .input-group-addon:first-child,
4018
+ .ycd-bootstrap-wrapper .input-group-btn:first-child > .btn,
4019
+ .ycd-bootstrap-wrapper .input-group-btn:first-child > .btn-group > .btn,
4020
+ .ycd-bootstrap-wrapper .input-group-btn:first-child > .dropdown-toggle,
4021
+ .ycd-bootstrap-wrapper .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
4022
+ .ycd-bootstrap-wrapper .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
4023
+ border-top-right-radius: 0;
4024
+ border-bottom-right-radius: 0;
4025
+ }
4026
+ .ycd-bootstrap-wrapper .input-group-addon:first-child {
4027
+ border-right: 0;
4028
+ }
4029
+ .ycd-bootstrap-wrapper .input-group .form-control:last-child,
4030
+ .ycd-bootstrap-wrapper .input-group-addon:last-child,
4031
+ .ycd-bootstrap-wrapper .input-group-btn:last-child > .btn,
4032
+ .ycd-bootstrap-wrapper .input-group-btn:last-child > .btn-group > .btn,
4033
+ .ycd-bootstrap-wrapper .input-group-btn:last-child > .dropdown-toggle,
4034
+ .ycd-bootstrap-wrapper .input-group-btn:first-child > .btn:not(:first-child),
4035
+ .ycd-bootstrap-wrapper .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
4036
+ border-top-left-radius: 0;
4037
+ border-bottom-left-radius: 0;
4038
+ }
4039
+ .ycd-bootstrap-wrapper .input-group-addon:last-child {
4040
+ border-left: 0;
4041
+ }
4042
+ .ycd-bootstrap-wrapper .input-group-btn {
4043
+ position: relative;
4044
+ font-size: 0;
4045
+ white-space: nowrap;
4046
+ }
4047
+ .ycd-bootstrap-wrapper .input-group-btn > .btn {
4048
+ position: relative;
4049
+ }
4050
+ .ycd-bootstrap-wrapper .input-group-btn > .btn + .btn {
4051
+ margin-left: -1px;
4052
+ }
4053
+ .ycd-bootstrap-wrapper .input-group-btn > .btn:hover,
4054
+ .ycd-bootstrap-wrapper .input-group-btn > .btn:focus,
4055
+ .ycd-bootstrap-wrapper .input-group-btn > .btn:active {
4056
+ z-index: 2;
4057
+ }
4058
+ .ycd-bootstrap-wrapper .input-group-btn:first-child > .btn,
4059
+ .ycd-bootstrap-wrapper .input-group-btn:first-child > .btn-group {
4060
+ margin-right: -1px;
4061
+ }
4062
+ .ycd-bootstrap-wrapper .input-group-btn:last-child > .btn,
4063
+ .ycd-bootstrap-wrapper .input-group-btn:last-child > .btn-group {
4064
+ z-index: 2;
4065
+ margin-left: -1px;
4066
+ }
4067
+ .ycd-bootstrap-wrapper .nav {
4068
+ padding-left: 0;
4069
+ margin-bottom: 0;
4070
+ list-style: none;
4071
+ }
4072
+ .ycd-bootstrap-wrapper .nav > li {
4073
+ position: relative;
4074
+ display: block;
4075
+ }
4076
+ .ycd-bootstrap-wrapper .nav > li > a {
4077
+ position: relative;
4078
+ display: block;
4079
+ padding: 10px 15px;
4080
+ }
4081
+ .ycd-bootstrap-wrapper .nav > li > a:hover,
4082
+ .ycd-bootstrap-wrapper .nav > li > a:focus {
4083
+ text-decoration: none;
4084
+ background-color: #eee;
4085
+ }
4086
+ .ycd-bootstrap-wrapper .nav > li.disabled > a {
4087
+ color: #777;
4088
+ }
4089
+ .ycd-bootstrap-wrapper .nav > li.disabled > a:hover,
4090
+ .ycd-bootstrap-wrapper .nav > li.disabled > a:focus {
4091
+ color: #777;
4092
+ text-decoration: none;
4093
+ cursor: not-allowed;
4094
+ background-color: transparent;
4095
+ }
4096
+ .ycd-bootstrap-wrapper .nav .open > a,
4097
+ .ycd-bootstrap-wrapper .nav .open > a:hover,
4098
+ .ycd-bootstrap-wrapper .nav .open > a:focus {
4099
+ background-color: #eee;
4100
+ border-color: #337ab7;
4101
+ }
4102
+ .ycd-bootstrap-wrapper .nav .nav-divider {
4103
+ height: 1px;
4104
+ margin: 9px 0;
4105
+ overflow: hidden;
4106
+ background-color: #e5e5e5;
4107
+ }
4108
+ .ycd-bootstrap-wrapper .nav > li > a > img {
4109
+ max-width: none;
4110
+ }
4111
+ .ycd-bootstrap-wrapper .nav-tabs {
4112
+ border-bottom: 1px solid #ddd;
4113
+ }
4114
+ .ycd-bootstrap-wrapper .nav-tabs > li {
4115
+ float: left;
4116
+ margin-bottom: -1px;
4117
+ }
4118
+ .ycd-bootstrap-wrapper .nav-tabs > li > a {
4119
+ margin-right: 2px;
4120
+ line-height: 1.42857143;
4121
+ border: 1px solid transparent;
4122
+ border-radius: 4px 4px 0 0;
4123
+ }
4124
+ .ycd-bootstrap-wrapper .nav-tabs > li > a:hover {
4125
+ border-color: #eee #eee #ddd;
4126
+ }
4127
+ .ycd-bootstrap-wrapper .nav-tabs > li.active > a,
4128
+ .ycd-bootstrap-wrapper .nav-tabs > li.active > a:hover,
4129
+ .ycd-bootstrap-wrapper .nav-tabs > li.active > a:focus {
4130
+ color: #555;
4131
+ cursor: default;
4132
+ background-color: #fff;
4133
+ border: 1px solid #ddd;
4134
+ border-bottom-color: transparent;
4135
+ }
4136
+ .ycd-bootstrap-wrapper .nav-tabs.nav-justified {
4137
+ width: 100%;
4138
+ border-bottom: 0;
4139
+ }
4140
+ .ycd-bootstrap-wrapper .nav-tabs.nav-justified > li {
4141
+ float: none;
4142
+ }
4143
+ .ycd-bootstrap-wrapper .nav-tabs.nav-justified > li > a {
4144
+ margin-bottom: 5px;
4145
+ text-align: center;
4146
+ }
4147
+ .ycd-bootstrap-wrapper .nav-tabs.nav-justified > .dropdown .dropdown-menu {
4148
+ top: auto;
4149
+ left: auto;
4150
+ }
4151
+ @media (min-width: 768px) {
4152
+ .ycd-bootstrap-wrapper .nav-tabs.nav-justified > li {
4153
+ display: table-cell;
4154
+ width: 1%;
4155
+ }
4156
+ .ycd-bootstrap-wrapper .nav-tabs.nav-justified > li > a {
4157
+ margin-bottom: 0;
4158
+ }
4159
+ }
4160
+ .ycd-bootstrap-wrapper .nav-tabs.nav-justified > li > a {
4161
+ margin-right: 0;
4162
+ border-radius: 4px;
4163
+ }
4164
+ .ycd-bootstrap-wrapper .nav-tabs.nav-justified > .active > a,
4165
+ .ycd-bootstrap-wrapper .nav-tabs.nav-justified > .active > a:hover,
4166
+ .ycd-bootstrap-wrapper .nav-tabs.nav-justified > .active > a:focus {
4167
+ border: 1px solid #ddd;
4168
+ }
4169
+ @media (min-width: 768px) {
4170
+ .ycd-bootstrap-wrapper .nav-tabs.nav-justified > li > a {
4171
+ border-bottom: 1px solid #ddd;
4172
+ border-radius: 4px 4px 0 0;
4173
+ }
4174
+ .ycd-bootstrap-wrapper .nav-tabs.nav-justified > .active > a,
4175
+ .ycd-bootstrap-wrapper .nav-tabs.nav-justified > .active > a:hover,
4176
+ .ycd-bootstrap-wrapper .nav-tabs.nav-justified > .active > a:focus {
4177
+ border-bottom-color: #fff;
4178
+ }
4179
+ }
4180
+ .ycd-bootstrap-wrapper .nav-pills > li {
4181
+ float: left;
4182
+ }
4183
+ .ycd-bootstrap-wrapper .nav-pills > li > a {
4184
+ border-radius: 4px;
4185
+ }
4186
+ .ycd-bootstrap-wrapper .nav-pills > li + li {
4187
+ margin-left: 2px;
4188
+ }
4189
+ .ycd-bootstrap-wrapper .nav-pills > li.active > a,
4190
+ .ycd-bootstrap-wrapper .nav-pills > li.active > a:hover,
4191
+ .ycd-bootstrap-wrapper .nav-pills > li.active > a:focus {
4192
+ color: #fff;
4193
+ background-color: #337ab7;
4194
+ }
4195
+ .ycd-bootstrap-wrapper .nav-stacked > li {
4196
+ float: none;
4197
+ }
4198
+ .ycd-bootstrap-wrapper .nav-stacked > li + li {
4199
+ margin-top: 2px;
4200
+ margin-left: 0;
4201
+ }
4202
+ .ycd-bootstrap-wrapper .nav-justified {
4203
+ width: 100%;
4204
+ }
4205
+ .ycd-bootstrap-wrapper .nav-justified > li {
4206
+ float: none;
4207
+ }
4208
+ .ycd-bootstrap-wrapper .nav-justified > li > a {
4209
+ margin-bottom: 5px;
4210
+ text-align: center;
4211
+ }
4212
+ .ycd-bootstrap-wrapper .nav-justified > .dropdown .dropdown-menu {
4213
+ top: auto;
4214
+ left: auto;
4215
+ }
4216
+ @media (min-width: 768px) {
4217
+ .ycd-bootstrap-wrapper .nav-justified > li {
4218
+ display: table-cell;
4219
+ width: 1%;
4220
+ }
4221
+ .ycd-bootstrap-wrapper .nav-justified > li > a {
4222
+ margin-bottom: 0;
4223
+ }
4224
+ }
4225
+ .ycd-bootstrap-wrapper .nav-tabs-justified {
4226
+ border-bottom: 0;
4227
+ }
4228
+ .ycd-bootstrap-wrapper .nav-tabs-justified > li > a {
4229
+ margin-right: 0;
4230
+ border-radius: 4px;
4231
+ }
4232
+ .ycd-bootstrap-wrapper .nav-tabs-justified > .active > a,
4233
+ .ycd-bootstrap-wrapper .nav-tabs-justified > .active > a:hover,
4234
+ .ycd-bootstrap-wrapper .nav-tabs-justified > .active > a:focus {
4235
+ border: 1px solid #ddd;
4236
+ }
4237
+ @media (min-width: 768px) {
4238
+ .ycd-bootstrap-wrapper .nav-tabs-justified > li > a {
4239
+ border-bottom: 1px solid #ddd;
4240
+ border-radius: 4px 4px 0 0;
4241
+ }
4242
+ .ycd-bootstrap-wrapper .nav-tabs-justified > .active > a,
4243
+ .ycd-bootstrap-wrapper .nav-tabs-justified > .active > a:hover,
4244
+ .ycd-bootstrap-wrapper .nav-tabs-justified > .active > a:focus {
4245
+ border-bottom-color: #fff;
4246
+ }
4247
+ }
4248
+ .ycd-bootstrap-wrapper .tab-content > .tab-pane {
4249
+ display: none;
4250
+ }
4251
+ .ycd-bootstrap-wrapper .tab-content > .active {
4252
+ display: block;
4253
+ }
4254
+ .ycd-bootstrap-wrapper .nav-tabs .dropdown-menu {
4255
+ margin-top: -1px;
4256
+ border-top-left-radius: 0;
4257
+ border-top-right-radius: 0;
4258
+ }
4259
+ .ycd-bootstrap-wrapper .navbar {
4260
+ position: relative;
4261
+ min-height: 50px;
4262
+ margin-bottom: 20px;
4263
+ border: 1px solid transparent;
4264
+ }
4265
+ @media (min-width: 768px) {
4266
+ .ycd-bootstrap-wrapper .navbar {
4267
+ border-radius: 4px;
4268
+ }
4269
+ }
4270
+ @media (min-width: 768px) {
4271
+ .ycd-bootstrap-wrapper .navbar-header {
4272
+ float: left;
4273
+ }
4274
+ }
4275
+ .ycd-bootstrap-wrapper .navbar-collapse {
4276
+ padding-right: 15px;
4277
+ padding-left: 15px;
4278
+ overflow-x: visible;
4279
+ -webkit-overflow-scrolling: touch;
4280
+ border-top: 1px solid transparent;
4281
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
4282
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
4283
+ }
4284
+ .ycd-bootstrap-wrapper .navbar-collapse.in {
4285
+ overflow-y: auto;
4286
+ }
4287
+ @media (min-width: 768px) {
4288
+ .ycd-bootstrap-wrapper .navbar-collapse {
4289
+ width: auto;
4290
+ border-top: 0;
4291
+ -webkit-box-shadow: none;
4292
+ box-shadow: none;
4293
+ }
4294
+ .ycd-bootstrap-wrapper .navbar-collapse.collapse {
4295
+ display: block !important;
4296
+ height: auto !important;
4297
+ padding-bottom: 0;
4298
+ overflow: visible !important;
4299
+ }
4300
+ .ycd-bootstrap-wrapper .navbar-collapse.in {
4301
+ overflow-y: visible;
4302
+ }
4303
+ .ycd-bootstrap-wrapper .navbar-fixed-top .navbar-collapse,
4304
+ .ycd-bootstrap-wrapper .navbar-static-top .navbar-collapse,
4305
+ .ycd-bootstrap-wrapper .navbar-fixed-bottom .navbar-collapse {
4306
+ padding-right: 0;
4307
+ padding-left: 0;
4308
+ }
4309
+ }
4310
+ .ycd-bootstrap-wrapper .navbar-fixed-top .navbar-collapse,
4311
+ .ycd-bootstrap-wrapper .navbar-fixed-bottom .navbar-collapse {
4312
+ max-height: 340px;
4313
+ }
4314
+ @media (max-device-width: 480px) and (orientation: landscape) {
4315
+ .ycd-bootstrap-wrapper .navbar-fixed-top .navbar-collapse,
4316
+ .ycd-bootstrap-wrapper .navbar-fixed-bottom .navbar-collapse {
4317
+ max-height: 200px;
4318
+ }
4319
+ }
4320
+ .ycd-bootstrap-wrapper .container > .navbar-header,
4321
+ .ycd-bootstrap-wrapper .container-fluid > .navbar-header,
4322
+ .ycd-bootstrap-wrapper .container > .navbar-collapse,
4323
+ .ycd-bootstrap-wrapper .container-fluid > .navbar-collapse {
4324
+ margin-right: -15px;
4325
+ margin-left: -15px;
4326
+ }
4327
+ @media (min-width: 768px) {
4328
+ .ycd-bootstrap-wrapper .container > .navbar-header,
4329
+ .ycd-bootstrap-wrapper .container-fluid > .navbar-header,
4330
+ .ycd-bootstrap-wrapper .container > .navbar-collapse,
4331
+ .ycd-bootstrap-wrapper .container-fluid > .navbar-collapse {
4332
+ margin-right: 0;
4333
+ margin-left: 0;
4334
+ }
4335
+ }
4336
+ .ycd-bootstrap-wrapper .navbar-static-top {
4337
+ z-index: 1000;
4338
+ border-width: 0 0 1px;
4339
+ }
4340
+ @media (min-width: 768px) {
4341
+ .ycd-bootstrap-wrapper .navbar-static-top {
4342
+ border-radius: 0;
4343
+ }
4344
+ }
4345
+ .ycd-bootstrap-wrapper .navbar-fixed-top,
4346
+ .ycd-bootstrap-wrapper .navbar-fixed-bottom {
4347
+ position: fixed;
4348
+ right: 0;
4349
+ left: 0;
4350
+ z-index: 1030;
4351
+ }
4352
+ @media (min-width: 768px) {
4353
+ .ycd-bootstrap-wrapper .navbar-fixed-top,
4354
+ .ycd-bootstrap-wrapper .navbar-fixed-bottom {
4355
+ border-radius: 0;
4356
+ }
4357
+ }
4358
+ .ycd-bootstrap-wrapper .navbar-fixed-top {
4359
+ top: 0;
4360
+ border-width: 0 0 1px;
4361
+ }
4362
+ .ycd-bootstrap-wrapper .navbar-fixed-bottom {
4363
+ bottom: 0;
4364
+ margin-bottom: 0;
4365
+ border-width: 1px 0 0;
4366
+ }
4367
+ .ycd-bootstrap-wrapper .navbar-brand {
4368
+ float: left;
4369
+ height: 50px;
4370
+ padding: 15px 15px;
4371
+ font-size: 18px;
4372
+ line-height: 20px;
4373
+ }
4374
+ .ycd-bootstrap-wrapper .navbar-brand:hover,
4375
+ .ycd-bootstrap-wrapper .navbar-brand:focus {
4376
+ text-decoration: none;
4377
+ }
4378
+ .ycd-bootstrap-wrapper .navbar-brand > img {
4379
+ display: block;
4380
+ }
4381
+ @media (min-width: 768px) {
4382
+ .ycd-bootstrap-wrapper .navbar > .container .navbar-brand,
4383
+ .ycd-bootstrap-wrapper .navbar > .container-fluid .navbar-brand {
4384
+ margin-left: -15px;
4385
+ }
4386
+ }
4387
+ .ycd-bootstrap-wrapper .navbar-toggle {
4388
+ position: relative;
4389
+ float: right;
4390
+ padding: 9px 10px;
4391
+ margin-top: 8px;
4392
+ margin-right: 15px;
4393
+ margin-bottom: 8px;
4394
+ background-color: transparent;
4395
+ background-image: none;
4396
+ border: 1px solid transparent;
4397
+ border-radius: 4px;
4398
+ }
4399
+ .ycd-bootstrap-wrapper .navbar-toggle:focus {
4400
+ outline: 0;
4401
+ }
4402
+ .ycd-bootstrap-wrapper .navbar-toggle .icon-bar {
4403
+ display: block;
4404
+ width: 22px;
4405
+ height: 2px;
4406
+ border-radius: 1px;
4407
+ }
4408
+ .ycd-bootstrap-wrapper .navbar-toggle .icon-bar + .icon-bar {
4409
+ margin-top: 4px;
4410
+ }
4411
+ @media (min-width: 768px) {
4412
+ .ycd-bootstrap-wrapper .navbar-toggle {
4413
+ display: none;
4414
+ }
4415
+ }
4416
+ .ycd-bootstrap-wrapper .navbar-nav {
4417
+ margin: 7.5px -15px;
4418
+ }
4419
+ .ycd-bootstrap-wrapper .navbar-nav > li > a {
4420
+ padding-top: 10px;
4421
+ padding-bottom: 10px;
4422
+ line-height: 20px;
4423
+ }
4424
+ @media (max-width: 767px) {
4425
+ .ycd-bootstrap-wrapper .navbar-nav .open .dropdown-menu {
4426
+ position: static;
4427
+ float: none;
4428
+ width: auto;
4429
+ margin-top: 0;
4430
+ background-color: transparent;
4431
+ border: 0;
4432
+ -webkit-box-shadow: none;
4433
+ box-shadow: none;
4434
+ }
4435
+ .ycd-bootstrap-wrapper .navbar-nav .open .dropdown-menu > li > a,
4436
+ .ycd-bootstrap-wrapper .navbar-nav .open .dropdown-menu .dropdown-header {
4437
+ padding: 5px 15px 5px 25px;
4438
+ }
4439
+ .ycd-bootstrap-wrapper .navbar-nav .open .dropdown-menu > li > a {
4440
+ line-height: 20px;
4441
+ }
4442
+ .ycd-bootstrap-wrapper .navbar-nav .open .dropdown-menu > li > a:hover,
4443
+ .ycd-bootstrap-wrapper .navbar-nav .open .dropdown-menu > li > a:focus {
4444
+ background-image: none;
4445
+ }
4446
+ }
4447
+ @media (min-width: 768px) {
4448
+ .ycd-bootstrap-wrapper .navbar-nav {
4449
+ float: left;
4450
+ margin: 0;
4451
+ }
4452
+ .ycd-bootstrap-wrapper .navbar-nav > li {
4453
+ float: left;
4454
+ }
4455
+ .ycd-bootstrap-wrapper .navbar-nav > li > a {
4456
+ padding-top: 15px;
4457
+ padding-bottom: 15px;
4458
+ }
4459
+ }
4460
+ .ycd-bootstrap-wrapper .navbar-form {
4461
+ padding: 10px 15px;
4462
+ margin-top: 8px;
4463
+ margin-right: -15px;
4464
+ margin-bottom: 8px;
4465
+ margin-left: -15px;
4466
+ border-top: 1px solid transparent;
4467
+ border-bottom: 1px solid transparent;
4468
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
4469
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
4470
+ }
4471
+ @media (min-width: 768px) {
4472
+ .ycd-bootstrap-wrapper .navbar-form .form-group {
4473
+ display: inline-block;
4474
+ margin-bottom: 0;
4475
+ vertical-align: middle;
4476
+ }
4477
+ .ycd-bootstrap-wrapper .navbar-form .form-control {
4478
+ display: inline-block;
4479
+ width: auto;
4480
+ vertical-align: middle;
4481
+ }
4482
+ .ycd-bootstrap-wrapper .navbar-form .form-control-static {
4483
+ display: inline-block;
4484
+ }
4485
+ .ycd-bootstrap-wrapper .navbar-form .input-group {
4486
+ display: inline-table;
4487
+ vertical-align: middle;
4488
+ }
4489
+ .ycd-bootstrap-wrapper .navbar-form .input-group .input-group-addon,
4490
+ .ycd-bootstrap-wrapper .navbar-form .input-group .input-group-btn,
4491
+ .ycd-bootstrap-wrapper .navbar-form .input-group .form-control {
4492
+ width: auto;
4493
+ }
4494
+ .ycd-bootstrap-wrapper .navbar-form .input-group > .form-control {
4495
+ width: 100%;
4496
+ }
4497
+ .ycd-bootstrap-wrapper .navbar-form .control-label {
4498
+ margin-bottom: 0;
4499
+ vertical-align: middle;
4500
+ }
4501
+ .ycd-bootstrap-wrapper .navbar-form .radio,
4502
+ .ycd-bootstrap-wrapper .navbar-form .checkbox {
4503
+ display: inline-block;
4504
+ margin-top: 0;
4505
+ margin-bottom: 0;
4506
+ vertical-align: middle;
4507
+ }
4508
+ .ycd-bootstrap-wrapper .navbar-form .radio label,
4509
+ .ycd-bootstrap-wrapper .navbar-form .checkbox label {
4510
+ padding-left: 0;
4511
+ }
4512
+ .ycd-bootstrap-wrapper .navbar-form .radio input[type="radio"],
4513
+ .ycd-bootstrap-wrapper .navbar-form .checkbox input[type="checkbox"] {
4514
+ position: relative;
4515
+ margin-left: 0;
4516
+ }
4517
+ .ycd-bootstrap-wrapper .navbar-form .has-feedback .form-control-feedback {
4518
+ top: 0;
4519
+ }
4520
+ }
4521
+ @media (max-width: 767px) {
4522
+ .ycd-bootstrap-wrapper .navbar-form .form-group {
4523
+ margin-bottom: 5px;
4524
+ }
4525
+ .ycd-bootstrap-wrapper .navbar-form .form-group:last-child {
4526
+ margin-bottom: 0;
4527
+ }
4528
+ }
4529
+ @media (min-width: 768px) {
4530
+ .ycd-bootstrap-wrapper .navbar-form {
4531
+ width: auto;
4532
+ padding-top: 0;
4533
+ padding-bottom: 0;
4534
+ margin-right: 0;
4535
+ margin-left: 0;
4536
+ border: 0;
4537
+ -webkit-box-shadow: none;
4538
+ box-shadow: none;
4539
+ }
4540
+ }
4541
+ .ycd-bootstrap-wrapper .navbar-nav > li > .dropdown-menu {
4542
+ margin-top: 0;
4543
+ border-top-left-radius: 0;
4544
+ border-top-right-radius: 0;
4545
+ }
4546
+ .ycd-bootstrap-wrapper .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
4547
+ margin-bottom: 0;
4548
+ border-top-left-radius: 4px;
4549
+ border-top-right-radius: 4px;
4550
+ border-bottom-right-radius: 0;
4551
+ border-bottom-left-radius: 0;
4552
+ }
4553
+ .ycd-bootstrap-wrapper .navbar-btn {
4554
+ margin-top: 8px;
4555
+ margin-bottom: 8px;
4556
+ }
4557
+ .ycd-bootstrap-wrapper .navbar-btn.btn-sm {
4558
+ margin-top: 10px;
4559
+ margin-bottom: 10px;
4560
+ }
4561
+ .ycd-bootstrap-wrapper .navbar-btn.btn-xs {
4562
+ margin-top: 14px;
4563
+ margin-bottom: 14px;
4564
+ }
4565
+ .ycd-bootstrap-wrapper .navbar-text {
4566
+ margin-top: 15px;
4567
+ margin-bottom: 15px;
4568
+ }
4569
+ @media (min-width: 768px) {
4570
+ .ycd-bootstrap-wrapper .navbar-text {
4571
+ float: left;
4572
+ margin-right: 15px;
4573
+ margin-left: 15px;
4574
+ }
4575
+ }
4576
+ @media (min-width: 768px) {
4577
+ .ycd-bootstrap-wrapper .navbar-left {
4578
+ float: left !important;
4579
+ }
4580
+ .ycd-bootstrap-wrapper .navbar-right {
4581
+ float: right !important;
4582
+ margin-right: -15px;
4583
+ }
4584
+ .ycd-bootstrap-wrapper .navbar-right ~ .navbar-right {
4585
+ margin-right: 0;
4586
+ }
4587
+ }
4588
+ .ycd-bootstrap-wrapper .navbar-default {
4589
+ background-color: #f8f8f8;
4590
+ border-color: #e7e7e7;
4591
+ }
4592
+ .ycd-bootstrap-wrapper .navbar-default .navbar-brand {
4593
+ color: #777;
4594
+ }
4595
+ .ycd-bootstrap-wrapper .navbar-default .navbar-brand:hover,
4596
+ .ycd-bootstrap-wrapper .navbar-default .navbar-brand:focus {
4597
+ color: #5e5e5e;
4598
+ background-color: transparent;
4599
+ }
4600
+ .ycd-bootstrap-wrapper .navbar-default .navbar-text {
4601
+ color: #777;
4602
+ }
4603
+ .ycd-bootstrap-wrapper .navbar-default .navbar-nav > li > a {
4604
+ color: #777;
4605
+ }
4606
+ .ycd-bootstrap-wrapper .navbar-default .navbar-nav > li > a:hover,
4607
+ .ycd-bootstrap-wrapper .navbar-default .navbar-nav > li > a:focus {
4608
+ color: #333;
4609
+ background-color: transparent;
4610
+ }
4611
+ .ycd-bootstrap-wrapper .navbar-default .navbar-nav > .active > a,
4612
+ .ycd-bootstrap-wrapper .navbar-default .navbar-nav > .active > a:hover,
4613
+ .ycd-bootstrap-wrapper .navbar-default .navbar-nav > .active > a:focus {
4614
+ color: #555;
4615
+ background-color: #e7e7e7;
4616
+ }
4617
+ .ycd-bootstrap-wrapper .navbar-default .navbar-nav > .disabled > a,
4618
+ .ycd-bootstrap-wrapper .navbar-default .navbar-nav > .disabled > a:hover,
4619
+ .ycd-bootstrap-wrapper .navbar-default .navbar-nav > .disabled > a:focus {
4620
+ color: #ccc;
4621
+ background-color: transparent;
4622
+ }
4623
+ .ycd-bootstrap-wrapper .navbar-default .navbar-toggle {
4624
+ border-color: #ddd;
4625
+ }
4626
+ .ycd-bootstrap-wrapper .navbar-default .navbar-toggle:hover,
4627
+ .ycd-bootstrap-wrapper .navbar-default .navbar-toggle:focus {
4628
+ background-color: #ddd;
4629
+ }
4630
+ .ycd-bootstrap-wrapper .navbar-default .navbar-toggle .icon-bar {
4631
+ background-color: #888;
4632
+ }
4633
+ .ycd-bootstrap-wrapper .navbar-default .navbar-collapse,
4634
+ .ycd-bootstrap-wrapper .navbar-default .navbar-form {
4635
+ border-color: #e7e7e7;
4636
+ }
4637
+ .ycd-bootstrap-wrapper .navbar-default .navbar-nav > .open > a,
4638
+ .ycd-bootstrap-wrapper .navbar-default .navbar-nav > .open > a:hover,
4639
+ .ycd-bootstrap-wrapper .navbar-default .navbar-nav > .open > a:focus {
4640
+ color: #555;
4641
+ background-color: #e7e7e7;
4642
+ }
4643
+ @media (max-width: 767px) {
4644
+ .ycd-bootstrap-wrapper .navbar-default .navbar-nav .open .dropdown-menu > li > a {
4645
+ color: #777;
4646
+ }
4647
+ .ycd-bootstrap-wrapper .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
4648
+ .ycd-bootstrap-wrapper .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
4649
+ color: #333;
4650
+ background-color: transparent;
4651
+ }
4652
+ .ycd-bootstrap-wrapper .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
4653
+ .ycd-bootstrap-wrapper .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
4654
+ .ycd-bootstrap-wrapper .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
4655
+ color: #555;
4656
+ background-color: #e7e7e7;
4657
+ }
4658
+ .ycd-bootstrap-wrapper .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
4659
+ .ycd-bootstrap-wrapper .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
4660
+ .ycd-bootstrap-wrapper .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
4661
+ color: #ccc;
4662
+ background-color: transparent;
4663
+ }
4664
+ }
4665
+ .ycd-bootstrap-wrapper .navbar-default .navbar-link {
4666
+ color: #777;
4667
+ }
4668
+ .ycd-bootstrap-wrapper .navbar-default .navbar-link:hover {
4669
+ color: #333;
4670
+ }
4671
+ .ycd-bootstrap-wrapper .navbar-default .btn-link {
4672
+ color: #777;
4673
+ }
4674
+ .ycd-bootstrap-wrapper .navbar-default .btn-link:hover,
4675
+ .ycd-bootstrap-wrapper .navbar-default .btn-link:focus {
4676
+ color: #333;
4677
+ }
4678
+ .ycd-bootstrap-wrapper .navbar-default .btn-link[disabled]:hover,
4679
+ .ycd-bootstrap-wrapper fieldset[disabled] .navbar-default .btn-link:hover,
4680
+ .ycd-bootstrap-wrapper .navbar-default .btn-link[disabled]:focus,
4681
+ .ycd-bootstrap-wrapper fieldset[disabled] .navbar-default .btn-link:focus {
4682
+ color: #ccc;
4683
+ }
4684
+ .ycd-bootstrap-wrapper .navbar-inverse {
4685
+ background-color: #222;
4686
+ border-color: #080808;
4687
+ }
4688
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-brand {
4689
+ color: #9d9d9d;
4690
+ }
4691
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-brand:hover,
4692
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-brand:focus {
4693
+ color: #fff;
4694
+ background-color: transparent;
4695
+ }
4696
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-text {
4697
+ color: #9d9d9d;
4698
+ }
4699
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav > li > a {
4700
+ color: #9d9d9d;
4701
+ }
4702
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav > li > a:hover,
4703
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav > li > a:focus {
4704
+ color: #fff;
4705
+ background-color: transparent;
4706
+ }
4707
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav > .active > a,
4708
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav > .active > a:hover,
4709
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav > .active > a:focus {
4710
+ color: #fff;
4711
+ background-color: #080808;
4712
+ }
4713
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav > .disabled > a,
4714
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav > .disabled > a:hover,
4715
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav > .disabled > a:focus {
4716
+ color: #444;
4717
+ background-color: transparent;
4718
+ }
4719
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-toggle {
4720
+ border-color: #333;
4721
+ }
4722
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-toggle:hover,
4723
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-toggle:focus {
4724
+ background-color: #333;
4725
+ }
4726
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-toggle .icon-bar {
4727
+ background-color: #fff;
4728
+ }
4729
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-collapse,
4730
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-form {
4731
+ border-color: #101010;
4732
+ }
4733
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav > .open > a,
4734
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav > .open > a:hover,
4735
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav > .open > a:focus {
4736
+ color: #fff;
4737
+ background-color: #080808;
4738
+ }
4739
+ @media (max-width: 767px) {
4740
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
4741
+ border-color: #080808;
4742
+ }
4743
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
4744
+ background-color: #080808;
4745
+ }
4746
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
4747
+ color: #9d9d9d;
4748
+ }
4749
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
4750
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
4751
+ color: #fff;
4752
+ background-color: transparent;
4753
+ }
4754
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
4755
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
4756
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
4757
+ color: #fff;
4758
+ background-color: #080808;
4759
+ }
4760
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
4761
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
4762
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
4763
+ color: #444;
4764
+ background-color: transparent;
4765
+ }
4766
+ }
4767
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-link {
4768
+ color: #9d9d9d;
4769
+ }
4770
+ .ycd-bootstrap-wrapper .navbar-inverse .navbar-link:hover {
4771
+ color: #fff;
4772
+ }
4773
+ .ycd-bootstrap-wrapper .navbar-inverse .btn-link {
4774
+ color: #9d9d9d;
4775
+ }
4776
+ .ycd-bootstrap-wrapper .navbar-inverse .btn-link:hover,
4777
+ .ycd-bootstrap-wrapper .navbar-inverse .btn-link:focus {
4778
+ color: #fff;
4779
+ }
4780
+ .ycd-bootstrap-wrapper .navbar-inverse .btn-link[disabled]:hover,
4781
+ .ycd-bootstrap-wrapper fieldset[disabled] .navbar-inverse .btn-link:hover,
4782
+ .ycd-bootstrap-wrapper .navbar-inverse .btn-link[disabled]:focus,
4783
+ .ycd-bootstrap-wrapper fieldset[disabled] .navbar-inverse .btn-link:focus {
4784
+ color: #444;
4785
+ }
4786
+ .ycd-bootstrap-wrapper .breadcrumb {
4787
+ padding: 8px 15px;
4788
+ margin-bottom: 20px;
4789
+ list-style: none;
4790
+ background-color: #f5f5f5;
4791
+ border-radius: 4px;
4792
+ }
4793
+ .ycd-bootstrap-wrapper .breadcrumb > li {
4794
+ display: inline-block;
4795
+ }
4796
+ .ycd-bootstrap-wrapper .breadcrumb > li + li:before {
4797
+ padding: 0 5px;
4798
+ color: #ccc;
4799
+ content: "/\00a0";
4800
+ }
4801
+ .ycd-bootstrap-wrapper .breadcrumb > .active {
4802
+ color: #777;
4803
+ }
4804
+ .ycd-bootstrap-wrapper .pagination {
4805
+ display: inline-block;
4806
+ padding-left: 0;
4807
+ margin: 20px 0;
4808
+ border-radius: 4px;
4809
+ }
4810
+ .ycd-bootstrap-wrapper .pagination > li {
4811
+ display: inline;
4812
+ }
4813
+ .ycd-bootstrap-wrapper .pagination > li > a,
4814
+ .ycd-bootstrap-wrapper .pagination > li > span {
4815
+ position: relative;
4816
+ float: left;
4817
+ padding: 6px 12px;
4818
+ margin-left: -1px;
4819
+ line-height: 1.42857143;
4820
+ color: #337ab7;
4821
+ text-decoration: none;
4822
+ background-color: #fff;
4823
+ border: 1px solid #ddd;
4824
+ }
4825
+ .ycd-bootstrap-wrapper .pagination > li:first-child > a,
4826
+ .ycd-bootstrap-wrapper .pagination > li:first-child > span {
4827
+ margin-left: 0;
4828
+ border-top-left-radius: 4px;
4829
+ border-bottom-left-radius: 4px;
4830
+ }
4831
+ .ycd-bootstrap-wrapper .pagination > li:last-child > a,
4832
+ .ycd-bootstrap-wrapper .pagination > li:last-child > span {
4833
+ border-top-right-radius: 4px;
4834
+ border-bottom-right-radius: 4px;
4835
+ }
4836
+ .ycd-bootstrap-wrapper .pagination > li > a:hover,
4837
+ .ycd-bootstrap-wrapper .pagination > li > span:hover,
4838
+ .ycd-bootstrap-wrapper .pagination > li > a:focus,
4839
+ .ycd-bootstrap-wrapper .pagination > li > span:focus {
4840
+ z-index: 2;
4841
+ color: #23527c;
4842
+ background-color: #eee;
4843
+ border-color: #ddd;
4844
+ }
4845
+ .ycd-bootstrap-wrapper .pagination > .active > a,
4846
+ .ycd-bootstrap-wrapper .pagination > .active > span,
4847
+ .ycd-bootstrap-wrapper .pagination > .active > a:hover,
4848
+ .ycd-bootstrap-wrapper .pagination > .active > span:hover,
4849
+ .ycd-bootstrap-wrapper .pagination > .active > a:focus,
4850
+ .ycd-bootstrap-wrapper .pagination > .active > span:focus {
4851
+ z-index: 3;
4852
+ color: #fff;
4853
+ cursor: default;
4854
+ background-color: #337ab7;
4855
+ border-color: #337ab7;
4856
+ }
4857
+ .ycd-bootstrap-wrapper .pagination > .disabled > span,
4858
+ .ycd-bootstrap-wrapper .pagination > .disabled > span:hover,
4859
+ .ycd-bootstrap-wrapper .pagination > .disabled > span:focus,
4860
+ .ycd-bootstrap-wrapper .pagination > .disabled > a,
4861
+ .ycd-bootstrap-wrapper .pagination > .disabled > a:hover,
4862
+ .ycd-bootstrap-wrapper .pagination > .disabled > a:focus {
4863
+ color: #777;
4864
+ cursor: not-allowed;
4865
+ background-color: #fff;
4866
+ border-color: #ddd;
4867
+ }
4868
+ .ycd-bootstrap-wrapper .pagination-lg > li > a,
4869
+ .ycd-bootstrap-wrapper .pagination-lg > li > span {
4870
+ padding: 10px 16px;
4871
+ font-size: 18px;
4872
+ line-height: 1.3333333;
4873
+ }
4874
+ .ycd-bootstrap-wrapper .pagination-lg > li:first-child > a,
4875
+ .ycd-bootstrap-wrapper .pagination-lg > li:first-child > span {
4876
+ border-top-left-radius: 6px;
4877
+ border-bottom-left-radius: 6px;
4878
+ }
4879
+ .ycd-bootstrap-wrapper .pagination-lg > li:last-child > a,
4880
+ .ycd-bootstrap-wrapper .pagination-lg > li:last-child > span {
4881
+ border-top-right-radius: 6px;
4882
+ border-bottom-right-radius: 6px;
4883
+ }
4884
+ .ycd-bootstrap-wrapper .pagination-sm > li > a,
4885
+ .ycd-bootstrap-wrapper .pagination-sm > li > span {
4886
+ padding: 5px 10px;
4887
+ font-size: 12px;
4888
+ line-height: 1.5;
4889
+ }
4890
+ .ycd-bootstrap-wrapper .pagination-sm > li:first-child > a,
4891
+ .ycd-bootstrap-wrapper .pagination-sm > li:first-child > span {
4892
+ border-top-left-radius: 3px;
4893
+ border-bottom-left-radius: 3px;
4894
+ }
4895
+ .ycd-bootstrap-wrapper .pagination-sm > li:last-child > a,
4896
+ .ycd-bootstrap-wrapper .pagination-sm > li:last-child > span {
4897
+ border-top-right-radius: 3px;
4898
+ border-bottom-right-radius: 3px;
4899
+ }
4900
+ .ycd-bootstrap-wrapper .pager {
4901
+ padding-left: 0;
4902
+ margin: 20px 0;
4903
+ text-align: center;
4904
+ list-style: none;
4905
+ }
4906
+ .ycd-bootstrap-wrapper .pager li {
4907
+ display: inline;
4908
+ }
4909
+ .ycd-bootstrap-wrapper .pager li > a,
4910
+ .ycd-bootstrap-wrapper .pager li > span {
4911
+ display: inline-block;
4912
+ padding: 5px 14px;
4913
+ background-color: #fff;
4914
+ border: 1px solid #ddd;
4915
+ border-radius: 15px;
4916
+ }
4917
+ .ycd-bootstrap-wrapper .pager li > a:hover,
4918
+ .ycd-bootstrap-wrapper .pager li > a:focus {
4919
+ text-decoration: none;
4920
+ background-color: #eee;
4921
+ }
4922
+ .ycd-bootstrap-wrapper .pager .next > a,
4923
+ .ycd-bootstrap-wrapper .pager .next > span {
4924
+ float: right;
4925
+ }
4926
+ .ycd-bootstrap-wrapper .pager .previous > a,
4927
+ .ycd-bootstrap-wrapper .pager .previous > span {
4928
+ float: left;
4929
+ }
4930
+ .ycd-bootstrap-wrapper .pager .disabled > a,
4931
+ .ycd-bootstrap-wrapper .pager .disabled > a:hover,
4932
+ .ycd-bootstrap-wrapper .pager .disabled > a:focus,
4933
+ .ycd-bootstrap-wrapper .pager .disabled > span {
4934
+ color: #777;
4935
+ cursor: not-allowed;
4936
+ background-color: #fff;
4937
+ }
4938
+ .ycd-bootstrap-wrapper .label {
4939
+ display: inline;
4940
+ padding: .2em .6em .3em;
4941
+ font-size: 75%;
4942
+ font-weight: bold;
4943
+ line-height: 1;
4944
+ color: #fff;
4945
+ text-align: center;
4946
+ white-space: nowrap;
4947
+ vertical-align: baseline;
4948
+ border-radius: .25em;
4949
+ }
4950
+ .ycd-bootstrap-wrapper a.label:hover,
4951
+ .ycd-bootstrap-wrapper a.label:focus {
4952
+ color: #fff;
4953
+ text-decoration: none;
4954
+ cursor: pointer;
4955
+ }
4956
+ .ycd-bootstrap-wrapper .label:empty {
4957
+ display: none;
4958
+ }
4959
+ .ycd-bootstrap-wrapper .btn .label {
4960
+ position: relative;
4961
+ top: -1px;
4962
+ }
4963
+ .ycd-bootstrap-wrapper .label-default {
4964
+ background-color: #777;
4965
+ }
4966
+ .ycd-bootstrap-wrapper .label-default[href]:hover,
4967
+ .ycd-bootstrap-wrapper .label-default[href]:focus {
4968
+ background-color: #5e5e5e;
4969
+ }
4970
+ .ycd-bootstrap-wrapper .label-primary {
4971
+ background-color: #337ab7;
4972
+ }
4973
+ .ycd-bootstrap-wrapper .label-primary[href]:hover,
4974
+ .ycd-bootstrap-wrapper .label-primary[href]:focus {
4975
+ background-color: #286090;
4976
+ }
4977
+ .ycd-bootstrap-wrapper .label-success {
4978
+ background-color: #5cb85c;
4979
+ }
4980
+ .ycd-bootstrap-wrapper .label-success[href]:hover,
4981
+ .ycd-bootstrap-wrapper .label-success[href]:focus {
4982
+ background-color: #449d44;
4983
+ }
4984
+ .ycd-bootstrap-wrapper .label-info {
4985
+ background-color: #5bc0de;
4986
+ }
4987
+ .ycd-bootstrap-wrapper .label-info[href]:hover,
4988
+ .ycd-bootstrap-wrapper .label-info[href]:focus {
4989
+ background-color: #31b0d5;
4990
+ }
4991
+ .ycd-bootstrap-wrapper .label-warning {
4992
+ background-color: #f0ad4e;
4993
+ }
4994
+ .ycd-bootstrap-wrapper .label-warning[href]:hover,
4995
+ .ycd-bootstrap-wrapper .label-warning[href]:focus {
4996
+ background-color: #ec971f;
4997
+ }
4998
+ .ycd-bootstrap-wrapper .label-danger {
4999
+ background-color: #d9534f;
5000
+ }
5001
+ .ycd-bootstrap-wrapper .label-danger[href]:hover,
5002
+ .ycd-bootstrap-wrapper .label-danger[href]:focus {
5003
+ background-color: #c9302c;
5004
+ }
5005
+ .ycd-bootstrap-wrapper .badge {
5006
+ display: inline-block;
5007
+ min-width: 10px;
5008
+ padding: 3px 7px;
5009
+ font-size: 12px;
5010
+ font-weight: bold;
5011
+ line-height: 1;
5012
+ color: #fff;
5013
+ text-align: center;
5014
+ white-space: nowrap;
5015
+ vertical-align: middle;
5016
+ background-color: #777;
5017
+ border-radius: 10px;
5018
+ }
5019
+ .ycd-bootstrap-wrapper .badge:empty {
5020
+ display: none;
5021
+ }
5022
+ .ycd-bootstrap-wrapper .btn .badge {
5023
+ position: relative;
5024
+ top: -1px;
5025
+ }
5026
+ .ycd-bootstrap-wrapper .btn-xs .badge,
5027
+ .ycd-bootstrap-wrapper .btn-group-xs > .btn .badge {
5028
+ top: 0;
5029
+ padding: 1px 5px;
5030
+ }
5031
+ .ycd-bootstrap-wrapper a.badge:hover,
5032
+ .ycd-bootstrap-wrapper a.badge:focus {
5033
+ color: #fff;
5034
+ text-decoration: none;
5035
+ cursor: pointer;
5036
+ }
5037
+ .ycd-bootstrap-wrapper .list-group-item.active > .badge,
5038
+ .ycd-bootstrap-wrapper .nav-pills > .active > a > .badge {
5039
+ color: #337ab7;
5040
+ background-color: #fff;
5041
+ }
5042
+ .ycd-bootstrap-wrapper .list-group-item > .badge {
5043
+ float: right;
5044
+ }
5045
+ .ycd-bootstrap-wrapper .list-group-item > .badge + .badge {
5046
+ margin-right: 5px;
5047
+ }
5048
+ .ycd-bootstrap-wrapper .nav-pills > li > a > .badge {
5049
+ margin-left: 3px;
5050
+ }
5051
+ .ycd-bootstrap-wrapper .jumbotron {
5052
+ padding-top: 30px;
5053
+ padding-bottom: 30px;
5054
+ margin-bottom: 30px;
5055
+ color: inherit;
5056
+ background-color: #eee;
5057
+ }
5058
+ .ycd-bootstrap-wrapper .jumbotron h1,
5059
+ .ycd-bootstrap-wrapper .jumbotron .h1 {
5060
+ color: inherit;
5061
+ }
5062
+ .ycd-bootstrap-wrapper .jumbotron p {
5063
+ margin-bottom: 15px;
5064
+ font-size: 21px;
5065
+ font-weight: 200;
5066
+ }
5067
+ .ycd-bootstrap-wrapper .jumbotron > hr {
5068
+ border-top-color: #d5d5d5;
5069
+ }
5070
+ .ycd-bootstrap-wrapper .container .jumbotron,
5071
+ .ycd-bootstrap-wrapper .container-fluid .jumbotron {
5072
+ padding-right: 15px;
5073
+ padding-left: 15px;
5074
+ border-radius: 6px;
5075
+ }
5076
+ .ycd-bootstrap-wrapper .jumbotron .container {
5077
+ max-width: 100%;
5078
+ }
5079
+ @media screen and (min-width: 768px) {
5080
+ .ycd-bootstrap-wrapper .jumbotron {
5081
+ padding-top: 48px;
5082
+ padding-bottom: 48px;
5083
+ }
5084
+ .ycd-bootstrap-wrapper .container .jumbotron,
5085
+ .ycd-bootstrap-wrapper .container-fluid .jumbotron {
5086
+ padding-right: 60px;
5087
+ padding-left: 60px;
5088
+ }
5089
+ .ycd-bootstrap-wrapper .jumbotron h1,
5090
+ .ycd-bootstrap-wrapper .jumbotron .h1 {
5091
+ font-size: 63px;
5092
+ }
5093
+ }
5094
+ .ycd-bootstrap-wrapper .thumbnail {
5095
+ display: block;
5096
+ padding: 4px;
5097
+ margin-bottom: 20px;
5098
+ line-height: 1.42857143;
5099
+ background-color: #fff;
5100
+ border: 1px solid #ddd;
5101
+ border-radius: 4px;
5102
+ -webkit-transition: border 0.2s ease-in-out;
5103
+ -o-transition: border 0.2s ease-in-out;
5104
+ transition: border 0.2s ease-in-out;
5105
+ }
5106
+ .ycd-bootstrap-wrapper .thumbnail > img,
5107
+ .ycd-bootstrap-wrapper .thumbnail a > img {
5108
+ margin-right: auto;
5109
+ margin-left: auto;
5110
+ }
5111
+ .ycd-bootstrap-wrapper a.thumbnail:hover,
5112
+ .ycd-bootstrap-wrapper a.thumbnail:focus,
5113
+ .ycd-bootstrap-wrapper a.thumbnail.active {
5114
+ border-color: #337ab7;
5115
+ }
5116
+ .ycd-bootstrap-wrapper .thumbnail .caption {
5117
+ padding: 9px;
5118
+ color: #333;
5119
+ }
5120
+ .ycd-bootstrap-wrapper .alert {
5121
+ padding: 15px;
5122
+ margin-bottom: 20px;
5123
+ border: 1px solid transparent;
5124
+ border-radius: 4px;
5125
+ }
5126
+ .ycd-bootstrap-wrapper .alert h4 {
5127
+ margin-top: 0;
5128
+ color: inherit;
5129
+ }
5130
+ .ycd-bootstrap-wrapper .alert .alert-link {
5131
+ font-weight: bold;
5132
+ }
5133
+ .ycd-bootstrap-wrapper .alert > p,
5134
+ .ycd-bootstrap-wrapper .alert > ul {
5135
+ margin-bottom: 0;
5136
+ }
5137
+ .ycd-bootstrap-wrapper .alert > p + p {
5138
+ margin-top: 5px;
5139
+ }
5140
+ .ycd-bootstrap-wrapper .alert-dismissable,
5141
+ .ycd-bootstrap-wrapper .alert-dismissible {
5142
+ padding-right: 35px;
5143
+ }
5144
+ .ycd-bootstrap-wrapper .alert-dismissable .close,
5145
+ .ycd-bootstrap-wrapper .alert-dismissible .close {
5146
+ position: relative;
5147
+ top: -2px;
5148
+ right: -21px;
5149
+ color: inherit;
5150
+ }
5151
+ .ycd-bootstrap-wrapper .alert-success {
5152
+ color: #3c763d;
5153
+ background-color: #dff0d8;
5154
+ border-color: #d6e9c6;
5155
+ }
5156
+ .ycd-bootstrap-wrapper .alert-success hr {
5157
+ border-top-color: #c9e2b3;
5158
+ }
5159
+ .ycd-bootstrap-wrapper .alert-success .alert-link {
5160
+ color: #2b542c;
5161
+ }
5162
+ .ycd-bootstrap-wrapper .alert-info {
5163
+ color: #31708f;
5164
+ background-color: #d9edf7;
5165
+ border-color: #bce8f1;
5166
+ }
5167
+ .ycd-bootstrap-wrapper .alert-info hr {
5168
+ border-top-color: #a6e1ec;
5169
+ }
5170
+ .ycd-bootstrap-wrapper .alert-info .alert-link {
5171
+ color: #245269;
5172
+ }
5173
+ .ycd-bootstrap-wrapper .alert-warning {
5174
+ color: #8a6d3b;
5175
+ background-color: #fcf8e3;
5176
+ border-color: #faebcc;
5177
+ }
5178
+ .ycd-bootstrap-wrapper .alert-warning hr {
5179
+ border-top-color: #f7e1b5;
5180
+ }
5181
+ .ycd-bootstrap-wrapper .alert-warning .alert-link {
5182
+ color: #66512c;
5183
+ }
5184
+ .ycd-bootstrap-wrapper .alert-danger {
5185
+ color: #a94442;
5186
+ background-color: #f2dede;
5187
+ border-color: #ebccd1;
5188
+ }
5189
+ .ycd-bootstrap-wrapper .alert-danger hr {
5190
+ border-top-color: #e4b9c0;
5191
+ }
5192
+ .ycd-bootstrap-wrapper .alert-danger .alert-link {
5193
+ color: #843534;
5194
+ }
5195
+ @-webkit-keyframes progress-bar-stripes {
5196
+ from {
5197
+ background-position: 40px 0;
5198
+ }
5199
+ to {
5200
+ background-position: 0 0;
5201
+ }
5202
+ }
5203
+ @-o-keyframes progress-bar-stripes {
5204
+ from {
5205
+ background-position: 40px 0;
5206
+ }
5207
+ to {
5208
+ background-position: 0 0;
5209
+ }
5210
+ }
5211
+ @keyframes progress-bar-stripes {
5212
+ from {
5213
+ background-position: 40px 0;
5214
+ }
5215
+ to {
5216
+ background-position: 0 0;
5217
+ }
5218
+ }
5219
+ .ycd-bootstrap-wrapper .progress {
5220
+ height: 20px;
5221
+ margin-bottom: 20px;
5222
+ overflow: hidden;
5223
+ background-color: #f5f5f5;
5224
+ border-radius: 4px;
5225
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
5226
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
5227
+ }
5228
+ .ycd-bootstrap-wrapper .progress-bar {
5229
+ float: left;
5230
+ width: 0;
5231
+ height: 100%;
5232
+ font-size: 12px;
5233
+ line-height: 20px;
5234
+ color: #fff;
5235
+ text-align: center;
5236
+ background-color: #337ab7;
5237
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
5238
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
5239
+ -webkit-transition: width .6s ease;
5240
+ -o-transition: width .6s ease;
5241
+ transition: width .6s ease;
5242
+ }
5243
+ .ycd-bootstrap-wrapper .progress-striped .progress-bar,
5244
+ .ycd-bootstrap-wrapper .progress-bar-striped {
5245
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5246
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5247
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5248
+ -webkit-background-size: 40px 40px;
5249
+ background-size: 40px 40px;
5250
+ }
5251
+ .ycd-bootstrap-wrapper .progress.active .progress-bar,
5252
+ .ycd-bootstrap-wrapper .progress-bar.active {
5253
+ -webkit-animation: progress-bar-stripes 2s linear infinite;
5254
+ -o-animation: progress-bar-stripes 2s linear infinite;
5255
+ animation: progress-bar-stripes 2s linear infinite;
5256
+ }
5257
+ .ycd-bootstrap-wrapper .progress-bar-success {
5258
+ background-color: #5cb85c;
5259
+ }
5260
+ .ycd-bootstrap-wrapper .progress-striped .progress-bar-success {
5261
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5262
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5263
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5264
+ }
5265
+ .ycd-bootstrap-wrapper .progress-bar-info {
5266
+ background-color: #5bc0de;
5267
+ }
5268
+ .ycd-bootstrap-wrapper .progress-striped .progress-bar-info {
5269
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5270
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5271
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5272
+ }
5273
+ .ycd-bootstrap-wrapper .progress-bar-warning {
5274
+ background-color: #f0ad4e;
5275
+ }
5276
+ .ycd-bootstrap-wrapper .progress-striped .progress-bar-warning {
5277
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5278
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5279
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5280
+ }
5281
+ .ycd-bootstrap-wrapper .progress-bar-danger {
5282
+ background-color: #d9534f;
5283
+ }
5284
+ .ycd-bootstrap-wrapper .progress-striped .progress-bar-danger {
5285
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5286
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5287
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5288
+ }
5289
+ .ycd-bootstrap-wrapper .media {
5290
+ margin-top: 15px;
5291
+ }
5292
+ .ycd-bootstrap-wrapper .media:first-child {
5293
+ margin-top: 0;
5294
+ }
5295
+ .ycd-bootstrap-wrapper .media,
5296
+ .ycd-bootstrap-wrapper .media-body {
5297
+ overflow: hidden;
5298
+ zoom: 1;
5299
+ }
5300
+ .ycd-bootstrap-wrapper .media-body {
5301
+ width: 10000px;
5302
+ }
5303
+ .ycd-bootstrap-wrapper .media-object {
5304
+ display: block;
5305
+ }
5306
+ .ycd-bootstrap-wrapper .media-object.img-thumbnail {
5307
+ max-width: none;
5308
+ }
5309
+ .ycd-bootstrap-wrapper .media-right,
5310
+ .ycd-bootstrap-wrapper .media > .pull-right {
5311
+ padding-left: 10px;
5312
+ }
5313
+ .ycd-bootstrap-wrapper .media-left,
5314
+ .ycd-bootstrap-wrapper .media > .pull-left {
5315
+ padding-right: 10px;
5316
+ }
5317
+ .ycd-bootstrap-wrapper .media-left,
5318
+ .ycd-bootstrap-wrapper .media-right,
5319
+ .ycd-bootstrap-wrapper .media-body {
5320
+ display: table-cell;
5321
+ vertical-align: top;
5322
+ }
5323
+ .ycd-bootstrap-wrapper .media-middle {
5324
+ vertical-align: middle;
5325
+ }
5326
+ .ycd-bootstrap-wrapper .media-bottom {
5327
+ vertical-align: bottom;
5328
+ }
5329
+ .ycd-bootstrap-wrapper .media-heading {
5330
+ margin-top: 0;
5331
+ margin-bottom: 5px;
5332
+ }
5333
+ .ycd-bootstrap-wrapper .media-list {
5334
+ padding-left: 0;
5335
+ list-style: none;
5336
+ }
5337
+ .ycd-bootstrap-wrapper .list-group {
5338
+ padding-left: 0;
5339
+ margin-bottom: 20px;
5340
+ }
5341
+ .ycd-bootstrap-wrapper .list-group-item {
5342
+ position: relative;
5343
+ display: block;
5344
+ padding: 10px 15px;
5345
+ margin-bottom: -1px;
5346
+ background-color: #fff;
5347
+ border: 1px solid #ddd;
5348
+ }
5349
+ .ycd-bootstrap-wrapper .list-group-item:first-child {
5350
+ border-top-left-radius: 4px;
5351
+ border-top-right-radius: 4px;
5352
+ }
5353
+ .ycd-bootstrap-wrapper .list-group-item:last-child {
5354
+ margin-bottom: 0;
5355
+ border-bottom-right-radius: 4px;
5356
+ border-bottom-left-radius: 4px;
5357
+ }
5358
+ .ycd-bootstrap-wrapper a.list-group-item,
5359
+ .ycd-bootstrap-wrapper button.list-group-item {
5360
+ color: #555;
5361
+ }
5362
+ .ycd-bootstrap-wrapper a.list-group-item .list-group-item-heading,
5363
+ .ycd-bootstrap-wrapper button.list-group-item .list-group-item-heading {
5364
+ color: #333;
5365
+ }
5366
+ .ycd-bootstrap-wrapper a.list-group-item:hover,
5367
+ .ycd-bootstrap-wrapper button.list-group-item:hover,
5368
+ .ycd-bootstrap-wrapper a.list-group-item:focus,
5369
+ .ycd-bootstrap-wrapper button.list-group-item:focus {
5370
+ color: #555;
5371
+ text-decoration: none;
5372
+ background-color: #f5f5f5;
5373
+ }
5374
+ .ycd-bootstrap-wrapper button.list-group-item {
5375
+ width: 100%;
5376
+ text-align: left;
5377
+ }
5378
+ .ycd-bootstrap-wrapper .list-group-item.disabled,
5379
+ .ycd-bootstrap-wrapper .list-group-item.disabled:hover,
5380
+ .ycd-bootstrap-wrapper .list-group-item.disabled:focus {
5381
+ color: #777;
5382
+ cursor: not-allowed;
5383
+ background-color: #eee;
5384
+ }
5385
+ .ycd-bootstrap-wrapper .list-group-item.disabled .list-group-item-heading,
5386
+ .ycd-bootstrap-wrapper .list-group-item.disabled:hover .list-group-item-heading,
5387
+ .ycd-bootstrap-wrapper .list-group-item.disabled:focus .list-group-item-heading {
5388
+ color: inherit;
5389
+ }
5390
+ .ycd-bootstrap-wrapper .list-group-item.disabled .list-group-item-text,
5391
+ .ycd-bootstrap-wrapper .list-group-item.disabled:hover .list-group-item-text,
5392
+ .ycd-bootstrap-wrapper .list-group-item.disabled:focus .list-group-item-text {
5393
+ color: #777;
5394
+ }
5395
+ .ycd-bootstrap-wrapper .list-group-item.active,
5396
+ .ycd-bootstrap-wrapper .list-group-item.active:hover,
5397
+ .ycd-bootstrap-wrapper .list-group-item.active:focus {
5398
+ z-index: 2;
5399
+ color: #fff;
5400
+ background-color: #337ab7;
5401
+ border-color: #337ab7;
5402
+ }
5403
+ .ycd-bootstrap-wrapper .list-group-item.active .list-group-item-heading,
5404
+ .ycd-bootstrap-wrapper .list-group-item.active:hover .list-group-item-heading,
5405
+ .ycd-bootstrap-wrapper .list-group-item.active:focus .list-group-item-heading,
5406
+ .ycd-bootstrap-wrapper .list-group-item.active .list-group-item-heading > small,
5407
+ .ycd-bootstrap-wrapper .list-group-item.active:hover .list-group-item-heading > small,
5408
+ .ycd-bootstrap-wrapper .list-group-item.active:focus .list-group-item-heading > small,
5409
+ .ycd-bootstrap-wrapper .list-group-item.active .list-group-item-heading > .small,
5410
+ .ycd-bootstrap-wrapper .list-group-item.active:hover .list-group-item-heading > .small,
5411
+ .ycd-bootstrap-wrapper .list-group-item.active:focus .list-group-item-heading > .small {
5412
+ color: inherit;
5413
+ }
5414
+ .ycd-bootstrap-wrapper .list-group-item.active .list-group-item-text,
5415
+ .ycd-bootstrap-wrapper .list-group-item.active:hover .list-group-item-text,
5416
+ .ycd-bootstrap-wrapper .list-group-item.active:focus .list-group-item-text {
5417
+ color: #c7ddef;
5418
+ }
5419
+ .ycd-bootstrap-wrapper .list-group-item-success {
5420
+ color: #3c763d;
5421
+ background-color: #dff0d8;
5422
+ }
5423
+ .ycd-bootstrap-wrapper a.list-group-item-success,
5424
+ .ycd-bootstrap-wrapper button.list-group-item-success {
5425
+ color: #3c763d;
5426
+ }
5427
+ .ycd-bootstrap-wrapper a.list-group-item-success .list-group-item-heading,
5428
+ .ycd-bootstrap-wrapper button.list-group-item-success .list-group-item-heading {
5429
+ color: inherit;
5430
+ }
5431
+ .ycd-bootstrap-wrapper a.list-group-item-success:hover,
5432
+ .ycd-bootstrap-wrapper button.list-group-item-success:hover,
5433
+ .ycd-bootstrap-wrapper a.list-group-item-success:focus,
5434
+ .ycd-bootstrap-wrapper button.list-group-item-success:focus {
5435
+ color: #3c763d;
5436
+ background-color: #d0e9c6;
5437
+ }
5438
+ .ycd-bootstrap-wrapper a.list-group-item-success.active,
5439
+ .ycd-bootstrap-wrapper button.list-group-item-success.active,
5440
+ .ycd-bootstrap-wrapper a.list-group-item-success.active:hover,
5441
+ .ycd-bootstrap-wrapper button.list-group-item-success.active:hover,
5442
+ .ycd-bootstrap-wrapper a.list-group-item-success.active:focus,
5443
+ .ycd-bootstrap-wrapper button.list-group-item-success.active:focus {
5444
+ color: #fff;
5445
+ background-color: #3c763d;
5446
+ border-color: #3c763d;
5447
+ }
5448
+ .ycd-bootstrap-wrapper .list-group-item-info {
5449
+ color: #31708f;
5450
+ background-color: #d9edf7;
5451
+ }
5452
+ .ycd-bootstrap-wrapper a.list-group-item-info,
5453
+ .ycd-bootstrap-wrapper button.list-group-item-info {
5454
+ color: #31708f;
5455
+ }
5456
+ .ycd-bootstrap-wrapper a.list-group-item-info .list-group-item-heading,
5457
+ .ycd-bootstrap-wrapper button.list-group-item-info .list-group-item-heading {
5458
+ color: inherit;
5459
+ }
5460
+ .ycd-bootstrap-wrapper a.list-group-item-info:hover,
5461
+ .ycd-bootstrap-wrapper button.list-group-item-info:hover,
5462
+ .ycd-bootstrap-wrapper a.list-group-item-info:focus,
5463
+ .ycd-bootstrap-wrapper button.list-group-item-info:focus {
5464
+ color: #31708f;
5465
+ background-color: #c4e3f3;
5466
+ }
5467
+ .ycd-bootstrap-wrapper a.list-group-item-info.active,
5468
+ .ycd-bootstrap-wrapper button.list-group-item-info.active,
5469
+ .ycd-bootstrap-wrapper a.list-group-item-info.active:hover,
5470
+ .ycd-bootstrap-wrapper button.list-group-item-info.active:hover,
5471
+ .ycd-bootstrap-wrapper a.list-group-item-info.active:focus,
5472
+ .ycd-bootstrap-wrapper button.list-group-item-info.active:focus {
5473
+ color: #fff;
5474
+ background-color: #31708f;
5475
+ border-color: #31708f;
5476
+ }
5477
+ .ycd-bootstrap-wrapper .list-group-item-warning {
5478
+ color: #8a6d3b;
5479
+ background-color: #fcf8e3;
5480
+ }
5481
+ .ycd-bootstrap-wrapper a.list-group-item-warning,
5482
+ .ycd-bootstrap-wrapper button.list-group-item-warning {
5483
+ color: #8a6d3b;
5484
+ }
5485
+ .ycd-bootstrap-wrapper a.list-group-item-warning .list-group-item-heading,
5486
+ .ycd-bootstrap-wrapper button.list-group-item-warning .list-group-item-heading {
5487
+ color: inherit;
5488
+ }
5489
+ .ycd-bootstrap-wrapper a.list-group-item-warning:hover,
5490
+ .ycd-bootstrap-wrapper button.list-group-item-warning:hover,
5491
+ .ycd-bootstrap-wrapper a.list-group-item-warning:focus,
5492
+ .ycd-bootstrap-wrapper button.list-group-item-warning:focus {
5493
+ color: #8a6d3b;
5494
+ background-color: #faf2cc;
5495
+ }
5496
+ .ycd-bootstrap-wrapper a.list-group-item-warning.active,
5497
+ .ycd-bootstrap-wrapper button.list-group-item-warning.active,
5498
+ .ycd-bootstrap-wrapper a.list-group-item-warning.active:hover,
5499
+ .ycd-bootstrap-wrapper button.list-group-item-warning.active:hover,
5500
+ .ycd-bootstrap-wrapper a.list-group-item-warning.active:focus,
5501
+ .ycd-bootstrap-wrapper button.list-group-item-warning.active:focus {
5502
+ color: #fff;
5503
+ background-color: #8a6d3b;
5504
+ border-color: #8a6d3b;
5505
+ }
5506
+ .ycd-bootstrap-wrapper .list-group-item-danger {
5507
+ color: #a94442;
5508
+ background-color: #f2dede;
5509
+ }
5510
+ .ycd-bootstrap-wrapper a.list-group-item-danger,
5511
+ .ycd-bootstrap-wrapper button.list-group-item-danger {
5512
+ color: #a94442;
5513
+ }
5514
+ .ycd-bootstrap-wrapper a.list-group-item-danger .list-group-item-heading,
5515
+ .ycd-bootstrap-wrapper button.list-group-item-danger .list-group-item-heading {
5516
+ color: inherit;
5517
+ }
5518
+ .ycd-bootstrap-wrapper a.list-group-item-danger:hover,
5519
+ .ycd-bootstrap-wrapper button.list-group-item-danger:hover,
5520
+ .ycd-bootstrap-wrapper a.list-group-item-danger:focus,
5521
+ .ycd-bootstrap-wrapper button.list-group-item-danger:focus {
5522
+ color: #a94442;
5523
+ background-color: #ebcccc;
5524
+ }
5525
+ .ycd-bootstrap-wrapper a.list-group-item-danger.active,
5526
+ .ycd-bootstrap-wrapper button.list-group-item-danger.active,
5527
+ .ycd-bootstrap-wrapper a.list-group-item-danger.active:hover,
5528
+ .ycd-bootstrap-wrapper button.list-group-item-danger.active:hover,
5529
+ .ycd-bootstrap-wrapper a.list-group-item-danger.active:focus,
5530
+ .ycd-bootstrap-wrapper button.list-group-item-danger.active:focus {
5531
+ color: #fff;
5532
+ background-color: #a94442;
5533
+ border-color: #a94442;
5534
+ }
5535
+ .ycd-bootstrap-wrapper .list-group-item-heading {
5536
+ margin-top: 0;
5537
+ margin-bottom: 5px;
5538
+ }
5539
+ .ycd-bootstrap-wrapper .list-group-item-text {
5540
+ margin-bottom: 0;
5541
+ line-height: 1.3;
5542
+ }
5543
+ .ycd-bootstrap-wrapper .panel {
5544
+ margin-bottom: 20px;
5545
+ background-color: #fff;
5546
+ border: 1px solid transparent;
5547
+ border-radius: 4px;
5548
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
5549
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
5550
+ }
5551
+ .ycd-bootstrap-wrapper .panel-body {
5552
+ padding: 15px;
5553
+ }
5554
+ .ycd-bootstrap-wrapper .panel-heading {
5555
+ padding: 10px 15px;
5556
+ border-bottom: 1px solid transparent;
5557
+ border-top-left-radius: 3px;
5558
+ border-top-right-radius: 3px;
5559
+ }
5560
+ .ycd-bootstrap-wrapper .panel-heading > .dropdown .dropdown-toggle {
5561
+ color: inherit;
5562
+ }
5563
+ .ycd-bootstrap-wrapper .panel-title {
5564
+ margin-top: 0;
5565
+ margin-bottom: 0;
5566
+ font-size: 16px;
5567
+ color: inherit;
5568
+ }
5569
+ .ycd-bootstrap-wrapper .panel-title > a,
5570
+ .ycd-bootstrap-wrapper .panel-title > small,
5571
+ .ycd-bootstrap-wrapper .panel-title > .small,
5572
+ .ycd-bootstrap-wrapper .panel-title > small > a,
5573
+ .ycd-bootstrap-wrapper .panel-title > .small > a {
5574
+ color: inherit;
5575
+ }
5576
+ .ycd-bootstrap-wrapper .panel-footer {
5577
+ padding: 10px 15px;
5578
+ background-color: #f5f5f5;
5579
+ border-top: 1px solid #ddd;
5580
+ border-bottom-right-radius: 3px;
5581
+ border-bottom-left-radius: 3px;
5582
+ }
5583
+ .ycd-bootstrap-wrapper .panel > .list-group,
5584
+ .ycd-bootstrap-wrapper .panel > .panel-collapse > .list-group {
5585
+ margin-bottom: 0;
5586
+ }
5587
+ .ycd-bootstrap-wrapper .panel > .list-group .list-group-item,
5588
+ .ycd-bootstrap-wrapper .panel > .panel-collapse > .list-group .list-group-item {
5589
+ border-width: 1px 0;
5590
+ border-radius: 0;
5591
+ }
5592
+ .ycd-bootstrap-wrapper .panel > .list-group:first-child .list-group-item:first-child,
5593
+ .ycd-bootstrap-wrapper .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
5594
+ border-top: 0;
5595
+ border-top-left-radius: 3px;
5596
+ border-top-right-radius: 3px;
5597
+ }
5598
+ .ycd-bootstrap-wrapper .panel > .list-group:last-child .list-group-item:last-child,
5599
+ .ycd-bootstrap-wrapper .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
5600
+ border-bottom: 0;
5601
+ border-bottom-right-radius: 3px;
5602
+ border-bottom-left-radius: 3px;
5603
+ }
5604
+ .ycd-bootstrap-wrapper .panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
5605
+ border-top-left-radius: 0;
5606
+ border-top-right-radius: 0;
5607
+ }
5608
+ .ycd-bootstrap-wrapper .panel-heading + .list-group .list-group-item:first-child {
5609
+ border-top-width: 0;
5610
+ }
5611
+ .ycd-bootstrap-wrapper .list-group + .panel-footer {
5612
+ border-top-width: 0;
5613
+ }
5614
+ .ycd-bootstrap-wrapper .panel > .table,
5615
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table,
5616
+ .ycd-bootstrap-wrapper .panel > .panel-collapse > .table {
5617
+ margin-bottom: 0;
5618
+ }
5619
+ .ycd-bootstrap-wrapper .panel > .table caption,
5620
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table caption,
5621
+ .ycd-bootstrap-wrapper .panel > .panel-collapse > .table caption {
5622
+ padding-right: 15px;
5623
+ padding-left: 15px;
5624
+ }
5625
+ .ycd-bootstrap-wrapper .panel > .table:first-child,
5626
+ .ycd-bootstrap-wrapper .panel > .table-responsive:first-child > .table:first-child {
5627
+ border-top-left-radius: 3px;
5628
+ border-top-right-radius: 3px;
5629
+ }
5630
+ .ycd-bootstrap-wrapper .panel > .table:first-child > thead:first-child > tr:first-child,
5631
+ .ycd-bootstrap-wrapper .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
5632
+ .ycd-bootstrap-wrapper .panel > .table:first-child > tbody:first-child > tr:first-child,
5633
+ .ycd-bootstrap-wrapper .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
5634
+ border-top-left-radius: 3px;
5635
+ border-top-right-radius: 3px;
5636
+ }
5637
+ .ycd-bootstrap-wrapper .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
5638
+ .ycd-bootstrap-wrapper .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
5639
+ .ycd-bootstrap-wrapper .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
5640
+ .ycd-bootstrap-wrapper .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
5641
+ .ycd-bootstrap-wrapper .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
5642
+ .ycd-bootstrap-wrapper .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
5643
+ .ycd-bootstrap-wrapper .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
5644
+ .ycd-bootstrap-wrapper .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
5645
+ border-top-left-radius: 3px;
5646
+ }
5647
+ .ycd-bootstrap-wrapper .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
5648
+ .ycd-bootstrap-wrapper .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
5649
+ .ycd-bootstrap-wrapper .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
5650
+ .ycd-bootstrap-wrapper .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
5651
+ .ycd-bootstrap-wrapper .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
5652
+ .ycd-bootstrap-wrapper .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
5653
+ .ycd-bootstrap-wrapper .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
5654
+ .ycd-bootstrap-wrapper .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
5655
+ border-top-right-radius: 3px;
5656
+ }
5657
+ .ycd-bootstrap-wrapper .panel > .table:last-child,
5658
+ .ycd-bootstrap-wrapper .panel > .table-responsive:last-child > .table:last-child {
5659
+ border-bottom-right-radius: 3px;
5660
+ border-bottom-left-radius: 3px;
5661
+ }
5662
+ .ycd-bootstrap-wrapper .panel > .table:last-child > tbody:last-child > tr:last-child,
5663
+ .ycd-bootstrap-wrapper .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
5664
+ .ycd-bootstrap-wrapper .panel > .table:last-child > tfoot:last-child > tr:last-child,
5665
+ .ycd-bootstrap-wrapper .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
5666
+ border-bottom-right-radius: 3px;
5667
+ border-bottom-left-radius: 3px;
5668
+ }
5669
+ .ycd-bootstrap-wrapper .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
5670
+ .ycd-bootstrap-wrapper .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
5671
+ .ycd-bootstrap-wrapper .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
5672
+ .ycd-bootstrap-wrapper .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
5673
+ .ycd-bootstrap-wrapper .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
5674
+ .ycd-bootstrap-wrapper .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
5675
+ .ycd-bootstrap-wrapper .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
5676
+ .ycd-bootstrap-wrapper .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
5677
+ border-bottom-left-radius: 3px;
5678
+ }
5679
+ .ycd-bootstrap-wrapper .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
5680
+ .ycd-bootstrap-wrapper .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
5681
+ .ycd-bootstrap-wrapper .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
5682
+ .ycd-bootstrap-wrapper .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
5683
+ .ycd-bootstrap-wrapper .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
5684
+ .ycd-bootstrap-wrapper .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
5685
+ .ycd-bootstrap-wrapper .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
5686
+ .ycd-bootstrap-wrapper .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
5687
+ border-bottom-right-radius: 3px;
5688
+ }
5689
+ .ycd-bootstrap-wrapper .panel > .panel-body + .table,
5690
+ .ycd-bootstrap-wrapper .panel > .panel-body + .table-responsive,
5691
+ .ycd-bootstrap-wrapper .panel > .table + .panel-body,
5692
+ .ycd-bootstrap-wrapper .panel > .table-responsive + .panel-body {
5693
+ border-top: 1px solid #ddd;
5694
+ }
5695
+ .ycd-bootstrap-wrapper .panel > .table > tbody:first-child > tr:first-child th,
5696
+ .ycd-bootstrap-wrapper .panel > .table > tbody:first-child > tr:first-child td {
5697
+ border-top: 0;
5698
+ }
5699
+ .ycd-bootstrap-wrapper .panel > .table-bordered,
5700
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table-bordered {
5701
+ border: 0;
5702
+ }
5703
+ .ycd-bootstrap-wrapper .panel > .table-bordered > thead > tr > th:first-child,
5704
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
5705
+ .ycd-bootstrap-wrapper .panel > .table-bordered > tbody > tr > th:first-child,
5706
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
5707
+ .ycd-bootstrap-wrapper .panel > .table-bordered > tfoot > tr > th:first-child,
5708
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
5709
+ .ycd-bootstrap-wrapper .panel > .table-bordered > thead > tr > td:first-child,
5710
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
5711
+ .ycd-bootstrap-wrapper .panel > .table-bordered > tbody > tr > td:first-child,
5712
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
5713
+ .ycd-bootstrap-wrapper .panel > .table-bordered > tfoot > tr > td:first-child,
5714
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
5715
+ border-left: 0;
5716
+ }
5717
+ .ycd-bootstrap-wrapper .panel > .table-bordered > thead > tr > th:last-child,
5718
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
5719
+ .ycd-bootstrap-wrapper .panel > .table-bordered > tbody > tr > th:last-child,
5720
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
5721
+ .ycd-bootstrap-wrapper .panel > .table-bordered > tfoot > tr > th:last-child,
5722
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
5723
+ .ycd-bootstrap-wrapper .panel > .table-bordered > thead > tr > td:last-child,
5724
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
5725
+ .ycd-bootstrap-wrapper .panel > .table-bordered > tbody > tr > td:last-child,
5726
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
5727
+ .ycd-bootstrap-wrapper .panel > .table-bordered > tfoot > tr > td:last-child,
5728
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
5729
+ border-right: 0;
5730
+ }
5731
+ .ycd-bootstrap-wrapper .panel > .table-bordered > thead > tr:first-child > td,
5732
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
5733
+ .ycd-bootstrap-wrapper .panel > .table-bordered > tbody > tr:first-child > td,
5734
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
5735
+ .ycd-bootstrap-wrapper .panel > .table-bordered > thead > tr:first-child > th,
5736
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
5737
+ .ycd-bootstrap-wrapper .panel > .table-bordered > tbody > tr:first-child > th,
5738
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
5739
+ border-bottom: 0;
5740
+ }
5741
+ .ycd-bootstrap-wrapper .panel > .table-bordered > tbody > tr:last-child > td,
5742
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
5743
+ .ycd-bootstrap-wrapper .panel > .table-bordered > tfoot > tr:last-child > td,
5744
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
5745
+ .ycd-bootstrap-wrapper .panel > .table-bordered > tbody > tr:last-child > th,
5746
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
5747
+ .ycd-bootstrap-wrapper .panel > .table-bordered > tfoot > tr:last-child > th,
5748
+ .ycd-bootstrap-wrapper .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
5749
+ border-bottom: 0;
5750
+ }
5751
+ .ycd-bootstrap-wrapper .panel > .table-responsive {
5752
+ margin-bottom: 0;
5753
+ border: 0;
5754
+ }
5755
+ .ycd-bootstrap-wrapper .panel-group {
5756
+ margin-bottom: 20px;
5757
+ }
5758
+ .ycd-bootstrap-wrapper .panel-group .panel {
5759
+ margin-bottom: 0;
5760
+ border-radius: 4px;
5761
+ }
5762
+ .ycd-bootstrap-wrapper .panel-group .panel + .panel {
5763
+ margin-top: 5px;
5764
+ }
5765
+ .ycd-bootstrap-wrapper .panel-group .panel-heading {
5766
+ border-bottom: 0;
5767
+ }
5768
+ .ycd-bootstrap-wrapper .panel-group .panel-heading + .panel-collapse > .panel-body,
5769
+ .ycd-bootstrap-wrapper .panel-group .panel-heading + .panel-collapse > .list-group {
5770
+ border-top: 1px solid #ddd;
5771
+ }
5772
+ .ycd-bootstrap-wrapper .panel-group .panel-footer {
5773
+ border-top: 0;
5774
+ }
5775
+ .ycd-bootstrap-wrapper .panel-group .panel-footer + .panel-collapse .panel-body {
5776
+ border-bottom: 1px solid #ddd;
5777
+ }
5778
+ .ycd-bootstrap-wrapper .panel-default {
5779
+ border-color: #ddd;
5780
+ }
5781
+ .ycd-bootstrap-wrapper .panel-default > .panel-heading {
5782
+ color: #333;
5783
+ background-color: #f5f5f5;
5784
+ border-color: #ddd;
5785
+ }
5786
+ .ycd-bootstrap-wrapper .panel-default > .panel-heading + .panel-collapse > .panel-body {
5787
+ border-top-color: #ddd;
5788
+ }
5789
+ .ycd-bootstrap-wrapper .panel-default > .panel-heading .badge {
5790
+ color: #f5f5f5;
5791
+ background-color: #333;
5792
+ }
5793
+ .ycd-bootstrap-wrapper .panel-default > .panel-footer + .panel-collapse > .panel-body {
5794
+ border-bottom-color: #ddd;
5795
+ }
5796
+ .ycd-bootstrap-wrapper .panel-primary {
5797
+ border-color: #337ab7;
5798
+ }
5799
+ .ycd-bootstrap-wrapper .panel-primary > .panel-heading {
5800
+ color: #fff;
5801
+ background-color: #337ab7;
5802
+ border-color: #337ab7;
5803
+ }
5804
+ .ycd-bootstrap-wrapper .panel-primary > .panel-heading + .panel-collapse > .panel-body {
5805
+ border-top-color: #337ab7;
5806
+ }
5807
+ .ycd-bootstrap-wrapper .panel-primary > .panel-heading .badge {
5808
+ color: #337ab7;
5809
+ background-color: #fff;
5810
+ }
5811
+ .ycd-bootstrap-wrapper .panel-primary > .panel-footer + .panel-collapse > .panel-body {
5812
+ border-bottom-color: #337ab7;
5813
+ }
5814
+ .ycd-bootstrap-wrapper .panel-success {
5815
+ border-color: #d6e9c6;
5816
+ }
5817
+ .ycd-bootstrap-wrapper .panel-success > .panel-heading {
5818
+ color: #3c763d;
5819
+ background-color: #dff0d8;
5820
+ border-color: #d6e9c6;
5821
+ }
5822
+ .ycd-bootstrap-wrapper .panel-success > .panel-heading + .panel-collapse > .panel-body {
5823
+ border-top-color: #d6e9c6;
5824
+ }
5825
+ .ycd-bootstrap-wrapper .panel-success > .panel-heading .badge {
5826
+ color: #dff0d8;
5827
+ background-color: #3c763d;
5828
+ }
5829
+ .ycd-bootstrap-wrapper .panel-success > .panel-footer + .panel-collapse > .panel-body {
5830
+ border-bottom-color: #d6e9c6;
5831
+ }
5832
+ .ycd-bootstrap-wrapper .panel-info {
5833
+ border-color: #bce8f1;
5834
+ }
5835
+ .ycd-bootstrap-wrapper .panel-info > .panel-heading {
5836
+ color: #31708f;
5837
+ background-color: #d9edf7;
5838
+ border-color: #bce8f1;
5839
+ }
5840
+ .ycd-bootstrap-wrapper .panel-info > .panel-heading + .panel-collapse > .panel-body {
5841
+ border-top-color: #bce8f1;
5842
+ }
5843
+ .ycd-bootstrap-wrapper .panel-info > .panel-heading .badge {
5844
+ color: #d9edf7;
5845
+ background-color: #31708f;
5846
+ }
5847
+ .ycd-bootstrap-wrapper .panel-info > .panel-footer + .panel-collapse > .panel-body {
5848
+ border-bottom-color: #bce8f1;
5849
+ }
5850
+ .ycd-bootstrap-wrapper .panel-warning {
5851
+ border-color: #faebcc;
5852
+ }
5853
+ .ycd-bootstrap-wrapper .panel-warning > .panel-heading {
5854
+ color: #8a6d3b;
5855
+ background-color: #fcf8e3;
5856
+ border-color: #faebcc;
5857
+ }
5858
+ .ycd-bootstrap-wrapper .panel-warning > .panel-heading + .panel-collapse > .panel-body {
5859
+ border-top-color: #faebcc;
5860
+ }
5861
+ .ycd-bootstrap-wrapper .panel-warning > .panel-heading .badge {
5862
+ color: #fcf8e3;
5863
+ background-color: #8a6d3b;
5864
+ }
5865
+ .ycd-bootstrap-wrapper .panel-warning > .panel-footer + .panel-collapse > .panel-body {
5866
+ border-bottom-color: #faebcc;
5867
+ }
5868
+ .ycd-bootstrap-wrapper .panel-danger {
5869
+ border-color: #ebccd1;
5870
+ }
5871
+ .ycd-bootstrap-wrapper .panel-danger > .panel-heading {
5872
+ color: #a94442;
5873
+ background-color: #f2dede;
5874
+ border-color: #ebccd1;
5875
+ }
5876
+ .ycd-bootstrap-wrapper .panel-danger > .panel-heading + .panel-collapse > .panel-body {
5877
+ border-top-color: #ebccd1;
5878
+ }
5879
+ .ycd-bootstrap-wrapper .panel-danger > .panel-heading .badge {
5880
+ color: #f2dede;
5881
+ background-color: #a94442;
5882
+ }
5883
+ .ycd-bootstrap-wrapper .panel-danger > .panel-footer + .panel-collapse > .panel-body {
5884
+ border-bottom-color: #ebccd1;
5885
+ }
5886
+ .ycd-bootstrap-wrapper .embed-responsive {
5887
+ position: relative;
5888
+ display: block;
5889
+ height: 0;
5890
+ padding: 0;
5891
+ overflow: hidden;
5892
+ }
5893
+ .ycd-bootstrap-wrapper .embed-responsive .embed-responsive-item,
5894
+ .ycd-bootstrap-wrapper .embed-responsive iframe,
5895
+ .ycd-bootstrap-wrapper .embed-responsive embed,
5896
+ .ycd-bootstrap-wrapper .embed-responsive object,
5897
+ .ycd-bootstrap-wrapper .embed-responsive video {
5898
+ position: absolute;
5899
+ top: 0;
5900
+ bottom: 0;
5901
+ left: 0;
5902
+ width: 100%;
5903
+ height: 100%;
5904
+ border: 0;
5905
+ }
5906
+ .ycd-bootstrap-wrapper .embed-responsive-16by9 {
5907
+ padding-bottom: 56.25%;
5908
+ }
5909
+ .ycd-bootstrap-wrapper .embed-responsive-4by3 {
5910
+ padding-bottom: 75%;
5911
+ }
5912
+ .ycd-bootstrap-wrapper .well {
5913
+ min-height: 20px;
5914
+ padding: 19px;
5915
+ margin-bottom: 20px;
5916
+ background-color: #f5f5f5;
5917
+ border: 1px solid #e3e3e3;
5918
+ border-radius: 4px;
5919
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
5920
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
5921
+ }
5922
+ .ycd-bootstrap-wrapper .well blockquote {
5923
+ border-color: #ddd;
5924
+ border-color: rgba(0, 0, 0, 0.15);
5925
+ }
5926
+ .ycd-bootstrap-wrapper .well-lg {
5927
+ padding: 24px;
5928
+ border-radius: 6px;
5929
+ }
5930
+ .ycd-bootstrap-wrapper .well-sm {
5931
+ padding: 9px;
5932
+ border-radius: 3px;
5933
+ }
5934
+ .ycd-bootstrap-wrapper .close {
5935
+ float: right;
5936
+ font-size: 21px;
5937
+ font-weight: bold;
5938
+ line-height: 1;
5939
+ color: #000;
5940
+ text-shadow: 0 1px 0 #fff;
5941
+ filter: alpha(opacity=20);
5942
+ opacity: .2;
5943
+ }
5944
+ .ycd-bootstrap-wrapper .close:hover,
5945
+ .ycd-bootstrap-wrapper .close:focus {
5946
+ color: #000;
5947
+ text-decoration: none;
5948
+ cursor: pointer;
5949
+ filter: alpha(opacity=50);
5950
+ opacity: .5;
5951
+ }
5952
+ .ycd-bootstrap-wrapper button.close {
5953
+ -webkit-appearance: none;
5954
+ padding: 0;
5955
+ cursor: pointer;
5956
+ background: transparent;
5957
+ border: 0;
5958
+ }
5959
+ .ycd-bootstrap-wrapper .modal-open {
5960
+ overflow: hidden;
5961
+ }
5962
+ .ycd-bootstrap-wrapper .modal {
5963
+ position: fixed;
5964
+ top: 0;
5965
+ right: 0;
5966
+ bottom: 0;
5967
+ left: 0;
5968
+ z-index: 1050;
5969
+ display: none;
5970
+ overflow: hidden;
5971
+ -webkit-overflow-scrolling: touch;
5972
+ outline: 0;
5973
+ }
5974
+ .ycd-bootstrap-wrapper .modal.fade .modal-dialog {
5975
+ -webkit-transition: -webkit-transform 0.3s ease-out;
5976
+ -o-transition: -o-transform 0.3s ease-out;
5977
+ transition: transform 0.3s ease-out;
5978
+ -webkit-transform: translate(0, -25%);
5979
+ -ms-transform: translate(0, -25%);
5980
+ -o-transform: translate(0, -25%);
5981
+ transform: translate(0, -25%);
5982
+ }
5983
+ .ycd-bootstrap-wrapper .modal.in .modal-dialog {
5984
+ -webkit-transform: translate(0, 0);
5985
+ -ms-transform: translate(0, 0);
5986
+ -o-transform: translate(0, 0);
5987
+ transform: translate(0, 0);
5988
+ }
5989
+ .ycd-bootstrap-wrapper .modal-open .modal {
5990
+ overflow-x: hidden;
5991
+ overflow-y: auto;
5992
+ }
5993
+ .ycd-bootstrap-wrapper .modal-dialog {
5994
+ position: relative;
5995
+ width: auto;
5996
+ margin: 10px;
5997
+ }
5998
+ .ycd-bootstrap-wrapper .modal-content {
5999
+ position: relative;
6000
+ background-color: #fff;
6001
+ -webkit-background-clip: padding-box;
6002
+ background-clip: padding-box;
6003
+ border: 1px solid #999;
6004
+ border: 1px solid rgba(0, 0, 0, 0.2);
6005
+ border-radius: 6px;
6006
+ outline: 0;
6007
+ -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
6008
+ box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
6009
+ }
6010
+ .ycd-bootstrap-wrapper .modal-backdrop {
6011
+ position: fixed;
6012
+ top: 0;
6013
+ right: 0;
6014
+ bottom: 0;
6015
+ left: 0;
6016
+ z-index: 1040;
6017
+ background-color: #000;
6018
+ }
6019
+ .ycd-bootstrap-wrapper .modal-backdrop.fade {
6020
+ filter: alpha(opacity=0);
6021
+ opacity: 0;
6022
+ }
6023
+ .ycd-bootstrap-wrapper .modal-backdrop.in {
6024
+ filter: alpha(opacity=50);
6025
+ opacity: .5;
6026
+ }
6027
+ .ycd-bootstrap-wrapper .modal-header {
6028
+ padding: 15px;
6029
+ border-bottom: 1px solid #e5e5e5;
6030
+ }
6031
+ .ycd-bootstrap-wrapper .modal-header .close {
6032
+ margin-top: -2px;
6033
+ }
6034
+ .ycd-bootstrap-wrapper .modal-title {
6035
+ margin: 0;
6036
+ line-height: 1.42857143;
6037
+ }
6038
+ .ycd-bootstrap-wrapper .modal-body {
6039
+ position: relative;
6040
+ padding: 15px;
6041
+ }
6042
+ .ycd-bootstrap-wrapper .modal-footer {
6043
+ padding: 15px;
6044
+ text-align: right;
6045
+ border-top: 1px solid #e5e5e5;
6046
+ }
6047
+ .ycd-bootstrap-wrapper .modal-footer .btn + .btn {
6048
+ margin-bottom: 0;
6049
+ margin-left: 5px;
6050
+ }
6051
+ .ycd-bootstrap-wrapper .modal-footer .btn-group .btn + .btn {
6052
+ margin-left: -1px;
6053
+ }
6054
+ .ycd-bootstrap-wrapper .modal-footer .btn-block + .btn-block {
6055
+ margin-left: 0;
6056
+ }
6057
+ .ycd-bootstrap-wrapper .modal-scrollbar-measure {
6058
+ position: absolute;
6059
+ top: -9999px;
6060
+ width: 50px;
6061
+ height: 50px;
6062
+ overflow: scroll;
6063
+ }
6064
+ @media (min-width: 768px) {
6065
+ .ycd-bootstrap-wrapper .modal-dialog {
6066
+ width: 600px;
6067
+ margin: 30px auto;
6068
+ }
6069
+ .ycd-bootstrap-wrapper .modal-content {
6070
+ -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
6071
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
6072
+ }
6073
+ .ycd-bootstrap-wrapper .modal-sm {
6074
+ width: 300px;
6075
+ }
6076
+ }
6077
+ @media (min-width: 992px) {
6078
+ .ycd-bootstrap-wrapper .modal-lg {
6079
+ width: 900px;
6080
+ }
6081
+ }
6082
+ .ycd-bootstrap-wrapper .tooltip {
6083
+ position: absolute;
6084
+ z-index: 1070;
6085
+ display: block;
6086
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
6087
+ font-size: 12px;
6088
+ font-style: normal;
6089
+ font-weight: normal;
6090
+ line-height: 1.42857143;
6091
+ text-align: left;
6092
+ text-align: start;
6093
+ text-decoration: none;
6094
+ text-shadow: none;
6095
+ text-transform: none;
6096
+ letter-spacing: normal;
6097
+ word-break: normal;
6098
+ word-spacing: normal;
6099
+ word-wrap: normal;
6100
+ white-space: normal;
6101
+ filter: alpha(opacity=0);
6102
+ opacity: 0;
6103
+ line-break: auto;
6104
+ }
6105
+ .ycd-bootstrap-wrapper .tooltip.in {
6106
+ filter: alpha(opacity=90);
6107
+ opacity: .9;
6108
+ }
6109
+ .ycd-bootstrap-wrapper .tooltip.top {
6110
+ padding: 5px 0;
6111
+ margin-top: -3px;
6112
+ }
6113
+ .ycd-bootstrap-wrapper .tooltip.right {
6114
+ padding: 0 5px;
6115
+ margin-left: 3px;
6116
+ }
6117
+ .ycd-bootstrap-wrapper .tooltip.bottom {
6118
+ padding: 5px 0;
6119
+ margin-top: 3px;
6120
+ }
6121
+ .ycd-bootstrap-wrapper .tooltip.left {
6122
+ padding: 0 5px;
6123
+ margin-left: -3px;
6124
+ }
6125
+ .ycd-bootstrap-wrapper .tooltip-inner {
6126
+ max-width: 200px;
6127
+ padding: 3px 8px;
6128
+ color: #fff;
6129
+ text-align: center;
6130
+ background-color: #000;
6131
+ border-radius: 4px;
6132
+ }
6133
+ .ycd-bootstrap-wrapper .tooltip-arrow {
6134
+ position: absolute;
6135
+ width: 0;
6136
+ height: 0;
6137
+ border-color: transparent;
6138
+ border-style: solid;
6139
+ }
6140
+ .ycd-bootstrap-wrapper .tooltip.top .tooltip-arrow {
6141
+ bottom: 0;
6142
+ left: 50%;
6143
+ margin-left: -5px;
6144
+ border-width: 5px 5px 0;
6145
+ border-top-color: #000;
6146
+ }
6147
+ .ycd-bootstrap-wrapper .tooltip.top-left .tooltip-arrow {
6148
+ right: 5px;
6149
+ bottom: 0;
6150
+ margin-bottom: -5px;
6151
+ border-width: 5px 5px 0;
6152
+ border-top-color: #000;
6153
+ }
6154
+ .ycd-bootstrap-wrapper .tooltip.top-right .tooltip-arrow {
6155
+ bottom: 0;
6156
+ left: 5px;
6157
+ margin-bottom: -5px;
6158
+ border-width: 5px 5px 0;
6159
+ border-top-color: #000;
6160
+ }
6161
+ .ycd-bootstrap-wrapper .tooltip.right .tooltip-arrow {
6162
+ top: 50%;
6163
+ left: 0;
6164
+ margin-top: -5px;
6165
+ border-width: 5px 5px 5px 0;
6166
+ border-right-color: #000;
6167
+ }
6168
+ .ycd-bootstrap-wrapper .tooltip.left .tooltip-arrow {
6169
+ top: 50%;
6170
+ right: 0;
6171
+ margin-top: -5px;
6172
+ border-width: 5px 0 5px 5px;
6173
+ border-left-color: #000;
6174
+ }
6175
+ .ycd-bootstrap-wrapper .tooltip.bottom .tooltip-arrow {
6176
+ top: 0;
6177
+ left: 50%;
6178
+ margin-left: -5px;
6179
+ border-width: 0 5px 5px;
6180
+ border-bottom-color: #000;
6181
+ }
6182
+ .ycd-bootstrap-wrapper .tooltip.bottom-left .tooltip-arrow {
6183
+ top: 0;
6184
+ right: 5px;
6185
+ margin-top: -5px;
6186
+ border-width: 0 5px 5px;
6187
+ border-bottom-color: #000;
6188
+ }
6189
+ .ycd-bootstrap-wrapper .tooltip.bottom-right .tooltip-arrow {
6190
+ top: 0;
6191
+ left: 5px;
6192
+ margin-top: -5px;
6193
+ border-width: 0 5px 5px;
6194
+ border-bottom-color: #000;
6195
+ }
6196
+ .ycd-bootstrap-wrapper .popover {
6197
+ position: absolute;
6198
+ top: 0;
6199
+ left: 0;
6200
+ z-index: 1060;
6201
+ display: none;
6202
+ max-width: 276px;
6203
+ padding: 1px;
6204
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
6205
+ font-size: 14px;
6206
+ font-style: normal;
6207
+ font-weight: normal;
6208
+ line-height: 1.42857143;
6209
+ text-align: left;
6210
+ text-align: start;
6211
+ text-decoration: none;
6212
+ text-shadow: none;
6213
+ text-transform: none;
6214
+ letter-spacing: normal;
6215
+ word-break: normal;
6216
+ word-spacing: normal;
6217
+ word-wrap: normal;
6218
+ white-space: normal;
6219
+ background-color: #fff;
6220
+ -webkit-background-clip: padding-box;
6221
+ background-clip: padding-box;
6222
+ border: 1px solid #ccc;
6223
+ border: 1px solid rgba(0, 0, 0, 0.2);
6224
+ border-radius: 6px;
6225
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
6226
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
6227
+ line-break: auto;
6228
+ }
6229
+ .ycd-bootstrap-wrapper .popover.top {
6230
+ margin-top: -10px;
6231
+ }
6232
+ .ycd-bootstrap-wrapper .popover.right {
6233
+ margin-left: 10px;
6234
+ }
6235
+ .ycd-bootstrap-wrapper .popover.bottom {
6236
+ margin-top: 10px;
6237
+ }
6238
+ .ycd-bootstrap-wrapper .popover.left {
6239
+ margin-left: -10px;
6240
+ }
6241
+ .ycd-bootstrap-wrapper .popover-title {
6242
+ padding: 8px 14px;
6243
+ margin: 0;
6244
+ font-size: 14px;
6245
+ background-color: #f7f7f7;
6246
+ border-bottom: 1px solid #ebebeb;
6247
+ border-radius: 5px 5px 0 0;
6248
+ }
6249
+ .ycd-bootstrap-wrapper .popover-content {
6250
+ padding: 9px 14px;
6251
+ }
6252
+ .ycd-bootstrap-wrapper .popover > .arrow,
6253
+ .ycd-bootstrap-wrapper .popover > .arrow:after {
6254
+ position: absolute;
6255
+ display: block;
6256
+ width: 0;
6257
+ height: 0;
6258
+ border-color: transparent;
6259
+ border-style: solid;
6260
+ }
6261
+ .ycd-bootstrap-wrapper .popover > .arrow {
6262
+ border-width: 11px;
6263
+ }
6264
+ .ycd-bootstrap-wrapper .popover > .arrow:after {
6265
+ content: "";
6266
+ border-width: 10px;
6267
+ }
6268
+ .ycd-bootstrap-wrapper .popover.top > .arrow {
6269
+ bottom: -11px;
6270
+ left: 50%;
6271
+ margin-left: -11px;
6272
+ border-top-color: #999;
6273
+ border-top-color: rgba(0, 0, 0, 0.25);
6274
+ border-bottom-width: 0;
6275
+ }
6276
+ .ycd-bootstrap-wrapper .popover.top > .arrow:after {
6277
+ bottom: 1px;
6278
+ margin-left: -10px;
6279
+ content: " ";
6280
+ border-top-color: #fff;
6281
+ border-bottom-width: 0;
6282
+ }
6283
+ .ycd-bootstrap-wrapper .popover.right > .arrow {
6284
+ top: 50%;
6285
+ left: -11px;
6286
+ margin-top: -11px;
6287
+ border-right-color: #999;
6288
+ border-right-color: rgba(0, 0, 0, 0.25);
6289
+ border-left-width: 0;
6290
+ }
6291
+ .ycd-bootstrap-wrapper .popover.right > .arrow:after {
6292
+ bottom: -10px;
6293
+ left: 1px;
6294
+ content: " ";
6295
+ border-right-color: #fff;
6296
+ border-left-width: 0;
6297
+ }
6298
+ .ycd-bootstrap-wrapper .popover.bottom > .arrow {
6299
+ top: -11px;
6300
+ left: 50%;
6301
+ margin-left: -11px;
6302
+ border-top-width: 0;
6303
+ border-bottom-color: #999;
6304
+ border-bottom-color: rgba(0, 0, 0, 0.25);
6305
+ }
6306
+ .ycd-bootstrap-wrapper .popover.bottom > .arrow:after {
6307
+ top: 1px;
6308
+ margin-left: -10px;
6309
+ content: " ";
6310
+ border-top-width: 0;
6311
+ border-bottom-color: #fff;
6312
+ }
6313
+ .ycd-bootstrap-wrapper .popover.left > .arrow {
6314
+ top: 50%;
6315
+ right: -11px;
6316
+ margin-top: -11px;
6317
+ border-right-width: 0;
6318
+ border-left-color: #999;
6319
+ border-left-color: rgba(0, 0, 0, 0.25);
6320
+ }
6321
+ .ycd-bootstrap-wrapper .popover.left > .arrow:after {
6322
+ right: 1px;
6323
+ bottom: -10px;
6324
+ content: " ";
6325
+ border-right-width: 0;
6326
+ border-left-color: #fff;
6327
+ }
6328
+ .ycd-bootstrap-wrapper .carousel {
6329
+ position: relative;
6330
+ }
6331
+ .ycd-bootstrap-wrapper .carousel-inner {
6332
+ position: relative;
6333
+ width: 100%;
6334
+ overflow: hidden;
6335
+ }
6336
+ .ycd-bootstrap-wrapper .carousel-inner > .item {
6337
+ position: relative;
6338
+ display: none;
6339
+ -webkit-transition: 0.6s ease-in-out left;
6340
+ -o-transition: 0.6s ease-in-out left;
6341
+ transition: 0.6s ease-in-out left;
6342
+ }
6343
+ .ycd-bootstrap-wrapper .carousel-inner > .item > img,
6344
+ .ycd-bootstrap-wrapper .carousel-inner > .item > a > img {
6345
+ line-height: 1;
6346
+ }
6347
+ @media all and (transform-3d), (-webkit-transform-3d) {
6348
+ .ycd-bootstrap-wrapper .carousel-inner > .item {
6349
+ -webkit-transition: -webkit-transform 0.6s ease-in-out;
6350
+ -o-transition: -o-transform 0.6s ease-in-out;
6351
+ transition: transform 0.6s ease-in-out;
6352
+ -webkit-backface-visibility: hidden;
6353
+ backface-visibility: hidden;
6354
+ -webkit-perspective: 1000px;
6355
+ perspective: 1000px;
6356
+ }
6357
+ .ycd-bootstrap-wrapper .carousel-inner > .item.next,
6358
+ .ycd-bootstrap-wrapper .carousel-inner > .item.active.right {
6359
+ left: 0;
6360
+ -webkit-transform: translate3d(100%, 0, 0);
6361
+ transform: translate3d(100%, 0, 0);
6362
+ }
6363
+ .ycd-bootstrap-wrapper .carousel-inner > .item.prev,
6364
+ .ycd-bootstrap-wrapper .carousel-inner > .item.active.left {
6365
+ left: 0;
6366
+ -webkit-transform: translate3d(-100%, 0, 0);
6367
+ transform: translate3d(-100%, 0, 0);
6368
+ }
6369
+ .ycd-bootstrap-wrapper .carousel-inner > .item.next.left,
6370
+ .ycd-bootstrap-wrapper .carousel-inner > .item.prev.right,
6371
+ .ycd-bootstrap-wrapper .carousel-inner > .item.active {
6372
+ left: 0;
6373
+ -webkit-transform: translate3d(0, 0, 0);
6374
+ transform: translate3d(0, 0, 0);
6375
+ }
6376
+ }
6377
+ .ycd-bootstrap-wrapper .carousel-inner > .active,
6378
+ .ycd-bootstrap-wrapper .carousel-inner > .next,
6379
+ .ycd-bootstrap-wrapper .carousel-inner > .prev {
6380
+ display: block;
6381
+ }
6382
+ .ycd-bootstrap-wrapper .carousel-inner > .active {
6383
+ left: 0;
6384
+ }
6385
+ .ycd-bootstrap-wrapper .carousel-inner > .next,
6386
+ .ycd-bootstrap-wrapper .carousel-inner > .prev {
6387
+ position: absolute;
6388
+ top: 0;
6389
+ width: 100%;
6390
+ }
6391
+ .ycd-bootstrap-wrapper .carousel-inner > .next {
6392
+ left: 100%;
6393
+ }
6394
+ .ycd-bootstrap-wrapper .carousel-inner > .prev {
6395
+ left: -100%;
6396
+ }
6397
+ .ycd-bootstrap-wrapper .carousel-inner > .next.left,
6398
+ .ycd-bootstrap-wrapper .carousel-inner > .prev.right {
6399
+ left: 0;
6400
+ }
6401
+ .ycd-bootstrap-wrapper .carousel-inner > .active.left {
6402
+ left: -100%;
6403
+ }
6404
+ .ycd-bootstrap-wrapper .carousel-inner > .active.right {
6405
+ left: 100%;
6406
+ }
6407
+ .ycd-bootstrap-wrapper .carousel-control {
6408
+ position: absolute;
6409
+ top: 0;
6410
+ bottom: 0;
6411
+ left: 0;
6412
+ width: 15%;
6413
+ font-size: 20px;
6414
+ color: #fff;
6415
+ text-align: center;
6416
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
6417
+ background-color: rgba(0, 0, 0, 0);
6418
+ filter: alpha(opacity=50);
6419
+ opacity: .5;
6420
+ }
6421
+ .ycd-bootstrap-wrapper .carousel-control.left {
6422
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
6423
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
6424
+ background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001)));
6425
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
6426
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
6427
+ background-repeat: repeat-x;
6428
+ }
6429
+ .ycd-bootstrap-wrapper .carousel-control.right {
6430
+ right: 0;
6431
+ left: auto;
6432
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
6433
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
6434
+ background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5)));
6435
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
6436
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
6437
+ background-repeat: repeat-x;
6438
+ }
6439
+ .ycd-bootstrap-wrapper .carousel-control:hover,
6440
+ .ycd-bootstrap-wrapper .carousel-control:focus {
6441
+ color: #fff;
6442
+ text-decoration: none;
6443
+ filter: alpha(opacity=90);
6444
+ outline: 0;
6445
+ opacity: .9;
6446
+ }
6447
+ .ycd-bootstrap-wrapper .carousel-control .icon-prev,
6448
+ .ycd-bootstrap-wrapper .carousel-control .icon-next,
6449
+ .ycd-bootstrap-wrapper .carousel-control .glyphicon-chevron-left,
6450
+ .ycd-bootstrap-wrapper .carousel-control .glyphicon-chevron-right {
6451
+ position: absolute;
6452
+ top: 50%;
6453
+ z-index: 5;
6454
+ display: inline-block;
6455
+ margin-top: -10px;
6456
+ }
6457
+ .ycd-bootstrap-wrapper .carousel-control .icon-prev,
6458
+ .ycd-bootstrap-wrapper .carousel-control .glyphicon-chevron-left {
6459
+ left: 50%;
6460
+ margin-left: -10px;
6461
+ }
6462
+ .ycd-bootstrap-wrapper .carousel-control .icon-next,
6463
+ .ycd-bootstrap-wrapper .carousel-control .glyphicon-chevron-right {
6464
+ right: 50%;
6465
+ margin-right: -10px;
6466
+ }
6467
+ .ycd-bootstrap-wrapper .carousel-control .icon-prev,
6468
+ .ycd-bootstrap-wrapper .carousel-control .icon-next {
6469
+ width: 20px;
6470
+ height: 20px;
6471
+ font-family: serif;
6472
+ line-height: 1;
6473
+ }
6474
+ .ycd-bootstrap-wrapper .carousel-control .icon-prev:before {
6475
+ content: '\2039';
6476
+ }
6477
+ .ycd-bootstrap-wrapper .carousel-control .icon-next:before {
6478
+ content: '\203a';
6479
+ }
6480
+ .ycd-bootstrap-wrapper .carousel-indicators {
6481
+ position: absolute;
6482
+ bottom: 10px;
6483
+ left: 50%;
6484
+ z-index: 15;
6485
+ width: 60%;
6486
+ padding-left: 0;
6487
+ margin-left: -30%;
6488
+ text-align: center;
6489
+ list-style: none;
6490
+ }
6491
+ .ycd-bootstrap-wrapper .carousel-indicators li {
6492
+ display: inline-block;
6493
+ width: 10px;
6494
+ height: 10px;
6495
+ margin: 1px;
6496
+ text-indent: -999px;
6497
+ cursor: pointer;
6498
+ background-color: #000 \9;
6499
+ background-color: rgba(0, 0, 0, 0);
6500
+ border: 1px solid #fff;
6501
+ border-radius: 10px;
6502
+ }
6503
+ .ycd-bootstrap-wrapper .carousel-indicators .active {
6504
+ width: 12px;
6505
+ height: 12px;
6506
+ margin: 0;
6507
+ background-color: #fff;
6508
+ }
6509
+ .ycd-bootstrap-wrapper .carousel-caption {
6510
+ position: absolute;
6511
+ right: 15%;
6512
+ bottom: 20px;
6513
+ left: 15%;
6514
+ z-index: 10;
6515
+ padding-top: 20px;
6516
+ padding-bottom: 20px;
6517
+ color: #fff;
6518
+ text-align: center;
6519
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
6520
+ }
6521
+ .ycd-bootstrap-wrapper .carousel-caption .btn {
6522
+ text-shadow: none;
6523
+ }
6524
+ @media screen and (min-width: 768px) {
6525
+ .ycd-bootstrap-wrapper .carousel-control .glyphicon-chevron-left,
6526
+ .ycd-bootstrap-wrapper .carousel-control .glyphicon-chevron-right,
6527
+ .ycd-bootstrap-wrapper .carousel-control .icon-prev,
6528
+ .ycd-bootstrap-wrapper .carousel-control .icon-next {
6529
+ width: 30px;
6530
+ height: 30px;
6531
+ margin-top: -10px;
6532
+ font-size: 30px;
6533
+ }
6534
+ .ycd-bootstrap-wrapper .carousel-control .glyphicon-chevron-left,
6535
+ .ycd-bootstrap-wrapper .carousel-control .icon-prev {
6536
+ margin-left: -10px;
6537
+ }
6538
+ .ycd-bootstrap-wrapper .carousel-control .glyphicon-chevron-right,
6539
+ .ycd-bootstrap-wrapper .carousel-control .icon-next {
6540
+ margin-right: -10px;
6541
+ }
6542
+ .ycd-bootstrap-wrapper .carousel-caption {
6543
+ right: 20%;
6544
+ left: 20%;
6545
+ padding-bottom: 30px;
6546
+ }
6547
+ .ycd-bootstrap-wrapper .carousel-indicators {
6548
+ bottom: 20px;
6549
+ }
6550
+ }
6551
+ .ycd-bootstrap-wrapper .clearfix:before,
6552
+ .ycd-bootstrap-wrapper .clearfix:after,
6553
+ .ycd-bootstrap-wrapper .dl-horizontal dd:before,
6554
+ .ycd-bootstrap-wrapper .dl-horizontal dd:after,
6555
+ .ycd-bootstrap-wrapper .container:before,
6556
+ .ycd-bootstrap-wrapper .container:after,
6557
+ .ycd-bootstrap-wrapper .container-fluid:before,
6558
+ .ycd-bootstrap-wrapper .container-fluid:after,
6559
+ .ycd-bootstrap-wrapper .row:before,
6560
+ .ycd-bootstrap-wrapper .row:after,
6561
+ .ycd-bootstrap-wrapper .form-horizontal .form-group:before,
6562
+ .ycd-bootstrap-wrapper .form-horizontal .form-group:after,
6563
+ .ycd-bootstrap-wrapper .btn-toolbar:before,
6564
+ .ycd-bootstrap-wrapper .btn-toolbar:after,
6565
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn-group:before,
6566
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn-group:after,
6567
+ .ycd-bootstrap-wrapper .nav:before,
6568
+ .ycd-bootstrap-wrapper .nav:after,
6569
+ .ycd-bootstrap-wrapper .navbar:before,
6570
+ .ycd-bootstrap-wrapper .navbar:after,
6571
+ .ycd-bootstrap-wrapper .navbar-header:before,
6572
+ .ycd-bootstrap-wrapper .navbar-header:after,
6573
+ .ycd-bootstrap-wrapper .navbar-collapse:before,
6574
+ .ycd-bootstrap-wrapper .navbar-collapse:after,
6575
+ .ycd-bootstrap-wrapper .pager:before,
6576
+ .ycd-bootstrap-wrapper .pager:after,
6577
+ .ycd-bootstrap-wrapper .panel-body:before,
6578
+ .ycd-bootstrap-wrapper .panel-body:after,
6579
+ .ycd-bootstrap-wrapper .modal-header:before,
6580
+ .ycd-bootstrap-wrapper .modal-header:after,
6581
+ .ycd-bootstrap-wrapper .modal-footer:before,
6582
+ .ycd-bootstrap-wrapper .modal-footer:after {
6583
+ display: table;
6584
+ content: " ";
6585
+ }
6586
+ .ycd-bootstrap-wrapper .clearfix:after,
6587
+ .ycd-bootstrap-wrapper .dl-horizontal dd:after,
6588
+ .ycd-bootstrap-wrapper .container:after,
6589
+ .ycd-bootstrap-wrapper .container-fluid:after,
6590
+ .ycd-bootstrap-wrapper .row:after,
6591
+ .ycd-bootstrap-wrapper .form-horizontal .form-group:after,
6592
+ .ycd-bootstrap-wrapper .btn-toolbar:after,
6593
+ .ycd-bootstrap-wrapper .btn-group-vertical > .btn-group:after,
6594
+ .ycd-bootstrap-wrapper .nav:after,
6595
+ .ycd-bootstrap-wrapper .navbar:after,
6596
+ .ycd-bootstrap-wrapper .navbar-header:after,
6597
+ .ycd-bootstrap-wrapper .navbar-collapse:after,
6598
+ .ycd-bootstrap-wrapper .pager:after,
6599
+ .ycd-bootstrap-wrapper .panel-body:after,
6600
+ .ycd-bootstrap-wrapper .modal-header:after,
6601
+ .ycd-bootstrap-wrapper .modal-footer:after {
6602
+ clear: both;
6603
+ }
6604
+ .ycd-bootstrap-wrapper .center-block {
6605
+ display: block;
6606
+ margin-right: auto;
6607
+ margin-left: auto;
6608
+ }
6609
+ .ycd-bootstrap-wrapper .pull-right {
6610
+ float: right !important;
6611
+ }
6612
+ .ycd-bootstrap-wrapper .pull-left {
6613
+ float: left !important;
6614
+ }
6615
+ .ycd-bootstrap-wrapper .hide {
6616
+ display: none !important;
6617
+ }
6618
+ .ycd-bootstrap-wrapper .show {
6619
+ display: block !important;
6620
+ }
6621
+ .ycd-bootstrap-wrapper .invisible {
6622
+ visibility: hidden;
6623
+ }
6624
+ .ycd-bootstrap-wrapper .text-hide {
6625
+ font: 0/0 a;
6626
+ color: transparent;
6627
+ text-shadow: none;
6628
+ background-color: transparent;
6629
+ border: 0;
6630
+ }
6631
+ .ycd-bootstrap-wrapper .hidden {
6632
+ display: none !important;
6633
+ }
6634
+ .ycd-bootstrap-wrapper .affix {
6635
+ position: fixed;
6636
+ }
6637
+ @-ms-viewport {
6638
+ width: device-width;
6639
+ }
6640
+ .ycd-bootstrap-wrapper .visible-xs,
6641
+ .ycd-bootstrap-wrapper .visible-sm,
6642
+ .ycd-bootstrap-wrapper .visible-md,
6643
+ .ycd-bootstrap-wrapper .visible-lg {
6644
+ display: none !important;
6645
+ }
6646
+ .ycd-bootstrap-wrapper .visible-xs-block,
6647
+ .ycd-bootstrap-wrapper .visible-xs-inline,
6648
+ .ycd-bootstrap-wrapper .visible-xs-inline-block,
6649
+ .ycd-bootstrap-wrapper .visible-sm-block,
6650
+ .ycd-bootstrap-wrapper .visible-sm-inline,
6651
+ .ycd-bootstrap-wrapper .visible-sm-inline-block,
6652
+ .ycd-bootstrap-wrapper .visible-md-block,
6653
+ .ycd-bootstrap-wrapper .visible-md-inline,
6654
+ .ycd-bootstrap-wrapper .visible-md-inline-block,
6655
+ .ycd-bootstrap-wrapper .visible-lg-block,
6656
+ .ycd-bootstrap-wrapper .visible-lg-inline,
6657
+ .ycd-bootstrap-wrapper .visible-lg-inline-block {
6658
+ display: none !important;
6659
+ }
6660
+ @media (max-width: 767px) {
6661
+ .ycd-bootstrap-wrapper .visible-xs {
6662
+ display: block !important;
6663
+ }
6664
+ .ycd-bootstrap-wrapper table.visible-xs {
6665
+ display: table !important;
6666
+ }
6667
+ .ycd-bootstrap-wrapper tr.visible-xs {
6668
+ display: table-row !important;
6669
+ }
6670
+ .ycd-bootstrap-wrapper th.visible-xs,
6671
+ .ycd-bootstrap-wrapper td.visible-xs {
6672
+ display: table-cell !important;
6673
+ }
6674
+ }
6675
+ @media (max-width: 767px) {
6676
+ .ycd-bootstrap-wrapper .visible-xs-block {
6677
+ display: block !important;
6678
+ }
6679
+ }
6680
+ @media (max-width: 767px) {
6681
+ .ycd-bootstrap-wrapper .visible-xs-inline {
6682
+ display: inline !important;
6683
+ }
6684
+ }
6685
+ @media (max-width: 767px) {
6686
+ .ycd-bootstrap-wrapper .visible-xs-inline-block {
6687
+ display: inline-block !important;
6688
+ }
6689
+ }
6690
+ @media (min-width: 768px) and (max-width: 991px) {
6691
+ .ycd-bootstrap-wrapper .visible-sm {
6692
+ display: block !important;
6693
+ }
6694
+ .ycd-bootstrap-wrapper table.visible-sm {
6695
+ display: table !important;
6696
+ }
6697
+ .ycd-bootstrap-wrapper tr.visible-sm {
6698
+ display: table-row !important;
6699
+ }
6700
+ .ycd-bootstrap-wrapper th.visible-sm,
6701
+ .ycd-bootstrap-wrapper td.visible-sm {
6702
+ display: table-cell !important;
6703
+ }
6704
+ }
6705
+ @media (min-width: 768px) and (max-width: 991px) {
6706
+ .ycd-bootstrap-wrapper .visible-sm-block {
6707
+ display: block !important;
6708
+ }
6709
+ }
6710
+ @media (min-width: 768px) and (max-width: 991px) {
6711
+ .ycd-bootstrap-wrapper .visible-sm-inline {
6712
+ display: inline !important;
6713
+ }
6714
+ }
6715
+ @media (min-width: 768px) and (max-width: 991px) {
6716
+ .ycd-bootstrap-wrapper .visible-sm-inline-block {
6717
+ display: inline-block !important;
6718
+ }
6719
+ }
6720
+ @media (min-width: 992px) and (max-width: 1199px) {
6721
+ .ycd-bootstrap-wrapper .visible-md {
6722
+ display: block !important;
6723
+ }
6724
+ .ycd-bootstrap-wrapper table.visible-md {
6725
+ display: table !important;
6726
+ }
6727
+ .ycd-bootstrap-wrapper tr.visible-md {
6728
+ display: table-row !important;
6729
+ }
6730
+ .ycd-bootstrap-wrapper th.visible-md,
6731
+ .ycd-bootstrap-wrapper td.visible-md {
6732
+ display: table-cell !important;
6733
+ }
6734
+ }
6735
+ @media (min-width: 992px) and (max-width: 1199px) {
6736
+ .ycd-bootstrap-wrapper .visible-md-block {
6737
+ display: block !important;
6738
+ }
6739
+ }
6740
+ @media (min-width: 992px) and (max-width: 1199px) {
6741
+ .ycd-bootstrap-wrapper .visible-md-inline {
6742
+ display: inline !important;
6743
+ }
6744
+ }
6745
+ @media (min-width: 992px) and (max-width: 1199px) {
6746
+ .ycd-bootstrap-wrapper .visible-md-inline-block {
6747
+ display: inline-block !important;
6748
+ }
6749
+ }
6750
+ @media (min-width: 1200px) {
6751
+ .ycd-bootstrap-wrapper .visible-lg {
6752
+ display: block !important;
6753
+ }
6754
+ .ycd-bootstrap-wrapper table.visible-lg {
6755
+ display: table !important;
6756
+ }
6757
+ .ycd-bootstrap-wrapper tr.visible-lg {
6758
+ display: table-row !important;
6759
+ }
6760
+ .ycd-bootstrap-wrapper th.visible-lg,
6761
+ .ycd-bootstrap-wrapper td.visible-lg {
6762
+ display: table-cell !important;
6763
+ }
6764
+ }
6765
+ @media (min-width: 1200px) {
6766
+ .ycd-bootstrap-wrapper .visible-lg-block {
6767
+ display: block !important;
6768
+ }
6769
+ }
6770
+ @media (min-width: 1200px) {
6771
+ .ycd-bootstrap-wrapper .visible-lg-inline {
6772
+ display: inline !important;
6773
+ }
6774
+ }
6775
+ @media (min-width: 1200px) {
6776
+ .ycd-bootstrap-wrapper .visible-lg-inline-block {
6777
+ display: inline-block !important;
6778
+ }
6779
+ }
6780
+ @media (max-width: 767px) {
6781
+ .ycd-bootstrap-wrapper .hidden-xs {
6782
+ display: none !important;
6783
+ }
6784
+ }
6785
+ @media (min-width: 768px) and (max-width: 991px) {
6786
+ .ycd-bootstrap-wrapper .hidden-sm {
6787
+ display: none !important;
6788
+ }
6789
+ }
6790
+ @media (min-width: 992px) and (max-width: 1199px) {
6791
+ .ycd-bootstrap-wrapper .hidden-md {
6792
+ display: none !important;
6793
+ }
6794
+ }
6795
+ @media (min-width: 1200px) {
6796
+ .ycd-bootstrap-wrapper .hidden-lg {
6797
+ display: none !important;
6798
+ }
6799
+ }
6800
+ .ycd-bootstrap-wrapper .visible-print {
6801
+ display: none !important;
6802
+ }
6803
+ @media print {
6804
+ .ycd-bootstrap-wrapper .visible-print {
6805
+ display: block !important;
6806
+ }
6807
+ .ycd-bootstrap-wrapper table.visible-print {
6808
+ display: table !important;
6809
+ }
6810
+ .ycd-bootstrap-wrapper tr.visible-print {
6811
+ display: table-row !important;
6812
+ }
6813
+ .ycd-bootstrap-wrapper th.visible-print,
6814
+ .ycd-bootstrap-wrapper td.visible-print {
6815
+ display: table-cell !important;
6816
+ }
6817
+ }
6818
+ .ycd-bootstrap-wrapper .visible-print-block {
6819
+ display: none !important;
6820
+ }
6821
+ @media print {
6822
+ .ycd-bootstrap-wrapper .visible-print-block {
6823
+ display: block !important;
6824
+ }
6825
+ }
6826
+ .ycd-bootstrap-wrapper .visible-print-inline {
6827
+ display: none !important;
6828
+ }
6829
+ @media print {
6830
+ .ycd-bootstrap-wrapper .visible-print-inline {
6831
+ display: inline !important;
6832
+ }
6833
+ }
6834
+ .ycd-bootstrap-wrapper .visible-print-inline-block {
6835
+ display: none !important;
6836
+ }
6837
+ @media print {
6838
+ .ycd-bootstrap-wrapper .visible-print-inline-block {
6839
+ display: inline-block !important;
6840
+ }
6841
+ }
6842
+ @media print {
6843
+ .ycd-bootstrap-wrapper .hidden-print {
6844
+ display: none !important;
6845
+ }
6846
+ }
assets/css/colorpicker.css ADDED
@@ -0,0 +1 @@
 
1
+ .minicolors-grid .minicolors-picker>div,.minicolors-panel{-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.minicolors{position:relative}.minicolors-sprite{background-image:url(data:image/png;base64,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)}.minicolors-no-data-uris .minicolors-sprite{background-image:url(jquery.minicolors.png)}.minicolors-swatch{position:absolute;vertical-align:middle;background-position:-80px 0;border:1px solid #ccc;cursor:text;padding:0;margin:0;display:inline-block}.minicolors-swatch-color{position:absolute;top:0;left:0;right:0;bottom:0}.minicolors input[type=hidden]+.minicolors-swatch{width:28px;position:static;cursor:pointer}.minicolors input[type=hidden][disabled]+.minicolors-swatch{cursor:default}.minicolors-panel{position:absolute;width:173px;height:152px;background:#fff;border:1px solid #CCC;box-shadow:0 0 20px rgba(0,0,0,.2);z-index:99999;box-sizing:content-box;display:none}.minicolors-panel.minicolors-with-swatches{height:182px}.minicolors-panel.minicolors-visible{display:block}.minicolors-position-top .minicolors-panel{top:-154px}.minicolors-position-right .minicolors-panel{right:0}.minicolors-position-bottom .minicolors-panel{top:auto}.minicolors-position-left .minicolors-panel{left:0}.minicolors-with-opacity .minicolors-panel{width:194px}.minicolors .minicolors-grid{position:absolute;top:1px;left:1px;width:150px;height:150px;background-position:-120px 0;cursor:crosshair}.minicolors .minicolors-grid-inner{position:absolute;top:0;left:0;width:150px;height:150px}.minicolors-slider-saturation .minicolors-grid{background-position:-420px 0}.minicolors-slider-saturation .minicolors-grid-inner{background-position:-270px 0;background-image:inherit}.minicolors-slider-brightness .minicolors-grid{background-position:-570px 0}.minicolors-slider-brightness .minicolors-grid-inner{background-color:#000}.minicolors-slider-wheel .minicolors-grid{background-position:-720px 0}.minicolors-opacity-slider,.minicolors-slider{position:absolute;top:1px;left:152px;width:20px;height:150px;background-color:#fff;background-position:0 0;cursor:row-resize}.minicolors-slider-saturation .minicolors-slider{background-position:-60px 0}.minicolors-slider-brightness .minicolors-slider,.minicolors-slider-wheel .minicolors-slider{background-position:-20px 0}.minicolors-opacity-slider{left:173px;background-position:-40px 0;display:none}.minicolors-with-opacity .minicolors-opacity-slider{display:block}.minicolors-grid .minicolors-picker{position:absolute;top:70px;left:70px;width:12px;height:12px;border:1px solid #000;border-radius:10px;margin-top:-6px;margin-left:-6px;background:0 0}.minicolors-grid .minicolors-picker>div{position:absolute;top:0;left:0;width:8px;height:8px;border-radius:8px;border:2px solid #fff;box-sizing:content-box}.minicolors-picker{position:absolute;top:0;left:0;width:18px;height:2px;background:#fff;border:1px solid #000;margin-top:-2px;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}.minicolors-swatches,.minicolors-swatches li{margin:0;padding:0;list-style:none;overflow:hidden;position:absolute;top:157px;left:5px}.minicolors-swatches .minicolors-swatch{position:relative;float:left;cursor:pointer;margin:0 4px 0 0}.minicolors-with-opacity .minicolors-swatches .minicolors-swatch{margin-right:7px}.minicolors-swatch.selected{border-color:#000}.minicolors-inline{display:inline-block}.minicolors-inline .minicolors-input{display:none!important}.minicolors-inline .minicolors-panel{position:relative;top:auto;left:auto;box-shadow:none;z-index:auto;display:inline-block}.minicolors-theme-default .minicolors-swatch{top:5px;left:5px;width:18px;height:18px}.minicolors-theme-default .minicolors-swatches .minicolors-swatch{top:0;left:0;width:18px;height:18px}.minicolors-theme-default .minicolors-swatches{height:20px}.minicolors-theme-default.minicolors-position-right .minicolors-swatch{left:auto;right:5px}.minicolors-theme-default.minicolors{width:100%;display:inline-block}.minicolors-theme-default .minicolors-input{height:29px;width:100%;display:inline-block;padding-left:26px;border-radius:3px;border:1px solid #ccc}.minicolors-theme-default.minicolors-position-right .minicolors-input{padding-right:26px;padding-left:inherit}.minicolors-theme-bootstrap .minicolors-swatch{z-index:2;top:3px;left:3px;width:28px;height:28px;border-radius:3px}.minicolors-theme-bootstrap .minicolors-swatches .minicolors-swatch{top:0;left:0;width:20px;height:20px}.minicolors-theme-bootstrap .minicolors-swatch-color{border-radius:inherit}.minicolors-theme-bootstrap.minicolors-position-right .minicolors-swatch{left:auto;right:3px}.minicolors-theme-bootstrap .minicolors-input{float:none;padding-left:44px}.minicolors-theme-bootstrap.minicolors-position-right .minicolors-input{padding-right:44px;padding-left:12px}.minicolors-theme-bootstrap .minicolors-input.input-lg+.minicolors-swatch{top:4px;left:4px;width:37px;height:37px;border-radius:5px}.minicolors-theme-bootstrap .minicolors-input.input-sm+.minicolors-swatch{width:24px;height:24px}.input-group .minicolors-theme-bootstrap:not(:first-child) .minicolors-input{border-top-left-radius:0;border-bottom-left-radius:0}.minicolors-theme-semanticui .minicolors-swatch{top:0;left:0;padding:18px}.minicolors-theme-semanticui input{text-indent:30px}
assets/css/ion.rangeSlider.css ADDED
@@ -0,0 +1 @@
 
1
+ .irs,.irs-line{position:relative;display:block}.irs,.irs-bar,.irs-bar-edge,.irs-line{display:block}.irs{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.irs-line{overflow:hidden;outline:0!important}.irs-line-left,.irs-line-mid,.irs-line-right{position:absolute;display:block;top:0}.irs-line-left{left:0;width:11%}.irs-line-mid{left:9%;width:82%}.irs-line-right{right:0;width:11%}.irs-bar,.irs-shadow{position:absolute;width:0;left:0}.irs-bar-edge{position:absolute;top:0;left:0}.irs-shadow{display:none}.irs-from,.irs-max,.irs-min,.irs-single,.irs-slider,.irs-to{display:block;position:absolute;cursor:default}.irs-slider{z-index:1}.irs-slider.type_last{z-index:2}.irs-min{left:0}.irs-max{right:0}.irs-from,.irs-single,.irs-to{top:0;left:0;white-space:nowrap}.irs-grid{position:absolute;display:none;bottom:0;left:0;width:100%;height:20px}.irs-with-grid .irs-grid{display:block}.irs-grid-pol{position:absolute;top:0;left:0;width:1px;height:8px;background:#000}.irs-grid-pol.small{height:4px}.irs-grid-text{position:absolute;bottom:0;left:0;white-space:nowrap;text-align:center;font-size:9px;line-height:9px;padding:0 3px;color:#000}.irs-disable-mask{position:absolute;display:block;top:0;left:-1%;width:102%;height:100%;cursor:default;background:rgba(0,0,0,0);z-index:2}.irs-disabled{opacity:.4}.lt-ie9 .irs-disabled{filter:alpha(opacity=40)}.irs-hidden-input{position:absolute!important;display:block!important;top:0!important;left:0!important;width:0!important;height:0!important;font-size:0!important;line-height:0!important;padding:0!important;margin:0!important;outline:0!important;z-index:-9999!important;background:0 0!important;border-style:solid!important;border-color:transparent!important}
assets/css/ion.rangeSlider.skinFlat.css ADDED
@@ -0,0 +1 @@
 
1
+ .irs-from,.irs-max,.irs-min,.irs-single,.irs-to{font-size:10px;line-height:1.333;text-shadow:none}.irs-bar,.irs-bar-edge,.irs-line-left,.irs-line-mid,.irs-line-right,.irs-slider{background:url(../img/sprite-skin-flat.png) repeat-x}.irs{height:40px}.irs-with-grid{height:60px}.irs-line{height:12px;top:25px}.irs-line-left{height:12px;background-position:0 -30px}.irs-line-mid{height:12px;background-position:0 0}.irs-line-right{height:12px;background-position:100% -30px}.irs-bar{height:12px;top:25px;background-position:0 -60px}.irs-bar-edge{top:25px;height:12px;width:9px;background-position:0 -90px}.irs-shadow{height:3px;top:34px;background:#000;opacity:.25}.lt-ie9 .irs-shadow{filter:alpha(opacity=25)}.irs-slider{width:16px;height:18px;top:22px;background-position:0 -120px}.irs-slider.state_hover,.irs-slider:hover{background-position:0 -150px}.irs-max,.irs-min{color:#999;top:0;padding:1px 3px;background:#e1e4e9;-moz-border-radius:4px;border-radius:4px}.irs-from,.irs-single,.irs-to{color:#fff;padding:1px 5px;background:#ed5565;-moz-border-radius:4px;border-radius:4px}.irs-from:after,.irs-single:after,.irs-to:after{position:absolute;display:block;content:"";bottom:-6px;left:50%;width:0;height:0;margin-left:-3px;overflow:hidden;border:3px solid transparent;border-top-color:#ed5565}.irs-grid-pol{background:#e1e4e9}.irs-grid-text{color:#999}
assets/css/jquery.dateTimePicker.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .xdsoft_datetimepicker{box-shadow:0 5px 15px -5px rgba(0,0,0,0.506);background:#fff;border-bottom:1px solid #bbb;border-left:1px solid #ccc;border-right:1px solid #ccc;border-top:1px solid #ccc;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;padding:8px;padding-left:0;padding-top:2px;position:absolute;z-index:9999;-moz-box-sizing:border-box;box-sizing:border-box;display:none}.xdsoft_datetimepicker.xdsoft_rtl{padding:8px 0 8px 8px}.xdsoft_datetimepicker iframe{position:absolute;left:0;top:0;width:75px;height:210px;background:transparent;border:0}.xdsoft_datetimepicker button{border:none !important}.xdsoft_noselect{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.xdsoft_noselect::selection{background:transparent}.xdsoft_noselect::-moz-selection{background:transparent}.xdsoft_datetimepicker.xdsoft_inline{display:inline-block;position:static;box-shadow:none}.xdsoft_datetimepicker *{-moz-box-sizing:border-box;box-sizing:border-box;padding:0;margin:0}.xdsoft_datetimepicker .xdsoft_datepicker,.xdsoft_datetimepicker .xdsoft_timepicker{display:none}.xdsoft_datetimepicker .xdsoft_datepicker.active,.xdsoft_datetimepicker .xdsoft_timepicker.active{display:block}.xdsoft_datetimepicker .xdsoft_datepicker{width:224px;float:left;margin-left:8px}.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_datepicker{float:right;margin-right:8px;margin-left:0}.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_datepicker{width:256px}.xdsoft_datetimepicker .xdsoft_timepicker{width:58px;float:left;text-align:center;margin-left:8px;margin-top:0}.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker{float:right;margin-right:8px;margin-left:0}.xdsoft_datetimepicker .xdsoft_datepicker.active+.xdsoft_timepicker{margin-top:8px;margin-bottom:3px}.xdsoft_datetimepicker .xdsoft_monthpicker{position:relative;text-align:center}.xdsoft_datetimepicker .xdsoft_label i,.xdsoft_datetimepicker .xdsoft_prev,.xdsoft_datetimepicker .xdsoft_next,.xdsoft_datetimepicker .xdsoft_today_button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0NBRjI1NjM0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0NBRjI1NjQ0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDQ0FGMjU2MTQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDQ0FGMjU2MjQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoNEP54AAAIOSURBVHja7Jq9TsMwEMcxrZD4WpBYeKUCe+kTMCACHZh4BFfHO/AAIHZGFhYkBBsSEqxsLCAgXKhbXYOTxh9pfJVP+qutnZ5s/5Lz2Y5I03QhWji2GIcgAokWgfCxNvcOCCGKqiSqhUp0laHOne05vdEyGMfkdxJDVjgwDlEQgYQBgx+ULJaWSXXS6r/ER5FBVR8VfGftTKcITNs+a1XpcFoExREIDF14AVIFxgQUS+h520cdud6wNkC0UBw6BCO/HoCYwBhD8QCkQ/x1mwDyD4plh4D6DDV0TAGyo4HcawLIBBSLDkHeH0Mg2yVP3l4TQMZQDDsEOl/MgHQqhMNuE0D+oBh0CIr8MAKyazBH9WyBuKxDWgbXfjNf32TZ1KWm/Ap1oSk/R53UtQ5xTh3LUlMmT8gt6g51Q9p+SobxgJQ/qmsfZhWywGFSl0yBjCLJCMgXail3b7+rumdVJ2YRss4cN+r6qAHDkPWjPjdJCF4n9RmAD/V9A/Wp4NQassDjwlB6XBiCxcJQWmZZb8THFilfy/lfrTvLghq2TqTHrRMTKNJ0sIhdo15RT+RpyWwFdY96UZ/LdQKBGjcXpcc1AlSFEfLmouD+1knuxBDUVrvOBmoOC/rEcN7OQxKVeJTCiAdUzUJhA2Oez9QTkp72OTVcxDcXY8iKNkxGAJXmJCOQwOa6dhyXsOa6XwEGAKdeb5ET3rQdAAAAAElFTkSuQmCC)}.xdsoft_datetimepicker .xdsoft_label i{opacity:.5;background-position:-92px -19px;display:inline-block;width:9px;height:20px;vertical-align:middle}.xdsoft_datetimepicker .xdsoft_prev{float:left;background-position:-20px 0}.xdsoft_datetimepicker .xdsoft_today_button{float:left;background-position:-70px 0;margin-left:5px}.xdsoft_datetimepicker .xdsoft_next{float:right;background-position:0 0}.xdsoft_datetimepicker .xdsoft_next,.xdsoft_datetimepicker .xdsoft_prev,.xdsoft_datetimepicker .xdsoft_today_button{background-color:transparent;background-repeat:no-repeat;border:0 none;cursor:pointer;display:block;height:30px;opacity:.5;-ms-filter:"alpha(opacity=50)";outline:medium none;overflow:hidden;padding:0;position:relative;text-indent:100%;white-space:nowrap;width:20px;min-width:0}.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_next{float:none;background-position:-40px -15px;height:15px;width:30px;display:block;margin-left:14px;margin-top:7px}.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker .xdsoft_prev,.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker .xdsoft_next{float:none;margin-left:0;margin-right:14px}.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev{background-position:-40px 0;margin-bottom:7px;margin-top:0}.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box{height:151px;overflow:hidden;border-bottom:1px solid #ddd}.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div{background:#f5f5f5;border-top:1px solid #ddd;color:#666;font-size:12px;text-align:center;border-collapse:collapse;cursor:pointer;border-bottom-width:0;height:25px;line-height:25px}.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div:first-child{border-top-width:0}.xdsoft_datetimepicker .xdsoft_today_button:hover,.xdsoft_datetimepicker .xdsoft_next:hover,.xdsoft_datetimepicker .xdsoft_prev:hover{opacity:1;-ms-filter:"alpha(opacity=100)"}.xdsoft_datetimepicker .xdsoft_label{display:inline;position:relative;z-index:9999;margin:0;padding:5px 3px;font-size:14px;line-height:20px;font-weight:bold;background-color:#fff;float:left;width:182px;text-align:center;cursor:pointer}.xdsoft_datetimepicker .xdsoft_label:hover>span{text-decoration:underline}.xdsoft_datetimepicker .xdsoft_label:hover i{opacity:1.0}.xdsoft_datetimepicker .xdsoft_label>.xdsoft_select{border:1px solid #ccc;position:absolute;right:0;top:30px;z-index:101;display:none;background:#fff;max-height:160px;overflow-y:hidden}.xdsoft_datetimepicker .xdsoft_label>.xdsoft_select.xdsoft_monthselect{right:-7px}.xdsoft_datetimepicker .xdsoft_label>.xdsoft_select.xdsoft_yearselect{right:2px}.xdsoft_datetimepicker .xdsoft_label>.xdsoft_select>div>.xdsoft_option:hover{color:#fff;background:#ff8000}.xdsoft_datetimepicker .xdsoft_label>.xdsoft_select>div>.xdsoft_option{padding:2px 10px 2px 5px;text-decoration:none !important}.xdsoft_datetimepicker .xdsoft_label>.xdsoft_select>div>.xdsoft_option.xdsoft_current{background:#3af;box-shadow:#178fe5 0 1px 3px 0 inset;color:#fff;font-weight:700}.xdsoft_datetimepicker .xdsoft_month{width:100px;text-align:right}.xdsoft_datetimepicker .xdsoft_calendar{clear:both}.xdsoft_datetimepicker .xdsoft_year{width:48px;margin-left:5px}.xdsoft_datetimepicker .xdsoft_calendar table{border-collapse:collapse;width:100%}.xdsoft_datetimepicker .xdsoft_calendar td>div{padding-right:5px}.xdsoft_datetimepicker .xdsoft_calendar th{height:25px}.xdsoft_datetimepicker .xdsoft_calendar td,.xdsoft_datetimepicker .xdsoft_calendar th{width:14.2857142%;background:#f5f5f5;border:1px solid #ddd;color:#666;font-size:12px;text-align:right;vertical-align:middle;padding:0;border-collapse:collapse;cursor:pointer;height:25px}.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar td,.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar th{width:12.5%}.xdsoft_datetimepicker .xdsoft_calendar th{background:#f1f1f1}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_today{color:#3af}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_highlighted_default{background:#ffe9d2;box-shadow:#ffb871 0 1px 4px 0 inset;color:#000}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_highlighted_mint{background:#c1ffc9;box-shadow:#00dd1c 0 1px 4px 0 inset;color:#000}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_default,.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div.xdsoft_current{background:#3af;box-shadow:#178fe5 0 1px 3px 0 inset;color:#fff;font-weight:700}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month,.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled,.xdsoft_datetimepicker .xdsoft_time_box>div>div.xdsoft_disabled{opacity:.5;-ms-filter:"alpha(opacity=50)";cursor:default}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month.xdsoft_disabled{opacity:.2;-ms-filter:"alpha(opacity=20)"}.xdsoft_datetimepicker .xdsoft_calendar td:hover,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div:hover{color:#fff !important;background:#ff8000 !important;box-shadow:none !important}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current.xdsoft_disabled:hover,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div.xdsoft_current.xdsoft_disabled:hover{background:#3af !important;box-shadow:#178fe5 0 1px 3px 0 inset !important;color:#fff !important}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled:hover,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div.xdsoft_disabled:hover{color:inherit !important;background:inherit !important;box-shadow:inherit !important}.xdsoft_datetimepicker .xdsoft_calendar th{font-weight:700;text-align:center;color:#999;cursor:default}.xdsoft_datetimepicker .xdsoft_copyright{color:#ccc !important;font-size:10px;clear:both;float:none;margin-left:8px}.xdsoft_datetimepicker .xdsoft_copyright a{color:#eee !important}.xdsoft_datetimepicker .xdsoft_copyright a:hover{color:#aaa !important}.xdsoft_time_box{position:relative;border:1px solid #ccc}.xdsoft_scrollbar>.xdsoft_scroller{background:#ccc !important;height:20px;border-radius:3px}.xdsoft_scrollbar{position:absolute;width:7px;right:0;top:0;bottom:0;cursor:pointer}.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_scrollbar{left:0;right:auto}.xdsoft_scroller_box{position:relative}.xdsoft_datetimepicker.xdsoft_dark{box-shadow:0 5px 15px -5px rgba(255,255,255,0.506);background:#000;border-bottom:1px solid #444;border-left:1px solid #333;border-right:1px solid #333;border-top:1px solid #333;color:#ccc}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box{border-bottom:1px solid #222}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box>div>div{background:#0a0a0a;border-top:1px solid #222;color:#999}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label{background-color:#000}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label>.xdsoft_select{border:1px solid #333;background:#000}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label>.xdsoft_select>div>.xdsoft_option:hover{color:#000;background:#007fff}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label>.xdsoft_select>div>.xdsoft_option.xdsoft_current{background:#c50;box-shadow:#b03e00 0 1px 3px 0 inset;color:#000}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label i,.xdsoft_datetimepicker.xdsoft_dark .xdsoft_prev,.xdsoft_datetimepicker.xdsoft_dark .xdsoft_next,.xdsoft_datetimepicker.xdsoft_dark .xdsoft_today_button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUExQUUzOTA0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUExQUUzOTE0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQTFBRTM4RTQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQTFBRTM4RjQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pp0VxGEAAAIASURBVHja7JrNSgMxEMebtgh+3MSLr1T1Xn2CHoSKB08+QmR8Bx9A8e7RixdB9CKCoNdexIugxFlJa7rNZneTbLIpM/CnNLsdMvNjM8l0mRCiQ9Ye61IKCAgZAUnH+mU3MMZaHYChBnJUDzWOFZdVfc5+ZFLbrWDeXPwbxIqrLLfaeS0hEBVGIRQCEiZoHQwtlGSByCCdYBl8g8egTTAWoKQMRBRBcZxYlhzhKegqMOageErsCHVkk3hXIFooDgHB1KkHIHVgzKB4ADJQ/A1jAFmAYhkQqA5TOBtocrKrgXwQA8gcFIuAIO8sQSA7hidvPwaQGZSaAYHOUWJABhWWw2EMIH9QagQERU4SArJXo0ZZL18uvaxejXt/Em8xjVBXmvFr1KVm/AJ10tRe2XnraNqaJvKE3KHuUbfK1E+VHB0q40/y3sdQSxY4FHWeKJCunP8UyDdqJZenT3ntVV5jIYCAh20vT7ioP8tpf6E2lfEMwERe+whV1MHjwZB7PBiCxcGQWwKZKD62lfGNnP/1poFAA60T7rF1UgcKd2id3KDeUS+oLWV8DfWAepOfq00CgQabi9zjcgJVYVD7PVzQUAUGAQkbNJTBICDhgwYTjDYD6XeW08ZKh+A4pYkzenOxXUbvZcWz7E8ykRMnIHGX1XPl+1m2vPYpL+2qdb8CDAARlKFEz/ZVkAAAAABJRU5ErkJggg==)}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td,.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th{background:#0a0a0a;border:1px solid #222;color:#999}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th{background:#0e0e0e}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_today{color:#c50}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_highlighted_default{background:#ffe9d2;box-shadow:#ffb871 0 1px 4px 0 inset;color:#000}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_highlighted_mint{background:#c1ffc9;box-shadow:#00dd1c 0 1px 4px 0 inset;color:#000}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_default,.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_current,.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box>div>div.xdsoft_current{background:#c50;box-shadow:#b03e00 0 1px 3px 0 inset;color:#000}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td:hover,.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box>div>div:hover{color:#000 !important;background:#007fff !important}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th{color:#666}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright{color:#333 !important}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a{color:#111 !important}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a:hover{color:#555 !important}.xdsoft_dark .xdsoft_time_box{border:1px solid #333}.xdsoft_dark .xdsoft_scrollbar>.xdsoft_scroller{background:#333 !important}.xdsoft_datetimepicker .xdsoft_save_selected{display:block;border:1px solid #ddd !important;margin-top:5px;width:100%;color:#454551;font-size:13px}.xdsoft_datetimepicker .blue-gradient-button{font-family:"museo-sans","Book Antiqua",sans-serif;font-size:12px;font-weight:300;color:#82878c;height:28px;position:relative;padding:4px 17px 4px 33px;border:1px solid #d7d8da;background:-moz-linear-gradient(top,#fff 0,#f4f8fa 73%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(73%,#f4f8fa));background:-webkit-linear-gradient(top,#fff 0,#f4f8fa 73%);background:-o-linear-gradient(top,#fff 0,#f4f8fa 73%);background:-ms-linear-gradient(top,#fff 0,#f4f8fa 73%);background:linear-gradient(to bottom,#fff 0,#f4f8fa 73%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff',endColorstr='#f4f8fa',GradientType=0)}.xdsoft_datetimepicker .blue-gradient-button:hover,.xdsoft_datetimepicker .blue-gradient-button:focus,.xdsoft_datetimepicker .blue-gradient-button:hover span,.xdsoft_datetimepicker .blue-gradient-button:focus span{color:#454551;background:-moz-linear-gradient(top,#f4f8fa 0,#FFF 73%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f4f8fa),color-stop(73%,#FFF));background:-webkit-linear-gradient(top,#f4f8fa 0,#FFF 73%);background:-o-linear-gradient(top,#f4f8fa 0,#FFF 73%);background:-ms-linear-gradient(top,#f4f8fa 0,#FFF 73%);background:linear-gradient(to bottom,#f4f8fa 0,#FFF 73%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f4f8fa',endColorstr='#FFF',GradientType=0)}
assets/css/select2.css ADDED
@@ -0,0 +1 @@
 
1
+ .select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:#fff;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0!important;clip:rect(0 0 0 0)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important}.select2-container--classic .select2-results>.select2-results__options,.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent;border-style:solid;border-width:5px 4px 0;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888;border-width:0 4px 5px}.select2-container--default .select2-selection--multiple{background-color:#fff;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-search--inline,.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__placeholder{float:right}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:1px solid #000;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--above .select2-selection--single{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--below .select2-selection--single{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:0 0;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:#fff}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top,#fff 50%,#eee 100%);background-image:-o-linear-gradient(top,#fff 50%,#eee 100%);background-image:linear-gradient(to bottom,#fff 50%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top,#eee 50%,#ccc 100%);background-image:-o-linear-gradient(top,#eee 50%,#ccc 100%);background-image:linear-gradient(to bottom,#eee 50%,#ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent;border-style:solid;border-width:5px 4px 0;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:4px 0 0 4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:0 0;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888;border-width:0 4px 5px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top,#fff 0,#eee 50%);background-image:-o-linear-gradient(top,#fff 0,#eee 50%);background-image:linear-gradient(to bottom,#fff 0,#eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top,#eee 50%,#fff 100%);background-image:-o-linear-gradient(top,#eee 50%,#fff 100%);background-image:linear-gradient(to bottom,#eee 50%,#fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:#fff;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice{float:right;margin-left:5px;margin-right:auto}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}
assets/img/CirclePopup.png ADDED
Binary file
assets/img/Cricle.png ADDED
Binary file
assets/img/Flipclock.png ADDED
Binary file
assets/img/sprite-skin-flat.png ADDED
Binary file
assets/js/Admin.js ADDED
@@ -0,0 +1,147 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ function YcdAdmin() {
2
+ this.init();
3
+ }
4
+
5
+ YcdAdmin.prototype.init = function() {
6
+ this.initCountdownDateTimePicker();
7
+ this.select2();
8
+ this.accordionContent();
9
+ this.livePreviewToggle();
10
+ this.multipleChoiceButton();
11
+ this.switchCountdown();
12
+ };
13
+
14
+ YcdAdmin.prototype.switchCountdown = function() {
15
+ var switchCountdown = jQuery('.ycd-countdown-enable');
16
+
17
+ if(!switchCountdown.length) {
18
+ return false;
19
+ }
20
+
21
+ switchCountdown.each(function() {
22
+ jQuery(this).bind('change', function() {
23
+ var data = {
24
+ action: 'ycd-switch',
25
+ nonce: ycd_admin_localized.nonce,
26
+ id: jQuery(this).data('id'),
27
+ checked: jQuery(this).is(':checked')
28
+ };
29
+
30
+ jQuery.post(ajaxurl, data, function(responce) {
31
+ console.log(responce)
32
+ });
33
+ })
34
+ });
35
+ };
36
+
37
+ YcdAdmin.prototype.multipleChoiceButton = function() {
38
+ var choiceOptions = jQuery('.ycd-choice-option-wrapper input');
39
+ if(!choiceOptions.length) {
40
+ return false;
41
+ }
42
+
43
+ var that = this;
44
+
45
+ choiceOptions.each(function() {
46
+
47
+ if(jQuery(this).is(':checked')) {
48
+ that.buildChoiceShowOption(jQuery(this));
49
+ }
50
+
51
+ jQuery(this).on('change', function() {
52
+ that.hideAllChoiceWrapper(jQuery('.ycd-choice-option-wrapper'));
53
+ that.buildChoiceShowOption(jQuery(this));
54
+ });
55
+ })
56
+ };
57
+
58
+ YcdAdmin.prototype.hideAllChoiceWrapper = function(choiceOptionsWrapper) {
59
+ choiceOptionsWrapper.each(function() {
60
+ var choiceInput = jQuery(this).find('input');
61
+ var choiceInputWrapperId = choiceInput.attr('data-attr-href');
62
+ jQuery('#'+choiceInputWrapperId).addClass('ycd-hide');
63
+ })
64
+ };
65
+
66
+ YcdAdmin.prototype.buildChoiceShowOption = function(currentRadioButton) {
67
+ var choiceOptions = currentRadioButton.attr('data-attr-href');
68
+ var currentOptionWrapper = currentRadioButton.parents('.ycd-choice-wrapper').first();
69
+ var choiceOptionWrapper = jQuery('#'+choiceOptions).removeClass('ycd-hide');
70
+ currentOptionWrapper.after(choiceOptionWrapper);
71
+ };
72
+
73
+ YcdAdmin.prototype.livePreviewToggle = function() {
74
+ var livePreviewText = jQuery('.ycd-live-preview-text');
75
+
76
+ if (!livePreviewText.length) {
77
+ return false;
78
+ }
79
+
80
+ livePreviewText.toggle(function() {
81
+ jQuery('.ycd-toggle-icon').removeClass('ycd-toggle-icon-open').addClass('ycd-toggle-icon-close');
82
+ jQuery('.time_circles').slideToggle(1000, 'swing', function () {
83
+ });
84
+ }, function() {
85
+ jQuery('.ycd-toggle-icon').removeClass('ycd-toggle-icon-close').addClass('ycd-toggle-icon-open');
86
+ jQuery('.time_circles').slideToggle(1000, 'swing', function () {
87
+ });
88
+ })
89
+ };
90
+
91
+ YcdAdmin.prototype.accordionContent = function() {
92
+
93
+ var that = this;
94
+ var accordionCheckbox = jQuery('.ycd-accordion-checkbox');
95
+
96
+ if (!accordionCheckbox.length) {
97
+ return false;
98
+ }
99
+ accordionCheckbox.each(function () {
100
+ that.doAccordion(jQuery(this), jQuery(this).is(':checked'));
101
+ });
102
+ accordionCheckbox.each(function () {
103
+ jQuery(this).bind('change', function () {
104
+ var attrChecked = jQuery(this).is(':checked');
105
+ var currentCheckbox = jQuery(this);
106
+ that.doAccordion(currentCheckbox, attrChecked);
107
+ });
108
+ });
109
+ };
110
+
111
+ YcdAdmin.prototype.doAccordion = function(checkbox, isChecked) {
112
+ var accordionContent = checkbox.parents('.row').nextAll('.ycd-accordion-content').first();
113
+
114
+ if(isChecked) {
115
+ accordionContent.removeClass('ycd-hide-content');
116
+ }
117
+ else {
118
+ accordionContent.addClass('ycd-hide-content');
119
+ }
120
+ };
121
+
122
+ YcdAdmin.prototype.select2 = function() {
123
+ var select2 = jQuery('.js-ycd-select');
124
+
125
+ if(!select2.length) {
126
+ return false;
127
+ }
128
+
129
+ select2.select2();
130
+ };
131
+
132
+ YcdAdmin.prototype.initCountdownDateTimePicker = function() {
133
+ var countdown = jQuery('.ycd-date-time-picker');
134
+
135
+ if(!countdown.length) {
136
+ return false;
137
+ }
138
+
139
+ countdown.datetimepicker({
140
+ format: 'Y-m-d H:i',
141
+ minDate: 0
142
+ });
143
+ };
144
+
145
+ jQuery(document).ready(function() {
146
+ new YcdAdmin();
147
+ });
assets/js/Countdown.js ADDED
@@ -0,0 +1,513 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ function YcdCountdown() {
2
+ this.init();
3
+ this.options = {};
4
+ this.allOptions = {};
5
+ }
6
+
7
+ YcdCountdown.prototype.setOptions = function(options) {
8
+ this.options = options;
9
+ };
10
+
11
+ YcdCountdown.prototype.getOptions = function() {
12
+ return this.options;
13
+ };
14
+
15
+ YcdCountdown.prototype.setAllOptions = function(allOptions) {
16
+ this.allOptions = allOptions;
17
+ };
18
+
19
+ YcdCountdown.prototype.getAllOptions = function() {
20
+ return this.allOptions;
21
+ };
22
+
23
+ YcdCountdown.prototype.init = function() {
24
+ this.startTimeCircle();
25
+ this.minicolors();
26
+ this.ionRangeSlider();
27
+ this.imageUpload();
28
+ this.livePreview();
29
+ };
30
+
31
+ YcdCountdown.prototype.imageUpload = function() {
32
+ var custom_uploader;
33
+ jQuery('#js-upload-image-button').click(function(e) {
34
+ e.preventDefault();
35
+
36
+ /* If the uploader object has already been created, reopen the dialog */
37
+ if (custom_uploader) {
38
+ custom_uploader.open();
39
+ return;
40
+ }
41
+ /* Extend the wp.media object */
42
+ custom_uploader = wp.media.frames.file_frame = wp.media({
43
+ titleFF: 'Choose Image',
44
+ button: {
45
+ text: 'Choose Image'
46
+ },
47
+ multiple: false
48
+ });
49
+ /* When a file is selected, grab the URL and set it as the text field's value */
50
+ custom_uploader.on('select', function() {
51
+ var attachment = custom_uploader.state().get('selection').first().toJSON();
52
+ var imageURL = jQuery('#ycd-bg-image-url');
53
+ imageURL.val(attachment.url);
54
+ imageURL.trigger('change');
55
+ });
56
+ /* Open the uploader dialog */
57
+ custom_uploader.open();
58
+ });
59
+
60
+ /* its finish image uploader */
61
+ };
62
+
63
+ YcdCountdown.prototype.ionRangeSlider= function() {
64
+
65
+ var that = this;
66
+ var circleWidth = jQuery('#ycd-circle-width');
67
+
68
+ if(!circleWidth.length) {
69
+ return false;
70
+ }
71
+ circleWidth.ionRangeSlider({
72
+ hide_min_max: true,
73
+ keyboard: true,
74
+ min: 0.0033333333333333335,
75
+ max: 0.13333333333333333,
76
+ type: 'single',
77
+ step: 0.003333333,
78
+ prefix: '',
79
+ grid: false
80
+ }).change(function() {
81
+ var val = jQuery(this).val();
82
+ that.changeOption('fg_width', val);
83
+ that.build();
84
+ });
85
+
86
+ jQuery('#ycd-js-circle-bg-width').ionRangeSlider({
87
+ hide_min_max: true,
88
+ keyboard: true,
89
+ min: 0.1,
90
+ max: 3,
91
+ type: 'single',
92
+ step: 0.1,
93
+ prefix: '',
94
+ grid: false
95
+ }).change(function() {
96
+ var val = jQuery(this).val();
97
+ that.changeOption('bg_width', val);
98
+ that.build();
99
+ });
100
+
101
+ jQuery('#ycd-js-circle-start-angle').ionRangeSlider({
102
+ hide_min_max: true,
103
+ keyboard: true,
104
+ min: 0,
105
+ max: 360,
106
+ type: 'single',
107
+ step: 10,
108
+ prefix: '',
109
+ grid: false
110
+ }).change(function() {
111
+ var val = jQuery(this).val();
112
+ that.changeOption('start_angle', val);
113
+ that.build();
114
+ });
115
+ };
116
+
117
+ YcdCountdown.prototype.minicolors = function() {
118
+ var minicolors = jQuery('.js-ycd-time-color');
119
+
120
+ if(!minicolors.length) {
121
+ return false;
122
+ }
123
+ var circle = jQuery('.ycd-time-circle');
124
+
125
+ minicolors.minicolors({
126
+ change: function() {
127
+ var color = jQuery(this).val();
128
+ var timeName = jQuery(this).data('time-type');
129
+ var options = circle.data('options');
130
+ options.time[timeName].color = color;
131
+ circle.data('options', options);
132
+ circle.TimeCircles(options).rebuild();
133
+ }
134
+ });
135
+ };
136
+
137
+ YcdCountdown.prototype.livePreview = function() {
138
+ this.changeDate();
139
+ this.changeTimeZone();
140
+ this.changeCountsAnimation();
141
+ this.changeCountsDirection();
142
+ this.changeBackgroundCircle();
143
+ this.changeDimension();
144
+ this.changeTimesStatus();
145
+ this.changeTimesText();
146
+ this.changeBackgroundImage();
147
+ this.circleBgColor();
148
+ this.changeFontSize();
149
+ this.changeFontWeight();
150
+ this.changeFontFamily();
151
+ this.changeTextColor();
152
+ this.changePadding();
153
+ this.changeAlignment();
154
+ };
155
+
156
+ YcdCountdown.prototype.changeAlignment = function() {
157
+ var alignment = jQuery('.ycd-circle-alignment');
158
+
159
+ if(!alignment.length) {
160
+ return false;
161
+ }
162
+
163
+ alignment.bind('change', function() {
164
+ var align = jQuery('option:selected', this).val();
165
+ jQuery('.ycd-circle-wrapper').css({'text-align': align})
166
+ })
167
+ };
168
+
169
+ YcdCountdown.prototype.changePadding = function() {
170
+ var padding = jQuery('#ycd-countdown-padding');
171
+
172
+ if(!padding.length) {
173
+ return false;
174
+ }
175
+
176
+ padding.bind('change', function() {
177
+ var padding = jQuery(this).val();
178
+ padding = parseInt(padding) + 'px';
179
+ jQuery('.ycd-time-circle').css({'padding': padding})
180
+ });
181
+ };
182
+
183
+ YcdCountdown.prototype.changeTextColor = function() {
184
+ var textColor = jQuery('.js-ycd-time-text-color');
185
+
186
+ if(!textColor.length) {
187
+ return false;
188
+ }
189
+
190
+ textColor.minicolors({
191
+ change: function() {
192
+ var color = jQuery(this).val();
193
+ var type = jQuery(this).data('time-type');
194
+ jQuery('.textDiv_'+type).css({'color': color});
195
+ }
196
+ });
197
+ };
198
+
199
+ YcdCountdown.prototype.changeFontFamily = function() {
200
+ var fonts = jQuery('.js-countdown-font-family');
201
+
202
+ if(!fonts.length) {
203
+ return false;
204
+ }
205
+ var that = this;
206
+
207
+ fonts.bind('change', function() {
208
+ that.changeTextStyles();
209
+ });
210
+ };
211
+
212
+ YcdCountdown.prototype.changeFontWeight = function() {
213
+ var fontWeight = jQuery('.js-countdown-font-weight');
214
+
215
+ if(!fontWeight.length) {
216
+ return false
217
+ }
218
+ var that = this;
219
+
220
+ fontWeight.bind('change', function() {
221
+ that.changeTextStyles();
222
+ });
223
+ };
224
+
225
+ YcdCountdown.prototype.changeFontSize = function() {
226
+ var fontSize = jQuery('.js-countdown-font-size');
227
+
228
+ if(!fontSize) {
229
+ return false;
230
+ }
231
+ var that = this;
232
+
233
+ fontSize.bind('change', function() {
234
+ that.changeTextStyles();
235
+ });
236
+ };
237
+
238
+ YcdCountdown.prototype.changeTextStyles = function() {
239
+ var circle = jQuery('.ycd-time-circle');
240
+ var fontSize = jQuery('.js-countdown-font-size').val()+'px';
241
+ var fontWeight = jQuery('.js-countdown-font-weight').val();
242
+ var fontFamily = jQuery('.js-countdown-font-family').val();
243
+
244
+ circle.find('h4').each(function() {
245
+ jQuery(this).attr('style',
246
+ 'font-size: ' + fontSize+' !important;' +
247
+ 'font-weight: ' + fontWeight+' !important;' +
248
+ 'font-family:' + fontFamily + '!important'
249
+ );
250
+ })
251
+ };
252
+
253
+ YcdCountdown.prototype.circleBgColor = function() {
254
+ var countdownBgCircleColor = jQuery('.js-countdown-bg-circle-color');
255
+
256
+ if(!countdownBgCircleColor.length) {
257
+ return false;
258
+ }
259
+ var that = this;
260
+
261
+ countdownBgCircleColor.minicolors({
262
+ change: function() {
263
+ var color = jQuery(this).val();
264
+ that.changeOption('circle_bg_color', color);
265
+ that.build();
266
+ }
267
+ });
268
+ };
269
+
270
+ YcdCountdown.prototype.changeBackgroundImage = function() {
271
+ var bgSize = jQuery('.js-ycd-bg-size');
272
+
273
+ if(!bgSize.length) {
274
+ return false;
275
+ }
276
+ var circle = jQuery('.ycd-time-circle');
277
+ bgSize.bind('change', function() {
278
+ var val = jQuery(this).val();
279
+ circle.css({'background-size': val});
280
+ });
281
+
282
+ jQuery('.js-bg-image-repeat').bind('change', function() {
283
+ var val = jQuery(this).val();
284
+ circle.css({'background-repeat': val});
285
+ });
286
+
287
+ jQuery('#ycd-bg-image-url').bind('change', function() {
288
+ var url = jQuery(this).val();
289
+ circle.css('background-image', 'url('+url+')');
290
+ });
291
+ };
292
+
293
+ YcdCountdown.prototype.changeTimesText = function() {
294
+ var times = jQuery('.js-ycd-time-text');
295
+ if(!times) {
296
+ return false;
297
+ }
298
+ var circle = jQuery('.ycd-time-circle');
299
+ times.each(function() {
300
+ jQuery(this).bind('input', function() {
301
+ var val = jQuery(this).val();
302
+ var timeName = jQuery(this).data('time-type');
303
+ var options = circle.data('options');
304
+ options.time[timeName].text = val;
305
+ circle.data('options', options);
306
+ jQuery('.ycd-time-circle').TimeCircles(options).rebuild();
307
+ })
308
+ });
309
+ };
310
+
311
+ YcdCountdown.prototype.changeTimesStatus = function() {
312
+ var times = jQuery('.js-ycd-time-status');
313
+ if(!times) {
314
+ return false;
315
+ }
316
+ var circle = jQuery('.ycd-time-circle');
317
+ times.each(function() {
318
+ jQuery(this).bind('change', function() {
319
+ var status = jQuery(this).is(':checked') ? 'checked' : '';
320
+ var timeName = jQuery(this).data('time-type');
321
+ var options = circle.data('options');
322
+ options.time[timeName].show = status;
323
+ circle.data('options', options);
324
+ circle.TimeCircles(options).rebuild();
325
+ })
326
+ });
327
+ };
328
+
329
+ YcdCountdown.prototype.setCounterTime = function(calendarValue, selectedTimezone) {
330
+
331
+ var selectedDateTime = new Date().toLocaleString('en-US', { timeZone: selectedTimezone});
332
+
333
+ var dateTime = new Date(selectedDateTime).valueOf();
334
+ var timeNow = Math.floor(dateTime / 1000);
335
+ var seconds = Math.floor(new Date(calendarValue).getTime() / 1000) - timeNow;
336
+ if (seconds < 0) {
337
+ seconds = 0;
338
+ }
339
+
340
+ return seconds;
341
+ };
342
+
343
+ YcdCountdown.prototype.changeDate = function() {
344
+ var datePicker = jQuery('#ycd-date-time-picker');
345
+ if(!datePicker.length) {
346
+ return false;
347
+ }
348
+ var that = this;
349
+
350
+ datePicker.change(function () {
351
+ var val = jQuery(this).val()+':00';
352
+ var selectedTimezone = jQuery('.js-circle-time-zone option:selected').val();
353
+ var seconds = that.setCounterTime(val, selectedTimezone);
354
+ jQuery('.ycd-time-circle').data('timer', seconds).TimeCircles().restart();
355
+ })
356
+ };
357
+
358
+ YcdCountdown.prototype.changeTimeZone = function() {
359
+ var timeZone = jQuery('.js-circle-time-zone');
360
+
361
+ if(!timeZone.length) {
362
+ return false;
363
+ }
364
+ var that = this;
365
+
366
+ timeZone.bind('change', function() {
367
+ var timeZone = jQuery('option:selected', this).val();
368
+ var date = jQuery('#ycd-date-time-picker').val()+':00';
369
+ var seconds = that.setCounterTime(date, timeZone);
370
+ jQuery('.ycd-time-circle').data('timer', seconds).TimeCircles().restart();
371
+ });
372
+ };
373
+
374
+ YcdCountdown.prototype.changeOption = function(name, value) {
375
+ var circle = jQuery('.ycd-time-circle');
376
+ var options = circle.data('options');
377
+ options[name] = value;
378
+ circle.data('options', options);
379
+ };
380
+
381
+ YcdCountdown.prototype.build = function() {
382
+ var circle = jQuery('.ycd-time-circle');
383
+ var options = circle.data('options');
384
+ circle.TimeCircles(options).rebuild();
385
+ };
386
+
387
+ YcdCountdown.prototype.changeCountsAnimation = function() {
388
+ var animation = jQuery('.js-circle-animation');
389
+ var that = this;
390
+
391
+ if(!animation.length) {
392
+ return false;
393
+ }
394
+
395
+ animation.bind('change', function() {
396
+ var val = jQuery(this).val();
397
+ that.changeOption('animation', val);
398
+ that.build();
399
+ })
400
+ };
401
+
402
+ YcdCountdown.prototype.changeCountsDirection = function() {
403
+ var direction = jQuery('.js-ycd-direction');
404
+ if(!direction.length) {
405
+ return false;
406
+ }
407
+ var that = this;
408
+ direction.bind('change', function() {
409
+ var val = jQuery(this).val();
410
+ that.changeOption('direction', val);
411
+ that.build();
412
+ })
413
+ };
414
+
415
+ YcdCountdown.prototype.changeBackgroundCircle = function() {
416
+ var backgroundCircle = jQuery('.js-ycd-background-circle');
417
+ if(!backgroundCircle.length) {
418
+ return false;
419
+ }
420
+ var that = this;
421
+ backgroundCircle.bind('change', function() {
422
+ var val = jQuery(this).is(':checked');
423
+ that.changeOption('use_background', val);
424
+ that.build();
425
+ })
426
+ };
427
+
428
+ YcdCountdown.prototype.changeDimension = function() {
429
+ var dimension = jQuery('.js-ycd-dimension');
430
+ if(!dimension.length) {
431
+ return false;
432
+ }
433
+ var that = this;
434
+ dimension.bind('change', function() {
435
+ var number = jQuery('.js-ycd-dimension-number').val();
436
+ number = parseInt(number);
437
+ var measure = jQuery('.js-ycd-dimension-measure').val();
438
+ var width = number+measure;
439
+ jQuery('.ycd-time-circle').css({'width': width});
440
+ that.build();
441
+ });
442
+ };
443
+
444
+ YcdCountdown.prototype.startTimeCircle = function() {
445
+ var that = this;
446
+ var circle = jQuery('.ycd-time-circle');
447
+
448
+ if(!circle.length) {
449
+ return false;
450
+ }
451
+ circle.each(function() {
452
+ var options = jQuery(this).attr('data-options');
453
+ var allOptions = jQuery(this).data('all-options');
454
+ options = jQuery.parseJSON(options);
455
+ var endDate = jQuery(this).data('date');
456
+
457
+ if(new Date(endDate) - Date.now() <= 0) {
458
+ that.endBehavior(jQuery(this), allOptions)
459
+ }
460
+
461
+ that.setOptions(options);
462
+ that.setAllOptions(allOptions);
463
+ that.render(jQuery(this));
464
+ });
465
+ };
466
+
467
+ YcdCountdown.prototype.render = function(currentCountdown) {
468
+ var that = this;
469
+ var options = this.getOptions();
470
+ var allOptions = this.getAllOptions();
471
+
472
+ if (currentCountdown.data('timer') <= 0) {
473
+ that.endBehavior(currentCountdown, allOptions);
474
+ }
475
+ var countdown = currentCountdown.TimeCircles(options).addListener(countdownComplete);
476
+ function countdownComplete(unit, value, total){
477
+
478
+ if(total <= 0){
479
+ that.endBehavior(jQuery(this), allOptions);
480
+ }
481
+ }
482
+
483
+ jQuery(window).resize(function() {
484
+ countdown.rebuild();
485
+ });
486
+ };
487
+
488
+ YcdCountdown.prototype.endBehavior = function(countdown, options) {
489
+
490
+ if(YcdArgs.isAdmin) {
491
+ return false;
492
+ }
493
+ var behavior = options['ycd-countdown-expire-behavior'];
494
+ var expireText = options['ycd-expire-text'];
495
+ var expireUrl = options['ycd-expire-url'];
496
+
497
+ switch(behavior) {
498
+ case 'hideCountdown':
499
+ countdown.hide();
500
+ break;
501
+ case 'showText':
502
+ countdown.fadeOut('slow').replaceWith(expireText);
503
+ break;
504
+ case 'redirectToURL':
505
+ countdown.fadeOut('slow');
506
+ window.location.href = expireUrl;
507
+ break;
508
+ }
509
+ };
510
+
511
+ jQuery(document).ready(function () {
512
+ new YcdCountdown();
513
+ });
assets/js/Js.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ycd;
3
+
4
+ class Js {
5
+
6
+ public function __construct() {
7
+ $this->init();
8
+ }
9
+
10
+ public function init() {
11
+
12
+ add_action('admin_enqueue_scripts', array($this, 'enqueueStyles'));
13
+ }
14
+
15
+ public function enqueueStyles($hook) {
16
+ ScriptsIncluder::registerScript('Admin.js');
17
+ ScriptsIncluder::localizeScript('Admin.js', 'ycd_admin_localized',array(
18
+ 'nonce' => wp_create_nonce('ycd_ajax_nonce')
19
+ ));
20
+ ScriptsIncluder::registerScript('select2.js');
21
+ ScriptsIncluder::registerScript('minicolors.js');
22
+ ScriptsIncluder::registerScript('ionRangeSlider.js');
23
+ ScriptsIncluder::registerScript('jquery.datetimepicker.full.min.js');
24
+
25
+ if($hook == 'ycdcountdown_page_ycdcountdown' || get_post_type(@$_GET['post']) == YCD_COUNTDOWN_POST_TYPE) {
26
+ ScriptsIncluder::enqueueScript('Admin.js');
27
+ ScriptsIncluder::enqueueScript('select2.js');
28
+ ScriptsIncluder::enqueueScript('minicolors.js');
29
+ ScriptsIncluder::enqueueScript('ionRangeSlider.js');
30
+ ScriptsIncluder::enqueueScript('jquery.datetimepicker.full.min.js');
31
+ }
32
+ }
33
+ }
34
+
35
+ new Js();
assets/js/TimeCircles.js ADDED
@@ -0,0 +1,960 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Basic structure: TC_Class is the public class that is returned upon being called
3
+ *
4
+ * So, if you do
5
+ * var tc = $(".timer").TimeCircles();
6
+ *
7
+ * tc will contain an instance of the public TimeCircles class. It is important to
8
+ * note that TimeCircles is not chained in the conventional way, check the
9
+ * documentation for more info on how TimeCircles can be chained.
10
+ *
11
+ * After being called/created, the public TimerCircles class will then- for each element
12
+ * within it's collection, either fetch or create an instance of the private class.
13
+ * Each function called upon the public class will be forwarded to each instance
14
+ * of the private classes within the relevant element collection
15
+ **/
16
+ (function($) {
17
+
18
+ var useWindow = window;
19
+
20
+ // From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
21
+ if (!Object.keys) {
22
+ Object.keys = (function() {
23
+ 'use strict';
24
+ var hasOwnProperty = Object.prototype.hasOwnProperty,
25
+ hasDontEnumBug = !({toString: null}).propertyIsEnumerable('toString'),
26
+ dontEnums = [
27
+ 'toString',
28
+ 'toLocaleString',
29
+ 'valueOf',
30
+ 'hasOwnProperty',
31
+ 'isPrototypeOf',
32
+ 'propertyIsEnumerable',
33
+ 'constructor'
34
+ ],
35
+ dontEnumsLength = dontEnums.length;
36
+
37
+ return function(obj) {
38
+ if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) {
39
+ throw new TypeError('Object.keys called on non-object');
40
+ }
41
+
42
+ var result = [], prop, i;
43
+
44
+ for (prop in obj) {
45
+ if (hasOwnProperty.call(obj, prop)) {
46
+ result.push(prop);
47
+ }
48
+ }
49
+
50
+ if (hasDontEnumBug) {
51
+ for (i = 0; i < dontEnumsLength; i++) {
52
+ if (hasOwnProperty.call(obj, dontEnums[i])) {
53
+ result.push(dontEnums[i]);
54
+ }
55
+ }
56
+ }
57
+ return result;
58
+ };
59
+ }());
60
+ }
61
+
62
+ // Used to disable some features on IE8
63
+ var limited_mode = false;
64
+ var tick_duration = 200; // in ms
65
+
66
+ var debug = (location.hash === "#debug");
67
+ function debug_log(msg) {
68
+ if (debug) {
69
+ console.log(msg);
70
+ }
71
+ }
72
+
73
+ var allUnits = ["Days", "Hours", "Minutes", "Seconds"];
74
+ var nextUnits = {
75
+ Seconds: "Minutes",
76
+ Minutes: "Hours",
77
+ Hours: "Days",
78
+ Days: "Years"
79
+ };
80
+ var secondsIn = {
81
+ Seconds: 1,
82
+ Minutes: 60,
83
+ Hours: 3600,
84
+ Days: 86400,
85
+ Months: 2678400,
86
+ Years: 31536000
87
+ };
88
+
89
+ /**
90
+ * Converts hex color code into object containing integer values for the r,g,b use
91
+ * This function (hexToRgb) originates from:
92
+ * http://stackoverflow.com/questions/5623838/rgb-to-hex-and-hex-to-rgb
93
+ * @param {string} hex color code
94
+ */
95
+ function hexToRgb(hex) {
96
+
97
+ // Verify already RGB (e.g. "rgb(0,0,0)") or RGBA (e.g. "rgba(0,0,0,0.5)")
98
+ var rgba = /^rgba?\(([\d]+),([\d]+),([\d]+)(,([\d\.]+))?\)$/;
99
+ if(rgba.test(hex)) {
100
+ var result = rgba.exec(hex);
101
+ return {
102
+ r: parseInt(result[1]),
103
+ g: parseInt(result[2]),
104
+ b: parseInt(result[3]),
105
+ a: parseInt(result[5] ? result[5] : 1)
106
+ };
107
+ }
108
+
109
+ // Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF")
110
+ var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
111
+ hex = hex.replace(shorthandRegex, function(m, r, g, b) {
112
+ return r + r + g + g + b + b;
113
+ });
114
+
115
+ var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
116
+ return result ? {
117
+ r: parseInt(result[1], 16),
118
+ g: parseInt(result[2], 16),
119
+ b: parseInt(result[3], 16)
120
+ } : null;
121
+ }
122
+
123
+ function isCanvasSupported() {
124
+ var elem = document.createElement('canvas');
125
+ return !!(elem.getContext && elem.getContext('2d'));
126
+ }
127
+
128
+ /**
129
+ * Function s4() and guid() originate from:
130
+ * http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript
131
+ */
132
+ function s4() {
133
+ return Math.floor((1 + Math.random()) * 0x10000)
134
+ .toString(16)
135
+ .substring(1);
136
+ }
137
+
138
+ /**
139
+ * Creates a unique id
140
+ * @returns {String}
141
+ */
142
+ function guid() {
143
+ return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
144
+ s4() + '-' + s4() + s4() + s4();
145
+ }
146
+
147
+ /**
148
+ * Array.prototype.indexOf fallback for IE8
149
+ * @param {Mixed} mixed
150
+ * @returns {Number}
151
+ */
152
+ if (!Array.prototype.indexOf) {
153
+ Array.prototype.indexOf = function(elt /*, from*/)
154
+ {
155
+ var len = this.length >>> 0;
156
+
157
+ var from = Number(arguments[1]) || 0;
158
+ from = (from < 0)
159
+ ? Math.ceil(from)
160
+ : Math.floor(from);
161
+ if (from < 0)
162
+ from += len;
163
+
164
+ for (; from < len; from++)
165
+ {
166
+ if (from in this &&
167
+ this[from] === elt)
168
+ return from;
169
+ }
170
+ return -1;
171
+ };
172
+ }
173
+
174
+ function parse_date(str) {
175
+ var match = str.match(/^[0-9]{4}-[0-9]{2}-[0-9]{2}\s[0-9]{1,2}:[0-9]{2}:[0-9]{2}$/);
176
+ if (match !== null && match.length > 0) {
177
+ var parts = str.split(" ");
178
+ var date = parts[0].split("-");
179
+ var time = parts[1].split(":");
180
+ return new Date(date[0], date[1] - 1, date[2], time[0], time[1], time[2]);
181
+ }
182
+ // Fallback for different date formats
183
+ var d = Date.parse(str);
184
+ if (!isNaN(d))
185
+ return d;
186
+ d = Date.parse(str.replace(/-/g, '/').replace('T', ' '));
187
+ if (!isNaN(d))
188
+ return d;
189
+ // Cant find anything
190
+ return new Date();
191
+ }
192
+
193
+ function parse_times(diff, old_diff, total_duration, units, floor) {
194
+ var raw_time = {};
195
+ var raw_old_time = {};
196
+ var time = {};
197
+ var pct = {};
198
+ var old_pct = {};
199
+ var old_time = {};
200
+
201
+ var greater_unit = null;
202
+ for(var i = 0; i < units.length; i++) {
203
+ var unit = units[i];
204
+ var maxUnits;
205
+
206
+ if (greater_unit === null) {
207
+ maxUnits = total_duration / secondsIn[unit];
208
+ }
209
+ else {
210
+ maxUnits = secondsIn[greater_unit] / secondsIn[unit];
211
+ }
212
+
213
+ var curUnits = (diff / secondsIn[unit]);
214
+ var oldUnits = (old_diff / secondsIn[unit]);
215
+
216
+ if(floor) {
217
+ if(curUnits > 0) curUnits = Math.floor(curUnits);
218
+ else curUnits = Math.ceil(curUnits);
219
+ if(oldUnits > 0) oldUnits = Math.floor(oldUnits);
220
+ else oldUnits = Math.ceil(oldUnits);
221
+ }
222
+
223
+ if (unit !== "Days") {
224
+ curUnits = curUnits % maxUnits;
225
+ oldUnits = oldUnits % maxUnits;
226
+ }
227
+
228
+ raw_time[unit] = curUnits;
229
+ time[unit] = Math.abs(curUnits);
230
+ raw_old_time[unit] = oldUnits;
231
+ old_time[unit] = Math.abs(oldUnits);
232
+ pct[unit] = Math.abs(curUnits) / maxUnits;
233
+ old_pct[unit] = Math.abs(oldUnits) / maxUnits;
234
+
235
+ greater_unit = unit;
236
+ }
237
+
238
+ return {
239
+ raw_time: raw_time,
240
+ raw_old_time: raw_old_time,
241
+ time: time,
242
+ old_time: old_time,
243
+ pct: pct,
244
+ old_pct: old_pct
245
+ };
246
+ }
247
+
248
+ var TC_Instance_List = {};
249
+ function updateUsedWindow() {
250
+ if(typeof useWindow.TC_Instance_List !== "undefined") {
251
+ TC_Instance_List = useWindow.TC_Instance_List;
252
+ }
253
+ else {
254
+ useWindow.TC_Instance_List = TC_Instance_List;
255
+ }
256
+ initializeAnimationFrameHandler(useWindow);
257
+ };
258
+
259
+ function initializeAnimationFrameHandler(w) {
260
+ var vendors = ['webkit', 'moz'];
261
+ for (var x = 0; x < vendors.length && !w.requestAnimationFrame; ++x) {
262
+ w.requestAnimationFrame = w[vendors[x] + 'RequestAnimationFrame'];
263
+ w.cancelAnimationFrame = w[vendors[x] + 'CancelAnimationFrame'];
264
+ }
265
+
266
+ if (!w.requestAnimationFrame || !w.cancelAnimationFrame) {
267
+ w.requestAnimationFrame = function(callback, element, instance) {
268
+ if (typeof instance === "undefined")
269
+ instance = {data: {last_frame: 0}};
270
+ var currTime = new Date().getTime();
271
+ var timeToCall = Math.max(0, 16 - (currTime - instance.data.last_frame));
272
+ var id = w.setTimeout(function() {
273
+ callback(currTime + timeToCall);
274
+ }, timeToCall);
275
+ instance.data.last_frame = currTime + timeToCall;
276
+ return id;
277
+ };
278
+ w.cancelAnimationFrame = function(id) {
279
+ clearTimeout(id);
280
+ };
281
+ }
282
+ };
283
+
284
+
285
+ var TC_Instance = function(element, options) {
286
+ this.element = element;
287
+ this.container;
288
+ this.listeners = null;
289
+ this.data = {
290
+ paused: false,
291
+ last_frame: 0,
292
+ animation_frame: null,
293
+ interval_fallback: null,
294
+ timer: false,
295
+ total_duration: null,
296
+ prev_time: null,
297
+ drawn_units: [],
298
+ text_elements: {
299
+ Days: null,
300
+ Hours: null,
301
+ Minutes: null,
302
+ Seconds: null
303
+ },
304
+ attributes: {
305
+ canvas: null,
306
+ context: null,
307
+ item_size: null,
308
+ line_width: null,
309
+ radius: null,
310
+ outer_radius: null
311
+ },
312
+ state: {
313
+ fading: {
314
+ Days: false,
315
+ Hours: false,
316
+ Minutes: false,
317
+ Seconds: false
318
+ }
319
+ }
320
+ };
321
+
322
+ this.config = null;
323
+ this.setOptions(options);
324
+ this.initialize();
325
+ };
326
+
327
+ TC_Instance.prototype.clearListeners = function() {
328
+ this.listeners = { all: [], visible: [] };
329
+ };
330
+
331
+ TC_Instance.prototype.addTime = function(seconds_to_add) {
332
+ if(this.data.attributes.ref_date instanceof Date) {
333
+ var d = this.data.attributes.ref_date;
334
+ d.setSeconds(d.getSeconds() + seconds_to_add);
335
+ }
336
+ else if(!isNaN(this.data.attributes.ref_date)) {
337
+ this.data.attributes.ref_date += (seconds_to_add * 1000);
338
+ }
339
+ };
340
+
341
+ TC_Instance.prototype.initialize = function(clear_listeners) {
342
+ // Initialize drawn units
343
+ this.data.drawn_units = [];
344
+ for(var i = 0; i < Object.keys(this.config.time).length; i++) {
345
+ var unit = Object.keys(this.config.time)[i];
346
+ if (this.config.time[unit].show) {
347
+ this.data.drawn_units.push(unit);
348
+ }
349
+ }
350
+
351
+ // Avoid stacking
352
+ $(this.element).children('div.time_circles').remove();
353
+
354
+ if (typeof clear_listeners === "undefined")
355
+ clear_listeners = true;
356
+ if (clear_listeners || this.listeners === null) {
357
+ this.clearListeners();
358
+ }
359
+ this.container = $("<div>");
360
+ this.container.addClass('time_circles');
361
+ this.container.appendTo(this.element);
362
+
363
+ // Determine the needed width and height of TimeCircles
364
+ var height = this.element.offsetHeight;
365
+ var width = this.element.offsetWidth;
366
+ if (height === 0)
367
+ height = $(this.element).height();
368
+ if (width === 0)
369
+ width = $(this.element).width();
370
+
371
+ if (height === 0 && width > 0)
372
+ height = width / this.data.drawn_units.length;
373
+ else if (width === 0 && height > 0)
374
+ width = height * this.data.drawn_units.length;
375
+
376
+ // Create our canvas and set it to the appropriate size
377
+ var canvasElement = document.createElement('canvas');
378
+ canvasElement.width = width;
379
+ canvasElement.height = height;
380
+
381
+ // Add canvas elements
382
+ this.data.attributes.canvas = $(canvasElement);
383
+ this.data.attributes.canvas.appendTo(this.container);
384
+
385
+ // Check if the browser has browser support
386
+ var canvasSupported = isCanvasSupported();
387
+ // If the browser doesn't have browser support, check if explorer canvas is loaded
388
+ // (A javascript library that adds canvas support to browsers that don't have it)
389
+ if(!canvasSupported && typeof G_vmlCanvasManager !== "undefined") {
390
+ G_vmlCanvasManager.initElement(canvasElement);
391
+ limited_mode = true;
392
+ canvasSupported = true;
393
+ }
394
+ if(canvasSupported) {
395
+ this.data.attributes.context = canvasElement.getContext('2d');
396
+ }
397
+
398
+ this.data.attributes.item_size = Math.min(width / this.data.drawn_units.length, height);
399
+ this.data.attributes.line_width = this.data.attributes.item_size * this.config.fg_width;
400
+ this.data.attributes.radius = ((this.data.attributes.item_size * 0.8) - this.data.attributes.line_width) / 2;
401
+ this.data.attributes.outer_radius = this.data.attributes.radius + 0.5 * Math.max(this.data.attributes.line_width, this.data.attributes.line_width * this.config.bg_width);
402
+
403
+ // Prepare Time Elements
404
+ var i = 0;
405
+ for (var key in this.data.text_elements) {
406
+ if (!this.config.time[key].show)
407
+ continue;
408
+
409
+ var textElement = $("<div>");
410
+ textElement.addClass('textDiv_' + key);
411
+ textElement.css("top", Math.round(0.35 * this.data.attributes.item_size));
412
+ textElement.css("left", Math.round(i++ * this.data.attributes.item_size));
413
+ textElement.css("width", this.data.attributes.item_size);
414
+ textElement.appendTo(this.container);
415
+
416
+ var headerElement = $("<h4>");
417
+ headerElement.text(this.config.time[key].text); // Options
418
+ headerElement.css("font-size", Math.round(this.config.text_size * this.data.attributes.item_size));
419
+ headerElement.appendTo(textElement);
420
+
421
+ var numberElement = $("<span>");
422
+ numberElement.css("font-size", Math.round(this.config.number_size * this.data.attributes.item_size));
423
+ numberElement.appendTo(textElement);
424
+
425
+ this.data.text_elements[key] = numberElement;
426
+ }
427
+
428
+ this.start();
429
+ if (!this.config.start) {
430
+ this.data.paused = true;
431
+ }
432
+
433
+ // Set up interval fallback
434
+ var _this = this;
435
+ this.data.interval_fallback = useWindow.setInterval(function(){
436
+ _this.update.call(_this, true);
437
+ }, 100);
438
+ };
439
+
440
+ TC_Instance.prototype.update = function(nodraw) {
441
+ if(typeof nodraw === "undefined") {
442
+ nodraw = false;
443
+ }
444
+ else if(nodraw && this.data.paused) {
445
+ return;
446
+ }
447
+
448
+ if(limited_mode) {
449
+ //Per unit clearing doesn't work in IE8 using explorer canvas, so do it in one time. The downside is that radial fade cant be used
450
+ this.data.attributes.context.clearRect(0, 0, this.data.attributes.canvas[0].width, this.data.attributes.canvas[0].hright);
451
+ }
452
+ var diff, old_diff;
453
+
454
+ var prevDate = this.data.prev_time;
455
+ var curDate = new Date();
456
+ this.data.prev_time = curDate;
457
+
458
+ if (prevDate === null)
459
+ prevDate = curDate;
460
+
461
+ // If not counting past zero, and time < 0, then simply draw the zero point once, and call stop
462
+ if (!this.config.count_past_zero) {
463
+ if (curDate > this.data.attributes.ref_date) {
464
+ for(var i = 0; i < this.data.drawn_units.length; i++) {
465
+ var key = this.data.drawn_units[i];
466
+
467
+ // Set the text value
468
+ this.data.text_elements[key].text("0");
469
+ var x = (i * this.data.attributes.item_size) + (this.data.attributes.item_size / 2);
470
+ var y = this.data.attributes.item_size / 2;
471
+ var color = this.config.time[key].color;
472
+ this.drawArc(x, y, color, 0);
473
+ }
474
+ this.stop();
475
+ return;
476
+ }
477
+ }
478
+
479
+ // Compare current time with reference
480
+ diff = (this.data.attributes.ref_date - curDate) / 1000;
481
+ old_diff = (this.data.attributes.ref_date - prevDate) / 1000;
482
+
483
+ var floor = this.config.animation !== "smooth";
484
+
485
+ var visible_times = parse_times(diff, old_diff, this.data.total_duration, this.data.drawn_units, floor);
486
+ var all_times = parse_times(diff, old_diff, secondsIn["Years"], allUnits, floor);
487
+
488
+ var i = 0;
489
+ var j = 0;
490
+ var lastKey = null;
491
+
492
+ var cur_shown = this.data.drawn_units.slice();
493
+ for (var i in allUnits) {
494
+ var key = allUnits[i];
495
+
496
+ // Notify (all) listeners
497
+ if (Math.floor(all_times.raw_time[key]) !== Math.floor(all_times.raw_old_time[key])) {
498
+ this.notifyListeners(key, Math.floor(all_times.time[key]), Math.floor(diff), "all");
499
+ }
500
+
501
+ if (cur_shown.indexOf(key) < 0)
502
+ continue;
503
+
504
+ // Notify (visible) listeners
505
+ if (Math.floor(visible_times.raw_time[key]) !== Math.floor(visible_times.raw_old_time[key])) {
506
+ this.notifyListeners(key, Math.floor(visible_times.time[key]), Math.floor(diff), "visible");
507
+ }
508
+
509
+ if(!nodraw) {
510
+ // Set the text value
511
+ this.data.text_elements[key].text(Math.floor(Math.abs(visible_times.time[key])));
512
+
513
+ var x = (j * this.data.attributes.item_size) + (this.data.attributes.item_size / 2);
514
+ var y = this.data.attributes.item_size / 2;
515
+ var color = this.config.time[key].color;
516
+
517
+ if (this.config.animation === "smooth") {
518
+ if (lastKey !== null && !limited_mode) {
519
+ if (Math.floor(visible_times.time[lastKey]) > Math.floor(visible_times.old_time[lastKey])) {
520
+ this.radialFade(x, y, color, 1, key);
521
+ this.data.state.fading[key] = true;
522
+ }
523
+ else if (Math.floor(visible_times.time[lastKey]) < Math.floor(visible_times.old_time[lastKey])) {
524
+ this.radialFade(x, y, color, 0, key);
525
+ this.data.state.fading[key] = true;
526
+ }
527
+ }
528
+ if (!this.data.state.fading[key]) {
529
+ this.drawArc(x, y, color, visible_times.pct[key]);
530
+ }
531
+ }
532
+ else {
533
+ this.animateArc(x, y, color, visible_times.pct[key], visible_times.old_pct[key], (new Date()).getTime() + tick_duration);
534
+ }
535
+ }
536
+ lastKey = key;
537
+ j++;
538
+ }
539
+
540
+ // Dont request another update if we should be paused
541
+ if(this.data.paused || nodraw) {
542
+ return;
543
+ }
544
+
545
+ // We need this for our next frame either way
546
+ var _this = this;
547
+ var update = function() {
548
+ _this.update.call(_this);
549
+ };
550
+
551
+ // Either call next update immediately, or in a second
552
+ if (this.config.animation === "smooth") {
553
+ // Smooth animation, Queue up the next frame
554
+ this.data.animation_frame = useWindow.requestAnimationFrame(update, _this.element, _this);
555
+ }
556
+ else {
557
+ // Tick animation, Don't queue until very slightly after the next second happens
558
+ var delay = (diff % 1) * 1000;
559
+ if (delay < 0)
560
+ delay = 1000 + delay;
561
+ delay += 50;
562
+
563
+ _this.data.animation_frame = useWindow.setTimeout(function() {
564
+ _this.data.animation_frame = useWindow.requestAnimationFrame(update, _this.element, _this);
565
+ }, delay);
566
+ }
567
+ };
568
+
569
+ TC_Instance.prototype.animateArc = function(x, y, color, target_pct, cur_pct, animation_end) {
570
+ if (this.data.attributes.context === null)
571
+ return;
572
+
573
+ var diff = cur_pct - target_pct;
574
+ if (Math.abs(diff) > 0.5) {
575
+ if (target_pct === 0) {
576
+ this.radialFade(x, y, color, 1);
577
+ }
578
+ else {
579
+ this.radialFade(x, y, color, 0);
580
+ }
581
+ }
582
+ else {
583
+ var progress = (tick_duration - (animation_end - (new Date()).getTime())) / tick_duration;
584
+ if (progress > 1)
585
+ progress = 1;
586
+
587
+ var pct = (cur_pct * (1 - progress)) + (target_pct * progress);
588
+ this.drawArc(x, y, color, pct);
589
+
590
+ //var show_pct =
591
+ if (progress >= 1)
592
+ return;
593
+ var _this = this;
594
+ useWindow.requestAnimationFrame(function() {
595
+ _this.animateArc(x, y, color, target_pct, cur_pct, animation_end);
596
+ }, this.element);
597
+ }
598
+ };
599
+
600
+ TC_Instance.prototype.drawArc = function(x, y, color, pct) {
601
+ if (this.data.attributes.context === null)
602
+ return;
603
+
604
+ var clear_radius = Math.max(this.data.attributes.outer_radius, this.data.attributes.item_size / 2);
605
+ if(!limited_mode) {
606
+ this.data.attributes.context.clearRect(
607
+ x - clear_radius,
608
+ y - clear_radius,
609
+ clear_radius * 2,
610
+ clear_radius * 2
611
+ );
612
+ }
613
+
614
+ if (this.config.use_background) {
615
+ this.data.attributes.context.beginPath();
616
+ this.data.attributes.context.arc(x, y, this.data.attributes.radius, 0, 2 * Math.PI, false);
617
+ this.data.attributes.context.lineWidth = this.data.attributes.line_width * this.config.bg_width;
618
+
619
+ // line color
620
+ this.data.attributes.context.strokeStyle = this.config.circle_bg_color;
621
+ this.data.attributes.context.stroke();
622
+ }
623
+
624
+ // Direction
625
+ var startAngle, endAngle, counterClockwise;
626
+ var defaultOffset = (-0.5 * Math.PI);
627
+ var fullCircle = 2 * Math.PI;
628
+ startAngle = defaultOffset + (this.config.start_angle / 360 * fullCircle);
629
+ var offset = (2 * pct * Math.PI);
630
+
631
+ if (this.config.direction === "Both") {
632
+ counterClockwise = false;
633
+ startAngle -= (offset / 2);
634
+ endAngle = startAngle + offset;
635
+ }
636
+ else {
637
+ if (this.config.direction === "Clockwise") {
638
+ counterClockwise = false;
639
+ endAngle = startAngle + offset;
640
+ }
641
+ else {
642
+ counterClockwise = true;
643
+ endAngle = startAngle - offset;
644
+ }
645
+ }
646
+
647
+ this.data.attributes.context.beginPath();
648
+ this.data.attributes.context.arc(x, y, this.data.attributes.radius, startAngle, endAngle, counterClockwise);
649
+ this.data.attributes.context.lineWidth = this.data.attributes.line_width;
650
+
651
+ // line color
652
+ this.data.attributes.context.strokeStyle = color;
653
+ this.data.attributes.context.stroke();
654
+ };
655
+
656
+ TC_Instance.prototype.radialFade = function(x, y, color, from, key) {
657
+ // TODO: Make fade_time option
658
+ var rgb = hexToRgb(color);
659
+ var _this = this; // We have a few inner scopes here that will need access to our instance
660
+
661
+ var step = 0.2 * ((from === 1) ? -1 : 1);
662
+ var i;
663
+ for (i = 0; from <= 1 && from >= 0; i++) {
664
+ // Create inner scope so our variables are not changed by the time the Timeout triggers
665
+ (function() {
666
+ var delay = 50 * i;
667
+ var rgba = "rgba(" + rgb.r + ", " + rgb.g + ", " + rgb.b + ", " + (Math.round(from * 10) / 10) + ")";
668
+ useWindow.setTimeout(function() {
669
+ _this.drawArc(x, y, rgba, 1);
670
+ }, delay);
671
+ }());
672
+ from += step;
673
+ }
674
+ if (typeof key !== undefined) {
675
+ useWindow.setTimeout(function() {
676
+ _this.data.state.fading[key] = false;
677
+ }, 50 * i);
678
+ }
679
+ };
680
+
681
+ TC_Instance.prototype.timeLeft = function() {
682
+ if (this.data.paused && typeof this.data.timer === "number") {
683
+ return this.data.timer;
684
+ }
685
+ var now = new Date();
686
+ return ((this.data.attributes.ref_date - now) / 1000);
687
+ };
688
+
689
+ TC_Instance.prototype.start = function() {
690
+ useWindow.cancelAnimationFrame(this.data.animation_frame);
691
+ useWindow.clearTimeout(this.data.animation_frame);
692
+
693
+ // Check if a date was passed in html attribute or jquery data
694
+ var attr_data_date = $(this.element).data('date');
695
+ if (typeof attr_data_date === "undefined") {
696
+ attr_data_date = $(this.element).attr('data-date');
697
+ }
698
+ if (typeof attr_data_date === "string") {
699
+ this.data.attributes.ref_date = parse_date(attr_data_date);
700
+ }
701
+ // Check if this is an unpause of a timer
702
+ else if (typeof this.data.timer === "number") {
703
+ if (this.data.paused) {
704
+ this.data.attributes.ref_date = (new Date()).getTime() + (this.data.timer * 1000);
705
+ }
706
+ }
707
+ else {
708
+ // Try to get data-timer
709
+ var attr_data_timer = $(this.element).data('timer');
710
+ if (typeof attr_data_timer === "undefined") {
711
+ attr_data_timer = $(this.element).attr('data-timer');
712
+ }
713
+ if (typeof attr_data_timer === "string") {
714
+ attr_data_timer = parseFloat(attr_data_timer);
715
+ }
716
+ if (typeof attr_data_timer === "number") {
717
+ this.data.timer = attr_data_timer;
718
+ this.data.attributes.ref_date = (new Date()).getTime() + (attr_data_timer * 1000);
719
+ }
720
+ else {
721
+ // data-timer and data-date were both not set
722
+ // use config date
723
+ this.data.attributes.ref_date = this.config.ref_date;
724
+ }
725
+ }
726
+
727
+ // Start running
728
+ this.data.paused = false;
729
+ this.update.call(this);
730
+ };
731
+
732
+ TC_Instance.prototype.restart = function() {
733
+ this.data.timer = false;
734
+ this.start();
735
+ };
736
+
737
+ TC_Instance.prototype.stop = function() {
738
+ if (typeof this.data.timer === "number") {
739
+ this.data.timer = this.timeLeft(this);
740
+ }
741
+ // Stop running
742
+ this.data.paused = true;
743
+ useWindow.cancelAnimationFrame(this.data.animation_frame);
744
+ };
745
+
746
+ TC_Instance.prototype.destroy = function() {
747
+ this.clearListeners();
748
+ this.stop();
749
+ useWindow.clearInterval(this.data.interval_fallback);
750
+ this.data.interval_fallback = null;
751
+
752
+ this.container.remove();
753
+ $(this.element).removeAttr('data-tc-id');
754
+ $(this.element).removeData('tc-id');
755
+ };
756
+
757
+ TC_Instance.prototype.setOptions = function(options) {
758
+ if (this.config === null) {
759
+ this.default_options.ref_date = new Date();
760
+ this.config = $.extend(true, {}, this.default_options);
761
+ }
762
+ $.extend(true, this.config, options);
763
+
764
+ // Use window.top if use_top_frame is true
765
+ if(this.config.use_top_frame) {
766
+ useWindow = window.top;
767
+ }
768
+ else {
769
+ useWindow = window;
770
+ }
771
+ updateUsedWindow();
772
+
773
+ this.data.total_duration = this.config.total_duration;
774
+ if (typeof this.data.total_duration === "string") {
775
+ if (typeof secondsIn[this.data.total_duration] !== "undefined") {
776
+ // If set to Years, Months, Days, Hours or Minutes, fetch the secondsIn value for that
777
+ this.data.total_duration = secondsIn[this.data.total_duration];
778
+ }
779
+ else if (this.data.total_duration === "Auto") {
780
+ // If set to auto, total_duration is the size of 1 unit, of the unit type bigger than the largest shown
781
+ for(var i = 0; i < Object.keys(this.config.time).length; i++) {
782
+ var unit = Object.keys(this.config.time)[i];
783
+ if (this.config.time[unit].show) {
784
+ this.data.total_duration = secondsIn[nextUnits[unit]];
785
+ break;
786
+ }
787
+ }
788
+ }
789
+ else {
790
+ // If it's a string, but neither of the above, user screwed up.
791
+ this.data.total_duration = secondsIn["Years"];
792
+ console.error("Valid values for TimeCircles config.total_duration are either numeric, or (string) Years, Months, Days, Hours, Minutes, Auto");
793
+ }
794
+ }
795
+ };
796
+
797
+ TC_Instance.prototype.addListener = function(f, context, type) {
798
+ if (typeof f !== "function")
799
+ return;
800
+ if (typeof type === "undefined")
801
+ type = "visible";
802
+ this.listeners[type].push({func: f, scope: context});
803
+ };
804
+
805
+ TC_Instance.prototype.notifyListeners = function(unit, value, total, type) {
806
+ for (var i = 0; i < this.listeners[type].length; i++) {
807
+ var listener = this.listeners[type][i];
808
+ listener.func.apply(listener.scope, [unit, value, total]);
809
+ }
810
+ };
811
+
812
+ TC_Instance.prototype.default_options = {
813
+ ref_date: new Date(),
814
+ start: true,
815
+ animation: "smooth",
816
+ count_past_zero: true,
817
+ circle_bg_color: "#60686F",
818
+ use_background: true,
819
+ fg_width: 0.1,
820
+ bg_width: 1.2,
821
+ text_size: 0.07,
822
+ number_size: 0.28,
823
+ total_duration: "Auto",
824
+ direction: "Clockwise",
825
+ use_top_frame: false,
826
+ start_angle: 0,
827
+ time: {
828
+ Days: {
829
+ show: true,
830
+ text: "Days",
831
+ color: "#FC6"
832
+ },
833
+ Hours: {
834
+ show: true,
835
+ text: "Hours",
836
+ color: "#9CF"
837
+ },
838
+ Minutes: {
839
+ show: true,
840
+ text: "Minutes",
841
+ color: "#BFB"
842
+ },
843
+ Seconds: {
844
+ show: true,
845
+ text: "Seconds",
846
+ color: "#F99"
847
+ }
848
+ }
849
+ };
850
+
851
+ // Time circle class
852
+ var TC_Class = function(elements, options) {
853
+ this.elements = elements;
854
+ this.options = options;
855
+ this.foreach();
856
+ };
857
+
858
+ TC_Class.prototype.getInstance = function(element) {
859
+ var instance;
860
+
861
+ var cur_id = $(element).data("tc-id");
862
+ if (typeof cur_id === "undefined") {
863
+ cur_id = guid();
864
+ $(element).attr("data-tc-id", cur_id);
865
+ }
866
+ if (typeof TC_Instance_List[cur_id] === "undefined") {
867
+ var options = this.options;
868
+ var element_options = $(element).data('options');
869
+ if (typeof element_options === "string") {
870
+ element_options = JSON.parse(element_options);
871
+ }
872
+ if (typeof element_options === "object") {
873
+ options = $.extend(true, {}, this.options, element_options);
874
+ }
875
+ instance = new TC_Instance(element, options);
876
+ TC_Instance_List[cur_id] = instance;
877
+ }
878
+ else {
879
+ instance = TC_Instance_List[cur_id];
880
+ if (typeof this.options !== "undefined") {
881
+ instance.setOptions(this.options);
882
+ }
883
+ }
884
+ return instance;
885
+ };
886
+
887
+ TC_Class.prototype.addTime = function(seconds_to_add) {
888
+ this.foreach(function(instance) {
889
+ instance.addTime(seconds_to_add);
890
+ });
891
+ };
892
+
893
+ TC_Class.prototype.foreach = function(callback) {
894
+ var _this = this;
895
+ this.elements.each(function() {
896
+ var instance = _this.getInstance(this);
897
+ if (typeof callback === "function") {
898
+ callback(instance);
899
+ }
900
+ });
901
+ return this;
902
+ };
903
+
904
+ TC_Class.prototype.start = function() {
905
+ this.foreach(function(instance) {
906
+ instance.start();
907
+ });
908
+ return this;
909
+ };
910
+
911
+ TC_Class.prototype.stop = function() {
912
+ this.foreach(function(instance) {
913
+ instance.stop();
914
+ });
915
+ return this;
916
+ };
917
+
918
+ TC_Class.prototype.restart = function() {
919
+ this.foreach(function(instance) {
920
+ instance.restart();
921
+ });
922
+ return this;
923
+ };
924
+
925
+ TC_Class.prototype.rebuild = function() {
926
+ this.foreach(function(instance) {
927
+ instance.initialize(false);
928
+ });
929
+ return this;
930
+ };
931
+
932
+ TC_Class.prototype.getTime = function() {
933
+ return this.getInstance(this.elements[0]).timeLeft();
934
+ };
935
+
936
+ TC_Class.prototype.addListener = function(f, type) {
937
+ if (typeof type === "undefined")
938
+ type = "visible";
939
+ var _this = this;
940
+ this.foreach(function(instance) {
941
+ instance.addListener(f, _this.elements, type);
942
+ });
943
+ return this;
944
+ };
945
+
946
+ TC_Class.prototype.destroy = function() {
947
+ this.foreach(function(instance) {
948
+ instance.destroy();
949
+ });
950
+ return this;
951
+ };
952
+
953
+ TC_Class.prototype.end = function() {
954
+ return this.elements;
955
+ };
956
+
957
+ $.fn.TimeCircles = function(options) {
958
+ return new TC_Class(this, options);
959
+ };
960
+ }(jQuery));
assets/js/ionRangeSlider.js ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Ion.RangeSlider
2
+ version 2.2.0 Build: 380
3
+ © Denis Ineshin, 2017
4
+ https://github.com/IonDen
5
+
6
+ Project page: http://ionden.com/a/plugins/ion.rangeSlider/en.html
7
+ GitHub page: https://github.com/IonDen/ion.rangeSlider
8
+
9
+ Released under MIT licence:
10
+ http://ionden.com/a/plugins/licence-en.html */
11
+
12
+ !function(t){"function"==typeof define&&define.amd?define(["jquery"],function(i){return t(i,document,window,navigator)}):"object"==typeof exports?t(require("jquery"),document,window,navigator):t(jQuery,document,window,navigator)}(function(t,i,s,o,e){"use strict";var h,r,n=0,a=(h=o.userAgent,r=/msie\s\d+/i,h.search(r)>0&&r.exec(h).toString().split(" ")[1]<9&&(t("html").addClass("lt-ie9"),!0));Function.prototype.bind||(Function.prototype.bind=function(t){var i=this,s=[].slice;if("function"!=typeof i)throw new TypeError;var o=s.call(arguments,1),e=function(){if(this instanceof e){var h=function(){};h.prototype=i.prototype;var r=new h,n=i.apply(r,o.concat(s.call(arguments)));return Object(n)===n?n:r}return i.apply(t,o.concat(s.call(arguments)))};return e}),Array.prototype.indexOf||(Array.prototype.indexOf=function(t,i){var s;if(null==this)throw new TypeError('"this" is null or not defined');var o=Object(this),e=o.length>>>0;if(0===e)return-1;var h=+i||0;if(Math.abs(h)===1/0&&(h=0),h>=e)return-1;for(s=Math.max(h>=0?h:e-Math.abs(h),0);s<e;){if(s in o&&o[s]===t)return s;s++}return-1});var c=function(o,h,r){this.VERSION="2.2.0",this.input=o,this.plugin_count=r,this.current_plugin=0,this.calc_count=0,this.update_tm=0,this.old_from=0,this.old_to=0,this.old_min_interval=null,this.raf_id=null,this.dragging=!1,this.force_redraw=!1,this.no_diapason=!1,this.has_tab_index=!0,this.is_key=!1,this.is_update=!1,this.is_start=!0,this.is_finish=!1,this.is_active=!1,this.is_resize=!1,this.is_click=!1,h=h||{},this.$cache={win:t(s),body:t(i.body),input:t(o),cont:null,rs:null,min:null,max:null,from:null,to:null,single:null,bar:null,line:null,s_single:null,s_from:null,s_to:null,shad_single:null,shad_from:null,shad_to:null,edge:null,grid:null,grid_labels:[]},this.coords={x_gap:0,x_pointer:0,w_rs:0,w_rs_old:0,w_handle:0,p_gap:0,p_gap_left:0,p_gap_right:0,p_step:0,p_pointer:0,p_handle:0,p_single_fake:0,p_single_real:0,p_from_fake:0,p_from_real:0,p_to_fake:0,p_to_real:0,p_bar_x:0,p_bar_w:0,grid_gap:0,big_num:0,big:[],big_w:[],big_p:[],big_x:[]},this.labels={w_min:0,w_max:0,w_from:0,w_to:0,w_single:0,p_min:0,p_max:0,p_from_fake:0,p_from_left:0,p_to_fake:0,p_to_left:0,p_single_fake:0,p_single_left:0};var n,a,c,l=this.$cache.input,_=l.prop("value");n={type:"single",min:10,max:100,from:null,to:null,step:1,min_interval:0,max_interval:0,drag_interval:!1,values:[],p_values:[],from_fixed:!1,from_min:null,from_max:null,from_shadow:!1,to_fixed:!1,to_min:null,to_max:null,to_shadow:!1,prettify_enabled:!0,prettify_separator:" ",prettify:null,force_edges:!1,keyboard:!0,grid:!1,grid_margin:!0,grid_num:4,grid_snap:!1,hide_min_max:!1,hide_from_to:!1,prefix:"",postfix:"",max_postfix:"",decorate_both:!1,values_separator:" — ",input_values_separator:";",disable:!1,block:!1,extra_classes:"",scope:null,onStart:null,onChange:null,onFinish:null,onUpdate:null},"INPUT"!==l[0].nodeName&&console&&console.warn&&console.warn("Base element should be <input>!",l[0]),(a={type:l.data("type"),min:l.data("min"),max:l.data("max"),from:l.data("from"),to:l.data("to"),step:l.data("step"),min_interval:l.data("minInterval"),max_interval:l.data("maxInterval"),drag_interval:l.data("dragInterval"),values:l.data("values"),from_fixed:l.data("fromFixed"),from_min:l.data("fromMin"),from_max:l.data("fromMax"),from_shadow:l.data("fromShadow"),to_fixed:l.data("toFixed"),to_min:l.data("toMin"),to_max:l.data("toMax"),to_shadow:l.data("toShadow"),prettify_enabled:l.data("prettifyEnabled"),prettify_separator:l.data("prettifySeparator"),force_edges:l.data("forceEdges"),keyboard:l.data("keyboard"),grid:l.data("grid"),grid_margin:l.data("gridMargin"),grid_num:l.data("gridNum"),grid_snap:l.data("gridSnap"),hide_min_max:l.data("hideMinMax"),hide_from_to:l.data("hideFromTo"),prefix:l.data("prefix"),postfix:l.data("postfix"),max_postfix:l.data("maxPostfix"),decorate_both:l.data("decorateBoth"),values_separator:l.data("valuesSeparator"),input_values_separator:l.data("inputValuesSeparator"),disable:l.data("disable"),block:l.data("block"),extra_classes:l.data("extraClasses")}).values=a.values&&a.values.split(",");for(c in a)a.hasOwnProperty(c)&&(a[c]!==e&&""!==a[c]||delete a[c]);_!==e&&""!==_&&((_=_.split(a.input_values_separator||h.input_values_separator||";"))[0]&&_[0]==+_[0]&&(_[0]=+_[0]),_[1]&&_[1]==+_[1]&&(_[1]=+_[1]),h&&h.values&&h.values.length?(n.from=_[0]&&h.values.indexOf(_[0]),n.to=_[1]&&h.values.indexOf(_[1])):(n.from=_[0]&&+_[0],n.to=_[1]&&+_[1])),t.extend(n,h),t.extend(n,a),this.options=n,this.update_check={},this.validate(),this.result={input:this.$cache.input,slider:null,min:this.options.min,max:this.options.max,from:this.options.from,from_percent:0,from_value:null,to:this.options.to,to_percent:0,to_value:null},this.init()};c.prototype={init:function(t){this.no_diapason=!1,this.coords.p_step=this.convertToPercent(this.options.step,!0),this.target="base",this.toggleInput(),this.append(),this.setMinMax(),t?(this.force_redraw=!0,this.calc(!0),this.callOnUpdate()):(this.force_redraw=!0,this.calc(!0),this.callOnStart()),this.updateScene()},append:function(){var t='<span class="irs js-irs-'+this.plugin_count+" "+this.options.extra_classes+'"></span>';this.$cache.input.before(t),this.$cache.input.prop("readonly",!0),this.$cache.cont=this.$cache.input.prev(),this.result.slider=this.$cache.cont,this.$cache.cont.html('<span class="irs"><span class="irs-line" tabindex="0"><span class="irs-line-left"></span><span class="irs-line-mid"></span><span class="irs-line-right"></span></span><span class="irs-min">0</span><span class="irs-max">1</span><span class="irs-from">0</span><span class="irs-to">0</span><span class="irs-single">0</span></span><span class="irs-grid"></span><span class="irs-bar"></span>'),this.$cache.rs=this.$cache.cont.find(".irs"),this.$cache.min=this.$cache.cont.find(".irs-min"),this.$cache.max=this.$cache.cont.find(".irs-max"),this.$cache.from=this.$cache.cont.find(".irs-from"),this.$cache.to=this.$cache.cont.find(".irs-to"),this.$cache.single=this.$cache.cont.find(".irs-single"),this.$cache.bar=this.$cache.cont.find(".irs-bar"),this.$cache.line=this.$cache.cont.find(".irs-line"),this.$cache.grid=this.$cache.cont.find(".irs-grid"),"single"===this.options.type?(this.$cache.cont.append('<span class="irs-bar-edge"></span><span class="irs-shadow shadow-single"></span><span class="irs-slider single"></span>'),this.$cache.edge=this.$cache.cont.find(".irs-bar-edge"),this.$cache.s_single=this.$cache.cont.find(".single"),this.$cache.from[0].style.visibility="hidden",this.$cache.to[0].style.visibility="hidden",this.$cache.shad_single=this.$cache.cont.find(".shadow-single")):(this.$cache.cont.append('<span class="irs-shadow shadow-from"></span><span class="irs-shadow shadow-to"></span><span class="irs-slider from"></span><span class="irs-slider to"></span>'),this.$cache.s_from=this.$cache.cont.find(".from"),this.$cache.s_to=this.$cache.cont.find(".to"),this.$cache.shad_from=this.$cache.cont.find(".shadow-from"),this.$cache.shad_to=this.$cache.cont.find(".shadow-to"),this.setTopHandler()),this.options.hide_from_to&&(this.$cache.from[0].style.display="none",this.$cache.to[0].style.display="none",this.$cache.single[0].style.display="none"),this.appendGrid(),this.options.disable?(this.appendDisableMask(),this.$cache.input[0].disabled=!0):(this.$cache.input[0].disabled=!1,this.removeDisableMask(),this.bindEvents()),this.options.disable||(this.options.block?this.appendDisableMask():this.removeDisableMask()),this.options.drag_interval&&(this.$cache.bar[0].style.cursor="ew-resize")},setTopHandler:function(){var t=this.options.min,i=this.options.max,s=this.options.from,o=this.options.to;s>t&&o===i?this.$cache.s_from.addClass("type_last"):o<i&&this.$cache.s_to.addClass("type_last")},changeLevel:function(t){switch(t){case"single":this.coords.p_gap=this.toFixed(this.coords.p_pointer-this.coords.p_single_fake),this.$cache.s_single.addClass("state_hover");break;case"from":this.coords.p_gap=this.toFixed(this.coords.p_pointer-this.coords.p_from_fake),this.$cache.s_from.addClass("state_hover"),this.$cache.s_from.addClass("type_last"),this.$cache.s_to.removeClass("type_last");break;case"to":this.coords.p_gap=this.toFixed(this.coords.p_pointer-this.coords.p_to_fake),this.$cache.s_to.addClass("state_hover"),this.$cache.s_to.addClass("type_last"),this.$cache.s_from.removeClass("type_last");break;case"both":this.coords.p_gap_left=this.toFixed(this.coords.p_pointer-this.coords.p_from_fake),this.coords.p_gap_right=this.toFixed(this.coords.p_to_fake-this.coords.p_pointer),this.$cache.s_to.removeClass("type_last"),this.$cache.s_from.removeClass("type_last")}},appendDisableMask:function(){this.$cache.cont.append('<span class="irs-disable-mask"></span>'),this.$cache.cont.addClass("irs-disabled")},removeDisableMask:function(){this.$cache.cont.remove(".irs-disable-mask"),this.$cache.cont.removeClass("irs-disabled")},remove:function(){this.$cache.cont.remove(),this.$cache.cont=null,this.$cache.line.off("keydown.irs_"+this.plugin_count),this.$cache.body.off("touchmove.irs_"+this.plugin_count),this.$cache.body.off("mousemove.irs_"+this.plugin_count),this.$cache.win.off("touchend.irs_"+this.plugin_count),this.$cache.win.off("mouseup.irs_"+this.plugin_count),a&&(this.$cache.body.off("mouseup.irs_"+this.plugin_count),this.$cache.body.off("mouseleave.irs_"+this.plugin_count)),this.$cache.grid_labels=[],this.coords.big=[],this.coords.big_w=[],this.coords.big_p=[],this.coords.big_x=[],cancelAnimationFrame(this.raf_id)},bindEvents:function(){this.no_diapason||(this.$cache.body.on("touchmove.irs_"+this.plugin_count,this.pointerMove.bind(this)),this.$cache.body.on("mousemove.irs_"+this.plugin_count,this.pointerMove.bind(this)),this.$cache.win.on("touchend.irs_"+this.plugin_count,this.pointerUp.bind(this)),this.$cache.win.on("mouseup.irs_"+this.plugin_count,this.pointerUp.bind(this)),this.$cache.line.on("touchstart.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.line.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.line.on("focus.irs_"+this.plugin_count,this.pointerFocus.bind(this)),this.options.drag_interval&&"double"===this.options.type?(this.$cache.bar.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"both")),this.$cache.bar.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"both"))):(this.$cache.bar.on("touchstart.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.bar.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click"))),"single"===this.options.type?(this.$cache.single.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"single")),this.$cache.s_single.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"single")),this.$cache.shad_single.on("touchstart.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.single.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"single")),this.$cache.s_single.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"single")),this.$cache.edge.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.shad_single.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click"))):(this.$cache.single.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,null)),this.$cache.single.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,null)),this.$cache.from.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"from")),this.$cache.s_from.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"from")),this.$cache.to.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"to")),this.$cache.s_to.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"to")),this.$cache.shad_from.on("touchstart.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.shad_to.on("touchstart.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.from.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"from")),this.$cache.s_from.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"from")),this.$cache.to.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"to")),this.$cache.s_to.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"to")),this.$cache.shad_from.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.shad_to.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click"))),this.options.keyboard&&this.$cache.line.on("keydown.irs_"+this.plugin_count,this.key.bind(this,"keyboard")),a&&(this.$cache.body.on("mouseup.irs_"+this.plugin_count,this.pointerUp.bind(this)),this.$cache.body.on("mouseleave.irs_"+this.plugin_count,this.pointerUp.bind(this))))},pointerFocus:function(t){var i,s;this.target||(i=(s="single"===this.options.type?this.$cache.single:this.$cache.from).offset().left,i+=s.width()/2-1,this.pointerClick("single",{preventDefault:function(){},pageX:i}))},pointerMove:function(t){if(this.dragging){var i=t.pageX||t.originalEvent.touches&&t.originalEvent.touches[0].pageX;this.coords.x_pointer=i-this.coords.x_gap,this.calc()}},pointerUp:function(i){this.current_plugin===this.plugin_count&&this.is_active&&(this.is_active=!1,this.$cache.cont.find(".state_hover").removeClass("state_hover"),this.force_redraw=!0,a&&t("*").prop("unselectable",!1),this.updateScene(),this.restoreOriginalMinInterval(),(t.contains(this.$cache.cont[0],i.target)||this.dragging)&&this.callOnFinish(),this.dragging=!1)},pointerDown:function(i,s){s.preventDefault();var o=s.pageX||s.originalEvent.touches&&s.originalEvent.touches[0].pageX;2!==s.button&&("both"===i&&this.setTempMinInterval(),i||(i=this.target||"from"),this.current_plugin=this.plugin_count,this.target=i,this.is_active=!0,this.dragging=!0,this.coords.x_gap=this.$cache.rs.offset().left,this.coords.x_pointer=o-this.coords.x_gap,this.calcPointerPercent(),this.changeLevel(i),a&&t("*").prop("unselectable",!0),this.$cache.line.trigger("focus"),this.updateScene())},pointerClick:function(t,i){i.preventDefault();var s=i.pageX||i.originalEvent.touches&&i.originalEvent.touches[0].pageX;2!==i.button&&(this.current_plugin=this.plugin_count,this.target=t,this.is_click=!0,this.coords.x_gap=this.$cache.rs.offset().left,this.coords.x_pointer=+(s-this.coords.x_gap).toFixed(),this.force_redraw=!0,this.calc(),this.$cache.line.trigger("focus"))},key:function(t,i){if(!(this.current_plugin!==this.plugin_count||i.altKey||i.ctrlKey||i.shiftKey||i.metaKey)){switch(i.which){case 83:case 65:case 40:case 37:i.preventDefault(),this.moveByKey(!1);break;case 87:case 68:case 38:case 39:i.preventDefault(),this.moveByKey(!0)}return!0}},moveByKey:function(t){var i=this.coords.p_pointer,s=(this.options.max-this.options.min)/100;s=this.options.step/s,t?i+=s:i-=s,this.coords.x_pointer=this.toFixed(this.coords.w_rs/100*i),this.is_key=!0,this.calc()},setMinMax:function(){if(this.options){if(this.options.hide_min_max)return this.$cache.min[0].style.display="none",void(this.$cache.max[0].style.display="none");if(this.options.values.length)this.$cache.min.html(this.decorate(this.options.p_values[this.options.min])),this.$cache.max.html(this.decorate(this.options.p_values[this.options.max]));else{var t=this._prettify(this.options.min),i=this._prettify(this.options.max);this.result.min_pretty=t,this.result.max_pretty=i,this.$cache.min.html(this.decorate(t,this.options.min)),this.$cache.max.html(this.decorate(i,this.options.max))}this.labels.w_min=this.$cache.min.outerWidth(!1),this.labels.w_max=this.$cache.max.outerWidth(!1)}},setTempMinInterval:function(){var t=this.result.to-this.result.from;null===this.old_min_interval&&(this.old_min_interval=this.options.min_interval),this.options.min_interval=t},restoreOriginalMinInterval:function(){null!==this.old_min_interval&&(this.options.min_interval=this.old_min_interval,this.old_min_interval=null)},calc:function(t){if(this.options&&(this.calc_count++,(10===this.calc_count||t)&&(this.calc_count=0,this.coords.w_rs=this.$cache.rs.outerWidth(!1),this.calcHandlePercent()),this.coords.w_rs)){this.calcPointerPercent();var i=this.getHandleX();switch("both"===this.target&&(this.coords.p_gap=0,i=this.getHandleX()),"click"===this.target&&(this.coords.p_gap=this.coords.p_handle/2,i=this.getHandleX(),this.options.drag_interval?this.target="both_one":this.target=this.chooseHandle(i)),this.target){case"base":var s=(this.options.max-this.options.min)/100,o=(this.result.from-this.options.min)/s,e=(this.result.to-this.options.min)/s;this.coords.p_single_real=this.toFixed(o),this.coords.p_from_real=this.toFixed(o),this.coords.p_to_real=this.toFixed(e),this.coords.p_single_real=this.checkDiapason(this.coords.p_single_real,this.options.from_min,this.options.from_max),this.coords.p_from_real=this.checkDiapason(this.coords.p_from_real,this.options.from_min,this.options.from_max),this.coords.p_to_real=this.checkDiapason(this.coords.p_to_real,this.options.to_min,this.options.to_max),this.coords.p_single_fake=this.convertToFakePercent(this.coords.p_single_real),this.coords.p_from_fake=this.convertToFakePercent(this.coords.p_from_real),this.coords.p_to_fake=this.convertToFakePercent(this.coords.p_to_real),this.target=null;break;case"single":if(this.options.from_fixed)break;this.coords.p_single_real=this.convertToRealPercent(i),this.coords.p_single_real=this.calcWithStep(this.coords.p_single_real),this.coords.p_single_real=this.checkDiapason(this.coords.p_single_real,this.options.from_min,this.options.from_max),this.coords.p_single_fake=this.convertToFakePercent(this.coords.p_single_real);break;case"from":if(this.options.from_fixed)break;this.coords.p_from_real=this.convertToRealPercent(i),this.coords.p_from_real=this.calcWithStep(this.coords.p_from_real),this.coords.p_from_real>this.coords.p_to_real&&(this.coords.p_from_real=this.coords.p_to_real),this.coords.p_from_real=this.checkDiapason(this.coords.p_from_real,this.options.from_min,this.options.from_max),this.coords.p_from_real=this.checkMinInterval(this.coords.p_from_real,this.coords.p_to_real,"from"),this.coords.p_from_real=this.checkMaxInterval(this.coords.p_from_real,this.coords.p_to_real,"from"),this.coords.p_from_fake=this.convertToFakePercent(this.coords.p_from_real);break;case"to":if(this.options.to_fixed)break;this.coords.p_to_real=this.convertToRealPercent(i),this.coords.p_to_real=this.calcWithStep(this.coords.p_to_real),this.coords.p_to_real<this.coords.p_from_real&&(this.coords.p_to_real=this.coords.p_from_real),this.coords.p_to_real=this.checkDiapason(this.coords.p_to_real,this.options.to_min,this.options.to_max),this.coords.p_to_real=this.checkMinInterval(this.coords.p_to_real,this.coords.p_from_real,"to"),this.coords.p_to_real=this.checkMaxInterval(this.coords.p_to_real,this.coords.p_from_real,"to"),this.coords.p_to_fake=this.convertToFakePercent(this.coords.p_to_real);break;case"both":if(this.options.from_fixed||this.options.to_fixed)break;i=this.toFixed(i+.001*this.coords.p_handle),this.coords.p_from_real=this.convertToRealPercent(i)-this.coords.p_gap_left,this.coords.p_from_real=this.calcWithStep(this.coords.p_from_real),this.coords.p_from_real=this.checkDiapason(this.coords.p_from_real,this.options.from_min,this.options.from_max),this.coords.p_from_real=this.checkMinInterval(this.coords.p_from_real,this.coords.p_to_real,"from"),this.coords.p_from_fake=this.convertToFakePercent(this.coords.p_from_real),this.coords.p_to_real=this.convertToRealPercent(i)+this.coords.p_gap_right,this.coords.p_to_real=this.calcWithStep(this.coords.p_to_real),this.coords.p_to_real=this.checkDiapason(this.coords.p_to_real,this.options.to_min,this.options.to_max),this.coords.p_to_real=this.checkMinInterval(this.coords.p_to_real,this.coords.p_from_real,"to"),this.coords.p_to_fake=this.convertToFakePercent(this.coords.p_to_real);break;case"both_one":if(this.options.from_fixed||this.options.to_fixed)break;var h=this.convertToRealPercent(i),r=this.result.from_percent,n=this.result.to_percent-r,a=n/2,c=h-a,l=h+a;c<0&&(l=(c=0)+n),l>100&&(c=(l=100)-n),this.coords.p_from_real=this.calcWithStep(c),this.coords.p_from_real=this.checkDiapason(this.coords.p_from_real,this.options.from_min,this.options.from_max),this.coords.p_from_fake=this.convertToFakePercent(this.coords.p_from_real),this.coords.p_to_real=this.calcWithStep(l),this.coords.p_to_real=this.checkDiapason(this.coords.p_to_real,this.options.to_min,this.options.to_max),this.coords.p_to_fake=this.convertToFakePercent(this.coords.p_to_real)}"single"===this.options.type?(this.coords.p_bar_x=this.coords.p_handle/2,this.coords.p_bar_w=this.coords.p_single_fake,this.result.from_percent=this.coords.p_single_real,this.result.from=this.convertToValue(this.coords.p_single_real),this.result.from_pretty=this._prettify(this.result.from),this.options.values.length&&(this.result.from_value=this.options.values[this.result.from])):(this.coords.p_bar_x=this.toFixed(this.coords.p_from_fake+this.coords.p_handle/2),this.coords.p_bar_w=this.toFixed(this.coords.p_to_fake-this.coords.p_from_fake),this.result.from_percent=this.coords.p_from_real,this.result.from=this.convertToValue(this.coords.p_from_real),this.result.from_pretty=this._prettify(this.result.from),this.result.to_percent=this.coords.p_to_real,this.result.to=this.convertToValue(this.coords.p_to_real),this.result.to_pretty=this._prettify(this.result.to),this.options.values.length&&(this.result.from_value=this.options.values[this.result.from],this.result.to_value=this.options.values[this.result.to])),this.calcMinMax(),this.calcLabels()}},calcPointerPercent:function(){this.coords.w_rs?(this.coords.x_pointer<0||isNaN(this.coords.x_pointer)?this.coords.x_pointer=0:this.coords.x_pointer>this.coords.w_rs&&(this.coords.x_pointer=this.coords.w_rs),this.coords.p_pointer=this.toFixed(this.coords.x_pointer/this.coords.w_rs*100)):this.coords.p_pointer=0},convertToRealPercent:function(t){return t/(100-this.coords.p_handle)*100},convertToFakePercent:function(t){return t/100*(100-this.coords.p_handle)},getHandleX:function(){var t=100-this.coords.p_handle,i=this.toFixed(this.coords.p_pointer-this.coords.p_gap);return i<0?i=0:i>t&&(i=t),i},calcHandlePercent:function(){"single"===this.options.type?this.coords.w_handle=this.$cache.s_single.outerWidth(!1):this.coords.w_handle=this.$cache.s_from.outerWidth(!1),this.coords.p_handle=this.toFixed(this.coords.w_handle/this.coords.w_rs*100)},chooseHandle:function(t){return"single"===this.options.type?"single":t>=this.coords.p_from_real+(this.coords.p_to_real-this.coords.p_from_real)/2?this.options.to_fixed?"from":"to":this.options.from_fixed?"to":"from"},calcMinMax:function(){this.coords.w_rs&&(this.labels.p_min=this.labels.w_min/this.coords.w_rs*100,this.labels.p_max=this.labels.w_max/this.coords.w_rs*100)},calcLabels:function(){this.coords.w_rs&&!this.options.hide_from_to&&("single"===this.options.type?(this.labels.w_single=this.$cache.single.outerWidth(!1),this.labels.p_single_fake=this.labels.w_single/this.coords.w_rs*100,this.labels.p_single_left=this.coords.p_single_fake+this.coords.p_handle/2-this.labels.p_single_fake/2,this.labels.p_single_left=this.checkEdges(this.labels.p_single_left,this.labels.p_single_fake)):(this.labels.w_from=this.$cache.from.outerWidth(!1),this.labels.p_from_fake=this.labels.w_from/this.coords.w_rs*100,this.labels.p_from_left=this.coords.p_from_fake+this.coords.p_handle/2-this.labels.p_from_fake/2,this.labels.p_from_left=this.toFixed(this.labels.p_from_left),this.labels.p_from_left=this.checkEdges(this.labels.p_from_left,this.labels.p_from_fake),this.labels.w_to=this.$cache.to.outerWidth(!1),this.labels.p_to_fake=this.labels.w_to/this.coords.w_rs*100,this.labels.p_to_left=this.coords.p_to_fake+this.coords.p_handle/2-this.labels.p_to_fake/2,this.labels.p_to_left=this.toFixed(this.labels.p_to_left),this.labels.p_to_left=this.checkEdges(this.labels.p_to_left,this.labels.p_to_fake),this.labels.w_single=this.$cache.single.outerWidth(!1),this.labels.p_single_fake=this.labels.w_single/this.coords.w_rs*100,this.labels.p_single_left=(this.labels.p_from_left+this.labels.p_to_left+this.labels.p_to_fake)/2-this.labels.p_single_fake/2,this.labels.p_single_left=this.toFixed(this.labels.p_single_left),this.labels.p_single_left=this.checkEdges(this.labels.p_single_left,this.labels.p_single_fake)))},updateScene:function(){this.raf_id&&(cancelAnimationFrame(this.raf_id),this.raf_id=null),clearTimeout(this.update_tm),this.update_tm=null,this.options&&(this.drawHandles(),this.is_active?this.raf_id=requestAnimationFrame(this.updateScene.bind(this)):this.update_tm=setTimeout(this.updateScene.bind(this),300))},drawHandles:function(){this.coords.w_rs=this.$cache.rs.outerWidth(!1),this.coords.w_rs&&(this.coords.w_rs!==this.coords.w_rs_old&&(this.target="base",this.is_resize=!0),(this.coords.w_rs!==this.coords.w_rs_old||this.force_redraw)&&(this.setMinMax(),this.calc(!0),this.drawLabels(),this.options.grid&&(this.calcGridMargin(),this.calcGridLabels()),this.force_redraw=!0,this.coords.w_rs_old=this.coords.w_rs,this.drawShadow()),this.coords.w_rs&&(this.dragging||this.force_redraw||this.is_key)&&((this.old_from!==this.result.from||this.old_to!==this.result.to||this.force_redraw||this.is_key)&&(this.drawLabels(),this.$cache.bar[0].style.left=this.coords.p_bar_x+"%",this.$cache.bar[0].style.width=this.coords.p_bar_w+"%","single"===this.options.type?(this.$cache.s_single[0].style.left=this.coords.p_single_fake+"%",this.$cache.single[0].style.left=this.labels.p_single_left+"%"):(this.$cache.s_from[0].style.left=this.coords.p_from_fake+"%",this.$cache.s_to[0].style.left=this.coords.p_to_fake+"%",(this.old_from!==this.result.from||this.force_redraw)&&(this.$cache.from[0].style.left=this.labels.p_from_left+"%"),(this.old_to!==this.result.to||this.force_redraw)&&(this.$cache.to[0].style.left=this.labels.p_to_left+"%"),this.$cache.single[0].style.left=this.labels.p_single_left+"%"),this.writeToInput(),this.old_from===this.result.from&&this.old_to===this.result.to||this.is_start||(this.$cache.input.trigger("change"),this.$cache.input.trigger("input")),this.old_from=this.result.from,this.old_to=this.result.to,this.is_resize||this.is_update||this.is_start||this.is_finish||this.callOnChange(),(this.is_key||this.is_click)&&(this.is_key=!1,this.is_click=!1,this.callOnFinish()),this.is_update=!1,this.is_resize=!1,this.is_finish=!1),this.is_start=!1,this.is_key=!1,this.is_click=!1,this.force_redraw=!1))},drawLabels:function(){if(this.options){var t,i,s,o,e,h=this.options.values.length,r=this.options.p_values;if(!this.options.hide_from_to)if("single"===this.options.type)h?(t=this.decorate(r[this.result.from]),this.$cache.single.html(t)):(o=this._prettify(this.result.from),t=this.decorate(o,this.result.from),this.$cache.single.html(t)),this.calcLabels(),this.labels.p_single_left<this.labels.p_min+1?this.$cache.min[0].style.visibility="hidden":this.$cache.min[0].style.visibility="visible",this.labels.p_single_left+this.labels.p_single_fake>100-this.labels.p_max-1?this.$cache.max[0].style.visibility="hidden":this.$cache.max[0].style.visibility="visible";else{h?(this.options.decorate_both?(t=this.decorate(r[this.result.from]),t+=this.options.values_separator,t+=this.decorate(r[this.result.to])):t=this.decorate(r[this.result.from]+this.options.values_separator+r[this.result.to]),i=this.decorate(r[this.result.from]),s=this.decorate(r[this.result.to]),this.$cache.single.html(t),this.$cache.from.html(i),this.$cache.to.html(s)):(o=this._prettify(this.result.from),e=this._prettify(this.result.to),this.options.decorate_both?(t=this.decorate(o,this.result.from),t+=this.options.values_separator,t+=this.decorate(e,this.result.to)):t=this.decorate(o+this.options.values_separator+e,this.result.to),i=this.decorate(o,this.result.from),s=this.decorate(e,this.result.to),this.$cache.single.html(t),this.$cache.from.html(i),this.$cache.to.html(s)),this.calcLabels();var n=Math.min(this.labels.p_single_left,this.labels.p_from_left),a=this.labels.p_single_left+this.labels.p_single_fake,c=this.labels.p_to_left+this.labels.p_to_fake,l=Math.max(a,c);this.labels.p_from_left+this.labels.p_from_fake>=this.labels.p_to_left?(this.$cache.from[0].style.visibility="hidden",this.$cache.to[0].style.visibility="hidden",this.$cache.single[0].style.visibility="visible",this.result.from===this.result.to?("from"===this.target?this.$cache.from[0].style.visibility="visible":"to"===this.target?this.$cache.to[0].style.visibility="visible":this.target||(this.$cache.from[0].style.visibility="visible"),this.$cache.single[0].style.visibility="hidden",l=c):(this.$cache.from[0].style.visibility="hidden",this.$cache.to[0].style.visibility="hidden",this.$cache.single[0].style.visibility="visible",l=Math.max(a,c))):(this.$cache.from[0].style.visibility="visible",this.$cache.to[0].style.visibility="visible",this.$cache.single[0].style.visibility="hidden"),n<this.labels.p_min+1?this.$cache.min[0].style.visibility="hidden":this.$cache.min[0].style.visibility="visible",l>100-this.labels.p_max-1?this.$cache.max[0].style.visibility="hidden":this.$cache.max[0].style.visibility="visible"}}},drawShadow:function(){var t,i,s,o,e=this.options,h=this.$cache,r="number"==typeof e.from_min&&!isNaN(e.from_min),n="number"==typeof e.from_max&&!isNaN(e.from_max),a="number"==typeof e.to_min&&!isNaN(e.to_min),c="number"==typeof e.to_max&&!isNaN(e.to_max);"single"===e.type?e.from_shadow&&(r||n)?(t=this.convertToPercent(r?e.from_min:e.min),i=this.convertToPercent(n?e.from_max:e.max)-t,t=this.toFixed(t-this.coords.p_handle/100*t),i=this.toFixed(i-this.coords.p_handle/100*i),t+=this.coords.p_handle/2,h.shad_single[0].style.display="block",h.shad_single[0].style.left=t+"%",h.shad_single[0].style.width=i+"%"):h.shad_single[0].style.display="none":(e.from_shadow&&(r||n)?(t=this.convertToPercent(r?e.from_min:e.min),i=this.convertToPercent(n?e.from_max:e.max)-t,t=this.toFixed(t-this.coords.p_handle/100*t),i=this.toFixed(i-this.coords.p_handle/100*i),t+=this.coords.p_handle/2,h.shad_from[0].style.display="block",h.shad_from[0].style.left=t+"%",h.shad_from[0].style.width=i+"%"):h.shad_from[0].style.display="none",e.to_shadow&&(a||c)?(s=this.convertToPercent(a?e.to_min:e.min),o=this.convertToPercent(c?e.to_max:e.max)-s,s=this.toFixed(s-this.coords.p_handle/100*s),o=this.toFixed(o-this.coords.p_handle/100*o),s+=this.coords.p_handle/2,h.shad_to[0].style.display="block",h.shad_to[0].style.left=s+"%",h.shad_to[0].style.width=o+"%"):h.shad_to[0].style.display="none")},writeToInput:function(){"single"===this.options.type?(this.options.values.length?this.$cache.input.prop("value",this.result.from_value):this.$cache.input.prop("value",this.result.from),this.$cache.input.data("from",this.result.from)):(this.options.values.length?this.$cache.input.prop("value",this.result.from_value+this.options.input_values_separator+this.result.to_value):this.$cache.input.prop("value",this.result.from+this.options.input_values_separator+this.result.to),this.$cache.input.data("from",this.result.from),this.$cache.input.data("to",this.result.to))},callOnStart:function(){this.writeToInput(),this.options.onStart&&"function"==typeof this.options.onStart&&(this.options.scope?this.options.onStart.call(this.options.scope,this.result):this.options.onStart(this.result))},callOnChange:function(){this.writeToInput(),this.options.onChange&&"function"==typeof this.options.onChange&&(this.options.scope?this.options.onChange.call(this.options.scope,this.result):this.options.onChange(this.result))},callOnFinish:function(){this.writeToInput(),this.options.onFinish&&"function"==typeof this.options.onFinish&&(this.options.scope?this.options.onFinish.call(this.options.scope,this.result):this.options.onFinish(this.result))},callOnUpdate:function(){this.writeToInput(),this.options.onUpdate&&"function"==typeof this.options.onUpdate&&(this.options.scope?this.options.onUpdate.call(this.options.scope,this.result):this.options.onUpdate(this.result))},toggleInput:function(){this.$cache.input.toggleClass("irs-hidden-input"),this.has_tab_index?this.$cache.input.prop("tabindex",-1):this.$cache.input.removeProp("tabindex"),this.has_tab_index=!this.has_tab_index},convertToPercent:function(t,i){var s,o=this.options.max-this.options.min,e=o/100;return o?(s=(i?t:t-this.options.min)/e,this.toFixed(s)):(this.no_diapason=!0,0)},convertToValue:function(t){var i,s,o=this.options.min,e=this.options.max,h=o.toString().split(".")[1],r=e.toString().split(".")[1],n=0,a=0;if(0===t)return this.options.min;if(100===t)return this.options.max;h&&(n=i=h.length),r&&(n=s=r.length),i&&s&&(n=i>=s?i:s),o<0&&(o=+(o+(a=Math.abs(o))).toFixed(n),e=+(e+a).toFixed(n));var c,l=(e-o)/100*t+o,_=this.options.step.toString().split(".")[1];return _?l=+l.toFixed(_.length):(l/=this.options.step,l=+(l*=this.options.step).toFixed(0)),a&&(l-=a),(c=_?+l.toFixed(_.length):this.toFixed(l))<this.options.min?c=this.options.min:c>this.options.max&&(c=this.options.max),c},calcWithStep:function(t){var i=Math.round(t/this.coords.p_step)*this.coords.p_step;return i>100&&(i=100),100===t&&(i=100),this.toFixed(i)},checkMinInterval:function(t,i,s){var o,e,h=this.options;return h.min_interval?(o=this.convertToValue(t),e=this.convertToValue(i),"from"===s?e-o<h.min_interval&&(o=e-h.min_interval):o-e<h.min_interval&&(o=e+h.min_interval),this.convertToPercent(o)):t},checkMaxInterval:function(t,i,s){var o,e,h=this.options;return h.max_interval?(o=this.convertToValue(t),e=this.convertToValue(i),"from"===s?e-o>h.max_interval&&(o=e-h.max_interval):o-e>h.max_interval&&(o=e+h.max_interval),this.convertToPercent(o)):t},checkDiapason:function(t,i,s){var o=this.convertToValue(t),e=this.options;return"number"!=typeof i&&(i=e.min),"number"!=typeof s&&(s=e.max),o<i&&(o=i),o>s&&(o=s),this.convertToPercent(o)},toFixed:function(t){return+(t=t.toFixed(20))},_prettify:function(t){return this.options.prettify_enabled?this.options.prettify&&"function"==typeof this.options.prettify?this.options.prettify(t):this.prettify(t):t},prettify:function(t){return t.toString().replace(/(\d{1,3}(?=(?:\d\d\d)+(?!\d)))/g,"$1"+this.options.prettify_separator)},checkEdges:function(t,i){return this.options.force_edges?(t<0?t=0:t>100-i&&(t=100-i),this.toFixed(t)):this.toFixed(t)},validate:function(){var t,i,s=this.options,o=this.result,e=s.values,h=e.length;if("string"==typeof s.min&&(s.min=+s.min),"string"==typeof s.max&&(s.max=+s.max),"string"==typeof s.from&&(s.from=+s.from),"string"==typeof s.to&&(s.to=+s.to),"string"==typeof s.step&&(s.step=+s.step),"string"==typeof s.from_min&&(s.from_min=+s.from_min),"string"==typeof s.from_max&&(s.from_max=+s.from_max),"string"==typeof s.to_min&&(s.to_min=+s.to_min),"string"==typeof s.to_max&&(s.to_max=+s.to_max),"string"==typeof s.grid_num&&(s.grid_num=+s.grid_num),s.max<s.min&&(s.max=s.min),h)for(s.p_values=[],s.min=0,s.max=h-1,s.step=1,s.grid_num=s.max,s.grid_snap=!0,i=0;i<h;i++)t=+e[i],isNaN(t)?t=e[i]:(e[i]=t,t=this._prettify(t)),s.p_values.push(t);("number"!=typeof s.from||isNaN(s.from))&&(s.from=s.min),("number"!=typeof s.to||isNaN(s.to))&&(s.to=s.max),"single"===s.type?(s.from<s.min&&(s.from=s.min),s.from>s.max&&(s.from=s.max)):(s.from<s.min&&(s.from=s.min),s.from>s.max&&(s.from=s.max),s.to<s.min&&(s.to=s.min),s.to>s.max&&(s.to=s.max),this.update_check.from&&(this.update_check.from!==s.from&&s.from>s.to&&(s.from=s.to),this.update_check.to!==s.to&&s.to<s.from&&(s.to=s.from)),s.from>s.to&&(s.from=s.to),s.to<s.from&&(s.to=s.from)),("number"!=typeof s.step||isNaN(s.step)||!s.step||s.step<0)&&(s.step=1),"number"==typeof s.from_min&&s.from<s.from_min&&(s.from=s.from_min),"number"==typeof s.from_max&&s.from>s.from_max&&(s.from=s.from_max),"number"==typeof s.to_min&&s.to<s.to_min&&(s.to=s.to_min),"number"==typeof s.to_max&&s.from>s.to_max&&(s.to=s.to_max),o&&(o.min!==s.min&&(o.min=s.min),o.max!==s.max&&(o.max=s.max),(o.from<o.min||o.from>o.max)&&(o.from=s.from),(o.to<o.min||o.to>o.max)&&(o.to=s.to)),("number"!=typeof s.min_interval||isNaN(s.min_interval)||!s.min_interval||s.min_interval<0)&&(s.min_interval=0),("number"!=typeof s.max_interval||isNaN(s.max_interval)||!s.max_interval||s.max_interval<0)&&(s.max_interval=0),s.min_interval&&s.min_interval>s.max-s.min&&(s.min_interval=s.max-s.min),s.max_interval&&s.max_interval>s.max-s.min&&(s.max_interval=s.max-s.min)},decorate:function(t,i){var s="",o=this.options;return o.prefix&&(s+=o.prefix),s+=t,o.max_postfix&&(o.values.length&&t===o.p_values[o.max]?(s+=o.max_postfix,o.postfix&&(s+=" ")):i===o.max&&(s+=o.max_postfix,o.postfix&&(s+=" "))),o.postfix&&(s+=o.postfix),s},updateFrom:function(){this.result.from=this.options.from,this.result.from_percent=this.convertToPercent(this.result.from),this.result.from_pretty=this._prettify(this.result.from),this.options.values&&(this.result.from_value=this.options.values[this.result.from])},updateTo:function(){this.result.to=this.options.to,this.result.to_percent=this.convertToPercent(this.result.to),this.result.to_pretty=this._prettify(this.result.to),this.options.values&&(this.result.to_value=this.options.values[this.result.to])},updateResult:function(){this.result.min=this.options.min,this.result.max=this.options.max,this.updateFrom(),this.updateTo()},appendGrid:function(){if(this.options.grid){var t,i,s,o,e,h=this.options,r=h.max-h.min,n=h.grid_num,a=0,c=0,l=4,_="";for(this.calcGridMargin(),h.grid_snap?r>50?(n=50/h.step,a=this.toFixed(h.step/.5)):(n=r/h.step,a=this.toFixed(h.step/(r/100))):a=this.toFixed(100/n),n>4&&(l=3),n>7&&(l=2),n>14&&(l=1),n>28&&(l=0),t=0;t<n+1;t++){for(s=l,(c=this.toFixed(a*t))>100&&(c=100),this.coords.big[t]=c,o=(c-a*(t-1))/(s+1),i=1;i<=s&&0!==c;i++)_+='<span class="irs-grid-pol small" style="left: '+this.toFixed(c-o*i)+'%"></span>';_+='<span class="irs-grid-pol" style="left: '+c+'%"></span>',e=this.convertToValue(c),_+='<span class="irs-grid-text js-grid-text-'+t+'" style="left: '+c+'%">'+(e=h.values.length?h.p_values[e]:this._prettify(e))+"</span>"}this.coords.big_num=Math.ceil(n+1),this.$cache.cont.addClass("irs-with-grid"),this.$cache.grid.html(_),this.cacheGridLabels()}},cacheGridLabels:function(){var t,i,s=this.coords.big_num;for(i=0;i<s;i++)t=this.$cache.grid.find(".js-grid-text-"+i),this.$cache.grid_labels.push(t);this.calcGridLabels()},calcGridLabels:function(){var t,i,s=[],o=[],e=this.coords.big_num;for(t=0;t<e;t++)this.coords.big_w[t]=this.$cache.grid_labels[t].outerWidth(!1),this.coords.big_p[t]=this.toFixed(this.coords.big_w[t]/this.coords.w_rs*100),this.coords.big_x[t]=this.toFixed(this.coords.big_p[t]/2),s[t]=this.toFixed(this.coords.big[t]-this.coords.big_x[t]),o[t]=this.toFixed(s[t]+this.coords.big_p[t]);for(this.options.force_edges&&(s[0]<-this.coords.grid_gap&&(s[0]=-this.coords.grid_gap,o[0]=this.toFixed(s[0]+this.coords.big_p[0]),this.coords.big_x[0]=this.coords.grid_gap),o[e-1]>100+this.coords.grid_gap&&(o[e-1]=100+this.coords.grid_gap,s[e-1]=this.toFixed(o[e-1]-this.coords.big_p[e-1]),this.coords.big_x[e-1]=this.toFixed(this.coords.big_p[e-1]-this.coords.grid_gap))),this.calcGridCollision(2,s,o),this.calcGridCollision(4,s,o),t=0;t<e;t++)i=this.$cache.grid_labels[t][0],this.coords.big_x[t]!==Number.POSITIVE_INFINITY&&(i.style.marginLeft=-this.coords.big_x[t]+"%")},calcGridCollision:function(t,i,s){var o,e,h,r=this.coords.big_num;for(o=0;o<r&&!((e=o+t/2)>=r);o+=t)h=this.$cache.grid_labels[e][0],s[o]<=i[e]?h.style.visibility="visible":h.style.visibility="hidden"},calcGridMargin:function(){this.options.grid_margin&&(this.coords.w_rs=this.$cache.rs.outerWidth(!1),this.coords.w_rs&&("single"===this.options.type?this.coords.w_handle=this.$cache.s_single.outerWidth(!1):this.coords.w_handle=this.$cache.s_from.outerWidth(!1),this.coords.p_handle=this.toFixed(this.coords.w_handle/this.coords.w_rs*100),this.coords.grid_gap=this.toFixed(this.coords.p_handle/2-.1),this.$cache.grid[0].style.width=this.toFixed(100-this.coords.p_handle)+"%",this.$cache.grid[0].style.left=this.coords.grid_gap+"%"))},update:function(i){this.input&&(this.is_update=!0,this.options.from=this.result.from,this.options.to=this.result.to,this.update_check.from=this.result.from,this.update_check.to=this.result.to,this.options=t.extend(this.options,i),this.validate(),this.updateResult(i),this.toggleInput(),this.remove(),this.init(!0))},reset:function(){this.input&&(this.updateResult(),this.update())},destroy:function(){this.input&&(this.toggleInput(),this.$cache.input.prop("readonly",!1),t.data(this.input,"ionRangeSlider",null),this.remove(),this.input=null,this.options=null)}},t.fn.ionRangeSlider=function(i){return this.each(function(){t.data(this,"ionRangeSlider")||t.data(this,"ionRangeSlider",new c(this,i,n++))})},function(){for(var t=0,i=["ms","moz","webkit","o"],o=0;o<i.length&&!s.requestAnimationFrame;++o)s.requestAnimationFrame=s[i[o]+"RequestAnimationFrame"],s.cancelAnimationFrame=s[i[o]+"CancelAnimationFrame"]||s[i[o]+"CancelRequestAnimationFrame"];s.requestAnimationFrame||(s.requestAnimationFrame=function(i,o){var e=(new Date).getTime(),h=Math.max(0,16-(e-t)),r=s.setTimeout(function(){i(e+h)},h);return t=e+h,r}),s.cancelAnimationFrame||(s.cancelAnimationFrame=function(t){clearTimeout(t)})}()});
assets/js/jquery.datetimepicker.full.min.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ var DateFormatter;!function(){"use strict";var e,t,a,r,n,o;n=864e5,o=3600,e=function(e,t){return"string"==typeof e&&"string"==typeof t&&e.toLowerCase()===t.toLowerCase()},t=function(e,a,r){var n=r||"0",o=e.toString();return o.length<a?t(n+o,a):o},a=function(e){var t,r;for(e=e||{},t=1;t<arguments.length;t++)if(r=arguments[t])for(var n in r)r.hasOwnProperty(n)&&("object"==typeof r[n]?a(e[n],r[n]):e[n]=r[n]);return e},r={dateSettings:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],meridiem:["AM","PM"],ordinal:function(e){var t=e%10,a={1:"st",2:"nd",3:"rd"};return 1!==Math.floor(e%100/10)&&a[t]?a[t]:"th"}},separators:/[ \-+\/\.T:@]/g,validParts:/[dDjlNSwzWFmMntLoYyaABgGhHisueTIOPZcrU]/g,intParts:/[djwNzmnyYhHgGis]/g,tzParts:/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,tzClip:/[^-+\dA-Z]/g},DateFormatter=function(e){var t=this,n=a(r,e);t.dateSettings=n.dateSettings,t.separators=n.separators,t.validParts=n.validParts,t.intParts=n.intParts,t.tzParts=n.tzParts,t.tzClip=n.tzClip},DateFormatter.prototype={constructor:DateFormatter,parseDate:function(t,a){var r,n,o,i,s,d,u,l,f,c,m=this,h=!1,g=!1,p=m.dateSettings,y={date:null,year:null,month:null,day:null,hour:0,min:0,sec:0};if(!t)return void 0;if(t instanceof Date)return t;if("number"==typeof t)return new Date(t);if("U"===a)return o=parseInt(t),o?new Date(1e3*o):t;if("string"!=typeof t)return"";if(r=a.match(m.validParts),!r||0===r.length)throw new Error("Invalid date format definition.");for(n=t.replace(m.separators,"\x00").split("\x00"),o=0;o<n.length;o++)switch(i=n[o],s=parseInt(i),r[o]){case"y":case"Y":f=i.length,2===f?y.year=parseInt((70>s?"20":"19")+i):4===f&&(y.year=s),h=!0;break;case"m":case"n":case"M":case"F":isNaN(i)?(d=p.monthsShort.indexOf(i),d>-1&&(y.month=d+1),d=p.months.indexOf(i),d>-1&&(y.month=d+1)):s>=1&&12>=s&&(y.month=s),h=!0;break;case"d":case"j":s>=1&&31>=s&&(y.day=s),h=!0;break;case"g":case"h":u=r.indexOf("a")>-1?r.indexOf("a"):r.indexOf("A")>-1?r.indexOf("A"):-1,c=n[u],u>-1?(l=e(c,p.meridiem[0])?0:e(c,p.meridiem[1])?12:-1,s>=1&&12>=s&&l>-1?y.hour=s+l-1:s>=0&&23>=s&&(y.hour=s)):s>=0&&23>=s&&(y.hour=s),g=!0;break;case"G":case"H":s>=0&&23>=s&&(y.hour=s),g=!0;break;case"i":s>=0&&59>=s&&(y.min=s),g=!0;break;case"s":s>=0&&59>=s&&(y.sec=s),g=!0}if(h===!0&&y.year&&y.month&&y.day)y.date=new Date(y.year,y.month-1,y.day,y.hour,y.min,y.sec,0);else{if(g!==!0)return!1;y.date=new Date(0,0,0,y.hour,y.min,y.sec,0)}return y.date},guessDate:function(e,t){if("string"!=typeof e)return e;var a,r,n,o,i=this,s=e.replace(i.separators,"\x00").split("\x00"),d=/^[djmn]/g,u=t.match(i.validParts),l=new Date,f=0;if(!d.test(u[0]))return e;for(r=0;r<s.length;r++){switch(f=2,n=s[r],o=parseInt(n.substr(0,2)),r){case 0:"m"===u[0]||"n"===u[0]?l.setMonth(o-1):l.setDate(o);break;case 1:"m"===u[0]||"n"===u[0]?l.setDate(o):l.setMonth(o-1);break;case 2:a=l.getFullYear(),n.length<4?(l.setFullYear(parseInt(a.toString().substr(0,4-n.length)+n)),f=n.length):(l.setFullYear=parseInt(n.substr(0,4)),f=4);break;case 3:l.setHours(o);break;case 4:l.setMinutes(o);break;case 5:l.setSeconds(o)}n.substr(f).length>0&&s.splice(r+1,0,n.substr(f))}return l},parseFormat:function(e,a){var r,i=this,s=i.dateSettings,d=/\\?(.?)/gi,u=function(e,t){return r[e]?r[e]():t};return r={d:function(){return t(r.j(),2)},D:function(){return s.daysShort[r.w()]},j:function(){return a.getDate()},l:function(){return s.days[r.w()]},N:function(){return r.w()||7},w:function(){return a.getDay()},z:function(){var e=new Date(r.Y(),r.n()-1,r.j()),t=new Date(r.Y(),0,1);return Math.round((e-t)/n)},W:function(){var e=new Date(r.Y(),r.n()-1,r.j()-r.N()+3),a=new Date(e.getFullYear(),0,4);return t(1+Math.round((e-a)/n/7),2)},F:function(){return s.months[a.getMonth()]},m:function(){return t(r.n(),2)},M:function(){return s.monthsShort[a.getMonth()]},n:function(){return a.getMonth()+1},t:function(){return new Date(r.Y(),r.n(),0).getDate()},L:function(){var e=r.Y();return e%4===0&&e%100!==0||e%400===0?1:0},o:function(){var e=r.n(),t=r.W(),a=r.Y();return a+(12===e&&9>t?1:1===e&&t>9?-1:0)},Y:function(){return a.getFullYear()},y:function(){return r.Y().toString().slice(-2)},a:function(){return r.A().toLowerCase()},A:function(){var e=r.G()<12?0:1;return s.meridiem[e]},B:function(){var e=a.getUTCHours()*o,r=60*a.getUTCMinutes(),n=a.getUTCSeconds();return t(Math.floor((e+r+n+o)/86.4)%1e3,3)},g:function(){return r.G()%12||12},G:function(){return a.getHours()},h:function(){return t(r.g(),2)},H:function(){return t(r.G(),2)},i:function(){return t(a.getMinutes(),2)},s:function(){return t(a.getSeconds(),2)},u:function(){return t(1e3*a.getMilliseconds(),6)},e:function(){var e=/\((.*)\)/.exec(String(a))[1];return e||"Coordinated Universal Time"},T:function(){var e=(String(a).match(i.tzParts)||[""]).pop().replace(i.tzClip,"");return e||"UTC"},I:function(){var e=new Date(r.Y(),0),t=Date.UTC(r.Y(),0),a=new Date(r.Y(),6),n=Date.UTC(r.Y(),6);return e-t!==a-n?1:0},O:function(){var e=a.getTimezoneOffset(),r=Math.abs(e);return(e>0?"-":"+")+t(100*Math.floor(r/60)+r%60,4)},P:function(){var e=r.O();return e.substr(0,3)+":"+e.substr(3,2)},Z:function(){return 60*-a.getTimezoneOffset()},c:function(){return"Y-m-d\\TH:i:sP".replace(d,u)},r:function(){return"D, d M Y H:i:s O".replace(d,u)},U:function(){return a.getTime()/1e3||0}},u(e,e)},formatDate:function(e,t){var a,r,n,o,i,s=this,d="";if("string"==typeof e&&(e=s.parseDate(e,t),e===!1))return!1;if(e instanceof Date){for(n=t.length,a=0;n>a;a++)i=t.charAt(a),"S"!==i&&(o=s.parseFormat(i,e),a!==n-1&&s.intParts.test(i)&&"S"===t.charAt(a+1)&&(r=parseInt(o),o+=s.dateSettings.ordinal(r)),d+=o);return d}return""}}}(),function(e){"function"==typeof define&&define.amd?define(["jquery","jquery-mousewheel"],e):"object"==typeof exports?module.exports=e:e(jQuery)}(function(e){"use strict";function t(e,t,a){this.date=e,this.desc=t,this.style=a}var a={i18n:{ar:{months:["كانون الثاني","شباط","آذار","نيسان","مايو","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول"],dayOfWeekShort:["ن","ث","ع","خ","ج","س","ح"],dayOfWeek:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت","الأحد"]},ro:{months:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],dayOfWeekShort:["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],dayOfWeek:["Duminică","Luni","Marţi","Miercuri","Joi","Vineri","Sâmbătă"]},id:{months:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],dayOfWeekShort:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],dayOfWeek:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"]},is:{months:["Janúar","Febrúar","Mars","Apríl","Maí","Júní","Júlí","Ágúst","September","Október","Nóvember","Desember"],dayOfWeekShort:["Sun","Mán","Þrið","Mið","Fim","Fös","Lau"],dayOfWeek:["Sunnudagur","Mánudagur","Þriðjudagur","Miðvikudagur","Fimmtudagur","Föstudagur","Laugardagur"]},bg:{months:["Януари","Февруари","Март","Април","Май","Юни","Юли","Август","Септември","Октомври","Ноември","Декември"],dayOfWeekShort:["Нд","Пн","Вт","Ср","Чт","Пт","Сб"],dayOfWeek:["Неделя","Понеделник","Вторник","Сряда","Четвъртък","Петък","Събота"]},fa:{months:["فروردین","اردیبهشت","خرداد","تیر","مرداد","شهریور","مهر","آبان","آذر","دی","بهمن","اسفند"],dayOfWeekShort:["یکشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],dayOfWeek:["یک‌شنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنج‌شنبه","جمعه","شنبه","یک‌شنبه"]},ru:{months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],dayOfWeekShort:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],dayOfWeek:["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"]},uk:{months:["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"],dayOfWeekShort:["Ндл","Пнд","Втр","Срд","Чтв","Птн","Сбт"],dayOfWeek:["Неділя","Понеділок","Вівторок","Середа","Четвер","П'ятниця","Субота"]},en:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],dayOfWeekShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},el:{months:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],dayOfWeekShort:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],dayOfWeek:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"]},de:{months:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],dayOfWeekShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayOfWeek:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},nl:{months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],dayOfWeekShort:["zo","ma","di","wo","do","vr","za"],dayOfWeek:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},tr:{months:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],dayOfWeekShort:["Paz","Pts","Sal","Çar","Per","Cum","Cts"],dayOfWeek:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"]},fr:{months:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],dayOfWeekShort:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],dayOfWeek:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},es:{months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],dayOfWeekShort:["Dom","Lun","Mar","Mié","Jue","Vie","Sáb"],dayOfWeek:["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"]},th:{months:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],dayOfWeekShort:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],dayOfWeek:["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัส","ศุกร์","เสาร์","อาทิตย์"]},pl:{months:["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"],dayOfWeekShort:["nd","pn","wt","śr","cz","pt","sb"],dayOfWeek:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},pt:{months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],dayOfWeekShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sab"],dayOfWeek:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"]},ch:{months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayOfWeekShort:["日","一","二","三","四","五","六"]},se:{months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],dayOfWeekShort:["Sön","Mån","Tis","Ons","Tor","Fre","Lör"]},kr:{months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],dayOfWeekShort:["일","월","화","수","목","금","토"],dayOfWeek:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},it:{months:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],dayOfWeekShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],dayOfWeek:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"]},da:{months:["January","Februar","Marts","April","Maj","Juni","July","August","September","Oktober","November","December"],dayOfWeekShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayOfWeek:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"]},no:{months:["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"],dayOfWeekShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayOfWeek:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"]},ja:{months:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeekShort:["日","月","火","水","木","金","土"],dayOfWeek:["日曜","月曜","火曜","水曜","木曜","金曜","土曜"]},vi:{months:["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"],dayOfWeekShort:["CN","T2","T3","T4","T5","T6","T7"],dayOfWeek:["Chủ nhật","Thứ hai","Thứ ba","Thứ tư","Thứ năm","Thứ sáu","Thứ bảy"]},sl:{months:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"],dayOfWeekShort:["Ned","Pon","Tor","Sre","Čet","Pet","Sob"],dayOfWeek:["Nedelja","Ponedeljek","Torek","Sreda","Četrtek","Petek","Sobota"]},cs:{months:["Leden","Únor","Březen","Duben","Květen","Červen","Červenec","Srpen","Září","Říjen","Listopad","Prosinec"],dayOfWeekShort:["Ne","Po","Út","St","Čt","Pá","So"]},hu:{months:["Január","Február","Március","Április","Május","Június","Július","Augusztus","Szeptember","Október","November","December"],dayOfWeekShort:["Va","Hé","Ke","Sze","Cs","Pé","Szo"],dayOfWeek:["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"]},az:{months:["Yanvar","Fevral","Mart","Aprel","May","Iyun","Iyul","Avqust","Sentyabr","Oktyabr","Noyabr","Dekabr"],dayOfWeekShort:["B","Be","Ça","Ç","Ca","C","Ş"],dayOfWeek:["Bazar","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə"]},bs:{months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],dayOfWeekShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],dayOfWeek:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"]},ca:{months:["Gener","Febrer","Març","Abril","Maig","Juny","Juliol","Agost","Setembre","Octubre","Novembre","Desembre"],dayOfWeekShort:["Dg","Dl","Dt","Dc","Dj","Dv","Ds"],dayOfWeek:["Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte"]},"en-GB":{months:["January","February","March","April","May","June","July","August","September","October","November","December"],dayOfWeekShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},et:{months:["Jaanuar","Veebruar","Märts","Aprill","Mai","Juuni","Juuli","August","September","Oktoober","November","Detsember"],dayOfWeekShort:["P","E","T","K","N","R","L"],dayOfWeek:["Pühapäev","Esmaspäev","Teisipäev","Kolmapäev","Neljapäev","Reede","Laupäev"]},eu:{months:["Urtarrila","Otsaila","Martxoa","Apirila","Maiatza","Ekaina","Uztaila","Abuztua","Iraila","Urria","Azaroa","Abendua"],dayOfWeekShort:["Ig.","Al.","Ar.","Az.","Og.","Or.","La."],dayOfWeek:["Igandea","Astelehena","Asteartea","Asteazkena","Osteguna","Ostirala","Larunbata"]},fi:{months:["Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu","Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu"],dayOfWeekShort:["Su","Ma","Ti","Ke","To","Pe","La"],dayOfWeek:["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"]},gl:{months:["Xan","Feb","Maz","Abr","Mai","Xun","Xul","Ago","Set","Out","Nov","Dec"],dayOfWeekShort:["Dom","Lun","Mar","Mer","Xov","Ven","Sab"],dayOfWeek:["Domingo","Luns","Martes","Mércores","Xoves","Venres","Sábado"]},hr:{months:["Siječanj","Veljača","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],dayOfWeekShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],dayOfWeek:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"]},ko:{months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],dayOfWeekShort:["일","월","화","수","목","금","토"],dayOfWeek:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},lt:{months:["Sausio","Vasario","Kovo","Balandžio","Gegužės","Birželio","Liepos","Rugpjūčio","Rugsėjo","Spalio","Lapkričio","Gruodžio"],dayOfWeekShort:["Sek","Pir","Ant","Tre","Ket","Pen","Šeš"],dayOfWeek:["Sekmadienis","Pirmadienis","Antradienis","Trečiadienis","Ketvirtadienis","Penktadienis","Šeštadienis"]},lv:{months:["Janvāris","Februāris","Marts","Aprīlis ","Maijs","Jūnijs","Jūlijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],dayOfWeekShort:["Sv","Pr","Ot","Tr","Ct","Pk","St"],dayOfWeek:["Svētdiena","Pirmdiena","Otrdiena","Trešdiena","Ceturtdiena","Piektdiena","Sestdiena"]},mk:{months:["јануари","февруари","март","април","мај","јуни","јули","август","септември","октомври","ноември","декември"],dayOfWeekShort:["нед","пон","вто","сре","чет","пет","саб"],dayOfWeek:["Недела","Понеделник","Вторник","Среда","Четврток","Петок","Сабота"]},mn:{months:["1-р сар","2-р сар","3-р сар","4-р сар","5-р сар","6-р сар","7-р сар","8-р сар","9-р сар","10-р сар","11-р сар","12-р сар"],dayOfWeekShort:["Дав","Мяг","Лха","Пүр","Бсн","Бям","Ням"],dayOfWeek:["Даваа","Мягмар","Лхагва","Пүрэв","Баасан","Бямба","Ням"]},"pt-BR":{months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],dayOfWeekShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayOfWeek:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"]},sk:{months:["Január","Február","Marec","Apríl","Máj","Jún","Júl","August","September","Október","November","December"],dayOfWeekShort:["Ne","Po","Ut","St","Št","Pi","So"],dayOfWeek:["Nedeľa","Pondelok","Utorok","Streda","Štvrtok","Piatok","Sobota"]},sq:{months:["Janar","Shkurt","Mars","Prill","Maj","Qershor","Korrik","Gusht","Shtator","Tetor","Nëntor","Dhjetor"],dayOfWeekShort:["Die","Hën","Mar","Mër","Enj","Pre","Shtu"],dayOfWeek:["E Diel","E Hënë","E Martē","E Mërkurë","E Enjte","E Premte","E Shtunë"]},"sr-YU":{months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],dayOfWeekShort:["Ned","Pon","Uto","Sre","čet","Pet","Sub"],dayOfWeek:["Nedelja","Ponedeljak","Utorak","Sreda","Četvrtak","Petak","Subota"]},sr:{months:["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар"],dayOfWeekShort:["нед","пон","уто","сре","чет","пет","суб"],dayOfWeek:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"]},sv:{months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],dayOfWeekShort:["Sön","Mån","Tis","Ons","Tor","Fre","Lör"],dayOfWeek:["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"]},"zh-TW":{months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayOfWeekShort:["日","一","二","三","四","五","六"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},zh:{months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayOfWeekShort:["日","一","二","三","四","五","六"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},he:{months:["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],dayOfWeekShort:["א'","ב'","ג'","ד'","ה'","ו'","שבת"],dayOfWeek:["ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת","ראשון"]},hy:{months:["Հունվար","Փետրվար","Մարտ","Ապրիլ","Մայիս","Հունիս","Հուլիս","Օգոստոս","Սեպտեմբեր","Հոկտեմբեր","Նոյեմբեր","Դեկտեմբեր"],dayOfWeekShort:["Կի","Երկ","Երք","Չոր","Հնգ","Ուրբ","Շբթ"],dayOfWeek:["Կիրակի","Երկուշաբթի","Երեքշաբթի","Չորեքշաբթի","Հինգշաբթի","Ուրբաթ","Շաբաթ"]},kg:{months:["Үчтүн айы","Бирдин айы","Жалган Куран","Чын Куран","Бугу","Кулжа","Теке","Баш Оона","Аяк Оона","Тогуздун айы","Жетинин айы","Бештин айы"],dayOfWeekShort:["Жек","Дүй","Шей","Шар","Бей","Жум","Ише"],dayOfWeek:["Жекшемб","Дүйшөмб","Шейшемб","Шаршемб","Бейшемби","Жума","Ишенб"]},rm:{months:["Schaner","Favrer","Mars","Avrigl","Matg","Zercladur","Fanadur","Avust","Settember","October","November","December"],dayOfWeekShort:["Du","Gli","Ma","Me","Gie","Ve","So"],dayOfWeek:["Dumengia","Glindesdi","Mardi","Mesemna","Gievgia","Venderdi","Sonda"]},ka:{months:["იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი"],dayOfWeekShort:["კვ","ორშ","სამშ","ოთხ","ხუთ","პარ","შაბ"],dayOfWeek:["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი"]}},value:"",rtl:!1,format:"Y/m/d H:i",formatTime:"H:i",formatDate:"Y/m/d",startDate:!1,step:60,monthChangeSpinner:!0,closeOnDateSelect:!1,closeOnTimeSelect:!0,closeOnWithoutClick:!0,closeOnInputClick:!0,timepicker:!0,datepicker:!0,weeks:!1,defaultTime:!1,defaultDate:!1,minDate:!1,maxDate:!1,minTime:!1,maxTime:!1,disabledMinTime:!1,disabledMaxTime:!1,allowTimes:[],opened:!1,initTime:!0,inline:!1,theme:"",onSelectDate:function(){},onSelectTime:function(){},onChangeMonth:function(){},onGetWeekOfYear:function(){},onChangeYear:function(){},onChangeDateTime:function(){},onShow:function(){},onClose:function(){},onGenerate:function(){},withoutCopyright:!0,inverseButton:!1,hours12:!1,next:"xdsoft_next",prev:"xdsoft_prev",dayOfWeekStart:0,parentID:"body",timeHeightInTimePicker:25,timepickerScrollbar:!0,todayButton:!0,prevButton:!0,nextButton:!0,defaultSelect:!0,scrollMonth:!0,scrollTime:!0,scrollInput:!0,lazyInit:!1,mask:!1,validateOnBlur:!0,allowBlank:!0,yearStart:1950,yearEnd:2050,monthStart:0,monthEnd:11,style:"",id:"",fixed:!1,roundTime:"round",className:"",weekends:[],highlightedDates:[],highlightedPeriods:[],allowDates:[],allowDateRe:null,disabledDates:[],disabledWeekDays:[],yearOffset:0,beforeShowDay:null,enterLikeTab:!0,showApplyButton:!1},r=null,n="en",o="en",i={meridiem:["AM","PM"]},s=function(){var t=a.i18n[o],n={days:t.dayOfWeek,daysShort:t.dayOfWeekShort,months:t.months,monthsShort:e.map(t.months,function(e){return e.substring(0,3)})};r=new DateFormatter({dateSettings:e.extend({},i,n)})};e.datetimepicker={setLocale:function(e){var t=a.i18n[e]?e:n;o!=t&&(o=t,s())},setDateFormatter:function(e){r=e},RFC_2822:"D, d M Y H:i:s O",ATOM:"Y-m-dTH:i:sP",ISO_8601:"Y-m-dTH:i:sO",RFC_822:"D, d M y H:i:s O",RFC_850:"l, d-M-y H:i:s T",RFC_1036:"D, d M y H:i:s O",RFC_1123:"D, d M Y H:i:s O",RSS:"D, d M Y H:i:s O",W3C:"Y-m-dTH:i:sP"},s(),window.getComputedStyle||(window.getComputedStyle=function(e){return this.el=e,this.getPropertyValue=function(t){var a=/(\-([a-z]){1})/g;return"float"===t&&(t="styleFloat"),a.test(t)&&(t=t.replace(a,function(e,t,a){return a.toUpperCase()})),e.currentStyle[t]||null},this}),Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){var a,r;for(a=t||0,r=this.length;r>a;a+=1)if(this[a]===e)return a;return-1}),Date.prototype.countDaysInMonth=function(){return new Date(this.getFullYear(),this.getMonth()+1,0).getDate()},e.fn.xdsoftScroller=function(t){return this.each(function(){var a,r,n,o,i,s=e(this),d=function(e){var t,a={x:0,y:0};return"touchstart"===e.type||"touchmove"===e.type||"touchend"===e.type||"touchcancel"===e.type?(t=e.originalEvent.touches[0]||e.originalEvent.changedTouches[0],a.x=t.clientX,a.y=t.clientY):("mousedown"===e.type||"mouseup"===e.type||"mousemove"===e.type||"mouseover"===e.type||"mouseout"===e.type||"mouseenter"===e.type||"mouseleave"===e.type)&&(a.x=e.clientX,a.y=e.clientY),a},u=100,l=!1,f=0,c=0,m=0,h=!1,g=0,p=function(){};return"hide"===t?void s.find(".xdsoft_scrollbar").hide():(e(this).hasClass("xdsoft_scroller_box")||(a=s.children().eq(0),r=s[0].clientHeight,n=a[0].offsetHeight,o=e('<div class="xdsoft_scrollbar"></div>'),i=e('<div class="xdsoft_scroller"></div>'),o.append(i),s.addClass("xdsoft_scroller_box").append(o),p=function(e){var t=d(e).y-f+g;0>t&&(t=0),t+i[0].offsetHeight>m&&(t=m-i[0].offsetHeight),s.trigger("scroll_element.xdsoft_scroller",[u?t/u:0])},i.on("touchstart.xdsoft_scroller mousedown.xdsoft_scroller",function(a){r||s.trigger("resize_scroll.xdsoft_scroller",[t]),f=d(a).y,g=parseInt(i.css("margin-top"),10),m=o[0].offsetHeight,"mousedown"===a.type||"touchstart"===a.type?(document&&e(document.body).addClass("xdsoft_noselect"),e([document.body,window]).on("touchend mouseup.xdsoft_scroller",function n(){e([document.body,window]).off("touchend mouseup.xdsoft_scroller",n).off("mousemove.xdsoft_scroller",p).removeClass("xdsoft_noselect")}),e(document.body).on("mousemove.xdsoft_scroller",p)):(h=!0,a.stopPropagation(),a.preventDefault())}).on("touchmove",function(e){h&&(e.preventDefault(),p(e))}).on("touchend touchcancel",function(){h=!1,g=0}),s.on("scroll_element.xdsoft_scroller",function(e,t){r||s.trigger("resize_scroll.xdsoft_scroller",[t,!0]),t=t>1?1:0>t||isNaN(t)?0:t,i.css("margin-top",u*t),setTimeout(function(){a.css("marginTop",-parseInt((a[0].offsetHeight-r)*t,10))},10)}).on("resize_scroll.xdsoft_scroller",function(e,t,d){var l,f;r=s[0].clientHeight,n=a[0].offsetHeight,l=r/n,f=l*o[0].offsetHeight,l>1?i.hide():(i.show(),i.css("height",parseInt(f>10?f:10,10)),u=o[0].offsetHeight-i[0].offsetHeight,d!==!0&&s.trigger("scroll_element.xdsoft_scroller",[t||Math.abs(parseInt(a.css("marginTop"),10))/(n-r)]))}),s.on("mousewheel",function(e){var t=Math.abs(parseInt(a.css("marginTop"),10));return t-=20*e.deltaY,0>t&&(t=0),s.trigger("scroll_element.xdsoft_scroller",[t/(n-r)]),e.stopPropagation(),!1}),s.on("touchstart",function(e){l=d(e),c=Math.abs(parseInt(a.css("marginTop"),10))}),s.on("touchmove",function(e){if(l){e.preventDefault();var t=d(e);s.trigger("scroll_element.xdsoft_scroller",[(c-(t.y-l.y))/(n-r)])}}),s.on("touchend touchcancel",function(){l=!1,c=0})),void s.trigger("resize_scroll.xdsoft_scroller",[t]))})},e.fn.datetimepicker=function(n,i){var s,d,u=this,l=48,f=57,c=96,m=105,h=17,g=46,p=13,y=27,v=8,b=37,D=38,k=39,x=40,T=9,S=116,w=65,O=67,M=86,_=90,W=89,F=!1,C=e.isPlainObject(n)||!n?e.extend(!0,{},a,n):e.extend(!0,{},a),P=0,A=function(e){e.on("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart",function t(){e.is(":disabled")||e.data("xdsoft_datetimepicker")||(clearTimeout(P),P=setTimeout(function(){e.data("xdsoft_datetimepicker")||s(e),e.off("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart",t).trigger("open.xdsoft")},100))})};return s=function(a){function i(){var e,t=!1;return C.startDate?t=j.strToDate(C.startDate):(t=C.value||(a&&a.val&&a.val()?a.val():""),t?t=j.strToDateTime(t):C.defaultDate&&(t=j.strToDateTime(C.defaultDate),C.defaultTime&&(e=j.strtotime(C.defaultTime),t.setHours(e.getHours()),t.setMinutes(e.getMinutes())))),t&&j.isValidDate(t)?J.data("changed",!0):t="",t||0}function s(t){var r=function(e,t){var a=e.replace(/([\[\]\/\{\}\(\)\-\.\+]{1})/g,"\\$1").replace(/_/g,"{digit+}").replace(/([0-9]{1})/g,"{digit$1}").replace(/\{digit([0-9]{1})\}/g,"[0-$1_]{1}").replace(/\{digit[\+]\}/g,"[0-9_]{1}");return new RegExp(a).test(t)},n=function(e){try{if(document.selection&&document.selection.createRange){var t=document.selection.createRange();return t.getBookmark().charCodeAt(2)-2}if(e.setSelectionRange)return e.selectionStart}catch(a){return 0}},o=function(e,t){if(e="string"==typeof e||e instanceof String?document.getElementById(e):e,!e)return!1;if(e.createTextRange){var a=e.createTextRange();return a.collapse(!0),a.moveEnd("character",t),a.moveStart("character",t),a.select(),!0}return e.setSelectionRange?(e.setSelectionRange(t,t),!0):!1};t.mask&&a.off("keydown.xdsoft"),t.mask===!0&&(t.mask="undefined"!=typeof moment?t.format.replace(/Y{4}/g,"9999").replace(/Y{2}/g,"99").replace(/M{2}/g,"19").replace(/D{2}/g,"39").replace(/H{2}/g,"29").replace(/m{2}/g,"59").replace(/s{2}/g,"59"):t.format.replace(/Y/g,"9999").replace(/F/g,"9999").replace(/m/g,"19").replace(/d/g,"39").replace(/H/g,"29").replace(/i/g,"59").replace(/s/g,"59")),"string"===e.type(t.mask)&&(r(t.mask,a.val())||(a.val(t.mask.replace(/[0-9]/g,"_")),o(a[0],0)),a.on("keydown.xdsoft",function(i){var s,d,u=this.value,C=i.which;if(C>=l&&f>=C||C>=c&&m>=C||C===v||C===g){for(s=n(this),d=C!==v&&C!==g?String.fromCharCode(C>=c&&m>=C?C-l:C):"_",C!==v&&C!==g||!s||(s-=1,d="_");/[^0-9_]/.test(t.mask.substr(s,1))&&s<t.mask.length&&s>0;)s+=C===v||C===g?-1:1;if(u=u.substr(0,s)+d+u.substr(s+1),""===e.trim(u))u=t.mask.replace(/[0-9]/g,"_");else if(s===t.mask.length)return i.preventDefault(),!1;for(s+=C===v||C===g?0:1;/[^0-9_]/.test(t.mask.substr(s,1))&&s<t.mask.length&&s>0;)s+=C===v||C===g?-1:1;r(t.mask,u)?(this.value=u,o(this,s)):""===e.trim(u)?this.value=t.mask.replace(/[0-9]/g,"_"):a.trigger("error_input.xdsoft")}else if(-1!==[w,O,M,_,W].indexOf(C)&&F||-1!==[y,D,x,b,k,S,h,T,p].indexOf(C))return!0;return i.preventDefault(),!1}))}var d,u,P,A,Y,j,H,J=e('<div class="xdsoft_datetimepicker xdsoft_noselect"></div>'),z=e('<div class="xdsoft_copyright"><a target="_blank" href="http://xdsoft.net/jqplugins/datetimepicker/">xdsoft.net</a></div>'),I=e('<div class="xdsoft_datepicker active"></div>'),N=e('<div class="xdsoft_monthpicker"><button type="button" class="xdsoft_prev"></button><button type="button" class="xdsoft_today_button"></button><div class="xdsoft_label xdsoft_month"><span></span><i></i></div><div class="xdsoft_label xdsoft_year"><span></span><i></i></div><button type="button" class="xdsoft_next"></button></div>'),L=e('<div class="xdsoft_calendar"></div>'),E=e('<div class="xdsoft_timepicker active"><button type="button" class="xdsoft_prev"></button><div class="xdsoft_time_box"></div><button type="button" class="xdsoft_next"></button></div>'),R=E.find(".xdsoft_time_box").eq(0),B=e('<div class="xdsoft_time_variant"></div>'),V=e('<button type="button" class="xdsoft_save_selected blue-gradient-button">Save Selected</button>'),G=e('<div class="xdsoft_select xdsoft_monthselect"><div></div></div>'),U=e('<div class="xdsoft_select xdsoft_yearselect"><div></div></div>'),q=!1,X=0;C.id&&J.attr("id",C.id),C.style&&J.attr("style",C.style),C.weeks&&J.addClass("xdsoft_showweeks"),C.rtl&&J.addClass("xdsoft_rtl"),J.addClass("xdsoft_"+C.theme),J.addClass(C.className),N.find(".xdsoft_month span").after(G),N.find(".xdsoft_year span").after(U),N.find(".xdsoft_month,.xdsoft_year").on("touchstart mousedown.xdsoft",function(t){var a,r,n=e(this).find(".xdsoft_select").eq(0),o=0,i=0,s=n.is(":visible");for(N.find(".xdsoft_select").hide(),j.currentTime&&(o=j.currentTime[e(this).hasClass("xdsoft_month")?"getMonth":"getFullYear"]()),n[s?"hide":"show"](),a=n.find("div.xdsoft_option"),r=0;r<a.length&&a.eq(r).data("value")!==o;r+=1)i+=a[0].offsetHeight;return n.xdsoftScroller(i/(n.children()[0].offsetHeight-n[0].clientHeight)),t.stopPropagation(),!1}),N.find(".xdsoft_select").xdsoftScroller().on("touchstart mousedown.xdsoft",function(e){e.stopPropagation(),e.preventDefault()}).on("touchstart mousedown.xdsoft",".xdsoft_option",function(){(void 0===j.currentTime||null===j.currentTime)&&(j.currentTime=j.now());var t=j.currentTime.getFullYear();j&&j.currentTime&&j.currentTime[e(this).parent().parent().hasClass("xdsoft_monthselect")?"setMonth":"setFullYear"](e(this).data("value")),e(this).parent().parent().hide(),J.trigger("xchange.xdsoft"),C.onChangeMonth&&e.isFunction(C.onChangeMonth)&&C.onChangeMonth.call(J,j.currentTime,J.data("input")),t!==j.currentTime.getFullYear()&&e.isFunction(C.onChangeYear)&&C.onChangeYear.call(J,j.currentTime,J.data("input"))}),J.getValue=function(){return j.getCurrentTime()},J.setOptions=function(n){var o={};C=e.extend(!0,{},C,n),n.allowTimes&&e.isArray(n.allowTimes)&&n.allowTimes.length&&(C.allowTimes=e.extend(!0,[],n.allowTimes)),n.weekends&&e.isArray(n.weekends)&&n.weekends.length&&(C.weekends=e.extend(!0,[],n.weekends)),n.allowDates&&e.isArray(n.allowDates)&&n.allowDates.length&&(C.allowDates=e.extend(!0,[],n.allowDates)),n.allowDateRe&&"[object String]"===Object.prototype.toString.call(n.allowDateRe)&&(C.allowDateRe=new RegExp(n.allowDateRe)),n.highlightedDates&&e.isArray(n.highlightedDates)&&n.highlightedDates.length&&(e.each(n.highlightedDates,function(a,n){var i,s=e.map(n.split(","),e.trim),d=new t(r.parseDate(s[0],C.formatDate),s[1],s[2]),u=r.formatDate(d.date,C.formatDate);void 0!==o[u]?(i=o[u].desc,i&&i.length&&d.desc&&d.desc.length&&(o[u].desc=i+"\n"+d.desc)):o[u]=d}),C.highlightedDates=e.extend(!0,[],o)),n.highlightedPeriods&&e.isArray(n.highlightedPeriods)&&n.highlightedPeriods.length&&(o=e.extend(!0,[],C.highlightedDates),
2
+ e.each(n.highlightedPeriods,function(a,n){var i,s,d,u,l,f,c;if(e.isArray(n))i=n[0],s=n[1],d=n[2],c=n[3];else{var m=e.map(n.split(","),e.trim);i=r.parseDate(m[0],C.formatDate),s=r.parseDate(m[1],C.formatDate),d=m[2],c=m[3]}for(;s>=i;)u=new t(i,d,c),l=r.formatDate(i,C.formatDate),i.setDate(i.getDate()+1),void 0!==o[l]?(f=o[l].desc,f&&f.length&&u.desc&&u.desc.length&&(o[l].desc=f+"\n"+u.desc)):o[l]=u}),C.highlightedDates=e.extend(!0,[],o)),n.disabledDates&&e.isArray(n.disabledDates)&&n.disabledDates.length&&(C.disabledDates=e.extend(!0,[],n.disabledDates)),n.disabledWeekDays&&e.isArray(n.disabledWeekDays)&&n.disabledWeekDays.length&&(C.disabledWeekDays=e.extend(!0,[],n.disabledWeekDays)),!C.open&&!C.opened||C.inline||a.trigger("open.xdsoft"),C.inline&&(q=!0,J.addClass("xdsoft_inline"),a.after(J).hide()),C.inverseButton&&(C.next="xdsoft_prev",C.prev="xdsoft_next"),C.datepicker?I.addClass("active"):I.removeClass("active"),C.timepicker?E.addClass("active"):E.removeClass("active"),C.value&&(j.setCurrentTime(C.value),a&&a.val&&a.val(j.str)),C.dayOfWeekStart=isNaN(C.dayOfWeekStart)?0:parseInt(C.dayOfWeekStart,10)%7,C.timepickerScrollbar||R.xdsoftScroller("hide"),C.minDate&&/^[\+\-](.*)$/.test(C.minDate)&&(C.minDate=r.formatDate(j.strToDateTime(C.minDate),C.formatDate)),C.maxDate&&/^[\+\-](.*)$/.test(C.maxDate)&&(C.maxDate=r.formatDate(j.strToDateTime(C.maxDate),C.formatDate)),V.toggle(C.showApplyButton),N.find(".xdsoft_today_button").css("visibility",C.todayButton?"visible":"hidden"),N.find("."+C.prev).css("visibility",C.prevButton?"visible":"hidden"),N.find("."+C.next).css("visibility",C.nextButton?"visible":"hidden"),s(C),C.validateOnBlur&&a.off("blur.xdsoft").on("blur.xdsoft",function(){if(C.allowBlank&&(!e.trim(e(this).val()).length||"string"==typeof C.mask&&e.trim(e(this).val())===C.mask.replace(/[0-9]/g,"_")))e(this).val(null),J.data("xdsoft_datetime").empty();else{var t=r.parseDate(e(this).val(),C.format);if(t)e(this).val(r.formatDate(t,C.format));else{var a=+[e(this).val()[0],e(this).val()[1]].join(""),n=+[e(this).val()[2],e(this).val()[3]].join("");e(this).val(!C.datepicker&&C.timepicker&&a>=0&&24>a&&n>=0&&60>n?[a,n].map(function(e){return e>9?e:"0"+e}).join(":"):r.formatDate(j.now(),C.format))}J.data("xdsoft_datetime").setCurrentTime(e(this).val())}J.trigger("changedatetime.xdsoft"),J.trigger("close.xdsoft")}),C.dayOfWeekStartPrev=0===C.dayOfWeekStart?6:C.dayOfWeekStart-1,J.trigger("xchange.xdsoft").trigger("afterOpen.xdsoft")},J.data("options",C).on("touchstart mousedown.xdsoft",function(e){return e.stopPropagation(),e.preventDefault(),U.hide(),G.hide(),!1}),R.append(B),R.xdsoftScroller(),J.on("afterOpen.xdsoft",function(){R.xdsoftScroller()}),J.append(I).append(E),C.withoutCopyright!==!0&&J.append(z),I.append(N).append(L).append(V),e(C.parentID).append(J),d=function(){var t=this;t.now=function(e){var a,r,n=new Date;return!e&&C.defaultDate&&(a=t.strToDateTime(C.defaultDate),n.setFullYear(a.getFullYear()),n.setMonth(a.getMonth()),n.setDate(a.getDate())),C.yearOffset&&n.setFullYear(n.getFullYear()+C.yearOffset),!e&&C.defaultTime&&(r=t.strtotime(C.defaultTime),n.setHours(r.getHours()),n.setMinutes(r.getMinutes())),n},t.isValidDate=function(e){return"[object Date]"!==Object.prototype.toString.call(e)?!1:!isNaN(e.getTime())},t.setCurrentTime=function(e,a){t.currentTime="string"==typeof e?t.strToDateTime(e):t.isValidDate(e)?e:e||a||!C.allowBlank?t.now():null,J.trigger("xchange.xdsoft")},t.empty=function(){t.currentTime=null},t.getCurrentTime=function(){return t.currentTime},t.nextMonth=function(){(void 0===t.currentTime||null===t.currentTime)&&(t.currentTime=t.now());var a,r=t.currentTime.getMonth()+1;return 12===r&&(t.currentTime.setFullYear(t.currentTime.getFullYear()+1),r=0),a=t.currentTime.getFullYear(),t.currentTime.setDate(Math.min(new Date(t.currentTime.getFullYear(),r+1,0).getDate(),t.currentTime.getDate())),t.currentTime.setMonth(r),C.onChangeMonth&&e.isFunction(C.onChangeMonth)&&C.onChangeMonth.call(J,j.currentTime,J.data("input")),a!==t.currentTime.getFullYear()&&e.isFunction(C.onChangeYear)&&C.onChangeYear.call(J,j.currentTime,J.data("input")),J.trigger("xchange.xdsoft"),r},t.prevMonth=function(){(void 0===t.currentTime||null===t.currentTime)&&(t.currentTime=t.now());var a=t.currentTime.getMonth()-1;return-1===a&&(t.currentTime.setFullYear(t.currentTime.getFullYear()-1),a=11),t.currentTime.setDate(Math.min(new Date(t.currentTime.getFullYear(),a+1,0).getDate(),t.currentTime.getDate())),t.currentTime.setMonth(a),C.onChangeMonth&&e.isFunction(C.onChangeMonth)&&C.onChangeMonth.call(J,j.currentTime,J.data("input")),J.trigger("xchange.xdsoft"),a},t.getWeekOfYear=function(t){if(C.onGetWeekOfYear&&e.isFunction(C.onGetWeekOfYear)){var a=C.onGetWeekOfYear.call(J,t);if("undefined"!=typeof a)return a}var r=new Date(t.getFullYear(),0,1);return 4!=r.getDay()&&r.setMonth(0,1+(4-r.getDay()+7)%7),Math.ceil(((t-r)/864e5+r.getDay()+1)/7)},t.strToDateTime=function(e){var a,n,o=[];return e&&e instanceof Date&&t.isValidDate(e)?e:(o=/^(\+|\-)(.*)$/.exec(e),o&&(o[2]=r.parseDate(o[2],C.formatDate)),o&&o[2]?(a=o[2].getTime()-6e4*o[2].getTimezoneOffset(),n=new Date(t.now(!0).getTime()+parseInt(o[1]+"1",10)*a)):n=e?r.parseDate(e,C.format):t.now(),t.isValidDate(n)||(n=t.now()),n)},t.strToDate=function(e){if(e&&e instanceof Date&&t.isValidDate(e))return e;var a=e?r.parseDate(e,C.formatDate):t.now(!0);return t.isValidDate(a)||(a=t.now(!0)),a},t.strtotime=function(e){if(e&&e instanceof Date&&t.isValidDate(e))return e;var a=e?r.parseDate(e,C.formatTime):t.now(!0);return t.isValidDate(a)||(a=t.now(!0)),a},t.str=function(){return r.formatDate(t.currentTime,C.format)},t.currentTime=this.now()},j=new d,V.on("touchend click",function(e){e.preventDefault(),J.data("changed",!0),j.setCurrentTime(i()),a.val(j.str()),J.trigger("close.xdsoft")}),N.find(".xdsoft_today_button").on("touchend mousedown.xdsoft",function(){J.data("changed",!0),j.setCurrentTime(0,!0),J.trigger("afterOpen.xdsoft")}).on("dblclick.xdsoft",function(){var e,t,r=j.getCurrentTime();r=new Date(r.getFullYear(),r.getMonth(),r.getDate()),e=j.strToDate(C.minDate),e=new Date(e.getFullYear(),e.getMonth(),e.getDate()),e>r||(t=j.strToDate(C.maxDate),t=new Date(t.getFullYear(),t.getMonth(),t.getDate()),r>t||(a.val(j.str()),a.trigger("change"),J.trigger("close.xdsoft")))}),N.find(".xdsoft_prev,.xdsoft_next").on("touchend mousedown.xdsoft",function(){var t=e(this),a=0,r=!1;!function n(e){t.hasClass(C.next)?j.nextMonth():t.hasClass(C.prev)&&j.prevMonth(),C.monthChangeSpinner&&(r||(a=setTimeout(n,e||100)))}(500),e([document.body,window]).on("touchend mouseup.xdsoft",function o(){clearTimeout(a),r=!0,e([document.body,window]).off("touchend mouseup.xdsoft",o)})}),E.find(".xdsoft_prev,.xdsoft_next").on("touchend mousedown.xdsoft",function(){var t=e(this),a=0,r=!1,n=110;!function o(e){var i=R[0].clientHeight,s=B[0].offsetHeight,d=Math.abs(parseInt(B.css("marginTop"),10));t.hasClass(C.next)&&s-i-C.timeHeightInTimePicker>=d?B.css("marginTop","-"+(d+C.timeHeightInTimePicker)+"px"):t.hasClass(C.prev)&&d-C.timeHeightInTimePicker>=0&&B.css("marginTop","-"+(d-C.timeHeightInTimePicker)+"px"),R.trigger("scroll_element.xdsoft_scroller",[Math.abs(parseInt(B[0].style.marginTop,10)/(s-i))]),n=n>10?10:n-10,r||(a=setTimeout(o,e||n))}(500),e([document.body,window]).on("touchend mouseup.xdsoft",function i(){clearTimeout(a),r=!0,e([document.body,window]).off("touchend mouseup.xdsoft",i)})}),u=0,J.on("xchange.xdsoft",function(t){clearTimeout(u),u=setTimeout(function(){if(void 0===j.currentTime||null===j.currentTime){if(C.allowBlank)return;j.currentTime=j.now()}for(var t,i,s,d,u,l,f,c,m,h,g="",p=new Date(j.currentTime.getFullYear(),j.currentTime.getMonth(),1,12,0,0),y=0,v=j.now(),b=!1,D=!1,k=[],x=!0,T="",S="";p.getDay()!==C.dayOfWeekStart;)p.setDate(p.getDate()-1);for(g+="<table><thead><tr>",C.weeks&&(g+="<th></th>"),t=0;7>t;t+=1)g+="<th>"+C.i18n[o].dayOfWeekShort[(t+C.dayOfWeekStart)%7]+"</th>";for(g+="</tr></thead>",g+="<tbody>",C.maxDate!==!1&&(b=j.strToDate(C.maxDate),b=new Date(b.getFullYear(),b.getMonth(),b.getDate(),23,59,59,999)),C.minDate!==!1&&(D=j.strToDate(C.minDate),D=new Date(D.getFullYear(),D.getMonth(),D.getDate()));y<j.currentTime.countDaysInMonth()||p.getDay()!==C.dayOfWeekStart||j.currentTime.getMonth()===p.getMonth();)k=[],y+=1,s=p.getDay(),d=p.getDate(),u=p.getFullYear(),l=p.getMonth(),f=j.getWeekOfYear(p),h="",k.push("xdsoft_date"),c=C.beforeShowDay&&e.isFunction(C.beforeShowDay.call)?C.beforeShowDay.call(J,p):null,C.allowDateRe&&"[object RegExp]"===Object.prototype.toString.call(C.allowDateRe)?C.allowDateRe.test(r.formatDate(p,C.formatDate))||k.push("xdsoft_disabled"):C.allowDates&&C.allowDates.length>0?-1===C.allowDates.indexOf(r.formatDate(p,C.formatDate))&&k.push("xdsoft_disabled"):b!==!1&&p>b||D!==!1&&D>p||c&&c[0]===!1?k.push("xdsoft_disabled"):-1!==C.disabledDates.indexOf(r.formatDate(p,C.formatDate))?k.push("xdsoft_disabled"):-1!==C.disabledWeekDays.indexOf(s)?k.push("xdsoft_disabled"):a.is("[readonly]")&&k.push("xdsoft_disabled"),c&&""!==c[1]&&k.push(c[1]),j.currentTime.getMonth()!==l&&k.push("xdsoft_other_month"),(C.defaultSelect||J.data("changed"))&&r.formatDate(j.currentTime,C.formatDate)===r.formatDate(p,C.formatDate)&&k.push("xdsoft_current"),r.formatDate(v,C.formatDate)===r.formatDate(p,C.formatDate)&&k.push("xdsoft_today"),(0===p.getDay()||6===p.getDay()||-1!==C.weekends.indexOf(r.formatDate(p,C.formatDate)))&&k.push("xdsoft_weekend"),void 0!==C.highlightedDates[r.formatDate(p,C.formatDate)]&&(i=C.highlightedDates[r.formatDate(p,C.formatDate)],k.push(void 0===i.style?"xdsoft_highlighted_default":i.style),h=void 0===i.desc?"":i.desc),C.beforeShowDay&&e.isFunction(C.beforeShowDay)&&k.push(C.beforeShowDay(p)),x&&(g+="<tr>",x=!1,C.weeks&&(g+="<th>"+f+"</th>")),g+='<td data-date="'+d+'" data-month="'+l+'" data-year="'+u+'" class="xdsoft_date xdsoft_day_of_week'+p.getDay()+" "+k.join(" ")+'" title="'+h+'"><div>'+d+"</div></td>",p.getDay()===C.dayOfWeekStartPrev&&(g+="</tr>",x=!0),p.setDate(d+1);if(g+="</tbody></table>",L.html(g),N.find(".xdsoft_label span").eq(0).text(C.i18n[o].months[j.currentTime.getMonth()]),N.find(".xdsoft_label span").eq(1).text(j.currentTime.getFullYear()),T="",S="",l="",m=function(t,n){var o,i,s=j.now(),d=C.allowTimes&&e.isArray(C.allowTimes)&&C.allowTimes.length;s.setHours(t),t=parseInt(s.getHours(),10),s.setMinutes(n),n=parseInt(s.getMinutes(),10),o=new Date(j.currentTime),o.setHours(t),o.setMinutes(n),k=[],C.minDateTime!==!1&&C.minDateTime>o||C.maxTime!==!1&&j.strtotime(C.maxTime).getTime()<s.getTime()||C.minTime!==!1&&j.strtotime(C.minTime).getTime()>s.getTime()?k.push("xdsoft_disabled"):C.minDateTime!==!1&&C.minDateTime>o||C.disabledMinTime!==!1&&s.getTime()>j.strtotime(C.disabledMinTime).getTime()&&C.disabledMaxTime!==!1&&s.getTime()<j.strtotime(C.disabledMaxTime).getTime()?k.push("xdsoft_disabled"):a.is("[readonly]")&&k.push("xdsoft_disabled"),i=new Date(j.currentTime),i.setHours(parseInt(j.currentTime.getHours(),10)),d||i.setMinutes(Math[C.roundTime](j.currentTime.getMinutes()/C.step)*C.step),(C.initTime||C.defaultSelect||J.data("changed"))&&i.getHours()===parseInt(t,10)&&(!d&&C.step>59||i.getMinutes()===parseInt(n,10))&&(C.defaultSelect||J.data("changed")?k.push("xdsoft_current"):C.initTime&&k.push("xdsoft_init_time")),parseInt(v.getHours(),10)===parseInt(t,10)&&parseInt(v.getMinutes(),10)===parseInt(n,10)&&k.push("xdsoft_today"),T+='<div class="xdsoft_time '+k.join(" ")+'" data-hour="'+t+'" data-minute="'+n+'">'+r.formatDate(s,C.formatTime)+"</div>"},C.allowTimes&&e.isArray(C.allowTimes)&&C.allowTimes.length)for(y=0;y<C.allowTimes.length;y+=1)S=j.strtotime(C.allowTimes[y]).getHours(),l=j.strtotime(C.allowTimes[y]).getMinutes(),m(S,l);else for(y=0,t=0;y<(C.hours12?12:24);y+=1)for(t=0;60>t;t+=C.step)S=(10>y?"0":"")+y,l=(10>t?"0":"")+t,m(S,l);for(B.html(T),n="",y=0,y=parseInt(C.yearStart,10)+C.yearOffset;y<=parseInt(C.yearEnd,10)+C.yearOffset;y+=1)n+='<div class="xdsoft_option '+(j.currentTime.getFullYear()===y?"xdsoft_current":"")+'" data-value="'+y+'">'+y+"</div>";for(U.children().eq(0).html(n),y=parseInt(C.monthStart,10),n="";y<=parseInt(C.monthEnd,10);y+=1)n+='<div class="xdsoft_option '+(j.currentTime.getMonth()===y?"xdsoft_current":"")+'" data-value="'+y+'">'+C.i18n[o].months[y]+"</div>";G.children().eq(0).html(n),e(J).trigger("generate.xdsoft")},10),t.stopPropagation()}).on("afterOpen.xdsoft",function(){if(C.timepicker){var e,t,a,r;B.find(".xdsoft_current").length?e=".xdsoft_current":B.find(".xdsoft_init_time").length&&(e=".xdsoft_init_time"),e?(t=R[0].clientHeight,a=B[0].offsetHeight,r=B.find(e).index()*C.timeHeightInTimePicker+1,r>a-t&&(r=a-t),R.trigger("scroll_element.xdsoft_scroller",[parseInt(r,10)/(a-t)])):R.trigger("scroll_element.xdsoft_scroller",[0])}}),P=0,L.on("touchend click.xdsoft","td",function(t){t.stopPropagation(),P+=1;var r=e(this),n=j.currentTime;return(void 0===n||null===n)&&(j.currentTime=j.now(),n=j.currentTime),r.hasClass("xdsoft_disabled")?!1:(n.setDate(1),n.setFullYear(r.data("year")),n.setMonth(r.data("month")),n.setDate(r.data("date")),J.trigger("select.xdsoft",[n]),a.val(j.str()),C.onSelectDate&&e.isFunction(C.onSelectDate)&&C.onSelectDate.call(J,j.currentTime,J.data("input"),t),J.data("changed",!0),J.trigger("xchange.xdsoft"),J.trigger("changedatetime.xdsoft"),(P>1||C.closeOnDateSelect===!0||C.closeOnDateSelect===!1&&!C.timepicker)&&!C.inline&&J.trigger("close.xdsoft"),void setTimeout(function(){P=0},200))}),B.on("touchend click.xdsoft","div",function(t){t.stopPropagation();var a=e(this),r=j.currentTime;return(void 0===r||null===r)&&(j.currentTime=j.now(),r=j.currentTime),a.hasClass("xdsoft_disabled")?!1:(r.setHours(a.data("hour")),r.setMinutes(a.data("minute")),J.trigger("select.xdsoft",[r]),J.data("input").val(j.str()),C.onSelectTime&&e.isFunction(C.onSelectTime)&&C.onSelectTime.call(J,j.currentTime,J.data("input"),t),J.data("changed",!0),J.trigger("xchange.xdsoft"),J.trigger("changedatetime.xdsoft"),void(C.inline!==!0&&C.closeOnTimeSelect===!0&&J.trigger("close.xdsoft")))}),I.on("mousewheel.xdsoft",function(e){return C.scrollMonth?(e.deltaY<0?j.nextMonth():j.prevMonth(),!1):!0}),a.on("mousewheel.xdsoft",function(e){return C.scrollInput?!C.datepicker&&C.timepicker?(A=B.find(".xdsoft_current").length?B.find(".xdsoft_current").eq(0).index():0,A+e.deltaY>=0&&A+e.deltaY<B.children().length&&(A+=e.deltaY),B.children().eq(A).length&&B.children().eq(A).trigger("mousedown"),!1):C.datepicker&&!C.timepicker?(I.trigger(e,[e.deltaY,e.deltaX,e.deltaY]),a.val&&a.val(j.str()),J.trigger("changedatetime.xdsoft"),!1):void 0:!0}),J.on("changedatetime.xdsoft",function(t){if(C.onChangeDateTime&&e.isFunction(C.onChangeDateTime)){var a=J.data("input");C.onChangeDateTime.call(J,j.currentTime,a,t),delete C.value,a.trigger("change")}}).on("generate.xdsoft",function(){C.onGenerate&&e.isFunction(C.onGenerate)&&C.onGenerate.call(J,j.currentTime,J.data("input")),q&&(J.trigger("afterOpen.xdsoft"),q=!1)}).on("click.xdsoft",function(e){e.stopPropagation()}),A=0,H=function(e,t){do if(e=e.parentNode,t(e)===!1)break;while("HTML"!==e.nodeName)},Y=function(){var t,a,r,n,o,i,s,d,u,l,f,c,m;if(d=J.data("input"),t=d.offset(),a=d[0],l="top",r=t.top+a.offsetHeight-1,n=t.left,o="absolute",u=e(window).width(),c=e(window).height(),m=e(window).scrollTop(),document.documentElement.clientWidth-t.left<I.parent().outerWidth(!0)){var h=I.parent().outerWidth(!0)-a.offsetWidth;n-=h}"rtl"===d.parent().css("direction")&&(n-=J.outerWidth()-d.outerWidth()),C.fixed?(r-=m,n-=e(window).scrollLeft(),o="fixed"):(s=!1,H(a,function(e){return"fixed"===window.getComputedStyle(e).getPropertyValue("position")?(s=!0,!1):void 0}),s?(o="fixed",r+J.outerHeight()>c+m?(l="bottom",r=c+m-t.top):r-=m):r+a.offsetHeight>c+m&&(r=t.top-a.offsetHeight+1),0>r&&(r=0),n+a.offsetWidth>u&&(n=u-a.offsetWidth)),i=J[0],H(i,function(e){var t;return t=window.getComputedStyle(e).getPropertyValue("position"),"relative"===t&&u>=e.offsetWidth?(n-=(u-e.offsetWidth)/2,!1):void 0}),f={position:o,left:n,top:"",bottom:""},f[l]=r,J.css(f)},J.on("open.xdsoft",function(t){var a=!0;C.onShow&&e.isFunction(C.onShow)&&(a=C.onShow.call(J,j.currentTime,J.data("input"),t)),a!==!1&&(J.show(),Y(),e(window).off("resize.xdsoft",Y).on("resize.xdsoft",Y),C.closeOnWithoutClick&&e([document.body,window]).on("touchstart mousedown.xdsoft",function r(){J.trigger("close.xdsoft"),e([document.body,window]).off("touchstart mousedown.xdsoft",r)}))}).on("close.xdsoft",function(t){var a=!0;N.find(".xdsoft_month,.xdsoft_year").find(".xdsoft_select").hide(),C.onClose&&e.isFunction(C.onClose)&&(a=C.onClose.call(J,j.currentTime,J.data("input"),t)),a===!1||C.opened||C.inline||J.hide(),t.stopPropagation()}).on("toggle.xdsoft",function(){J.trigger(J.is(":visible")?"close.xdsoft":"open.xdsoft")}).data("input",a),X=0,J.data("xdsoft_datetime",j),J.setOptions(C),j.setCurrentTime(i()),a.data("xdsoft_datetimepicker",J).on("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart",function(){a.is(":disabled")||a.data("xdsoft_datetimepicker").is(":visible")&&C.closeOnInputClick||(clearTimeout(X),X=setTimeout(function(){a.is(":disabled")||(q=!0,j.setCurrentTime(i(),!0),C.mask&&s(C),J.trigger("open.xdsoft"))},100))}).on("keydown.xdsoft",function(t){var a,r=t.which;return-1!==[p].indexOf(r)&&C.enterLikeTab?(a=e("input:visible,textarea:visible,button:visible,a:visible"),J.trigger("close.xdsoft"),a.eq(a.index(this)+1).focus(),!1):-1!==[T].indexOf(r)?(J.trigger("close.xdsoft"),!0):void 0}).on("blur.xdsoft",function(){J.trigger("close.xdsoft")})},d=function(t){var a=t.data("xdsoft_datetimepicker");a&&(a.data("xdsoft_datetime",null),a.remove(),t.data("xdsoft_datetimepicker",null).off(".xdsoft"),e(window).off("resize.xdsoft"),e([window,document.body]).off("mousedown.xdsoft touchstart"),t.unmousewheel&&t.unmousewheel())},e(document).off("keydown.xdsoftctrl keyup.xdsoftctrl").on("keydown.xdsoftctrl",function(e){e.keyCode===h&&(F=!0)}).on("keyup.xdsoftctrl",function(e){e.keyCode===h&&(F=!1)}),this.each(function(){var t,a=e(this).data("xdsoft_datetimepicker");if(a){if("string"===e.type(n))switch(n){case"show":e(this).select().focus(),a.trigger("open.xdsoft");break;case"hide":a.trigger("close.xdsoft");break;case"toggle":a.trigger("toggle.xdsoft");break;case"destroy":d(e(this));break;case"reset":this.value=this.defaultValue,this.value&&a.data("xdsoft_datetime").isValidDate(r.parseDate(this.value,C.format))||a.data("changed",!1),a.data("xdsoft_datetime").setCurrentTime(this.value);break;case"validate":t=a.data("input"),t.trigger("blur.xdsoft");break;default:a[n]&&e.isFunction(a[n])&&(u=a[n](i))}else a.setOptions(n);return 0}"string"!==e.type(n)&&(!C.lazyInit||C.open||C.inline?s(e(this)):A(e(this)))}),u},e.fn.datetimepicker.defaults=a}),function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?module.exports=e:e(jQuery)}(function(e){function t(t){var i=t||window.event,s=d.call(arguments,1),u=0,f=0,c=0,m=0,h=0,g=0;if(t=e.event.fix(i),t.type="mousewheel","detail"in i&&(c=-1*i.detail),"wheelDelta"in i&&(c=i.wheelDelta),"wheelDeltaY"in i&&(c=i.wheelDeltaY),"wheelDeltaX"in i&&(f=-1*i.wheelDeltaX),"axis"in i&&i.axis===i.HORIZONTAL_AXIS&&(f=-1*c,c=0),u=0===c?f:c,"deltaY"in i&&(c=-1*i.deltaY,u=c),"deltaX"in i&&(f=i.deltaX,0===c&&(u=-1*f)),0!==c||0!==f){if(1===i.deltaMode){var p=e.data(this,"mousewheel-line-height");u*=p,c*=p,f*=p}else if(2===i.deltaMode){var y=e.data(this,"mousewheel-page-height");u*=y,c*=y,f*=y}if(m=Math.max(Math.abs(c),Math.abs(f)),(!o||o>m)&&(o=m,r(i,m)&&(o/=40)),r(i,m)&&(u/=40,f/=40,c/=40),u=Math[u>=1?"floor":"ceil"](u/o),f=Math[f>=1?"floor":"ceil"](f/o),c=Math[c>=1?"floor":"ceil"](c/o),l.settings.normalizeOffset&&this.getBoundingClientRect){var v=this.getBoundingClientRect();h=t.clientX-v.left,g=t.clientY-v.top}return t.deltaX=f,t.deltaY=c,t.deltaFactor=o,t.offsetX=h,t.offsetY=g,t.deltaMode=0,s.unshift(t,u,f,c),n&&clearTimeout(n),n=setTimeout(a,200),(e.event.dispatch||e.event.handle).apply(this,s)}}function a(){o=null}function r(e,t){return l.settings.adjustOldDeltas&&"mousewheel"===e.type&&t%120===0}var n,o,i=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],s="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],d=Array.prototype.slice;if(e.event.fixHooks)for(var u=i.length;u;)e.event.fixHooks[i[--u]]=e.event.mouseHooks;var l=e.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var a=s.length;a;)this.addEventListener(s[--a],t,!1);else this.onmousewheel=t;e.data(this,"mousewheel-line-height",l.getLineHeight(this)),e.data(this,"mousewheel-page-height",l.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var a=s.length;a;)this.removeEventListener(s[--a],t,!1);else this.onmousewheel=null;e.removeData(this,"mousewheel-line-height"),e.removeData(this,"mousewheel-page-height")},getLineHeight:function(t){var a=e(t),r=a["offsetParent"in e.fn?"offsetParent":"parent"]();return r.length||(r=e("body")),parseInt(r.css("fontSize"),10)||parseInt(a.css("fontSize"),10)||16},getPageHeight:function(t){return e(t).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};e.fn.extend({mousewheel:function(e){return e?this.bind("mousewheel",e):this.trigger("mousewheel")},unmousewheel:function(e){return this.unbind("mousewheel",e)}})});
assets/js/minicolors.js ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery MiniColors: A tiny color picker built on jQuery
3
+ *
4
+ * Copyright: Cory LaViska for A Beautiful Site, LLC: http://www.abeautifulsite.net/
5
+ *
6
+ * Contribute: https://github.com/claviska/jquery-minicolors
7
+ *
8
+ * @license: http://opensource.org/licenses/MIT
9
+ *
10
+ */
11
+ !function(i){"function"==typeof define&&define.amd?define(["jquery"],i):"object"==typeof exports?module.exports=i(require("jquery")):i(jQuery)}(function($){"use strict";function i(i,t){var o=$('<div class="minicolors" />'),s=$.minicolors.defaults,a,n,r,c,l;if(!i.data("minicolors-initialized")){if(t=$.extend(!0,{},s,t),o.addClass("minicolors-theme-"+t.theme).toggleClass("minicolors-with-opacity",t.opacity).toggleClass("minicolors-no-data-uris",t.dataUris!==!0),void 0!==t.position&&$.each(t.position.split(" "),function(){o.addClass("minicolors-position-"+this)}),a="rgb"===t.format?t.opacity?"25":"20":t.keywords?"11":"7",i.addClass("minicolors-input").data("minicolors-initialized",!1).data("minicolors-settings",t).prop("size",a).wrap(o).after('<div class="minicolors-panel minicolors-slider-'+t.control+'"><div class="minicolors-slider minicolors-sprite"><div class="minicolors-picker"></div></div><div class="minicolors-opacity-slider minicolors-sprite"><div class="minicolors-picker"></div></div><div class="minicolors-grid minicolors-sprite"><div class="minicolors-grid-inner"></div><div class="minicolors-picker"><div></div></div></div></div>'),t.inline||(i.after('<span class="minicolors-swatch minicolors-sprite minicolors-input-swatch"><span class="minicolors-swatch-color"></span></span>'),i.next(".minicolors-input-swatch").on("click",function(t){t.preventDefault(),i.focus()})),c=i.parent().find(".minicolors-panel"),c.on("selectstart",function(){return!1}).end(),t.swatches&&0!==t.swatches.length)for(t.swatches.length>7&&(t.swatches.length=7),c.addClass("minicolors-with-swatches"),n=$('<ul class="minicolors-swatches"></ul>').appendTo(c),l=0;l<t.swatches.length;++l)r=t.swatches[l],r=f(r)?u(r,!0):x(p(r,!0)),$('<li class="minicolors-swatch minicolors-sprite"><span class="minicolors-swatch-color"></span></li>').appendTo(n).data("swatch-color",t.swatches[l]).find(".minicolors-swatch-color").css({backgroundColor:y(r),opacity:r.a}),t.swatches[l]=r;t.inline&&i.parent().addClass("minicolors-inline"),e(i,!1),i.data("minicolors-initialized",!0)}}function t(i){var t=i.parent();i.removeData("minicolors-initialized").removeData("minicolors-settings").removeProp("size").removeClass("minicolors-input"),t.before(i).remove()}function o(i){var t=i.parent(),o=t.find(".minicolors-panel"),a=i.data("minicolors-settings");!i.data("minicolors-initialized")||i.prop("disabled")||t.hasClass("minicolors-inline")||t.hasClass("minicolors-focus")||(s(),t.addClass("minicolors-focus"),o.stop(!0,!0).fadeIn(a.showSpeed,function(){a.show&&a.show.call(i.get(0))}))}function s(){$(".minicolors-focus").each(function(){var i=$(this),t=i.find(".minicolors-input"),o=i.find(".minicolors-panel"),s=t.data("minicolors-settings");o.fadeOut(s.hideSpeed,function(){s.hide&&s.hide.call(t.get(0)),i.removeClass("minicolors-focus")})})}function a(i,t,o){var s=i.parents(".minicolors").find(".minicolors-input"),a=s.data("minicolors-settings"),r=i.find("[class$=-picker]"),e=i.offset().left,c=i.offset().top,l=Math.round(t.pageX-e),h=Math.round(t.pageY-c),d=o?a.animationSpeed:0,p,u,g,m;t.originalEvent.changedTouches&&(l=t.originalEvent.changedTouches[0].pageX-e,h=t.originalEvent.changedTouches[0].pageY-c),0>l&&(l=0),0>h&&(h=0),l>i.width()&&(l=i.width()),h>i.height()&&(h=i.height()),i.parent().is(".minicolors-slider-wheel")&&r.parent().is(".minicolors-grid")&&(p=75-l,u=75-h,g=Math.sqrt(p*p+u*u),m=Math.atan2(u,p),0>m&&(m+=2*Math.PI),g>75&&(g=75,l=75-75*Math.cos(m),h=75-75*Math.sin(m)),l=Math.round(l),h=Math.round(h)),i.is(".minicolors-grid")?r.stop(!0).animate({top:h+"px",left:l+"px"},d,a.animationEasing,function(){n(s,i)}):r.stop(!0).animate({top:h+"px"},d,a.animationEasing,function(){n(s,i)})}function n(i,t){function o(i,t){var o,s;return i.length&&t?(o=i.offset().left,s=i.offset().top,{x:o-t.offset().left+i.outerWidth()/2,y:s-t.offset().top+i.outerHeight()/2}):null}var s,a,n,e,l,h,d,p=i.val(),u=i.attr("data-opacity"),g=i.parent(),f=i.data("minicolors-settings"),v=g.find(".minicolors-input-swatch"),b=g.find(".minicolors-grid"),w=g.find(".minicolors-slider"),y=g.find(".minicolors-opacity-slider"),k=b.find("[class$=-picker]"),M=w.find("[class$=-picker]"),x=y.find("[class$=-picker]"),I=o(k,b),S=o(M,w),z=o(x,y);if(t.is(".minicolors-grid, .minicolors-slider, .minicolors-opacity-slider")){switch(f.control){case"wheel":e=b.width()/2-I.x,l=b.height()/2-I.y,h=Math.sqrt(e*e+l*l),d=Math.atan2(l,e),0>d&&(d+=2*Math.PI),h>75&&(h=75,I.x=69-75*Math.cos(d),I.y=69-75*Math.sin(d)),a=m(h/.75,0,100),s=m(180*d/Math.PI,0,360),n=m(100-Math.floor(S.y*(100/w.height())),0,100),p=C({h:s,s:a,b:n}),w.css("backgroundColor",C({h:s,s:a,b:100}));break;case"saturation":s=m(parseInt(I.x*(360/b.width()),10),0,360),a=m(100-Math.floor(S.y*(100/w.height())),0,100),n=m(100-Math.floor(I.y*(100/b.height())),0,100),p=C({h:s,s:a,b:n}),w.css("backgroundColor",C({h:s,s:100,b:n})),g.find(".minicolors-grid-inner").css("opacity",a/100);break;case"brightness":s=m(parseInt(I.x*(360/b.width()),10),0,360),a=m(100-Math.floor(I.y*(100/b.height())),0,100),n=m(100-Math.floor(S.y*(100/w.height())),0,100),p=C({h:s,s:a,b:n}),w.css("backgroundColor",C({h:s,s:a,b:100})),g.find(".minicolors-grid-inner").css("opacity",1-n/100);break;default:s=m(360-parseInt(S.y*(360/w.height()),10),0,360),a=m(Math.floor(I.x*(100/b.width())),0,100),n=m(100-Math.floor(I.y*(100/b.height())),0,100),p=C({h:s,s:a,b:n}),b.css("backgroundColor",C({h:s,s:100,b:100}))}u=f.opacity?parseFloat(1-z.y/y.height()).toFixed(2):1,r(i,p,u)}else v.find("span").css({backgroundColor:p,opacity:u}),c(i,p,u)}function r(i,t,o){var s,a=i.parent(),n=i.data("minicolors-settings"),r=a.find(".minicolors-input-swatch");n.opacity&&i.attr("data-opacity",o),"rgb"===n.format?(s=f(t)?u(t,!0):x(p(t,!0)),o=""===i.attr("data-opacity")?1:m(parseFloat(i.attr("data-opacity")).toFixed(2),0,1),(isNaN(o)||!n.opacity)&&(o=1),t=i.minicolors("rgbObject").a<=1&&s&&n.opacity?"rgba("+s.r+", "+s.g+", "+s.b+", "+parseFloat(o)+")":"rgb("+s.r+", "+s.g+", "+s.b+")"):(f(t)&&(t=w(t)),t=d(t,n.letterCase)),i.val(t),r.find("span").css({backgroundColor:t,opacity:o}),c(i,t,o)}function e(i,t){var o,s,a,n,r,e,l,h,b,y,M=i.parent(),x=i.data("minicolors-settings"),I=M.find(".minicolors-input-swatch"),S=M.find(".minicolors-grid"),z=M.find(".minicolors-slider"),F=M.find(".minicolors-opacity-slider"),D=S.find("[class$=-picker]"),T=z.find("[class$=-picker]"),j=F.find("[class$=-picker]");switch(f(i.val())?(o=w(i.val()),r=m(parseFloat(v(i.val())).toFixed(2),0,1),r&&i.attr("data-opacity",r)):o=d(p(i.val(),!0),x.letterCase),o||(o=d(g(x.defaultValue,!0),x.letterCase)),s=k(o),n=x.keywords?$.map(x.keywords.split(","),function(i){return $.trim(i.toLowerCase())}):[],e=""!==i.val()&&$.inArray(i.val().toLowerCase(),n)>-1?d(i.val()):f(i.val())?u(i.val()):o,t||i.val(e),x.opacity&&(a=""===i.attr("data-opacity")?1:m(parseFloat(i.attr("data-opacity")).toFixed(2),0,1),isNaN(a)&&(a=1),i.attr("data-opacity",a),I.find("span").css("opacity",a),h=m(F.height()-F.height()*a,0,F.height()),j.css("top",h+"px")),"transparent"===i.val().toLowerCase()&&I.find("span").css("opacity",0),I.find("span").css("backgroundColor",o),x.control){case"wheel":b=m(Math.ceil(.75*s.s),0,S.height()/2),y=s.h*Math.PI/180,l=m(75-Math.cos(y)*b,0,S.width()),h=m(75-Math.sin(y)*b,0,S.height()),D.css({top:h+"px",left:l+"px"}),h=150-s.b/(100/S.height()),""===o&&(h=0),T.css("top",h+"px"),z.css("backgroundColor",C({h:s.h,s:s.s,b:100}));break;case"saturation":l=m(5*s.h/12,0,150),h=m(S.height()-Math.ceil(s.b/(100/S.height())),0,S.height()),D.css({top:h+"px",left:l+"px"}),h=m(z.height()-s.s*(z.height()/100),0,z.height()),T.css("top",h+"px"),z.css("backgroundColor",C({h:s.h,s:100,b:s.b})),M.find(".minicolors-grid-inner").css("opacity",s.s/100);break;case"brightness":l=m(5*s.h/12,0,150),h=m(S.height()-Math.ceil(s.s/(100/S.height())),0,S.height()),D.css({top:h+"px",left:l+"px"}),h=m(z.height()-s.b*(z.height()/100),0,z.height()),T.css("top",h+"px"),z.css("backgroundColor",C({h:s.h,s:s.s,b:100})),M.find(".minicolors-grid-inner").css("opacity",1-s.b/100);break;default:l=m(Math.ceil(s.s/(100/S.width())),0,S.width()),h=m(S.height()-Math.ceil(s.b/(100/S.height())),0,S.height()),D.css({top:h+"px",left:l+"px"}),h=m(z.height()-s.h/(360/z.height()),0,z.height()),T.css("top",h+"px"),S.css("backgroundColor",C({h:s.h,s:100,b:100}))}i.data("minicolors-initialized")&&c(i,e,a)}function c(i,t,o){var s=i.data("minicolors-settings"),a=i.data("minicolors-lastChange"),n,r,e;if(!a||a.value!==t||a.opacity!==o){if(i.data("minicolors-lastChange",{value:t,opacity:o}),s.swatches&&0!==s.swatches.length){for(n=f(t)?u(t,!0):x(t),r=-1,e=0;e<s.swatches.length;++e)if(n.r===s.swatches[e].r&&n.g===s.swatches[e].g&&n.b===s.swatches[e].b&&n.a===s.swatches[e].a){r=e;break}i.parent().find(".minicolors-swatches .minicolors-swatch").removeClass("selected"),-1!==e&&i.parent().find(".minicolors-swatches .minicolors-swatch").eq(e).addClass("selected")}s.change&&(s.changeDelay?(clearTimeout(i.data("minicolors-changeTimeout")),i.data("minicolors-changeTimeout",setTimeout(function(){s.change.call(i.get(0),t,o)},s.changeDelay))):s.change.call(i.get(0),t,o)),i.trigger("change").trigger("input")}}function l(i){var t=p($(i).val(),!0),o=x(t),s=$(i).attr("data-opacity");return o?(void 0!==s&&$.extend(o,{a:parseFloat(s)}),o):null}function h(i,t){var o=p($(i).val(),!0),s=x(o),a=$(i).attr("data-opacity");return s?(void 0===a&&(a=1),t?"rgba("+s.r+", "+s.g+", "+s.b+", "+parseFloat(a)+")":"rgb("+s.r+", "+s.g+", "+s.b+")"):null}function d(i,t){return"uppercase"===t?i.toUpperCase():i.toLowerCase()}function p(i,t){return i=i.replace(/^#/g,""),i.match(/^[A-F0-9]{3,6}/gi)?3!==i.length&&6!==i.length?"":(3===i.length&&t&&(i=i[0]+i[0]+i[1]+i[1]+i[2]+i[2]),"#"+i):""}function u(i,t){var o=i.replace(/[^\d,.]/g,""),s=o.split(",");return s[0]=m(parseInt(s[0],10),0,255),s[1]=m(parseInt(s[1],10),0,255),s[2]=m(parseInt(s[2],10),0,255),s[3]&&(s[3]=m(parseFloat(s[3],10),0,1)),t?{r:s[0],g:s[1],b:s[2],a:s[3]?s[3]:null}:"undefined"!=typeof s[3]&&s[3]<=1?"rgba("+s[0]+", "+s[1]+", "+s[2]+", "+s[3]+")":"rgb("+s[0]+", "+s[1]+", "+s[2]+")"}function g(i,t){return f(i)?u(i):p(i,t)}function m(i,t,o){return t>i&&(i=t),i>o&&(i=o),i}function f(i){var t=i.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);return t&&4===t.length?!0:!1}function v(i){return i=i.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+(\.\d{1,2})?|\.\d{1,2})[\s+]?/i),i&&6===i.length?i[4]:"1"}function b(i){var t={},o=Math.round(i.h),s=Math.round(255*i.s/100),a=Math.round(255*i.b/100);if(0===s)t.r=t.g=t.b=a;else{var n=a,r=(255-s)*a/255,e=(n-r)*(o%60)/60;360===o&&(o=0),60>o?(t.r=n,t.b=r,t.g=r+e):120>o?(t.g=n,t.b=r,t.r=n-e):180>o?(t.g=n,t.r=r,t.b=r+e):240>o?(t.b=n,t.r=r,t.g=n-e):300>o?(t.b=n,t.g=r,t.r=r+e):360>o?(t.r=n,t.g=r,t.b=n-e):(t.r=0,t.g=0,t.b=0)}return{r:Math.round(t.r),g:Math.round(t.g),b:Math.round(t.b)}}function w(i){return i=i.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i),i&&4===i.length?"#"+("0"+parseInt(i[1],10).toString(16)).slice(-2)+("0"+parseInt(i[2],10).toString(16)).slice(-2)+("0"+parseInt(i[3],10).toString(16)).slice(-2):""}function y(i){var t=[i.r.toString(16),i.g.toString(16),i.b.toString(16)];return $.each(t,function(i,o){1===o.length&&(t[i]="0"+o)}),"#"+t.join("")}function C(i){return y(b(i))}function k(i){var t=M(x(i));return 0===t.s&&(t.h=360),t}function M(i){var t={h:0,s:0,b:0},o=Math.min(i.r,i.g,i.b),s=Math.max(i.r,i.g,i.b),a=s-o;return t.b=s,t.s=0!==s?255*a/s:0,0!==t.s?i.r===s?t.h=(i.g-i.b)/a:i.g===s?t.h=2+(i.b-i.r)/a:t.h=4+(i.r-i.g)/a:t.h=-1,t.h*=60,t.h<0&&(t.h+=360),t.s*=100/255,t.b*=100/255,t}function x(i){return i=parseInt(i.indexOf("#")>-1?i.substring(1):i,16),{r:i>>16,g:(65280&i)>>8,b:255&i}}$.minicolors={defaults:{animationSpeed:50,animationEasing:"swing",change:null,changeDelay:0,control:"hue",dataUris:!0,defaultValue:"",format:"hex",hide:null,hideSpeed:100,inline:!1,keywords:"",letterCase:"lowercase",opacity:!1,position:"bottom left",show:null,showSpeed:100,theme:"default",swatches:[]}},$.extend($.fn,{minicolors:function(a,n){switch(a){case"destroy":return $(this).each(function(){t($(this))}),$(this);case"hide":return s(),$(this);case"opacity":return void 0===n?$(this).attr("data-opacity"):($(this).each(function(){e($(this).attr("data-opacity",n))}),$(this));case"rgbObject":return l($(this),"rgbaObject"===a);case"rgbString":case"rgbaString":return h($(this),"rgbaString"===a);case"settings":return void 0===n?$(this).data("minicolors-settings"):($(this).each(function(){var i=$(this).data("minicolors-settings")||{};t($(this)),$(this).minicolors($.extend(!0,i,n))}),$(this));case"show":return o($(this).eq(0)),$(this);case"value":return void 0===n?$(this).val():($(this).each(function(){"object"==typeof n&&null!==typeof n?(n.opacity&&$(this).attr("data-opacity",m(n.opacity,0,1)),n.color&&$(this).val(n.color)):$(this).val(n),e($(this))}),$(this));default:return"create"!==a&&(n=a),$(this).each(function(){i($(this),n)}),$(this)}}}),$(document).on("mousedown.minicolors touchstart.minicolors",function(i){$(i.target).parents().add(i.target).hasClass("minicolors")||s()}).on("mousedown.minicolors touchstart.minicolors",".minicolors-grid, .minicolors-slider, .minicolors-opacity-slider",function(i){var t=$(this);i.preventDefault(),$(document).data("minicolors-target",t),a(t,i,!0)}).on("mousemove.minicolors touchmove.minicolors",function(i){var t=$(document).data("minicolors-target");t&&a(t,i)}).on("mouseup.minicolors touchend.minicolors",function(){$(this).removeData("minicolors-target")}).on("click.minicolors",".minicolors-swatches li",function(i){i.preventDefault();var t=$(this),o=t.parents(".minicolors").find(".minicolors-input"),s=t.data("swatch-color");r(o,s,v(s)),e(o)}).on("mousedown.minicolors touchstart.minicolors",".minicolors-input-swatch",function(i){var t=$(this).parent().find(".minicolors-input");i.preventDefault(),o(t)}).on("focus.minicolors",".minicolors-input",function(){var i=$(this);i.data("minicolors-initialized")&&o(i)}).on("blur.minicolors",".minicolors-input",function(){var i=$(this),t=i.data("minicolors-settings"),o,s,a,n,r;i.data("minicolors-initialized")&&(o=t.keywords?$.map(t.keywords.split(","),function(i){return $.trim(i.toLowerCase())}):[],""!==i.val()&&$.inArray(i.val().toLowerCase(),o)>-1?r=i.val():(f(i.val())?a=u(i.val(),!0):(s=p(i.val(),!0),a=s?x(s):null),r=null===a?t.defaultValue:"rgb"===t.format?u(t.opacity?"rgba("+a.r+","+a.g+","+a.b+","+i.attr("data-opacity")+")":"rgb("+a.r+","+a.g+","+a.b+")"):y(a)),n=t.opacity?i.attr("data-opacity"):1,"transparent"===r.toLowerCase()&&(n=0),i.closest(".minicolors").find(".minicolors-input-swatch > span").css("opacity",n),i.val(r),""===i.val()&&i.val(g(t.defaultValue,!0)),i.val(d(i.val(),t.letterCase)))}).on("keydown.minicolors",".minicolors-input",function(i){var t=$(this);if(t.data("minicolors-initialized"))switch(i.keyCode){case 9:s();break;case 13:case 27:s(),t.blur()}}).on("keyup.minicolors",".minicolors-input",function(){var i=$(this);i.data("minicolors-initialized")&&e(i,!0)}).on("paste.minicolors",".minicolors-input",function(){var i=$(this);i.data("minicolors-initialized")&&setTimeout(function(){e(i,!0)},1)})});
assets/js/select2.js ADDED
@@ -0,0 +1,5746 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Select2 4.0.4
3
+ * https://select2.github.io
4
+ *
5
+ * Released under the MIT license
6
+ * https://github.com/select2/select2/blob/master/LICENSE.md
7
+ */
8
+ (function (factory) {
9
+ if (typeof define === 'function' && define.amd) {
10
+ // AMD. Register as an anonymous module.
11
+ define(['jquery'], factory);
12
+ } else if (typeof module === 'object' && module.exports) {
13
+ // Node/CommonJS
14
+ module.exports = function (root, jQuery) {
15
+ if (jQuery === undefined) {
16
+ // require('jQuery') returns a factory that requires window to
17
+ // build a jQuery instance, we normalize how we use modules
18
+ // that require this pattern but the window provided is a noop
19
+ // if it's defined (how jquery works)
20
+ if (typeof window !== 'undefined') {
21
+ jQuery = require('jquery');
22
+ }
23
+ else {
24
+ jQuery = require('jquery')(root);
25
+ }
26
+ }
27
+ factory(jQuery);
28
+ return jQuery;
29
+ };
30
+ } else {
31
+ // Browser globals
32
+ factory(jQuery);
33
+ }
34
+ } (function (jQuery) {
35
+ // This is needed so we can catch the AMD loader configuration and use it
36
+ // The inner file should be wrapped (by `banner.start.js`) in a function that
37
+ // returns the AMD loader references.
38
+ var S2 =(function () {
39
+ // Restore the Select2 AMD loader so it can be used
40
+ // Needed mostly in the language files, where the loader is not inserted
41
+ if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {
42
+ var S2 = jQuery.fn.select2.amd;
43
+ }
44
+ var S2;(function () { if (!S2 || !S2.requirejs) {
45
+ if (!S2) { S2 = {}; } else { require = S2; }
46
+ /**
47
+ * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.
48
+ * Released under MIT license, http://github.com/requirejs/almond/LICENSE
49
+ */
50
+ //Going sloppy to avoid 'use strict' string cost, but strict practices should
51
+ //be followed.
52
+ /*global setTimeout: false */
53
+
54
+ var requirejs, require, define;
55
+ (function (undef) {
56
+ var main, req, makeMap, handlers,
57
+ defined = {},
58
+ waiting = {},
59
+ config = {},
60
+ defining = {},
61
+ hasOwn = Object.prototype.hasOwnProperty,
62
+ aps = [].slice,
63
+ jsSuffixRegExp = /\.js$/;
64
+
65
+ function hasProp(obj, prop) {
66
+ return hasOwn.call(obj, prop);
67
+ }
68
+
69
+ /**
70
+ * Given a relative module name, like ./something, normalize it to
71
+ * a real name that can be mapped to a path.
72
+ * @param {String} name the relative name
73
+ * @param {String} baseName a real name that the name arg is relative
74
+ * to.
75
+ * @returns {String} normalized name
76
+ */
77
+ function normalize(name, baseName) {
78
+ var nameParts, nameSegment, mapValue, foundMap, lastIndex,
79
+ foundI, foundStarMap, starI, i, j, part, normalizedBaseParts,
80
+ baseParts = baseName && baseName.split("/"),
81
+ map = config.map,
82
+ starMap = (map && map['*']) || {};
83
+
84
+ //Adjust any relative paths.
85
+ if (name) {
86
+ name = name.split('/');
87
+ lastIndex = name.length - 1;
88
+
89
+ // If wanting node ID compatibility, strip .js from end
90
+ // of IDs. Have to do this here, and not in nameToUrl
91
+ // because node allows either .js or non .js to map
92
+ // to same file.
93
+ if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {
94
+ name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');
95
+ }
96
+
97
+ // Starts with a '.' so need the baseName
98
+ if (name[0].charAt(0) === '.' && baseParts) {
99
+ //Convert baseName to array, and lop off the last part,
100
+ //so that . matches that 'directory' and not name of the baseName's
101
+ //module. For instance, baseName of 'one/two/three', maps to
102
+ //'one/two/three.js', but we want the directory, 'one/two' for
103
+ //this normalization.
104
+ normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);
105
+ name = normalizedBaseParts.concat(name);
106
+ }
107
+
108
+ //start trimDots
109
+ for (i = 0; i < name.length; i++) {
110
+ part = name[i];
111
+ if (part === '.') {
112
+ name.splice(i, 1);
113
+ i -= 1;
114
+ } else if (part === '..') {
115
+ // If at the start, or previous value is still ..,
116
+ // keep them so that when converted to a path it may
117
+ // still work when converted to a path, even though
118
+ // as an ID it is less than ideal. In larger point
119
+ // releases, may be better to just kick out an error.
120
+ if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') {
121
+ continue;
122
+ } else if (i > 0) {
123
+ name.splice(i - 1, 2);
124
+ i -= 2;
125
+ }
126
+ }
127
+ }
128
+ //end trimDots
129
+
130
+ name = name.join('/');
131
+ }
132
+
133
+ //Apply map config if available.
134
+ if ((baseParts || starMap) && map) {
135
+ nameParts = name.split('/');
136
+
137
+ for (i = nameParts.length; i > 0; i -= 1) {
138
+ nameSegment = nameParts.slice(0, i).join("/");
139
+
140
+ if (baseParts) {
141
+ //Find the longest baseName segment match in the config.
142
+ //So, do joins on the biggest to smallest lengths of baseParts.
143
+ for (j = baseParts.length; j > 0; j -= 1) {
144
+ mapValue = map[baseParts.slice(0, j).join('/')];
145
+
146
+ //baseName segment has config, find if it has one for
147
+ //this name.
148
+ if (mapValue) {
149
+ mapValue = mapValue[nameSegment];
150
+ if (mapValue) {
151
+ //Match, update name to the new value.
152
+ foundMap = mapValue;
153
+ foundI = i;
154
+ break;
155
+ }
156
+ }
157
+ }
158
+ }
159
+
160
+ if (foundMap) {
161
+ break;
162
+ }
163
+
164
+ //Check for a star map match, but just hold on to it,
165
+ //if there is a shorter segment match later in a matching
166
+ //config, then favor over this star map.
167
+ if (!foundStarMap && starMap && starMap[nameSegment]) {
168
+ foundStarMap = starMap[nameSegment];
169
+ starI = i;
170
+ }
171
+ }
172
+
173
+ if (!foundMap && foundStarMap) {
174
+ foundMap = foundStarMap;
175
+ foundI = starI;
176
+ }
177
+
178
+ if (foundMap) {
179
+ nameParts.splice(0, foundI, foundMap);
180
+ name = nameParts.join('/');
181
+ }
182
+ }
183
+
184
+ return name;
185
+ }
186
+
187
+ function makeRequire(relName, forceSync) {
188
+ return function () {
189
+ //A version of a require function that passes a moduleName
190
+ //value for items that may need to
191
+ //look up paths relative to the moduleName
192
+ var args = aps.call(arguments, 0);
193
+
194
+ //If first arg is not require('string'), and there is only
195
+ //one arg, it is the array form without a callback. Insert
196
+ //a null so that the following concat is correct.
197
+ if (typeof args[0] !== 'string' && args.length === 1) {
198
+ args.push(null);
199
+ }
200
+ return req.apply(undef, args.concat([relName, forceSync]));
201
+ };
202
+ }
203
+
204
+ function makeNormalize(relName) {
205
+ return function (name) {
206
+ return normalize(name, relName);
207
+ };
208
+ }
209
+
210
+ function makeLoad(depName) {
211
+ return function (value) {
212
+ defined[depName] = value;
213
+ };
214
+ }
215
+
216
+ function callDep(name) {
217
+ if (hasProp(waiting, name)) {
218
+ var args = waiting[name];
219
+ delete waiting[name];
220
+ defining[name] = true;
221
+ main.apply(undef, args);
222
+ }
223
+
224
+ if (!hasProp(defined, name) && !hasProp(defining, name)) {
225
+ throw new Error('No ' + name);
226
+ }
227
+ return defined[name];
228
+ }
229
+
230
+ //Turns a plugin!resource to [plugin, resource]
231
+ //with the plugin being undefined if the name
232
+ //did not have a plugin prefix.
233
+ function splitPrefix(name) {
234
+ var prefix,
235
+ index = name ? name.indexOf('!') : -1;
236
+ if (index > -1) {
237
+ prefix = name.substring(0, index);
238
+ name = name.substring(index + 1, name.length);
239
+ }
240
+ return [prefix, name];
241
+ }
242
+
243
+ //Creates a parts array for a relName where first part is plugin ID,
244
+ //second part is resource ID. Assumes relName has already been normalized.
245
+ function makeRelParts(relName) {
246
+ return relName ? splitPrefix(relName) : [];
247
+ }
248
+
249
+ /**
250
+ * Makes a name map, normalizing the name, and using a plugin
251
+ * for normalization if necessary. Grabs a ref to plugin
252
+ * too, as an optimization.
253
+ */
254
+ makeMap = function (name, relParts) {
255
+ var plugin,
256
+ parts = splitPrefix(name),
257
+ prefix = parts[0],
258
+ relResourceName = relParts[1];
259
+
260
+ name = parts[1];
261
+
262
+ if (prefix) {
263
+ prefix = normalize(prefix, relResourceName);
264
+ plugin = callDep(prefix);
265
+ }
266
+
267
+ //Normalize according
268
+ if (prefix) {
269
+ if (plugin && plugin.normalize) {
270
+ name = plugin.normalize(name, makeNormalize(relResourceName));
271
+ } else {
272
+ name = normalize(name, relResourceName);
273
+ }
274
+ } else {
275
+ name = normalize(name, relResourceName);
276
+ parts = splitPrefix(name);
277
+ prefix = parts[0];
278
+ name = parts[1];
279
+ if (prefix) {
280
+ plugin = callDep(prefix);
281
+ }
282
+ }
283
+
284
+ //Using ridiculous property names for space reasons
285
+ return {
286
+ f: prefix ? prefix + '!' + name : name, //fullName
287
+ n: name,
288
+ pr: prefix,
289
+ p: plugin
290
+ };
291
+ };
292
+
293
+ function makeConfig(name) {
294
+ return function () {
295
+ return (config && config.config && config.config[name]) || {};
296
+ };
297
+ }
298
+
299
+ handlers = {
300
+ require: function (name) {
301
+ return makeRequire(name);
302
+ },
303
+ exports: function (name) {
304
+ var e = defined[name];
305
+ if (typeof e !== 'undefined') {
306
+ return e;
307
+ } else {
308
+ return (defined[name] = {});
309
+ }
310
+ },
311
+ module: function (name) {
312
+ return {
313
+ id: name,
314
+ uri: '',
315
+ exports: defined[name],
316
+ config: makeConfig(name)
317
+ };
318
+ }
319
+ };
320
+
321
+ main = function (name, deps, callback, relName) {
322
+ var cjsModule, depName, ret, map, i, relParts,
323
+ args = [],
324
+ callbackType = typeof callback,
325
+ usingExports;
326
+
327
+ //Use name if no relName
328
+ relName = relName || name;
329
+ relParts = makeRelParts(relName);
330
+
331
+ //Call the callback to define the module, if necessary.
332
+ if (callbackType === 'undefined' || callbackType === 'function') {
333
+ //Pull out the defined dependencies and pass the ordered
334
+ //values to the callback.
335
+ //Default to [require, exports, module] if no deps
336
+ deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;
337
+ for (i = 0; i < deps.length; i += 1) {
338
+ map = makeMap(deps[i], relParts);
339
+ depName = map.f;
340
+
341
+ //Fast path CommonJS standard dependencies.
342
+ if (depName === "require") {
343
+ args[i] = handlers.require(name);
344
+ } else if (depName === "exports") {
345
+ //CommonJS module spec 1.1
346
+ args[i] = handlers.exports(name);
347
+ usingExports = true;
348
+ } else if (depName === "module") {
349
+ //CommonJS module spec 1.1
350
+ cjsModule = args[i] = handlers.module(name);
351
+ } else if (hasProp(defined, depName) ||
352
+ hasProp(waiting, depName) ||
353
+ hasProp(defining, depName)) {
354
+ args[i] = callDep(depName);
355
+ } else if (map.p) {
356
+ map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});
357
+ args[i] = defined[depName];
358
+ } else {
359
+ throw new Error(name + ' missing ' + depName);
360
+ }
361
+ }
362
+
363
+ ret = callback ? callback.apply(defined[name], args) : undefined;
364
+
365
+ if (name) {
366
+ //If setting exports via "module" is in play,
367
+ //favor that over return value and exports. After that,
368
+ //favor a non-undefined return value over exports use.
369
+ if (cjsModule && cjsModule.exports !== undef &&
370
+ cjsModule.exports !== defined[name]) {
371
+ defined[name] = cjsModule.exports;
372
+ } else if (ret !== undef || !usingExports) {
373
+ //Use the return value from the function.
374
+ defined[name] = ret;
375
+ }
376
+ }
377
+ } else if (name) {
378
+ //May just be an object definition for the module. Only
379
+ //worry about defining if have a module name.
380
+ defined[name] = callback;
381
+ }
382
+ };
383
+
384
+ requirejs = require = req = function (deps, callback, relName, forceSync, alt) {
385
+ if (typeof deps === "string") {
386
+ if (handlers[deps]) {
387
+ //callback in this case is really relName
388
+ return handlers[deps](callback);
389
+ }
390
+ //Just return the module wanted. In this scenario, the
391
+ //deps arg is the module name, and second arg (if passed)
392
+ //is just the relName.
393
+ //Normalize module name, if it contains . or ..
394
+ return callDep(makeMap(deps, makeRelParts(callback)).f);
395
+ } else if (!deps.splice) {
396
+ //deps is a config object, not an array.
397
+ config = deps;
398
+ if (config.deps) {
399
+ req(config.deps, config.callback);
400
+ }
401
+ if (!callback) {
402
+ return;
403
+ }
404
+
405
+ if (callback.splice) {
406
+ //callback is an array, which means it is a dependency list.
407
+ //Adjust args if there are dependencies
408
+ deps = callback;
409
+ callback = relName;
410
+ relName = null;
411
+ } else {
412
+ deps = undef;
413
+ }
414
+ }
415
+
416
+ //Support require(['a'])
417
+ callback = callback || function () {};
418
+
419
+ //If relName is a function, it is an errback handler,
420
+ //so remove it.
421
+ if (typeof relName === 'function') {
422
+ relName = forceSync;
423
+ forceSync = alt;
424
+ }
425
+
426
+ //Simulate async callback;
427
+ if (forceSync) {
428
+ main(undef, deps, callback, relName);
429
+ } else {
430
+ //Using a non-zero value because of concern for what old browsers
431
+ //do, and latest browsers "upgrade" to 4 if lower value is used:
432
+ //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:
433
+ //If want a value immediately, use require('id') instead -- something
434
+ //that works in almond on the global level, but not guaranteed and
435
+ //unlikely to work in other AMD implementations.
436
+ setTimeout(function () {
437
+ main(undef, deps, callback, relName);
438
+ }, 4);
439
+ }
440
+
441
+ return req;
442
+ };
443
+
444
+ /**
445
+ * Just drops the config on the floor, but returns req in case
446
+ * the config return value is used.
447
+ */
448
+ req.config = function (cfg) {
449
+ return req(cfg);
450
+ };
451
+
452
+ /**
453
+ * Expose module registry for debugging and tooling
454
+ */
455
+ requirejs._defined = defined;
456
+
457
+ define = function (name, deps, callback) {
458
+ if (typeof name !== 'string') {
459
+ throw new Error('See almond README: incorrect module build, no module name');
460
+ }
461
+
462
+ //This module may not have dependencies
463
+ if (!deps.splice) {
464
+ //deps is not an array, so probably means
465
+ //an object literal or factory function for
466
+ //the value. Adjust args.
467
+ callback = deps;
468
+ deps = [];
469
+ }
470
+
471
+ if (!hasProp(defined, name) && !hasProp(waiting, name)) {
472
+ waiting[name] = [name, deps, callback];
473
+ }
474
+ };
475
+
476
+ define.amd = {
477
+ jQuery: true
478
+ };
479
+ }());
480
+
481
+ S2.requirejs = requirejs;S2.require = require;S2.define = define;
482
+ }
483
+ }());
484
+ S2.define("almond", function(){});
485
+
486
+ /* global jQuery:false, $:false */
487
+ S2.define('jquery',[],function () {
488
+ var _$ = jQuery || $;
489
+
490
+ if (_$ == null && console && console.error) {
491
+ console.error(
492
+ 'Select2: An instance of jQuery or a jQuery-compatible library was not ' +
493
+ 'found. Make sure that you are including jQuery before Select2 on your ' +
494
+ 'web page.'
495
+ );
496
+ }
497
+
498
+ return _$;
499
+ });
500
+
501
+ S2.define('select2/utils',[
502
+ 'jquery'
503
+ ], function ($) {
504
+ var Utils = {};
505
+
506
+ Utils.Extend = function (ChildClass, SuperClass) {
507
+ var __hasProp = {}.hasOwnProperty;
508
+
509
+ function BaseConstructor () {
510
+ this.constructor = ChildClass;
511
+ }
512
+
513
+ for (var key in SuperClass) {
514
+ if (__hasProp.call(SuperClass, key)) {
515
+ ChildClass[key] = SuperClass[key];
516
+ }
517
+ }
518
+
519
+ BaseConstructor.prototype = SuperClass.prototype;
520
+ ChildClass.prototype = new BaseConstructor();
521
+ ChildClass.__super__ = SuperClass.prototype;
522
+
523
+ return ChildClass;
524
+ };
525
+
526
+ function getMethods (theClass) {
527
+ var proto = theClass.prototype;
528
+
529
+ var methods = [];
530
+
531
+ for (var methodName in proto) {
532
+ var m = proto[methodName];
533
+
534
+ if (typeof m !== 'function') {
535
+ continue;
536
+ }
537
+
538
+ if (methodName === 'constructor') {
539
+ continue;
540
+ }
541
+
542
+ methods.push(methodName);
543
+ }
544
+
545
+ return methods;
546
+ }
547
+
548
+ Utils.Decorate = function (SuperClass, DecoratorClass) {
549
+ var decoratedMethods = getMethods(DecoratorClass);
550
+ var superMethods = getMethods(SuperClass);
551
+
552
+ function DecoratedClass () {
553
+ var unshift = Array.prototype.unshift;
554
+
555
+ var argCount = DecoratorClass.prototype.constructor.length;
556
+
557
+ var calledConstructor = SuperClass.prototype.constructor;
558
+
559
+ if (argCount > 0) {
560
+ unshift.call(arguments, SuperClass.prototype.constructor);
561
+
562
+ calledConstructor = DecoratorClass.prototype.constructor;
563
+ }
564
+
565
+ calledConstructor.apply(this, arguments);
566
+ }
567
+
568
+ DecoratorClass.displayName = SuperClass.displayName;
569
+
570
+ function ctr () {
571
+ this.constructor = DecoratedClass;
572
+ }
573
+
574
+ DecoratedClass.prototype = new ctr();
575
+
576
+ for (var m = 0; m < superMethods.length; m++) {
577
+ var superMethod = superMethods[m];
578
+
579
+ DecoratedClass.prototype[superMethod] =
580
+ SuperClass.prototype[superMethod];
581
+ }
582
+
583
+ var calledMethod = function (methodName) {
584
+ // Stub out the original method if it's not decorating an actual method
585
+ var originalMethod = function () {};
586
+
587
+ if (methodName in DecoratedClass.prototype) {
588
+ originalMethod = DecoratedClass.prototype[methodName];
589
+ }
590
+
591
+ var decoratedMethod = DecoratorClass.prototype[methodName];
592
+
593
+ return function () {
594
+ var unshift = Array.prototype.unshift;
595
+
596
+ unshift.call(arguments, originalMethod);
597
+
598
+ return decoratedMethod.apply(this, arguments);
599
+ };
600
+ };
601
+
602
+ for (var d = 0; d < decoratedMethods.length; d++) {
603
+ var decoratedMethod = decoratedMethods[d];
604
+
605
+ DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);
606
+ }
607
+
608
+ return DecoratedClass;
609
+ };
610
+
611
+ var Observable = function () {
612
+ this.listeners = {};
613
+ };
614
+
615
+ Observable.prototype.on = function (event, callback) {
616
+ this.listeners = this.listeners || {};
617
+
618
+ if (event in this.listeners) {
619
+ this.listeners[event].push(callback);
620
+ } else {
621
+ this.listeners[event] = [callback];
622
+ }
623
+ };
624
+
625
+ Observable.prototype.trigger = function (event) {
626
+ var slice = Array.prototype.slice;
627
+ var params = slice.call(arguments, 1);
628
+
629
+ this.listeners = this.listeners || {};
630
+
631
+ // Params should always come in as an array
632
+ if (params == null) {
633
+ params = [];
634
+ }
635
+
636
+ // If there are no arguments to the event, use a temporary object
637
+ if (params.length === 0) {
638
+ params.push({});
639
+ }
640
+
641
+ // Set the `_type` of the first object to the event
642
+ params[0]._type = event;
643
+
644
+ if (event in this.listeners) {
645
+ this.invoke(this.listeners[event], slice.call(arguments, 1));
646
+ }
647
+
648
+ if ('*' in this.listeners) {
649
+ this.invoke(this.listeners['*'], arguments);
650
+ }
651
+ };
652
+
653
+ Observable.prototype.invoke = function (listeners, params) {
654
+ for (var i = 0, len = listeners.length; i < len; i++) {
655
+ listeners[i].apply(this, params);
656
+ }
657
+ };
658
+
659
+ Utils.Observable = Observable;
660
+
661
+ Utils.generateChars = function (length) {
662
+ var chars = '';
663
+
664
+ for (var i = 0; i < length; i++) {
665
+ var randomChar = Math.floor(Math.random() * 36);
666
+ chars += randomChar.toString(36);
667
+ }
668
+
669
+ return chars;
670
+ };
671
+
672
+ Utils.bind = function (func, context) {
673
+ return function () {
674
+ func.apply(context, arguments);
675
+ };
676
+ };
677
+
678
+ Utils._convertData = function (data) {
679
+ for (var originalKey in data) {
680
+ var keys = originalKey.split('-');
681
+
682
+ var dataLevel = data;
683
+
684
+ if (keys.length === 1) {
685
+ continue;
686
+ }
687
+
688
+ for (var k = 0; k < keys.length; k++) {
689
+ var key = keys[k];
690
+
691
+ // Lowercase the first letter
692
+ // By default, dash-separated becomes camelCase
693
+ key = key.substring(0, 1).toLowerCase() + key.substring(1);
694
+
695
+ if (!(key in dataLevel)) {
696
+ dataLevel[key] = {};
697
+ }
698
+
699
+ if (k == keys.length - 1) {
700
+ dataLevel[key] = data[originalKey];
701
+ }
702
+
703
+ dataLevel = dataLevel[key];
704
+ }
705
+
706
+ delete data[originalKey];
707
+ }
708
+
709
+ return data;
710
+ };
711
+
712
+ Utils.hasScroll = function (index, el) {
713
+ // Adapted from the function created by @ShadowScripter
714
+ // and adapted by @BillBarry on the Stack Exchange Code Review website.
715
+ // The original code can be found at
716
+ // http://codereview.stackexchange.com/q/13338
717
+ // and was designed to be used with the Sizzle selector engine.
718
+
719
+ var $el = $(el);
720
+ var overflowX = el.style.overflowX;
721
+ var overflowY = el.style.overflowY;
722
+
723
+ //Check both x and y declarations
724
+ if (overflowX === overflowY &&
725
+ (overflowY === 'hidden' || overflowY === 'visible')) {
726
+ return false;
727
+ }
728
+
729
+ if (overflowX === 'scroll' || overflowY === 'scroll') {
730
+ return true;
731
+ }
732
+
733
+ return ($el.innerHeight() < el.scrollHeight ||
734
+ $el.innerWidth() < el.scrollWidth);
735
+ };
736
+
737
+ Utils.escapeMarkup = function (markup) {
738
+ var replaceMap = {
739
+ '\\': '&#92;',
740
+ '&': '&amp;',
741
+ '<': '&lt;',
742
+ '>': '&gt;',
743
+ '"': '&quot;',
744
+ '\'': '&#39;',
745
+ '/': '&#47;'
746
+ };
747
+
748
+ // Do not try to escape the markup if it's not a string
749
+ if (typeof markup !== 'string') {
750
+ return markup;
751
+ }
752
+
753
+ return String(markup).replace(/[&<>"'\/\\]/g, function (match) {
754
+ return replaceMap[match];
755
+ });
756
+ };
757
+
758
+ // Append an array of jQuery nodes to a given element.
759
+ Utils.appendMany = function ($element, $nodes) {
760
+ // jQuery 1.7.x does not support $.fn.append() with an array
761
+ // Fall back to a jQuery object collection using $.fn.add()
762
+ if ($.fn.jquery.substr(0, 3) === '1.7') {
763
+ var $jqNodes = $();
764
+
765
+ $.map($nodes, function (node) {
766
+ $jqNodes = $jqNodes.add(node);
767
+ });
768
+
769
+ $nodes = $jqNodes;
770
+ }
771
+
772
+ $element.append($nodes);
773
+ };
774
+
775
+ return Utils;
776
+ });
777
+
778
+ S2.define('select2/results',[
779
+ 'jquery',
780
+ './utils'
781
+ ], function ($, Utils) {
782
+ function Results ($element, options, dataAdapter) {
783
+ this.$element = $element;
784
+ this.data = dataAdapter;
785
+ this.options = options;
786
+
787
+ Results.__super__.constructor.call(this);
788
+ }
789
+
790
+ Utils.Extend(Results, Utils.Observable);
791
+
792
+ Results.prototype.render = function () {
793
+ var $results = $(
794
+ '<ul class="select2-results__options" role="tree"></ul>'
795
+ );
796
+
797
+ if (this.options.get('multiple')) {
798
+ $results.attr('aria-multiselectable', 'true');
799
+ }
800
+
801
+ this.$results = $results;
802
+
803
+ return $results;
804
+ };
805
+
806
+ Results.prototype.clear = function () {
807
+ this.$results.empty();
808
+ };
809
+
810
+ Results.prototype.displayMessage = function (params) {
811
+ var escapeMarkup = this.options.get('escapeMarkup');
812
+
813
+ this.clear();
814
+ this.hideLoading();
815
+
816
+ var $message = $(
817
+ '<li role="treeitem" aria-live="assertive"' +
818
+ ' class="select2-results__option"></li>'
819
+ );
820
+
821
+ var message = this.options.get('translations').get(params.message);
822
+
823
+ $message.append(
824
+ escapeMarkup(
825
+ message(params.args)
826
+ )
827
+ );
828
+
829
+ $message[0].className += ' select2-results__message';
830
+
831
+ this.$results.append($message);
832
+ };
833
+
834
+ Results.prototype.hideMessages = function () {
835
+ this.$results.find('.select2-results__message').remove();
836
+ };
837
+
838
+ Results.prototype.append = function (data) {
839
+ this.hideLoading();
840
+
841
+ var $options = [];
842
+
843
+ if (data.results == null || data.results.length === 0) {
844
+ if (this.$results.children().length === 0) {
845
+ this.trigger('results:message', {
846
+ message: 'noResults'
847
+ });
848
+ }
849
+
850
+ return;
851
+ }
852
+
853
+ data.results = this.sort(data.results);
854
+
855
+ for (var d = 0; d < data.results.length; d++) {
856
+ var item = data.results[d];
857
+
858
+ var $option = this.option(item);
859
+
860
+ $options.push($option);
861
+ }
862
+
863
+ this.$results.append($options);
864
+ };
865
+
866
+ Results.prototype.position = function ($results, $dropdown) {
867
+ var $resultsContainer = $dropdown.find('.select2-results');
868
+ $resultsContainer.append($results);
869
+ };
870
+
871
+ Results.prototype.sort = function (data) {
872
+ var sorter = this.options.get('sorter');
873
+
874
+ return sorter(data);
875
+ };
876
+
877
+ Results.prototype.highlightFirstItem = function () {
878
+ var $options = this.$results
879
+ .find('.select2-results__option[aria-selected]');
880
+
881
+ var $selected = $options.filter('[aria-selected=true]');
882
+
883
+ // Check if there are any selected options
884
+ if ($selected.length > 0) {
885
+ // If there are selected options, highlight the first
886
+ $selected.first().trigger('mouseenter');
887
+ } else {
888
+ // If there are no selected options, highlight the first option
889
+ // in the dropdown
890
+ $options.first().trigger('mouseenter');
891
+ }
892
+
893
+ this.ensureHighlightVisible();
894
+ };
895
+
896
+ Results.prototype.setClasses = function () {
897
+ var self = this;
898
+
899
+ this.data.current(function (selected) {
900
+ var selectedIds = $.map(selected, function (s) {
901
+ return s.id.toString();
902
+ });
903
+
904
+ var $options = self.$results
905
+ .find('.select2-results__option[aria-selected]');
906
+
907
+ $options.each(function () {
908
+ var $option = $(this);
909
+
910
+ var item = $.data(this, 'data');
911
+
912
+ // id needs to be converted to a string when comparing
913
+ var id = '' + item.id;
914
+
915
+ if ((item.element != null && item.element.selected) ||
916
+ (item.element == null && $.inArray(id, selectedIds) > -1)) {
917
+ $option.attr('aria-selected', 'true');
918
+ } else {
919
+ $option.attr('aria-selected', 'false');
920
+ }
921
+ });
922
+
923
+ });
924
+ };
925
+
926
+ Results.prototype.showLoading = function (params) {
927
+ this.hideLoading();
928
+
929
+ var loadingMore = this.options.get('translations').get('searching');
930
+
931
+ var loading = {
932
+ disabled: true,
933
+ loading: true,
934
+ text: loadingMore(params)
935
+ };
936
+ var $loading = this.option(loading);
937
+ $loading.className += ' loading-results';
938
+
939
+ this.$results.prepend($loading);
940
+ };
941
+
942
+ Results.prototype.hideLoading = function () {
943
+ this.$results.find('.loading-results').remove();
944
+ };
945
+
946
+ Results.prototype.option = function (data) {
947
+ var option = document.createElement('li');
948
+ option.className = 'select2-results__option';
949
+
950
+ var attrs = {
951
+ 'role': 'treeitem',
952
+ 'aria-selected': 'false'
953
+ };
954
+
955
+ if (data.disabled) {
956
+ delete attrs['aria-selected'];
957
+ attrs['aria-disabled'] = 'true';
958
+ }
959
+
960
+ if (data.id == null) {
961
+ delete attrs['aria-selected'];
962
+ }
963
+
964
+ if (data._resultId != null) {
965
+ option.id = data._resultId;
966
+ }
967
+
968
+ if (data.title) {
969
+ option.title = data.title;
970
+ }
971
+
972
+ if (data.children) {
973
+ attrs.role = 'group';
974
+ attrs['aria-label'] = data.text;
975
+ delete attrs['aria-selected'];
976
+ }
977
+
978
+ for (var attr in attrs) {
979
+ var val = attrs[attr];
980
+
981
+ option.setAttribute(attr, val);
982
+ }
983
+
984
+ if (data.children) {
985
+ var $option = $(option);
986
+
987
+ var label = document.createElement('strong');
988
+ label.className = 'select2-results__group';
989
+
990
+ var $label = $(label);
991
+ this.template(data, label);
992
+
993
+ var $children = [];
994
+
995
+ for (var c = 0; c < data.children.length; c++) {
996
+ var child = data.children[c];
997
+
998
+ var $child = this.option(child);
999
+
1000
+ $children.push($child);
1001
+ }
1002
+
1003
+ var $childrenContainer = $('<ul></ul>', {
1004
+ 'class': 'select2-results__options select2-results__options--nested'
1005
+ });
1006
+
1007
+ $childrenContainer.append($children);
1008
+
1009
+ $option.append(label);
1010
+ $option.append($childrenContainer);
1011
+ } else {
1012
+ this.template(data, option);
1013
+ }
1014
+
1015
+ $.data(option, 'data', data);
1016
+
1017
+ return option;
1018
+ };
1019
+
1020
+ Results.prototype.bind = function (container, $container) {
1021
+ var self = this;
1022
+
1023
+ var id = container.id + '-results';
1024
+
1025
+ this.$results.attr('id', id);
1026
+
1027
+ container.on('results:all', function (params) {
1028
+ self.clear();
1029
+ self.append(params.data);
1030
+
1031
+ if (container.isOpen()) {
1032
+ self.setClasses();
1033
+ self.highlightFirstItem();
1034
+ }
1035
+ });
1036
+
1037
+ container.on('results:append', function (params) {
1038
+ self.append(params.data);
1039
+
1040
+ if (container.isOpen()) {
1041
+ self.setClasses();
1042
+ }
1043
+ });
1044
+
1045
+ container.on('query', function (params) {
1046
+ self.hideMessages();
1047
+ self.showLoading(params);
1048
+ });
1049
+
1050
+ container.on('select', function () {
1051
+ if (!container.isOpen()) {
1052
+ return;
1053
+ }
1054
+
1055
+ self.setClasses();
1056
+ self.highlightFirstItem();
1057
+ });
1058
+
1059
+ container.on('unselect', function () {
1060
+ if (!container.isOpen()) {
1061
+ return;
1062
+ }
1063
+
1064
+ self.setClasses();
1065
+ self.highlightFirstItem();
1066
+ });
1067
+
1068
+ container.on('open', function () {
1069
+ // When the dropdown is open, aria-expended="true"
1070
+ self.$results.attr('aria-expanded', 'true');
1071
+ self.$results.attr('aria-hidden', 'false');
1072
+
1073
+ self.setClasses();
1074
+ self.ensureHighlightVisible();
1075
+ });
1076
+
1077
+ container.on('close', function () {
1078
+ // When the dropdown is closed, aria-expended="false"
1079
+ self.$results.attr('aria-expanded', 'false');
1080
+ self.$results.attr('aria-hidden', 'true');
1081
+ self.$results.removeAttr('aria-activedescendant');
1082
+ });
1083
+
1084
+ container.on('results:toggle', function () {
1085
+ var $highlighted = self.getHighlightedResults();
1086
+
1087
+ if ($highlighted.length === 0) {
1088
+ return;
1089
+ }
1090
+
1091
+ $highlighted.trigger('mouseup');
1092
+ });
1093
+
1094
+ container.on('results:select', function () {
1095
+ var $highlighted = self.getHighlightedResults();
1096
+
1097
+ if ($highlighted.length === 0) {
1098
+ return;
1099
+ }
1100
+
1101
+ var data = $highlighted.data('data');
1102
+
1103
+ if ($highlighted.attr('aria-selected') == 'true') {
1104
+ self.trigger('close', {});
1105
+ } else {
1106
+ self.trigger('select', {
1107
+ data: data
1108
+ });
1109
+ }
1110
+ });
1111
+
1112
+ container.on('results:previous', function () {
1113
+ var $highlighted = self.getHighlightedResults();
1114
+
1115
+ var $options = self.$results.find('[aria-selected]');
1116
+
1117
+ var currentIndex = $options.index($highlighted);
1118
+
1119
+ // If we are already at te top, don't move further
1120
+ if (currentIndex === 0) {
1121
+ return;
1122
+ }
1123
+
1124
+ var nextIndex = currentIndex - 1;
1125
+
1126
+ // If none are highlighted, highlight the first
1127
+ if ($highlighted.length === 0) {
1128
+ nextIndex = 0;
1129
+ }
1130
+
1131
+ var $next = $options.eq(nextIndex);
1132
+
1133
+ $next.trigger('mouseenter');
1134
+
1135
+ var currentOffset = self.$results.offset().top;
1136
+ var nextTop = $next.offset().top;
1137
+ var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);
1138
+
1139
+ if (nextIndex === 0) {
1140
+ self.$results.scrollTop(0);
1141
+ } else if (nextTop - currentOffset < 0) {
1142
+ self.$results.scrollTop(nextOffset);
1143
+ }
1144
+ });
1145
+
1146
+ container.on('results:next', function () {
1147
+ var $highlighted = self.getHighlightedResults();
1148
+
1149
+ var $options = self.$results.find('[aria-selected]');
1150
+
1151
+ var currentIndex = $options.index($highlighted);
1152
+
1153
+ var nextIndex = currentIndex + 1;
1154
+
1155
+ // If we are at the last option, stay there
1156
+ if (nextIndex >= $options.length) {
1157
+ return;
1158
+ }
1159
+
1160
+ var $next = $options.eq(nextIndex);
1161
+
1162
+ $next.trigger('mouseenter');
1163
+
1164
+ var currentOffset = self.$results.offset().top +
1165
+ self.$results.outerHeight(false);
1166
+ var nextBottom = $next.offset().top + $next.outerHeight(false);
1167
+ var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;
1168
+
1169
+ if (nextIndex === 0) {
1170
+ self.$results.scrollTop(0);
1171
+ } else if (nextBottom > currentOffset) {
1172
+ self.$results.scrollTop(nextOffset);
1173
+ }
1174
+ });
1175
+
1176
+ container.on('results:focus', function (params) {
1177
+ params.element.addClass('select2-results__option--highlighted');
1178
+ });
1179
+
1180
+ container.on('results:message', function (params) {
1181
+ self.displayMessage(params);
1182
+ });
1183
+
1184
+ if ($.fn.mousewheel) {
1185
+ this.$results.on('mousewheel', function (e) {
1186
+ var top = self.$results.scrollTop();
1187
+
1188
+ var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;
1189
+
1190
+ var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;
1191
+ var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();
1192
+
1193
+ if (isAtTop) {
1194
+ self.$results.scrollTop(0);
1195
+
1196
+ e.preventDefault();
1197
+ e.stopPropagation();
1198
+ } else if (isAtBottom) {
1199
+ self.$results.scrollTop(
1200
+ self.$results.get(0).scrollHeight - self.$results.height()
1201
+ );
1202
+
1203
+ e.preventDefault();
1204
+ e.stopPropagation();
1205
+ }
1206
+ });
1207
+ }
1208
+
1209
+ this.$results.on('mouseup', '.select2-results__option[aria-selected]',
1210
+ function (evt) {
1211
+ var $this = $(this);
1212
+
1213
+ var data = $this.data('data');
1214
+
1215
+ if ($this.attr('aria-selected') === 'true') {
1216
+ if (self.options.get('multiple')) {
1217
+ self.trigger('unselect', {
1218
+ originalEvent: evt,
1219
+ data: data
1220
+ });
1221
+ } else {
1222
+ self.trigger('close', {});
1223
+ }
1224
+
1225
+ return;
1226
+ }
1227
+
1228
+ self.trigger('select', {
1229
+ originalEvent: evt,
1230
+ data: data
1231
+ });
1232
+ });
1233
+
1234
+ this.$results.on('mouseenter', '.select2-results__option[aria-selected]',
1235
+ function (evt) {
1236
+ var data = $(this).data('data');
1237
+
1238
+ self.getHighlightedResults()
1239
+ .removeClass('select2-results__option--highlighted');
1240
+
1241
+ self.trigger('results:focus', {
1242
+ data: data,
1243
+ element: $(this)
1244
+ });
1245
+ });
1246
+ };
1247
+
1248
+ Results.prototype.getHighlightedResults = function () {
1249
+ var $highlighted = this.$results
1250
+ .find('.select2-results__option--highlighted');
1251
+
1252
+ return $highlighted;
1253
+ };
1254
+
1255
+ Results.prototype.destroy = function () {
1256
+ this.$results.remove();
1257
+ };
1258
+
1259
+ Results.prototype.ensureHighlightVisible = function () {
1260
+ var $highlighted = this.getHighlightedResults();
1261
+
1262
+ if ($highlighted.length === 0) {
1263
+ return;
1264
+ }
1265
+
1266
+ var $options = this.$results.find('[aria-selected]');
1267
+
1268
+ var currentIndex = $options.index($highlighted);
1269
+
1270
+ var currentOffset = this.$results.offset().top;
1271
+ var nextTop = $highlighted.offset().top;
1272
+ var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);
1273
+
1274
+ var offsetDelta = nextTop - currentOffset;
1275
+ nextOffset -= $highlighted.outerHeight(false) * 2;
1276
+
1277
+ if (currentIndex <= 2) {
1278
+ this.$results.scrollTop(0);
1279
+ } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {
1280
+ this.$results.scrollTop(nextOffset);
1281
+ }
1282
+ };
1283
+
1284
+ Results.prototype.template = function (result, container) {
1285
+ var template = this.options.get('templateResult');
1286
+ var escapeMarkup = this.options.get('escapeMarkup');
1287
+
1288
+ var content = template(result, container);
1289
+
1290
+ if (content == null) {
1291
+ container.style.display = 'none';
1292
+ } else if (typeof content === 'string') {
1293
+ container.innerHTML = escapeMarkup(content);
1294
+ } else {
1295
+ $(container).append(content);
1296
+ }
1297
+ };
1298
+
1299
+ return Results;
1300
+ });
1301
+
1302
+ S2.define('select2/keys',[
1303
+
1304
+ ], function () {
1305
+ var KEYS = {
1306
+ BACKSPACE: 8,
1307
+ TAB: 9,
1308
+ ENTER: 13,
1309
+ SHIFT: 16,
1310
+ CTRL: 17,
1311
+ ALT: 18,
1312
+ ESC: 27,
1313
+ SPACE: 32,
1314
+ PAGE_UP: 33,
1315
+ PAGE_DOWN: 34,
1316
+ END: 35,
1317
+ HOME: 36,
1318
+ LEFT: 37,
1319
+ UP: 38,
1320
+ RIGHT: 39,
1321
+ DOWN: 40,
1322
+ DELETE: 46
1323
+ };
1324
+
1325
+ return KEYS;
1326
+ });
1327
+
1328
+ S2.define('select2/selection/base',[
1329
+ 'jquery',
1330
+ '../utils',
1331
+ '../keys'
1332
+ ], function ($, Utils, KEYS) {
1333
+ function BaseSelection ($element, options) {
1334
+ this.$element = $element;
1335
+ this.options = options;
1336
+
1337
+ BaseSelection.__super__.constructor.call(this);
1338
+ }
1339
+
1340
+ Utils.Extend(BaseSelection, Utils.Observable);
1341
+
1342
+ BaseSelection.prototype.render = function () {
1343
+ var $selection = $(
1344
+ '<span class="select2-selection" role="combobox" ' +
1345
+ ' aria-haspopup="true" aria-expanded="false">' +
1346
+ '</span>'
1347
+ );
1348
+
1349
+ this._tabindex = 0;
1350
+
1351
+ if (this.$element.data('old-tabindex') != null) {
1352
+ this._tabindex = this.$element.data('old-tabindex');
1353
+ } else if (this.$element.attr('tabindex') != null) {
1354
+ this._tabindex = this.$element.attr('tabindex');
1355
+ }
1356
+
1357
+ $selection.attr('title', this.$element.attr('title'));
1358
+ $selection.attr('tabindex', this._tabindex);
1359
+
1360
+ this.$selection = $selection;
1361
+
1362
+ return $selection;
1363
+ };
1364
+
1365
+ BaseSelection.prototype.bind = function (container, $container) {
1366
+ var self = this;
1367
+
1368
+ var id = container.id + '-container';
1369
+ var resultsId = container.id + '-results';
1370
+
1371
+ this.container = container;
1372
+
1373
+ this.$selection.on('focus', function (evt) {
1374
+ self.trigger('focus', evt);
1375
+ });
1376
+
1377
+ this.$selection.on('blur', function (evt) {
1378
+ self._handleBlur(evt);
1379
+ });
1380
+
1381
+ this.$selection.on('keydown', function (evt) {
1382
+ self.trigger('keypress', evt);
1383
+
1384
+ if (evt.which === KEYS.SPACE) {
1385
+ evt.preventDefault();
1386
+ }
1387
+ });
1388
+
1389
+ container.on('results:focus', function (params) {
1390
+ self.$selection.attr('aria-activedescendant', params.data._resultId);
1391
+ });
1392
+
1393
+ container.on('selection:update', function (params) {
1394
+ self.update(params.data);
1395
+ });
1396
+
1397
+ container.on('open', function () {
1398
+ // When the dropdown is open, aria-expanded="true"
1399
+ self.$selection.attr('aria-expanded', 'true');
1400
+ self.$selection.attr('aria-owns', resultsId);
1401
+
1402
+ self._attachCloseHandler(container);
1403
+ });
1404
+
1405
+ container.on('close', function () {
1406
+ // When the dropdown is closed, aria-expanded="false"
1407
+ self.$selection.attr('aria-expanded', 'false');
1408
+ self.$selection.removeAttr('aria-activedescendant');
1409
+ self.$selection.removeAttr('aria-owns');
1410
+
1411
+ self.$selection.focus();
1412
+
1413
+ self._detachCloseHandler(container);
1414
+ });
1415
+
1416
+ container.on('enable', function () {
1417
+ self.$selection.attr('tabindex', self._tabindex);
1418
+ });
1419
+
1420
+ container.on('disable', function () {
1421
+ self.$selection.attr('tabindex', '-1');
1422
+ });
1423
+ };
1424
+
1425
+ BaseSelection.prototype._handleBlur = function (evt) {
1426
+ var self = this;
1427
+
1428
+ // This needs to be delayed as the active element is the body when the tab
1429
+ // key is pressed, possibly along with others.
1430
+ window.setTimeout(function () {
1431
+ // Don't trigger `blur` if the focus is still in the selection
1432
+ if (
1433
+ (document.activeElement == self.$selection[0]) ||
1434
+ ($.contains(self.$selection[0], document.activeElement))
1435
+ ) {
1436
+ return;
1437
+ }
1438
+
1439
+ self.trigger('blur', evt);
1440
+ }, 1);
1441
+ };
1442
+
1443
+ BaseSelection.prototype._attachCloseHandler = function (container) {
1444
+ var self = this;
1445
+
1446
+ $(document.body).on('mousedown.select2.' + container.id, function (e) {
1447
+ var $target = $(e.target);
1448
+
1449
+ var $select = $target.closest('.select2');
1450
+
1451
+ var $all = $('.select2.select2-container--open');
1452
+
1453
+ $all.each(function () {
1454
+ var $this = $(this);
1455
+
1456
+ if (this == $select[0]) {
1457
+ return;
1458
+ }
1459
+
1460
+ var $element = $this.data('element');
1461
+
1462
+ $element.select2('close');
1463
+ });
1464
+ });
1465
+ };
1466
+
1467
+ BaseSelection.prototype._detachCloseHandler = function (container) {
1468
+ $(document.body).off('mousedown.select2.' + container.id);
1469
+ };
1470
+
1471
+ BaseSelection.prototype.position = function ($selection, $container) {
1472
+ var $selectionContainer = $container.find('.selection');
1473
+ $selectionContainer.append($selection);
1474
+ };
1475
+
1476
+ BaseSelection.prototype.destroy = function () {
1477
+ this._detachCloseHandler(this.container);
1478
+ };
1479
+
1480
+ BaseSelection.prototype.update = function (data) {
1481
+ throw new Error('The `update` method must be defined in child classes.');
1482
+ };
1483
+
1484
+ return BaseSelection;
1485
+ });
1486
+
1487
+ S2.define('select2/selection/single',[
1488
+ 'jquery',
1489
+ './base',
1490
+ '../utils',
1491
+ '../keys'
1492
+ ], function ($, BaseSelection, Utils, KEYS) {
1493
+ function SingleSelection () {
1494
+ SingleSelection.__super__.constructor.apply(this, arguments);
1495
+ }
1496
+
1497
+ Utils.Extend(SingleSelection, BaseSelection);
1498
+
1499
+ SingleSelection.prototype.render = function () {
1500
+ var $selection = SingleSelection.__super__.render.call(this);
1501
+
1502
+ $selection.addClass('select2-selection--single');
1503
+
1504
+ $selection.html(
1505
+ '<span class="select2-selection__rendered"></span>' +
1506
+ '<span class="select2-selection__arrow" role="presentation">' +
1507
+ '<b role="presentation"></b>' +
1508
+ '</span>'
1509
+ );
1510
+
1511
+ return $selection;
1512
+ };
1513
+
1514
+ SingleSelection.prototype.bind = function (container, $container) {
1515
+ var self = this;
1516
+
1517
+ SingleSelection.__super__.bind.apply(this, arguments);
1518
+
1519
+ var id = container.id + '-container';
1520
+
1521
+ this.$selection.find('.select2-selection__rendered').attr('id', id);
1522
+ this.$selection.attr('aria-labelledby', id);
1523
+
1524
+ this.$selection.on('mousedown', function (evt) {
1525
+ // Only respond to left clicks
1526
+ if (evt.which !== 1) {
1527
+ return;
1528
+ }
1529
+
1530
+ self.trigger('toggle', {
1531
+ originalEvent: evt
1532
+ });
1533
+ });
1534
+
1535
+ this.$selection.on('focus', function (evt) {
1536
+ // User focuses on the container
1537
+ });
1538
+
1539
+ this.$selection.on('blur', function (evt) {
1540
+ // User exits the container
1541
+ });
1542
+
1543
+ container.on('focus', function (evt) {
1544
+ if (!container.isOpen()) {
1545
+ self.$selection.focus();
1546
+ }
1547
+ });
1548
+
1549
+ container.on('selection:update', function (params) {
1550
+ self.update(params.data);
1551
+ });
1552
+ };
1553
+
1554
+ SingleSelection.prototype.clear = function () {
1555
+ this.$selection.find('.select2-selection__rendered').empty();
1556
+ };
1557
+
1558
+ SingleSelection.prototype.display = function (data, container) {
1559
+ var template = this.options.get('templateSelection');
1560
+ var escapeMarkup = this.options.get('escapeMarkup');
1561
+
1562
+ return escapeMarkup(template(data, container));
1563
+ };
1564
+
1565
+ SingleSelection.prototype.selectionContainer = function () {
1566
+ return $('<span></span>');
1567
+ };
1568
+
1569
+ SingleSelection.prototype.update = function (data) {
1570
+ if (data.length === 0) {
1571
+ this.clear();
1572
+ return;
1573
+ }
1574
+
1575
+ var selection = data[0];
1576
+
1577
+ var $rendered = this.$selection.find('.select2-selection__rendered');
1578
+ var formatted = this.display(selection, $rendered);
1579
+
1580
+ $rendered.empty().append(formatted);
1581
+ $rendered.prop('title', selection.title || selection.text);
1582
+ };
1583
+
1584
+ return SingleSelection;
1585
+ });
1586
+
1587
+ S2.define('select2/selection/multiple',[
1588
+ 'jquery',
1589
+ './base',
1590
+ '../utils'
1591
+ ], function ($, BaseSelection, Utils) {
1592
+ function MultipleSelection ($element, options) {
1593
+ MultipleSelection.__super__.constructor.apply(this, arguments);
1594
+ }
1595
+
1596
+ Utils.Extend(MultipleSelection, BaseSelection);
1597
+
1598
+ MultipleSelection.prototype.render = function () {
1599
+ var $selection = MultipleSelection.__super__.render.call(this);
1600
+
1601
+ $selection.addClass('select2-selection--multiple');
1602
+
1603
+ $selection.html(
1604
+ '<ul class="select2-selection__rendered"></ul>'
1605
+ );
1606
+
1607
+ return $selection;
1608
+ };
1609
+
1610
+ MultipleSelection.prototype.bind = function (container, $container) {
1611
+ var self = this;
1612
+
1613
+ MultipleSelection.__super__.bind.apply(this, arguments);
1614
+
1615
+ this.$selection.on('click', function (evt) {
1616
+ self.trigger('toggle', {
1617
+ originalEvent: evt
1618
+ });
1619
+ });
1620
+
1621
+ this.$selection.on(
1622
+ 'click',
1623
+ '.select2-selection__choice__remove',
1624
+ function (evt) {
1625
+ // Ignore the event if it is disabled
1626
+ if (self.options.get('disabled')) {
1627
+ return;
1628
+ }
1629
+
1630
+ var $remove = $(this);
1631
+ var $selection = $remove.parent();
1632
+
1633
+ var data = $selection.data('data');
1634
+
1635
+ self.trigger('unselect', {
1636
+ originalEvent: evt,
1637
+ data: data
1638
+ });
1639
+ }
1640
+ );
1641
+ };
1642
+
1643
+ MultipleSelection.prototype.clear = function () {
1644
+ this.$selection.find('.select2-selection__rendered').empty();
1645
+ };
1646
+
1647
+ MultipleSelection.prototype.display = function (data, container) {
1648
+ var template = this.options.get('templateSelection');
1649
+ var escapeMarkup = this.options.get('escapeMarkup');
1650
+
1651
+ return escapeMarkup(template(data, container));
1652
+ };
1653
+
1654
+ MultipleSelection.prototype.selectionContainer = function () {
1655
+ var $container = $(
1656
+ '<li class="select2-selection__choice">' +
1657
+ '<span class="select2-selection__choice__remove" role="presentation">' +
1658
+ '&times;' +
1659
+ '</span>' +
1660
+ '</li>'
1661
+ );
1662
+
1663
+ return $container;
1664
+ };
1665
+
1666
+ MultipleSelection.prototype.update = function (data) {
1667
+ this.clear();
1668
+
1669
+ if (data.length === 0) {
1670
+ return;
1671
+ }
1672
+
1673
+ var $selections = [];
1674
+
1675
+ for (var d = 0; d < data.length; d++) {
1676
+ var selection = data[d];
1677
+
1678
+ var $selection = this.selectionContainer();
1679
+ var formatted = this.display(selection, $selection);
1680
+
1681
+ $selection.append(formatted);
1682
+ $selection.prop('title', selection.title || selection.text);
1683
+
1684
+ $selection.data('data', selection);
1685
+
1686
+ $selections.push($selection);
1687
+ }
1688
+
1689
+ var $rendered = this.$selection.find('.select2-selection__rendered');
1690
+
1691
+ Utils.appendMany($rendered, $selections);
1692
+ };
1693
+
1694
+ return MultipleSelection;
1695
+ });
1696
+
1697
+ S2.define('select2/selection/placeholder',[
1698
+ '../utils'
1699
+ ], function (Utils) {
1700
+ function Placeholder (decorated, $element, options) {
1701
+ this.placeholder = this.normalizePlaceholder(options.get('placeholder'));
1702
+
1703
+ decorated.call(this, $element, options);
1704
+ }
1705
+
1706
+ Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {
1707
+ if (typeof placeholder === 'string') {
1708
+ placeholder = {
1709
+ id: '',
1710
+ text: placeholder
1711
+ };
1712
+ }
1713
+
1714
+ return placeholder;
1715
+ };
1716
+
1717
+ Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {
1718
+ var $placeholder = this.selectionContainer();
1719
+
1720
+ $placeholder.html(this.display(placeholder));
1721
+ $placeholder.addClass('select2-selection__placeholder')
1722
+ .removeClass('select2-selection__choice');
1723
+
1724
+ return $placeholder;
1725
+ };
1726
+
1727
+ Placeholder.prototype.update = function (decorated, data) {
1728
+ var singlePlaceholder = (
1729
+ data.length == 1 && data[0].id != this.placeholder.id
1730
+ );
1731
+ var multipleSelections = data.length > 1;
1732
+
1733
+ if (multipleSelections || singlePlaceholder) {
1734
+ return decorated.call(this, data);
1735
+ }
1736
+
1737
+ this.clear();
1738
+
1739
+ var $placeholder = this.createPlaceholder(this.placeholder);
1740
+
1741
+ this.$selection.find('.select2-selection__rendered').append($placeholder);
1742
+ };
1743
+
1744
+ return Placeholder;
1745
+ });
1746
+
1747
+ S2.define('select2/selection/allowClear',[
1748
+ 'jquery',
1749
+ '../keys'
1750
+ ], function ($, KEYS) {
1751
+ function AllowClear () { }
1752
+
1753
+ AllowClear.prototype.bind = function (decorated, container, $container) {
1754
+ var self = this;
1755
+
1756
+ decorated.call(this, container, $container);
1757
+
1758
+ if (this.placeholder == null) {
1759
+ if (this.options.get('debug') && window.console && console.error) {
1760
+ console.error(
1761
+ 'Select2: The `allowClear` option should be used in combination ' +
1762
+ 'with the `placeholder` option.'
1763
+ );
1764
+ }
1765
+ }
1766
+
1767
+ this.$selection.on('mousedown', '.select2-selection__clear',
1768
+ function (evt) {
1769
+ self._handleClear(evt);
1770
+ });
1771
+
1772
+ container.on('keypress', function (evt) {
1773
+ self._handleKeyboardClear(evt, container);
1774
+ });
1775
+ };
1776
+
1777
+ AllowClear.prototype._handleClear = function (_, evt) {
1778
+ // Ignore the event if it is disabled
1779
+ if (this.options.get('disabled')) {
1780
+ return;
1781
+ }
1782
+
1783
+ var $clear = this.$selection.find('.select2-selection__clear');
1784
+
1785
+ // Ignore the event if nothing has been selected
1786
+ if ($clear.length === 0) {
1787
+ return;
1788
+ }
1789
+
1790
+ evt.stopPropagation();
1791
+
1792
+ var data = $clear.data('data');
1793
+
1794
+ for (var d = 0; d < data.length; d++) {
1795
+ var unselectData = {
1796
+ data: data[d]
1797
+ };
1798
+
1799
+ // Trigger the `unselect` event, so people can prevent it from being
1800
+ // cleared.
1801
+ this.trigger('unselect', unselectData);
1802
+
1803
+ // If the event was prevented, don't clear it out.
1804
+ if (unselectData.prevented) {
1805
+ return;
1806
+ }
1807
+ }
1808
+
1809
+ this.$element.val(this.placeholder.id).trigger('change');
1810
+
1811
+ this.trigger('toggle', {});
1812
+ };
1813
+
1814
+ AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {
1815
+ if (container.isOpen()) {
1816
+ return;
1817
+ }
1818
+
1819
+ if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {
1820
+ this._handleClear(evt);
1821
+ }
1822
+ };
1823
+
1824
+ AllowClear.prototype.update = function (decorated, data) {
1825
+ decorated.call(this, data);
1826
+
1827
+ if (this.$selection.find('.select2-selection__placeholder').length > 0 ||
1828
+ data.length === 0) {
1829
+ return;
1830
+ }
1831
+
1832
+ var $remove = $(
1833
+ '<span class="select2-selection__clear">' +
1834
+ '&times;' +
1835
+ '</span>'
1836
+ );
1837
+ $remove.data('data', data);
1838
+
1839
+ this.$selection.find('.select2-selection__rendered').prepend($remove);
1840
+ };
1841
+
1842
+ return AllowClear;
1843
+ });
1844
+
1845
+ S2.define('select2/selection/search',[
1846
+ 'jquery',
1847
+ '../utils',
1848
+ '../keys'
1849
+ ], function ($, Utils, KEYS) {
1850
+ function Search (decorated, $element, options) {
1851
+ decorated.call(this, $element, options);
1852
+ }
1853
+
1854
+ Search.prototype.render = function (decorated) {
1855
+ var $search = $(
1856
+ '<li class="select2-search select2-search--inline">' +
1857
+ '<input class="select2-search__field" type="search" tabindex="-1"' +
1858
+ ' autocomplete="off" autocorrect="off" autocapitalize="off"' +
1859
+ ' spellcheck="false" role="textbox" aria-autocomplete="list" />' +
1860
+ '</li>'
1861
+ );
1862
+
1863
+ this.$searchContainer = $search;
1864
+ this.$search = $search.find('input');
1865
+
1866
+ var $rendered = decorated.call(this);
1867
+
1868
+ this._transferTabIndex();
1869
+
1870
+ return $rendered;
1871
+ };
1872
+
1873
+ Search.prototype.bind = function (decorated, container, $container) {
1874
+ var self = this;
1875
+
1876
+ decorated.call(this, container, $container);
1877
+
1878
+ container.on('open', function () {
1879
+ self.$search.trigger('focus');
1880
+ });
1881
+
1882
+ container.on('close', function () {
1883
+ self.$search.val('');
1884
+ self.$search.removeAttr('aria-activedescendant');
1885
+ self.$search.trigger('focus');
1886
+ });
1887
+
1888
+ container.on('enable', function () {
1889
+ self.$search.prop('disabled', false);
1890
+
1891
+ self._transferTabIndex();
1892
+ });
1893
+
1894
+ container.on('disable', function () {
1895
+ self.$search.prop('disabled', true);
1896
+ });
1897
+
1898
+ container.on('focus', function (evt) {
1899
+ self.$search.trigger('focus');
1900
+ });
1901
+
1902
+ container.on('results:focus', function (params) {
1903
+ self.$search.attr('aria-activedescendant', params.id);
1904
+ });
1905
+
1906
+ this.$selection.on('focusin', '.select2-search--inline', function (evt) {
1907
+ self.trigger('focus', evt);
1908
+ });
1909
+
1910
+ this.$selection.on('focusout', '.select2-search--inline', function (evt) {
1911
+ self._handleBlur(evt);
1912
+ });
1913
+
1914
+ this.$selection.on('keydown', '.select2-search--inline', function (evt) {
1915
+ evt.stopPropagation();
1916
+
1917
+ self.trigger('keypress', evt);
1918
+
1919
+ self._keyUpPrevented = evt.isDefaultPrevented();
1920
+
1921
+ var key = evt.which;
1922
+
1923
+ if (key === KEYS.BACKSPACE && self.$search.val() === '') {
1924
+ var $previousChoice = self.$searchContainer
1925
+ .prev('.select2-selection__choice');
1926
+
1927
+ if ($previousChoice.length > 0) {
1928
+ var item = $previousChoice.data('data');
1929
+
1930
+ self.searchRemoveChoice(item);
1931
+
1932
+ evt.preventDefault();
1933
+ }
1934
+ }
1935
+ });
1936
+
1937
+ // Try to detect the IE version should the `documentMode` property that
1938
+ // is stored on the document. This is only implemented in IE and is
1939
+ // slightly cleaner than doing a user agent check.
1940
+ // This property is not available in Edge, but Edge also doesn't have
1941
+ // this bug.
1942
+ var msie = document.documentMode;
1943
+ var disableInputEvents = msie && msie <= 11;
1944
+
1945
+ // Workaround for browsers which do not support the `input` event
1946
+ // This will prevent double-triggering of events for browsers which support
1947
+ // both the `keyup` and `input` events.
1948
+ this.$selection.on(
1949
+ 'input.searchcheck',
1950
+ '.select2-search--inline',
1951
+ function (evt) {
1952
+ // IE will trigger the `input` event when a placeholder is used on a
1953
+ // search box. To get around this issue, we are forced to ignore all
1954
+ // `input` events in IE and keep using `keyup`.
1955
+ if (disableInputEvents) {
1956
+ self.$selection.off('input.search input.searchcheck');
1957
+ return;
1958
+ }
1959
+
1960
+ // Unbind the duplicated `keyup` event
1961
+ self.$selection.off('keyup.search');
1962
+ }
1963
+ );
1964
+
1965
+ this.$selection.on(
1966
+ 'keyup.search input.search',
1967
+ '.select2-search--inline',
1968
+ function (evt) {
1969
+ // IE will trigger the `input` event when a placeholder is used on a
1970
+ // search box. To get around this issue, we are forced to ignore all
1971
+ // `input` events in IE and keep using `keyup`.
1972
+ if (disableInputEvents && evt.type === 'input') {
1973
+ self.$selection.off('input.search input.searchcheck');
1974
+ return;
1975
+ }
1976
+
1977
+ var key = evt.which;
1978
+
1979
+ // We can freely ignore events from modifier keys
1980
+ if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {
1981
+ return;
1982
+ }
1983
+
1984
+ // Tabbing will be handled during the `keydown` phase
1985
+ if (key == KEYS.TAB) {
1986
+ return;
1987
+ }
1988
+
1989
+ self.handleSearch(evt);
1990
+ }
1991
+ );
1992
+ };
1993
+
1994
+ /**
1995
+ * This method will transfer the tabindex attribute from the rendered
1996
+ * selection to the search box. This allows for the search box to be used as
1997
+ * the primary focus instead of the selection container.
1998
+ *
1999
+ * @private
2000
+ */
2001
+ Search.prototype._transferTabIndex = function (decorated) {
2002
+ this.$search.attr('tabindex', this.$selection.attr('tabindex'));
2003
+ this.$selection.attr('tabindex', '-1');
2004
+ };
2005
+
2006
+ Search.prototype.createPlaceholder = function (decorated, placeholder) {
2007
+ this.$search.attr('placeholder', placeholder.text);
2008
+ };
2009
+
2010
+ Search.prototype.update = function (decorated, data) {
2011
+ var searchHadFocus = this.$search[0] == document.activeElement;
2012
+
2013
+ this.$search.attr('placeholder', '');
2014
+
2015
+ decorated.call(this, data);
2016
+
2017
+ this.$selection.find('.select2-selection__rendered')
2018
+ .append(this.$searchContainer);
2019
+
2020
+ this.resizeSearch();
2021
+ if (searchHadFocus) {
2022
+ this.$search.focus();
2023
+ }
2024
+ };
2025
+
2026
+ Search.prototype.handleSearch = function () {
2027
+ this.resizeSearch();
2028
+
2029
+ if (!this._keyUpPrevented) {
2030
+ var input = this.$search.val();
2031
+
2032
+ this.trigger('query', {
2033
+ term: input
2034
+ });
2035
+ }
2036
+
2037
+ this._keyUpPrevented = false;
2038
+ };
2039
+
2040
+ Search.prototype.searchRemoveChoice = function (decorated, item) {
2041
+ this.trigger('unselect', {
2042
+ data: item
2043
+ });
2044
+
2045
+ this.$search.val(item.text);
2046
+ this.handleSearch();
2047
+ };
2048
+
2049
+ Search.prototype.resizeSearch = function () {
2050
+ this.$search.css('width', '25px');
2051
+
2052
+ var width = '';
2053
+
2054
+ if (this.$search.attr('placeholder') !== '') {
2055
+ width = this.$selection.find('.select2-selection__rendered').innerWidth();
2056
+ } else {
2057
+ var minimumWidth = this.$search.val().length + 1;
2058
+
2059
+ width = (minimumWidth * 0.75) + 'em';
2060
+ }
2061
+
2062
+ this.$search.css('width', width);
2063
+ };
2064
+
2065
+ return Search;
2066
+ });
2067
+
2068
+ S2.define('select2/selection/eventRelay',[
2069
+ 'jquery'
2070
+ ], function ($) {
2071
+ function EventRelay () { }
2072
+
2073
+ EventRelay.prototype.bind = function (decorated, container, $container) {
2074
+ var self = this;
2075
+ var relayEvents = [
2076
+ 'open', 'opening',
2077
+ 'close', 'closing',
2078
+ 'select', 'selecting',
2079
+ 'unselect', 'unselecting'
2080
+ ];
2081
+
2082
+ var preventableEvents = ['opening', 'closing', 'selecting', 'unselecting'];
2083
+
2084
+ decorated.call(this, container, $container);
2085
+
2086
+ container.on('*', function (name, params) {
2087
+ // Ignore events that should not be relayed
2088
+ if ($.inArray(name, relayEvents) === -1) {
2089
+ return;
2090
+ }
2091
+
2092
+ // The parameters should always be an object
2093
+ params = params || {};
2094
+
2095
+ // Generate the jQuery event for the Select2 event
2096
+ var evt = $.Event('select2:' + name, {
2097
+ params: params
2098
+ });
2099
+
2100
+ self.$element.trigger(evt);
2101
+
2102
+ // Only handle preventable events if it was one
2103
+ if ($.inArray(name, preventableEvents) === -1) {
2104
+ return;
2105
+ }
2106
+
2107
+ params.prevented = evt.isDefaultPrevented();
2108
+ });
2109
+ };
2110
+
2111
+ return EventRelay;
2112
+ });
2113
+
2114
+ S2.define('select2/translation',[
2115
+ 'jquery',
2116
+ 'require'
2117
+ ], function ($, require) {
2118
+ function Translation (dict) {
2119
+ this.dict = dict || {};
2120
+ }
2121
+
2122
+ Translation.prototype.all = function () {
2123
+ return this.dict;
2124
+ };
2125
+
2126
+ Translation.prototype.get = function (key) {
2127
+ return this.dict[key];
2128
+ };
2129
+
2130
+ Translation.prototype.extend = function (translation) {
2131
+ this.dict = $.extend({}, translation.all(), this.dict);
2132
+ };
2133
+
2134
+ // Static functions
2135
+
2136
+ Translation._cache = {};
2137
+
2138
+ Translation.loadPath = function (path) {
2139
+ if (!(path in Translation._cache)) {
2140
+ var translations = require(path);
2141
+
2142
+ Translation._cache[path] = translations;
2143
+ }
2144
+
2145
+ return new Translation(Translation._cache[path]);
2146
+ };
2147
+
2148
+ return Translation;
2149
+ });
2150
+
2151
+ S2.define('select2/diacritics',[
2152
+
2153
+ ], function () {
2154
+ var diacritics = {
2155
+ '\u24B6': 'A',
2156
+ '\uFF21': 'A',
2157
+ '\u00C0': 'A',
2158
+ '\u00C1': 'A',
2159
+ '\u00C2': 'A',
2160
+ '\u1EA6': 'A',
2161
+ '\u1EA4': 'A',
2162
+ '\u1EAA': 'A',
2163
+ '\u1EA8': 'A',
2164
+ '\u00C3': 'A',
2165
+ '\u0100': 'A',
2166
+ '\u0102': 'A',
2167
+ '\u1EB0': 'A',
2168
+ '\u1EAE': 'A',
2169
+ '\u1EB4': 'A',
2170
+ '\u1EB2': 'A',
2171
+ '\u0226': 'A',
2172
+ '\u01E0': 'A',
2173
+ '\u00C4': 'A',
2174
+ '\u01DE': 'A',
2175
+ '\u1EA2': 'A',
2176
+ '\u00C5': 'A',
2177
+ '\u01FA': 'A',
2178
+ '\u01CD': 'A',
2179
+ '\u0200': 'A',
2180
+ '\u0202': 'A',
2181
+ '\u1EA0': 'A',
2182
+ '\u1EAC': 'A',
2183
+ '\u1EB6': 'A',
2184
+ '\u1E00': 'A',
2185
+ '\u0104': 'A',
2186
+ '\u023A': 'A',
2187
+ '\u2C6F': 'A',
2188
+ '\uA732': 'AA',
2189
+ '\u00C6': 'AE',
2190
+ '\u01FC': 'AE',
2191
+ '\u01E2': 'AE',
2192
+ '\uA734': 'AO',
2193
+ '\uA736': 'AU',
2194
+ '\uA738': 'AV',
2195
+ '\uA73A': 'AV',
2196
+ '\uA73C': 'AY',
2197
+ '\u24B7': 'B',
2198
+ '\uFF22': 'B',
2199
+ '\u1E02': 'B',
2200
+ '\u1E04': 'B',
2201
+ '\u1E06': 'B',
2202
+ '\u0243': 'B',
2203
+ '\u0182': 'B',
2204
+ '\u0181': 'B',
2205
+ '\u24B8': 'C',
2206
+ '\uFF23': 'C',
2207
+ '\u0106': 'C',
2208
+ '\u0108': 'C',
2209
+ '\u010A': 'C',
2210
+ '\u010C': 'C',
2211
+ '\u00C7': 'C',
2212
+ '\u1E08': 'C',
2213
+ '\u0187': 'C',
2214
+ '\u023B': 'C',
2215
+ '\uA73E': 'C',
2216
+ '\u24B9': 'D',
2217
+ '\uFF24': 'D',
2218
+ '\u1E0A': 'D',
2219
+ '\u010E': 'D',
2220
+ '\u1E0C': 'D',
2221
+ '\u1E10': 'D',
2222
+ '\u1E12': 'D',
2223
+ '\u1E0E': 'D',
2224
+ '\u0110': 'D',
2225
+ '\u018B': 'D',
2226
+ '\u018A': 'D',
2227
+ '\u0189': 'D',
2228
+ '\uA779': 'D',
2229
+ '\u01F1': 'DZ',
2230
+ '\u01C4': 'DZ',
2231
+ '\u01F2': 'Dz',
2232
+ '\u01C5': 'Dz',
2233
+ '\u24BA': 'E',
2234
+ '\uFF25': 'E',
2235
+ '\u00C8': 'E',
2236
+ '\u00C9': 'E',
2237
+ '\u00CA': 'E',
2238
+ '\u1EC0': 'E',
2239
+ '\u1EBE': 'E',
2240
+ '\u1EC4': 'E',
2241
+ '\u1EC2': 'E',
2242
+ '\u1EBC': 'E',
2243
+ '\u0112': 'E',
2244
+ '\u1E14': 'E',
2245
+ '\u1E16': 'E',
2246
+ '\u0114': 'E',
2247
+ '\u0116': 'E',
2248
+ '\u00CB': 'E',
2249
+ '\u1EBA': 'E',
2250
+ '\u011A': 'E',
2251
+ '\u0204': 'E',
2252
+ '\u0206': 'E',
2253
+ '\u1EB8': 'E',
2254
+ '\u1EC6': 'E',
2255
+ '\u0228': 'E',
2256
+ '\u1E1C': 'E',
2257
+ '\u0118': 'E',
2258
+ '\u1E18': 'E',
2259
+ '\u1E1A': 'E',
2260
+ '\u0190': 'E',
2261
+ '\u018E': 'E',
2262
+ '\u24BB': 'F',
2263
+ '\uFF26': 'F',
2264
+ '\u1E1E': 'F',
2265
+ '\u0191': 'F',
2266
+ '\uA77B': 'F',
2267
+ '\u24BC': 'G',
2268
+ '\uFF27': 'G',
2269
+ '\u01F4': 'G',
2270
+ '\u011C': 'G',
2271
+ '\u1E20': 'G',
2272
+ '\u011E': 'G',
2273
+ '\u0120': 'G',
2274
+ '\u01E6': 'G',
2275
+ '\u0122': 'G',
2276
+ '\u01E4': 'G',
2277
+ '\u0193': 'G',
2278
+ '\uA7A0': 'G',
2279
+ '\uA77D': 'G',
2280
+ '\uA77E': 'G',
2281
+ '\u24BD': 'H',
2282
+ '\uFF28': 'H',
2283
+ '\u0124': 'H',
2284
+ '\u1E22': 'H',
2285
+ '\u1E26': 'H',
2286
+ '\u021E': 'H',
2287
+ '\u1E24': 'H',
2288
+ '\u1E28': 'H',
2289
+ '\u1E2A': 'H',
2290
+ '\u0126': 'H',
2291
+ '\u2C67': 'H',
2292
+ '\u2C75': 'H',
2293
+ '\uA78D': 'H',
2294
+ '\u24BE': 'I',
2295
+ '\uFF29': 'I',
2296
+ '\u00CC': 'I',
2297
+ '\u00CD': 'I',
2298
+ '\u00CE': 'I',
2299
+ '\u0128': 'I',
2300
+ '\u012A': 'I',
2301
+ '\u012C': 'I',
2302
+ '\u0130': 'I',
2303
+ '\u00CF': 'I',
2304
+ '\u1E2E': 'I',
2305
+ '\u1EC8': 'I',
2306
+ '\u01CF': 'I',
2307
+ '\u0208': 'I',
2308
+ '\u020A': 'I',
2309
+ '\u1ECA': 'I',
2310
+ '\u012E': 'I',
2311
+ '\u1E2C': 'I',
2312
+ '\u0197': 'I',
2313
+ '\u24BF': 'J',
2314
+ '\uFF2A': 'J',
2315
+ '\u0134': 'J',
2316
+ '\u0248': 'J',
2317
+ '\u24C0': 'K',
2318
+ '\uFF2B': 'K',
2319
+ '\u1E30': 'K',
2320
+ '\u01E8': 'K',
2321
+ '\u1E32': 'K',
2322
+ '\u0136': 'K',
2323
+ '\u1E34': 'K',
2324
+ '\u0198': 'K',
2325
+ '\u2C69': 'K',
2326
+ '\uA740': 'K',
2327
+ '\uA742': 'K',
2328
+ '\uA744': 'K',
2329
+ '\uA7A2': 'K',
2330
+ '\u24C1': 'L',
2331
+ '\uFF2C': 'L',
2332
+ '\u013F': 'L',
2333
+ '\u0139': 'L',
2334
+ '\u013D': 'L',
2335
+ '\u1E36': 'L',
2336
+ '\u1E38': 'L',
2337
+ '\u013B': 'L',
2338
+ '\u1E3C': 'L',
2339
+ '\u1E3A': 'L',
2340
+ '\u0141': 'L',
2341
+ '\u023D': 'L',
2342
+ '\u2C62': 'L',
2343
+ '\u2C60': 'L',
2344
+ '\uA748': 'L',
2345
+ '\uA746': 'L',
2346
+ '\uA780': 'L',
2347
+ '\u01C7': 'LJ',
2348
+ '\u01C8': 'Lj',
2349
+ '\u24C2': 'M',
2350
+ '\uFF2D': 'M',
2351
+ '\u1E3E': 'M',
2352
+ '\u1E40': 'M',
2353
+ '\u1E42': 'M',
2354
+ '\u2C6E': 'M',
2355
+ '\u019C': 'M',
2356
+ '\u24C3': 'N',
2357
+ '\uFF2E': 'N',
2358
+ '\u01F8': 'N',
2359
+ '\u0143': 'N',
2360
+ '\u00D1': 'N',
2361
+ '\u1E44': 'N',
2362
+ '\u0147': 'N',
2363
+ '\u1E46': 'N',
2364
+ '\u0145': 'N',
2365
+ '\u1E4A': 'N',
2366
+ '\u1E48': 'N',
2367
+ '\u0220': 'N',
2368
+ '\u019D': 'N',
2369
+ '\uA790': 'N',
2370
+ '\uA7A4': 'N',
2371
+ '\u01CA': 'NJ',
2372
+ '\u01CB': 'Nj',
2373
+ '\u24C4': 'O',
2374
+ '\uFF2F': 'O',
2375
+ '\u00D2': 'O',
2376
+ '\u00D3': 'O',
2377
+ '\u00D4': 'O',
2378
+ '\u1ED2': 'O',
2379
+ '\u1ED0': 'O',
2380
+ '\u1ED6': 'O',
2381
+ '\u1ED4': 'O',
2382
+ '\u00D5': 'O',
2383
+ '\u1E4C': 'O',
2384
+ '\u022C': 'O',
2385
+ '\u1E4E': 'O',
2386
+ '\u014C': 'O',
2387
+ '\u1E50': 'O',
2388
+ '\u1E52': 'O',
2389
+ '\u014E': 'O',
2390
+ '\u022E': 'O',
2391
+ '\u0230': 'O',
2392
+ '\u00D6': 'O',
2393
+ '\u022A': 'O',
2394
+ '\u1ECE': 'O',
2395
+ '\u0150': 'O',
2396
+ '\u01D1': 'O',
2397
+ '\u020C': 'O',
2398
+ '\u020E': 'O',
2399
+ '\u01A0': 'O',
2400
+ '\u1EDC': 'O',
2401
+ '\u1EDA': 'O',
2402
+ '\u1EE0': 'O',
2403
+ '\u1EDE': 'O',
2404
+ '\u1EE2': 'O',
2405
+ '\u1ECC': 'O',
2406
+ '\u1ED8': 'O',
2407
+ '\u01EA': 'O',
2408
+ '\u01EC': 'O',
2409
+ '\u00D8': 'O',
2410
+ '\u01FE': 'O',
2411
+ '\u0186': 'O',
2412
+ '\u019F': 'O',
2413
+ '\uA74A': 'O',
2414
+ '\uA74C': 'O',
2415
+ '\u01A2': 'OI',
2416
+ '\uA74E': 'OO',
2417
+ '\u0222': 'OU',
2418
+ '\u24C5': 'P',
2419
+ '\uFF30': 'P',
2420
+ '\u1E54': 'P',
2421
+ '\u1E56': 'P',
2422
+ '\u01A4': 'P',
2423
+ '\u2C63': 'P',
2424
+ '\uA750': 'P',
2425
+ '\uA752': 'P',
2426
+ '\uA754': 'P',
2427
+ '\u24C6': 'Q',
2428
+ '\uFF31': 'Q',
2429
+ '\uA756': 'Q',
2430
+ '\uA758': 'Q',
2431
+ '\u024A': 'Q',
2432
+ '\u24C7': 'R',
2433
+ '\uFF32': 'R',
2434
+ '\u0154': 'R',
2435
+ '\u1E58': 'R',
2436
+ '\u0158': 'R',
2437
+ '\u0210': 'R',
2438
+ '\u0212': 'R',
2439
+ '\u1E5A': 'R',
2440
+ '\u1E5C': 'R',
2441
+ '\u0156': 'R',
2442
+ '\u1E5E': 'R',
2443
+ '\u024C': 'R',
2444
+ '\u2C64': 'R',
2445
+ '\uA75A': 'R',
2446
+ '\uA7A6': 'R',
2447
+ '\uA782': 'R',
2448
+ '\u24C8': 'S',
2449
+ '\uFF33': 'S',
2450
+ '\u1E9E': 'S',
2451
+ '\u015A': 'S',
2452
+ '\u1E64': 'S',
2453
+ '\u015C': 'S',
2454
+ '\u1E60': 'S',
2455
+ '\u0160': 'S',
2456
+ '\u1E66': 'S',
2457
+ '\u1E62': 'S',
2458
+ '\u1E68': 'S',
2459
+ '\u0218': 'S',
2460
+ '\u015E': 'S',
2461
+ '\u2C7E': 'S',
2462
+ '\uA7A8': 'S',
2463
+ '\uA784': 'S',
2464
+ '\u24C9': 'T',
2465
+ '\uFF34': 'T',
2466
+ '\u1E6A': 'T',
2467
+ '\u0164': 'T',
2468
+ '\u1E6C': 'T',
2469
+ '\u021A': 'T',
2470
+ '\u0162': 'T',
2471
+ '\u1E70': 'T',
2472
+ '\u1E6E': 'T',
2473
+ '\u0166': 'T',
2474
+ '\u01AC': 'T',
2475
+ '\u01AE': 'T',
2476
+ '\u023E': 'T',
2477
+ '\uA786': 'T',
2478
+ '\uA728': 'TZ',
2479
+ '\u24CA': 'U',
2480
+ '\uFF35': 'U',
2481
+ '\u00D9': 'U',
2482
+ '\u00DA': 'U',
2483
+ '\u00DB': 'U',
2484
+ '\u0168': 'U',
2485
+ '\u1E78': 'U',
2486
+ '\u016A': 'U',
2487
+ '\u1E7A': 'U',
2488
+ '\u016C': 'U',
2489
+ '\u00DC': 'U',
2490
+ '\u01DB': 'U',
2491
+ '\u01D7': 'U',
2492
+ '\u01D5': 'U',
2493
+ '\u01D9': 'U',
2494
+ '\u1EE6': 'U',
2495
+ '\u016E': 'U',
2496
+ '\u0170': 'U',
2497
+ '\u01D3': 'U',
2498
+ '\u0214': 'U',
2499
+ '\u0216': 'U',
2500
+ '\u01AF': 'U',
2501
+ '\u1EEA': 'U',
2502
+ '\u1EE8': 'U',
2503
+ '\u1EEE': 'U',
2504
+ '\u1EEC': 'U',
2505
+ '\u1EF0': 'U',
2506
+ '\u1EE4': 'U',
2507
+ '\u1E72': 'U',
2508
+ '\u0172': 'U',
2509
+ '\u1E76': 'U',
2510
+ '\u1E74': 'U',
2511
+ '\u0244': 'U',
2512
+ '\u24CB': 'V',
2513
+ '\uFF36': 'V',
2514
+ '\u1E7C': 'V',
2515
+ '\u1E7E': 'V',
2516
+ '\u01B2': 'V',
2517
+ '\uA75E': 'V',
2518
+ '\u0245': 'V',
2519
+ '\uA760': 'VY',
2520
+ '\u24CC': 'W',
2521
+ '\uFF37': 'W',
2522
+ '\u1E80': 'W',
2523
+ '\u1E82': 'W',
2524
+ '\u0174': 'W',
2525
+ '\u1E86': 'W',
2526
+ '\u1E84': 'W',
2527
+ '\u1E88': 'W',
2528
+ '\u2C72': 'W',
2529
+ '\u24CD': 'X',
2530
+ '\uFF38': 'X',
2531
+ '\u1E8A': 'X',
2532
+ '\u1E8C': 'X',
2533
+ '\u24CE': 'Y',
2534
+ '\uFF39': 'Y',
2535
+ '\u1EF2': 'Y',
2536
+ '\u00DD': 'Y',
2537
+ '\u0176': 'Y',
2538
+ '\u1EF8': 'Y',
2539
+ '\u0232': 'Y',
2540
+ '\u1E8E': 'Y',
2541
+ '\u0178': 'Y',
2542
+ '\u1EF6': 'Y',
2543
+ '\u1EF4': 'Y',
2544
+ '\u01B3': 'Y',
2545
+ '\u024E': 'Y',
2546
+ '\u1EFE': 'Y',
2547
+ '\u24CF': 'Z',
2548
+ '\uFF3A': 'Z',
2549
+ '\u0179': 'Z',
2550
+ '\u1E90': 'Z',
2551
+ '\u017B': 'Z',
2552
+ '\u017D': 'Z',
2553
+ '\u1E92': 'Z',
2554
+ '\u1E94': 'Z',
2555
+ '\u01B5': 'Z',
2556
+ '\u0224': 'Z',
2557
+ '\u2C7F': 'Z',
2558
+ '\u2C6B': 'Z',
2559
+ '\uA762': 'Z',
2560
+ '\u24D0': 'a',
2561
+ '\uFF41': 'a',
2562
+ '\u1E9A': 'a',
2563
+ '\u00E0': 'a',
2564
+ '\u00E1': 'a',
2565
+ '\u00E2': 'a',
2566
+ '\u1EA7': 'a',
2567
+ '\u1EA5': 'a',
2568
+ '\u1EAB': 'a',
2569
+ '\u1EA9': 'a',
2570
+ '\u00E3': 'a',
2571
+ '\u0101': 'a',
2572
+ '\u0103': 'a',
2573
+ '\u1EB1': 'a',
2574
+ '\u1EAF': 'a',
2575
+ '\u1EB5': 'a',
2576
+ '\u1EB3': 'a',
2577
+ '\u0227': 'a',
2578
+ '\u01E1': 'a',
2579
+ '\u00E4': 'a',
2580
+ '\u01DF': 'a',
2581
+ '\u1EA3': 'a',
2582
+ '\u00E5': 'a',
2583
+ '\u01FB': 'a',
2584
+ '\u01CE': 'a',
2585
+ '\u0201': 'a',
2586
+ '\u0203': 'a',
2587
+ '\u1EA1': 'a',
2588
+ '\u1EAD': 'a',
2589
+ '\u1EB7': 'a',
2590
+ '\u1E01': 'a',
2591
+ '\u0105': 'a',
2592
+ '\u2C65': 'a',
2593
+ '\u0250': 'a',
2594
+ '\uA733': 'aa',
2595
+ '\u00E6': 'ae',
2596
+ '\u01FD': 'ae',
2597
+ '\u01E3': 'ae',
2598
+ '\uA735': 'ao',
2599
+ '\uA737': 'au',
2600
+ '\uA739': 'av',
2601
+ '\uA73B': 'av',
2602
+ '\uA73D': 'ay',
2603
+ '\u24D1': 'b',
2604
+ '\uFF42': 'b',
2605
+ '\u1E03': 'b',
2606
+ '\u1E05': 'b',
2607
+ '\u1E07': 'b',
2608
+ '\u0180': 'b',
2609
+ '\u0183': 'b',
2610
+ '\u0253': 'b',
2611
+ '\u24D2': 'c',
2612
+ '\uFF43': 'c',
2613
+ '\u0107': 'c',
2614
+ '\u0109': 'c',
2615
+ '\u010B': 'c',
2616
+ '\u010D': 'c',
2617
+ '\u00E7': 'c',
2618
+ '\u1E09': 'c',
2619
+ '\u0188': 'c',
2620
+ '\u023C': 'c',
2621
+ '\uA73F': 'c',
2622
+ '\u2184': 'c',
2623
+ '\u24D3': 'd',
2624
+ '\uFF44': 'd',
2625
+ '\u1E0B': 'd',
2626
+ '\u010F': 'd',
2627
+ '\u1E0D': 'd',
2628
+ '\u1E11': 'd',
2629
+ '\u1E13': 'd',
2630
+ '\u1E0F': 'd',
2631
+ '\u0111': 'd',
2632
+ '\u018C': 'd',
2633
+ '\u0256': 'd',
2634
+ '\u0257': 'd',
2635
+ '\uA77A': 'd',
2636
+ '\u01F3': 'dz',
2637
+ '\u01C6': 'dz',
2638
+ '\u24D4': 'e',
2639
+ '\uFF45': 'e',
2640
+ '\u00E8': 'e',
2641
+ '\u00E9': 'e',
2642
+ '\u00EA': 'e',
2643
+ '\u1EC1': 'e',
2644
+ '\u1EBF': 'e',
2645
+ '\u1EC5': 'e',
2646
+ '\u1EC3': 'e',
2647
+ '\u1EBD': 'e',
2648
+ '\u0113': 'e',
2649
+ '\u1E15': 'e',
2650
+ '\u1E17': 'e',
2651
+ '\u0115': 'e',
2652
+ '\u0117': 'e',
2653
+ '\u00EB': 'e',
2654
+ '\u1EBB': 'e',
2655
+ '\u011B': 'e',
2656
+ '\u0205': 'e',
2657
+ '\u0207': 'e',
2658
+ '\u1EB9': 'e',
2659
+ '\u1EC7': 'e',
2660
+ '\u0229': 'e',
2661
+ '\u1E1D': 'e',
2662
+ '\u0119': 'e',
2663
+ '\u1E19': 'e',
2664
+ '\u1E1B': 'e',
2665
+ '\u0247': 'e',
2666
+ '\u025B': 'e',
2667
+ '\u01DD': 'e',
2668
+ '\u24D5': 'f',
2669
+ '\uFF46': 'f',
2670
+ '\u1E1F': 'f',
2671
+ '\u0192': 'f',
2672
+ '\uA77C': 'f',
2673
+ '\u24D6': 'g',
2674
+ '\uFF47': 'g',
2675
+ '\u01F5': 'g',
2676
+ '\u011D': 'g',
2677
+ '\u1E21': 'g',
2678
+ '\u011F': 'g',
2679
+ '\u0121': 'g',
2680
+ '\u01E7': 'g',
2681
+ '\u0123': 'g',
2682
+ '\u01E5': 'g',
2683
+ '\u0260': 'g',
2684
+ '\uA7A1': 'g',
2685
+ '\u1D79': 'g',
2686
+ '\uA77F': 'g',
2687
+ '\u24D7': 'h',
2688
+ '\uFF48': 'h',
2689
+ '\u0125': 'h',
2690
+ '\u1E23': 'h',
2691
+ '\u1E27': 'h',
2692
+ '\u021F': 'h',
2693
+ '\u1E25': 'h',
2694
+ '\u1E29': 'h',
2695
+ '\u1E2B': 'h',
2696
+ '\u1E96': 'h',
2697
+ '\u0127': 'h',
2698
+ '\u2C68': 'h',
2699
+ '\u2C76': 'h',
2700
+ '\u0265': 'h',
2701
+ '\u0195': 'hv',
2702
+ '\u24D8': 'i',
2703
+ '\uFF49': 'i',
2704
+ '\u00EC': 'i',
2705
+ '\u00ED': 'i',
2706
+ '\u00EE': 'i',
2707
+ '\u0129': 'i',
2708
+ '\u012B': 'i',
2709
+ '\u012D': 'i',
2710
+ '\u00EF': 'i',
2711
+ '\u1E2F': 'i',
2712
+ '\u1EC9': 'i',
2713
+ '\u01D0': 'i',
2714
+ '\u0209': 'i',
2715
+ '\u020B': 'i',
2716
+ '\u1ECB': 'i',
2717
+ '\u012F': 'i',
2718
+ '\u1E2D': 'i',
2719
+ '\u0268': 'i',
2720
+ '\u0131': 'i',
2721
+ '\u24D9': 'j',
2722
+ '\uFF4A': 'j',
2723
+ '\u0135': 'j',
2724
+ '\u01F0': 'j',
2725
+ '\u0249': 'j',
2726
+ '\u24DA': 'k',
2727
+ '\uFF4B': 'k',
2728
+ '\u1E31': 'k',
2729
+ '\u01E9': 'k',
2730
+ '\u1E33': 'k',
2731
+ '\u0137': 'k',
2732
+ '\u1E35': 'k',
2733
+ '\u0199': 'k',
2734
+ '\u2C6A': 'k',
2735
+ '\uA741': 'k',
2736
+ '\uA743': 'k',
2737
+ '\uA745': 'k',
2738
+ '\uA7A3': 'k',
2739
+ '\u24DB': 'l',
2740
+ '\uFF4C': 'l',
2741
+ '\u0140': 'l',
2742
+ '\u013A': 'l',
2743
+ '\u013E': 'l',
2744
+ '\u1E37': 'l',
2745
+ '\u1E39': 'l',
2746
+ '\u013C': 'l',
2747
+ '\u1E3D': 'l',
2748
+ '\u1E3B': 'l',
2749
+ '\u017F': 'l',
2750
+ '\u0142': 'l',
2751
+ '\u019A': 'l',
2752
+ '\u026B': 'l',
2753
+ '\u2C61': 'l',
2754
+ '\uA749': 'l',
2755
+ '\uA781': 'l',
2756
+ '\uA747': 'l',
2757
+ '\u01C9': 'lj',
2758
+ '\u24DC': 'm',
2759
+ '\uFF4D': 'm',
2760
+ '\u1E3F': 'm',
2761
+ '\u1E41': 'm',
2762
+ '\u1E43': 'm',
2763
+ '\u0271': 'm',
2764
+ '\u026F': 'm',
2765
+ '\u24DD': 'n',
2766
+ '\uFF4E': 'n',
2767
+ '\u01F9': 'n',
2768
+ '\u0144': 'n',
2769
+ '\u00F1': 'n',
2770
+ '\u1E45': 'n',
2771
+ '\u0148': 'n',
2772
+ '\u1E47': 'n',
2773
+ '\u0146': 'n',
2774
+ '\u1E4B': 'n',
2775
+ '\u1E49': 'n',
2776
+ '\u019E': 'n',
2777
+ '\u0272': 'n',
2778
+ '\u0149': 'n',
2779
+ '\uA791': 'n',
2780
+ '\uA7A5': 'n',
2781
+ '\u01CC': 'nj',
2782
+ '\u24DE': 'o',
2783
+ '\uFF4F': 'o',
2784
+ '\u00F2': 'o',
2785
+ '\u00F3': 'o',
2786
+ '\u00F4': 'o',
2787
+ '\u1ED3': 'o',
2788
+ '\u1ED1': 'o',
2789
+ '\u1ED7': 'o',
2790
+ '\u1ED5': 'o',
2791
+ '\u00F5': 'o',
2792
+ '\u1E4D': 'o',
2793
+ '\u022D': 'o',
2794
+ '\u1E4F': 'o',
2795
+ '\u014D': 'o',
2796
+ '\u1E51': 'o',
2797
+ '\u1E53': 'o',
2798
+ '\u014F': 'o',
2799
+ '\u022F': 'o',
2800
+ '\u0231': 'o',
2801
+ '\u00F6': 'o',
2802
+ '\u022B': 'o',
2803
+ '\u1ECF': 'o',
2804
+ '\u0151': 'o',
2805
+ '\u01D2': 'o',
2806
+ '\u020D': 'o',
2807
+ '\u020F': 'o',
2808
+ '\u01A1': 'o',
2809
+ '\u1EDD': 'o',
2810
+ '\u1EDB': 'o',
2811
+ '\u1EE1': 'o',
2812
+ '\u1EDF': 'o',
2813
+ '\u1EE3': 'o',
2814
+ '\u1ECD': 'o',
2815
+ '\u1ED9': 'o',
2816
+ '\u01EB': 'o',
2817
+ '\u01ED': 'o',
2818
+ '\u00F8': 'o',
2819
+ '\u01FF': 'o',
2820
+ '\u0254': 'o',
2821
+ '\uA74B': 'o',
2822
+ '\uA74D': 'o',
2823
+ '\u0275': 'o',
2824
+ '\u01A3': 'oi',
2825
+ '\u0223': 'ou',
2826
+ '\uA74F': 'oo',
2827
+ '\u24DF': 'p',
2828
+ '\uFF50': 'p',
2829
+ '\u1E55': 'p',
2830
+ '\u1E57': 'p',
2831
+ '\u01A5': 'p',
2832
+ '\u1D7D': 'p',
2833
+ '\uA751': 'p',
2834
+ '\uA753': 'p',
2835
+ '\uA755': 'p',
2836
+ '\u24E0': 'q',
2837
+ '\uFF51': 'q',
2838
+ '\u024B': 'q',
2839
+ '\uA757': 'q',
2840
+ '\uA759': 'q',
2841
+ '\u24E1': 'r',
2842
+ '\uFF52': 'r',
2843
+ '\u0155': 'r',
2844
+ '\u1E59': 'r',
2845
+ '\u0159': 'r',
2846
+ '\u0211': 'r',
2847
+ '\u0213': 'r',
2848
+ '\u1E5B': 'r',
2849
+ '\u1E5D': 'r',
2850
+ '\u0157': 'r',
2851
+ '\u1E5F': 'r',
2852
+ '\u024D': 'r',
2853
+ '\u027D': 'r',
2854
+ '\uA75B': 'r',
2855
+ '\uA7A7': 'r',
2856
+ '\uA783': 'r',
2857
+ '\u24E2': 's',
2858
+ '\uFF53': 's',
2859
+ '\u00DF': 's',
2860
+ '\u015B': 's',
2861
+ '\u1E65': 's',
2862
+ '\u015D': 's',
2863
+ '\u1E61': 's',
2864
+ '\u0161': 's',
2865
+ '\u1E67': 's',
2866
+ '\u1E63': 's',
2867
+ '\u1E69': 's',
2868
+ '\u0219': 's',
2869
+ '\u015F': 's',
2870
+ '\u023F': 's',
2871
+ '\uA7A9': 's',
2872
+ '\uA785': 's',
2873
+ '\u1E9B': 's',
2874
+ '\u24E3': 't',
2875
+ '\uFF54': 't',
2876
+ '\u1E6B': 't',
2877
+ '\u1E97': 't',
2878
+ '\u0165': 't',
2879
+ '\u1E6D': 't',
2880
+ '\u021B': 't',
2881
+ '\u0163': 't',
2882
+ '\u1E71': 't',
2883
+ '\u1E6F': 't',
2884
+ '\u0167': 't',
2885
+ '\u01AD': 't',
2886
+ '\u0288': 't',
2887
+ '\u2C66': 't',
2888
+ '\uA787': 't',
2889
+ '\uA729': 'tz',
2890
+ '\u24E4': 'u',
2891
+ '\uFF55': 'u',
2892
+ '\u00F9': 'u',
2893
+ '\u00FA': 'u',
2894
+ '\u00FB': 'u',
2895
+ '\u0169': 'u',
2896
+ '\u1E79': 'u',
2897
+ '\u016B': 'u',
2898
+ '\u1E7B': 'u',
2899
+ '\u016D': 'u',
2900
+ '\u00FC': 'u',
2901
+ '\u01DC': 'u',
2902
+ '\u01D8': 'u',
2903
+ '\u01D6': 'u',
2904
+ '\u01DA': 'u',
2905
+ '\u1EE7': 'u',
2906
+ '\u016F': 'u',
2907
+ '\u0171': 'u',
2908
+ '\u01D4': 'u',
2909
+ '\u0215': 'u',
2910
+ '\u0217': 'u',
2911
+ '\u01B0': 'u',
2912
+ '\u1EEB': 'u',
2913
+ '\u1EE9': 'u',
2914
+ '\u1EEF': 'u',
2915
+ '\u1EED': 'u',
2916
+ '\u1EF1': 'u',
2917
+ '\u1EE5': 'u',
2918
+ '\u1E73': 'u',
2919
+ '\u0173': 'u',
2920
+ '\u1E77': 'u',
2921
+ '\u1E75': 'u',
2922
+ '\u0289': 'u',
2923
+ '\u24E5': 'v',
2924
+ '\uFF56': 'v',
2925
+ '\u1E7D': 'v',
2926
+ '\u1E7F': 'v',
2927
+ '\u028B': 'v',
2928
+ '\uA75F': 'v',
2929
+ '\u028C': 'v',
2930
+ '\uA761': 'vy',
2931
+ '\u24E6': 'w',
2932
+ '\uFF57': 'w',
2933
+ '\u1E81': 'w',
2934
+ '\u1E83': 'w',
2935
+ '\u0175': 'w',
2936
+ '\u1E87': 'w',
2937
+ '\u1E85': 'w',
2938
+ '\u1E98': 'w',
2939
+ '\u1E89': 'w',
2940
+ '\u2C73': 'w',
2941
+ '\u24E7': 'x',
2942
+ '\uFF58': 'x',
2943
+ '\u1E8B': 'x',
2944
+ '\u1E8D': 'x',
2945
+ '\u24E8': 'y',
2946
+ '\uFF59': 'y',
2947
+ '\u1EF3': 'y',
2948
+ '\u00FD': 'y',
2949
+ '\u0177': 'y',
2950
+ '\u1EF9': 'y',
2951
+ '\u0233': 'y',
2952
+ '\u1E8F': 'y',
2953
+ '\u00FF': 'y',
2954
+ '\u1EF7': 'y',
2955
+ '\u1E99': 'y',
2956
+ '\u1EF5': 'y',
2957
+ '\u01B4': 'y',
2958
+ '\u024F': 'y',
2959
+ '\u1EFF': 'y',
2960
+ '\u24E9': 'z',
2961
+ '\uFF5A': 'z',
2962
+ '\u017A': 'z',
2963
+ '\u1E91': 'z',
2964
+ '\u017C': 'z',
2965
+ '\u017E': 'z',
2966
+ '\u1E93': 'z',
2967
+ '\u1E95': 'z',
2968
+ '\u01B6': 'z',
2969
+ '\u0225': 'z',
2970
+ '\u0240': 'z',
2971
+ '\u2C6C': 'z',
2972
+ '\uA763': 'z',
2973
+ '\u0386': '\u0391',
2974
+ '\u0388': '\u0395',
2975
+ '\u0389': '\u0397',
2976
+ '\u038A': '\u0399',
2977
+ '\u03AA': '\u0399',
2978
+ '\u038C': '\u039F',
2979
+ '\u038E': '\u03A5',
2980
+ '\u03AB': '\u03A5',
2981
+ '\u038F': '\u03A9',
2982
+ '\u03AC': '\u03B1',
2983
+ '\u03AD': '\u03B5',
2984
+ '\u03AE': '\u03B7',
2985
+ '\u03AF': '\u03B9',
2986
+ '\u03CA': '\u03B9',
2987
+ '\u0390': '\u03B9',
2988
+ '\u03CC': '\u03BF',
2989
+ '\u03CD': '\u03C5',
2990
+ '\u03CB': '\u03C5',
2991
+ '\u03B0': '\u03C5',
2992
+ '\u03C9': '\u03C9',
2993
+ '\u03C2': '\u03C3'
2994
+ };
2995
+
2996
+ return diacritics;
2997
+ });
2998
+
2999
+ S2.define('select2/data/base',[
3000
+ '../utils'
3001
+ ], function (Utils) {
3002
+ function BaseAdapter ($element, options) {
3003
+ BaseAdapter.__super__.constructor.call(this);
3004
+ }
3005
+
3006
+ Utils.Extend(BaseAdapter, Utils.Observable);
3007
+
3008
+ BaseAdapter.prototype.current = function (callback) {
3009
+ throw new Error('The `current` method must be defined in child classes.');
3010
+ };
3011
+
3012
+ BaseAdapter.prototype.query = function (params, callback) {
3013
+ throw new Error('The `query` method must be defined in child classes.');
3014
+ };
3015
+
3016
+ BaseAdapter.prototype.bind = function (container, $container) {
3017
+ // Can be implemented in subclasses
3018
+ };
3019
+
3020
+ BaseAdapter.prototype.destroy = function () {
3021
+ // Can be implemented in subclasses
3022
+ };
3023
+
3024
+ BaseAdapter.prototype.generateResultId = function (container, data) {
3025
+ var id = container.id + '-result-';
3026
+
3027
+ id += Utils.generateChars(4);
3028
+
3029
+ if (data.id != null) {
3030
+ id += '-' + data.id.toString();
3031
+ } else {
3032
+ id += '-' + Utils.generateChars(4);
3033
+ }
3034
+ return id;
3035
+ };
3036
+
3037
+ return BaseAdapter;
3038
+ });
3039
+
3040
+ S2.define('select2/data/select',[
3041
+ './base',
3042
+ '../utils',
3043
+ 'jquery'
3044
+ ], function (BaseAdapter, Utils, $) {
3045
+ function SelectAdapter ($element, options) {
3046
+ this.$element = $element;
3047
+ this.options = options;
3048
+
3049
+ SelectAdapter.__super__.constructor.call(this);
3050
+ }
3051
+
3052
+ Utils.Extend(SelectAdapter, BaseAdapter);
3053
+
3054
+ SelectAdapter.prototype.current = function (callback) {
3055
+ var data = [];
3056
+ var self = this;
3057
+
3058
+ this.$element.find(':selected').each(function () {
3059
+ var $option = $(this);
3060
+
3061
+ var option = self.item($option);
3062
+
3063
+ data.push(option);
3064
+ });
3065
+
3066
+ callback(data);
3067
+ };
3068
+
3069
+ SelectAdapter.prototype.select = function (data) {
3070
+ var self = this;
3071
+
3072
+ data.selected = true;
3073
+
3074
+ // If data.element is a DOM node, use it instead
3075
+ if ($(data.element).is('option')) {
3076
+ data.element.selected = true;
3077
+
3078
+ this.$element.trigger('change');
3079
+
3080
+ return;
3081
+ }
3082
+
3083
+ if (this.$element.prop('multiple')) {
3084
+ this.current(function (currentData) {
3085
+ var val = [];
3086
+
3087
+ data = [data];
3088
+ data.push.apply(data, currentData);
3089
+
3090
+ for (var d = 0; d < data.length; d++) {
3091
+ var id = data[d].id;
3092
+
3093
+ if ($.inArray(id, val) === -1) {
3094
+ val.push(id);
3095
+ }
3096
+ }
3097
+
3098
+ self.$element.val(val);
3099
+ self.$element.trigger('change');
3100
+ });
3101
+ } else {
3102
+ var val = data.id;
3103
+
3104
+ this.$element.val(val);
3105
+ this.$element.trigger('change');
3106
+ }
3107
+ };
3108
+
3109
+ SelectAdapter.prototype.unselect = function (data) {
3110
+ var self = this;
3111
+
3112
+ if (!this.$element.prop('multiple')) {
3113
+ return;
3114
+ }
3115
+
3116
+ data.selected = false;
3117
+
3118
+ if ($(data.element).is('option')) {
3119
+ data.element.selected = false;
3120
+
3121
+ this.$element.trigger('change');
3122
+
3123
+ return;
3124
+ }
3125
+
3126
+ this.current(function (currentData) {
3127
+ var val = [];
3128
+
3129
+ for (var d = 0; d < currentData.length; d++) {
3130
+ var id = currentData[d].id;
3131
+
3132
+ if (id !== data.id && $.inArray(id, val) === -1) {
3133
+ val.push(id);
3134
+ }
3135
+ }
3136
+
3137
+ self.$element.val(val);
3138
+
3139
+ self.$element.trigger('change');
3140
+ });
3141
+ };
3142
+
3143
+ SelectAdapter.prototype.bind = function (container, $container) {
3144
+ var self = this;
3145
+
3146
+ this.container = container;
3147
+
3148
+ container.on('select', function (params) {
3149
+ self.select(params.data);
3150
+ });
3151
+
3152
+ container.on('unselect', function (params) {
3153
+ self.unselect(params.data);
3154
+ });
3155
+ };
3156
+
3157
+ SelectAdapter.prototype.destroy = function () {
3158
+ // Remove anything added to child elements
3159
+ this.$element.find('*').each(function () {
3160
+ // Remove any custom data set by Select2
3161
+ $.removeData(this, 'data');
3162
+ });
3163
+ };
3164
+
3165
+ SelectAdapter.prototype.query = function (params, callback) {
3166
+ var data = [];
3167
+ var self = this;
3168
+
3169
+ var $options = this.$element.children();
3170
+
3171
+ $options.each(function () {
3172
+ var $option = $(this);
3173
+
3174
+ if (!$option.is('option') && !$option.is('optgroup')) {
3175
+ return;
3176
+ }
3177
+
3178
+ var option = self.item($option);
3179
+
3180
+ var matches = self.matches(params, option);
3181
+
3182
+ if (matches !== null) {
3183
+ data.push(matches);
3184
+ }
3185
+ });
3186
+
3187
+ callback({
3188
+ results: data
3189
+ });
3190
+ };
3191
+
3192
+ SelectAdapter.prototype.addOptions = function ($options) {
3193
+ Utils.appendMany(this.$element, $options);
3194
+ };
3195
+
3196
+ SelectAdapter.prototype.option = function (data) {
3197
+ var option;
3198
+
3199
+ if (data.children) {
3200
+ option = document.createElement('optgroup');
3201
+ option.label = data.text;
3202
+ } else {
3203
+ option = document.createElement('option');
3204
+
3205
+ if (option.textContent !== undefined) {
3206
+ option.textContent = data.text;
3207
+ } else {
3208
+ option.innerText = data.text;
3209
+ }
3210
+ }
3211
+
3212
+ if (data.id !== undefined) {
3213
+ option.value = data.id;
3214
+ }
3215
+
3216
+ if (data.disabled) {
3217
+ option.disabled = true;
3218
+ }
3219
+
3220
+ if (data.selected) {
3221
+ option.selected = true;
3222
+ }
3223
+
3224
+ if (data.title) {
3225
+ option.title = data.title;
3226
+ }
3227
+
3228
+ var $option = $(option);
3229
+
3230
+ var normalizedData = this._normalizeItem(data);
3231
+ normalizedData.element = option;
3232
+
3233
+ // Override the option's data with the combined data
3234
+ $.data(option, 'data', normalizedData);
3235
+
3236
+ return $option;
3237
+ };
3238
+
3239
+ SelectAdapter.prototype.item = function ($option) {
3240
+ var data = {};
3241
+
3242
+ data = $.data($option[0], 'data');
3243
+
3244
+ if (data != null) {
3245
+ return data;
3246
+ }
3247
+
3248
+ if ($option.is('option')) {
3249
+ data = {
3250
+ id: $option.val(),
3251
+ text: $option.text(),
3252
+ disabled: $option.prop('disabled'),
3253
+ selected: $option.prop('selected'),
3254
+ title: $option.prop('title')
3255
+ };
3256
+ } else if ($option.is('optgroup')) {
3257
+ data = {
3258
+ text: $option.prop('label'),
3259
+ children: [],
3260
+ title: $option.prop('title')
3261
+ };
3262
+
3263
+ var $children = $option.children('option');
3264
+ var children = [];
3265
+
3266
+ for (var c = 0; c < $children.length; c++) {
3267
+ var $child = $($children[c]);
3268
+
3269
+ var child = this.item($child);
3270
+
3271
+ children.push(child);
3272
+ }
3273
+
3274
+ data.children = children;
3275
+ }
3276
+
3277
+ data = this._normalizeItem(data);
3278
+ data.element = $option[0];
3279
+
3280
+ $.data($option[0], 'data', data);
3281
+
3282
+ return data;
3283
+ };
3284
+
3285
+ SelectAdapter.prototype._normalizeItem = function (item) {
3286
+ if (!$.isPlainObject(item)) {
3287
+ item = {
3288
+ id: item,
3289
+ text: item
3290
+ };
3291
+ }
3292
+
3293
+ item = $.extend({}, {
3294
+ text: ''
3295
+ }, item);
3296
+
3297
+ var defaults = {
3298
+ selected: false,
3299
+ disabled: false
3300
+ };
3301
+
3302
+ if (item.id != null) {
3303
+ item.id = item.id.toString();
3304
+ }
3305
+
3306
+ if (item.text != null) {
3307
+ item.text = item.text.toString();
3308
+ }
3309
+
3310
+ if (item._resultId == null && item.id && this.container != null) {
3311
+ item._resultId = this.generateResultId(this.container, item);
3312
+ }
3313
+
3314
+ return $.extend({}, defaults, item);
3315
+ };
3316
+
3317
+ SelectAdapter.prototype.matches = function (params, data) {
3318
+ var matcher = this.options.get('matcher');
3319
+
3320
+ return matcher(params, data);
3321
+ };
3322
+
3323
+ return SelectAdapter;
3324
+ });
3325
+
3326
+ S2.define('select2/data/array',[
3327
+ './select',
3328
+ '../utils',
3329
+ 'jquery'
3330
+ ], function (SelectAdapter, Utils, $) {
3331
+ function ArrayAdapter ($element, options) {
3332
+ var data = options.get('data') || [];
3333
+
3334
+ ArrayAdapter.__super__.constructor.call(this, $element, options);
3335
+
3336
+ this.addOptions(this.convertToOptions(data));
3337
+ }
3338
+
3339
+ Utils.Extend(ArrayAdapter, SelectAdapter);
3340
+
3341
+ ArrayAdapter.prototype.select = function (data) {
3342
+ var $option = this.$element.find('option').filter(function (i, elm) {
3343
+ return elm.value == data.id.toString();
3344
+ });
3345
+
3346
+ if ($option.length === 0) {
3347
+ $option = this.option(data);
3348
+
3349
+ this.addOptions($option);
3350
+ }
3351
+
3352
+ ArrayAdapter.__super__.select.call(this, data);
3353
+ };
3354
+
3355
+ ArrayAdapter.prototype.convertToOptions = function (data) {
3356
+ var self = this;
3357
+
3358
+ var $existing = this.$element.find('option');
3359
+ var existingIds = $existing.map(function () {
3360
+ return self.item($(this)).id;
3361
+ }).get();
3362
+
3363
+ var $options = [];
3364
+
3365
+ // Filter out all items except for the one passed in the argument
3366
+ function onlyItem (item) {
3367
+ return function () {
3368
+ return $(this).val() == item.id;
3369
+ };
3370
+ }
3371
+
3372
+ for (var d = 0; d < data.length; d++) {
3373
+ var item = this._normalizeItem(data[d]);
3374
+
3375
+ // Skip items which were pre-loaded, only merge the data
3376
+ if ($.inArray(item.id, existingIds) >= 0) {
3377
+ var $existingOption = $existing.filter(onlyItem(item));
3378
+
3379
+ var existingData = this.item($existingOption);
3380
+ var newData = $.extend(true, {}, item, existingData);
3381
+
3382
+ var $newOption = this.option(newData);
3383
+
3384
+ $existingOption.replaceWith($newOption);
3385
+
3386
+ continue;
3387
+ }
3388
+
3389
+ var $option = this.option(item);
3390
+
3391
+ if (item.children) {
3392
+ var $children = this.convertToOptions(item.children);
3393
+
3394
+ Utils.appendMany($option, $children);
3395
+ }
3396
+
3397
+ $options.push($option);
3398
+ }
3399
+
3400
+ return $options;
3401
+ };
3402
+
3403
+ return ArrayAdapter;
3404
+ });
3405
+
3406
+ S2.define('select2/data/ajax',[
3407
+ './array',
3408
+ '../utils',
3409
+ 'jquery'
3410
+ ], function (ArrayAdapter, Utils, $) {
3411
+ function AjaxAdapter ($element, options) {
3412
+ this.ajaxOptions = this._applyDefaults(options.get('ajax'));
3413
+
3414
+ if (this.ajaxOptions.processResults != null) {
3415
+ this.processResults = this.ajaxOptions.processResults;
3416
+ }
3417
+
3418
+ AjaxAdapter.__super__.constructor.call(this, $element, options);
3419
+ }
3420
+
3421
+ Utils.Extend(AjaxAdapter, ArrayAdapter);
3422
+
3423
+ AjaxAdapter.prototype._applyDefaults = function (options) {
3424
+ var defaults = {
3425
+ data: function (params) {
3426
+ return $.extend({}, params, {
3427
+ q: params.term
3428
+ });
3429
+ },
3430
+ transport: function (params, success, failure) {
3431
+ var $request = $.ajax(params);
3432
+
3433
+ $request.then(success);
3434
+ $request.fail(failure);
3435
+
3436
+ return $request;
3437
+ }
3438
+ };
3439
+
3440
+ return $.extend({}, defaults, options, true);
3441
+ };
3442
+
3443
+ AjaxAdapter.prototype.processResults = function (results) {
3444
+ return results;
3445
+ };
3446
+
3447
+ AjaxAdapter.prototype.query = function (params, callback) {
3448
+ var matches = [];
3449
+ var self = this;
3450
+
3451
+ if (this._request != null) {
3452
+ // JSONP requests cannot always be aborted
3453
+ if ($.isFunction(this._request.abort)) {
3454
+ this._request.abort();
3455
+ }
3456
+
3457
+ this._request = null;
3458
+ }
3459
+
3460
+ var options = $.extend({
3461
+ type: 'GET'
3462
+ }, this.ajaxOptions);
3463
+
3464
+ if (typeof options.url === 'function') {
3465
+ options.url = options.url.call(this.$element, params);
3466
+ }
3467
+
3468
+ if (typeof options.data === 'function') {
3469
+ options.data = options.data.call(this.$element, params);
3470
+ }
3471
+
3472
+ function request () {
3473
+ var $request = options.transport(options, function (data) {
3474
+ var results = self.processResults(data, params);
3475
+
3476
+ if (self.options.get('debug') && window.console && console.error) {
3477
+ // Check to make sure that the response included a `results` key.
3478
+ if (!results || !results.results || !$.isArray(results.results)) {
3479
+ console.error(
3480
+ 'Select2: The AJAX results did not return an array in the ' +
3481
+ '`results` key of the response.'
3482
+ );
3483
+ }
3484
+ }
3485
+
3486
+ callback(results);
3487
+ }, function () {
3488
+ // Attempt to detect if a request was aborted
3489
+ // Only works if the transport exposes a status property
3490
+ if ($request.status && $request.status === '0') {
3491
+ return;
3492
+ }
3493
+
3494
+ self.trigger('results:message', {
3495
+ message: 'errorLoading'
3496
+ });
3497
+ });
3498
+
3499
+ self._request = $request;
3500
+ }
3501
+
3502
+ if (this.ajaxOptions.delay && params.term != null) {
3503
+ if (this._queryTimeout) {
3504
+ window.clearTimeout(this._queryTimeout);
3505
+ }
3506
+
3507
+ this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);
3508
+ } else {
3509
+ request();
3510
+ }
3511
+ };
3512
+
3513
+ return AjaxAdapter;
3514
+ });
3515
+
3516
+ S2.define('select2/data/tags',[
3517
+ 'jquery'
3518
+ ], function ($) {
3519
+ function Tags (decorated, $element, options) {
3520
+ var tags = options.get('tags');
3521
+
3522
+ var createTag = options.get('createTag');
3523
+
3524
+ if (createTag !== undefined) {
3525
+ this.createTag = createTag;
3526
+ }
3527
+
3528
+ var insertTag = options.get('insertTag');
3529
+
3530
+ if (insertTag !== undefined) {
3531
+ this.insertTag = insertTag;
3532
+ }
3533
+
3534
+ decorated.call(this, $element, options);
3535
+
3536
+ if ($.isArray(tags)) {
3537
+ for (var t = 0; t < tags.length; t++) {
3538
+ var tag = tags[t];
3539
+ var item = this._normalizeItem(tag);
3540
+
3541
+ var $option = this.option(item);
3542
+
3543
+ this.$element.append($option);
3544
+ }
3545
+ }
3546
+ }
3547
+
3548
+ Tags.prototype.query = function (decorated, params, callback) {
3549
+ var self = this;
3550
+
3551
+ this._removeOldTags();
3552
+
3553
+ if (params.term == null || params.page != null) {
3554
+ decorated.call(this, params, callback);
3555
+ return;
3556
+ }
3557
+
3558
+ function wrapper (obj, child) {
3559
+ var data = obj.results;
3560
+
3561
+ for (var i = 0; i < data.length; i++) {
3562
+ var option = data[i];
3563
+
3564
+ var checkChildren = (
3565
+ option.children != null &&
3566
+ !wrapper({
3567
+ results: option.children
3568
+ }, true)
3569
+ );
3570
+
3571
+ var optionText = (option.text || '').toUpperCase();
3572
+ var paramsTerm = (params.term || '').toUpperCase();
3573
+
3574
+ var checkText = optionText === paramsTerm;
3575
+
3576
+ if (checkText || checkChildren) {
3577
+ if (child) {
3578
+ return false;
3579
+ }
3580
+
3581
+ obj.data = data;
3582
+ callback(obj);
3583
+
3584
+ return;
3585
+ }
3586
+ }
3587
+
3588
+ if (child) {
3589
+ return true;
3590
+ }
3591
+
3592
+ var tag = self.createTag(params);
3593
+
3594
+ if (tag != null) {
3595
+ var $option = self.option(tag);
3596
+ $option.attr('data-select2-tag', true);
3597
+
3598
+ self.addOptions([$option]);
3599
+
3600
+ self.insertTag(data, tag);
3601
+ }
3602
+
3603
+ obj.results = data;
3604
+
3605
+ callback(obj);
3606
+ }
3607
+
3608
+ decorated.call(this, params, wrapper);
3609
+ };
3610
+
3611
+ Tags.prototype.createTag = function (decorated, params) {
3612
+ var term = $.trim(params.term);
3613
+
3614
+ if (term === '') {
3615
+ return null;
3616
+ }
3617
+
3618
+ return {
3619
+ id: term,
3620
+ text: term
3621
+ };
3622
+ };
3623
+
3624
+ Tags.prototype.insertTag = function (_, data, tag) {
3625
+ data.unshift(tag);
3626
+ };
3627
+
3628
+ Tags.prototype._removeOldTags = function (_) {
3629
+ var tag = this._lastTag;
3630
+
3631
+ var $options = this.$element.find('option[data-select2-tag]');
3632
+
3633
+ $options.each(function () {
3634
+ if (this.selected) {
3635
+ return;
3636
+ }
3637
+
3638
+ $(this).remove();
3639
+ });
3640
+ };
3641
+
3642
+ return Tags;
3643
+ });
3644
+
3645
+ S2.define('select2/data/tokenizer',[
3646
+ 'jquery'
3647
+ ], function ($) {
3648
+ function Tokenizer (decorated, $element, options) {
3649
+ var tokenizer = options.get('tokenizer');
3650
+
3651
+ if (tokenizer !== undefined) {
3652
+ this.tokenizer = tokenizer;
3653
+ }
3654
+
3655
+ decorated.call(this, $element, options);
3656
+ }
3657
+
3658
+ Tokenizer.prototype.bind = function (decorated, container, $container) {
3659
+ decorated.call(this, container, $container);
3660
+
3661
+ this.$search = container.dropdown.$search || container.selection.$search ||
3662
+ $container.find('.select2-search__field');
3663
+ };
3664
+
3665
+ Tokenizer.prototype.query = function (decorated, params, callback) {
3666
+ var self = this;
3667
+
3668
+ function createAndSelect (data) {
3669
+ // Normalize the data object so we can use it for checks
3670
+ var item = self._normalizeItem(data);
3671
+
3672
+ // Check if the data object already exists as a tag
3673
+ // Select it if it doesn't
3674
+ var $existingOptions = self.$element.find('option').filter(function () {
3675
+ return $(this).val() === item.id;
3676
+ });
3677
+
3678
+ // If an existing option wasn't found for it, create the option
3679
+ if (!$existingOptions.length) {
3680
+ var $option = self.option(item);
3681
+ $option.attr('data-select2-tag', true);
3682
+
3683
+ self._removeOldTags();
3684
+ self.addOptions([$option]);
3685
+ }
3686
+
3687
+ // Select the item, now that we know there is an option for it
3688
+ select(item);
3689
+ }
3690
+
3691
+ function select (data) {
3692
+ self.trigger('select', {
3693
+ data: data
3694
+ });
3695
+ }
3696
+
3697
+ params.term = params.term || '';
3698
+
3699
+ var tokenData = this.tokenizer(params, this.options, createAndSelect);
3700
+
3701
+ if (tokenData.term !== params.term) {
3702
+ // Replace the search term if we have the search box
3703
+ if (this.$search.length) {
3704
+ this.$search.val(tokenData.term);
3705
+ this.$search.focus();
3706
+ }
3707
+
3708
+ params.term = tokenData.term;
3709
+ }
3710
+
3711
+ decorated.call(this, params, callback);
3712
+ };
3713
+
3714
+ Tokenizer.prototype.tokenizer = function (_, params, options, callback) {
3715
+ var separators = options.get('tokenSeparators') || [];
3716
+ var term = params.term;
3717
+ var i = 0;
3718
+
3719
+ var createTag = this.createTag || function (params) {
3720
+ return {
3721
+ id: params.term,
3722
+ text: params.term
3723
+ };
3724
+ };
3725
+
3726
+ while (i < term.length) {
3727
+ var termChar = term[i];
3728
+
3729
+ if ($.inArray(termChar, separators) === -1) {
3730
+ i++;
3731
+
3732
+ continue;
3733
+ }
3734
+
3735
+ var part = term.substr(0, i);
3736
+ var partParams = $.extend({}, params, {
3737
+ term: part
3738
+ });
3739
+
3740
+ var data = createTag(partParams);
3741
+
3742
+ if (data == null) {
3743
+ i++;
3744
+ continue;
3745
+ }
3746
+
3747
+ callback(data);
3748
+
3749
+ // Reset the term to not include the tokenized portion
3750
+ term = term.substr(i + 1) || '';
3751
+ i = 0;
3752
+ }
3753
+
3754
+ return {
3755
+ term: term
3756
+ };
3757
+ };
3758
+
3759
+ return Tokenizer;
3760
+ });
3761
+
3762
+ S2.define('select2/data/minimumInputLength',[
3763
+
3764
+ ], function () {
3765
+ function MinimumInputLength (decorated, $e, options) {
3766
+ this.minimumInputLength = options.get('minimumInputLength');
3767
+
3768
+ decorated.call(this, $e, options);
3769
+ }
3770
+
3771
+ MinimumInputLength.prototype.query = function (decorated, params, callback) {
3772
+ params.term = params.term || '';
3773
+
3774
+ if (params.term.length < this.minimumInputLength) {
3775
+ this.trigger('results:message', {
3776
+ message: 'inputTooShort',
3777
+ args: {
3778
+ minimum: this.minimumInputLength,
3779
+ input: params.term,
3780
+ params: params
3781
+ }
3782
+ });
3783
+
3784
+ return;
3785
+ }
3786
+
3787
+ decorated.call(this, params, callback);
3788
+ };
3789
+
3790
+ return MinimumInputLength;
3791
+ });
3792
+
3793
+ S2.define('select2/data/maximumInputLength',[
3794
+
3795
+ ], function () {
3796
+ function MaximumInputLength (decorated, $e, options) {
3797
+ this.maximumInputLength = options.get('maximumInputLength');
3798
+
3799
+ decorated.call(this, $e, options);
3800
+ }
3801
+
3802
+ MaximumInputLength.prototype.query = function (decorated, params, callback) {
3803
+ params.term = params.term || '';
3804
+
3805
+ if (this.maximumInputLength > 0 &&
3806
+ params.term.length > this.maximumInputLength) {
3807
+ this.trigger('results:message', {
3808
+ message: 'inputTooLong',
3809
+ args: {
3810
+ maximum: this.maximumInputLength,
3811
+ input: params.term,
3812
+ params: params
3813
+ }
3814
+ });
3815
+
3816
+ return;
3817
+ }
3818
+
3819
+ decorated.call(this, params, callback);
3820
+ };
3821
+
3822
+ return MaximumInputLength;
3823
+ });
3824
+
3825
+ S2.define('select2/data/maximumSelectionLength',[
3826
+
3827
+ ], function (){
3828
+ function MaximumSelectionLength (decorated, $e, options) {
3829
+ this.maximumSelectionLength = options.get('maximumSelectionLength');
3830
+
3831
+ decorated.call(this, $e, options);
3832
+ }
3833
+
3834
+ MaximumSelectionLength.prototype.query =
3835
+ function (decorated, params, callback) {
3836
+ var self = this;
3837
+
3838
+ this.current(function (currentData) {
3839
+ var count = currentData != null ? currentData.length : 0;
3840
+ if (self.maximumSelectionLength > 0 &&
3841
+ count >= self.maximumSelectionLength) {
3842
+ self.trigger('results:message', {
3843
+ message: 'maximumSelected',
3844
+ args: {
3845
+ maximum: self.maximumSelectionLength
3846
+ }
3847
+ });
3848
+ return;
3849
+ }
3850
+ decorated.call(self, params, callback);
3851
+ });
3852
+ };
3853
+
3854
+ return MaximumSelectionLength;
3855
+ });
3856
+
3857
+ S2.define('select2/dropdown',[
3858
+ 'jquery',
3859
+ './utils'
3860
+ ], function ($, Utils) {
3861
+ function Dropdown ($element, options) {
3862
+ this.$element = $element;
3863
+ this.options = options;
3864
+
3865
+ Dropdown.__super__.constructor.call(this);
3866
+ }
3867
+
3868
+ Utils.Extend(Dropdown, Utils.Observable);
3869
+
3870
+ Dropdown.prototype.render = function () {
3871
+ var $dropdown = $(
3872
+ '<span class="select2-dropdown">' +
3873
+ '<span class="select2-results"></span>' +
3874
+ '</span>'
3875
+ );
3876
+
3877
+ $dropdown.attr('dir', this.options.get('dir'));
3878
+
3879
+ this.$dropdown = $dropdown;
3880
+
3881
+ return $dropdown;
3882
+ };
3883
+
3884
+ Dropdown.prototype.bind = function () {
3885
+ // Should be implemented in subclasses
3886
+ };
3887
+
3888
+ Dropdown.prototype.position = function ($dropdown, $container) {
3889
+ // Should be implmented in subclasses
3890
+ };
3891
+
3892
+ Dropdown.prototype.destroy = function () {
3893
+ // Remove the dropdown from the DOM
3894
+ this.$dropdown.remove();
3895
+ };
3896
+
3897
+ return Dropdown;
3898
+ });
3899
+
3900
+ S2.define('select2/dropdown/search',[
3901
+ 'jquery',
3902
+ '../utils'
3903
+ ], function ($, Utils) {
3904
+ function Search () { }
3905
+
3906
+ Search.prototype.render = function (decorated) {
3907
+ var $rendered = decorated.call(this);
3908
+
3909
+ var $search = $(
3910
+ '<span class="select2-search select2-search--dropdown">' +
3911
+ '<input class="select2-search__field" type="search" tabindex="-1"' +
3912
+ ' autocomplete="off" autocorrect="off" autocapitalize="off"' +
3913
+ ' spellcheck="false" role="textbox" />' +
3914
+ '</span>'
3915
+ );
3916
+
3917
+ this.$searchContainer = $search;
3918
+ this.$search = $search.find('input');
3919
+
3920
+ $rendered.prepend($search);
3921
+
3922
+ return $rendered;
3923
+ };
3924
+
3925
+ Search.prototype.bind = function (decorated, container, $container) {
3926
+ var self = this;
3927
+
3928
+ decorated.call(this, container, $container);
3929
+
3930
+ this.$search.on('keydown', function (evt) {
3931
+ self.trigger('keypress', evt);
3932
+
3933
+ self._keyUpPrevented = evt.isDefaultPrevented();
3934
+ });
3935
+
3936
+ // Workaround for browsers which do not support the `input` event
3937
+ // This will prevent double-triggering of events for browsers which support
3938
+ // both the `keyup` and `input` events.
3939
+ this.$search.on('input', function (evt) {
3940
+ // Unbind the duplicated `keyup` event
3941
+ $(this).off('keyup');
3942
+ });
3943
+
3944
+ this.$search.on('keyup input', function (evt) {
3945
+ self.handleSearch(evt);
3946
+ });
3947
+
3948
+ container.on('open', function () {
3949
+ self.$search.attr('tabindex', 0);
3950
+
3951
+ self.$search.focus();
3952
+
3953
+ window.setTimeout(function () {
3954
+ self.$search.focus();
3955
+ }, 0);
3956
+ });
3957
+
3958
+ container.on('close', function () {
3959
+ self.$search.attr('tabindex', -1);
3960
+
3961
+ self.$search.val('');
3962
+ });
3963
+
3964
+ container.on('focus', function () {
3965
+ if (!container.isOpen()) {
3966
+ self.$search.focus();
3967
+ }
3968
+ });
3969
+
3970
+ container.on('results:all', function (params) {
3971
+ if (params.query.term == null || params.query.term === '') {
3972
+ var showSearch = self.showSearch(params);
3973
+
3974
+ if (showSearch) {
3975
+ self.$searchContainer.removeClass('select2-search--hide');
3976
+ } else {
3977
+ self.$searchContainer.addClass('select2-search--hide');
3978
+ }
3979
+ }
3980
+ });
3981
+ };
3982
+
3983
+ Search.prototype.handleSearch = function (evt) {
3984
+ if (!this._keyUpPrevented) {
3985
+ var input = this.$search.val();
3986
+
3987
+ this.trigger('query', {
3988
+ term: input
3989
+ });
3990
+ }
3991
+
3992
+ this._keyUpPrevented = false;
3993
+ };
3994
+
3995
+ Search.prototype.showSearch = function (_, params) {
3996
+ return true;
3997
+ };
3998
+
3999
+ return Search;
4000
+ });
4001
+
4002
+ S2.define('select2/dropdown/hidePlaceholder',[
4003
+
4004
+ ], function () {
4005
+ function HidePlaceholder (decorated, $element, options, dataAdapter) {
4006
+ this.placeholder = this.normalizePlaceholder(options.get('placeholder'));
4007
+
4008
+ decorated.call(this, $element, options, dataAdapter);
4009
+ }
4010
+
4011
+ HidePlaceholder.prototype.append = function (decorated, data) {
4012
+ data.results = this.removePlaceholder(data.results);
4013
+
4014
+ decorated.call(this, data);
4015
+ };
4016
+
4017
+ HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {
4018
+ if (typeof placeholder === 'string') {
4019
+ placeholder = {
4020
+ id: '',
4021
+ text: placeholder
4022
+ };
4023
+ }
4024
+
4025
+ return placeholder;
4026
+ };
4027
+
4028
+ HidePlaceholder.prototype.removePlaceholder = function (_, data) {
4029
+ var modifiedData = data.slice(0);
4030
+
4031
+ for (var d = data.length - 1; d >= 0; d--) {
4032
+ var item = data[d];
4033
+
4034
+ if (this.placeholder.id === item.id) {
4035
+ modifiedData.splice(d, 1);
4036
+ }
4037
+ }
4038
+
4039
+ return modifiedData;
4040
+ };
4041
+
4042
+ return HidePlaceholder;
4043
+ });
4044
+
4045
+ S2.define('select2/dropdown/infiniteScroll',[
4046
+ 'jquery'
4047
+ ], function ($) {
4048
+ function InfiniteScroll (decorated, $element, options, dataAdapter) {
4049
+ this.lastParams = {};
4050
+
4051
+ decorated.call(this, $element, options, dataAdapter);
4052
+
4053
+ this.$loadingMore = this.createLoadingMore();
4054
+ this.loading = false;
4055
+ }
4056
+
4057
+ InfiniteScroll.prototype.append = function (decorated, data) {
4058
+ this.$loadingMore.remove();
4059
+ this.loading = false;
4060
+
4061
+ decorated.call(this, data);
4062
+
4063
+ if (this.showLoadingMore(data)) {
4064
+ this.$results.append(this.$loadingMore);
4065
+ }
4066
+ };
4067
+
4068
+ InfiniteScroll.prototype.bind = function (decorated, container, $container) {
4069
+ var self = this;
4070
+
4071
+ decorated.call(this, container, $container);
4072
+
4073
+ container.on('query', function (params) {
4074
+ self.lastParams = params;
4075
+ self.loading = true;
4076
+ });
4077
+
4078
+ container.on('query:append', function (params) {
4079
+ self.lastParams = params;
4080
+ self.loading = true;
4081
+ });
4082
+
4083
+ this.$results.on('scroll', function () {
4084
+ var isLoadMoreVisible = $.contains(
4085
+ document.documentElement,
4086
+ self.$loadingMore[0]
4087
+ );
4088
+
4089
+ if (self.loading || !isLoadMoreVisible) {
4090
+ return;
4091
+ }
4092
+
4093
+ var currentOffset = self.$results.offset().top +
4094
+ self.$results.outerHeight(false);
4095
+ var loadingMoreOffset = self.$loadingMore.offset().top +
4096
+ self.$loadingMore.outerHeight(false);
4097
+
4098
+ if (currentOffset + 50 >= loadingMoreOffset) {
4099
+ self.loadMore();
4100
+ }
4101
+ });
4102
+ };
4103
+
4104
+ InfiniteScroll.prototype.loadMore = function () {
4105
+ this.loading = true;
4106
+
4107
+ var params = $.extend({}, {page: 1}, this.lastParams);
4108
+
4109
+ params.page++;
4110
+
4111
+ this.trigger('query:append', params);
4112
+ };
4113
+
4114
+ InfiniteScroll.prototype.showLoadingMore = function (_, data) {
4115
+ return data.pagination && data.pagination.more;
4116
+ };
4117
+
4118
+ InfiniteScroll.prototype.createLoadingMore = function () {
4119
+ var $option = $(
4120
+ '<li ' +
4121
+ 'class="select2-results__option select2-results__option--load-more"' +
4122
+ 'role="treeitem" aria-disabled="true"></li>'
4123
+ );
4124
+
4125
+ var message = this.options.get('translations').get('loadingMore');
4126
+
4127
+ $option.html(message(this.lastParams));
4128
+
4129
+ return $option;
4130
+ };
4131
+
4132
+ return InfiniteScroll;
4133
+ });
4134
+
4135
+ S2.define('select2/dropdown/attachBody',[
4136
+ 'jquery',
4137
+ '../utils'
4138
+ ], function ($, Utils) {
4139
+ function AttachBody (decorated, $element, options) {
4140
+ this.$dropdownParent = options.get('dropdownParent') || $(document.body);
4141
+
4142
+ decorated.call(this, $element, options);
4143
+ }
4144
+
4145
+ AttachBody.prototype.bind = function (decorated, container, $container) {
4146
+ var self = this;
4147
+
4148
+ var setupResultsEvents = false;
4149
+
4150
+ decorated.call(this, container, $container);
4151
+
4152
+ container.on('open', function () {
4153
+ self._showDropdown();
4154
+ self._attachPositioningHandler(container);
4155
+
4156
+ if (!setupResultsEvents) {
4157
+ setupResultsEvents = true;
4158
+
4159
+ container.on('results:all', function () {
4160
+ self._positionDropdown();
4161
+ self._resizeDropdown();
4162
+ });
4163
+
4164
+ container.on('results:append', function () {
4165
+ self._positionDropdown();
4166
+ self._resizeDropdown();
4167
+ });
4168
+ }
4169
+ });
4170
+
4171
+ container.on('close', function () {
4172
+ self._hideDropdown();
4173
+ self._detachPositioningHandler(container);
4174
+ });
4175
+
4176
+ this.$dropdownContainer.on('mousedown', function (evt) {
4177
+ evt.stopPropagation();
4178
+ });
4179
+ };
4180
+
4181
+ AttachBody.prototype.destroy = function (decorated) {
4182
+ decorated.call(this);
4183
+
4184
+ this.$dropdownContainer.remove();
4185
+ };
4186
+
4187
+ AttachBody.prototype.position = function (decorated, $dropdown, $container) {
4188
+ // Clone all of the container classes
4189
+ $dropdown.attr('class', $container.attr('class'));
4190
+
4191
+ $dropdown.removeClass('select2');
4192
+ $dropdown.addClass('select2-container--open');
4193
+
4194
+ $dropdown.css({
4195
+ position: 'absolute',
4196
+ top: -999999
4197
+ });
4198
+
4199
+ this.$container = $container;
4200
+ };
4201
+
4202
+ AttachBody.prototype.render = function (decorated) {
4203
+ var $container = $('<span></span>');
4204
+
4205
+ var $dropdown = decorated.call(this);
4206
+ $container.append($dropdown);
4207
+
4208
+ this.$dropdownContainer = $container;
4209
+
4210
+ return $container;
4211
+ };
4212
+
4213
+ AttachBody.prototype._hideDropdown = function (decorated) {
4214
+ this.$dropdownContainer.detach();
4215
+ };
4216
+
4217
+ AttachBody.prototype._attachPositioningHandler =
4218
+ function (decorated, container) {
4219
+ var self = this;
4220
+
4221
+ var scrollEvent = 'scroll.select2.' + container.id;
4222
+ var resizeEvent = 'resize.select2.' + container.id;
4223
+ var orientationEvent = 'orientationchange.select2.' + container.id;
4224
+
4225
+ var $watchers = this.$container.parents().filter(Utils.hasScroll);
4226
+ $watchers.each(function () {
4227
+ $(this).data('select2-scroll-position', {
4228
+ x: $(this).scrollLeft(),
4229
+ y: $(this).scrollTop()
4230
+ });
4231
+ });
4232
+
4233
+ $watchers.on(scrollEvent, function (ev) {
4234
+ var position = $(this).data('select2-scroll-position');
4235
+ $(this).scrollTop(position.y);
4236
+ });
4237
+
4238
+ $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,
4239
+ function (e) {
4240
+ self._positionDropdown();
4241
+ self._resizeDropdown();
4242
+ });
4243
+ };
4244
+
4245
+ AttachBody.prototype._detachPositioningHandler =
4246
+ function (decorated, container) {
4247
+ var scrollEvent = 'scroll.select2.' + container.id;
4248
+ var resizeEvent = 'resize.select2.' + container.id;
4249
+ var orientationEvent = 'orientationchange.select2.' + container.id;
4250
+
4251
+ var $watchers = this.$container.parents().filter(Utils.hasScroll);
4252
+ $watchers.off(scrollEvent);
4253
+
4254
+ $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);
4255
+ };
4256
+
4257
+ AttachBody.prototype._positionDropdown = function () {
4258
+ var $window = $(window);
4259
+
4260
+ var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above');
4261
+ var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below');
4262
+
4263
+ var newDirection = null;
4264
+
4265
+ var offset = this.$container.offset();
4266
+
4267
+ offset.bottom = offset.top + this.$container.outerHeight(false);
4268
+
4269
+ var container = {
4270
+ height: this.$container.outerHeight(false)
4271
+ };
4272
+
4273
+ container.top = offset.top;
4274
+ container.bottom = offset.top + container.height;
4275
+
4276
+ var dropdown = {
4277
+ height: this.$dropdown.outerHeight(false)
4278
+ };
4279
+
4280
+ var viewport = {
4281
+ top: $window.scrollTop(),
4282
+ bottom: $window.scrollTop() + $window.height()
4283
+ };
4284
+
4285
+ var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);
4286
+ var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);
4287
+
4288
+ var css = {
4289
+ left: offset.left,
4290
+ top: container.bottom
4291
+ };
4292
+
4293
+ // Determine what the parent element is to use for calciulating the offset
4294
+ var $offsetParent = this.$dropdownParent;
4295
+
4296
+ // For statically positoned elements, we need to get the element
4297
+ // that is determining the offset
4298
+ if ($offsetParent.css('position') === 'static') {
4299
+ $offsetParent = $offsetParent.offsetParent();
4300
+ }
4301
+
4302
+ var parentOffset = $offsetParent.offset();
4303
+
4304
+ css.top -= parentOffset.top;
4305
+ css.left -= parentOffset.left;
4306
+
4307
+ if (!isCurrentlyAbove && !isCurrentlyBelow) {
4308
+ newDirection = 'below';
4309
+ }
4310
+
4311
+ if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {
4312
+ newDirection = 'above';
4313
+ } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {
4314
+ newDirection = 'below';
4315
+ }
4316
+
4317
+ if (newDirection == 'above' ||
4318
+ (isCurrentlyAbove && newDirection !== 'below')) {
4319
+ css.top = container.top - parentOffset.top - dropdown.height;
4320
+ }
4321
+
4322
+ if (newDirection != null) {
4323
+ this.$dropdown
4324
+ .removeClass('select2-dropdown--below select2-dropdown--above')
4325
+ .addClass('select2-dropdown--' + newDirection);
4326
+ this.$container
4327
+ .removeClass('select2-container--below select2-container--above')
4328
+ .addClass('select2-container--' + newDirection);
4329
+ }
4330
+
4331
+ this.$dropdownContainer.css(css);
4332
+ };
4333
+
4334
+ AttachBody.prototype._resizeDropdown = function () {
4335
+ var css = {
4336
+ width: this.$container.outerWidth(false) + 'px'
4337
+ };
4338
+
4339
+ if (this.options.get('dropdownAutoWidth')) {
4340
+ css.minWidth = css.width;
4341
+ css.position = 'relative';
4342
+ css.width = 'auto';
4343
+ }
4344
+
4345
+ this.$dropdown.css(css);
4346
+ };
4347
+
4348
+ AttachBody.prototype._showDropdown = function (decorated) {
4349
+ this.$dropdownContainer.appendTo(this.$dropdownParent);
4350
+
4351
+ this._positionDropdown();
4352
+ this._resizeDropdown();
4353
+ };
4354
+
4355
+ return AttachBody;
4356
+ });
4357
+
4358
+ S2.define('select2/dropdown/minimumResultsForSearch',[
4359
+
4360
+ ], function () {
4361
+ function countResults (data) {
4362
+ var count = 0;
4363
+
4364
+ for (var d = 0; d < data.length; d++) {
4365
+ var item = data[d];
4366
+
4367
+ if (item.children) {
4368
+ count += countResults(item.children);
4369
+ } else {
4370
+ count++;
4371
+ }
4372
+ }
4373
+
4374
+ return count;
4375
+ }
4376
+
4377
+ function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {
4378
+ this.minimumResultsForSearch = options.get('minimumResultsForSearch');
4379
+
4380
+ if (this.minimumResultsForSearch < 0) {
4381
+ this.minimumResultsForSearch = Infinity;
4382
+ }
4383
+
4384
+ decorated.call(this, $element, options, dataAdapter);
4385
+ }
4386
+
4387
+ MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {
4388
+ if (countResults(params.data.results) < this.minimumResultsForSearch) {
4389
+ return false;
4390
+ }
4391
+
4392
+ return decorated.call(this, params);
4393
+ };
4394
+
4395
+ return MinimumResultsForSearch;
4396
+ });
4397
+
4398
+ S2.define('select2/dropdown/selectOnClose',[
4399
+
4400
+ ], function () {
4401
+ function SelectOnClose () { }
4402
+
4403
+ SelectOnClose.prototype.bind = function (decorated, container, $container) {
4404
+ var self = this;
4405
+
4406
+ decorated.call(this, container, $container);
4407
+
4408
+ container.on('close', function (params) {
4409
+ self._handleSelectOnClose(params);
4410
+ });
4411
+ };
4412
+
4413
+ SelectOnClose.prototype._handleSelectOnClose = function (_, params) {
4414
+ if (params && params.originalSelect2Event != null) {
4415
+ var event = params.originalSelect2Event;
4416
+
4417
+ // Don't select an item if the close event was triggered from a select or
4418
+ // unselect event
4419
+ if (event._type === 'select' || event._type === 'unselect') {
4420
+ return;
4421
+ }
4422
+ }
4423
+
4424
+ var $highlightedResults = this.getHighlightedResults();
4425
+
4426
+ // Only select highlighted results
4427
+ if ($highlightedResults.length < 1) {
4428
+ return;
4429
+ }
4430
+
4431
+ var data = $highlightedResults.data('data');
4432
+
4433
+ // Don't re-select already selected resulte
4434
+ if (
4435
+ (data.element != null && data.element.selected) ||
4436
+ (data.element == null && data.selected)
4437
+ ) {
4438
+ return;
4439
+ }
4440
+
4441
+ this.trigger('select', {
4442
+ data: data
4443
+ });
4444
+ };
4445
+
4446
+ return SelectOnClose;
4447
+ });
4448
+
4449
+ S2.define('select2/dropdown/closeOnSelect',[
4450
+
4451
+ ], function () {
4452
+ function CloseOnSelect () { }
4453
+
4454
+ CloseOnSelect.prototype.bind = function (decorated, container, $container) {
4455
+ var self = this;
4456
+
4457
+ decorated.call(this, container, $container);
4458
+
4459
+ container.on('select', function (evt) {
4460
+ self._selectTriggered(evt);
4461
+ });
4462
+
4463
+ container.on('unselect', function (evt) {
4464
+ self._selectTriggered(evt);
4465
+ });
4466
+ };
4467
+
4468
+ CloseOnSelect.prototype._selectTriggered = function (_, evt) {
4469
+ var originalEvent = evt.originalEvent;
4470
+
4471
+ // Don't close if the control key is being held
4472
+ if (originalEvent && originalEvent.ctrlKey) {
4473
+ return;
4474
+ }
4475
+
4476
+ this.trigger('close', {
4477
+ originalEvent: originalEvent,
4478
+ originalSelect2Event: evt
4479
+ });
4480
+ };
4481
+
4482
+ return CloseOnSelect;
4483
+ });
4484
+
4485
+ S2.define('select2/i18n/en',[],function () {
4486
+ // English
4487
+ return {
4488
+ errorLoading: function () {
4489
+ return 'The results could not be loaded.';
4490
+ },
4491
+ inputTooLong: function (args) {
4492
+ var overChars = args.input.length - args.maximum;
4493
+
4494
+ var message = 'Please delete ' + overChars + ' character';
4495
+
4496
+ if (overChars != 1) {
4497
+ message += 's';
4498
+ }
4499
+
4500
+ return message;
4501
+ },
4502
+ inputTooShort: function (args) {
4503
+ var remainingChars = args.minimum - args.input.length;
4504
+
4505
+ var message = 'Please enter ' + remainingChars + ' or more characters';
4506
+
4507
+ return message;
4508
+ },
4509
+ loadingMore: function () {
4510
+ return 'Loading more results…';
4511
+ },
4512
+ maximumSelected: function (args) {
4513
+ var message = 'You can only select ' + args.maximum + ' item';
4514
+
4515
+ if (args.maximum != 1) {
4516
+ message += 's';
4517
+ }
4518
+
4519
+ return message;
4520
+ },
4521
+ noResults: function () {
4522
+ return 'No results found';
4523
+ },
4524
+ searching: function () {
4525
+ return 'Searching…';
4526
+ }
4527
+ };
4528
+ });
4529
+
4530
+ S2.define('select2/defaults',[
4531
+ 'jquery',
4532
+ 'require',
4533
+
4534
+ './results',
4535
+
4536
+ './selection/single',
4537
+ './selection/multiple',
4538
+ './selection/placeholder',
4539
+ './selection/allowClear',
4540
+ './selection/search',
4541
+ './selection/eventRelay',
4542
+
4543
+ './utils',
4544
+ './translation',
4545
+ './diacritics',
4546
+
4547
+ './data/select',
4548
+ './data/array',
4549
+ './data/ajax',
4550
+ './data/tags',
4551
+ './data/tokenizer',
4552
+ './data/minimumInputLength',
4553
+ './data/maximumInputLength',
4554
+ './data/maximumSelectionLength',
4555
+
4556
+ './dropdown',
4557
+ './dropdown/search',
4558
+ './dropdown/hidePlaceholder',
4559
+ './dropdown/infiniteScroll',
4560
+ './dropdown/attachBody',
4561
+ './dropdown/minimumResultsForSearch',
4562
+ './dropdown/selectOnClose',
4563
+ './dropdown/closeOnSelect',
4564
+
4565
+ './i18n/en'
4566
+ ], function ($, require,
4567
+
4568
+ ResultsList,
4569
+
4570
+ SingleSelection, MultipleSelection, Placeholder, AllowClear,
4571
+ SelectionSearch, EventRelay,
4572
+
4573
+ Utils, Translation, DIACRITICS,
4574
+
4575
+ SelectData, ArrayData, AjaxData, Tags, Tokenizer,
4576
+ MinimumInputLength, MaximumInputLength, MaximumSelectionLength,
4577
+
4578
+ Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,
4579
+ AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,
4580
+
4581
+ EnglishTranslation) {
4582
+ function Defaults () {
4583
+ this.reset();
4584
+ }
4585
+
4586
+ Defaults.prototype.apply = function (options) {
4587
+ options = $.extend(true, {}, this.defaults, options);
4588
+
4589
+ if (options.dataAdapter == null) {
4590
+ if (options.ajax != null) {
4591
+ options.dataAdapter = AjaxData;
4592
+ } else if (options.data != null) {
4593
+ options.dataAdapter = ArrayData;
4594
+ } else {
4595
+ options.dataAdapter = SelectData;
4596
+ }
4597
+
4598
+ if (options.minimumInputLength > 0) {
4599
+ options.dataAdapter = Utils.Decorate(
4600
+ options.dataAdapter,
4601
+ MinimumInputLength
4602
+ );
4603
+ }
4604
+
4605
+ if (options.maximumInputLength > 0) {
4606
+ options.dataAdapter = Utils.Decorate(
4607
+ options.dataAdapter,
4608
+ MaximumInputLength
4609
+ );
4610
+ }
4611
+
4612
+ if (options.maximumSelectionLength > 0) {
4613
+ options.dataAdapter = Utils.Decorate(
4614
+ options.dataAdapter,
4615
+ MaximumSelectionLength
4616
+ );
4617
+ }
4618
+
4619
+ if (options.tags) {
4620
+ options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);
4621
+ }
4622
+
4623
+ if (options.tokenSeparators != null || options.tokenizer != null) {
4624
+ options.dataAdapter = Utils.Decorate(
4625
+ options.dataAdapter,
4626
+ Tokenizer
4627
+ );
4628
+ }
4629
+
4630
+ if (options.query != null) {
4631
+ var Query = require(options.amdBase + 'compat/query');
4632
+
4633
+ options.dataAdapter = Utils.Decorate(
4634
+ options.dataAdapter,
4635
+ Query
4636
+ );
4637
+ }
4638
+
4639
+ if (options.initSelection != null) {
4640
+ var InitSelection = require(options.amdBase + 'compat/initSelection');
4641
+
4642
+ options.dataAdapter = Utils.Decorate(
4643
+ options.dataAdapter,
4644
+ InitSelection
4645
+ );
4646
+ }
4647
+ }
4648
+
4649
+ if (options.resultsAdapter == null) {
4650
+ options.resultsAdapter = ResultsList;
4651
+
4652
+ if (options.ajax != null) {
4653
+ options.resultsAdapter = Utils.Decorate(
4654
+ options.resultsAdapter,
4655
+ InfiniteScroll
4656
+ );
4657
+ }
4658
+
4659
+ if (options.placeholder != null) {
4660
+ options.resultsAdapter = Utils.Decorate(
4661
+ options.resultsAdapter,
4662
+ HidePlaceholder
4663
+ );
4664
+ }
4665
+
4666
+ if (options.selectOnClose) {
4667
+ options.resultsAdapter = Utils.Decorate(
4668
+ options.resultsAdapter,
4669
+ SelectOnClose
4670
+ );
4671
+ }
4672
+ }
4673
+
4674
+ if (options.dropdownAdapter == null) {
4675
+ if (options.multiple) {
4676
+ options.dropdownAdapter = Dropdown;
4677
+ } else {
4678
+ var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);
4679
+
4680
+ options.dropdownAdapter = SearchableDropdown;
4681
+ }
4682
+
4683
+ if (options.minimumResultsForSearch !== 0) {
4684
+ options.dropdownAdapter = Utils.Decorate(
4685
+ options.dropdownAdapter,
4686
+ MinimumResultsForSearch
4687
+ );
4688
+ }
4689
+
4690
+ if (options.closeOnSelect) {
4691
+ options.dropdownAdapter = Utils.Decorate(
4692
+ options.dropdownAdapter,
4693
+ CloseOnSelect
4694
+ );
4695
+ }
4696
+
4697
+ if (
4698
+ options.dropdownCssClass != null ||
4699
+ options.dropdownCss != null ||
4700
+ options.adaptDropdownCssClass != null
4701
+ ) {
4702
+ var DropdownCSS = require(options.amdBase + 'compat/dropdownCss');
4703
+
4704
+ options.dropdownAdapter = Utils.Decorate(
4705
+ options.dropdownAdapter,
4706
+ DropdownCSS
4707
+ );
4708
+ }
4709
+
4710
+ options.dropdownAdapter = Utils.Decorate(
4711
+ options.dropdownAdapter,
4712
+ AttachBody
4713
+ );
4714
+ }
4715
+
4716
+ if (options.selectionAdapter == null) {
4717
+ if (options.multiple) {
4718
+ options.selectionAdapter = MultipleSelection;
4719
+ } else {
4720
+ options.selectionAdapter = SingleSelection;
4721
+ }
4722
+
4723
+ // Add the placeholder mixin if a placeholder was specified
4724
+ if (options.placeholder != null) {
4725
+ options.selectionAdapter = Utils.Decorate(
4726
+ options.selectionAdapter,
4727
+ Placeholder
4728
+ );
4729
+ }
4730
+
4731
+ if (options.allowClear) {
4732
+ options.selectionAdapter = Utils.Decorate(
4733
+ options.selectionAdapter,
4734
+ AllowClear
4735
+ );
4736
+ }
4737
+
4738
+ if (options.multiple) {
4739
+ options.selectionAdapter = Utils.Decorate(
4740
+ options.selectionAdapter,
4741
+ SelectionSearch
4742
+ );
4743
+ }
4744
+
4745
+ if (
4746
+ options.containerCssClass != null ||
4747
+ options.containerCss != null ||
4748
+ options.adaptContainerCssClass != null
4749
+ ) {
4750
+ var ContainerCSS = require(options.amdBase + 'compat/containerCss');
4751
+
4752
+ options.selectionAdapter = Utils.Decorate(
4753
+ options.selectionAdapter,
4754
+ ContainerCSS
4755
+ );
4756
+ }
4757
+
4758
+ options.selectionAdapter = Utils.Decorate(
4759
+ options.selectionAdapter,
4760
+ EventRelay
4761
+ );
4762
+ }
4763
+
4764
+ if (typeof options.language === 'string') {
4765
+ // Check if the language is specified with a region
4766
+ if (options.language.indexOf('-') > 0) {
4767
+ // Extract the region information if it is included
4768
+ var languageParts = options.language.split('-');
4769
+ var baseLanguage = languageParts[0];
4770
+
4771
+ options.language = [options.language, baseLanguage];
4772
+ } else {
4773
+ options.language = [options.language];
4774
+ }
4775
+ }
4776
+
4777
+ if ($.isArray(options.language)) {
4778
+ var languages = new Translation();
4779
+ options.language.push('en');
4780
+
4781
+ var languageNames = options.language;
4782
+
4783
+ for (var l = 0; l < languageNames.length; l++) {
4784
+ var name = languageNames[l];
4785
+ var language = {};
4786
+
4787
+ try {
4788
+ // Try to load it with the original name
4789
+ language = Translation.loadPath(name);
4790
+ } catch (e) {
4791
+ try {
4792
+ // If we couldn't load it, check if it wasn't the full path
4793
+ name = this.defaults.amdLanguageBase + name;
4794
+ language = Translation.loadPath(name);
4795
+ } catch (ex) {
4796
+ // The translation could not be loaded at all. Sometimes this is
4797
+ // because of a configuration problem, other times this can be
4798
+ // because of how Select2 helps load all possible translation files.
4799
+ if (options.debug && window.console && console.warn) {
4800
+ console.warn(
4801
+ 'Select2: The language file for "' + name + '" could not be ' +
4802
+ 'automatically loaded. A fallback will be used instead.'
4803
+ );
4804
+ }
4805
+
4806
+ continue;
4807
+ }
4808
+ }
4809
+
4810
+ languages.extend(language);
4811
+ }
4812
+
4813
+ options.translations = languages;
4814
+ } else {
4815
+ var baseTranslation = Translation.loadPath(
4816
+ this.defaults.amdLanguageBase + 'en'
4817
+ );
4818
+ var customTranslation = new Translation(options.language);
4819
+
4820
+ customTranslation.extend(baseTranslation);
4821
+
4822
+ options.translations = customTranslation;
4823
+ }
4824
+
4825
+ return options;
4826
+ };
4827
+
4828
+ Defaults.prototype.reset = function () {
4829
+ function stripDiacritics (text) {
4830
+ // Used 'uni range + named function' from http://jsperf.com/diacritics/18
4831
+ function match(a) {
4832
+ return DIACRITICS[a] || a;
4833
+ }
4834
+
4835
+ return text.replace(/[^\u0000-\u007E]/g, match);
4836
+ }
4837
+
4838
+ function matcher (params, data) {
4839
+ // Always return the object if there is nothing to compare
4840
+ if ($.trim(params.term) === '') {
4841
+ return data;
4842
+ }
4843
+
4844
+ // Do a recursive check for options with children
4845
+ if (data.children && data.children.length > 0) {
4846
+ // Clone the data object if there are children
4847
+ // This is required as we modify the object to remove any non-matches
4848
+ var match = $.extend(true, {}, data);
4849
+
4850
+ // Check each child of the option
4851
+ for (var c = data.children.length - 1; c >= 0; c--) {
4852
+ var child = data.children[c];
4853
+
4854
+ var matches = matcher(params, child);
4855
+
4856
+ // If there wasn't a match, remove the object in the array
4857
+ if (matches == null) {
4858
+ match.children.splice(c, 1);
4859
+ }
4860
+ }
4861
+
4862
+ // If any children matched, return the new object
4863
+ if (match.children.length > 0) {
4864
+ return match;
4865
+ }
4866
+
4867
+ // If there were no matching children, check just the plain object
4868
+ return matcher(params, match);
4869
+ }
4870
+
4871
+ var original = stripDiacritics(data.text).toUpperCase();
4872
+ var term = stripDiacritics(params.term).toUpperCase();
4873
+
4874
+ // Check if the text contains the term
4875
+ if (original.indexOf(term) > -1) {
4876
+ return data;
4877
+ }
4878
+
4879
+ // If it doesn't contain the term, don't return anything
4880
+ return null;
4881
+ }
4882
+
4883
+ this.defaults = {
4884
+ amdBase: './',
4885
+ amdLanguageBase: './i18n/',
4886
+ closeOnSelect: true,
4887
+ debug: false,
4888
+ dropdownAutoWidth: false,
4889
+ escapeMarkup: Utils.escapeMarkup,
4890
+ language: EnglishTranslation,
4891
+ matcher: matcher,
4892
+ minimumInputLength: 0,
4893
+ maximumInputLength: 0,
4894
+ maximumSelectionLength: 0,
4895
+ minimumResultsForSearch: 0,
4896
+ selectOnClose: false,
4897
+ sorter: function (data) {
4898
+ return data;
4899
+ },
4900
+ templateResult: function (result) {
4901
+ return result.text;
4902
+ },
4903
+ templateSelection: function (selection) {
4904
+ return selection.text;
4905
+ },
4906
+ theme: 'default',
4907
+ width: 'resolve'
4908
+ };
4909
+ };
4910
+
4911
+ Defaults.prototype.set = function (key, value) {
4912
+ var camelKey = $.camelCase(key);
4913
+
4914
+ var data = {};
4915
+ data[camelKey] = value;
4916
+
4917
+ var convertedData = Utils._convertData(data);
4918
+
4919
+ $.extend(this.defaults, convertedData);
4920
+ };
4921
+
4922
+ var defaults = new Defaults();
4923
+
4924
+ return defaults;
4925
+ });
4926
+
4927
+ S2.define('select2/options',[
4928
+ 'require',
4929
+ 'jquery',
4930
+ './defaults',
4931
+ './utils'
4932
+ ], function (require, $, Defaults, Utils) {
4933
+ function Options (options, $element) {
4934
+ this.options = options;
4935
+
4936
+ if ($element != null) {
4937
+ this.fromElement($element);
4938
+ }
4939
+
4940
+ this.options = Defaults.apply(this.options);
4941
+
4942
+ if ($element && $element.is('input')) {
4943
+ var InputCompat = require(this.get('amdBase') + 'compat/inputData');
4944
+
4945
+ this.options.dataAdapter = Utils.Decorate(
4946
+ this.options.dataAdapter,
4947
+ InputCompat
4948
+ );
4949
+ }
4950
+ }
4951
+
4952
+ Options.prototype.fromElement = function ($e) {
4953
+ var excludedData = ['select2'];
4954
+
4955
+ if (this.options.multiple == null) {
4956
+ this.options.multiple = $e.prop('multiple');
4957
+ }
4958
+
4959
+ if (this.options.disabled == null) {
4960
+ this.options.disabled = $e.prop('disabled');
4961
+ }
4962
+
4963
+ if (this.options.language == null) {
4964
+ if ($e.prop('lang')) {
4965
+ this.options.language = $e.prop('lang').toLowerCase();
4966
+ } else if ($e.closest('[lang]').prop('lang')) {
4967
+ this.options.language = $e.closest('[lang]').prop('lang');
4968
+ }
4969
+ }
4970
+
4971
+ if (this.options.dir == null) {
4972
+ if ($e.prop('dir')) {
4973
+ this.options.dir = $e.prop('dir');
4974
+ } else if ($e.closest('[dir]').prop('dir')) {
4975
+ this.options.dir = $e.closest('[dir]').prop('dir');
4976
+ } else {
4977
+ this.options.dir = 'ltr';
4978
+ }
4979
+ }
4980
+
4981
+ $e.prop('disabled', this.options.disabled);
4982
+ $e.prop('multiple', this.options.multiple);
4983
+
4984
+ if ($e.data('select2Tags')) {
4985
+ if (this.options.debug && window.console && console.warn) {
4986
+ console.warn(
4987
+ 'Select2: The `data-select2-tags` attribute has been changed to ' +
4988
+ 'use the `data-data` and `data-tags="true"` attributes and will be ' +
4989
+ 'removed in future versions of Select2.'
4990
+ );
4991
+ }
4992
+
4993
+ $e.data('data', $e.data('select2Tags'));
4994
+ $e.data('tags', true);
4995
+ }
4996
+
4997
+ if ($e.data('ajaxUrl')) {
4998
+ if (this.options.debug && window.console && console.warn) {
4999
+ console.warn(
5000
+ 'Select2: The `data-ajax-url` attribute has been changed to ' +
5001
+ '`data-ajax--url` and support for the old attribute will be removed' +
5002
+ ' in future versions of Select2.'
5003
+ );
5004
+ }
5005
+
5006
+ $e.attr('ajax--url', $e.data('ajaxUrl'));
5007
+ $e.data('ajax--url', $e.data('ajaxUrl'));
5008
+ }
5009
+
5010
+ var dataset = {};
5011
+
5012
+ // Prefer the element's `dataset` attribute if it exists
5013
+ // jQuery 1.x does not correctly handle data attributes with multiple dashes
5014
+ if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {
5015
+ dataset = $.extend(true, {}, $e[0].dataset, $e.data());
5016
+ } else {
5017
+ dataset = $e.data();
5018
+ }
5019
+
5020
+ var data = $.extend(true, {}, dataset);
5021
+
5022
+ data = Utils._convertData(data);
5023
+
5024
+ for (var key in data) {
5025
+ if ($.inArray(key, excludedData) > -1) {
5026
+ continue;
5027
+ }
5028
+
5029
+ if ($.isPlainObject(this.options[key])) {
5030
+ $.extend(this.options[key], data[key]);
5031
+ } else {
5032
+ this.options[key] = data[key];
5033
+ }
5034
+ }
5035
+
5036
+ return this;
5037
+ };
5038
+
5039
+ Options.prototype.get = function (key) {
5040
+ return this.options[key];
5041
+ };
5042
+
5043
+ Options.prototype.set = function (key, val) {
5044
+ this.options[key] = val;
5045
+ };
5046
+
5047
+ return Options;
5048
+ });
5049
+
5050
+ S2.define('select2/core',[
5051
+ 'jquery',
5052
+ './options',
5053
+ './utils',
5054
+ './keys'
5055
+ ], function ($, Options, Utils, KEYS) {
5056
+ var Select2 = function ($element, options) {
5057
+ if ($element.data('select2') != null) {
5058
+ $element.data('select2').destroy();
5059
+ }
5060
+
5061
+ this.$element = $element;
5062
+
5063
+ this.id = this._generateId($element);
5064
+
5065
+ options = options || {};
5066
+
5067
+ this.options = new Options(options, $element);
5068
+
5069
+ Select2.__super__.constructor.call(this);
5070
+
5071
+ // Set up the tabindex
5072
+
5073
+ var tabindex = $element.attr('tabindex') || 0;
5074
+ $element.data('old-tabindex', tabindex);
5075
+ $element.attr('tabindex', '-1');
5076
+
5077
+ // Set up containers and adapters
5078
+
5079
+ var DataAdapter = this.options.get('dataAdapter');
5080
+ this.dataAdapter = new DataAdapter($element, this.options);
5081
+
5082
+ var $container = this.render();
5083
+
5084
+ this._placeContainer($container);
5085
+
5086
+ var SelectionAdapter = this.options.get('selectionAdapter');
5087
+ this.selection = new SelectionAdapter($element, this.options);
5088
+ this.$selection = this.selection.render();
5089
+
5090
+ this.selection.position(this.$selection, $container);
5091
+
5092
+ var DropdownAdapter = this.options.get('dropdownAdapter');
5093
+ this.dropdown = new DropdownAdapter($element, this.options);
5094
+ this.$dropdown = this.dropdown.render();
5095
+
5096
+ this.dropdown.position(this.$dropdown, $container);
5097
+
5098
+ var ResultsAdapter = this.options.get('resultsAdapter');
5099
+ this.results = new ResultsAdapter($element, this.options, this.dataAdapter);
5100
+ this.$results = this.results.render();
5101
+
5102
+ this.results.position(this.$results, this.$dropdown);
5103
+
5104
+ // Bind events
5105
+
5106
+ var self = this;
5107
+
5108
+ // Bind the container to all of the adapters
5109
+ this._bindAdapters();
5110
+
5111
+ // Register any DOM event handlers
5112
+ this._registerDomEvents();
5113
+
5114
+ // Register any internal event handlers
5115
+ this._registerDataEvents();
5116
+ this._registerSelectionEvents();
5117
+ this._registerDropdownEvents();
5118
+ this._registerResultsEvents();
5119
+ this._registerEvents();
5120
+
5121
+ // Set the initial state
5122
+ this.dataAdapter.current(function (initialData) {
5123
+ self.trigger('selection:update', {
5124
+ data: initialData
5125
+ });
5126
+ });
5127
+
5128
+ // Hide the original select
5129
+ $element.addClass('select2-hidden-accessible');
5130
+ $element.attr('aria-hidden', 'true');
5131
+
5132
+ // Synchronize any monitored attributes
5133
+ this._syncAttributes();
5134
+
5135
+ $element.data('select2', this);
5136
+ };
5137
+
5138
+ Utils.Extend(Select2, Utils.Observable);
5139
+
5140
+ Select2.prototype._generateId = function ($element) {
5141
+ var id = '';
5142
+
5143
+ if ($element.attr('id') != null) {
5144
+ id = $element.attr('id');
5145
+ } else if ($element.attr('name') != null) {
5146
+ id = $element.attr('name') + '-' + Utils.generateChars(2);
5147
+ } else {
5148
+ id = Utils.generateChars(4);
5149
+ }
5150
+
5151
+ id = id.replace(/(:|\.|\[|\]|,)/g, '');
5152
+ id = 'select2-' + id;
5153
+
5154
+ return id;
5155
+ };
5156
+
5157
+ Select2.prototype._placeContainer = function ($container) {
5158
+ $container.insertAfter(this.$element);
5159
+
5160
+ var width = this._resolveWidth(this.$element, this.options.get('width'));
5161
+
5162
+ if (width != null) {
5163
+ $container.css('width', width);
5164
+ }
5165
+ };
5166
+
5167
+ Select2.prototype._resolveWidth = function ($element, method) {
5168
+ var WIDTH = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;
5169
+
5170
+ if (method == 'resolve') {
5171
+ var styleWidth = this._resolveWidth($element, 'style');
5172
+
5173
+ if (styleWidth != null) {
5174
+ return styleWidth;
5175
+ }
5176
+
5177
+ return this._resolveWidth($element, 'element');
5178
+ }
5179
+
5180
+ if (method == 'element') {
5181
+ var elementWidth = $element.outerWidth(false);
5182
+
5183
+ if (elementWidth <= 0) {
5184
+ return 'auto';
5185
+ }
5186
+
5187
+ return elementWidth + 'px';
5188
+ }
5189
+
5190
+ if (method == 'style') {
5191
+ var style = $element.attr('style');
5192
+
5193
+ if (typeof(style) !== 'string') {
5194
+ return null;
5195
+ }
5196
+
5197
+ var attrs = style.split(';');
5198
+
5199
+ for (var i = 0, l = attrs.length; i < l; i = i + 1) {
5200
+ var attr = attrs[i].replace(/\s/g, '');
5201
+ var matches = attr.match(WIDTH);
5202
+
5203
+ if (matches !== null && matches.length >= 1) {
5204
+ return matches[1];
5205
+ }
5206
+ }
5207
+
5208
+ return null;
5209
+ }
5210
+
5211
+ return method;
5212
+ };
5213
+
5214
+ Select2.prototype._bindAdapters = function () {
5215
+ this.dataAdapter.bind(this, this.$container);
5216
+ this.selection.bind(this, this.$container);
5217
+
5218
+ this.dropdown.bind(this, this.$container);
5219
+ this.results.bind(this, this.$container);
5220
+ };
5221
+
5222
+ Select2.prototype._registerDomEvents = function () {
5223
+ var self = this;
5224
+
5225
+ this.$element.on('change.select2', function () {
5226
+ self.dataAdapter.current(function (data) {
5227
+ self.trigger('selection:update', {
5228
+ data: data
5229
+ });
5230
+ });
5231
+ });
5232
+
5233
+ this.$element.on('focus.select2', function (evt) {
5234
+ self.trigger('focus', evt);
5235
+ });
5236
+
5237
+ this._syncA = Utils.bind(this._syncAttributes, this);
5238
+ this._syncS = Utils.bind(this._syncSubtree, this);
5239
+
5240
+ if (this.$element[0].attachEvent) {
5241
+ this.$element[0].attachEvent('onpropertychange', this._syncA);
5242
+ }
5243
+
5244
+ var observer = window.MutationObserver ||
5245
+ window.WebKitMutationObserver ||
5246
+ window.MozMutationObserver
5247
+ ;
5248
+
5249
+ if (observer != null) {
5250
+ this._observer = new observer(function (mutations) {
5251
+ $.each(mutations, self._syncA);
5252
+ $.each(mutations, self._syncS);
5253
+ });
5254
+ this._observer.observe(this.$element[0], {
5255
+ attributes: true,
5256
+ childList: true,
5257
+ subtree: false
5258
+ });
5259
+ } else if (this.$element[0].addEventListener) {
5260
+ this.$element[0].addEventListener(
5261
+ 'DOMAttrModified',
5262
+ self._syncA,
5263
+ false
5264
+ );
5265
+ this.$element[0].addEventListener(
5266
+ 'DOMNodeInserted',
5267
+ self._syncS,
5268
+ false
5269
+ );
5270
+ this.$element[0].addEventListener(
5271
+ 'DOMNodeRemoved',
5272
+ self._syncS,
5273
+ false
5274
+ );
5275
+ }
5276
+ };
5277
+
5278
+ Select2.prototype._registerDataEvents = function () {
5279
+ var self = this;
5280
+
5281
+ this.dataAdapter.on('*', function (name, params) {
5282
+ self.trigger(name, params);
5283
+ });
5284
+ };
5285
+
5286
+ Select2.prototype._registerSelectionEvents = function () {
5287
+ var self = this;
5288
+ var nonRelayEvents = ['toggle', 'focus'];
5289
+
5290
+ this.selection.on('toggle', function () {
5291
+ self.toggleDropdown();
5292
+ });
5293
+
5294
+ this.selection.on('focus', function (params) {
5295
+ self.focus(params);
5296
+ });
5297
+
5298
+ this.selection.on('*', function (name, params) {
5299
+ if ($.inArray(name, nonRelayEvents) !== -1) {
5300
+ return;
5301
+ }
5302
+
5303
+ self.trigger(name, params);
5304
+ });
5305
+ };
5306
+
5307
+ Select2.prototype._registerDropdownEvents = function () {
5308
+ var self = this;
5309
+
5310
+ this.dropdown.on('*', function (name, params) {
5311
+ self.trigger(name, params);
5312
+ });
5313
+ };
5314
+
5315
+ Select2.prototype._registerResultsEvents = function () {
5316
+ var self = this;
5317
+
5318
+ this.results.on('*', function (name, params) {
5319
+ self.trigger(name, params);
5320
+ });
5321
+ };
5322
+
5323
+ Select2.prototype._registerEvents = function () {
5324
+ var self = this;
5325
+
5326
+ this.on('open', function () {
5327
+ self.$container.addClass('select2-container--open');
5328
+ });
5329
+
5330
+ this.on('close', function () {
5331
+ self.$container.removeClass('select2-container--open');
5332
+ });
5333
+
5334
+ this.on('enable', function () {
5335
+ self.$container.removeClass('select2-container--disabled');
5336
+ });
5337
+
5338
+ this.on('disable', function () {
5339
+ self.$container.addClass('select2-container--disabled');
5340
+ });
5341
+
5342
+ this.on('blur', function () {
5343
+ self.$container.removeClass('select2-container--focus');
5344
+ });
5345
+
5346
+ this.on('query', function (params) {
5347
+ if (!self.isOpen()) {
5348
+ self.trigger('open', {});
5349
+ }
5350
+
5351
+ this.dataAdapter.query(params, function (data) {
5352
+ self.trigger('results:all', {
5353
+ data: data,
5354
+ query: params
5355
+ });
5356
+ });
5357
+ });
5358
+
5359
+ this.on('query:append', function (params) {
5360
+ this.dataAdapter.query(params, function (data) {
5361
+ self.trigger('results:append', {
5362
+ data: data,
5363
+ query: params
5364
+ });
5365
+ });
5366
+ });
5367
+
5368
+ this.on('keypress', function (evt) {
5369
+ var key = evt.which;
5370
+
5371
+ if (self.isOpen()) {
5372
+ if (key === KEYS.ESC || key === KEYS.TAB ||
5373
+ (key === KEYS.UP && evt.altKey)) {
5374
+ self.close();
5375
+
5376
+ evt.preventDefault();
5377
+ } else if (key === KEYS.ENTER) {
5378
+ self.trigger('results:select', {});
5379
+
5380
+ evt.preventDefault();
5381
+ } else if ((key === KEYS.SPACE && evt.ctrlKey)) {
5382
+ self.trigger('results:toggle', {});
5383
+
5384
+ evt.preventDefault();
5385
+ } else if (key === KEYS.UP) {
5386
+ self.trigger('results:previous', {});
5387
+
5388
+ evt.preventDefault();
5389
+ } else if (key === KEYS.DOWN) {
5390
+ self.trigger('results:next', {});
5391
+
5392
+ evt.preventDefault();
5393
+ }
5394
+ } else {
5395
+ if (key === KEYS.ENTER || key === KEYS.SPACE ||
5396
+ (key === KEYS.DOWN && evt.altKey)) {
5397
+ self.open();
5398
+
5399
+ evt.preventDefault();
5400
+ }
5401
+ }
5402
+ });
5403
+ };
5404
+
5405
+ Select2.prototype._syncAttributes = function () {
5406
+ this.options.set('disabled', this.$element.prop('disabled'));
5407
+
5408
+ if (this.options.get('disabled')) {
5409
+ if (this.isOpen()) {
5410
+ this.close();
5411
+ }
5412
+
5413
+ this.trigger('disable', {});
5414
+ } else {
5415
+ this.trigger('enable', {});
5416
+ }
5417
+ };
5418
+
5419
+ Select2.prototype._syncSubtree = function (evt, mutations) {
5420
+ var changed = false;
5421
+ var self = this;
5422
+
5423
+ // Ignore any mutation events raised for elements that aren't options or
5424
+ // optgroups. This handles the case when the select element is destroyed
5425
+ if (
5426
+ evt && evt.target && (
5427
+ evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP'
5428
+ )
5429
+ ) {
5430
+ return;
5431
+ }
5432
+
5433
+ if (!mutations) {
5434
+ // If mutation events aren't supported, then we can only assume that the
5435
+ // change affected the selections
5436
+ changed = true;
5437
+ } else if (mutations.addedNodes && mutations.addedNodes.length > 0) {
5438
+ for (var n = 0; n < mutations.addedNodes.length; n++) {
5439
+ var node = mutations.addedNodes[n];
5440
+
5441
+ if (node.selected) {
5442
+ changed = true;
5443
+ }
5444
+ }
5445
+ } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {
5446
+ changed = true;
5447
+ }
5448
+
5449
+ // Only re-pull the data if we think there is a change
5450
+ if (changed) {
5451
+ this.dataAdapter.current(function (currentData) {
5452
+ self.trigger('selection:update', {
5453
+ data: currentData
5454
+ });
5455
+ });
5456
+ }
5457
+ };
5458
+
5459
+ /**
5460
+ * Override the trigger method to automatically trigger pre-events when
5461
+ * there are events that can be prevented.
5462
+ */
5463
+ Select2.prototype.trigger = function (name, args) {
5464
+ var actualTrigger = Select2.__super__.trigger;
5465
+ var preTriggerMap = {
5466
+ 'open': 'opening',
5467
+ 'close': 'closing',
5468
+ 'select': 'selecting',
5469
+ 'unselect': 'unselecting'
5470
+ };
5471
+
5472
+ if (args === undefined) {
5473
+ args = {};
5474
+ }
5475
+
5476
+ if (name in preTriggerMap) {
5477
+ var preTriggerName = preTriggerMap[name];
5478
+ var preTriggerArgs = {
5479
+ prevented: false,
5480
+ name: name,
5481
+ args: args
5482
+ };
5483
+
5484
+ actualTrigger.call(this, preTriggerName, preTriggerArgs);
5485
+
5486
+ if (preTriggerArgs.prevented) {
5487
+ args.prevented = true;
5488
+
5489
+ return;
5490
+ }
5491
+ }
5492
+
5493
+ actualTrigger.call(this, name, args);
5494
+ };
5495
+
5496
+ Select2.prototype.toggleDropdown = function () {
5497
+ if (this.options.get('disabled')) {
5498
+ return;
5499
+ }
5500
+
5501
+ if (this.isOpen()) {
5502
+ this.close();
5503
+ } else {
5504
+ this.open();
5505
+ }
5506
+ };
5507
+
5508
+ Select2.prototype.open = function () {
5509
+ if (this.isOpen()) {
5510
+ return;
5511
+ }
5512
+
5513
+ this.trigger('query', {});
5514
+ };
5515
+
5516
+ Select2.prototype.close = function () {
5517
+ if (!this.isOpen()) {
5518
+ return;
5519
+ }
5520
+
5521
+ this.trigger('close', {});
5522
+ };
5523
+
5524
+ Select2.prototype.isOpen = function () {
5525
+ return this.$container.hasClass('select2-container--open');
5526
+ };
5527
+
5528
+ Select2.prototype.hasFocus = function () {
5529
+ return this.$container.hasClass('select2-container--focus');
5530
+ };
5531
+
5532
+ Select2.prototype.focus = function (data) {
5533
+ // No need to re-trigger focus events if we are already focused
5534
+ if (this.hasFocus()) {
5535
+ return;
5536
+ }
5537
+
5538
+ this.$container.addClass('select2-container--focus');
5539
+ this.trigger('focus', {});
5540
+ };
5541
+
5542
+ Select2.prototype.enable = function (args) {
5543
+ if (this.options.get('debug') && window.console && console.warn) {
5544
+ console.warn(
5545
+ 'Select2: The `select2("enable")` method has been deprecated and will' +
5546
+ ' be removed in later Select2 versions. Use $element.prop("disabled")' +
5547
+ ' instead.'
5548
+ );
5549
+ }
5550
+
5551
+ if (args == null || args.length === 0) {
5552
+ args = [true];
5553
+ }
5554
+
5555
+ var disabled = !args[0];
5556
+
5557
+ this.$element.prop('disabled', disabled);
5558
+ };
5559
+
5560
+ Select2.prototype.data = function () {
5561
+ if (this.options.get('debug') &&
5562
+ arguments.length > 0 && window.console && console.warn) {
5563
+ console.warn(
5564
+ 'Select2: Data can no longer be set using `select2("data")`. You ' +
5565
+ 'should consider setting the value instead using `$element.val()`.'
5566
+ );
5567
+ }
5568
+
5569
+ var data = [];
5570
+
5571
+ this.dataAdapter.current(function (currentData) {
5572
+ data = currentData;
5573
+ });
5574
+
5575
+ return data;
5576
+ };
5577
+
5578
+ Select2.prototype.val = function (args) {
5579
+ if (this.options.get('debug') && window.console && console.warn) {
5580
+ console.warn(
5581
+ 'Select2: The `select2("val")` method has been deprecated and will be' +
5582
+ ' removed in later Select2 versions. Use $element.val() instead.'
5583
+ );
5584
+ }
5585
+
5586
+ if (args == null || args.length === 0) {
5587
+ return this.$element.val();
5588
+ }
5589
+
5590
+ var newVal = args[0];
5591
+
5592
+ if ($.isArray(newVal)) {
5593
+ newVal = $.map(newVal, function (obj) {
5594
+ return obj.toString();
5595
+ });
5596
+ }
5597
+
5598
+ this.$element.val(newVal).trigger('change');
5599
+ };
5600
+
5601
+ Select2.prototype.destroy = function () {
5602
+ this.$container.remove();
5603
+
5604
+ if (this.$element[0].detachEvent) {
5605
+ this.$element[0].detachEvent('onpropertychange', this._syncA);
5606
+ }
5607
+
5608
+ if (this._observer != null) {
5609
+ this._observer.disconnect();
5610
+ this._observer = null;
5611
+ } else if (this.$element[0].removeEventListener) {
5612
+ this.$element[0]
5613
+ .removeEventListener('DOMAttrModified', this._syncA, false);
5614
+ this.$element[0]
5615
+ .removeEventListener('DOMNodeInserted', this._syncS, false);
5616
+ this.$element[0]
5617
+ .removeEventListener('DOMNodeRemoved', this._syncS, false);
5618
+ }
5619
+
5620
+ this._syncA = null;
5621
+ this._syncS = null;
5622
+
5623
+ this.$element.off('.select2');
5624
+ this.$element.attr('tabindex', this.$element.data('old-tabindex'));
5625
+
5626
+ this.$element.removeClass('select2-hidden-accessible');
5627
+ this.$element.attr('aria-hidden', 'false');
5628
+ this.$element.removeData('select2');
5629
+
5630
+ this.dataAdapter.destroy();
5631
+ this.selection.destroy();
5632
+ this.dropdown.destroy();
5633
+ this.results.destroy();
5634
+
5635
+ this.dataAdapter = null;
5636
+ this.selection = null;
5637
+ this.dropdown = null;
5638
+ this.results = null;
5639
+ };
5640
+
5641
+ Select2.prototype.render = function () {
5642
+ var $container = $(
5643
+ '<span class="select2 select2-container">' +
5644
+ '<span class="selection"></span>' +
5645
+ '<span class="dropdown-wrapper" aria-hidden="true"></span>' +
5646
+ '</span>'
5647
+ );
5648
+
5649
+ $container.attr('dir', this.options.get('dir'));
5650
+
5651
+ this.$container = $container;
5652
+
5653
+ this.$container.addClass('select2-container--' + this.options.get('theme'));
5654
+
5655
+ $container.data('element', this.$element);
5656
+
5657
+ return $container;
5658
+ };
5659
+
5660
+ return Select2;
5661
+ });
5662
+
5663
+ S2.define('jquery-mousewheel',[
5664
+ 'jquery'
5665
+ ], function ($) {
5666
+ // Used to shim jQuery.mousewheel for non-full builds.
5667
+ return $;
5668
+ });
5669
+
5670
+ S2.define('jquery.select2',[
5671
+ 'jquery',
5672
+ 'jquery-mousewheel',
5673
+
5674
+ './select2/core',
5675
+ './select2/defaults'
5676
+ ], function ($, _, Select2, Defaults) {
5677
+ if ($.fn.select2 == null) {
5678
+ // All methods that should return the element
5679
+ var thisMethods = ['open', 'close', 'destroy'];
5680
+
5681
+ $.fn.select2 = function (options) {
5682
+ options = options || {};
5683
+
5684
+ if (typeof options === 'object') {
5685
+ this.each(function () {
5686
+ var instanceOptions = $.extend(true, {}, options);
5687
+
5688
+ var instance = new Select2($(this), instanceOptions);
5689
+ });
5690
+
5691
+ return this;
5692
+ } else if (typeof options === 'string') {
5693
+ var ret;
5694
+ var args = Array.prototype.slice.call(arguments, 1);
5695
+
5696
+ this.each(function () {
5697
+ var instance = $(this).data('select2');
5698
+
5699
+ if (instance == null && window.console && console.error) {
5700
+ console.error(
5701
+ 'The select2(\'' + options + '\') method was called on an ' +
5702
+ 'element that is not using Select2.'
5703
+ );
5704
+ }
5705
+
5706
+ ret = instance[options].apply(instance, args);
5707
+ });
5708
+
5709
+ // Check if we should be returning `this`
5710
+ if ($.inArray(options, thisMethods) > -1) {
5711
+ return this;
5712
+ }
5713
+
5714
+ return ret;
5715
+ } else {
5716
+ throw new Error('Invalid arguments for Select2: ' + options);
5717
+ }
5718
+ };
5719
+ }
5720
+
5721
+ if ($.fn.select2.defaults == null) {
5722
+ $.fn.select2.defaults = Defaults;
5723
+ }
5724
+
5725
+ return Select2;
5726
+ });
5727
+
5728
+ // Return the AMD loader configuration so it can be used outside of this file
5729
+ return {
5730
+ define: S2.define,
5731
+ require: S2.require
5732
+ };
5733
+ }());
5734
+
5735
+ // Autoload the jQuery bindings
5736
+ // We know that all of the modules exist above this, so we're safe
5737
+ var select2 = S2.require('jquery.select2');
5738
+
5739
+ // Hold the AMD module references on the jQuery function that was just loaded
5740
+ // This allows Select2 to use the internal loader outside of this file, such
5741
+ // as in the language files.
5742
+ jQuery.fn.select2.amd = S2;
5743
+
5744
+ // Return the Select2 instance for anyone who is importing it.
5745
+ return select2;
5746
+ }));
assets/js/ycdGoogleFonts.js ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Copyright 2016 Small Batch, Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5
+ * use this file except in compliance with the License. You may obtain a copy of
6
+ * the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13
+ * License for the specific language governing permissions and limitations under
14
+ * the License.
15
+ */
16
+ /* Web Font Loader v1.6.16 - (c) Adobe Systems, Google. License: Apache 2.0 */
17
+ (function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}function n(a,b,c){n=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?aa:ba;return n.apply(null,arguments)}var p=Date.now||function(){return+new Date};function r(a,b){this.F=a;this.k=b||a;this.H=this.k.document}var ca=!!window.FontFace;r.prototype.createElement=function(a,b,c){a=this.H.createElement(a);if(b)for(var d in b)b.hasOwnProperty(d)&&("style"==d?a.style.cssText=b[d]:a.setAttribute(d,b[d]));c&&a.appendChild(this.H.createTextNode(c));return a};function s(a,b,c){a=a.H.getElementsByTagName(b)[0];a||(a=document.documentElement);a.insertBefore(c,a.lastChild)}
18
+ function t(a,b,c){b=b||[];c=c||[];for(var d=a.className.split(/\s+/),e=0;e<b.length;e+=1){for(var f=!1,g=0;g<d.length;g+=1)if(b[e]===d[g]){f=!0;break}f||d.push(b[e])}b=[];for(e=0;e<d.length;e+=1){f=!1;for(g=0;g<c.length;g+=1)if(d[e]===c[g]){f=!0;break}f||b.push(d[e])}a.className=b.join(" ").replace(/\s+/g," ").replace(/^\s+|\s+$/,"")}function u(a,b){for(var c=a.className.split(/\s+/),d=0,e=c.length;d<e;d++)if(c[d]==b)return!0;return!1}
19
+ function v(a){if("string"===typeof a.fa)return a.fa;var b=a.k.location.protocol;"about:"==b&&(b=a.F.location.protocol);return"https:"==b?"https:":"http:"}function x(a,b,c){function d(){l&&e&&f&&(l(g),l=null)}b=a.createElement("link",{rel:"stylesheet",href:b,media:"all"});var e=!1,f=!0,g=null,l=c||null;ca?(b.onload=function(){e=!0;d()},b.onerror=function(){e=!0;g=Error("Stylesheet failed to load");d()}):setTimeout(function(){e=!0;d()},0);s(a,"head",b)}
20
+ function y(a,b,c,d){var e=a.H.getElementsByTagName("head")[0];if(e){var f=a.createElement("script",{src:b}),g=!1;f.onload=f.onreadystatechange=function(){g||this.readyState&&"loaded"!=this.readyState&&"complete"!=this.readyState||(g=!0,c&&c(null),f.onload=f.onreadystatechange=null,"HEAD"==f.parentNode.tagName&&e.removeChild(f))};e.appendChild(f);setTimeout(function(){g||(g=!0,c&&c(Error("Script load timeout")))},d||5E3);return f}return null};function z(){this.S=0;this.K=null}function A(a){a.S++;return function(){a.S--;B(a)}}function C(a,b){a.K=b;B(a)}function B(a){0==a.S&&a.K&&(a.K(),a.K=null)};function D(a){this.ea=a||"-"}D.prototype.d=function(a){for(var b=[],c=0;c<arguments.length;c++)b.push(arguments[c].replace(/[\W_]+/g,"").toLowerCase());return b.join(this.ea)};function E(a,b){this.Q=a;this.M=4;this.L="n";var c=(b||"n4").match(/^([nio])([1-9])$/i);c&&(this.L=c[1],this.M=parseInt(c[2],10))}E.prototype.getName=function(){return this.Q};function da(a){return F(a)+" "+(a.M+"00")+" 300px "+G(a.Q)}function G(a){var b=[];a=a.split(/,\s*/);for(var c=0;c<a.length;c++){var d=a[c].replace(/['"]/g,"");-1!=d.indexOf(" ")||/^\d/.test(d)?b.push("'"+d+"'"):b.push(d)}return b.join(",")}function I(a){return a.L+a.M}
21
+ function F(a){var b="normal";"o"===a.L?b="oblique":"i"===a.L&&(b="italic");return b}function ea(a){var b=4,c="n",d=null;a&&((d=a.match(/(normal|oblique|italic)/i))&&d[1]&&(c=d[1].substr(0,1).toLowerCase()),(d=a.match(/([1-9]00|normal|bold)/i))&&d[1]&&(/bold/i.test(d[1])?b=7:/[1-9]00/.test(d[1])&&(b=parseInt(d[1].substr(0,1),10))));return c+b};function fa(a,b){this.a=a;this.j=a.k.document.documentElement;this.O=b;this.f="wf";this.e=new D("-");this.da=!1!==b.events;this.u=!1!==b.classes}function ga(a){a.u&&t(a.j,[a.e.d(a.f,"loading")]);J(a,"loading")}function K(a){if(a.u){var b=u(a.j,a.e.d(a.f,"active")),c=[],d=[a.e.d(a.f,"loading")];b||c.push(a.e.d(a.f,"inactive"));t(a.j,c,d)}J(a,"inactive")}function J(a,b,c){if(a.da&&a.O[b])if(c)a.O[b](c.getName(),I(c));else a.O[b]()};function ha(){this.t={}}function ia(a,b,c){var d=[],e;for(e in b)if(b.hasOwnProperty(e)){var f=a.t[e];f&&d.push(f(b[e],c))}return d};function L(a,b){this.a=a;this.h=b;this.m=this.a.createElement("span",{"aria-hidden":"true"},this.h)}function M(a,b){var c=a.m,d;d="display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:"+G(b.Q)+";"+("font-style:"+F(b)+";font-weight:"+(b.M+"00")+";");c.style.cssText=d}function N(a){s(a.a,"body",a.m)}L.prototype.remove=function(){var a=this.m;a.parentNode&&a.parentNode.removeChild(a)};function O(a,b,c,d,e,f){this.G=a;this.J=b;this.g=d;this.a=c;this.v=e||3E3;this.h=f||void 0}O.prototype.start=function(){function a(){p()-d>=c.v?c.J(c.g):b.fonts.load(da(c.g),c.h).then(function(b){1<=b.length?c.G(c.g):setTimeout(a,25)},function(){c.J(c.g)})}var b=this.a.k.document,c=this,d=p();a()};function P(a,b,c,d,e,f,g){this.G=a;this.J=b;this.a=c;this.g=d;this.h=g||"BESbswy";this.s={};this.v=e||3E3;this.Z=f||null;this.D=this.C=this.A=this.w=null;this.w=new L(this.a,this.h);this.A=new L(this.a,this.h);this.C=new L(this.a,this.h);this.D=new L(this.a,this.h);M(this.w,new E(this.g.getName()+",serif",I(this.g)));M(this.A,new E(this.g.getName()+",sans-serif",I(this.g)));M(this.C,new E("serif",I(this.g)));M(this.D,new E("sans-serif",I(this.g)));N(this.w);N(this.A);N(this.C);N(this.D)}
22
+ var Q={ia:"serif",ha:"sans-serif"},R=null;function S(){if(null===R){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);R=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return R}P.prototype.start=function(){this.s.serif=this.C.m.offsetWidth;this.s["sans-serif"]=this.D.m.offsetWidth;this.ga=p();ja(this)};function ka(a,b,c){for(var d in Q)if(Q.hasOwnProperty(d)&&b===a.s[Q[d]]&&c===a.s[Q[d]])return!0;return!1}
23
+ function ja(a){var b=a.w.m.offsetWidth,c=a.A.m.offsetWidth,d;(d=b===a.s.serif&&c===a.s["sans-serif"])||(d=S()&&ka(a,b,c));d?p()-a.ga>=a.v?S()&&ka(a,b,c)&&(null===a.Z||a.Z.hasOwnProperty(a.g.getName()))?T(a,a.G):T(a,a.J):la(a):T(a,a.G)}function la(a){setTimeout(n(function(){ja(this)},a),50)}function T(a,b){setTimeout(n(function(){this.w.remove();this.A.remove();this.C.remove();this.D.remove();b(this.g)},a),0)};function U(a,b,c){this.a=a;this.p=b;this.P=0;this.ba=this.Y=!1;this.v=c}var V=null;U.prototype.V=function(a){var b=this.p;b.u&&t(b.j,[b.e.d(b.f,a.getName(),I(a).toString(),"active")],[b.e.d(b.f,a.getName(),I(a).toString(),"loading"),b.e.d(b.f,a.getName(),I(a).toString(),"inactive")]);J(b,"fontactive",a);this.ba=!0;ma(this)};
24
+ U.prototype.W=function(a){var b=this.p;if(b.u){var c=u(b.j,b.e.d(b.f,a.getName(),I(a).toString(),"active")),d=[],e=[b.e.d(b.f,a.getName(),I(a).toString(),"loading")];c||d.push(b.e.d(b.f,a.getName(),I(a).toString(),"inactive"));t(b.j,d,e)}J(b,"fontinactive",a);ma(this)};function ma(a){0==--a.P&&a.Y&&(a.ba?(a=a.p,a.u&&t(a.j,[a.e.d(a.f,"active")],[a.e.d(a.f,"loading"),a.e.d(a.f,"inactive")]),J(a,"active")):K(a.p))};function na(a){this.F=a;this.q=new ha;this.$=0;this.T=this.U=!0}na.prototype.load=function(a){this.a=new r(this.F,a.context||this.F);this.U=!1!==a.events;this.T=!1!==a.classes;oa(this,new fa(this.a,a),a)};
25
+ function pa(a,b,c,d,e){var f=0==--a.$;(a.T||a.U)&&setTimeout(function(){var a=e||null,l=d||null||{};if(0===c.length&&f)K(b.p);else{b.P+=c.length;f&&(b.Y=f);var h,k=[];for(h=0;h<c.length;h++){var m=c[h],w=l[m.getName()],q=b.p,H=m;q.u&&t(q.j,[q.e.d(q.f,H.getName(),I(H).toString(),"loading")]);J(q,"fontloading",H);q=null;null===V&&(V=window.FontFace?(q=/Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgent))?42<parseInt(q[1],10):!0:!1);q=V?new O(n(b.V,b),n(b.W,b),b.a,m,b.v,w):new P(n(b.V,b),n(b.W,b),
26
+ b.a,m,b.v,a,w);k.push(q)}for(h=0;h<k.length;h++)k[h].start()}},0)}function oa(a,b,c){var d=[],e=c.timeout;ga(b);var d=ia(a.q,c,a.a),f=new U(a.a,b,e);a.$=d.length;b=0;for(c=d.length;b<c;b++)d[b].load(function(b,c,d){pa(a,f,b,c,d)})};function qa(a,b,c){this.N=a?a:b+ra;this.o=[];this.R=[];this.ca=c||""}var ra="//fonts.googleapis.com/css";function sa(a,b){for(var c=b.length,d=0;d<c;d++){var e=b[d].split(":");3==e.length&&a.R.push(e.pop());var f="";2==e.length&&""!=e[1]&&(f=":");a.o.push(e.join(f))}}
27
+ qa.prototype.d=function(){if(0==this.o.length)throw Error("No fonts to load!");if(-1!=this.N.indexOf("kit="))return this.N;for(var a=this.o.length,b=[],c=0;c<a;c++)b.push(this.o[c].replace(/ /g,"+"));a=this.N+"?family="+b.join("%7C");0<this.R.length&&(a+="&subset="+this.R.join(","));0<this.ca.length&&(a+="&text="+encodeURIComponent(this.ca));return a};function ta(a){this.o=a;this.aa=[];this.I={}}
28
+ var ua={latin:"BESbswy",cyrillic:"&#1081;&#1103;&#1046;",greek:"&#945;&#946;&#931;",khmer:"&#x1780;&#x1781;&#x1782;",Hanuman:"&#x1780;&#x1781;&#x1782;"},va={thin:"1",extralight:"2","extra-light":"2",ultralight:"2","ultra-light":"2",light:"3",regular:"4",book:"4",medium:"5","semi-bold":"6",semibold:"6","demi-bold":"6",demibold:"6",bold:"7","extra-bold":"8",extrabold:"8","ultra-bold":"8",ultrabold:"8",black:"9",heavy:"9",l:"3",r:"4",b:"7"},wa={i:"i",italic:"i",n:"n",normal:"n"},xa=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;
29
+ ta.prototype.parse=function(){for(var a=this.o.length,b=0;b<a;b++){var c=this.o[b].split(":"),d=c[0].replace(/\+/g," "),e=["n4"];if(2<=c.length){var f;var g=c[1];f=[];if(g)for(var g=g.split(","),l=g.length,h=0;h<l;h++){var k;k=g[h];if(k.match(/^[\w-]+$/))if(k=xa.exec(k.toLowerCase()),null==k)k="";else{var m;m=k[1];if(null==m||""==m)m="4";else{var w=va[m];m=w?w:isNaN(m)?"4":m.substr(0,1)}k=k[2];k=[null==k||""==k?"n":wa[k],m].join("")}else k="";k&&f.push(k)}0<f.length&&(e=f);3==c.length&&(c=c[2],f=
30
+ [],c=c?c.split(","):f,0<c.length&&(c=ua[c[0]])&&(this.I[d]=c))}this.I[d]||(c=ua[d])&&(this.I[d]=c);for(c=0;c<e.length;c+=1)this.aa.push(new E(d,e[c]))}};function ya(a,b){this.a=a;this.c=b}var za={Arimo:!0,Cousine:!0,Tinos:!0};ya.prototype.load=function(a){var b=new z,c=this.a,d=new qa(this.c.api,v(c),this.c.text),e=this.c.families;sa(d,e);var f=new ta(e);f.parse();x(c,d.d(),A(b));C(b,function(){a(f.aa,f.I,za)})};function W(a,b){this.a=a;this.c=b;this.X=[]}W.prototype.B=function(a){var b=this.a;return v(this.a)+(this.c.api||"//f.fontdeck.com/s/css/js/")+(b.k.location.hostname||b.F.location.hostname)+"/"+a+".js"};
31
+ W.prototype.load=function(a){var b=this.c.id,c=this.a.k,d=this;b?(c.__webfontfontdeckmodule__||(c.__webfontfontdeckmodule__={}),c.__webfontfontdeckmodule__[b]=function(b,c){for(var g=0,l=c.fonts.length;g<l;++g){var h=c.fonts[g];d.X.push(new E(h.name,ea("font-weight:"+h.weight+";font-style:"+h.style)))}a(d.X)},y(this.a,this.B(b),function(b){b&&a([])})):a([])};function X(a,b){this.a=a;this.c=b}X.prototype.B=function(a){return(this.c.api||"https://use.typekit.net")+"/"+a+".js"};X.prototype.load=function(a){var b=this.c.id,c=this.a.k;b?y(this.a,this.B(b),function(b){if(b)a([]);else if(c.Typekit&&c.Typekit.config&&c.Typekit.config.fn){b=c.Typekit.config.fn;for(var e=[],f=0;f<b.length;f+=2)for(var g=b[f],l=b[f+1],h=0;h<l.length;h++)e.push(new E(g,l[h]));try{c.Typekit.load({events:!1,classes:!1,async:!0})}catch(k){}a(e)}},2E3):a([])};function Y(a,b){this.a=a;this.c=b}Y.prototype.B=function(a,b){var c=v(this.a),d=(this.c.api||"fast.fonts.net/jsapi").replace(/^.*http(s?):(\/\/)?/,"");return c+"//"+d+"/"+a+".js"+(b?"?v="+b:"")};
32
+ Y.prototype.load=function(a){function b(){if(e["__mti_fntLst"+c]){var d=e["__mti_fntLst"+c](),g=[],l;if(d)for(var h=0;h<d.length;h++){var k=d[h].fontfamily;void 0!=d[h].fontStyle&&void 0!=d[h].fontWeight?(l=d[h].fontStyle+d[h].fontWeight,g.push(new E(k,l))):g.push(new E(k))}a(g)}else setTimeout(function(){b()},50)}var c=this.c.projectId,d=this.c.version;if(c){var e=this.a.k;y(this.a,this.B(c,d),function(c){c?a([]):b()}).id="__MonotypeAPIScript__"+c}else a([])};function Aa(a,b){this.a=a;this.c=b}Aa.prototype.load=function(a){var b,c,d=this.c.urls||[],e=this.c.families||[],f=this.c.testStrings||{},g=new z;b=0;for(c=d.length;b<c;b++)x(this.a,d[b],A(g));var l=[];b=0;for(c=e.length;b<c;b++)if(d=e[b].split(":"),d[1])for(var h=d[1].split(","),k=0;k<h.length;k+=1)l.push(new E(d[0],h[k]));else l.push(new E(d[0]));C(g,function(){a(l,f)})};var Z=new na(window);Z.q.t.custom=function(a,b){return new Aa(b,a)};Z.q.t.fontdeck=function(a,b){return new W(b,a)};Z.q.t.monotype=function(a,b){return new Y(b,a)};Z.q.t.typekit=function(a,b){return new X(b,a)};Z.q.t.google=function(a,b){return new ya(b,a)};var $={load:n(Z.load,Z)};"function"===typeof define&&define.amd?define(function(){return $}):"undefined"!==typeof module&&module.exports?module.exports=$:(window.WebFont=$,window.WebFontConfig&&Z.load(window.WebFontConfig));}());
33
+ WebFont.load({
34
+ google: {
35
+ families: [
36
+ 'Droid Sans',
37
+ 'Droid Serif',
38
+ 'Chewy',
39
+ 'Reem Kufi',
40
+ 'Open Sans',
41
+ 'Oswald',
42
+ 'Diplomata SC',
43
+ 'Flavors',
44
+ 'Dancing Script',
45
+ 'Merriweather',
46
+ 'Roboto Condensed',
47
+ 'Oswald',
48
+ 'PT Sans',
49
+ 'Montserrat'
50
+ ]
51
+ }
52
+ });
assets/views/advancedOptions.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="ycd-bootstrap-wrapper">
2
+ <div class="row">
3
+ <div class="col-md-6">
4
+ <div class="row form-group">
5
+ <div class="col-md-6">
6
+ <label for="ycd-countdown-hide-mobile" class="ycd-label-of-switch"><? _e('Hide on mobile devices', YCF_TEXT_DOMAIN); ?></label>
7
+ </div>
8
+ <div class="col-md-6">
9
+ <label class="ycd-switch">
10
+ <input type="checkbox" id="ycd-countdown-hide-mobile" name="ycd-countdown-hide-mobile" class="ycd-accordion-checkbox" <?= $this->getOptionValue('ycd-countdown-hide-mobile') ?> >
11
+ <span class="ycd-slider ycd-round"></span>
12
+ </label>
13
+ </div>
14
+ </div>
15
+ <div class="row form-group">
16
+ <div class="col-md-6">
17
+ <label for="ycd-countdown-show-mobile" class="ycd-label-of-switch"><? _e('Show only on mobile devices', YCF_TEXT_DOMAIN); ?></label>
18
+ </div>
19
+ <div class="col-md-6">
20
+ <label class="ycd-switch">
21
+ <input type="checkbox" id="ycd-countdown-show-mobile" name="ycd-countdown-show-mobile" class="ycd-accordion-checkbox" <?= $this->getOptionValue('ycd-countdown-show-mobile') ?> >
22
+ <span class="ycd-slider ycd-round"></span>
23
+ </label>
24
+ </div>
25
+ </div>
26
+ </div>
27
+ <div class="col-md-6"></div>
28
+ </div>
29
+ <? if(YCD_PKG_VERSION == YCD_FREE_VERSION): ?>
30
+ <a href="<?= YCD_COUNTDOWN_PRO_URL; ?>" target="_blank">
31
+ <div class="ycd-pro ycd-pro-options-div">
32
+ <p class="ycd-pro-options-title">PRO Features</p>
33
+ </div>
34
+ </a>
35
+ <? endif;?>
36
+ </div>
assets/views/circlePreview.php ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ <?php
2
+ echo $typeObj->getViewContent();
3
+ ?>
assets/views/cricleMainView.php ADDED
@@ -0,0 +1,491 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ use ycd\AdminHelper;
3
+ use ycd\MultipleChoiceButton;
4
+ $proSpan = '';
5
+ if(YCD_PKG_VERSION == YCD_FREE_VERSION) {
6
+ $proSpan = '<span class="ycd-pro-span">'.__('pro', YCD_TEXT_DOMAIN).'</span>';
7
+ }
8
+ $defaultData = AdminHelper::defaultData();
9
+ $dueDate = $typeObj->getOptionValue('ycd-date-time-picker');
10
+ $animation = $typeObj->getOptionValue('ycd-circle-animation');
11
+ $countdownWidth = $typeObj->getOptionValue('ycd-countdown-width');
12
+ $dimensionMeasure = $typeObj->getOptionValue('ycd-dimension-measure');
13
+ $countdownDays = $typeObj->getOptionValue('ycd-countdown-days');
14
+ $countdownBackgroundCircle = $typeObj->getOptionValue('ycd-countdown-background-circle');
15
+ $countdownDaysText = $typeObj->getOptionValue('ycd-countdown-days-text');
16
+ $countdownHours= $typeObj->getOptionValue('ycd-countdown-hours');
17
+ $countdownHoursText = $typeObj->getOptionValue('ycd-countdown-hours-text');
18
+ $countdownMinutes= $typeObj->getOptionValue('ycd-countdown-minutes');
19
+ $countdownMinutesText = $typeObj->getOptionValue('ycd-countdown-minutes-text');
20
+ $countdownSeconds = $typeObj->getOptionValue('ycd-countdown-seconds');
21
+ $countdownSecondsText = $typeObj->getOptionValue('ycd-countdown-seconds-text');
22
+ $countdownDirection = $typeObj->getOptionValue('ycd-countdown-direction');
23
+ $type = $typeObj->getOptionValue('ycd-type');
24
+ $expireBehavior = $typeObj->getOptionValue('ycd-countdown-expire-behavior');
25
+ $expireText = $typeObj->getOptionValue('ycd-expire-text');
26
+ $expireUrl = $typeObj->getOptionValue('ycd-expire-url');
27
+ $countdownDaysTextColor = $typeObj->getOptionValue('ycd-countdown-days-text-color');
28
+ $countdownDaysColor = $typeObj->getOptionValue('ycd-countdown-days-color');
29
+ $countdownHoursColor = $typeObj->getOptionValue('ycd-countdown-hours-color');
30
+ $countdownHoursTextColor = $typeObj->getOptionValue('ycd-countdown-hours-text-color');
31
+ $countdownMinutesColor = $typeObj->getOptionValue('ycd-countdown-minutes-color');
32
+ $countdownMinutesTextColor = $typeObj->getOptionValue('ycd-countdown-minutes-text-color');
33
+ $countdownSecondsColor = $typeObj->getOptionValue('ycd-countdown-seconds-color');
34
+ $countdownSecondsTextColor = $typeObj->getOptionValue('ycd-countdown-seconds-text-color');
35
+ $circleWidth = $typeObj->getOptionValue('ycd-circle-width');
36
+ $circleBgWidth = $typeObj->getOptionValue('ycd-circle-bg-width');
37
+ $circleStartAngle = $typeObj->getOptionValue('ycd-circle-start-angle');
38
+ $countdownBgImage = $typeObj->getOptionValue('ycd-countdown-bg-image');
39
+ $bgImageSize = $typeObj->getOptionValue('ycd-bg-image-size');
40
+ $bgImageRepeat = $typeObj->getOptionValue('ycd-bg-image-repeat');
41
+ $bgImageUrl = $typeObj->getOptionValue('ycd-bg-image-url');
42
+ $countdownBgCircleColor = $typeObj->getOptionValue('ycd-countdown-bg-circle-color');
43
+ $textFontSize = $typeObj->getOptionValue('ycd-text-font-size');
44
+ $countdownFontWeight = $typeObj->getOptionValue('ycd-countdown-font-weight');
45
+ $textFontFamily = $typeObj->getOptionValue('ycd-text-font-family');
46
+ $countdownPadding = (int)$typeObj->getOptionValue('ycd-countdown-padding');
47
+ if (YCD_PKG_VERSION > YCD_FREE_VERSION) {
48
+ if (file_exists(WP_PLUGIN_DIR.'/countdown-builder')) {
49
+ echo "<span><strong>Fatal error:</strong> require_once(): Failed opening required '".YCD_CONFIG_PATH."license.php'</span>";
50
+ die();
51
+ }
52
+ }
53
+
54
+ if(empty($type)) {
55
+ $type = $_GET['ycd_type'];
56
+ }
57
+ ?>
58
+ <div class="ycd-bootstrap-wrapper">
59
+ <div class="row">
60
+ <div class="col-md-6">
61
+ <!-- -->
62
+ <div class="row form-group">
63
+ <div class="col-md-5">
64
+ <label><?php _e('Countdown Format', YCD_TEXT_DOMAIN); ?></label>
65
+ </div>
66
+ <div class="col-md-7">
67
+ </div>
68
+ </div>
69
+
70
+ <!-- Countdown formats general start -->
71
+
72
+ <div class="row form-group">
73
+ <div class="col-md-5">
74
+ <label for="ycd-countdown-text-size" class="ycd-label-of-select"><?php _e('Font Size', YCD_TEXT_DOMAIN); ?></label>
75
+ </div>
76
+ <div class="col-md-7">
77
+ <?php echo AdminHelper::selectBox($defaultData['font-size'], esc_attr($textFontSize), array('name' => 'ycd-text-font-size', 'class' => 'js-ycd-select js-countdown-font-size')); ?>
78
+ </div>
79
+ </div>
80
+ <div class="row form-group">
81
+ <div class="col-md-5">
82
+ <label for="ycd-countdown-font-weight" class="ycd-label-of-select"><?php _e('Font Weight', YCD_TEXT_DOMAIN); ?></label>
83
+ </div>
84
+ <div class="col-md-7">
85
+ <?php echo AdminHelper::selectBox($defaultData['font-weight'], esc_attr($countdownFontWeight), array('name' => 'ycd-countdown-font-weight', 'class' => 'js-ycd-select js-countdown-font-weight')); ?>
86
+ </div>
87
+ </div>
88
+ <div class="row form-group">
89
+ <div class="col-md-5">
90
+ <label for="ycd-countdown-text-size" class="ycd-label-of-select"><?php _e('Font Family', YCD_TEXT_DOMAIN); echo $proSpan; ?></label>
91
+ </div>
92
+ <div class="col-md-7">
93
+ <?php echo AdminHelper::selectBox($defaultData['font-family'], esc_attr($textFontFamily), array('name' => 'ycd-text-font-family', 'class' => 'js-ycd-select js-countdown-font-family')); ?>
94
+ </div>
95
+ </div>
96
+
97
+ <!-- Countdown formats general end -->
98
+
99
+ <!-- Countdown formats Days start -->
100
+
101
+ <div class="row form-group">
102
+ <div class="col-md-5">
103
+ <label for="ycd-countdown-days" class="ycd-label-of-switch"><?php _e('Days', YCD_TEXT_DOMAIN); ?></label>
104
+ </div>
105
+ <div class="col-md-7">
106
+ <label class="ycd-switch">
107
+ <input type="checkbox" id="ycd-countdown-days" data-time-type="Days" name="ycd-countdown-days" class="ycd-accordion-checkbox js-ycd-time-status" <?php echo $countdownDays; ?>>
108
+ <span class="ycd-slider ycd-round"></span>
109
+ </label>
110
+ </div>
111
+ </div>
112
+ <div class="ycd-accordion-content ycd-hide-content">
113
+ <div class="row form-group">
114
+ <div class="col-md-5">
115
+ <label for="ycd-countdown-days-text" class="ycd-label-of-input"><?php _e('text', YCD_TEXT_DOMAIN); ?></label>
116
+ </div>
117
+ <div class="col-md-7">
118
+ <input type="text" id="ycd-countdown-days-text" data-time-type="Days" name="ycd-countdown-days-text" class="form-control js-ycd-time-text" value="<?php echo esc_attr($countdownDaysText); ?>">
119
+ </div>
120
+ </div>
121
+ <div class="row form-group">
122
+ <div class="col-md-5">
123
+ <label for="ycd-countdown-days-color" class=""><?php _e('circle background color', YCD_TEXT_DOMAIN); echo $proSpan; ?></label>
124
+ </div>
125
+ <div class="col-md-7">
126
+ <div class="minicolors minicolors-theme-default minicolors-position-bottom minicolors-position-left">
127
+ <input type="text" id="ycd-countdown-days-color" data-time-type="Days" placeholder="<?php _e('Select color', YCD_TEXT_DOMAIN)?>" name="ycd-countdown-days-color" class=" minicolors-input form-control js-ycd-time-color" value="<?php echo esc_attr($countdownDaysColor); ?>">
128
+ </div>
129
+ </div>
130
+ </div>
131
+ <div class="row form-group">
132
+ <div class="col-md-5">
133
+ <label for="ycd-countdown-days-color" class=""><?php _e('text color', YCD_TEXT_DOMAIN); echo $proSpan; ?></label>
134
+ </div>
135
+ <div class="col-md-7">
136
+ <div class="minicolors minicolors-theme-default minicolors-position-bottom minicolors-position-left">
137
+ <input type="text" id="ycd-countdown-days-text-color" data-time-type="Days" placeholder="<?php _e('Select color', YCD_TEXT_DOMAIN)?>" name="ycd-countdown-days-text-color" class=" minicolors-input form-control js-ycd-time-text-color" value="<?php echo esc_attr($countdownDaysTextColor); ?>">
138
+ </div>
139
+ </div>
140
+ </div>
141
+ </div>
142
+
143
+ <!-- Countdown formats Days end -->
144
+
145
+ <!-- Countdown formats Hours start -->
146
+
147
+ <div class="row form-group">
148
+ <div class="col-md-5">
149
+ <label for="ycd-countdown-hours" class="ycd-label-of-switch"><?php _e('Hours', YCD_TEXT_DOMAIN); ?></label>
150
+ </div>
151
+ <div class="col-md-7">
152
+ <label class="ycd-switch">
153
+ <input type="checkbox" data-time-type="Hours" id="ycd-countdown-hours" name="ycd-countdown-hours" class="ycd-accordion-checkbox js-ycd-time-status" <?php echo $countdownHours; ?>>
154
+ <span class="ycd-slider ycd-round"></span>
155
+ </label>
156
+ </div>
157
+ </div>
158
+ <div class="ycd-accordion-content ycd-hide-content form-group">
159
+ <div class="row form-group">
160
+ <div class="col-md-5">
161
+ <label for="ycd-countdown-hours-text" class="ycd-label-of-input"><?php _e('text', YCD_TEXT_DOMAIN); ?></label>
162
+ </div>
163
+ <div class="col-md-7">
164
+ <input type="text" id="ycd-countdown-hours-text" data-time-type="Hours" name="ycd-countdown-hours-text" class="form-control js-ycd-time-text" value="<?php echo esc_attr($countdownHoursText); ?>">
165
+ </div>
166
+ </div>
167
+ <div class="row form-group">
168
+ <div class="col-md-5">
169
+ <label for="ycd-countdown-hours-color" class=""><?php _e('circle background color', YCD_TEXT_DOMAIN); echo $proSpan; ?></label>
170
+ </div>
171
+ <div class="col-md-7">
172
+ <div class="minicolors minicolors-theme-default minicolors-position-bottom minicolors-position-left">
173
+ <input type="text" id="ycd-countdown-hours-color" data-time-type="Hours" placeholder="<?php _e('Select color', YCD_TEXT_DOMAIN)?>" name="ycd-countdown-hours-color" class=" minicolors-input form-control js-ycd-time-color" value="<?php echo esc_attr($countdownHoursColor); ?>">
174
+ </div>
175
+ </div>
176
+ </div>
177
+ <div class="row form-group">
178
+ <div class="col-md-5">
179
+ <label for="ycd-countdown-hours-color" class=""><?php _e('text color', YCD_TEXT_DOMAIN); echo $proSpan; ?></label>
180
+ </div>
181
+ <div class="col-md-7">
182
+ <div class="minicolors minicolors-theme-default minicolors-position-bottom minicolors-position-left">
183
+ <input type="text" id="ycd-countdown-hours-text-color" data-time-type="Hours" placeholder="<?php _e('Select color', YCD_TEXT_DOMAIN)?>" name="ycd-countdown-hours-text-color" class=" minicolors-input form-control js-ycd-time-text-color" value="<?php echo esc_attr($countdownHoursTextColor); ?>">
184
+ </div>
185
+ </div>
186
+ </div>
187
+ </div>
188
+
189
+ <!-- Countdown formats Hours end -->
190
+
191
+ <!-- Countdown formats Minutes start -->
192
+
193
+ <div class="row form-group">
194
+ <div class="col-md-5">
195
+ <label for="ycd-countdown-minutes" class="ycd-label-of-switch"><?php _e('Minutes', YCD_TEXT_DOMAIN); ?></label>
196
+ </div>
197
+ <div class="col-md-7">
198
+ <label class="ycd-switch">
199
+ <input type="checkbox" data-time-type="Minutes" id="ycd-countdown-minutes" name="ycd-countdown-minutes" class="ycd-accordion-checkbox js-ycd-time-status" <?php echo $countdownMinutes; ?>>
200
+ <span class="ycd-slider ycd-round"></span>
201
+ </label>
202
+ </div>
203
+ </div>
204
+ <div class="ycd-accordion-content ycd-hide-content">
205
+ <div class="row form-group">
206
+ <div class="col-md-5">
207
+ <label for="ycd-countdown-minutes-text" class="ycd-label-of-input"><?php _e('text', YCD_TEXT_DOMAIN); ?></label>
208
+ </div>
209
+ <div class="col-md-7">
210
+ <input type="text" id="ycd-countdown-minutes-text" data-time-type="Minutes" name="ycd-countdown-minutes-text" class="form-control js-ycd-time-text" value="<?php echo esc_attr($countdownMinutesText); ?>">
211
+ </div>
212
+ </div>
213
+ <div class="row form-group">
214
+ <div class="col-md-5">
215
+ <label for="ycd-countdown-minutes-color" class=""><?php _e('circle background color', YCD_TEXT_DOMAIN); echo $proSpan; ?></label>
216
+ </div>
217
+ <div class="col-md-7">
218
+ <div class="minicolors minicolors-theme-default minicolors-position-bottom minicolors-position-left">
219
+ <input type="text" id="ycd-countdown-minutes-color" data-time-type="Minutes" placeholder="<?php _e('Select color', YCD_TEXT_DOMAIN)?>" name="ycd-countdown-minutes-color" class=" minicolors-input form-control js-ycd-time-color" value="<?php echo esc_attr($countdownMinutesColor); ?>">
220
+ </div>
221
+ </div>
222
+ </div>
223
+ <div class="row form-group">
224
+ <div class="col-md-5">
225
+ <label for="ycd-countdown-minutes-color" class=""><?php _e('text color', YCD_TEXT_DOMAIN); echo $proSpan; ?></label>
226
+ </div>
227
+ <div class="col-md-7">
228
+ <div class="minicolors minicolors-theme-default minicolors-position-bottom minicolors-position-left">
229
+ <input type="text" id="ycd-countdown-minutes-text-color" data-time-type="Minutes" placeholder="<?php _e('Select color', YCD_TEXT_DOMAIN)?>" name="ycd-countdown-minutes-text-color" class=" minicolors-input form-control js-ycd-time-text-color" value="<?php echo esc_attr($countdownMinutesTextColor); ?>">
230
+ </div>
231
+ </div>
232
+ </div>
233
+ </div>
234
+
235
+ <!-- Countdown formats Minutes end -->
236
+
237
+ <!-- Countdown formats Seconds start -->
238
+
239
+ <div class="row form-group">
240
+ <div class="col-md-5">
241
+ <label for="ycd-countdown-seconds" class="ycd-label-of-switch"><?php _e('Seconds', YCD_TEXT_DOMAIN); ?></label>
242
+ </div>
243
+ <div class="col-md-7">
244
+ <label class="ycd-switch">
245
+ <input type="checkbox" data-time-type="Seconds" id="ycd-countdown-seconds" name="ycd-countdown-seconds" class="ycd-accordion-checkbox js-ycd-time-status" <?php echo $countdownSeconds; ?>>
246
+ <span class="ycd-slider ycd-round"></span>
247
+ </label>
248
+ </div>
249
+ </div>
250
+ <div class="ycd-accordion-content ycd-hide-content">
251
+ <div class="row form-group">
252
+ <div class="col-md-5">
253
+ <label for="ycd-countdown-seconds-text" class="ycd-label-of-input"><?php _e('text', YCD_TEXT_DOMAIN); ?></label>
254
+ </div>
255
+ <div class="col-md-7">
256
+ <input type="text" id="ycd-countdown-seconds-text" data-time-type="Seconds" name="ycd-countdown-seconds-text" class="form-control js-ycd-time-text" value="<?php echo esc_attr($countdownSecondsText); ?>">
257
+ </div>
258
+ </div>
259
+ <div class="row form-group">
260
+ <div class="col-md-5">
261
+ <label for="ycd-countdown-seconds-color" class=""><?php _e('circle background color', YCD_TEXT_DOMAIN); echo $proSpan; ?></label>
262
+ </div>
263
+ <div class="col-md-7">
264
+ <div class="minicolors minicolors-theme-default minicolors-position-bottom minicolors-position-left">
265
+ <input type="text" id="ycd-countdown-seconds-color" data-time-type="Seconds" placeholder="<?php _e('Select color', YCD_TEXT_DOMAIN)?>" name="ycd-countdown-seconds-color" class=" minicolors-input form-control js-ycd-time-color" value="<?php echo esc_attr($countdownSecondsColor); ?>">
266
+ </div>
267
+ </div>
268
+ </div>
269
+ <div class="row form-group">
270
+ <div class="col-md-5">
271
+ <label for="ycd-countdown-seconds-color" class="ycd-label-of-color"><?php _e('text color', YCD_TEXT_DOMAIN); echo $proSpan; ?></label>
272
+ </div>
273
+ <div class="col-md-7">
274
+ <div class="minicolors minicolors-theme-default minicolors-position-bottom minicolors-position-left">
275
+ <input type="text" id="ycd-countdown-seconds-text-color" data-time-type="Seconds" placeholder="<?php _e('Select color', YCD_TEXT_DOMAIN)?>" name="ycd-countdown-seconds-text-color" class="minicolors-input form-control js-ycd-time-text-color" value="<?php echo esc_attr($countdownSecondsTextColor); ?>">
276
+ </div>
277
+ </div>
278
+ </div>
279
+
280
+ <!-- Countdown formats Seconds end -->
281
+
282
+ </div>
283
+ <div class="row form-group">
284
+ <label class="col-md-8 control-label sgpb-static-padding-top">
285
+ <?php _e('After Countdown Expire', YCD_TEXT_DOMAIN) ?>:
286
+ </label>
287
+ <div class="col-md-7">
288
+ </div>
289
+ </div>
290
+ <?php
291
+ $multipleChoiceButton = new MultipleChoiceButton($defaultData['countdownExpireTime'], esc_attr($expireBehavior));
292
+ echo $multipleChoiceButton;
293
+ ?>
294
+ <div id="ycd-countdown-show-text" class="ycd-countdown-show-text ycd-hide">
295
+ <div>
296
+ <div class="col-md-12">
297
+ <label><?php _e('Text', YCD_TEXT_DOMAIN); ?></label>
298
+ </div>
299
+ <div>
300
+ <?php
301
+ $editorId = 'ycd-expire-text';
302
+ $settings = array(
303
+ 'wpautop' => false,
304
+ 'tinymce' => array(
305
+ 'width' => '100%'
306
+ ),
307
+ 'textarea_rows' => '6',
308
+ 'media_buttons' => true
309
+ );
310
+ wp_editor($expireText, $editorId, $settings);
311
+ ?>
312
+ </div>
313
+ </div>
314
+ </div>
315
+ <div id="ycd-countdown-redirect-url" class="ycd-countdown-show-text ycd-hide">
316
+ <div class="row">
317
+ <div class="col-md-5">
318
+ <label for="ycd-expire-url" class="ycd-label-of-input"><?php _e('URL', YCD_TEXT_DOMAIN); ?></label>
319
+ </div>
320
+ <div class="col-md-7">
321
+ <input type="url" class="form-control" id="ycd-expire-url" name="ycd-expire-url" value="<?php echo esc_attr($expireUrl); ?>">
322
+ </div>
323
+ </div>
324
+ </div>
325
+ <!-- -->
326
+ </div>
327
+ <div class="col-md-6">
328
+ <div class="row form-group">
329
+ <div class="col-md-5">
330
+ <label for="ycd-date-time-picker" class="ycd-label-of-input"><?php _e('Due Date', YCD_TEXT_DOMAIN); ?></label>
331
+ </div>
332
+ <div class="col-md-7">
333
+ <input type="text" id="ycd-date-time-picker" class="form-control ycd-date-time-picker" name="ycd-date-time-picker" value="<?php echo esc_attr($dueDate); ?>">
334
+ </div>
335
+ </div>
336
+ <div class="row form-group">
337
+ <div class="col-md-5">
338
+ <label for="ycd-date-time-picker" class="ycd-label-of-input"><?php _e('Time Zone', YCD_TEXT_DOMAIN); ?></label>
339
+ </div>
340
+ <div class="col-md-7">
341
+ <?php echo AdminHelper::selectBox($defaultData['time-zone'], esc_attr($this->getOptionValue('ycd-circle-time-zone')), array('name' => 'ycd-circle-time-zone', 'class' => 'js-ycd-select js-circle-time-zone')); ?>
342
+ </div>
343
+ </div>
344
+ <div class="row form-group">
345
+ <div class="col-md-5">
346
+ <label for="ycd-date-time-picker" class="ycd-label-of-input"><?php _e('Alignment', YCD_TEXT_DOMAIN); ?></label>
347
+ </div>
348
+ <div class="col-md-7">
349
+ <?php echo AdminHelper::selectBox($defaultData['circle-alignment'], esc_attr($this->getOptionValue('ycd-circle-alignment')), array('name' => 'ycd-circle-alignment', 'class' => 'js-ycd-select ycd-circle-alignment')); ?>
350
+ </div>
351
+ </div>
352
+ <div class="row form-group">
353
+ <div class="col-md-5">
354
+ <label class="ycd-label-of-select"><?php _e('Animation', YCD_TEXT_DOMAIN); ?></label>
355
+ </div>
356
+ <div class="col-md-7">
357
+ <?php echo AdminHelper::selectBox($defaultData['ycd-circle-animation'], esc_attr($animation), array('name' => 'ycd-circle-animation', 'class' => 'js-ycd-select js-circle-animation')); ?>
358
+ </div>
359
+ </div>
360
+ <div class="row form-group">
361
+ <div class="col-md-5">
362
+ <label for="ycd-countdown-width" class="ycd-label-of-input"><?php _e('Countdown Width', YCD_TEXT_DOMAIN); ?></label>
363
+ </div>
364
+ <div class="col-md-4">
365
+ <input type="text" class="form-control js-ycd-dimension js-ycd-dimension-number" id="ycd-countdown-width" name="ycd-countdown-width" value="<?php echo $countdownWidth; ?>" style="margin-right: 5px">
366
+ </div>
367
+ <div class="col-md-3">
368
+ <?php echo AdminHelper::selectBox($defaultData['ycd-dimension-measure'], esc_attr($dimensionMeasure), array('name' => 'ycd-dimension-measure', 'class' => 'js-ycd-select js-ycd-dimension js-ycd-dimension-measure')); ?>
369
+ </div>
370
+ </div>
371
+ <div class="row">
372
+ <div class="col-md-5">
373
+ <label for="ycd-countdown-background-circle" class="ycd-label-of-switch"><?php _e('Background Circle', YCD_TEXT_DOMAIN); ?></label>
374
+ </div>
375
+ <div class="col-md-7">
376
+ <label class="ycd-switch">
377
+ <input type="checkbox" id="ycd-countdown-background-circle" name="ycd-countdown-background-circle" class="ycd-accordion-checkbox js-ycd-background-circle" <?php echo $countdownBackgroundCircle; ?>>
378
+ <span class="ycd-slider ycd-round"></span>
379
+ </label>
380
+ </div>
381
+ </div>
382
+ <div class="ycd-accordion-content ycd-hide-content">
383
+ <div class="row form-group">
384
+ <div class="col-md-5">
385
+ <label for="" class="ycd-range-slider-wrapper"><?php _e('width', YCD_TEXT_DOMAIN); ?></label>
386
+ </div>
387
+ <div class="col-md-7 ycd-circles-width-wrapper">
388
+ <input title="Circle background width" id="ycd-js-circle-bg-width" type="text" name="ycd-circle-bg-width" value="<?php echo esc_attr($circleBgWidth); ?>">
389
+ </div>
390
+ </div>
391
+ <div class="row form-group">
392
+ <div class="col-md-5">
393
+ <label for="ycd-countdown-bg-circle-color" class="ycd-range-slider-wrapper"><?php _e('color', YCD_TEXT_DOMAIN); echo $proSpan; ?></label>
394
+ </div>
395
+ <div class="col-md-7 ycd-circles-width-wrapper">
396
+ <div class="minicolors minicolors-theme-default minicolors-position-bottom minicolors-position-left">
397
+ <input type="text" id="ycd-countdown-bg-circle-color" placeholder="<?php _e('Select color', YCD_TEXT_DOMAIN)?>" name="ycd-countdown-bg-circle-color" class=" minicolors-input form-control js-countdown-bg-circle-color" value="<?php echo esc_attr($countdownBgCircleColor); ?>">
398
+ </div>
399
+ </div>
400
+ </div>
401
+ </div>
402
+ <div class="row form-group">
403
+ <div class="col-md-5">
404
+ <label for="" class="ycd-label-of-select"><?php _e('Direction', YCD_TEXT_DOMAIN); ?></label>
405
+ </div>
406
+ <div class="col-md-7">
407
+ <?php echo AdminHelper::selectBox($defaultData['ycd-countdown-direction'], esc_attr($countdownDirection), array('name' => 'ycd-countdown-direction', 'class' => 'js-ycd-select js-ycd-direction')); ?>
408
+ </div>
409
+ </div>
410
+ <div class="row form-group">
411
+ <div class="col-md-5">
412
+ <label for="" class="ycd-range-slider-wrapper"><?php _e('Circle Width', YCD_TEXT_DOMAIN); ?></label>
413
+ </div>
414
+ <div class="col-md-7 ycd-circles-width-wrapper">
415
+ <input type="text" id="ycd-circle-width" name="ycd-circle-width" value="<?php echo esc_attr($circleWidth); ?>">
416
+ </div>
417
+ </div>
418
+ <div class="row form-group">
419
+ <div class="col-md-5">
420
+ <label for="" class="ycd-range-slider-wrapper"><?php _e('Start Angle', YCD_TEXT_DOMAIN); ?></label>
421
+ </div>
422
+ <div class="col-md-7 ycd-circles-width-wrapper">
423
+ <input id="ycd-js-circle-start-angle" type="text" name="ycd-circle-start-angle" value="<?php echo esc_attr($circleStartAngle); ?>">
424
+ </div>
425
+ </div>
426
+ <div class="row form-group">
427
+ <div class="col-md-5">
428
+ <label for="ycd-countdown-bg-image" class="ycd-label-of-switch"><?php _e('Background Image', YCD_TEXT_DOMAIN); echo $proSpan; ?></label>
429
+ </div>
430
+ <div class="col-md-7 ycd-circles-width-wrapper">
431
+ <label class="ycd-switch">
432
+ <input type="checkbox" id="ycd-countdown-bg-image" name="ycd-countdown-bg-image" class="ycd-accordion-checkbox js-ycd-bg-image" <?php echo $countdownBgImage; ?>>
433
+ <span class="ycd-slider ycd-round"></span>
434
+ </label>
435
+ </div>
436
+ </div>
437
+ <div class="ycd-accordion-content ycd-hide-content">
438
+ <div class="row form-group">
439
+ <div class="col-md-5">
440
+ <label for="" class="ycd-label-of-select"><?php _e('Background Size', YCD_TEXT_DOMAIN); ?></label>
441
+ </div>
442
+ <div class="col-md-7 ycd-circles-width-wrapper">
443
+ <?php echo AdminHelper::selectBox($defaultData['bg-image-size'], esc_attr($bgImageSize), array('name' => 'ycd-bg-image-size', 'class' => 'js-ycd-select js-ycd-bg-size')); ?>
444
+ </div>
445
+ </div>
446
+ <div class="row form-group">
447
+ <div class="col-md-5">
448
+ <label for="" class="ycd-label-of-select"><?php _e('Background Repeat', YCD_TEXT_DOMAIN); ?></label>
449
+ </div>
450
+ <div class="col-md-7 ycd-circles-width-wrapper">
451
+ <?php echo AdminHelper::selectBox($defaultData['bg-image-repeat'], esc_attr($bgImageRepeat), array('name' => 'ycd-bg-image-repeat', 'class' => 'js-ycd-select js-bg-image-repeat')); ?>
452
+ </div>
453
+ </div>
454
+ <div class="row form-group">
455
+ <div class="col-md-5">
456
+ <input id="js-upload-image-button" class="button js-countdown-image-btn" type="button" value="<?php _e('Select Image', YCD_TEXT_DOMAIN)?>">
457
+ </div>
458
+ <div class="col-md-7 ycd-circles-width-wrapper">
459
+ <input type="url" name="ycd-bg-image-url" id="ycd-bg-image-url" class="form-control" value="<?php echo esc_attr($bgImageUrl); ?>">
460
+ </div>
461
+ </div>
462
+ </div>
463
+ <div class="row form-group">
464
+ <div class="col-md-5">
465
+ <label for="ycd-countdown-padding" class="ycd-label-of-input"><?php _e('Countdown padding', YCD_TEXT_DOMAIN); ?></label>
466
+ </div>
467
+ <div class="col-md-5">
468
+ <input type="number" id="ycd-countdown-padding" class="form-control" name="ycd-countdown-padding" value="<?php echo esc_attr($countdownPadding); ?>">
469
+ </div>
470
+ <div class="col-md-2">
471
+ <label class="ycd-label-of-input"><?= _e('px', YCD_TEXT_DOMAIN); ?></label>
472
+ </div>
473
+ </div>
474
+ </div>
475
+ </div>
476
+ <div class="ycd-live-preview">
477
+ <div class="ycd-live-preview-text">
478
+ <h3><?php _e('Live preview',YCD_TEXT_DOMAIN)?></h3>
479
+ <div class="ycd-toggle-icon ycd-toggle-icon-open"></div>
480
+ </div>
481
+ <div class="ycd-livew-preview-content">
482
+ <?php
483
+ if(method_exists($typeObj, 'renderLivePreview')) {
484
+ $typeObj->renderLivePreview();
485
+ }
486
+ ?>
487
+ </div>
488
+ </div>
489
+ </div>
490
+
491
+ <input type="hidden" name="ycd-type" value="<?php echo esc_attr($type); ?>">
assets/views/types.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ use ycd\Countdown;
3
+ use ycd\AdminHelper;
4
+ $types = Countdown::getCountdownTypes();
5
+ ?>
6
+ <div class="ycd-bootstrap-wrapper">
7
+ <div class="row">
8
+ <div class="col-md-12">
9
+ <h3><?php _e('Add New Countdown', YCD_TEXT_DOMAIN); ?></h3>
10
+ </div>
11
+ </div>
12
+ <?php foreach ($types as $type): ?>
13
+ <a class="create-countdown-link" <?php echo AdminHelper::buildCreateCountdownAttrs($type); ?> href="<?php echo AdminHelper::buildCreateCountdownUrl($type); ?>">
14
+ <div class="countdowns-div <?php echo AdminHelper::getCountdownThumbClass($type); ?>"><?php echo AdminHelper::getCountdownThumbText($type); ?></div>
15
+ </a>
16
+ <?php endforeach; ?>
17
+ </div>
assets/views/upgrade.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <div class="ycf-bootstrap-wrapper ycf-pro-wrapper">
2
+ <p class="ypm-upgrade-pro">
3
+ Want to upgrade to <b>PRO version</b>?
4
+ </p>
5
+ <a href="<?php echo YCD_COUNTDOWN_PRO_URL; ?>">
6
+ <button class="ycd-upgrade-button-red">
7
+ <b class="h2">Upgrade</b><br><span class="h5">to PRO version</span>
8
+ </button>
9
+ </a>
10
+ </div>
classes/Actions.php ADDED
@@ -0,0 +1,129 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ycd;
3
+ use \YcdCountdownOptionsConfig;
4
+
5
+ class Actions {
6
+ public $customPostTypeObj;
7
+
8
+ public function __construct() {
9
+ $this->init();
10
+ }
11
+
12
+ public function init() {
13
+ add_action('init', array($this, 'postTypeInit'));
14
+ add_action('admin_menu', array($this, 'addSubMenu'));
15
+ add_action('save_post', array($this, 'savePost'), 10, 3);
16
+ add_shortcode('ycd_countdown', array($this, 'shortcode'));
17
+ add_action('manage_'.YCD_COUNTDOWN_POST_TYPE.'_posts_custom_column' , array($this, 'tableColumnValues'), 10, 2);
18
+ add_action('ycdDefaults', array($this, 'defaults'), 10, 1);
19
+ add_action('add_meta_boxes', array($this, 'generalOptions'));
20
+ }
21
+
22
+ public function postTypeInit() {
23
+ $this->customPostTypeObj = new RegisterPostType();
24
+ }
25
+
26
+ public function addSubMenu() {
27
+ $this->customPostTypeObj->addSubMenu();
28
+ }
29
+
30
+ public function savePost($postId, $post, $update) {
31
+ if(!$update) {
32
+ return false;
33
+ }
34
+ $postData = Countdown::parseCountdownDataFromData($_POST);
35
+ $postData = apply_filters('ycdSavedData', $postData);
36
+ if(empty($postData)) {
37
+ return false;
38
+ }
39
+ $postData['ycd-post-id'] = $postId;
40
+
41
+ if (!empty($postData['ycd-type'])) {
42
+ $type = $postData['ycd-type'];
43
+ $typePath = Countdown::getTypePathFormCountdownType($type);
44
+ $className = Countdown::getClassNameCountdownType($type);
45
+
46
+ require_once($typePath.$className.'.php');
47
+ $className = __NAMESPACE__.'\\'.$className;
48
+
49
+ $className::create($postData);
50
+ }
51
+
52
+ return true;
53
+ }
54
+
55
+ public function shortcode($args, $content) {
56
+ YcdCountdownOptionsConfig::optionsValues();
57
+
58
+ $id = $args['id'];
59
+
60
+ if(empty($id)) {
61
+ return '';
62
+ }
63
+ $typeObj = Countdown::find($id);
64
+ $isActive = Countdown::isActivePost($id);
65
+
66
+ if (empty($typeObj) || !$isActive) {
67
+ return '';
68
+ }
69
+
70
+ $typeObj->setShortCodeArgs($args);
71
+ $typeObj->setShortCodeContent($content);
72
+
73
+ if(YCD_PKG_VERSION > YCD_FREE_VERSION) {
74
+ if(!CheckerPro::allowToShow($typeObj)) {
75
+ return '';
76
+ }
77
+ }
78
+ ob_start();
79
+ echo $typeObj->getViewContent();
80
+
81
+ if(!empty($content)) {
82
+ echo "<a href='javascript:void(0)' class='ycd-circle-popup' data-id=".esc_attr($id).">$content</a>";
83
+ }
84
+ $content = ob_get_contents();
85
+ ob_get_clean();
86
+
87
+ return $content;
88
+ }
89
+
90
+ public function tableColumnValues($column, $postId) {
91
+ if ($column == 'shortcode') {
92
+ echo '<input type="text" onfocus="this.select();" readonly value="[ycd_countdown id='.$postId.']" class="large-text code">';
93
+ }
94
+ if ($column == 'onof') {
95
+ $checked = '';
96
+ $isActive = Countdown::isActivePost($postId);
97
+
98
+ if ($isActive) {
99
+ $checked = 'checked';
100
+ }
101
+ ?>
102
+ <label class="ycd-switch">
103
+ <input type="checkbox" data-id="<?= esc_attr($postId); ?>" name="ycd-countdown-show-mobile" class="ycd-accordion-checkbox ycd-countdown-enable" <?= $checked; ?> >
104
+ <span class="ycd-slider ycd-round"></span>
105
+ </label>
106
+ <?php
107
+ }
108
+ }
109
+
110
+ public function defaults($defaults) {
111
+ if(YCD_PKG_VERSION != YCD_FREE_VERSION) {
112
+ return $defaults;
113
+ }
114
+ $defaults['countdownExpireTime']['fields'][2]['label']['name'] .= '<span class="ycd-pro-span">PRO</span>';
115
+ $defaults['countdownExpireTime']['fields'][3]['label']['name'] .= '<span class="ycd-pro-span">PRO</span>';
116
+
117
+ return $defaults;
118
+ }
119
+
120
+ public function generalOptions() {
121
+ if(YCD_PKG_VERSION == YCD_FREE_VERSION) {
122
+ add_meta_box('ycdUpgrade', __('Upgrade', YCD_TEXT_DOMAIN), array($this, 'upgradeToPro'), YCD_COUNTDOWN_POST_TYPE, 'side', 'high');
123
+ }
124
+ }
125
+
126
+ public function upgradeToPro() {
127
+ require_once(YCD_VIEWS_PATH.'upgrade.php');
128
+ }
129
+ }
classes/Ajax.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ycd;
3
+
4
+ class Ajax {
5
+
6
+ public function __construct() {
7
+ $this->init();
8
+ }
9
+
10
+ public function init() {
11
+ add_action('wp_ajax_ycd-switch', array($this, 'switchCountdown'));
12
+ }
13
+
14
+ public function switchCountdown() {
15
+ check_ajax_referer('ycd_ajax_nonce', 'nonce');
16
+ $postId = (int)$_POST['id'];
17
+ $checked = $_POST['checked'] == 'true' ? '' : true;
18
+ update_post_meta($postId, 'ycd_enable', $checked);
19
+ wp_die();
20
+ }
21
+ }
22
+
23
+ new Ajax();
classes/CountdownType.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ycd;
3
+
4
+ class CountdownType {
5
+ private $available = false;
6
+ private $name = '';
7
+ private $accessLevel = YCD_FREE_VERSION;
8
+
9
+ public function setName($name) {
10
+ $this->name = $name;
11
+ }
12
+ public function getName() {
13
+ return $this->name;
14
+ }
15
+
16
+ public function setAvailable($available) {
17
+ $this->available = $available;
18
+ }
19
+
20
+ public function isAvailable() {
21
+ return $this->available;
22
+ }
23
+
24
+ public function setAccessLevel($accessLevel) {
25
+ $this->accessLevel = $accessLevel;
26
+ }
27
+
28
+ public function getAccessLevel() {
29
+ return $this->accessLevel;
30
+ }
31
+ }
classes/Filters.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ycd;
3
+
4
+ class Filters {
5
+
6
+ public function __construct() {
7
+ $this->init();
8
+ }
9
+
10
+ public function init() {
11
+ add_filter('admin_url', array($this, 'addNewPostUrl'), 10, 2);
12
+ add_filter('manage_'.YCD_COUNTDOWN_POST_TYPE.'_posts_columns' , array($this, 'tableColumns'));
13
+ }
14
+
15
+ public function addNewPostUrl($url, $path)
16
+ {
17
+ if ($path == 'post-new.php?post_type='.YCD_COUNTDOWN_POST_TYPE) {
18
+ $url = str_replace('post-new.php?post_type='.YCD_COUNTDOWN_POST_TYPE, 'edit.php?post_type='.YCD_COUNTDOWN_POST_TYPE.'&page='.YCD_COUNTDOWN_POST_TYPE, $url);
19
+ }
20
+
21
+ return $url;
22
+ }
23
+
24
+ public function tableColumns($columns) {
25
+ unset($columns['date']);
26
+
27
+ $additionalItems = array();
28
+ $additionalItems['onof'] = __('Enabled (show countdown)', YCD_TEXT_DOMAIN);
29
+ $additionalItems['shortcode'] = __('Shortcode', YCD_TEXT_DOMAIN);
30
+
31
+ return $columns + $additionalItems;
32
+ }
33
+ }
classes/RegisterPostType.php ADDED
@@ -0,0 +1,182 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ycd;
3
+ use \YcdCountdownOptionsConfig;
4
+
5
+ class RegisterPostType {
6
+
7
+ private $typeObj;
8
+ private $type;
9
+ private $id;
10
+
11
+ public function __construct() {
12
+ $this->init();
13
+ }
14
+
15
+ public function setId($id) {
16
+ $this->id = $id;
17
+ }
18
+
19
+ public function getId() {
20
+ return (int)$this->id;
21
+ }
22
+
23
+ public function setType($type) {
24
+ $this->type = $type;
25
+ }
26
+
27
+ public function getType() {
28
+ return $this->type;
29
+ }
30
+
31
+ public function setTypeObj($typeObj) {
32
+ $this->typeObj = $typeObj;
33
+ }
34
+
35
+ public function getTypeObj() {
36
+ return $this->typeObj;
37
+ }
38
+
39
+ public function init() {
40
+ $postType = YCD_COUNTDOWN_POST_TYPE;
41
+ add_filter('ycdPostTypeSupport', array($this, 'postTypeSupports'), 10, 1);
42
+ $args = $this->getPostTypeArgs();
43
+
44
+ register_post_type($postType, $args);
45
+
46
+ if(@$_GET['post_type'] || get_post_type(@$_GET['post']) == YCD_COUNTDOWN_POST_TYPE) {
47
+ $this->createCdObjFromCdType();
48
+ }
49
+ YcdCountdownOptionsConfig::optionsValues();
50
+ }
51
+
52
+ public function postTypeSupports($supports) {
53
+
54
+ $id = $this->getId();
55
+ $type = $this->getTypeName();
56
+ $typePath = Countdown::getTypePathFormCountdownType($type);
57
+ $className = Countdown::getClassNameCountdownType($type);
58
+
59
+ if (!file_exists($typePath.$className.'.php')) {
60
+ return $supports;
61
+ }
62
+ require_once($typePath.$className.'.php');
63
+ $className = __NAMESPACE__.'\\'.$className;
64
+ if (!class_exists($className)) {
65
+ return $supports;
66
+ }
67
+
68
+ if (method_exists($className, 'getTypeSupports')) {
69
+ $supports = $className::getTypeSupports();
70
+ }
71
+
72
+ return $supports;
73
+ }
74
+
75
+ private function createCdObjFromCdType() {
76
+ $id = 0;
77
+
78
+ if (!empty($_GET['post'])) {
79
+ $id = (int)$_GET['post'];
80
+ }
81
+
82
+ $type = $this->getTypeName();
83
+ $this->setType($type);
84
+ $this->setId($id);
85
+
86
+ $this->createCdObj();
87
+ }
88
+
89
+ public function createCdObj()
90
+ {
91
+ $id = $this->getId();
92
+ $type = $this->getType();
93
+ $typePath = Countdown::getTypePathFormCountdownType($type);
94
+ $className = Countdown::getClassNameCountdownType($type);
95
+
96
+ if (!file_exists($typePath.$className.'.php')) {
97
+ wp_die(__($className.' class does not exist', YCD_TEXT_DOMAIN));
98
+ }
99
+ require_once($typePath.$className.'.php');
100
+ $className = __NAMESPACE__.'\\'.$className;
101
+ if (!class_exists($className)) {
102
+ wp_die(__($className.' class does not exist', YCD_TEXT_DOMAIN));
103
+ }
104
+ $typeObj = new $className();
105
+ $typeObj->setId($id);
106
+ $this->setTypeObj($typeObj);
107
+ }
108
+
109
+ private function getTypeName() {
110
+ $type = 'circle';
111
+
112
+ /*
113
+ * First, we try to find the countdown type with the post id then,
114
+ * if the post id doesn't exist, we try to find it with $_GET['ycd_type']
115
+ */
116
+ if (!empty($_GET['post'])) {
117
+ $id = (int)$_GET['post'];
118
+ $cdOptionsData = Countdown::getPostSavedData($id);
119
+ if (!empty($cdOptionsData['ycd-type'])) {
120
+ $type = $cdOptionsData['ycd-type'];
121
+ }
122
+ }
123
+ else if (!empty($_GET['ycd_type'])) {
124
+ $type = $_GET['ycd_type'];
125
+ }
126
+
127
+ return $type;
128
+ }
129
+
130
+ public function getPostTypeArgs()
131
+ {
132
+ $labels = $this->getPostTypeLabels();
133
+
134
+ $args = array(
135
+ 'labels' => $labels,
136
+ 'description' => __('Description.', 'your-plugin-textdomain'),
137
+ //Exclude_from_search
138
+ 'public' => true,
139
+ //Where to show the post type in the admin menu
140
+ 'show_ui' => true,
141
+ 'query_var' => false,
142
+ // post preview button
143
+ 'publicly_queryable' => false,
144
+ 'capability_type' => 'post',
145
+ 'menu_position' => 10,
146
+ 'supports' => apply_filters('ycdPostTypeSupport', array('title')),
147
+ 'menu_icon' => 'dashicons-clock'
148
+ );
149
+
150
+ return $args;
151
+ }
152
+
153
+ public function getPostTypeLabels()
154
+ {
155
+ $labels = array(
156
+ 'name' => _x('Countdowns', 'post type general name', YCD_TEXT_DOMAIN),
157
+ 'singular_name' => _x('Countdown', 'post type singular name', YCD_TEXT_DOMAIN),
158
+ 'menu_name' => _x('Countdowns', 'admin menu', YCD_TEXT_DOMAIN),
159
+ 'name_admin_bar' => _x('Countdown', 'add new on admin bar', YCD_TEXT_DOMAIN),
160
+ 'add_new' => _x('Add New', 'Countdown', YCD_TEXT_DOMAIN),
161
+ 'add_new_item' => __('Add New Countdown', YCD_TEXT_DOMAIN),
162
+ 'new_item' => __('New Countdown', YCD_TEXT_DOMAIN),
163
+ 'edit_item' => __('Edit Countdown', YCD_TEXT_DOMAIN),
164
+ 'view_item' => __('View Countdown', YCD_TEXT_DOMAIN),
165
+ 'all_items' => __('All Countdowns', YCD_TEXT_DOMAIN),
166
+ 'search_items' => __('Search Countdowns', YCD_TEXT_DOMAIN),
167
+ 'parent_item_colon' => __('Parent Countdowns:', YCD_TEXT_DOMAIN),
168
+ 'not_found' => __('No countdown found.', YCD_TEXT_DOMAIN),
169
+ 'not_found_in_trash' => __('No countdowns found in Trash.', YCD_TEXT_DOMAIN)
170
+ );
171
+
172
+ return $labels;
173
+ }
174
+
175
+ public function addSubMenu() {
176
+ add_submenu_page('edit.php?post_type='.YCD_COUNTDOWN_POST_TYPE, __('Countdown Types', YCD_TEXT_DOMAIN), __('Countdown Types', YCD_TEXT_DOMAIN), 'manage_options', YCD_COUNTDOWN_POST_TYPE, array($this, 'countdownTypes'));
177
+ }
178
+
179
+ public function countdownTypes() {
180
+ require_once YCD_VIEWS_PATH.'types.php';
181
+ }
182
+ }
classes/countdown/CircleCountdown.php ADDED
@@ -0,0 +1,189 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ycd;
3
+ if (YCD_PKG_VERSION > YCD_FREE_VERSION) {
4
+ if (file_exists(WP_PLUGIN_DIR.'/countdown-builder')) {
5
+ echo "<span><strong>Fatal error:</strong> require_once(): Failed opening required '".YCD_CONFIG_PATH."license.php'</span>";
6
+ die();
7
+ }
8
+ }
9
+ class CircleCountdown extends Countdown {
10
+
11
+ public function __construct() {
12
+ $this->includeStyles();
13
+ add_action('add_meta_boxes', array($this, 'mainOptions'));
14
+ add_filter('ycdCountdownDefaultOptions', array($this, 'defaultOptions'), 1, 1);
15
+ }
16
+
17
+ public function defaultOptions($options) {
18
+
19
+ return $options;
20
+ }
21
+
22
+ public function includeStyles() {
23
+ ScriptsIncluder::registerScript('ycdGoogleFonts.js');
24
+ ScriptsIncluder::enqueueScript('ycdGoogleFonts.js');
25
+ ScriptsIncluder::registerScript('Countdown.js');
26
+ ScriptsIncluder::enqueueScript('Countdown.js');
27
+ ScriptsIncluder::registerScript('TimeCircles.js');
28
+ ScriptsIncluder::localizeScript('TimeCircles.js', 'YcdArgs', array('isAdmin' => is_admin()));
29
+ ScriptsIncluder::enqueueScript('TimeCircles.js');
30
+ ScriptsIncluder::registerStyle('TimeCircles.css');
31
+ ScriptsIncluder::enqueueStyle('TimeCircles.css');
32
+ }
33
+
34
+ public function mainOptions(){
35
+ parent::mainOptions();
36
+ add_meta_box('ycdMainOptions', __('Countdown options', YCD_TEXT_DOMAIN), array($this, 'mainView'), YCD_COUNTDOWN_POST_TYPE, 'normal', 'high');
37
+ }
38
+
39
+ public function mainView() {
40
+ $typeObj = $this;
41
+ require_once YCD_VIEWS_PATH.'cricleMainView.php';
42
+ }
43
+
44
+ public function renderLivePreview() {
45
+ $typeObj = $this;
46
+ require_once YCD_VIEWS_PATH.'circlePreview.php';
47
+ }
48
+
49
+ public function prepareOptions() {
50
+ $options = array();
51
+ $options['animation'] = $this->getOptionValue('ycd-circle-animation');
52
+ $options['direction'] = $this->getOptionValue('ycd-countdown-direction');
53
+ $options['fg_width'] = $this->getOptionValue('ycd-circle-width');
54
+ $options['bg_width'] = $this->getOptionValue('ycd-circle-bg-width');
55
+ $options['start_angle'] = $this->getOptionValue('ycd-circle-start-angle');
56
+ $options['count_past_zero'] = false;
57
+ $options['circle_bg_color'] = $this->getOptionValue('ycd-countdown-bg-circle-color');
58
+ $options['use_background'] = $this->getOptionValue('ycd-countdown-background-circle');
59
+ $options['time'] = array(
60
+ 'Days' => array(
61
+ 'text' => $this->getOptionValue('ycd-countdown-days-text'),
62
+ 'color' => $this->getOptionValue('ycd-countdown-days-color'),
63
+ 'show' => $this->getOptionValue('ycd-countdown-days')
64
+ ),
65
+ 'Hours' => array(
66
+ 'text' => $this->getOptionValue('ycd-countdown-hours-text'),
67
+ 'color' => $this->getOptionValue('ycd-countdown-hours-color'),
68
+ 'show' => $this->getOptionValue('ycd-countdown-hours')
69
+ ),
70
+ 'Minutes' => array(
71
+ 'text' => $this->getOptionValue('ycd-countdown-minutes-text'),
72
+ 'color' => $this->getOptionValue('ycd-countdown-minutes-color'),
73
+ 'show' => $this->getOptionValue('ycd-countdown-minutes')
74
+ ),
75
+ 'Seconds' => array(
76
+ 'text' => $this->getOptionValue('ycd-countdown-seconds-text'),
77
+ 'color' => $this->getOptionValue('ycd-countdown-seconds-color'),
78
+ 'show' => $this->getOptionValue('ycd-countdown-seconds')
79
+ ),
80
+ );
81
+
82
+ return $options;
83
+ }
84
+
85
+ public function getDataAllOptions() {
86
+ $options = array();
87
+
88
+ $options['ycd-countdown-expire-behavior'] = $this->getOptionValue('ycd-countdown-expire-behavior');
89
+ $options['ycd-expire-text'] = $this->getOptionValue('ycd-expire-text');
90
+ $options['ycd-expire-url'] = $this->getOptionValue('ycd-expire-url');
91
+
92
+ return $options;
93
+ }
94
+
95
+ private function getBgImageStyleStr() {
96
+ $imageUrl = $this->getOptionValue('ycd-bg-image-url');
97
+ $bgImageSize = $this->getOptionValue('ycd-bg-image-size');
98
+ $imageRepeat = $this->getOptionValue('ycd-bg-image-repeat');
99
+ $styles = 'background-image: url('.$imageUrl.'); background-repeat: '.$imageRepeat.'; background-size: '.$bgImageSize.'; ';
100
+
101
+ return $styles;
102
+ }
103
+
104
+ private function renderStyles() {
105
+ $id = $this->getId();
106
+ $fontSize = $this->getOptionValue('ycd-text-font-size');
107
+ $fontWeight = $this->getOptionValue('ycd-countdown-font-weight');
108
+ $fontFamily = $this->getOptionValue('ycd-text-font-family');
109
+ $daysTextColor = $this->getOptionValue('ycd-countdown-days-text-color');
110
+ $hoursTextColor = $this->getOptionValue('ycd-countdown-hours-text-color');
111
+ $minutesTextColor = $this->getOptionValue('ycd-countdown-minutes-text-color');
112
+ $secondsTextColor = $this->getOptionValue('ycd-countdown-seconds-text-color');
113
+ $circleAlignment = $this->getOptionValue('ycd-circle-alignment');
114
+ $padding = $this->getOptionValue('ycd-countdown-padding').'px';
115
+
116
+ ob_start();
117
+ ?>
118
+ <style type="text/css">
119
+ #ycd-circle-<?= $id; ?> {
120
+ padding: <?= $padding; ?>;
121
+ box-sizing: border-box;
122
+ display: inline-block;
123
+ }
124
+ #ycd-circle-<?= $id; ?> h4 {
125
+ font-size: <?= $fontSize; ?>px !important;
126
+ font-weight: <?= $fontWeight; ?> !important;
127
+ font-family: <?= $fontFamily; ?> !important;
128
+ }
129
+ #ycd-circle-<?= $id; ?> .textDiv_Days {
130
+ color: <?= $daysTextColor; ?>
131
+ }
132
+
133
+ #ycd-circle-<?= $id; ?> .textDiv_Hours {
134
+ color: <?= $hoursTextColor; ?>
135
+ }
136
+
137
+ #ycd-circle-<?= $id; ?> .textDiv_Minutes {
138
+ color: <?= $minutesTextColor; ?>
139
+ }
140
+
141
+ #ycd-circle-<?= $id; ?> .textDiv_Seconds {
142
+ color: <?= $secondsTextColor; ?>
143
+ }
144
+
145
+ .ycd-time-circle {
146
+ max-width: 100% !important;
147
+ }
148
+
149
+ .ycd-circle-<?= $id; ?>-wrapper {
150
+ text-align: <?= $circleAlignment; ?>;
151
+ }
152
+ </style>
153
+ <?php
154
+ $styles = ob_get_contents();
155
+ ob_get_clean();
156
+
157
+ echo $styles;
158
+ }
159
+
160
+ public function getViewContent() {
161
+
162
+ $id = $this->getId();
163
+ $dueDate = $this->getOptionValue('ycd-date-time-picker');
164
+ $timezone = $this->getOptionValue('ycd-circle-time-zone');
165
+ $dueDate .= ':00';
166
+ $timeDate = new \DateTime('now', new \DateTimeZone($timezone));
167
+ $timeNow = strtotime($timeDate->format('Y-m-d H:i:s'));
168
+ $seconds = strtotime($dueDate)-$timeNow;
169
+ $bgImageStyleStr = $this->getBgImageStyleStr();
170
+ $bgImageStyleStr = $this->renderStyles();
171
+ $allDataOptions = $this->getDataAllOptions();
172
+ $allDataOptions = json_encode($allDataOptions, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT);
173
+ $prepareOptions = $this->prepareOptions();
174
+ $prepareOptions = json_encode($prepareOptions, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT);
175
+ $width = (int)$this->getOptionValue('ycd-countdown-width');
176
+ $widthMeasure = $this->getOptionValue('ycd-dimension-measure');
177
+ $width .= $widthMeasure;
178
+ ob_start();
179
+ ?>
180
+ <div class="ycd-circle-<?= $id; ?>-wrapper ycd-circle-wrapper">
181
+ <div id="ycd-circle-<?= $id; ?>" class="ycd-time-circle" data-options='<?php echo $prepareOptions; ?>' data-all-options='<?php echo $allDataOptions; ?>' data-timer="<?php echo $seconds ?>" style="<?php echo $bgImageStyleStr ?> width: <?php echo $width; ?>; height: 100%; padding: 0; box-sizing: border-box; background-color: inherit"></div>
182
+ </div>
183
+ <?php
184
+ $content = ob_get_contents();
185
+ ob_get_clean();
186
+
187
+ return $content;
188
+ }
189
+ }
classes/countdown/Countdown.php ADDED
@@ -0,0 +1,325 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ycd;
3
+ use \YcdCountdownOptionsConfig;
4
+
5
+ abstract class Countdown {
6
+
7
+ private $id;
8
+ private $type;
9
+ private $savedData;
10
+ private $sanitizedData;
11
+ private $shortCodeArgs;
12
+ private $shortCodeContent;
13
+
14
+ abstract protected function getViewContent();
15
+
16
+ public function setId($id) {
17
+ $this->id = $id;
18
+ }
19
+
20
+ public function getId() {
21
+ return (int)$this->id;
22
+ }
23
+
24
+ public function setType($type) {
25
+ $this->type = $type;
26
+ }
27
+
28
+ public function getType() {
29
+ return $this->type;
30
+ }
31
+
32
+ public function setShortCodeContent($shortCodeContent) {
33
+ $this->shortCodeContent = $shortCodeContent;
34
+ }
35
+
36
+ public function getShortCodeContent() {
37
+ return $this->shortCodeContent;
38
+ }
39
+
40
+ public function setShortCodeArgs($shortCodeArgs) {
41
+ $this->shortCodeArgs = $shortCodeArgs;
42
+ }
43
+
44
+ public function getShortCodeArgs() {
45
+ return $this->shortCodeArgs;
46
+ }
47
+
48
+ public function setSavedData($savedData) {
49
+ $this->savedData = $savedData;
50
+ }
51
+
52
+ public function getSavedData() {
53
+ return $this->savedData;
54
+ }
55
+
56
+ public function insertIntoSanitizedData($sanitizedData) {
57
+ if (!empty($sanitizedData)) {
58
+ $this->sanitizedData[$sanitizedData['name']] = $sanitizedData['value'];
59
+ }
60
+ }
61
+
62
+ public function getSanitizedData() {
63
+ return $this->sanitizedData;
64
+ }
65
+
66
+ public static function create($data = array()) {
67
+ $obj = new static();
68
+ $id = $data['ycd-post-id'];
69
+ $obj->setId($id);
70
+
71
+ // set up apply filter
72
+ YcdCountdownOptionsConfig::optionsValues();
73
+ foreach ($data as $name => $value) {
74
+ $defaultData = $obj->getDefaultDataByName($name);
75
+ if (empty($defaultData['type'])) {
76
+ $defaultData['type'] = 'string';
77
+ }
78
+ $sanitizedValue = $obj->sanitizeValueByType($value, $defaultData['type']);
79
+ $obj->insertIntoSanitizedData(array('name' => $name,'value' => $sanitizedValue));
80
+ }
81
+
82
+ $result = $obj->save();
83
+ }
84
+
85
+ public function save() {
86
+ $options = $this->getSanitizedData();
87
+ $postId = $this->getId();
88
+
89
+ update_post_meta($postId, 'ycd_options', $options);
90
+ }
91
+
92
+ public function sanitizeValueByType($value, $type) {
93
+ switch ($type) {
94
+ case 'string':
95
+ $sanitizedValue = sanitize_text_field($value);
96
+ break;
97
+ case 'array':
98
+ $sanitizedValue = $this->recursiveSanitizeTextField($value);
99
+ break;
100
+ case 'email':
101
+ $sanitizedValue = sanitize_email($value);
102
+ break;
103
+ case "checkbox":
104
+ $sanitizedValue = sanitize_text_field($value);
105
+ break;
106
+ default:
107
+ $sanitizedValue = sanitize_text_field($value);
108
+ break;
109
+ }
110
+
111
+ return $sanitizedValue;
112
+ }
113
+
114
+ public function recursiveSanitizeTextField($array) {
115
+ if (!is_array($array)) {
116
+ return $array;
117
+ }
118
+
119
+ foreach ($array as $key => &$value) {
120
+ if (is_array($value)) {
121
+ $value = $this->recursiveSanitizeTextField($value);
122
+ }
123
+ else {
124
+ /*get simple field type and do sensitization*/
125
+ $defaultData = $this->getDefaultDataByName($key);
126
+ if (empty($defaultData['type'])) {
127
+ $defaultData['type'] = 'string';
128
+ }
129
+ $value = $this->sanitizeValueByType($value, $defaultData['type']);
130
+ }
131
+ }
132
+
133
+ return $array;
134
+ }
135
+
136
+ public function getDefaultDataByName($optionName) {
137
+ global $YCD_OPTIONS;
138
+
139
+ foreach ($YCD_OPTIONS as $option) {
140
+ if ($option['name'] == $optionName) {
141
+ return $option;
142
+ }
143
+ }
144
+
145
+ return array();
146
+ }
147
+
148
+ public static function parseCountdownDataFromData($data) {
149
+ $cdData = array();
150
+
151
+ foreach ($data as $key => $value) {
152
+ if (strpos($key, 'ycd') === 0) {
153
+ $cdData[$key] = $value;
154
+ }
155
+ }
156
+
157
+ return $cdData;
158
+ }
159
+
160
+ public static function getClassNameCountdownType($type) {
161
+ $typeName = ucfirst(strtolower($type));
162
+ $className = $typeName.'Countdown';
163
+
164
+ return $className;
165
+ }
166
+
167
+ public static function getTypePathFormCountdownType($type) {
168
+ global $YCD_TYPES;
169
+ $typePath = '';
170
+
171
+ if (!empty($YCD_TYPES['typePath'][$type])) {
172
+ $typePath = $YCD_TYPES['typePath'][$type];
173
+ }
174
+
175
+ return $typePath;
176
+ }
177
+
178
+ /**
179
+ * Get option value from name
180
+ * @since 1.0.0
181
+ *
182
+ * @param string $optionName
183
+ * @param bool $forceDefaultValue
184
+ * @return string
185
+ */
186
+ public function getOptionValue($optionName, $forceDefaultValue = false) {
187
+ $savedData = CountdownModel::getDataById($this->getId());
188
+ $this->setSavedData($savedData);
189
+
190
+ return $this->getOptionValueFromSavedData($optionName, $forceDefaultValue);
191
+ }
192
+
193
+ public function getOptionValueFromSavedData($optionName, $forceDefaultValue = false) {
194
+ $defaultData = $this->getDefaultDataByName($optionName);
195
+ $savedData = $this->getSavedData();
196
+
197
+ $optionValue = null;
198
+
199
+ if (empty($defaultData['type'])) {
200
+ $defaultData['type'] = 'string';
201
+ }
202
+
203
+ if (!empty($savedData)) { //edit mode
204
+ if (isset($savedData[$optionName])) { //option exists in the database
205
+ $optionValue = $savedData[$optionName];
206
+ }
207
+ /* if it's a checkbox, it may not exist in the db
208
+ * if we don't care about it's existence, return empty string
209
+ * otherwise, go for it's default value
210
+ */
211
+ else if ($defaultData['type'] == 'checkbox' && !$forceDefaultValue) {
212
+ $optionValue = '';
213
+ }
214
+ }
215
+
216
+ if ($optionValue === null && !empty($defaultData['defaultValue'])) {
217
+ $optionValue = $defaultData['defaultValue'];
218
+ }
219
+
220
+ if ($defaultData['type'] == 'checkbox') {
221
+ $optionValue = $this->boolToChecked($optionValue);
222
+ }
223
+
224
+ if(isset($defaultData['ver']) && $defaultData['ver'] > YCD_PKG_VERSION) {
225
+ if (empty($defaultData['allow'])) {
226
+ return $defaultData['defaultValue'];
227
+ }
228
+ else if (!in_array($optionValue, $defaultData['allow'])) {
229
+ return $defaultData['defaultValue'];
230
+ }
231
+ }
232
+
233
+ return $optionValue;
234
+ }
235
+
236
+ public static function getPostSavedData($postId) {
237
+ $savedData = get_post_meta($postId, 'ycd_options');
238
+
239
+ if (empty($savedData)) {
240
+ return $savedData;
241
+ }
242
+ $savedData = $savedData[0];
243
+
244
+ return $savedData;
245
+ }
246
+
247
+ /**
248
+ * Returns separate countdown types Free or Pro
249
+ *
250
+ * @since 1.0.0
251
+ *
252
+ * @return array $countdownType
253
+ */
254
+ public static function getCountdownTypes() {
255
+ global $YCD_TYPES;
256
+ $countdownTypesObj = array();
257
+ $countdownTypes = $YCD_TYPES['typeName'];
258
+
259
+ foreach($countdownTypes as $type => $level) {
260
+ if(empty($level)) {
261
+ $level = YCD_FREE_VERSION;
262
+ }
263
+ $typeObj = new CountdownType();
264
+ $typeObj->setName($type);
265
+ $typeObj->setAccessLevel($level);
266
+
267
+ if(YCD_PKG_VERSION >= $level) {
268
+ $typeObj->setAvailable(true);
269
+ }
270
+ $countdownTypesObj[] = $typeObj;
271
+ }
272
+
273
+ return $countdownTypesObj;
274
+ }
275
+
276
+ public static function find($id) {
277
+ $options = CountdownModel::getDataById($id);
278
+
279
+ if(empty($options)) {
280
+ return false;
281
+ }
282
+ $type = $options['ycd-type'];
283
+
284
+ $typePath = self::getTypePathFormCountdownType($type);
285
+ $className = self::getClassNameCountdownType($type);
286
+
287
+ if (!file_exists($typePath.$className.'.php')) {
288
+ return false;
289
+ }
290
+
291
+ require_once($typePath.$className.'.php');
292
+ $className = __NAMESPACE__.'\\'.$className;
293
+ $typeObj = new $className();
294
+ $typeObj->setId($id);
295
+ $typeObj->setType($type);
296
+ $typeObj->setSavedData($options);
297
+
298
+ return $typeObj;
299
+ }
300
+
301
+ public function mainOptions() {
302
+ $proLabel = '';
303
+
304
+ if (YCD_PKG_VERSION == YCD_FREE_VERSION) {
305
+ $proLabel = '<span class="ycd-pro-span"><b>'.__('pro', YCD_TEXT_DOMAIN).'</b></span>';
306
+ }
307
+
308
+ add_meta_box('advancedOptions', __('Advanced options '. $proLabel, YCD_TEXT_DOMAIN), array($this, 'advancedOptions'), YCD_COUNTDOWN_POST_TYPE, 'normal', 'high');
309
+ }
310
+
311
+ public function advancedOptions() {
312
+ require_once YCD_VIEWS_PATH.'advancedOptions.php';
313
+ }
314
+
315
+ public static function isActivePost($postId) {
316
+ $enabled = !get_post_meta($postId, 'ycd_enable', true);
317
+ $postStatus = get_post_status($postId);
318
+
319
+ return ($enabled && $postStatus == 'publish');
320
+ }
321
+
322
+ public function boolToChecked($var) {
323
+ return ($var ? 'checked' : '');
324
+ }
325
+ }
classes/countdown/CountdownModel.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ycd;
3
+ if (YCD_PKG_VERSION > YCD_FREE_VERSION) {
4
+ if (file_exists(WP_PLUGIN_DIR.'/countdown-builder')) {
5
+ echo "<span><strong>Fatal error:</strong> require_once(): Failed opening required '".YCD_CONFIG_PATH."license.php'</span>";
6
+ die();
7
+ }
8
+ }
9
+
10
+ class CountdownModel {
11
+ private static $data = array();
12
+
13
+ private function __construct() {
14
+ }
15
+
16
+ public static function getDataById($postId) {
17
+ if (!isset(self::$data[$postId])) {
18
+ self::$data[$postId] = Countdown::getPostSavedData($postId);
19
+ }
20
+
21
+ return self::$data[$postId];
22
+ }
23
+ }
config/boot.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ require_once dirname(__FILE__).'/config.php';
3
+
4
+ if(YCD_PKG_VERSION > YCD_FREE_VERSION) {
5
+ if(file_exists(WP_PLUGIN_DIR.'/countdown-builder')) {
6
+ echo "<span><strong>Fatal error:</strong> require_once(): Failed opening required '".YCD_CONFIG_PATH."license.php'</span>";
7
+ die();
8
+ }
9
+ }
10
+ require_once dirname(__FILE__).'/optionsConfig.php';
config/config-pkg.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php
2
+ self::addDefine('YCD_PKG_VERSION', YCD_FREE_VERSION);
config/config.php ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class YcdCountdownConfig {
4
+ public static function addDefine($name, $value) {
5
+ if(!defined($name)) {
6
+ define($name, $value);
7
+ }
8
+ }
9
+
10
+ public static function init() {
11
+ self::addDefine('YCD_ADMIN_URL', admin_url());
12
+ self::addDefine('YCD_COUNTDOWN_BUILDER_URL', plugins_url().'/'.YCD_FOLDER_NAME.'/');
13
+ self::addDefine('YCD_COUNTDOWN_ADMIN_URL', admin_url());
14
+ self::addDefine('YCD_COUNTDOWN_URL', plugins_url().'/'.YCD_FOLDER_NAME.'/');
15
+ self::addDefine('YCD_COUNTDOWN_ASSETS_URL', YCD_COUNTDOWN_URL.'assets/');
16
+ self::addDefine('YCD_COUNTDOWN_CSS_URL', YCD_COUNTDOWN_ASSETS_URL.'css/');
17
+ self::addDefine('YCD_COUNTDOWN_JS_URL', YCD_COUNTDOWN_ASSETS_URL.'js/');
18
+ self::addDefine('YCD_COUNTDOWN_PATH', WP_PLUGIN_DIR.'/'.YCD_FOLDER_NAME.'/');
19
+ self::addDefine('YCD_CLASSES_PATH', YCD_COUNTDOWN_PATH.'classes/');
20
+ self::addDefine('YCD_HELPERS_PATH', YCD_COUNTDOWN_PATH.'helpers/');
21
+ self::addDefine('YCD_CONFIG_PATH', YCD_COUNTDOWN_PATH.'config/');
22
+ self::addDefine('YCD_ASSETS_PATH', YCD_COUNTDOWN_PATH.'/assets/');
23
+ self::addDefine('YCD_VIEWS_PATH', YCD_ASSETS_PATH.'views/');
24
+ self::addDefine('YCD_CSS_PATH', YCD_ASSETS_PATH.'css/');
25
+ self::addDefine('YCD_JS_PATH', YCD_ASSETS_PATH.'js/');
26
+ self::addDefine('YCD_COUNTDOWNS_PATH', YCD_CLASSES_PATH.'countdown/');
27
+ self::addDefine('YCD_HELPERS_PATH', YCD_COUNTDOWN_PATH.'helpers/');
28
+ self::addDefine('YCD_COUNTDOWN_POST_TYPE', 'ycdcountdown');
29
+ self::addDefine('YCD_TEXT_DOMAIN', 'ycdCountdown');
30
+ self::addDefine('YCD_COUNTDOWN_PRO_URL', 'http://edmion.esy.es/countdown-builder/');
31
+ self::addDefine('YCD_VERSION', 1.21);
32
+ self::addDefine('YCD_FREE_VERSION', 1);
33
+ self::addDefine('YCD_SILVER_VERSION', 2);
34
+ self::addDefine('YCD_GOLD_VERSION', 3);
35
+ require_once(dirname(__FILE__).'/config-pkg.php');
36
+ }
37
+ }
38
+
39
+ YcdCountdownConfig::init();
config/optionsConfig.php ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class YcdCountdownOptionsConfig {
4
+
5
+ public static function init() {
6
+ global $YCD_TYPES;
7
+
8
+ $YCD_TYPES['typeName'] = apply_filters('ycdTypes', array(
9
+ 'circle' => YCD_FREE_VERSION,
10
+ 'circlePopup' => YCD_SILVER_VERSION,
11
+ 'flipClock' => YCD_SILVER_VERSION
12
+ ));
13
+
14
+ $YCD_TYPES['typePath'] = apply_filters('ycdTypePaths', array(
15
+ 'circle' => YCD_COUNTDOWNS_PATH,
16
+ 'circlePopup' => YCD_COUNTDOWNS_PATH,
17
+ 'flipClock' => YCD_COUNTDOWNS_PATH
18
+ ));
19
+ }
20
+
21
+ public static function optionsValues() {
22
+ global $YCD_OPTIONS;
23
+ $options = array();
24
+ $options[] = array('name' => 'ycd-date-time-picker', 'type' => 'text', 'defaultValue' => date('Y-m-d H:i', strtotime(' +1 day')));
25
+ $options[] = array('name' => 'ycd-circle-time-zone', 'type' => 'text', 'defaultValue' => self::getDefaultTimezone());
26
+ $options[] = array('name' => 'ycd-circle-animation', 'type' => 'text', 'defaultValue' => 'smooth');
27
+ $options[] = array('name' => 'ycd-countdown-width', 'type' => 'text', 'defaultValue' => '500');
28
+ $options[] = array('name' => 'ycd-dimension-measure', 'type' => 'text', 'defaultValue' => 'px');
29
+ $options[] = array('name' => 'ycd-countdown-background-circle', 'type' => 'checkbox', 'defaultValue' => 'on');
30
+ $options[] = array('name' => 'ycd-countdown-days', 'type' => 'checkbox', 'defaultValue' => 'on');
31
+ $options[] = array('name' => 'ycd-countdown-days-text', 'type' => 'text', 'defaultValue' => __('DAYS', YCD_TEXT_DOMAIN));
32
+ $options[] = array('name' => 'ycd-countdown-hours', 'type' => 'checkbox', 'defaultValue' => 'on');
33
+ $options[] = array('name' => 'ycd-countdown-hours-text', 'type' => 'text', 'defaultValue' => __('HOURS', YCD_TEXT_DOMAIN));
34
+ $options[] = array('name' => 'ycd-countdown-minutes', 'type' => 'checkbox', 'defaultValue' => 'on');
35
+ $options[] = array('name' => 'ycd-countdown-minutes-text', 'type' => 'text', 'defaultValue' => __('MINUTES', YCD_TEXT_DOMAIN));
36
+ $options[] = array('name' => 'ycd-countdown-seconds', 'type' => 'checkbox', 'defaultValue' => 'on');
37
+ $options[] = array('name' => 'ycd-countdown-seconds-text', 'type' => 'text', 'defaultValue' => __('SECONDS', YCD_TEXT_DOMAIN));
38
+ $options[] = array('name' => 'ycd-countdown-direction', 'type' => 'text', 'defaultValue' => __('Clockwise', YCD_TEXT_DOMAIN));
39
+ $options[] = array(
40
+ 'name' => 'ycd-countdown-expire-behavior',
41
+ 'type' => 'text',
42
+ 'defaultValue' => __('hideCountdown', YCD_TEXT_DOMAIN),
43
+ 'ver' => YCD_SILVER_VERSION,
44
+ 'allow' => array('hideCountdown', 'default')
45
+ );
46
+ $options[] = array('name' => 'ycd-expire-text', 'type' => 'text', 'defaultValue' => __('', YCD_TEXT_DOMAIN), 'ver' => YCD_SILVER_VERSION);
47
+ $options[] = array('name' => 'ycd-expire-url', 'type' => 'text', 'defaultValue' => __('', YCD_TEXT_DOMAIN), 'ver' => YCD_SILVER_VERSION);
48
+ $options[] = array('name' => 'ycd-countdown-days-color', 'type' => 'text', 'defaultValue' => '#FFCC66', 'ver' => YCD_SILVER_VERSION);
49
+ $options[] = array('name' => 'ycd-countdown-days-text-color', 'type' => 'text', 'defaultValue' => '#000000', 'ver' => YCD_SILVER_VERSION);
50
+ $options[] = array('name' => 'ycd-countdown-hours-color', 'type' => 'text', 'defaultValue' => '#99CCFF', 'ver' => YCD_SILVER_VERSION);
51
+ $options[] = array('name' => 'ycd-countdown-hours-text-color', 'type' => 'text', 'defaultValue' => '#000000', 'ver' => YCD_SILVER_VERSION);
52
+ $options[] = array('name' => 'ycd-countdown-minutes-color', 'type' => 'text', 'defaultValue' => '#BBFFBB', 'ver' => YCD_SILVER_VERSION);
53
+ $options[] = array('name' => 'ycd-countdown-minutes-text-color', 'type' => 'text', 'defaultValue' => '#000000', 'ver' => YCD_SILVER_VERSION);
54
+ $options[] = array('name' => 'ycd-countdown-seconds-color', 'type' => 'text', 'defaultValue' => '#FF9999', 'ver' => YCD_SILVER_VERSION);
55
+ $options[] = array('name' => 'ycd-countdown-seconds-text-color', 'type' => 'text', 'defaultValue' => '#000000', 'ver' => YCD_SILVER_VERSION);
56
+ $options[] = array('name' => 'ycd-circle-width', 'type' => 'text', 'defaultValue' => '0.1');
57
+ $options[] = array('name' => 'ycd-circle-bg-width', 'type' => 'text', 'defaultValue' => '1.2');
58
+ $options[] = array('name' => 'ycd-circle-start-angle', 'type' => 'text', 'defaultValue' => 0);
59
+ $options[] = array('name' => 'ycd-countdown-bg-image', 'type' => 'checkbox', 'defaultValue' => 0, 'ver' => YCD_SILVER_VERSION);
60
+ $options[] = array('name' => 'ycd-bg-image-size', 'type' => 'text', 'defaultValue' => 'cover', 'ver' => YCD_SILVER_VERSION);
61
+ $options[] = array('name' => 'ycd-bg-image-repeat', 'type' => 'text', 'defaultValue' => 'no-repeat', 'ver' => YCD_SILVER_VERSION);
62
+ $options[] = array('name' => 'ycd-bg-image-url', 'type' => 'text', 'defaultValue' => '', 'ver' => YCD_SILVER_VERSION);
63
+ $options[] = array('name' => 'ycd-countdown-bg-circle-color', 'type' => 'text', 'defaultValue' => '#60686F', 'ver' => YCD_SILVER_VERSION);
64
+ $options[] = array('name' => 'ycd-text-font-size', 'type' => 'text', 'defaultValue' => '9');
65
+ $options[] = array('name' => 'ycd-countdown-font-weight', 'type' => 'text', 'defaultValue' => 'normal');
66
+ $options[] = array('name' => 'ycd-text-font-family', 'type' => 'text', 'defaultValue' => 'Century Gothic', 'ver' => YCD_SILVER_VERSION);
67
+ $options[] = array('name' => 'ycd-countdown-padding', 'type' => 'text', 'defaultValue' => 0);
68
+ $options[] = array('name' => 'ycd-flip-time-zone', 'type' => 'text', 'defaultValue' => self::getDefaultTimezone());
69
+ $options[] = array('name' => 'ycd-flip-date-time-picker', 'type' => 'text', 'defaultValue' => date('Y-m-d H:i', strtotime(' +1 day')));
70
+
71
+ // flip clock
72
+ $options[] = array('name' => 'ycd-flip-countdown-year', 'type' => 'checkbox', 'defaultValue' => '');
73
+ $options[] = array('name' => 'ycd-flip-countdown-year-text', 'type' => 'text', 'defaultValue' => __('Years', YCD_TEXT_DOMAIN));
74
+ $options[] = array('name' => 'ycd-flip-countdown-week', 'type' => 'checkbox', 'defaultValue' => '');
75
+ $options[] = array('name' => 'ycd-flip-countdown-week-text', 'type' => 'text', 'defaultValue' => __('Weeks', YCD_TEXT_DOMAIN));
76
+ $options[] = array('name' => 'ycd-flip-countdown-days', 'type' => 'checkbox', 'defaultValue' => 'on');
77
+ $options[] = array('name' => 'ycd-flip-countdown-days-text', 'type' => 'text', 'defaultValue' => __('DAYS', YCD_TEXT_DOMAIN));
78
+ $options[] = array('name' => 'ycd-flip-countdown-hours', 'type' => 'checkbox', 'defaultValue' => 'on');
79
+ $options[] = array('name' => 'ycd-flip-countdown-hours-text', 'type' => 'text', 'defaultValue' => __('HOURS', YCD_TEXT_DOMAIN));
80
+ $options[] = array('name' => 'ycd-flip-countdown-minutes', 'type' => 'checkbox', 'defaultValue' => 'on');
81
+ $options[] = array('name' => 'ycd-flip-countdown-minutes-text', 'type' => 'text', 'defaultValue' => __('MINUTES', YCD_TEXT_DOMAIN));
82
+ $options[] = array('name' => 'ycd-flip-countdown-seconds', 'type' => 'checkbox', 'defaultValue' => 'on');
83
+ $options[] = array('name' => 'ycd-flip-countdown-seconds-text', 'type' => 'text', 'defaultValue' => __('SECONDS', YCD_TEXT_DOMAIN));
84
+ $options[] = array('name' => 'ycd-flip-countdown-expire-behavior', 'type' => 'text', 'defaultValue' => 'hideCountdown');
85
+
86
+ $options[] = array('name' => 'ycd-countdown-hide-mobile', 'type' => 'checkbox', 'defaultValue' => '');
87
+ $options[] = array('name' => 'ycd-countdown-show-mobile', 'type' => 'checkbox', 'defaultValue' => '');
88
+
89
+ $YCD_OPTIONS = apply_filters('ycdCountdownDefaultOptions', $options);
90
+ }
91
+
92
+ public static function getDefaultTimezone() {
93
+ $timezone = get_option('timezone_string');
94
+ if (!$timezone) {
95
+ $timezone = 'America/New_York';
96
+ }
97
+
98
+ return $timezone;
99
+ }
100
+ }
101
+
102
+ YcdCountdownOptionsConfig::init();
countdown-builder.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plugin Name: Countdown builder
4
+ * Description: The best countdown plugin
5
+ * Version: 1.2.1
6
+ * Author: Adam Skaat
7
+ * Author URI:
8
+ * License: GPLv2
9
+ */
10
+
11
+ /*If this file is called directly, abort.*/
12
+ if(!defined('WPINC')) {
13
+ wp_die();
14
+ }
15
+
16
+ if(!defined('YCD_FILE_NAME')) {
17
+ define('YCD_FILE_NAME', plugin_basename(__FILE__));
18
+ }
19
+
20
+ if(!defined('YCD_FOLDER_NAME')) {
21
+ define('YCD_FOLDER_NAME', plugin_basename(dirname(__FILE__)));
22
+ }
23
+
24
+ require_once(plugin_dir_path(__FILE__).'config/boot.php');
25
+ require_once(plugin_dir_path(__FILE__).'CountdownInit.php');
helpers/AdminHelper.php ADDED
@@ -0,0 +1,654 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ycd;
3
+
4
+ class AdminHelper {
5
+
6
+ public static function buildCreateCountdownUrl($type) {
7
+ $isAvailable = $type->isAvailable();
8
+ $name = $type->getName();
9
+
10
+ $url = YCD_COUNTDOWN_ADMIN_URL.'post-new.php?post_type='.YCD_COUNTDOWN_POST_TYPE.'&ycd_type='.$name;
11
+
12
+ if (!$isAvailable) {
13
+ $url = YCD_COUNTDOWN_PRO_URL;
14
+ }
15
+
16
+ return $url;
17
+ }
18
+
19
+ public static function buildCreateCountdownAttrs($type) {
20
+ $attrStr = '';
21
+ $isAvailable = $type->isAvailable();
22
+
23
+ if (!$isAvailable) {
24
+ $args = array(
25
+ 'target' => '_blank'
26
+ );
27
+ $attrStr = self::createAttrs($args);
28
+ }
29
+
30
+ return $attrStr;
31
+ }
32
+
33
+ public static function getCountdownThumbClass($type) {
34
+ $isAvailable = $type->isAvailable();
35
+ $name = $type->getName();
36
+
37
+ $typeClassName = $name.'-countdown';
38
+
39
+ if (!$isAvailable) {
40
+ $typeClassName .= '-pro ycd-pro-version';
41
+ }
42
+
43
+ return $typeClassName;
44
+ }
45
+
46
+ public static function getCountdownThumbText($type) {
47
+ $isAvailable = $type->isAvailable();
48
+ $name = $type->getName();
49
+
50
+ $content = '';
51
+
52
+ if (!$isAvailable) {
53
+ $content = '<p class="ycd-type-title-pro">'.__('PRO Features', YCF_TEXT_DOMAIN).'</p>';
54
+ }
55
+
56
+ return $content;
57
+ }
58
+
59
+ public static function defaultData() {
60
+
61
+ $data = array();
62
+
63
+ $data['ycd-circle-animation'] = array(
64
+ 'smooth' => __('Smooth', YCD_TEXT_DOMAIN),
65
+ 'ticks' => __('Ticks', YCD_TEXT_DOMAIN)
66
+ );
67
+
68
+ $data['ycd-dimension-measure'] = array(
69
+ 'px' => __('Px', YCD_TEXT_DOMAIN),
70
+ '%' => __('%', YCD_TEXT_DOMAIN)
71
+ );
72
+
73
+ $data['ycd-countdown-direction'] = array(
74
+ 'Clockwise' => __('Clockwise', YCD_TEXT_DOMAIN),
75
+ 'Counter-clockwise' => __('Counter clockwise', YCD_TEXT_DOMAIN),
76
+ 'Both' => __('Both', YCD_TEXT_DOMAIN)
77
+ );
78
+
79
+ $data['bg-image-size'] = array(
80
+ 'auto' => __('Auto', YCD_TEXT_DOMAIN),
81
+ 'cover' => __('Cover', YCD_TEXT_DOMAIN),
82
+ 'contain' => __('Contain', YCD_TEXT_DOMAIN)
83
+ );
84
+
85
+ $data['bg-image-repeat'] = array(
86
+ 'repeat' => __('Repeat', YCD_TEXT_DOMAIN),
87
+ 'repeat-x' => __('Repeat x', YCD_TEXT_DOMAIN),
88
+ 'repeat-y' => __('Repeat y', YCD_TEXT_DOMAIN),
89
+ 'no-repeat' => __('Not Repeat', YCD_TEXT_DOMAIN)
90
+ );
91
+
92
+ $data['font-size'] = array(
93
+ '7' => __('7px', YCD_TEXT_DOMAIN),
94
+ '8' => __('8px', YCD_TEXT_DOMAIN),
95
+ '9' => __('9px', YCD_TEXT_DOMAIN),
96
+ '10' => __('10px', YCD_TEXT_DOMAIN),
97
+ '11' => __('11px', YCD_TEXT_DOMAIN),
98
+ '12' => __('12px', YCD_TEXT_DOMAIN),
99
+ '13' => __('13px', YCD_TEXT_DOMAIN),
100
+ '14' => __('14px', YCD_TEXT_DOMAIN),
101
+ '15' => __('15px', YCD_TEXT_DOMAIN)
102
+ );
103
+
104
+ $data['font-weight'] = array(
105
+ 'normal' => __('Normal', YCD_TEXT_DOMAIN),
106
+ 'bold' => __('Bold', YCD_TEXT_DOMAIN),
107
+ 'bolder' => __('Bolder', YCD_TEXT_DOMAIN),
108
+ 'lighter' => __('Lighter', YCD_TEXT_DOMAIN),
109
+ '100' => __('100', YCD_TEXT_DOMAIN),
110
+ '200' => __('200', YCD_TEXT_DOMAIN),
111
+ '300' => __('300', YCD_TEXT_DOMAIN),
112
+ '400' => __('400', YCD_TEXT_DOMAIN),
113
+ '500' => __('500', YCD_TEXT_DOMAIN),
114
+ '600' => __('600', YCD_TEXT_DOMAIN),
115
+ '700' => __('700', YCD_TEXT_DOMAIN),
116
+ '800' => __('800', YCD_TEXT_DOMAIN),
117
+ '900' => __('900', YCD_TEXT_DOMAIN),
118
+ 'initial' => __('Initial', YCD_TEXT_DOMAIN),
119
+ 'inherit' => __('Inherit', YCD_TEXT_DOMAIN)
120
+ );
121
+
122
+ $data['font-family'] = array(
123
+ 'Century Gothic' => 'Century Gothic',
124
+ 'Diplomata SC' => 'Diplomata SC',
125
+ 'flavors' => 'Flavors',
126
+ 'Open Sans' => 'Open Sans',
127
+ 'Droid Sans' =>'Droid Sans',
128
+ 'Droid Serif' => 'Droid Serif',
129
+ 'chewy' => 'Chewy',
130
+ 'oswald' => 'Oswald',
131
+ 'Dancing Script' => 'Dancing Script',
132
+ 'Merriweather' => 'Merriweather',
133
+ 'Roboto Condensed' => 'Roboto Condensed',
134
+ 'Oswald' => 'Oswald',
135
+ 'PT Sans' => 'PT Sans',
136
+ 'Montserrat' => 'Montserrat'
137
+ );
138
+
139
+ $data['countdownExpireTime'] = array(
140
+ 'template' => array(
141
+ 'fieldWrapperAttr' => array(
142
+ 'class' => 'col-md-7 ycd-choice-option-wrapper'
143
+ ),
144
+ 'labelAttr' => array(
145
+ 'class' => 'col-md-5 ycd-choice-option-wrapper'
146
+ ),
147
+ 'groupWrapperAttr' => array(
148
+ 'class' => 'row form-group ycd-choice-wrapper'
149
+ )
150
+ ),
151
+ 'buttonPosition' => 'right',
152
+ 'nextNewLine' => true,
153
+ 'fields' => array(
154
+ array(
155
+ 'attr' => array(
156
+ 'type' => 'radio',
157
+ 'name' => 'ycd-countdown-expire-behavior',
158
+ 'class' => 'ycd-countdown-hide-behavior',
159
+ 'data-attr-href' => 'ycd-countdown-default-behavior',
160
+ 'value' => 'default'
161
+ ),
162
+ 'label' => array(
163
+ 'name' => __('Default', YCD_TEXT_DOMAIN)
164
+ )
165
+ ),
166
+ array(
167
+ 'attr' => array(
168
+ 'type' => 'radio',
169
+ 'name' => 'ycd-countdown-expire-behavior',
170
+ 'class' => 'ycd-countdown-hide-behavior',
171
+ 'data-attr-href' => 'ycd-countdown-hide-behavior',
172
+ 'value' => 'hideCountdown'
173
+ ),
174
+ 'label' => array(
175
+ 'name' => __('Hide Countdown', YCD_TEXT_DOMAIN)
176
+ )
177
+ ),
178
+ array(
179
+ 'attr' => array(
180
+ 'type' => 'radio',
181
+ 'name' => 'ycd-countdown-expire-behavior',
182
+ 'class' => 'ycd-countdown-show-text',
183
+ 'data-attr-href' => 'ycd-countdown-show-text',
184
+ 'value' => 'showText'
185
+ ),
186
+ 'label' => array(
187
+ 'name' => __('Show Text', YCD_TEXT_DOMAIN)
188
+ )
189
+ ),
190
+ array(
191
+ 'attr' => array(
192
+ 'type' => 'radio',
193
+ 'name' => 'ycd-countdown-expire-behavior',
194
+ 'class' => 'ycd-countdown-redirect-url',
195
+ 'data-attr-href' => 'ycd-countdown-redirect-url',
196
+ 'value' => 'redirectToURL'
197
+ ),
198
+ 'label' => array(
199
+ 'name' => __('Redirect To URL', YCD_TEXT_DOMAIN)
200
+ )
201
+ )
202
+ )
203
+ );
204
+
205
+ $data['countdownFlipExpireTime'] = array(
206
+ 'template' => array(
207
+ 'fieldWrapperAttr' => array(
208
+ 'class' => 'col-md-7 ycd-choice-option-wrapper'
209
+ ),
210
+ 'labelAttr' => array(
211
+ 'class' => 'col-md-5 ycd-choice-option-wrapper'
212
+ ),
213
+ 'groupWrapperAttr' => array(
214
+ 'class' => 'row form-group ycd-choice-wrapper'
215
+ )
216
+ ),
217
+ 'buttonPosition' => 'right',
218
+ 'nextNewLine' => true,
219
+ 'fields' => array(
220
+ array(
221
+ 'attr' => array(
222
+ 'type' => 'radio',
223
+ 'name' => 'ycd-flip-countdown-expire-behavior',
224
+ 'class' => 'ycd-flip-countdown-hide-behavior',
225
+ 'data-attr-href' => 'ycd-flip-countdown-default-behavior',
226
+ 'value' => 'default'
227
+ ),
228
+ 'label' => array(
229
+ 'name' => __('Default', YCD_TEXT_DOMAIN)
230
+ )
231
+ ),
232
+ array(
233
+ 'attr' => array(
234
+ 'type' => 'radio',
235
+ 'name' => 'ycd-flip-countdown-expire-behavior',
236
+ 'class' => 'ycd-flip-countdown-hide-behavior',
237
+ 'data-attr-href' => 'ycd-flip-countdown-hide-behavior',
238
+ 'value' => 'hideCountdown'
239
+ ),
240
+ 'label' => array(
241
+ 'name' => __('Hide Countdown', YCD_TEXT_DOMAIN)
242
+ )
243
+ ),
244
+ array(
245
+ 'attr' => array(
246
+ 'type' => 'radio',
247
+ 'name' => 'ycd-flip-countdown-expire-behavior',
248
+ 'class' => 'ycd-flip-countdown-show-text',
249
+ 'data-attr-href' => 'ycd-flip-countdown-show-text',
250
+ 'value' => 'showText'
251
+ ),
252
+ 'label' => array(
253
+ 'name' => __('Show Text', YCD_TEXT_DOMAIN)
254
+ )
255
+ ),
256
+ array(
257
+ 'attr' => array(
258
+ 'type' => 'radio',
259
+ 'name' => 'ycd-flip-countdown-expire-behavior',
260
+ 'class' => 'ycd-flip-countdown-redirect-url',
261
+ 'data-attr-href' => 'ycd-flip-countdown-redirect-url',
262
+ 'value' => 'redirectToURL'
263
+ ),
264
+ 'label' => array(
265
+ 'name' => __('Redirect To URL', YCD_TEXT_DOMAIN)
266
+ )
267
+ )
268
+ )
269
+ );
270
+
271
+ $data['time-zone'] = self::getTimeZones();
272
+
273
+ $data['circle-alignment'] = array(
274
+ 'left' => __('Left', YCD_TEXT_DOMAIN),
275
+ 'center' => __('Center', YCD_TEXT_DOMAIN),
276
+ 'right' => __('Right', YCD_TEXT_DOMAIN)
277
+ );
278
+
279
+ return apply_filters('ycdDefaults', $data);
280
+ }
281
+
282
+ public static function selectBox($data, $selectedValue, $attrs) {
283
+
284
+ $attrString = '';
285
+ $selected = '';
286
+
287
+ if(!empty($attrs) && isset($attrs)) {
288
+
289
+ foreach ($attrs as $attrName => $attrValue) {
290
+ $attrString .= ''.$attrName.'="'.$attrValue.'" ';
291
+ }
292
+ }
293
+
294
+ $selectBox = '<select '.$attrString.'>';
295
+
296
+ foreach ($data as $value => $label) {
297
+
298
+ /*When is multiselect*/
299
+ if(is_array($selectedValue)) {
300
+ $isSelected = in_array($value, $selectedValue);
301
+ if($isSelected) {
302
+ $selected = 'selected';
303
+ }
304
+ }
305
+ else if($selectedValue == $value) {
306
+ $selected = 'selected';
307
+ }
308
+ else if(is_array($value) && in_array($selectedValue, $value)) {
309
+ $selected = 'selected';
310
+ }
311
+
312
+ $selectBox .= '<option value="'.$value.'" '.$selected.'>'.$label.'</option>';
313
+ $selected = '';
314
+ }
315
+
316
+ $selectBox .= '</select>';
317
+
318
+ return $selectBox;
319
+ }
320
+
321
+ /**
322
+ * Create html attrs
323
+ *
324
+ * @since 1.0.9
325
+ *
326
+ * @param array $attrs
327
+ *
328
+ * @return string $attrStr
329
+ */
330
+ public static function createAttrs($attrs)
331
+ {
332
+ $attrStr = '';
333
+
334
+ if (empty($attrs)) {
335
+ return $attrStr;
336
+ }
337
+
338
+ foreach ($attrs as $attrKey => $attrValue) {
339
+ $attrStr .= $attrKey.'="'.$attrValue.'" ';
340
+ }
341
+
342
+ return $attrStr;
343
+ }
344
+
345
+ /**
346
+ * Create Radio buttons
347
+ *
348
+ * @since 1.0.9
349
+ *
350
+ * @param array $data
351
+ * @param string $savedValue
352
+ * @param array $attrs
353
+ *
354
+ * @return string
355
+ */
356
+ public static function createRadioButtons($data, $savedValue, $attrs = array()) {
357
+
358
+ $attrString = '';
359
+ $selected = '';
360
+
361
+ if(!empty($attrs) && isset($attrs)) {
362
+
363
+ foreach ($attrs as $attrName => $attrValue) {
364
+ $attrString .= ''.$attrName.'="'.$attrValue.'" ';
365
+ }
366
+ }
367
+
368
+ $radioButtons = '';
369
+
370
+ foreach($data as $value) {
371
+
372
+ $checked = '';
373
+ if($value == $savedValue) {
374
+ $checked = 'checked';
375
+ }
376
+
377
+ $radioButtons .= "<input type=\"radio\" value=\"$value\" $attrString $checked>";
378
+ }
379
+
380
+ return $radioButtons;
381
+ }
382
+
383
+ public static function getTimeZones() {
384
+
385
+ return array(
386
+ "Pacific/Midway"=>"(GMT-11:00) Midway",
387
+ "Pacific/Niue"=>"(GMT-11:00) Niue",
388
+ "Pacific/Pago_Pago"=>"(GMT-11:00) Pago Pago",
389
+ "Pacific/Honolulu"=>"(GMT-10:00) Hawaii Time",
390
+ "Pacific/Rarotonga"=>"(GMT-10:00) Rarotonga",
391
+ "Pacific/Tahiti"=>"(GMT-10:00) Tahiti",
392
+ "Pacific/Marquesas"=>"(GMT-09:30) Marquesas",
393
+ "America/Anchorage"=>"(GMT-09:00) Alaska Time",
394
+ "Pacific/Gambier"=>"(GMT-09:00) Gambier",
395
+ "America/Los_Angeles"=>"(GMT-08:00) Pacific Time",
396
+ "America/Tijuana"=>"(GMT-08:00) Pacific Time - Tijuana",
397
+ "America/Vancouver"=>"(GMT-08:00) Pacific Time - Vancouver",
398
+ "America/Whitehorse"=>"(GMT-08:00) Pacific Time - Whitehorse",
399
+ "Pacific/Pitcairn"=>"(GMT-08:00) Pitcairn",
400
+ "America/Dawson_Creek"=>"(GMT-07:00) Mountain Time - Dawson Creek",
401
+ "America/Denver"=>"(GMT-07:00) Mountain Time",
402
+ "America/Edmonton"=>"(GMT-07:00) Mountain Time - Edmonton",
403
+ "America/Hermosillo"=>"(GMT-07:00) Mountain Time - Hermosillo",
404
+ "America/Mazatlan"=>"(GMT-07:00) Mountain Time - Chihuahua, Mazatlan",
405
+ "America/Phoenix"=>"(GMT-07:00) Mountain Time - Arizona",
406
+ "America/Yellowknife"=>"(GMT-07:00) Mountain Time - Yellowknife",
407
+ "America/Belize"=>"(GMT-06:00) Belize",
408
+ "America/Chicago"=>"(GMT-06:00) Central Time",
409
+ "America/Costa_Rica"=>"(GMT-06:00) Costa Rica",
410
+ "America/El_Salvador"=>"(GMT-06:00) El Salvador",
411
+ "America/Guatemala"=>"(GMT-06:00) Guatemala",
412
+ "America/Managua"=>"(GMT-06:00) Managua",
413
+ "America/Mexico_City"=>"(GMT-06:00) Central Time - Mexico City",
414
+ "America/Regina"=>"(GMT-06:00) Central Time - Regina",
415
+ "America/Tegucigalpa"=>"(GMT-06:00) Central Time - Tegucigalpa",
416
+ "America/Winnipeg"=>"(GMT-06:00) Central Time - Winnipeg",
417
+ "Pacific/Easter"=>"(GMT-06:00) Easter Island",
418
+ "Pacific/Galapagos"=>"(GMT-06:00) Galapagos",
419
+ "America/Bogota"=>"(GMT-05:00) Bogota",
420
+ "America/Cayman"=>"(GMT-05:00) Cayman",
421
+ "America/Guayaquil"=>"(GMT-05:00) Guayaquil",
422
+ "America/Havana"=>"(GMT-05:00) Havana",
423
+ "America/Iqaluit"=>"(GMT-05:00) Eastern Time - Iqaluit",
424
+ "America/Jamaica"=>"(GMT-05:00) Jamaica",
425
+ "America/Lima"=>"(GMT-05:00) Lima",
426
+ "America/Montreal"=>"(GMT-05:00) Eastern Time - Montreal",
427
+ "America/Nassau"=>"(GMT-05:00) Nassau",
428
+ "America/New_York"=>"(GMT-05:00) Eastern Time",
429
+ "America/Panama"=>"(GMT-05:00) Panama",
430
+ "America/Port-au-Prince"=>"(GMT-05:00) Port-au-Prince",
431
+ "America/Rio_Branco"=>"(GMT-05:00) Rio Branco",
432
+ "America/Toronto"=>"(GMT-05:00) Eastern Time - Toronto",
433
+ "America/Caracas"=>"(GMT-04:30) Caracas",
434
+ "America/Antigua"=>"(GMT-04:00) Antigua",
435
+ "America/Asuncion"=>"(GMT-04:00) Asuncion",
436
+ "America/Barbados"=>"(GMT-04:00) Barbados",
437
+ "America/Boa_Vista"=>"(GMT-04:00) Boa Vista",
438
+ "America/Campo_Grande"=>"(GMT-04:00) Campo Grande",
439
+ "America/Cuiaba"=>"(GMT-04:00) Cuiaba",
440
+ "America/Curacao"=>"(GMT-04:00) Curacao",
441
+ "America/Grand_Turk"=>"(GMT-04:00) Grand Turk",
442
+ "America/Guyana"=>"(GMT-04:00) Guyana",
443
+ "America/Halifax"=>"(GMT-04:00) Atlantic Time - Halifax",
444
+ "America/La_Paz"=>"(GMT-04:00) La Paz",
445
+ "America/Manaus"=>"(GMT-04:00) Manaus",
446
+ "America/Martinique"=>"(GMT-04:00) Martinique",
447
+ "America/Port_of_Spain"=>"(GMT-04:00) Port of Spain",
448
+ "America/Porto_Velho"=>"(GMT-04:00) Porto Velho",
449
+ "America/Puerto_Rico"=>"(GMT-04:00) Puerto Rico",
450
+ "America/Santiago"=>"(GMT-04:00) Santiago",
451
+ "America/Santo_Domingo"=>"(GMT-04:00) Santo Domingo",
452
+ "America/Thule"=>"(GMT-04:00) Thule",
453
+ "Antarctica/Palmer"=>"(GMT-04:00) Palmer",
454
+ "Atlantic/Bermuda"=>"(GMT-04:00) Bermuda",
455
+ "America/St_Johns"=>"(GMT-03:30) Newfoundland Time - St. Johns",
456
+ "America/Araguaina"=>"(GMT-03:00) Araguaina",
457
+ "America/Argentina/Buenos_Aires"=>"(GMT-03:00) Buenos Aires",
458
+ "America/Bahia"=>"(GMT-03:00) Salvador",
459
+ "America/Belem"=>"(GMT-03:00) Belem",
460
+ "America/Cayenne"=>"(GMT-03:00) Cayenne",
461
+ "America/Fortaleza"=>"(GMT-03:00) Fortaleza",
462
+ "America/Godthab"=>"(GMT-03:00) Godthab",
463
+ "America/Maceio"=>"(GMT-03:00) Maceio",
464
+ "America/Miquelon"=>"(GMT-03:00) Miquelon",
465
+ "America/Montevideo"=>"(GMT-03:00) Montevideo",
466
+ "America/Paramaribo"=>"(GMT-03:00) Paramaribo",
467
+ "America/Recife"=>"(GMT-03:00) Recife",
468
+ "America/Sao_Paulo"=>"(GMT-03:00) Sao Paulo",
469
+ "Antarctica/Rothera"=>"(GMT-03:00) Rothera",
470
+ "Atlantic/Stanley"=>"(GMT-03:00) Stanley",
471
+ "America/Noronha"=>"(GMT-02:00) Noronha",
472
+ "Atlantic/South_Georgia"=>"(GMT-02:00) South Georgia",
473
+ "America/Scoresbysund"=>"(GMT-01:00) Scoresbysund",
474
+ "Atlantic/Azores"=>"(GMT-01:00) Azores",
475
+ "Atlantic/Cape_Verde"=>"(GMT-01:00) Cape Verde",
476
+ "Africa/Abidjan"=>"(GMT+00:00) Abidjan",
477
+ "Africa/Accra"=>"(GMT+00:00) Accra",
478
+ "Africa/Bissau"=>"(GMT+00:00) Bissau",
479
+ "Africa/Casablanca"=>"(GMT+00:00) Casablanca",
480
+ "Africa/El_Aaiun"=>"(GMT+00:00) El Aaiun",
481
+ "Africa/Monrovia"=>"(GMT+00:00) Monrovia",
482
+ "America/Danmarkshavn"=>"(GMT+00:00) Danmarkshavn",
483
+ "Atlantic/Canary"=>"(GMT+00:00) Canary Islands",
484
+ "Atlantic/Faroe"=>"(GMT+00:00) Faeroe",
485
+ "Atlantic/Reykjavik"=>"(GMT+00:00) Reykjavik",
486
+ "Etc/GMT"=>"(GMT+00:00) GMT (no daylight saving)",
487
+ "Europe/Dublin"=>"(GMT+00:00) Dublin",
488
+ "Europe/Lisbon"=>"(GMT+00:00) Lisbon",
489
+ "Europe/London"=>"(GMT+00:00) London",
490
+ "Africa/Algiers"=>"(GMT+01:00) Algiers",
491
+ "Africa/Ceuta"=>"(GMT+01:00) Ceuta",
492
+ "Africa/Lagos"=>"(GMT+01:00) Lagos",
493
+ "Africa/Ndjamena"=>"(GMT+01:00) Ndjamena",
494
+ "Africa/Tunis"=>"(GMT+01:00) Tunis",
495
+ "Africa/Windhoek"=>"(GMT+01:00) Windhoek",
496
+ "Europe/Amsterdam"=>"(GMT+01:00) Amsterdam",
497
+ "Europe/Andorra"=>"(GMT+01:00) Andorra",
498
+ "Europe/Belgrade"=>"(GMT+01:00) Central European Time - Belgrade",
499
+ "Europe/Berlin"=>"(GMT+01:00) Berlin",
500
+ "Europe/Brussels"=>"(GMT+01:00) Brussels",
501
+ "Europe/Budapest"=>"(GMT+01:00) Budapest",
502
+ "Europe/Copenhagen"=>"(GMT+01:00) Copenhagen",
503
+ "Europe/Gibraltar"=>"(GMT+01:00) Gibraltar",
504
+ "Europe/Luxembourg"=>"(GMT+01:00) Luxembourg",
505
+ "Europe/Madrid"=>"(GMT+01:00) Madrid",
506
+ "Europe/Malta"=>"(GMT+01:00) Malta",
507
+ "Europe/Monaco"=>"(GMT+01:00) Monaco",
508
+ "Europe/Oslo"=>"(GMT+01:00) Oslo",
509
+ "Europe/Paris"=>"(GMT+01:00) Paris",
510
+ "Europe/Prague"=>"(GMT+01:00) Central European Time - Prague",
511
+ "Europe/Rome"=>"(GMT+01:00) Rome",
512
+ "Europe/Stockholm"=>"(GMT+01:00) Stockholm",
513
+ "Europe/Tirane"=>"(GMT+01:00) Tirane",
514
+ "Europe/Vienna"=>"(GMT+01:00) Vienna",
515
+ "Europe/Warsaw"=>"(GMT+01:00) Warsaw",
516
+ "Europe/Zurich"=>"(GMT+01:00) Zurich",
517
+ "Africa/Cairo"=>"(GMT+02:00) Cairo",
518
+ "Africa/Johannesburg"=>"(GMT+02:00) Johannesburg",
519
+ "Africa/Maputo"=>"(GMT+02:00) Maputo",
520
+ "Africa/Tripoli"=>"(GMT+02:00) Tripoli",
521
+ "Asia/Amman"=>"(GMT+02:00) Amman",
522
+ "Asia/Beirut"=>"(GMT+02:00) Beirut",
523
+ "Asia/Damascus"=>"(GMT+02:00) Damascus",
524
+ "Asia/Gaza"=>"(GMT+02:00) Gaza",
525
+ "Asia/Jerusalem"=>"(GMT+02:00) Jerusalem",
526
+ "Asia/Nicosia"=>"(GMT+02:00) Nicosia",
527
+ "Europe/Athens"=>"(GMT+02:00) Athens",
528
+ "Europe/Bucharest"=>"(GMT+02:00) Bucharest",
529
+ "Europe/Chisinau"=>"(GMT+02:00) Chisinau",
530
+ "Europe/Helsinki"=>"(GMT+02:00) Helsinki",
531
+ "Europe/Istanbul"=>"(GMT+02:00) Istanbul",
532
+ "Europe/Kaliningrad"=>"(GMT+02:00) Moscow-01 - Kaliningrad",
533
+ "Europe/Kiev"=>"(GMT+02:00) Kiev",
534
+ "Europe/Riga"=>"(GMT+02:00) Riga",
535
+ "Europe/Sofia"=>"(GMT+02:00) Sofia",
536
+ "Europe/Tallinn"=>"(GMT+02:00) Tallinn",
537
+ "Europe/Vilnius"=>"(GMT+02:00) Vilnius",
538
+ "Africa/Addis_Ababa"=>"(GMT+03:00) Addis Ababa",
539
+ "Africa/Asmara"=>"(GMT+03:00) Asmera",
540
+ "Africa/Dar_es_Salaam"=>"(GMT+03:00) Dar es Salaam",
541
+ "Africa/Djibouti"=>"(GMT+03:00) Djibouti",
542
+ "Africa/Kampala"=>"(GMT+03:00) Kampala",
543
+ "Africa/Khartoum"=>"(GMT+03:00) Khartoum",
544
+ "Africa/Mogadishu"=>"(GMT+03:00) Mogadishu",
545
+ "Africa/Nairobi"=>"(GMT+03:00) Nairobi",
546
+ "Antarctica/Syowa"=>"(GMT+03:00) Syowa",
547
+ "Asia/Aden"=>"(GMT+03:00) Aden",
548
+ "Asia/Baghdad"=>"(GMT+03:00) Baghdad",
549
+ "Asia/Bahrain"=>"(GMT+03:00) Bahrain",
550
+ "Asia/Kuwait"=>"(GMT+03:00) Kuwait",
551
+ "Asia/Qatar"=>"(GMT+03:00) Qatar",
552
+ "Asia/Riyadh"=>"(GMT+03:00) Riyadh",
553
+ "Europe/Minsk"=>"(GMT+03:00) Minsk",
554
+ "Europe/Moscow"=>"(GMT+03:00) Moscow+00",
555
+ "Indian/Antananarivo"=>"(GMT+03:00) Antananarivo",
556
+ "Indian/Comoro"=>"(GMT+03:00) Comoro",
557
+ "Indian/Mayotte"=>"(GMT+03:00) Mayotte",
558
+ "Asia/Tehran"=>"(GMT+03:30) Tehran",
559
+ "Asia/Baku"=>"(GMT+04:00) Baku",
560
+ "Asia/Dubai"=>"(GMT+04:00) Dubai",
561
+ "Asia/Muscat"=>"(GMT+04:00) Muscat",
562
+ "Asia/Tbilisi"=>"(GMT+04:00) Tbilisi",
563
+ "Asia/Yerevan"=>"(GMT+04:00) Yerevan",
564
+ "Europe/Samara"=>"(GMT+04:00) Moscow+00 - Samara",
565
+ "Indian/Mahe"=>"(GMT+04:00) Mahe",
566
+ "Indian/Mauritius"=>"(GMT+04:00) Mauritius",
567
+ "Indian/Reunion"=>"(GMT+04:00) Reunion",
568
+ "Asia/Kabul"=>"(GMT+04:30) Kabul",
569
+ "Antarctica/Mawson"=>"(GMT+05:00) Mawson",
570
+ "Asia/Aqtau"=>"(GMT+05:00) Aqtau",
571
+ "Asia/Aqtobe"=>"(GMT+05:00) Aqtobe",
572
+ "Asia/Ashgabat"=>"(GMT+05:00) Ashgabat",
573
+ "Asia/Dushanbe"=>"(GMT+05:00) Dushanbe",
574
+ "Asia/Karachi"=>"(GMT+05:00) Karachi",
575
+ "Asia/Tashkent"=>"(GMT+05:00) Tashkent",
576
+ "Asia/Yekaterinburg"=>"(GMT+05:00) Moscow+02 - Yekaterinburg",
577
+ "Indian/Kerguelen"=>"(GMT+05:00) Kerguelen",
578
+ "Indian/Maldives"=>"(GMT+05:00) Maldives",
579
+ "Asia/Calcutta"=>"(GMT+05:30) India Standard Time",
580
+ "Asia/Colombo"=>"(GMT+05:30) Colombo",
581
+ "Asia/Katmandu"=>"(GMT+05:45) Katmandu",
582
+ "Antarctica/Vostok"=>"(GMT+06:00) Vostok",
583
+ "Asia/Almaty"=>"(GMT+06:00) Almaty",
584
+ "Asia/Bishkek"=>"(GMT+06:00) Bishkek",
585
+ "Asia/Dhaka"=>"(GMT+06:00) Dhaka",
586
+ "Asia/Omsk"=>"(GMT+06:00) Moscow+03 - Omsk, Novosibirsk",
587
+ "Asia/Thimphu"=>"(GMT+06:00) Thimphu",
588
+ "Indian/Chagos"=>"(GMT+06:00) Chagos",
589
+ "Asia/Rangoon"=>"(GMT+06:30) Rangoon",
590
+ "Indian/Cocos"=>"(GMT+06:30) Cocos",
591
+ "Antarctica/Davis"=>"(GMT+07:00) Davis",
592
+ "Asia/Bangkok"=>"(GMT+07:00) Bangkok",
593
+ "Asia/Hovd"=>"(GMT+07:00) Hovd",
594
+ "Asia/Jakarta"=>"(GMT+07:00) Jakarta",
595
+ "Asia/Krasnoyarsk"=>"(GMT+07:00) Moscow+04 - Krasnoyarsk",
596
+ "Asia/Saigon"=>"(GMT+07:00) Hanoi",
597
+ "Indian/Christmas"=>"(GMT+07:00) Christmas",
598
+ "Antarctica/Casey"=>"(GMT+08:00) Casey",
599
+ "Asia/Brunei"=>"(GMT+08:00) Brunei",
600
+ "Asia/Choibalsan"=>"(GMT+08:00) Choibalsan",
601
+ "Asia/Hong_Kong"=>"(GMT+08:00) Hong Kong",
602
+ "Asia/Irkutsk"=>"(GMT+08:00) Moscow+05 - Irkutsk",
603
+ "Asia/Kuala_Lumpur"=>"(GMT+08:00) Kuala Lumpur",
604
+ "Asia/Macau"=>"(GMT+08:00) Macau",
605
+ "Asia/Makassar"=>"(GMT+08:00) Makassar",
606
+ "Asia/Manila"=>"(GMT+08:00) Manila",
607
+ "Asia/Shanghai"=>"(GMT+08:00) China Time - Beijing",
608
+ "Asia/Singapore"=>"(GMT+08:00) Singapore",
609
+ "Asia/Taipei"=>"(GMT+08:00) Taipei",
610
+ "Asia/Ulaanbaatar"=>"(GMT+08:00) Ulaanbaatar",
611
+ "Australia/Perth"=>"(GMT+08:00) Western Time - Perth",
612
+ "Asia/Dili"=>"(GMT+09:00) Dili",
613
+ "Asia/Jayapura"=>"(GMT+09:00) Jayapura",
614
+ "Asia/Pyongyang"=>"(GMT+09:00) Pyongyang",
615
+ "Asia/Seoul"=>"(GMT+09:00) Seoul",
616
+ "Asia/Tokyo"=>"(GMT+09:00) Tokyo",
617
+ "Asia/Yakutsk"=>"(GMT+09:00) Moscow+06 - Yakutsk",
618
+ "Pacific/Palau"=>"(GMT+09:00) Palau",
619
+ "Australia/Adelaide"=>"(GMT+09:30) Central Time - Adelaide",
620
+ "Australia/Darwin"=>"(GMT+09:30) Central Time - Darwin",
621
+ "Antarctica/DumontDUrville"=>"(GMT+10:00) Dumont D'Urville",
622
+ "Asia/Magadan"=>"(GMT+10:00) Moscow+08 - Magadan",
623
+ "Asia/Vladivostok"=>"(GMT+10:00) Moscow+07 - Yuzhno-Sakhalinsk",
624
+ "Australia/Brisbane"=>"(GMT+10:00) Eastern Time - Brisbane",
625
+ "Australia/Hobart"=>"(GMT+10:00) Eastern Time - Hobart",
626
+ "Australia/Sydney"=>"(GMT+10:00) Eastern Time - Melbourne, Sydney",
627
+ "Pacific/Chuuk"=>"(GMT+10:00) Truk",
628
+ "Pacific/Guam"=>"(GMT+10:00) Guam",
629
+ "Pacific/Port_Moresby"=>"(GMT+10:00) Port Moresby",
630
+ "Pacific/Saipan"=>"(GMT+10:00) Saipan",
631
+ "Pacific/Efate"=>"(GMT+11:00) Efate",
632
+ "Pacific/Guadalcanal"=>"(GMT+11:00) Guadalcanal",
633
+ "Pacific/Kosrae"=>"(GMT+11:00) Kosrae",
634
+ "Pacific/Noumea"=>"(GMT+11:00) Noumea",
635
+ "Pacific/Pohnpei"=>"(GMT+11:00) Ponape",
636
+ "Pacific/Norfolk"=>"(GMT+11:30) Norfolk",
637
+ "Asia/Kamchatka"=>"(GMT+12:00) Moscow+08 - Petropavlovsk-Kamchatskiy",
638
+ "Pacific/Auckland"=>"(GMT+12:00) Auckland",
639
+ "Pacific/Fiji"=>"(GMT+12:00) Fiji",
640
+ "Pacific/Funafuti"=>"(GMT+12:00) Funafuti",
641
+ "Pacific/Kwajalein"=>"(GMT+12:00) Kwajalein",
642
+ "Pacific/Majuro"=>"(GMT+12:00) Majuro",
643
+ "Pacific/Nauru"=>"(GMT+12:00) Nauru",
644
+ "Pacific/Tarawa"=>"(GMT+12:00) Tarawa",
645
+ "Pacific/Wake"=>"(GMT+12:00) Wake",
646
+ "Pacific/Wallis"=>"(GMT+12:00) Wallis",
647
+ "Pacific/Apia"=>"(GMT+13:00) Apia",
648
+ "Pacific/Enderbury"=>"(GMT+13:00) Enderbury",
649
+ "Pacific/Fakaofo"=>"(GMT+13:00) Fakaofo",
650
+ "Pacific/Tongatapu"=>"(GMT+13:00) Tongatapu",
651
+ "Pacific/Kiritimati"=>"(GMT+14:00) Kiritimati"
652
+ );
653
+ }
654
+ }
helpers/MultipleChoiceButton.php ADDED
@@ -0,0 +1,242 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ycd;
3
+
4
+ class MultipleChoiceButton {
5
+
6
+ private $buttonsData = array();
7
+ private $savedValue = '';
8
+ private $template = array();
9
+ private $buttonPosition = 'right';
10
+ private $fields = array();
11
+
12
+ /**
13
+ * RadioButtons constructor.
14
+ *
15
+ * @since 1.0.6
16
+ *
17
+ * @param $buttonsData
18
+ * @param $savedValue
19
+ */
20
+ public function __construct($buttonsData, $savedValue) {
21
+ $this->setButtonsData($buttonsData);
22
+ $this->setSavedValue($savedValue);
23
+ $this->prepareBuild();
24
+ }
25
+
26
+ public function __toString() {
27
+ return $this->render();
28
+ }
29
+
30
+ public function setButtonsData($buttonsData) {
31
+ $this->buttonsData = $buttonsData;
32
+ }
33
+
34
+ public function getButtonsData() {
35
+ return $this->buttonsData;
36
+ }
37
+
38
+ /**
39
+ * Radio buttons saved value
40
+ *
41
+ * @since 1.0.6
42
+ *
43
+ * @param string $savedValue
44
+ */
45
+ public function setSavedValue($savedValue) {
46
+ $this->savedValue = $savedValue;
47
+ }
48
+
49
+ public function getSavedValue() {
50
+ return $this->savedValue;
51
+ }
52
+
53
+ /**
54
+ * Radio buttons template
55
+ *
56
+ * @since 1.0.6
57
+ *
58
+ * @param array $template
59
+ */
60
+ public function setTemplate($template) {
61
+ $this->template = $template;
62
+ }
63
+
64
+ public function getTemplate() {
65
+ return $this->template;
66
+ }
67
+
68
+ /**
69
+ * Radio buttons position
70
+ *
71
+ * @since 1.0.6
72
+ *
73
+ * @param string $buttonPosition
74
+ */
75
+ public function setButtonPosition($buttonPosition) {
76
+ $this->buttonPosition = $buttonPosition;
77
+ }
78
+
79
+ public function getButtonPosition() {
80
+ return $this->buttonPosition;
81
+ }
82
+
83
+ /**
84
+ * Fields Data
85
+ *
86
+ * @since 1.0.6
87
+ *
88
+ * @param array $fields
89
+ */
90
+ public function setFields($fields) {
91
+ $this->fields = $fields;
92
+ }
93
+
94
+ public function getFields() {
95
+ return $this->fields;
96
+ }
97
+
98
+ private function prepareBuild() {
99
+ $buttonsData = $this->getButtonsData();
100
+
101
+ if(!empty($buttonsData['template'])) {
102
+ $this->setTemplate($buttonsData['template']);
103
+ }
104
+ if(!empty($buttonsData['buttonPosition'])) {
105
+ $this->setButtonPosition($buttonsData['buttonPosition']);
106
+ }
107
+ if(!empty($buttonsData['fields'])) {
108
+ $this->setFields($buttonsData['fields']);
109
+ }
110
+ }
111
+
112
+ public function render() {
113
+ ob_start();
114
+ ?>
115
+ <div class="ycd-buttons-wrapper">
116
+ <?php echo $this->renderFields()?>
117
+ </div>
118
+ <?php
119
+ $content = ob_get_contents();
120
+ ob_get_clean();
121
+
122
+ return $content;
123
+ }
124
+
125
+ private function renderFields() {
126
+ $fields = $this->getFields();
127
+ $groupAttrStr = '';
128
+ $template = $this->getTemplate();
129
+ $buttonPosition = $this->getButtonPosition();
130
+ $buttonsView = '';
131
+
132
+ if(empty($fields)) {
133
+ return $buttonsView;
134
+ }
135
+
136
+ if(!empty($template['groupWrapperAttr'])) {
137
+ $groupAttrStr = $this->createAttrs($template['groupWrapperAttr']);
138
+ }
139
+
140
+ foreach($fields as $field) {
141
+ $labelView = $this->createLabel($field);
142
+ $radioButton = $this->createRadioButton($field);
143
+
144
+ $buttonsView .= "<div $groupAttrStr>";
145
+
146
+ if($buttonPosition == 'right') {
147
+ $buttonsView .= $labelView.$radioButton;
148
+ }
149
+ else {
150
+ $buttonsView .= $radioButton.$labelView;
151
+ }
152
+ $buttonsView .= '</div>';
153
+ }
154
+ return $buttonsView;
155
+ }
156
+
157
+ private function createRadioButton($field) {
158
+ $template = $this->getTemplate();
159
+ $savedValue = $this->getSavedValue();
160
+ $parentAttrsStr = '';
161
+ $inputAttrStr = '';
162
+ $value = '';
163
+ $checked = '';
164
+
165
+ if(!empty($template['fieldWrapperAttr'])) {
166
+ $parentAttrsStr = $this->createAttrs($template['fieldWrapperAttr']);
167
+ }
168
+
169
+ if(!empty($field['attr'])) {
170
+
171
+ if(!empty($field['attr']['value'])) {
172
+ $value = $field['attr']['value'];
173
+ }
174
+
175
+ $inputAttrStr = $this->createAttrs($field['attr']);
176
+ }
177
+
178
+ if($savedValue == $value) {
179
+ $checked = 'checked';
180
+ }
181
+
182
+ $label = "<div $parentAttrsStr>";
183
+ $label .= "<input id='".$value."' $inputAttrStr $checked >";
184
+ $label .= '</div>';
185
+
186
+ return $label;
187
+ }
188
+
189
+ private function createLabel($field) {
190
+ $template = $this->getTemplate();
191
+ $parentAttrsStr = '';
192
+ $label = '';
193
+ $value = '';
194
+ $labelName = '';
195
+
196
+ if(empty($field['label'])) {
197
+ return $label;
198
+ }
199
+
200
+ if(!empty($field['attr']['value'])) {
201
+ $value = $field['attr']['value'];
202
+ }
203
+
204
+ $labelData = $field['label'];
205
+ if(!empty($template['labelAttr'])) {
206
+ $parentAttrsStr = $this->createAttrs($template['labelAttr']);
207
+ }
208
+
209
+ if (!empty($labelData['name'])) {
210
+ $labelName = $labelData['name'];
211
+ }
212
+
213
+ $label = "<div $parentAttrsStr>";
214
+ $label .= "<label for='".$value."'>$labelName</label>";
215
+ $label .= '</div>';
216
+
217
+ return $label;
218
+ }
219
+
220
+ /**
221
+ * Create html attrs
222
+ *
223
+ * @since 1.0.6
224
+ *
225
+ * @param array $attrs
226
+ *
227
+ * @return string $attrStr
228
+ */
229
+ private function createAttrs($attrs) {
230
+ $attrStr = '';
231
+
232
+ if (empty($attrs)) {
233
+ return $attrStr;
234
+ }
235
+
236
+ foreach ($attrs as $attrKey => $attrValue) {
237
+ $attrStr .= $attrKey.'="'.$attrValue.'" ';
238
+ }
239
+
240
+ return $attrStr;
241
+ }
242
+ }
helpers/ScriptsIncluder.php ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ycd;
3
+
4
+ class ScriptsIncluder {
5
+ /**
6
+ * Countdown register style
7
+ *
8
+ * @since 1.0.0
9
+ *
10
+ * @param string $fileName file address
11
+ * @param array $args wordpress register style args dep|ver|media|dirUrl
12
+ *
13
+ * @return void
14
+ */
15
+ public static function registerStyle($fileName, $args = array()) {
16
+ if(empty($fileName)) {
17
+ return;
18
+ }
19
+
20
+ $dep = array();
21
+ $ver = YCD_VERSION;
22
+ $media = 'all';
23
+ $dirUrl = YCD_COUNTDOWN_CSS_URL;
24
+
25
+ if(!empty($args['dep'])) {
26
+ $dep = $args['dep'];
27
+ }
28
+
29
+ if(!empty($args['ver'])) {
30
+ $ver = $args['ver'];
31
+ }
32
+
33
+ if(!empty($args['media'])) {
34
+ $media = $args['media'];
35
+ }
36
+
37
+ if(!empty($args['dirUrl'])) {
38
+ $dirUrl = $args['dirUrl'];
39
+ }
40
+
41
+ wp_register_style($fileName, $dirUrl.''.$fileName, $dep, $ver, $media);
42
+ }
43
+
44
+ /**
45
+ * Countdown register style
46
+ *
47
+ * @since 1.0.0
48
+ *
49
+ * @param string $fileName file address
50
+ *
51
+ * @return void
52
+ */
53
+ public static function enqueueStyle($fileName) {
54
+ if(empty($fileName)) {
55
+ return;
56
+ }
57
+
58
+ wp_enqueue_style($fileName);
59
+ }
60
+
61
+ /**
62
+ * Countdown register style
63
+ *
64
+ * @since 1.0.0
65
+ *
66
+ * @param string $fileName file address
67
+ * @param array $args wordpress register script args dep|ver|inFooter|dirUrl
68
+ *
69
+ * @return void
70
+ */
71
+ public static function registerScript($fileName, $args = array()) {
72
+ if(empty($fileName)) {
73
+ return;
74
+ }
75
+
76
+ $dep = array();
77
+ $ver = YCD_VERSION;
78
+ $inFooter = false;
79
+ $dirUrl = YCD_COUNTDOWN_JS_URL;
80
+
81
+ if(!empty($args['dep'])) {
82
+ $dep = $args['dep'];
83
+ }
84
+
85
+ if(!empty($args['ver'])) {
86
+ $ver = $args['ver'];
87
+ }
88
+
89
+ if(!empty($args['inFooter'])) {
90
+ $inFooter = $args['inFooter'];
91
+ }
92
+
93
+ if(!empty($args['dirUrl'])) {
94
+ $dirUrl = $args['dirUrl'];
95
+ }
96
+
97
+ wp_register_script($fileName, $dirUrl.''.$fileName, $dep, $ver, $inFooter);
98
+ }
99
+
100
+ /**
101
+ * Countdown register style
102
+ *
103
+ * @since 1.0.0
104
+ *
105
+ * @param string $fileName file address
106
+ *
107
+ * @return void
108
+ */
109
+ public static function enqueueScript($fileName) {
110
+ if(empty($fileName)) {
111
+ return;
112
+ }
113
+
114
+ wp_enqueue_script($fileName);
115
+ }
116
+
117
+ public static function localizeScript($handle, $name, $data) {
118
+ wp_localize_script($handle, $name, $data);
119
+ }
120
+ }
readme.txt ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === Countdown builder ===
2
+ Contributors: adamskaat
3
+ Tags: countdown, timer, countdown timer
4
+ Requires at least: 3.8
5
+ Tested up to: 4.9.4
6
+ Stable tag: 1.2.1
7
+ Requires PHP: 5.3
8
+ License: GPLv2 or later
9
+ License URI: https://www.gnu.org/licenses/gpl-2.0.html
10
+
11
+ Countdown builder – Customizable Countdown Timer
12
+
13
+ == Description ==
14
+
15
+ Countdown builder – Customizable Countdown Timer
16
+ A very simple plugin to add <sriong>countdown</strong> timer to your website.
17
+ <strong>Countdown</strong> timer allow you to create nice and functional Countdown timer just in a few minutes.
18
+ This is the best way to create beautiful <strong>Countdown</strong> for your users.
19
+ You can use our Countdown timer in your posts/pages via shrot code example like this
20
+ [ycd_countdown id=73]
21
+
22
+ == Installation ==
23
+
24
+ Coming soon
25
+
26
+ == Frequently Asked Questions ==
27
+
28
+ Coming soon
29
+
30
+ == Changelog ==
31
+
32
+ = 1.2.1 =
33
+ * Countdown responsiveness
34
+ * Countdown alignment
35
+ * Countdown On of logic
36
+ * Hide on mobile devices (pro)
37
+ * Show on mobile devices (pro)
38
+ * Bug fixes
39
+ * Code optimization
40
+
41
+ = 1.2.0 =
42
+ * Shortcode view improvment
43
+ * Bug fixed
44
+ * Code optimization
45
+ * Flip clock NEW countdown type (Pro)
46
+
47
+ = 1.0.9 =
48
+ * Time Zone
49
+ * Circle Countdown Popup type (Pro)
50
+ * code improvement
51
+
52
+ = 1.0.8 =
53
+ * Countdown padding
54
+ * Start Angle
55
+ * Font Size
56
+ * Font Weight
57
+ * Countdown padding
58
+ * Font Family (PRO)
59
+ * Countdown Days Text Color (PRO)
60
+ * Countdown Hours Text Color (PRO)
61
+ * Countdown Minutes Text Color (PRO)
62
+ * Countdown Seconds Text Color (PRO)
63
+ * Background Circle (PRO)
64
+ * Background Image (PRO)
65
+
66
+ = 1.0.6 =
67
+ * Circle Width
68
+ * Background Width
69
+ * Countdown Days Color (PRO)
70
+ * Countdown Hours Color (PRO)
71
+ * Countdown Minutes Color (PRO)
72
+ * Countdown Seconds Color (PRO)
73
+ * After Countdown Expire Default
74
+ * After Countdown Expire Hide Countdown
75
+ * After Countdown Expire Show Text (PRO)
76
+ * After Countdown Expire Redirect To URL (PRO)
77
+ * Bug fixed
78
+ * Design fixed
79
+
80
+ = 1.0.5 =
81
+ * Countdown live preview
82
+ * js code optimization
83
+
84
+ = 1.0.4 =
85
+ * Countdown background circle
86
+ * Countdown direction
87
+ * Countdown bug fixed
88
+
89
+ = 1.0.3 =
90
+ * Countdown days on of logic
91
+ * Countdown days text
92
+ * Countdown hours on of logic
93
+ * Countdown hours text
94
+ * Countdown minutes on of logic
95
+ * Countdown minutes text
96
+ * Countdown seconds on of logic
97
+ * Countdown seconds text
98
+ * Countdown js code optimization
99
+ * Countdown admin design improvement
100
+
101
+ = 1.0.2 =
102
+ * Countdown width
103
+ * Bug fixed
104
+
105
+ = 1.0.1 =
106
+ * Countdown animation
107
+ * Code improvement
108
+
109
+ = 1.0 =
110
+ * Plugin publish