Countdown, Coming Soon – Countdown & Clock - Version 2.3.9.4

Version Description

Download this release

Release Info

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

Code changes from version 2.3.9.3 to 2.3.9.4

assets/js/moment-timezone.js DELETED
@@ -1,696 +0,0 @@
1
- //! moment-timezone.js
2
- //! version : 0.5.34
3
- //! Copyright (c) JS Foundation and other contributors
4
- //! license : MIT
5
- //! github.com/moment/moment-timezone
6
-
7
- (function (root, factory) {
8
- "use strict";
9
-
10
- /*global define*/
11
- if (typeof module === 'object' && module.exports) {
12
- module.exports = factory(require('moment')); // Node
13
- } else if (typeof define === 'function' && define.amd) {
14
- define(['moment'], factory); // AMD
15
- } else {
16
- factory(root.moment); // Browser
17
- }
18
- }(this, function (moment) {
19
- "use strict";
20
-
21
- // Resolves es6 module loading issue
22
- if (moment.version === undefined && moment.default) {
23
- moment = moment.default;
24
- }
25
-
26
- // Do not load moment-timezone a second time.
27
- // if (moment.tz !== undefined) {
28
- // logError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);
29
- // return moment;
30
- // }
31
-
32
- var VERSION = "0.5.34",
33
- zones = {},
34
- links = {},
35
- countries = {},
36
- names = {},
37
- guesses = {},
38
- cachedGuess;
39
-
40
- if (!moment || typeof moment.version !== 'string') {
41
- logError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/');
42
- }
43
-
44
- var momentVersion = moment.version.split('.'),
45
- major = +momentVersion[0],
46
- minor = +momentVersion[1];
47
-
48
- // Moment.js version check
49
- if (major < 2 || (major === 2 && minor < 6)) {
50
- logError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');
51
- }
52
-
53
- /************************************
54
- Unpacking
55
- ************************************/
56
-
57
- function charCodeToInt(charCode) {
58
- if (charCode > 96) {
59
- return charCode - 87;
60
- } else if (charCode > 64) {
61
- return charCode - 29;
62
- }
63
- return charCode - 48;
64
- }
65
-
66
- function unpackBase60(string) {
67
- var i = 0,
68
- parts = string.split('.'),
69
- whole = parts[0],
70
- fractional = parts[1] || '',
71
- multiplier = 1,
72
- num,
73
- out = 0,
74
- sign = 1;
75
-
76
- // handle negative numbers
77
- if (string.charCodeAt(0) === 45) {
78
- i = 1;
79
- sign = -1;
80
- }
81
-
82
- // handle digits before the decimal
83
- for (i; i < whole.length; i++) {
84
- num = charCodeToInt(whole.charCodeAt(i));
85
- out = 60 * out + num;
86
- }
87
-
88
- // handle digits after the decimal
89
- for (i = 0; i < fractional.length; i++) {
90
- multiplier = multiplier / 60;
91
- num = charCodeToInt(fractional.charCodeAt(i));
92
- out += num * multiplier;
93
- }
94
-
95
- return out * sign;
96
- }
97
-
98
- function arrayToInt (array) {
99
- for (var i = 0; i < array.length; i++) {
100
- array[i] = unpackBase60(array[i]);
101
- }
102
- }
103
-
104
- function intToUntil (array, length) {
105
- for (var i = 0; i < length; i++) {
106
- array[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds
107
- }
108
-
109
- array[length - 1] = Infinity;
110
- }
111
-
112
- function mapIndices (source, indices) {
113
- var out = [], i;
114
-
115
- for (i = 0; i < indices.length; i++) {
116
- out[i] = source[indices[i]];
117
- }
118
-
119
- return out;
120
- }
121
-
122
- function unpack (string) {
123
- var data = string.split('|'),
124
- offsets = data[2].split(' '),
125
- indices = data[3].split(''),
126
- untils = data[4].split(' ');
127
-
128
- arrayToInt(offsets);
129
- arrayToInt(indices);
130
- arrayToInt(untils);
131
-
132
- intToUntil(untils, indices.length);
133
-
134
- return {
135
- name : data[0],
136
- abbrs : mapIndices(data[1].split(' '), indices),
137
- offsets : mapIndices(offsets, indices),
138
- untils : untils,
139
- population : data[5] | 0
140
- };
141
- }
142
-
143
- /************************************
144
- Zone object
145
- ************************************/
146
-
147
- function Zone (packedString) {
148
- if (packedString) {
149
- this._set(unpack(packedString));
150
- }
151
- }
152
-
153
- Zone.prototype = {
154
- _set : function (unpacked) {
155
- this.name = unpacked.name;
156
- this.abbrs = unpacked.abbrs;
157
- this.untils = unpacked.untils;
158
- this.offsets = unpacked.offsets;
159
- this.population = unpacked.population;
160
- },
161
-
162
- _index : function (timestamp) {
163
- var target = +timestamp,
164
- untils = this.untils,
165
- i;
166
-
167
- for (i = 0; i < untils.length; i++) {
168
- if (target < untils[i]) {
169
- return i;
170
- }
171
- }
172
- },
173
-
174
- countries : function () {
175
- var zone_name = this.name;
176
- return Object.keys(countries).filter(function (country_code) {
177
- return countries[country_code].zones.indexOf(zone_name) !== -1;
178
- });
179
- },
180
-
181
- parse : function (timestamp) {
182
- var target = +timestamp,
183
- offsets = this.offsets,
184
- untils = this.untils,
185
- max = untils.length - 1,
186
- offset, offsetNext, offsetPrev, i;
187
-
188
- for (i = 0; i < max; i++) {
189
- offset = offsets[i];
190
- offsetNext = offsets[i + 1];
191
- offsetPrev = offsets[i ? i - 1 : i];
192
-
193
- if (offset < offsetNext && tz.moveAmbiguousForward) {
194
- offset = offsetNext;
195
- } else if (offset > offsetPrev && tz.moveInvalidForward) {
196
- offset = offsetPrev;
197
- }
198
-
199
- if (target < untils[i] - (offset * 60000)) {
200
- return offsets[i];
201
- }
202
- }
203
-
204
- return offsets[max];
205
- },
206
-
207
- abbr : function (mom) {
208
- return this.abbrs[this._index(mom)];
209
- },
210
-
211
- offset : function (mom) {
212
- logError("zone.offset has been deprecated in favor of zone.utcOffset");
213
- return this.offsets[this._index(mom)];
214
- },
215
-
216
- utcOffset : function (mom) {
217
- return this.offsets[this._index(mom)];
218
- }
219
- };
220
-
221
- /************************************
222
- Country object
223
- ************************************/
224
-
225
- function Country (country_name, zone_names) {
226
- this.name = country_name;
227
- this.zones = zone_names;
228
- }
229
-
230
- /************************************
231
- Current Timezone
232
- ************************************/
233
-
234
- function OffsetAt(at) {
235
- var timeString = at.toTimeString();
236
- var abbr = timeString.match(/\([a-z ]+\)/i);
237
- if (abbr && abbr[0]) {
238
- // 17:56:31 GMT-0600 (CST)
239
- // 17:56:31 GMT-0600 (Central Standard Time)
240
- abbr = abbr[0].match(/[A-Z]/g);
241
- abbr = abbr ? abbr.join('') : undefined;
242
- } else {
243
- // 17:56:31 CST
244
- // 17:56:31 GMT+0800 (台北標準時間)
245
- abbr = timeString.match(/[A-Z]{3,5}/g);
246
- abbr = abbr ? abbr[0] : undefined;
247
- }
248
-
249
- if (abbr === 'GMT') {
250
- abbr = undefined;
251
- }
252
-
253
- this.at = +at;
254
- this.abbr = abbr;
255
- this.offset = at.getTimezoneOffset();
256
- }
257
-
258
- function ZoneScore(zone) {
259
- this.zone = zone;
260
- this.offsetScore = 0;
261
- this.abbrScore = 0;
262
- }
263
-
264
- ZoneScore.prototype.scoreOffsetAt = function (offsetAt) {
265
- this.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);
266
- if (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {
267
- this.abbrScore++;
268
- }
269
- };
270
-
271
- function findChange(low, high) {
272
- var mid, diff;
273
-
274
- while ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) {
275
- mid = new OffsetAt(new Date(low.at + diff));
276
- if (mid.offset === low.offset) {
277
- low = mid;
278
- } else {
279
- high = mid;
280
- }
281
- }
282
-
283
- return low;
284
- }
285
-
286
- function userOffsets() {
287
- var startYear = new Date().getFullYear() - 2,
288
- last = new OffsetAt(new Date(startYear, 0, 1)),
289
- offsets = [last],
290
- change, next, i;
291
-
292
- for (i = 1; i < 48; i++) {
293
- next = new OffsetAt(new Date(startYear, i, 1));
294
- if (next.offset !== last.offset) {
295
- change = findChange(last, next);
296
- offsets.push(change);
297
- offsets.push(new OffsetAt(new Date(change.at + 6e4)));
298
- }
299
- last = next;
300
- }
301
-
302
- for (i = 0; i < 4; i++) {
303
- offsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));
304
- offsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));
305
- }
306
-
307
- return offsets;
308
- }
309
-
310
- function sortZoneScores (a, b) {
311
- if (a.offsetScore !== b.offsetScore) {
312
- return a.offsetScore - b.offsetScore;
313
- }
314
- if (a.abbrScore !== b.abbrScore) {
315
- return a.abbrScore - b.abbrScore;
316
- }
317
- if (a.zone.population !== b.zone.population) {
318
- return b.zone.population - a.zone.population;
319
- }
320
- return b.zone.name.localeCompare(a.zone.name);
321
- }
322
-
323
- function addToGuesses (name, offsets) {
324
- var i, offset;
325
- arrayToInt(offsets);
326
- for (i = 0; i < offsets.length; i++) {
327
- offset = offsets[i];
328
- guesses[offset] = guesses[offset] || {};
329
- guesses[offset][name] = true;
330
- }
331
- }
332
-
333
- function guessesForUserOffsets (offsets) {
334
- var offsetsLength = offsets.length,
335
- filteredGuesses = {},
336
- out = [],
337
- i, j, guessesOffset;
338
-
339
- for (i = 0; i < offsetsLength; i++) {
340
- guessesOffset = guesses[offsets[i].offset] || {};
341
- for (j in guessesOffset) {
342
- if (guessesOffset.hasOwnProperty(j)) {
343
- filteredGuesses[j] = true;
344
- }
345
- }
346
- }
347
-
348
- for (i in filteredGuesses) {
349
- if (filteredGuesses.hasOwnProperty(i)) {
350
- out.push(names[i]);
351
- }
352
- }
353
-
354
- return out;
355
- }
356
-
357
- function rebuildGuess () {
358
-
359
- // use Intl API when available and returning valid time zone
360
- try {
361
- var intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;
362
- if (intlName && intlName.length > 3) {
363
- var name = names[normalizeName(intlName)];
364
- if (name) {
365
- return name;
366
- }
367
- logError("Moment Timezone found " + intlName + " from the Intl api, but did not have that data loaded.");
368
- }
369
- } catch (e) {
370
- // Intl unavailable, fall back to manual guessing.
371
- }
372
-
373
- var offsets = userOffsets(),
374
- offsetsLength = offsets.length,
375
- guesses = guessesForUserOffsets(offsets),
376
- zoneScores = [],
377
- zoneScore, i, j;
378
-
379
- for (i = 0; i < guesses.length; i++) {
380
- zoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);
381
- for (j = 0; j < offsetsLength; j++) {
382
- zoneScore.scoreOffsetAt(offsets[j]);
383
- }
384
- zoneScores.push(zoneScore);
385
- }
386
-
387
- zoneScores.sort(sortZoneScores);
388
-
389
- return zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;
390
- }
391
-
392
- function guess (ignoreCache) {
393
- if (!cachedGuess || ignoreCache) {
394
- cachedGuess = rebuildGuess();
395
- }
396
- return cachedGuess;
397
- }
398
-
399
- /************************************
400
- Global Methods
401
- ************************************/
402
-
403
- function normalizeName (name) {
404
- return (name || '').toLowerCase().replace(/\//g, '_');
405
- }
406
-
407
- function addZone (packed) {
408
- var i, name, split, normalized;
409
-
410
- if (typeof packed === "string") {
411
- packed = [packed];
412
- }
413
-
414
- for (i = 0; i < packed.length; i++) {
415
- split = packed[i].split('|');
416
- name = split[0];
417
- normalized = normalizeName(name);
418
- zones[normalized] = packed[i];
419
- names[normalized] = name;
420
- addToGuesses(normalized, split[2].split(' '));
421
- }
422
- }
423
-
424
- function getZone (name, caller) {
425
-
426
- name = normalizeName(name);
427
-
428
- var zone = zones[name];
429
- var link;
430
-
431
- if (zone instanceof Zone) {
432
- return zone;
433
- }
434
-
435
- if (typeof zone === 'string') {
436
- zone = new Zone(zone);
437
- zones[name] = zone;
438
- return zone;
439
- }
440
-
441
- // Pass getZone to prevent recursion more than 1 level deep
442
- if (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {
443
- zone = zones[name] = new Zone();
444
- zone._set(link);
445
- zone.name = names[name];
446
- return zone;
447
- }
448
-
449
- return null;
450
- }
451
-
452
- function getNames () {
453
- var i, out = [];
454
-
455
- for (i in names) {
456
- if (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {
457
- out.push(names[i]);
458
- }
459
- }
460
-
461
- return out.sort();
462
- }
463
-
464
- function getCountryNames () {
465
- return Object.keys(countries);
466
- }
467
-
468
- function addLink (aliases) {
469
- var i, alias, normal0, normal1;
470
-
471
- if (typeof aliases === "string") {
472
- aliases = [aliases];
473
- }
474
-
475
- for (i = 0; i < aliases.length; i++) {
476
- alias = aliases[i].split('|');
477
-
478
- normal0 = normalizeName(alias[0]);
479
- normal1 = normalizeName(alias[1]);
480
-
481
- links[normal0] = normal1;
482
- names[normal0] = alias[0];
483
-
484
- links[normal1] = normal0;
485
- names[normal1] = alias[1];
486
- }
487
- }
488
-
489
- function addCountries (data) {
490
- var i, country_code, country_zones, split;
491
- if (!data || !data.length) return;
492
- for (i = 0; i < data.length; i++) {
493
- split = data[i].split('|');
494
- country_code = split[0].toUpperCase();
495
- country_zones = split[1].split(' ');
496
- countries[country_code] = new Country(
497
- country_code,
498
- country_zones
499
- );
500
- }
501
- }
502
-
503
- function getCountry (name) {
504
- name = name.toUpperCase();
505
- return countries[name] || null;
506
- }
507
-
508
- function zonesForCountry(country, with_offset) {
509
- country = getCountry(country);
510
-
511
- if (!country) return null;
512
-
513
- var zones = country.zones.sort();
514
-
515
- if (with_offset) {
516
- return zones.map(function (zone_name) {
517
- var zone = getZone(zone_name);
518
- return {
519
- name: zone_name,
520
- offset: zone.utcOffset(new Date())
521
- };
522
- });
523
- }
524
-
525
- return zones;
526
- }
527
-
528
- function loadData (data) {
529
- addZone(data.zones);
530
- addLink(data.links);
531
- addCountries(data.countries);
532
- tz.dataVersion = data.version;
533
- }
534
-
535
- function zoneExists (name) {
536
- if (!zoneExists.didShowError) {
537
- zoneExists.didShowError = true;
538
- logError("moment.tz.zoneExists('" + name + "') has been deprecated in favor of !moment.tz.zone('" + name + "')");
539
- }
540
- return !!getZone(name);
541
- }
542
-
543
- function needsOffset (m) {
544
- var isUnixTimestamp = (m._f === 'X' || m._f === 'x');
545
- return !!(m._a && (m._tzm === undefined) && !isUnixTimestamp);
546
- }
547
-
548
- function logError (message) {
549
- if (typeof console !== 'undefined' && typeof console.error === 'function') {
550
- console.error(message);
551
- }
552
- }
553
-
554
- /************************************
555
- moment.tz namespace
556
- ************************************/
557
-
558
- function tz (input) {
559
- var args = Array.prototype.slice.call(arguments, 0, -1),
560
- name = arguments[arguments.length - 1],
561
- zone = getZone(name),
562
- out = moment.utc.apply(null, args);
563
-
564
- if (zone && !moment.isMoment(input) && needsOffset(out)) {
565
- out.add(zone.parse(out), 'minutes');
566
- }
567
-
568
- out.tz(name);
569
-
570
- return out;
571
- }
572
-
573
- tz.version = VERSION;
574
- tz.dataVersion = '';
575
- tz._zones = zones;
576
- tz._links = links;
577
- tz._names = names;
578
- tz._countries = countries;
579
- tz.add = addZone;
580
- tz.link = addLink;
581
- tz.load = loadData;
582
- tz.zone = getZone;
583
- tz.zoneExists = zoneExists; // deprecated in 0.1.0
584
- tz.guess = guess;
585
- tz.names = getNames;
586
- tz.Zone = Zone;
587
- tz.unpack = unpack;
588
- tz.unpackBase60 = unpackBase60;
589
- tz.needsOffset = needsOffset;
590
- tz.moveInvalidForward = true;
591
- tz.moveAmbiguousForward = false;
592
- tz.countries = getCountryNames;
593
- tz.zonesForCountry = zonesForCountry;
594
-
595
- /************************************
596
- Interface with Moment.js
597
- ************************************/
598
-
599
- var fn = moment.fn;
600
-
601
- moment.tz = tz;
602
-
603
- moment.defaultZone = null;
604
-
605
- moment.updateOffset = function (mom, keepTime) {
606
- var zone = moment.defaultZone,
607
- offset;
608
-
609
- if (mom._z === undefined) {
610
- if (zone && needsOffset(mom) && !mom._isUTC) {
611
- mom._d = moment.utc(mom._a)._d;
612
- mom.utc().add(zone.parse(mom), 'minutes');
613
- }
614
- mom._z = zone;
615
- }
616
- if (mom._z) {
617
- offset = mom._z.utcOffset(mom);
618
- if (Math.abs(offset) < 16) {
619
- offset = offset / 60;
620
- }
621
- if (mom.utcOffset !== undefined) {
622
- var z = mom._z;
623
- mom.utcOffset(-offset, keepTime);
624
- mom._z = z;
625
- } else {
626
- mom.zone(offset, keepTime);
627
- }
628
- }
629
- };
630
-
631
- fn.tz = function (name, keepTime) {
632
- if (name) {
633
- if (typeof name !== 'string') {
634
- throw new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']');
635
- }
636
- this._z = getZone(name);
637
- if (this._z) {
638
- moment.updateOffset(this, keepTime);
639
- } else {
640
- logError("Moment Timezone has no data for " + name + ". See http://momentjs.com/timezone/docs/#/data-loading/.");
641
- }
642
- return this;
643
- }
644
- if (this._z) { return this._z.name; }
645
- };
646
-
647
- function abbrWrap (old) {
648
- return function () {
649
- if (this._z) { return this._z.abbr(this); }
650
- return old.call(this);
651
- };
652
- }
653
-
654
- function resetZoneWrap (old) {
655
- return function () {
656
- this._z = null;
657
- return old.apply(this, arguments);
658
- };
659
- }
660
-
661
- function resetZoneWrap2 (old) {
662
- return function () {
663
- if (arguments.length > 0) this._z = null;
664
- return old.apply(this, arguments);
665
- };
666
- }
667
-
668
- fn.zoneName = abbrWrap(fn.zoneName);
669
- fn.zoneAbbr = abbrWrap(fn.zoneAbbr);
670
- fn.utc = resetZoneWrap(fn.utc);
671
- fn.local = resetZoneWrap(fn.local);
672
- fn.utcOffset = resetZoneWrap2(fn.utcOffset);
673
-
674
- moment.tz.setDefault = function(name) {
675
- if (major < 2 || (major === 2 && minor < 9)) {
676
- logError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');
677
- }
678
- moment.defaultZone = name ? getZone(name) : null;
679
- return moment;
680
- };
681
-
682
- // Cloning a moment should include the _z property.
683
- var momentProperties = moment.momentProperties;
684
- if (Object.prototype.toString.call(momentProperties) === '[object Array]') {
685
- // moment 2.8.1+
686
- momentProperties.push('_z');
687
- momentProperties.push('_a');
688
- } else if (momentProperties) {
689
- // moment 2.7.0
690
- momentProperties._z = null;
691
- }
692
-
693
- // INJECT DATA
694
-
695
- return moment;
696
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/views/admin/comingSoon.php DELETED
@@ -1,23 +0,0 @@
1
- <?php
2
- use ycd\AdminHelper;
3
- $defaultData = AdminHelper::defaultData();
4
- ?>
5
- <div class="ycd-bootstrap-wrapper ycd-settings-wrapper">
6
- <form method="POST" action="<?php echo admin_url().'admin-post.php?action=ycdComingSoon'?>">
7
- <div class="row">
8
- <div class="col-lg-8">
9
- <div class="row form-group">
10
- <label class="savae-changes-label"><?php _e('Change settings'); ?></label>
11
- <div class="pull-right">
12
- <input type="submit" class="btn btn-primary" value="Save Changes">
13
- </div>
14
- </div>
15
- <?php require_once YCD_ADMIN_VIEWS_PATH.'comingSoonSettings.php'; ?>
16
- <?php require_once YCD_ADMIN_VIEWS_PATH.'comingSoonHeader.php'; ?>
17
- <?php require_once YCD_ADMIN_VIEWS_PATH.'comingSoonDesign.php'; ?>
18
- </div>
19
- <div class="col-lg-6">
20
- </div>
21
- </div>
22
- </form>
23
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/views/timerMainView.php DELETED
@@ -1,395 +0,0 @@
1
- <?php
2
- use ycd\AdminHelper;
3
- $proSpan = '';
4
- $isPro = '';
5
- if(YCD_PKG_VERSION == YCD_FREE_VERSION) {
6
- $isPro = '-pro';
7
- $proSpan = '<span class="ycd-pro-span">'.__('pro', YCD_TEXT_DOMAIN).'</span>';
8
- }
9
- $defaultData = AdminHelper::defaultData();
10
- $textFontFamily = $this->getOptionValue('ycd-text-font-family');
11
- ?>
12
- <div class="ycd-bootstrap-wrapper">
13
- <div class="row form-group">
14
- <div class="col-md-6">
15
- <label class="ycd-label-of-input"><?php _e('Time Settings', YCD_TEXT_DOMAIN); ?></label>
16
- </div>
17
- <div class="col-md-2">
18
- <label for="ycdTimeHours"><?php _e('Hrs', YCD_TEXT_DOMAIN); ?></label>
19
- <input type="number" name="ycd-timer-hours" id="ycdTimeHours" min="0" max="60" class="form-control ycd-timer-time-settings" data-type="hours" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-hours'))?>">
20
- </div>
21
- <div class="col-md-2">
22
- <label for="ycdTimeMinutes"><?php _e('Mins', YCD_TEXT_DOMAIN); ?></label>
23
- <input type="number" name="ycd-timer-minutes" id="ycdTimeMinutes" min="0" max="60" class="form-control ycd-timer-time-settings" data-type="minutes" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-minutes'))?>">
24
- </div>
25
- <div class="col-md-2">
26
- <label for="ycdTimeSeconds"><?php _e('Secs', YCD_TEXT_DOMAIN); ?></label>
27
- <input type="number" name="ycd-timer-seconds" id="ycdTimeSeconds" min="0" max="60" class="form-control ycd-timer-time-settings" data-type="seconds" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-seconds'))?>">
28
- </div>
29
- </div>
30
- <div class="row form-group">
31
- <div class="col-md-6">
32
- <label for="ycd-countdown-timer-labels" class="ycd-label-of-switch"><?php _e('Enable Labels', YCD_TEXT_DOMAIN); ?></label>
33
- </div>
34
- <div class="col-md-6">
35
- <label class="ycd-switch">
36
- <input type="checkbox" id="ycd-countdown-timer-labels" name="ycd-countdown-timer-labels" class="ycd-accordion-checkbox" <?php echo $this->getOptionValue('ycd-countdown-timer-labels'); ?>>
37
- <span class="ycd-slider ycd-round"></span>
38
- </label>
39
- </div>
40
- </div>
41
- <div class="ycd-accordion-content ycd-hide-content">
42
- <div class="row form-group">
43
- <div class="col-md-4">
44
- <label class="ycd-label-of-input"><?php _e('Labels', YCD_TEXT_DOMAIN); ?></label>
45
- </div>
46
- <div class="col-md-2">
47
- <label for="ycd-timer-label-days"><?php _e('Days', YCD_TEXT_DOMAIN); ?></label>
48
- <input type="text" name="ycd-timer-label-days" id="ycd-timer-label-days" class="form-control ycd-timer-time-label" data-type="days" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-label-days'))?>">
49
- </div>
50
- <div class="col-md-2">
51
- <label for="ycd-timer-label-hours"><?php _e('Hrs', YCD_TEXT_DOMAIN); ?></label>
52
- <input type="text" name="ycd-timer-label-hours" id="ycd-timer-label-hours" class="form-control ycd-timer-time-label" data-type="hours" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-label-hours'))?>">
53
- </div>
54
- <div class="col-md-2">
55
- <label for="ycd-timer-label-minutes"><?php _e('Mins', YCD_TEXT_DOMAIN); ?></label>
56
- <input type="text" name="ycd-timer-label-minutes" id="ycd-timer-label-minutes" class="form-control ycd-timer-time-label" data-type="minutes" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-label-minutes'))?>">
57
- </div>
58
- <div class="col-md-2">
59
- <label for="ycd-timer-label-seconds"><?php _e('Secs', YCD_TEXT_DOMAIN); ?></label>
60
- <input type="text" name="ycd-timer-label-seconds" id="ycd-timer-label-seconds" class="form-control ycd-timer-time-label" data-type="seconds" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-label-seconds'))?>">
61
- </div>
62
- </div>
63
- </div>
64
- <div class="row form-group">
65
- <div class="col-md-6">
66
- <label for="ycd-countdown-timer-days" class="ycd-label-of-switch"><?php _e('Enable Days', YCD_TEXT_DOMAIN); ?></label>
67
- </div>
68
- <div class="col-md-6">
69
- <label class="ycd-switch">
70
- <input type="checkbox" id="ycd-countdown-timer-days" name="ycd-countdown-timer-days" class="ycd-accordion-checkbox" <?php echo $this->getOptionValue('ycd-countdown-timer-days'); ?>>
71
- <span class="ycd-slider ycd-round"></span>
72
- </label>
73
- </div>
74
- </div>
75
- <div class="ycd-accordion-content ycd-hide-content">
76
- <div class="row form-group">
77
- <div class="col-md-6">
78
- <label for="ycdTimeDays"><?php _e('Days', YCD_TEXT_DOMAIN); ?></label>
79
- </div>
80
- <div class="col-md-2">
81
- <input type="number" name="ycd-timer-days" id="ycdTimeDays" min="0" max="60" class="form-control ycd-timer-time-settings" data-type="days" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-days'))?>">
82
- </div>
83
- </div>
84
- </div>
85
-
86
- <div class="row form-group">
87
- <div class="col-md-6">
88
- <label for="ycd-countdown-timer-milliseconds" class="ycd-label-of-switch"><?php _e('Enable Miliseconds', YCD_TEXT_DOMAIN); ?></label>
89
- </div>
90
- <div class="col-md-6">
91
- <label class="ycd-switch">
92
- <input type="checkbox" id="ycd-countdown-timer-milliseconds" name="ycd-countdown-timer-milliseconds" <?php echo $this->getOptionValue('ycd-countdown-timer-milliseconds'); ?>>
93
- <span class="ycd-slider ycd-round"></span>
94
- </label>
95
- </div>
96
- </div>
97
- <div class="row form-group">
98
- <div class="col-md-6">
99
- <label for="ycd-countdown-timer-button" class="ycd-label-of-switch"><?php _e('Enable Button', YCD_TEXT_DOMAIN); ?></label>
100
- </div>
101
- <div class="col-md-6">
102
- <label class="ycd-switch">
103
- <input type="checkbox" id="ycd-countdown-timer-button" name="ycd-countdown-timer-button" class="ycd-accordion-checkbox" <?php echo $this->getOptionValue('ycd-countdown-timer-button'); ?>>
104
- <span class="ycd-slider ycd-round"></span>
105
- </label>
106
- </div>
107
- </div>
108
- <div class="ycd-accordion-content ycd-hide-content">
109
- <div class="row form-group">
110
- <div class="col-md-6">
111
- <label for="ycd-timer-auto-counting" ><?php _e('enable autocounting', YCD_TEXT_DOMAIN); ?></label>
112
- </div>
113
- <div class="col-md-4 ycd-timer-font-size">
114
- <label class="ycd-switch">
115
- <input type="checkbox" id="ycd-timer-auto-counting" name="ycd-timer-auto-counting" class="" <?php echo $this->getOptionValue('ycd-timer-auto-counting'); ?>>
116
- <span class="ycd-slider ycd-round"></span>
117
- </label>
118
- </div>
119
- </div>
120
- <div class="row form-group">
121
- <div class="col-md-6">
122
- <label for="ycd-timer-button-start-title" ><?php _e('start label', YCD_TEXT_DOMAIN); ?></label>
123
- </div>
124
- <div class="col-md-4 ycd-timer-font-size">
125
- <input id="ycd-timer-button-start-title" type="text" class="form-control" name="ycd-timer-button-start-title" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-button-start-title')); ?>">
126
- </div>
127
- </div>
128
- <div class="row form-group">
129
- <div class="col-md-6">
130
- <label for="ycd-timer-button-stop-title" ><?php _e('stop label', YCD_TEXT_DOMAIN); ?></label>
131
- </div>
132
- <div class="col-md-4 ycd-timer-font-size">
133
- <input id="ycd-timer-button-stop-title" type="text" class="form-control" name="ycd-timer-button-stop-title" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-button-stop-title')); ?>">
134
- </div>
135
- </div>
136
- <div class="row form-group">
137
- <div class="col-md-6">
138
- <label for="ycd-timer-button-stop-custom-class" ><?php _e('Custom class name', YCD_TEXT_DOMAIN); ?></label>
139
- </div>
140
- <div class="col-md-4 ycd-timer-font-size">
141
- <input id="ycd-timer-button-stop-custom-class" type="text" class="form-control" name="ycd-timer-button-stop-custom-class" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-button-stop-custom-class')); ?>">
142
- </div>
143
- </div>
144
- <div class="row form-group">
145
- <div class="col-md-6">
146
- <label for="ycd-timer-stop-bg-color" ><?php _e('background color', YCD_TEXT_DOMAIN); echo $proSpan; ?> </label>
147
- </div>
148
- <div class="col-md-4 ycd-timer-font-size ycd-option-wrapper<?php echo $isPro; ?>">
149
- <div class="minicolors minicolors-theme-default minicolors-position-bottom minicolors-position-left">
150
- <input type="text" id="ycd-timer-stop-bg-color" placeholder="<?php _e('Select color', YCD_TEXT_DOMAIN)?>" name="ycd-timer-stop-bg-color" class="minicolors-input form-control js-ycd-timer-stop-bg-color" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-stop-bg-color')); ?>">
151
- </div>
152
- </div>
153
- </div>
154
- <div class="row form-group">
155
- <div class="col-md-6">
156
- <label for="ycd-timer-stop-color" ><?php _e('color', YCD_TEXT_DOMAIN); echo $proSpan; ?> </label>
157
- </div>
158
- <div class="col-md-4 ycd-timer-font-size ycd-option-wrapper<?php echo $isPro; ?>">
159
- <div class="minicolors minicolors-theme-default minicolors-position-bottom minicolors-position-left">
160
- <input type="text" id="ycd-timer-stop-color" placeholder="<?php _e('Select color', YCD_TEXT_DOMAIN)?>" name="ycd-timer-stop-color" class="minicolors-input form-control js-ycd-timer-stop-color" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-stop-color')); ?>">
161
- </div>
162
- </div>
163
- </div>
164
- <div class="row form-group">
165
- <div class="col-md-6">
166
- <label for="ycd-timer-reset-button" ><?php _e('enable reset button', YCD_TEXT_DOMAIN); ?></label>
167
- </div>
168
- <div class="col-md-4 ycd-timer-font-size">
169
- <label class="ycd-switch">
170
- <input type="checkbox" id="ycd-timer-reset-button" name="ycd-timer-reset-button" class="ycd-accordion-checkbox" <?php echo $this->getOptionValue('ycd-timer-reset-button'); ?>>
171
- <span class="ycd-slider ycd-round"></span>
172
- </label>
173
- </div>
174
- </div>
175
- <div class="ycd-accordion-content ycd-hide-content">
176
- <div class="row form-group">
177
- <div class="col-md-6">
178
- <label for="ycd-timer-reset-button-label" ><?php _e('label', YCD_TEXT_DOMAIN); ?></label>
179
- </div>
180
- <div class="col-md-4 ycd-timer-font-size">
181
- <input id="ycd-timer-reset-button-label" type="text" class="form-control" name="ycd-timer-reset-button-label" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-reset-button-label')); ?>">
182
- </div>
183
- </div>
184
- <div class="row form-group">
185
- <div class="col-md-6">
186
- <label for="ycd-timer-reset-button-class-name" ><?php _e('Custom class name', YCD_TEXT_DOMAIN); ?></label>
187
- </div>
188
- <div class="col-md-4 ycd-timer-font-size">
189
- <input id="ycd-timer-reset-button-class-name" type="text" class="form-control" name="ycd-timer-reset-button-class-name" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-reset-button-class-name')); ?>">
190
- </div>
191
- </div>
192
- <div class="row form-group">
193
- <div class="col-md-6">
194
- <label for="ycd-timer-reset-button-run" ><?php _e('AutoPlay after restart', YCD_TEXT_DOMAIN); echo $proSpan; ?></label>
195
- </div>
196
- <div class="col-md-4 ycd-timer-font-size ycd-option-wrapper<?php echo $isPro; ?>">
197
- <label class="ycd-switch">
198
- <input type="checkbox" id="ycd-timer-reset-button-run" name="ycd-timer-reset-button-run" <?php echo $this->getOptionValue('ycd-timer-reset-button-run'); ?>>
199
- <span class="ycd-slider ycd-round"></span>
200
- </label>
201
- </div>
202
- </div>
203
- <div class="row form-group">
204
- <div class="col-md-6">
205
- <label for="ycd-timer-reset-bg-color" ><?php _e('background color', YCD_TEXT_DOMAIN); echo $proSpan; ?> </label>
206
- </div>
207
- <div class="col-md-4 ycd-timer-font-size ycd-option-wrapper<?php echo $isPro; ?>">
208
- <div class="minicolors minicolors-theme-default minicolors-position-bottom minicolors-position-left">
209
- <input type="text" id="ycd-timer-reset-bg-color" placeholder="<?php _e('Select color', YCD_TEXT_DOMAIN)?>" name="ycd-timer-reset-bg-color" class="minicolors-input form-control js-ycd-timer-reset-bg-color" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-reset-bg-color')); ?>">
210
- </div>
211
- </div>
212
- </div>
213
- <div class="row form-group">
214
- <div class="col-md-6">
215
- <label for="ycd-timer-reset-color" ><?php _e('color', YCD_TEXT_DOMAIN); echo $proSpan; ?> </label>
216
- </div>
217
- <div class="col-md-4 ycd-timer-font-size ycd-option-wrapper<?php echo $isPro; ?>">
218
- <div class="minicolors minicolors-theme-default minicolors-position-bottom minicolors-position-left">
219
- <input type="text" id="ycd-timer-reset-color" placeholder="<?php _e('Select color', YCD_TEXT_DOMAIN)?>" name="ycd-timer-reset-color" class="minicolors-input form-control js-ycd-timer-reset-color" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-reset-color')); ?>">
220
- </div>
221
- </div>
222
- </div>
223
- </div>
224
- </div>
225
- <div class="row form-group">
226
- <div class="col-md-6">
227
- <label for="ycd-countdown-end-sound" class="ycd-label-of-switch"><?php _e('Timer End Sound', YCD_TEXT_DOMAIN); ?></label>
228
- </div>
229
- <div class="col-md-6">
230
- <label class="ycd-switch">
231
- <input type="checkbox" id="ycd-countdown-end-sound" name="ycd-countdown-end-sound" class="ycd-accordion-checkbox" <?php echo $this->getOptionValue('ycd-countdown-end-sound'); ?>>
232
- <span class="ycd-slider ycd-round"></span>
233
- </label>
234
- </div>
235
- </div>
236
- <!-- Timer end sound sub options -->
237
- <div class="ycd-accordion-content ycd-hide-content">
238
- <div class="row form-group">
239
- <div class="col-md-2">
240
- <input id="js-upload-countdown-end-sound" class="btn btn-sm" type="button" value="<?php _e('Change sound', YCD_TEXT_DOMAIN); ?>">
241
- </div>
242
- <div class="col-md-4">
243
- <input type="button" data-default-song="<?= $this->getDefaultValue('ycd-countdown-end-sound-url'); ?>" id="js-reset-to-default-song" class="btn btn-sm btn-danger" value="<?php _e('Reset', YCD_TEXT_DOMAIN); ?>">
244
- </div>
245
- <div class="col-md-5">
246
- <input type="text" id="js-sound-open-url" readonly="" class="form-control input-sm" name="ycd-countdown-end-sound-url" value="<?= esc_attr($this->getOptionValue('ycd-countdown-end-sound-url')); ?>">
247
- </div>
248
- <div class="col-md-1">
249
- <span class="dashicons dashicons-controls-volumeon js-preview-sound"></span>
250
- </div>
251
- </div>
252
- </div>
253
- <!-- Timer end sound sub options end -->
254
- <div class="row form-group">
255
- <div class="col-md-6">
256
- <label for="ycd-countdown-text-size" class="ycd-label-of-select"><?php _e('Font Family', YCD_TEXT_DOMAIN); echo $proSpan; ?></label>
257
- </div>
258
- <div class="col-md-4 ycd-option-wrapper<?php echo $isPro; ?>">
259
- <?php echo AdminHelper::selectBox($defaultData['font-family'], esc_attr($textFontFamily), array('name' => 'ycd-text-font-family', 'class' => 'js-ycd-select js-countdown-font-family')); ?>
260
- </div>
261
- </div>
262
- <div class="row form-group">
263
- <div class="col-md-6">
264
- <label for="ycd-timer-font-size" ><?php _e('Font Size', YCD_TEXT_DOMAIN); ?></label>
265
- </div>
266
- <div class="col-md-4 ycd-timer-font-size">
267
- <input id="ycd-js-digital-font-size" type="text" name="ycd-timer-font-size" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-font-size')); ?>">
268
- </div>
269
- </div>
270
- <div class="row form-group">
271
- <div class="col-md-6">
272
- <label for="ycd-timer-font-size-label" ><?php _e('Labels Font Size', YCD_TEXT_DOMAIN); ?></label>
273
- </div>
274
- <div class="col-md-4 ycd-timer-font-size-label">
275
- <input id="ycd-js-digital-label-font-size" class="form-control" type="text" name="ycd-timer-font-size-label" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-font-size-label')); ?>">
276
- </div>
277
- <div class="col-md-1">
278
- <label><?php _e('px', YCD_TEXT_DOMAIN); ?></label>
279
- </div>
280
- </div>
281
- <div class="row form-group">
282
- <div class="col-md-6">
283
- <label for="ycd-timer-content-padding" ><?php _e('Content Padding', YCD_TEXT_DOMAIN); ?></label>
284
- </div>
285
- <div class="col-md-4 ycd-timer-font-size">
286
- <input id="ycd-timer-content-padding" class="form-control" type="text" name="ycd-timer-content-padding" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-content-padding')); ?>">
287
- </div>
288
- <div class="col-md-1">
289
- <label><?php _e('px', YCD_TEXT_DOMAIN); ?></label>
290
- </div>
291
- </div>
292
- <div class="row form-group">
293
- <div class="col-md-6">
294
- <label for="ycd-timer-content-alignment" ><?php _e('Alignment', YCD_TEXT_DOMAIN); ?></label>
295
- </div>
296
- <div class="col-md-4 ycd-timer-font-size">
297
- <?php echo AdminHelper::selectBox($defaultData['horizontal-alignment'], esc_attr($this->getOptionValue('ycd-timer-content-alignment')), array('name' => 'ycd-timer-content-alignment', 'class' => 'js-ycd-select ycd-timer-content-alignment')); ?>
298
- </div>
299
- </div>
300
- <div class="row form-group">
301
- <div class="col-md-6">
302
- <label for="ycd-timer-color" ><?php _e('Numbers Color', YCD_TEXT_DOMAIN); echo $proSpan; ?> </label>
303
- </div>
304
- <div class="col-md-4 ycd-timer-font-size ycd-option-wrapper<?php echo $isPro; ?>">
305
- <div class="minicolors minicolors-theme-default minicolors-position-bottom minicolors-position-left">
306
- <input type="text" id="ycd-timer-color" placeholder="<?php _e('Select color', YCD_TEXT_DOMAIN)?>" name="ycd-timer-color" class="minicolors-input form-control js-ycd-timer-color" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-color')); ?>">
307
- </div>
308
- </div>
309
- </div>
310
- <div class="row form-group">
311
- <div class="col-md-6">
312
- <label for="ycd-timer-bg-image" class="ycd-label-of-switch"><?php _e('Background Image', YCD_TEXT_DOMAIN); echo $proSpan; ?></label>
313
- </div>
314
- <div class="col-md-6 ycd-circles-width-wrapper ycd-option-wrapper<?php echo $isPro; ?>">
315
- <label class="ycd-switch">
316
- <input type="checkbox" id="ycd-timer-bg-image" name="ycd-timer-bg-image" class="ycd-accordion-checkbox js-ycd-bg-image" <?php echo $this->getOptionValue('ycd-timer-bg-image'); ?>>
317
- <span class="ycd-slider ycd-round"></span>
318
- </label>
319
- </div>
320
- </div>
321
- <div class="ycd-accordion-content ycd-hide-content">
322
- <div class="row form-group">
323
- <div class="col-md-6">
324
- <label for="" class="ycd-label-of-select"><?php _e('Background Size', YCD_TEXT_DOMAIN); ?></label>
325
- </div>
326
- <div class="col-md-6 ycd-circles-width-wrapper">
327
- <?php echo AdminHelper::selectBox($defaultData['bg-image-size'], esc_attr($this->getOptionValue('ycd-bg-image-size')), array('name' => 'ycd-bg-image-size', 'class' => 'js-ycd-select js-ycd-bg-size')); ?>
328
- </div>
329
- </div>
330
- <div class="row form-group">
331
- <div class="col-md-6">
332
- <label for="" class="ycd-label-of-select"><?php _e('Background Repeat', YCD_TEXT_DOMAIN); ?></label>
333
- </div>
334
- <div class="col-md-6 ycd-circles-width-wrapper">
335
- <?php echo AdminHelper::selectBox($defaultData['bg-image-repeat'], esc_attr($this->getOptionValue('ycd-bg-image-repeat')), array('name' => 'ycd-bg-image-repeat', 'class' => 'js-ycd-select js-bg-image-repeat')); ?>
336
- </div>
337
- </div>
338
- <div class="row form-group">
339
- <div class="col-md-6">
340
- <input id="js-upload-image-button" class="button js-countdown-image-btn" type="button" value="<?php _e('Select Image', YCD_TEXT_DOMAIN)?>">
341
- </div>
342
- <div class="col-md-6 ycd-circles-width-wrapper">
343
- <input type="url" name="ycd-bg-image-url" id="ycd-bg-image-url" class="form-control" value="<?php echo esc_attr($this->getOptionValue('ycd-bg-image-url')); ?>">
344
- </div>
345
- </div>
346
- </div>
347
- <div class="row form-group">
348
- <div class="col-md-12">
349
- <label for="ycd-timer-content-alignment" ><?php _e('Before timer', YCD_TEXT_DOMAIN); ?></label>
350
- </div>
351
- <div class="col-md-12 ycd-timer-font-size">
352
- <?php
353
- $editorId = 'ycd-before-timer-html';
354
- $beforeCountdown = $this->getOptionValue($editorId);
355
- $settings = array(
356
- 'wpautop' => false,
357
- 'tinymce' => array(
358
- 'width' => '100%'
359
- ),
360
- 'textarea_rows' => '6',
361
- 'media_buttons' => true
362
- );
363
- wp_editor($beforeCountdown, $editorId, $settings);
364
- ?>
365
- </div>
366
- </div>
367
- <div class="row form-group">
368
- <div class="col-md-12">
369
- <label for="ycd-timer-content-alignment" ><?php _e('After timer', YCD_TEXT_DOMAIN); ?></label>
370
- </div>
371
- <div class="col-md-12 ycd-timer-font-size">
372
- <?php
373
- $editorId = 'ycd-after-timer-html';
374
- $beforeCountdown = $this->getOptionValue($editorId);
375
- $settings = array(
376
- 'wpautop' => false,
377
- 'tinymce' => array(
378
- 'width' => '100%'
379
- ),
380
- 'textarea_rows' => '6',
381
- 'media_buttons' => true
382
- );
383
- wp_editor($beforeCountdown, $editorId, $settings);
384
- ?>
385
- </div>
386
- </div>
387
- <?php
388
- require_once YCD_VIEWS_PATH.'preview.php';
389
- ?>
390
- </div>
391
-
392
- <?php
393
- $type = $this->getCurrentTypeFromOptions();
394
- ?>
395
- <input type="hidden" name="ycd-type" value="<?= esc_attr($type); ?>">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
countdown-builder.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Plugin Name: Countdown builder
4
  * Description: The best countdown plugin by Adam skaat
5
- * Version: 2.3.9.3
6
  * Author: Adam Skaat
7
  * Author URI: https://edmonsoft.com/countdown
8
  * License: GPLv2
2
  /**
3
  * Plugin Name: Countdown builder
4
  * Description: The best countdown plugin by Adam skaat
5
+ * Version: 2.3.9.4
6
  * Author: Adam Skaat
7
  * Author URI: https://edmonsoft.com/countdown
8
  * License: GPLv2
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: adamskaat
3
  Tags: countdown, timer, countdown timer
4
  Requires at least: 3.8
5
  Tested up to: 5.9.3
6
- Stable tag: 2.3.9.3
7
  Requires PHP: 5.3
8
  License: GPLv2 or later
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
3
  Tags: countdown, timer, countdown timer
4
  Requires at least: 3.8
5
  Tested up to: 5.9.3
6
+ Stable tag: 2.3.9.4
7
  Requires PHP: 5.3
8
  License: GPLv2 or later
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html