fomantic-ui-sass 2.8.3 → 2.8.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +28 -0
- data/README.md +6 -0
- data/app/assets/fonts/semantic-ui/brand-icons.eot +0 -0
- data/app/assets/fonts/semantic-ui/brand-icons.svg +95 -56
- data/app/assets/fonts/semantic-ui/brand-icons.ttf +0 -0
- data/app/assets/fonts/semantic-ui/brand-icons.woff +0 -0
- data/app/assets/fonts/semantic-ui/brand-icons.woff2 +0 -0
- data/app/assets/fonts/semantic-ui/icons.eot +0 -0
- data/app/assets/fonts/semantic-ui/icons.svg +121 -88
- data/app/assets/fonts/semantic-ui/icons.ttf +0 -0
- data/app/assets/fonts/semantic-ui/icons.woff +0 -0
- data/app/assets/fonts/semantic-ui/icons.woff2 +0 -0
- data/app/assets/fonts/semantic-ui/outline-icons.eot +0 -0
- data/app/assets/fonts/semantic-ui/outline-icons.svg +10 -10
- data/app/assets/fonts/semantic-ui/outline-icons.ttf +0 -0
- data/app/assets/fonts/semantic-ui/outline-icons.woff +0 -0
- data/app/assets/fonts/semantic-ui/outline-icons.woff2 +0 -0
- data/app/assets/javascripts/semantic-ui/calendar.js +249 -60
- data/app/assets/javascripts/semantic-ui/checkbox.js +1 -1
- data/app/assets/javascripts/semantic-ui/dimmer.js +3 -3
- data/app/assets/javascripts/semantic-ui/dropdown.js +62 -23
- data/app/assets/javascripts/semantic-ui/form.js +78 -26
- data/app/assets/javascripts/semantic-ui/modal.js +9 -1
- data/app/assets/javascripts/semantic-ui/popup.js +6 -5
- data/app/assets/javascripts/semantic-ui/progress.js +20 -24
- data/app/assets/javascripts/semantic-ui/search.js +28 -0
- data/app/assets/javascripts/semantic-ui/slider.js +2 -2
- data/app/assets/javascripts/semantic-ui/tab.js +3 -2
- data/app/assets/javascripts/semantic-ui/toast.js +9 -7
- data/app/assets/javascripts/semantic-ui/visibility.js +1 -1
- data/app/assets/stylesheets/semantic-ui/collections/_form.scss +79 -117
- data/app/assets/stylesheets/semantic-ui/collections/_grid.scss +8 -6
- data/app/assets/stylesheets/semantic-ui/collections/_menu.scss +36 -35
- data/app/assets/stylesheets/semantic-ui/collections/_message.scss +4 -4
- data/app/assets/stylesheets/semantic-ui/collections/_table.scss +23 -17
- data/app/assets/stylesheets/semantic-ui/elements/_all.scss +1 -0
- data/app/assets/stylesheets/semantic-ui/elements/_button.scss +9 -3
- data/app/assets/stylesheets/semantic-ui/elements/_emoji.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_header.scss +8 -8
- data/app/assets/stylesheets/semantic-ui/elements/_icon.scss +124 -15
- data/app/assets/stylesheets/semantic-ui/elements/_image.scss +33 -4
- data/app/assets/stylesheets/semantic-ui/elements/_input.scss +48 -48
- data/app/assets/stylesheets/semantic-ui/elements/_label.scss +38 -2
- data/app/assets/stylesheets/semantic-ui/elements/_list.scss +12 -12
- data/app/assets/stylesheets/semantic-ui/elements/_segment.scss +7 -1
- data/app/assets/stylesheets/semantic-ui/elements/_step.scss +16 -9
- data/app/assets/stylesheets/semantic-ui/elements/_text.scss +15 -0
- data/app/assets/stylesheets/semantic-ui/modules/_calendar.scss +16 -9
- data/app/assets/stylesheets/semantic-ui/modules/_checkbox.scss +1 -0
- data/app/assets/stylesheets/semantic-ui/modules/_dimmer.scss +17 -14
- data/app/assets/stylesheets/semantic-ui/modules/_dropdown.scss +122 -32
- data/app/assets/stylesheets/semantic-ui/modules/_embed.scss +6 -6
- data/app/assets/stylesheets/semantic-ui/modules/_modal.scss +10 -6
- data/app/assets/stylesheets/semantic-ui/modules/_popup.scss +2 -0
- data/app/assets/stylesheets/semantic-ui/modules/_progress.scss +32 -3
- data/app/assets/stylesheets/semantic-ui/modules/_search.scss +90 -0
- data/app/assets/stylesheets/semantic-ui/modules/_shape.scss +1 -0
- data/app/assets/stylesheets/semantic-ui/modules/_sidebar.scss +2 -1
- data/app/assets/stylesheets/semantic-ui/modules/_slider.scss +9 -0
- data/app/assets/stylesheets/semantic-ui/modules/_toast.scss +7 -7
- data/app/assets/stylesheets/semantic-ui/modules/_transition.scss +34 -34
- data/app/assets/stylesheets/semantic-ui/views/_card.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/views/_feed.scss +5 -5
- data/app/assets/stylesheets/semantic-ui/views/_statistic.scss +4 -4
- data/lib/fomantic/ui/sass/version.rb +2 -2
- metadata +6 -6
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,12 +1,12 @@
|
|
1
1
|
<?xml version="1.0" standalone="no"?>
|
2
2
|
<!--
|
3
|
-
Font Awesome Free 5.
|
3
|
+
Font Awesome Free 5.12.0 by @fontawesome - https://fontawesome.com
|
4
4
|
License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
5
5
|
-->
|
6
6
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
7
7
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
|
8
8
|
<metadata>
|
9
|
-
Created by FontForge 20190801 at
|
9
|
+
Created by FontForge 20190801 at Tue Dec 10 16:09:21 2019
|
10
10
|
By Robert Madole
|
11
11
|
Copyright (c) Font Awesome
|
12
12
|
</metadata>
|
@@ -435,14 +435,14 @@ c-44.1123 0 -80 35.8877 -80 80v8c0 30.8779 25.1211 56 56 56h293.917c24.5 0 47.08
|
|
435
435
|
c-4.41113 0 -8 -3.58887 -8 -8v-8c0 -17.6445 14.3555 -32 32 -32h213.471c25.2021 0 42.626 -25.293 33.6299 -48.8457l-24.5518 -64.2812c-7.05371 -18.4658 -25.0732 -30.873 -44.8398 -30.873h-113.709c-22.0557 0 -40 -17.9443 -40 -40c0 -4.41113 3.58887 -8 8 -8
|
436
436
|
h131.552h0.0517578c7.44141 0 19.1074 -2.19238 26.041 -4.89355l99.752 -38.7881c18.5898 -7.22852 30.6035 -24.7881 30.6035 -44.7363v-23.582h128z" />
|
437
437
|
<glyph glyph-name="hand-spock" unicode=""
|
438
|
-
d="
|
439
|
-
|
440
|
-
c-
|
441
|
-
|
442
|
-
|
443
|
-
c-
|
444
|
-
|
445
|
-
|
438
|
+
d="M501.03 331.824c6.05762 -9.77832 10.9746 -27.0498 10.9746 -38.5518c0 -4.80664 -0.915039 -12.499 -2.04297 -17.1709l-57.623 -241.963c-12.748 -54.1729 -68.2627 -98.1387 -123.915 -98.1387h-0.345703h-107.455h-0.224609
|
439
|
+
c-33.8135 0 -81.2148 18.834 -105.807 42.041l-91.3652 85.9766c-12.8213 12.0469 -23.2266 36.1016 -23.2266 53.6943c0 16.1299 8.97266 38.7529 20.0273 50.499c5.31836 5.66406 29.875 29.3926 68.1152 21.8477l-24.3594 82.1973
|
440
|
+
c-1.68164 5.66406 -3.0459 15.0576 -3.0459 20.9668c0 37.5938 30.417 70.502 67.8955 73.4551c-0.204102 2.03125 -0.369141 5.33691 -0.369141 7.37891c0 31.627 24.8594 63.6895 55.4902 71.5684c43.248 10.9785 80.5645 -17.7012 89.6602 -53.0723l13.6836 -53.207
|
441
|
+
l4.64648 22.6602c6.76074 32.417 39.123 58.8115 72.2373 58.916c8.73438 0 56.625 -3.26953 70.7383 -54.0801c15.0664 0.710938 46.9199 -3.50977 66.3105 -35.0176zM463.271 287.219c7.86914 32.9844 -42.1211 45.2695 -50.0859 11.9219l-24.8008 -104.146
|
442
|
+
c-4.38867 -18.4141 -31.7783 -11.8926 -28.0557 6.2168l28.5479 139.166c7.39844 36.0703 -43.3076 45.0703 -50.1182 11.9629l-31.791 -154.971c-3.54883 -17.3086 -28.2832 -18.0469 -32.7109 -0.804688l-47.3262 184.035
|
443
|
+
c-8.43359 32.8105 -58.3691 20.2676 -49.8652 -12.8359l42.4414 -165.039c4.81641 -18.7207 -23.3711 -26.9121 -28.9648 -8.00781l-31.3438 105.779c-9.6875 32.6465 -59.1191 18.2578 -49.3867 -14.625l36.0137 -121.539
|
444
|
+
c5.61816 -18.9521 10.1777 -50.377 10.1777 -70.1436v-0.00878906c0 -6.54297 -8.05664 -10.9355 -13.4824 -5.82617l-51.123 48.1074c-24.7852 23.4082 -60.0527 -14.1875 -35.2793 -37.4902l91.3691 -85.9805c16.9629 -16.0068 49.6592 -28.998 72.9824 -28.998h0.154297
|
445
|
+
h107.455h0.216797c34.7402 0 69.3936 27.4443 77.3525 61.2598z" />
|
446
446
|
<glyph glyph-name="hand-pointer" unicode="" horiz-adv-x="448"
|
447
447
|
d="M358.182 268.639c43.1934 16.6348 89.8184 -15.7949 89.8184 -62.6387v-84c-0.000976562 -4.25 -0.775391 -11.0615 -1.72754 -15.2041l-27.4297 -118.999c-6.98242 -30.2969 -33.7549 -51.7969 -64.5566 -51.7969h-178.286c-21.2588 0 -41.3682 10.4102 -53.791 27.8457
|
448
448
|
l-109.699 154.001c-21.2432 29.8193 -14.8047 71.3574 14.5498 93.1523c18.8115 13.9658 42.1748 16.2822 62.083 8.87207v161.129c0 36.9443 29.7363 67 66.2861 67s66.2861 -30.0557 66.2861 -67v-73.6338c20.4131 2.85742 41.4678 -3.94238 56.5947 -19.6289
|
Binary file
|
Binary file
|
Binary file
|
@@ -42,7 +42,8 @@ $.fn.calendar = function(parameters) {
|
|
42
42
|
'15': {'row': 2, 'column': 2 },
|
43
43
|
'20': {'row': 3, 'column': 1 },
|
44
44
|
'30': {'row': 2, 'column': 1 }
|
45
|
-
}
|
45
|
+
},
|
46
|
+
numberText = ['','one','two','three','four','five','six','seven','eight']
|
46
47
|
;
|
47
48
|
|
48
49
|
$allModules
|
@@ -74,7 +75,10 @@ $.fn.calendar = function(parameters) {
|
|
74
75
|
|
75
76
|
isTouch,
|
76
77
|
isTouchDown = false,
|
78
|
+
isInverted = $module.hasClass(className.inverted),
|
77
79
|
focusDateUsedForRange = false,
|
80
|
+
selectionComplete = false,
|
81
|
+
classObserver,
|
78
82
|
module
|
79
83
|
;
|
80
84
|
|
@@ -92,6 +96,7 @@ $.fn.calendar = function(parameters) {
|
|
92
96
|
module.create.calendar();
|
93
97
|
|
94
98
|
module.bind.events();
|
99
|
+
module.observeChanges();
|
95
100
|
module.instantiate();
|
96
101
|
},
|
97
102
|
|
@@ -105,6 +110,7 @@ $.fn.calendar = function(parameters) {
|
|
105
110
|
module.verbose('Destroying previous calendar for', element);
|
106
111
|
$module.removeData(moduleNamespace);
|
107
112
|
module.unbind.events();
|
113
|
+
module.disconnect.classObserver();
|
108
114
|
},
|
109
115
|
|
110
116
|
setup: {
|
@@ -116,6 +122,7 @@ $.fn.calendar = function(parameters) {
|
|
116
122
|
module.set.maxDate($module.data(metadata.maxDate));
|
117
123
|
}
|
118
124
|
module.setting('type', module.get.type());
|
125
|
+
module.setting('on', settings.on || ($input.length ? 'focus' : 'click'));
|
119
126
|
},
|
120
127
|
popup: function () {
|
121
128
|
if (settings.inline) {
|
@@ -139,12 +146,19 @@ $.fn.calendar = function(parameters) {
|
|
139
146
|
$container = $('<div/>').addClass(className.popup)[domPositionFunction]($activatorParent);
|
140
147
|
}
|
141
148
|
$container.addClass(className.calendar);
|
142
|
-
|
149
|
+
if(isInverted){
|
150
|
+
$container.addClass(className.inverted);
|
151
|
+
}
|
152
|
+
var onVisible = function () {
|
153
|
+
module.refreshTooltips();
|
154
|
+
return settings.onVisible.apply($container, arguments);
|
155
|
+
};
|
143
156
|
var onHidden = settings.onHidden;
|
144
157
|
if (!$input.length) {
|
145
158
|
//no input, $container has to handle focus/blur
|
146
159
|
$container.attr('tabindex', '0');
|
147
160
|
onVisible = function () {
|
161
|
+
module.refreshTooltips();
|
148
162
|
module.focus();
|
149
163
|
return settings.onVisible.apply($container, arguments);
|
150
164
|
};
|
@@ -156,14 +170,15 @@ $.fn.calendar = function(parameters) {
|
|
156
170
|
var onShow = function () {
|
157
171
|
//reset the focus date onShow
|
158
172
|
module.set.focusDate(module.get.date());
|
159
|
-
module.set.mode(settings.startMode);
|
173
|
+
module.set.mode(module.get.validatedMode(settings.startMode));
|
160
174
|
return settings.onShow.apply($container, arguments);
|
161
175
|
};
|
162
|
-
var on =
|
176
|
+
var on = module.setting('on');
|
163
177
|
var options = $.extend({}, settings.popupOptions, {
|
164
178
|
popup: $container,
|
165
179
|
on: on,
|
166
180
|
hoverable: on === 'hover',
|
181
|
+
closable: on === 'click',
|
167
182
|
onShow: onShow,
|
168
183
|
onVisible: onVisible,
|
169
184
|
onHide: settings.onHide,
|
@@ -175,6 +190,7 @@ $.fn.calendar = function(parameters) {
|
|
175
190
|
if ($activator.length && !settings.inline) {
|
176
191
|
return;
|
177
192
|
}
|
193
|
+
settings.inline = true;
|
178
194
|
$container = $('<div/>').addClass(className.calendar).appendTo($module);
|
179
195
|
if (!$input.length) {
|
180
196
|
$container.attr('tabindex', '0');
|
@@ -184,6 +200,7 @@ $.fn.calendar = function(parameters) {
|
|
184
200
|
if (settings.touchReadonly && $input.length && isTouch) {
|
185
201
|
$input.prop('readonly', true);
|
186
202
|
}
|
203
|
+
module.check.disabled();
|
187
204
|
},
|
188
205
|
date: function () {
|
189
206
|
var date;
|
@@ -195,6 +212,21 @@ $.fn.calendar = function(parameters) {
|
|
195
212
|
date = parser.date($input.val(), settings);
|
196
213
|
}
|
197
214
|
module.set.date(date, settings.formatInput, false);
|
215
|
+
module.set.mode(module.get.mode(), false);
|
216
|
+
}
|
217
|
+
},
|
218
|
+
|
219
|
+
trigger: {
|
220
|
+
change: function() {
|
221
|
+
var
|
222
|
+
inputElement = $input[0]
|
223
|
+
;
|
224
|
+
if(inputElement) {
|
225
|
+
var events = document.createEvent('HTMLEvents');
|
226
|
+
module.verbose('Triggering native change event');
|
227
|
+
events.initEvent('change', true, false);
|
228
|
+
inputElement.dispatchEvent(events);
|
229
|
+
}
|
198
230
|
}
|
199
231
|
},
|
200
232
|
|
@@ -202,33 +234,38 @@ $.fn.calendar = function(parameters) {
|
|
202
234
|
calendar: function () {
|
203
235
|
var i, r, c, p, row, cell, pageGrid;
|
204
236
|
|
205
|
-
var
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
237
|
+
var
|
238
|
+
mode = module.get.mode(),
|
239
|
+
today = new Date(),
|
240
|
+
date = module.get.date(),
|
241
|
+
focusDate = module.get.focusDate(),
|
242
|
+
display = module.helper.dateInRange(focusDate || date || settings.initialDate || today)
|
243
|
+
;
|
211
244
|
|
212
245
|
if (!focusDate) {
|
213
246
|
focusDate = display;
|
214
247
|
module.set.focusDate(focusDate, false, false);
|
215
248
|
}
|
216
249
|
|
217
|
-
var
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
250
|
+
var
|
251
|
+
isYear = mode === 'year',
|
252
|
+
isMonth = mode === 'month',
|
253
|
+
isDay = mode === 'day',
|
254
|
+
isHour = mode === 'hour',
|
255
|
+
isMinute = mode === 'minute',
|
256
|
+
isTimeOnly = settings.type === 'time'
|
257
|
+
;
|
223
258
|
|
224
259
|
var multiMonth = Math.max(settings.multiMonth, 1);
|
225
260
|
var monthOffset = !isDay ? 0 : module.get.monthOffset();
|
226
261
|
|
227
|
-
var
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
262
|
+
var
|
263
|
+
minute = display.getMinutes(),
|
264
|
+
hour = display.getHours(),
|
265
|
+
day = display.getDate(),
|
266
|
+
startMonth = display.getMonth() + monthOffset,
|
267
|
+
year = display.getFullYear()
|
268
|
+
;
|
232
269
|
|
233
270
|
var columns = isDay ? settings.showWeekNumbers ? 8 : 7 : isHour ? 4 : timeGap['column'];
|
234
271
|
var rows = isDay || isHour ? 6 : timeGap['row'];
|
@@ -254,23 +291,27 @@ $.fn.calendar = function(parameters) {
|
|
254
291
|
rows = Math.ceil(requiredCells / 7);
|
255
292
|
}
|
256
293
|
|
257
|
-
var
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
294
|
+
var
|
295
|
+
yearChange = isYear ? 10 : isMonth ? 1 : 0,
|
296
|
+
monthChange = isDay ? 1 : 0,
|
297
|
+
dayChange = isHour || isMinute ? 1 : 0,
|
298
|
+
prevNextDay = isHour || isMinute ? day : 1,
|
299
|
+
prevDate = new Date(year - yearChange, month - monthChange, prevNextDay - dayChange, hour),
|
300
|
+
nextDate = new Date(year + yearChange, month + monthChange, prevNextDay + dayChange, hour),
|
301
|
+
prevLast = isYear ? new Date(Math.ceil(year / 10) * 10 - 9, 0, 0) :
|
302
|
+
isMonth ? new Date(year, 0, 0) : isDay ? new Date(year, month, 0) : new Date(year, month, day, -1),
|
303
|
+
nextFirst = isYear ? new Date(Math.ceil(year / 10) * 10 + 1, 0, 1) :
|
304
|
+
isMonth ? new Date(year + 1, 0, 1) : isDay ? new Date(year, month + 1, 1) : new Date(year, month, day + 1)
|
305
|
+
;
|
268
306
|
|
269
307
|
var tempMode = mode;
|
270
308
|
if (isDay && settings.showWeekNumbers){
|
271
309
|
tempMode += ' andweek';
|
272
310
|
}
|
273
|
-
var table = $('<table/>').addClass(className.table).addClass(tempMode).appendTo(container);
|
311
|
+
var table = $('<table/>').addClass(className.table).addClass(tempMode).addClass(numberText[columns] + ' column').appendTo(container);
|
312
|
+
if(isInverted){
|
313
|
+
table.addClass(className.inverted);
|
314
|
+
}
|
274
315
|
var textColumns = columns;
|
275
316
|
//no header for time-only mode
|
276
317
|
if (!isTimeOnly) {
|
@@ -340,7 +381,13 @@ $.fn.calendar = function(parameters) {
|
|
340
381
|
var disabledDate = module.helper.findDayAsObject(cellDate, mode, settings.disabledDates);
|
341
382
|
if (disabledDate !== null && disabledDate[metadata.message]) {
|
342
383
|
cell.attr("data-tooltip", disabledDate[metadata.message]);
|
343
|
-
cell.attr("data-position", tooltipPosition);
|
384
|
+
cell.attr("data-position", disabledDate[metadata.position] || tooltipPosition);
|
385
|
+
if(disabledDate[metadata.inverted] || (isInverted && disabledDate[metadata.inverted] === undefined)) {
|
386
|
+
cell.attr("data-inverted", '');
|
387
|
+
}
|
388
|
+
if(disabledDate[metadata.variation]) {
|
389
|
+
cell.attr("data-variation", disabledDate[metadata.variation]);
|
390
|
+
}
|
344
391
|
}
|
345
392
|
} else {
|
346
393
|
var eventDate = module.helper.findDayAsObject(cellDate, mode, settings.eventDates);
|
@@ -348,7 +395,13 @@ $.fn.calendar = function(parameters) {
|
|
348
395
|
cell.addClass(eventDate[metadata.class] || settings.eventClass);
|
349
396
|
if (eventDate[metadata.message]) {
|
350
397
|
cell.attr("data-tooltip", eventDate[metadata.message]);
|
351
|
-
cell.attr("data-position", tooltipPosition);
|
398
|
+
cell.attr("data-position", eventDate[metadata.position] || tooltipPosition);
|
399
|
+
if(eventDate[metadata.inverted] || (isInverted && eventDate[metadata.inverted] === undefined)) {
|
400
|
+
cell.attr("data-inverted", '');
|
401
|
+
}
|
402
|
+
if(eventDate[metadata.variation]) {
|
403
|
+
cell.attr("data-variation", eventDate[metadata.variation]);
|
404
|
+
}
|
352
405
|
}
|
353
406
|
}
|
354
407
|
}
|
@@ -387,6 +440,10 @@ $.fn.calendar = function(parameters) {
|
|
387
440
|
}
|
388
441
|
|
389
442
|
module.update.focus(false, table);
|
443
|
+
|
444
|
+
if(settings.inline){
|
445
|
+
module.refreshTooltips();
|
446
|
+
}
|
390
447
|
}
|
391
448
|
}
|
392
449
|
},
|
@@ -428,6 +485,20 @@ $.fn.calendar = function(parameters) {
|
|
428
485
|
module.create.calendar();
|
429
486
|
},
|
430
487
|
|
488
|
+
refreshTooltips: function() {
|
489
|
+
var winWidth = $(window).width();
|
490
|
+
$container.find('td[data-position]').each(function () {
|
491
|
+
var cell = $(this);
|
492
|
+
var tooltipWidth = window.getComputedStyle(cell[0], ':after').width.replace(/[^0-9\.]/g,'');
|
493
|
+
var tooltipPosition = cell.attr('data-position');
|
494
|
+
// use a fallback width of 250 (calendar width) for IE/Edge (which return "auto")
|
495
|
+
var calcPosition = (winWidth - cell.width() - (parseInt(tooltipWidth,10) || 250)) > cell.offset().left ? 'right' : 'left';
|
496
|
+
if(tooltipPosition.indexOf(calcPosition) === -1) {
|
497
|
+
cell.attr('data-position',tooltipPosition.replace(/(left|right)/,calcPosition));
|
498
|
+
}
|
499
|
+
});
|
500
|
+
},
|
501
|
+
|
431
502
|
bind: {
|
432
503
|
events: function () {
|
433
504
|
module.debug('Binding events');
|
@@ -440,7 +511,6 @@ $.fn.calendar = function(parameters) {
|
|
440
511
|
$input.on('input' + eventNamespace, module.event.inputChange);
|
441
512
|
$input.on('focus' + eventNamespace, module.event.inputFocus);
|
442
513
|
$input.on('blur' + eventNamespace, module.event.inputBlur);
|
443
|
-
$input.on('click' + eventNamespace, module.event.inputClick);
|
444
514
|
$input.on('keydown' + eventNamespace, module.event.keydown);
|
445
515
|
} else {
|
446
516
|
$container.on('keydown' + eventNamespace, module.event.keydown);
|
@@ -569,9 +639,57 @@ $.fn.calendar = function(parameters) {
|
|
569
639
|
var text = formatter.datetime(date, settings);
|
570
640
|
$input.val(text);
|
571
641
|
}
|
642
|
+
if(selectionComplete){
|
643
|
+
module.trigger.change();
|
644
|
+
selectionComplete = false;
|
645
|
+
}
|
572
646
|
},
|
573
|
-
|
574
|
-
|
647
|
+
class: {
|
648
|
+
mutation: function(mutations) {
|
649
|
+
mutations.forEach(function(mutation) {
|
650
|
+
if(mutation.attributeName === "class") {
|
651
|
+
module.check.disabled();
|
652
|
+
}
|
653
|
+
});
|
654
|
+
}
|
655
|
+
}
|
656
|
+
},
|
657
|
+
|
658
|
+
observeChanges: function() {
|
659
|
+
if('MutationObserver' in window) {
|
660
|
+
classObserver = new MutationObserver(module.event.class.mutation);
|
661
|
+
module.debug('Setting up mutation observer', classObserver);
|
662
|
+
module.observe.class();
|
663
|
+
}
|
664
|
+
},
|
665
|
+
|
666
|
+
disconnect: {
|
667
|
+
classObserver: function() {
|
668
|
+
if($input.length && classObserver) {
|
669
|
+
classObserver.disconnect();
|
670
|
+
}
|
671
|
+
}
|
672
|
+
},
|
673
|
+
|
674
|
+
observe: {
|
675
|
+
class: function() {
|
676
|
+
if($input.length && classObserver) {
|
677
|
+
classObserver.observe($module[0], {
|
678
|
+
attributes : true
|
679
|
+
});
|
680
|
+
}
|
681
|
+
}
|
682
|
+
},
|
683
|
+
|
684
|
+
is: {
|
685
|
+
disabled: function() {
|
686
|
+
return $module.hasClass(className.disabled);
|
687
|
+
}
|
688
|
+
},
|
689
|
+
|
690
|
+
check: {
|
691
|
+
disabled: function(){
|
692
|
+
$input.attr('tabindex',module.is.disabled() ? -1 : 0);
|
575
693
|
}
|
576
694
|
},
|
577
695
|
|
@@ -618,6 +736,9 @@ $.fn.calendar = function(parameters) {
|
|
618
736
|
mode: function () {
|
619
737
|
//only returns valid modes for the current settings
|
620
738
|
var mode = $module.data(metadata.mode) || settings.startMode;
|
739
|
+
return module.get.validatedMode(mode);
|
740
|
+
},
|
741
|
+
validatedMode: function(mode){
|
621
742
|
var validModes = module.get.validModes();
|
622
743
|
if ($.inArray(mode, validModes) >= 0) {
|
623
744
|
return mode;
|
@@ -735,7 +856,7 @@ $.fn.calendar = function(parameters) {
|
|
735
856
|
module.set.monthOffset(monthOffset, false);
|
736
857
|
}
|
737
858
|
}
|
738
|
-
var changed = module.set.dataKeyValue(metadata.focusDate, date, refreshCalendar);
|
859
|
+
var changed = module.set.dataKeyValue(metadata.focusDate, date, !!date && refreshCalendar);
|
739
860
|
updateFocus = (updateFocus !== false && changed && refreshCalendar === false) || focusDateUsedForRange != updateRange;
|
740
861
|
focusDateUsedForRange = updateRange;
|
741
862
|
if (updateFocus) {
|
@@ -794,13 +915,18 @@ $.fn.calendar = function(parameters) {
|
|
794
915
|
(settings.type === 'year' && mode === 'year');
|
795
916
|
if (complete) {
|
796
917
|
var canceled = module.set.date(date) === false;
|
797
|
-
if (!canceled
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
endModule.
|
803
|
-
endModule
|
918
|
+
if (!canceled) {
|
919
|
+
selectionComplete = true;
|
920
|
+
if(settings.closable) {
|
921
|
+
module.popup('hide');
|
922
|
+
//if this is a range calendar, focus the container or input. This will open the popup from its event listeners.
|
923
|
+
var endModule = module.get.calendarModule(settings.endCalendar);
|
924
|
+
if (endModule) {
|
925
|
+
if (endModule.setting('on') !== 'focus') {
|
926
|
+
endModule.popup('show');
|
927
|
+
}
|
928
|
+
endModule.focus();
|
929
|
+
}
|
804
930
|
}
|
805
931
|
}
|
806
932
|
} else {
|
@@ -809,7 +935,7 @@ $.fn.calendar = function(parameters) {
|
|
809
935
|
module.set.mode(newMode);
|
810
936
|
if (mode === 'hour' || (mode === 'day' && module.get.date())) {
|
811
937
|
//the user has chosen enough to consider a valid date/time has been chosen
|
812
|
-
module.set.date(date);
|
938
|
+
module.set.date(date, true, false);
|
813
939
|
} else {
|
814
940
|
module.set.focusDate(date);
|
815
941
|
}
|
@@ -845,15 +971,38 @@ $.fn.calendar = function(parameters) {
|
|
845
971
|
|
846
972
|
helper: {
|
847
973
|
isDisabled: function(date, mode) {
|
848
|
-
return mode === 'day' && ((settings.disabledDaysOfWeek.indexOf(date.getDay()) !== -1) || settings.disabledDates.some(function(d){
|
974
|
+
return (mode === 'day' || mode === 'month' || mode === 'year') && ((settings.disabledDaysOfWeek.indexOf(date.getDay()) !== -1) || settings.disabledDates.some(function(d){
|
849
975
|
if(typeof d === 'string') {
|
850
976
|
d = module.helper.sanitiseDate(d);
|
851
977
|
}
|
852
978
|
if (d instanceof Date) {
|
853
979
|
return module.helper.dateEqual(date, d, mode);
|
854
980
|
}
|
855
|
-
if (d !== null && typeof d === 'object'
|
856
|
-
|
981
|
+
if (d !== null && typeof d === 'object') {
|
982
|
+
if (d[metadata.year]) {
|
983
|
+
if (typeof d[metadata.year] === 'number') {
|
984
|
+
return date.getFullYear() == d[metadata.year];
|
985
|
+
} else if (Array.isArray(d[metadata.year])) {
|
986
|
+
return d[metadata.year].indexOf(date.getFullYear()) > -1;
|
987
|
+
}
|
988
|
+
} else if (d[metadata.month]) {
|
989
|
+
if (typeof d[metadata.month] === 'number') {
|
990
|
+
return date.getMonth() == d[metadata.month];
|
991
|
+
} else if (Array.isArray(d[metadata.month])) {
|
992
|
+
return d[metadata.month].indexOf(date.getMonth()) > -1;
|
993
|
+
} else if (d[metadata.month] instanceof Date) {
|
994
|
+
var sdate = module.helper.sanitiseDate(d[metadata.month]);
|
995
|
+
return (date.getMonth() == sdate.getMonth()) && (date.getFullYear() == sdate.getFullYear())
|
996
|
+
}
|
997
|
+
} else if (d[metadata.date] && mode === 'day') {
|
998
|
+
if (d[metadata.date] instanceof Date) {
|
999
|
+
return module.helper.dateEqual(date, module.helper.sanitiseDate(d[metadata.date]), mode);
|
1000
|
+
} else if (Array.isArray(d[metadata.date])) {
|
1001
|
+
return d[metadata.date].some(function(idate) {
|
1002
|
+
return module.helper.dateEqual(date, idate, mode);
|
1003
|
+
});
|
1004
|
+
}
|
1005
|
+
}
|
857
1006
|
}
|
858
1007
|
}));
|
859
1008
|
},
|
@@ -875,10 +1024,9 @@ $.fn.calendar = function(parameters) {
|
|
875
1024
|
}
|
876
1025
|
},
|
877
1026
|
findDayAsObject: function(date, mode, dates) {
|
878
|
-
if (mode === 'day') {
|
879
|
-
var i = 0, il = dates.length;
|
1027
|
+
if (mode === 'day' || mode === 'month' || mode === 'year') {
|
880
1028
|
var d;
|
881
|
-
for (; i <
|
1029
|
+
for (var i = 0; i < dates.length; i++) {
|
882
1030
|
d = dates[i];
|
883
1031
|
if(typeof d === 'string') {
|
884
1032
|
d = module.helper.sanitiseDate(d);
|
@@ -888,8 +1036,37 @@ $.fn.calendar = function(parameters) {
|
|
888
1036
|
dateObject[metadata.date] = d;
|
889
1037
|
return dateObject;
|
890
1038
|
}
|
891
|
-
else if (d !== null && typeof d === 'object'
|
892
|
-
|
1039
|
+
else if (d !== null && typeof d === 'object') {
|
1040
|
+
if (d[metadata.year]) {
|
1041
|
+
if (typeof d[metadata.year] === 'number' && date.getFullYear() == d[metadata.year]) {
|
1042
|
+
return d;
|
1043
|
+
} else if (Array.isArray(d[metadata.year])) {
|
1044
|
+
if (d[metadata.year].indexOf(date.getFullYear()) > -1) {
|
1045
|
+
return d;
|
1046
|
+
}
|
1047
|
+
}
|
1048
|
+
} else if (d[metadata.month]) {
|
1049
|
+
if (typeof d[metadata.month] === 'number' && date.getMonth() == d[metadata.month]) {
|
1050
|
+
return d;
|
1051
|
+
} else if (Array.isArray(d[metadata.month])) {
|
1052
|
+
if (d[metadata.month].indexOf(date.getMonth()) > -1) {
|
1053
|
+
return d;
|
1054
|
+
}
|
1055
|
+
} else if (d[metadata.month] instanceof Date) {
|
1056
|
+
var sdate = module.helper.sanitiseDate(d[metadata.month]);
|
1057
|
+
if ((date.getMonth() == sdate.getMonth()) && (date.getFullYear() == sdate.getFullYear())) {
|
1058
|
+
return d;
|
1059
|
+
}
|
1060
|
+
}
|
1061
|
+
} else if (d[metadata.date] && mode === 'day') {
|
1062
|
+
if (d[metadata.date] instanceof Date && module.helper.dateEqual(date, module.helper.sanitiseDate(d[metadata.date]), mode)) {
|
1063
|
+
return d;
|
1064
|
+
} else if (Array.isArray(d[metadata.date])) {
|
1065
|
+
if(d[metadata.date].some(function(idate) { return module.helper.dateEqual(date, idate, mode); })) {
|
1066
|
+
return d;
|
1067
|
+
}
|
1068
|
+
}
|
1069
|
+
}
|
893
1070
|
}
|
894
1071
|
}
|
895
1072
|
}
|
@@ -1286,16 +1463,21 @@ $.fn.calendar.settings = {
|
|
1286
1463
|
if (!text) {
|
1287
1464
|
return null;
|
1288
1465
|
}
|
1289
|
-
text = (
|
1466
|
+
text = String(text).trim();
|
1290
1467
|
if (text.length === 0) {
|
1291
1468
|
return null;
|
1292
1469
|
}
|
1470
|
+
if(text.match(/^[0-9]{4}[\/\-\.][0-9]{2}[\/\-\.][0-9]{2}$/)){
|
1471
|
+
text = text.replace(/[\/\-\.]/g,'/') + ' 00:00:00';
|
1472
|
+
}
|
1293
1473
|
// Reverse date and month in some cases
|
1294
|
-
text = settings.monthFirst ? text : text.replace(/[\/\-\.]/g,'/').replace(/([0-9]+)\/([0-9]+)/,'$2/$1');
|
1474
|
+
text = settings.monthFirst || !text.match(/^[0-9]{2}[\/\-\.]/) ? text : text.replace(/[\/\-\.]/g,'/').replace(/([0-9]+)\/([0-9]+)/,'$2/$1');
|
1295
1475
|
var textDate = new Date(text);
|
1296
|
-
|
1476
|
+
var numberOnly = text.match(/^[0-9]+$/) !== null;
|
1477
|
+
if(!numberOnly && !isNaN(textDate.getDate())) {
|
1297
1478
|
return textDate;
|
1298
1479
|
}
|
1480
|
+
text = text.toLowerCase();
|
1299
1481
|
|
1300
1482
|
var i, j, k;
|
1301
1483
|
var minute = -1, hour = -1, day = -1, month = -1, year = -1;
|
@@ -1549,6 +1731,7 @@ $.fn.calendar.settings = {
|
|
1549
1731
|
grid: 'ui equal width grid',
|
1550
1732
|
column: 'column',
|
1551
1733
|
table: 'ui celled center aligned unstackable table',
|
1734
|
+
inverted: 'inverted',
|
1552
1735
|
prev: 'prev link',
|
1553
1736
|
next: 'next link',
|
1554
1737
|
prevIcon: 'chevron left icon',
|
@@ -1562,7 +1745,8 @@ $.fn.calendar.settings = {
|
|
1562
1745
|
rangeCell: 'range',
|
1563
1746
|
focusCell: 'focus',
|
1564
1747
|
todayCell: 'today',
|
1565
|
-
today: 'today link'
|
1748
|
+
today: 'today link',
|
1749
|
+
disabled: 'disabled'
|
1566
1750
|
},
|
1567
1751
|
|
1568
1752
|
metadata: {
|
@@ -1576,7 +1760,12 @@ $.fn.calendar.settings = {
|
|
1576
1760
|
type: 'type',
|
1577
1761
|
monthOffset: 'monthOffset',
|
1578
1762
|
message: 'message',
|
1579
|
-
class: 'class'
|
1763
|
+
class: 'class',
|
1764
|
+
inverted: 'inverted',
|
1765
|
+
variation: 'variation',
|
1766
|
+
position: 'position',
|
1767
|
+
month: 'month',
|
1768
|
+
year: 'year'
|
1580
1769
|
},
|
1581
1770
|
|
1582
1771
|
eventClass: 'blue'
|