jsl-ui 9.28.2 → 9.28.3

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.
Files changed (170) hide show
  1. package/lib/components/IntervalComponent.d.ts +17 -17
  2. package/lib/components/IntervalComponent.js +65 -68
  3. package/lib/components/auto-suggest/AutoSuggestComponent.d.ts +22 -22
  4. package/lib/components/auto-suggest/AutoSuggestComponent.js +47 -49
  5. package/lib/components/button/ButtonComponent.d.ts +18 -18
  6. package/lib/components/button/ButtonComponent.js +29 -46
  7. package/lib/components/checkbox/CheckBoxComponent.d.ts +28 -28
  8. package/lib/components/checkbox/CheckBoxComponent.js +81 -98
  9. package/lib/components/date/DateComponent.d.ts +32 -32
  10. package/lib/components/date/DateComponent.js +89 -106
  11. package/lib/components/date-range/DateRangeComponent.d.ts +35 -35
  12. package/lib/components/date-range/DateRangeComponent.js +123 -136
  13. package/lib/components/date-time/DateTimeComponent.d.ts +15 -15
  14. package/lib/components/date-time/DateTimeComponent.js +39 -53
  15. package/lib/components/dialog/DialogComponent.d.ts +67 -67
  16. package/lib/components/dialog/DialogComponent.js +198 -251
  17. package/lib/components/drop-down/DropDownComponent.d.ts +27 -27
  18. package/lib/components/drop-down/DropDownComponent.js +60 -74
  19. package/lib/components/expander/ExpanderComponent.d.ts +27 -27
  20. package/lib/components/expander/ExpanderComponent.js +89 -90
  21. package/lib/components/form-field/FormComponent.d.ts +12 -12
  22. package/lib/components/form-field/FormComponent.js +23 -26
  23. package/lib/components/form-field/FormFieldComponent.d.ts +39 -39
  24. package/lib/components/form-field/FormFieldComponent.js +138 -140
  25. package/lib/components/grid/GridComponent.d.ts +26 -26
  26. package/lib/components/grid/GridComponent.js +110 -116
  27. package/lib/components/input/InputComponent.d.ts +33 -33
  28. package/lib/components/input/InputComponent.js +126 -147
  29. package/lib/components/loading/LoadingComponent.d.ts +8 -8
  30. package/lib/components/loading/LoadingComponent.js +20 -22
  31. package/lib/components/navigation/NavigationComponent.d.ts +34 -34
  32. package/lib/components/navigation/NavigationComponent.js +45 -70
  33. package/lib/components/notification/Notification.d.ts +19 -19
  34. package/lib/components/notification/Notification.js +65 -69
  35. package/lib/components/number/NumberComponent.d.ts +26 -26
  36. package/lib/components/number/NumberComponent.js +80 -98
  37. package/lib/components/overlay/OverlayComponent.d.ts +27 -27
  38. package/lib/components/overlay/OverlayComponent.js +137 -149
  39. package/lib/components/progress/ProgressComponent.d.ts +18 -18
  40. package/lib/components/progress/ProgressComponent.js +40 -42
  41. package/lib/components/ribbon-menu/RibbonMenuComponent.d.ts +12 -12
  42. package/lib/components/ribbon-menu/RibbonMenuComponent.js +23 -34
  43. package/lib/components/select/SelectComponent.d.ts +79 -79
  44. package/lib/components/select/SelectComponent.js +356 -369
  45. package/lib/components/select/SelectDDAreaComponent.d.ts +32 -32
  46. package/lib/components/select/SelectDDAreaComponent.js +303 -317
  47. package/lib/components/slider/nouislider.d.ts +44 -44
  48. package/lib/components/slider/nouislider.js +2158 -2158
  49. package/lib/components/stack-panel/SplitterComponent.d.ts +21 -21
  50. package/lib/components/stack-panel/SplitterComponent.js +124 -126
  51. package/lib/components/stack-panel/StackPanelComponent.d.ts +20 -20
  52. package/lib/components/stack-panel/StackPanelComponent.js +50 -64
  53. package/lib/components/tabs/TabsComponent.d.ts +40 -40
  54. package/lib/components/tabs/TabsComponent.js +200 -204
  55. package/lib/components/time/TimeComponent.d.ts +29 -29
  56. package/lib/components/time/TimeComponent.js +104 -113
  57. package/lib/components/tree-view/TreeViewComponent.d.ts +23 -23
  58. package/lib/components/tree-view/TreeViewComponent.js +43 -45
  59. package/lib/components/virtual-render/VirtualRenderComponent.d.ts +30 -30
  60. package/lib/components/virtual-render/VirtualRenderComponent.js +92 -104
  61. package/lib/core/culture.d.ts +5 -5
  62. package/lib/core/culture.js +385 -385
  63. package/lib/core/date.d.ts +14 -14
  64. package/lib/core/date.js +346 -350
  65. package/lib/core/helper.d.ts +13 -13
  66. package/lib/core/helper.js +100 -104
  67. package/lib/core/jq.d.ts +37 -37
  68. package/lib/core/jq.js +362 -371
  69. package/lib/core/lang.d.ts +24 -24
  70. package/lib/core/lang.js +24 -28
  71. package/lib/core/numeric.d.ts +7 -7
  72. package/lib/core/numeric.js +139 -143
  73. package/lib/core/polyfills.js +22 -22
  74. package/lib/core.d.ts +6 -6
  75. package/lib/core.js +6 -6
  76. package/lib/grid/filterDialogs/dateRangeFilter.d.ts +7 -7
  77. package/lib/grid/filterDialogs/dateRangeFilter.js +106 -156
  78. package/lib/grid/filterDialogs/excelFilter.d.ts +9 -9
  79. package/lib/grid/filterDialogs/excelFilter.js +250 -316
  80. package/lib/grid/plugins/ext.overlay.d.ts +2 -2
  81. package/lib/grid/plugins/ext.overlay.js +295 -295
  82. package/lib/grid/plugins/slick.cellrangedecorator.d.ts +12 -12
  83. package/lib/grid/plugins/slick.cellrangedecorator.js +68 -68
  84. package/lib/grid/plugins/slick.cellrangeselector.d.ts +1 -1
  85. package/lib/grid/plugins/slick.cellrangeselector.js +144 -144
  86. package/lib/grid/plugins/slick.cellselectionmodel.d.ts +1 -1
  87. package/lib/grid/plugins/slick.cellselectionmodel.js +194 -194
  88. package/lib/grid/plugins/slick.headerbuttons.d.ts +55 -55
  89. package/lib/grid/plugins/slick.headerbuttons.js +156 -156
  90. package/lib/grid/plugins/slick.headermenu.d.ts +74 -74
  91. package/lib/grid/plugins/slick.headermenu.js +260 -260
  92. package/lib/grid/plugins/slick.rowmovemanager.d.ts +18 -18
  93. package/lib/grid/plugins/slick.rowmovemanager.js +249 -249
  94. package/lib/grid/plugins/slick.rowselectionmodel.d.ts +1 -1
  95. package/lib/grid/plugins/slick.rowselectionmodel.js +167 -167
  96. package/lib/grid/slick.core.d.ts +91 -91
  97. package/lib/grid/slick.core.js +574 -574
  98. package/lib/grid/slick.creator.d.ts +81 -81
  99. package/lib/grid/slick.creator.js +726 -726
  100. package/lib/grid/slick.dataview.d.ts +71 -71
  101. package/lib/grid/slick.dataview.js +1069 -1080
  102. package/lib/grid/slick.editors.core.d.ts +4 -4
  103. package/lib/grid/slick.editors.core.js +235 -235
  104. package/lib/grid/slick.editors.date.d.ts +2 -2
  105. package/lib/grid/slick.editors.date.js +125 -125
  106. package/lib/grid/slick.editors.lookup.d.ts +14 -14
  107. package/lib/grid/slick.editors.lookup.js +352 -353
  108. package/lib/grid/slick.editors.nav.d.ts +6 -6
  109. package/lib/grid/slick.editors.nav.js +22 -22
  110. package/lib/grid/slick.formatters.d.ts +17 -17
  111. package/lib/grid/slick.formatters.js +144 -144
  112. package/lib/grid/slick.grid.d.ts +285 -285
  113. package/lib/grid/slick.grid.js +5409 -5412
  114. package/lib/grid/slick.groupitemmetadataprovider.d.ts +39 -39
  115. package/lib/grid/slick.groupitemmetadataprovider.js +165 -165
  116. package/lib/grid/slick.tree.d.ts +33 -33
  117. package/lib/grid/slick.tree.js +208 -220
  118. package/lib/grid.css +1 -705
  119. package/lib/grid.d.ts +13 -13
  120. package/lib/grid.js +13 -13
  121. package/lib/index.css +8 -2195
  122. package/lib/index.css.map +1 -1
  123. package/lib/index.d.ts +56 -55
  124. package/lib/index.js +61 -61
  125. package/lib/index.js.map +1 -1
  126. package/lib/interaction/dataconverter.d.ts +4 -4
  127. package/lib/interaction/dataconverter.js +0 -1
  128. package/lib/interaction/eventhandler.d.ts +13 -13
  129. package/lib/interaction/eventhandler.js +39 -42
  130. package/lib/interaction/moveable.d.ts +39 -39
  131. package/lib/interaction/moveable.js +160 -174
  132. package/lib/interaction/resizable.d.ts +37 -37
  133. package/lib/interaction/resizable.js +109 -123
  134. package/lib/ui/auto.suggest.d.ts +18 -18
  135. package/lib/ui/auto.suggest.js +244 -259
  136. package/lib/ui/date.picker/date-picker-options.d.ts +11 -11
  137. package/lib/ui/date.picker/date-picker-options.js +76 -76
  138. package/lib/ui/date.picker/lib/date-manip.d.ts +74 -74
  139. package/lib/ui/date.picker/lib/date-manip.js +120 -120
  140. package/lib/ui/date.picker/lib/dom.d.ts +23 -23
  141. package/lib/ui/date.picker/lib/dom.js +28 -28
  142. package/lib/ui/date.picker/lib/emitter.d.ts +13 -13
  143. package/lib/ui/date.picker/lib/emitter.js +49 -49
  144. package/lib/ui/date.picker/lib/fns.d.ts +23 -23
  145. package/lib/ui/date.picker/lib/fns.js +39 -43
  146. package/lib/ui/date.picker/mode/base-mode.d.ts +26 -26
  147. package/lib/ui/date.picker/mode/base-mode.js +248 -248
  148. package/lib/ui/date.picker/mode/dropdown-mode.d.ts +28 -28
  149. package/lib/ui/date.picker/mode/dropdown-mode.js +50 -50
  150. package/lib/ui/date.picker/mode/index.d.ts +28 -28
  151. package/lib/ui/date.picker/mode/index.js +18 -18
  152. package/lib/ui/date.picker/mode/modal-mode.d.ts +25 -25
  153. package/lib/ui/date.picker/mode/modal-mode.js +17 -17
  154. package/lib/ui/date.picker/mode/permanent-mode.d.ts +29 -29
  155. package/lib/ui/date.picker/mode/permanent-mode.js +19 -19
  156. package/lib/ui/date.picker/views/day-picker.d.ts +40 -40
  157. package/lib/ui/date.picker/views/day-picker.js +155 -155
  158. package/lib/ui/date.picker/views/month-picker.d.ts +26 -26
  159. package/lib/ui/date.picker/views/month-picker.js +65 -65
  160. package/lib/ui/date.picker/views/year-picker.d.ts +20 -20
  161. package/lib/ui/date.picker/views/year-picker.js +66 -66
  162. package/lib/ui/date.picker.d.ts +66 -66
  163. package/lib/ui/date.picker.js +32 -32
  164. package/lib/ui/dialog.d.ts +22 -22
  165. package/lib/ui/dialog.js +98 -113
  166. package/lib/ui/drop.down.d.ts +52 -52
  167. package/lib/ui/drop.down.js +2112 -2112
  168. package/lib/ui/number.input.d.ts +13 -13
  169. package/lib/ui/number.input.js +56 -67
  170. package/package.json +1 -1
@@ -1,76 +1,76 @@
1
- /**
2
- * @file Responsible for sanitizing and creating date picker options.
3
- */
4
- import { now, shiftYear, dateOrParse } from './lib/date-manip';
5
- import { cp } from './lib/fns';
6
- import { date } from './../../core/date';
7
- var english = {
8
- days: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
9
- months: [
10
- 'January',
11
- 'February',
12
- 'March',
13
- 'April',
14
- 'May',
15
- 'June',
16
- 'July',
17
- 'August',
18
- 'September',
19
- 'October',
20
- 'November',
21
- 'December',
22
- ],
23
- today: 'Today',
24
- clear: 'Clear',
25
- close: 'Close',
26
- };
27
- /**
28
- * DatePickerOptions constructs a new date picker options object, overriding
29
- * default values with any values specified in opts.
30
- *
31
- * @param {DatePickerOptions} opts
32
- * @returns {DatePickerOptions}
33
- */
34
- export default function DatePickerOptions(opts) {
35
- opts = opts || {};
36
- opts = cp(defaults(), opts);
37
- var parse = dateOrParse(opts.parse);
38
- opts.lang = cp(english, opts.lang);
39
- opts.parse = parse;
40
- opts.inRange = makeInRangeFn(opts);
41
- opts.min = parse(opts.min || shiftYear(now(), -100));
42
- opts.max = parse(opts.max || shiftYear(now(), 100));
43
- opts.hilightedDate = opts.parse(opts.hilightedDate);
44
- return opts;
45
- }
46
- function defaults() {
47
- return {
48
- lang: english,
49
- // Possible values: dp-modal, dp-below, dp-permanent
50
- mode: 'dp-below',
51
- // The date to hilight initially if the date picker has no
52
- // initial value.
53
- hilightedDate: now(),
54
- format: function (dt) {
55
- return date.format(dt);
56
- //return (dt.getMonth() + 1) + '/' + dt.getDate() + '/' + dt.getFullYear();
57
- },
58
- parse: function (str) {
59
- //var date = new Date(str);
60
- var d = date.parse(str);
61
- return !d ? now() : d;
62
- },
63
- dateClass: function () { },
64
- inRange: function () {
65
- return true;
66
- },
67
- appendTo: document.body,
68
- dayOffset: 1
69
- };
70
- }
71
- function makeInRangeFn(opts) {
72
- var inRange = opts.inRange; // Cache this version, and return a variant
73
- return function (dt, dp) {
74
- return inRange(dt, dp) && opts.min <= dt && opts.max >= dt;
75
- };
76
- }
1
+ /**
2
+ * @file Responsible for sanitizing and creating date picker options.
3
+ */
4
+ import { now, shiftYear, dateOrParse } from './lib/date-manip';
5
+ import { cp } from './lib/fns';
6
+ import { date } from './../../core/date';
7
+ var english = {
8
+ days: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
9
+ months: [
10
+ 'January',
11
+ 'February',
12
+ 'March',
13
+ 'April',
14
+ 'May',
15
+ 'June',
16
+ 'July',
17
+ 'August',
18
+ 'September',
19
+ 'October',
20
+ 'November',
21
+ 'December',
22
+ ],
23
+ today: 'Today',
24
+ clear: 'Clear',
25
+ close: 'Close',
26
+ };
27
+ /**
28
+ * DatePickerOptions constructs a new date picker options object, overriding
29
+ * default values with any values specified in opts.
30
+ *
31
+ * @param {DatePickerOptions} opts
32
+ * @returns {DatePickerOptions}
33
+ */
34
+ export default function DatePickerOptions(opts) {
35
+ opts = opts || {};
36
+ opts = cp(defaults(), opts);
37
+ var parse = dateOrParse(opts.parse);
38
+ opts.lang = cp(english, opts.lang);
39
+ opts.parse = parse;
40
+ opts.inRange = makeInRangeFn(opts);
41
+ opts.min = parse(opts.min || shiftYear(now(), -100));
42
+ opts.max = parse(opts.max || shiftYear(now(), 100));
43
+ opts.hilightedDate = opts.parse(opts.hilightedDate);
44
+ return opts;
45
+ }
46
+ function defaults() {
47
+ return {
48
+ lang: english,
49
+ // Possible values: dp-modal, dp-below, dp-permanent
50
+ mode: 'dp-below',
51
+ // The date to hilight initially if the date picker has no
52
+ // initial value.
53
+ hilightedDate: now(),
54
+ format: function (dt) {
55
+ return date.format(dt);
56
+ //return (dt.getMonth() + 1) + '/' + dt.getDate() + '/' + dt.getFullYear();
57
+ },
58
+ parse: function (str) {
59
+ //var date = new Date(str);
60
+ var d = date.parse(str);
61
+ return !d ? now() : d;
62
+ },
63
+ dateClass: function () { },
64
+ inRange: function () {
65
+ return true;
66
+ },
67
+ appendTo: document.body,
68
+ dayOffset: 1
69
+ };
70
+ }
71
+ function makeInRangeFn(opts) {
72
+ var inRange = opts.inRange; // Cache this version, and return a variant
73
+ return function (dt, dp) {
74
+ return inRange(dt, dp) && opts.min <= dt && opts.max >= dt;
75
+ };
76
+ }
@@ -1,74 +1,74 @@
1
- /**
2
- * @file A generic set of mutation-free date functions.
3
- */
4
- /**
5
- * now returns the current date without any time values
6
- *
7
- * @returns {Date}
8
- */
9
- export declare function now(): Date;
10
- /**
11
- * dateEq compares two dates
12
- *
13
- * @param {Date} date1 the first date
14
- * @param {Date} date2 the second date
15
- * @returns {boolean}
16
- */
17
- export declare function datesEq(date1: any, date2: any): boolean;
18
- /**
19
- * shiftDay shifts the specified date by n days
20
- *
21
- * @param {Date} dt
22
- * @param {number} n
23
- * @returns {Date}
24
- */
25
- export declare function shiftDay(dt: any, n: any): any;
26
- /**
27
- * shiftMonth shifts the specified date by a specified number of months
28
- *
29
- * @param {Date} dt
30
- * @param {number} n
31
- * @param {boolean} wrap optional, if true, does not change year
32
- * value, defaults to false
33
- * @returns {Date}
34
- */
35
- export declare function shiftMonth(dt: any, n: any, wrap?: boolean): any;
36
- /**
37
- * shiftYear shifts the specified date by n years
38
- *
39
- * @param {Date} dt
40
- * @param {number} n
41
- * @returns {Date}
42
- */
43
- export declare function shiftYear(dt: any, n: any): any;
44
- /**
45
- * setYear changes the specified date to the specified year
46
- *
47
- * @param {Date} dt
48
- * @param {number} year
49
- */
50
- export declare function setYear(dt: any, year: any): any;
51
- /**
52
- * setMonth changes the specified date to the specified month
53
- *
54
- * @param {Date} dt
55
- * @param {number} month
56
- */
57
- export declare function setMonth(dt: any, month: any): any;
58
- /**
59
- * dateOrParse creates a function which, given a date or string, returns a date
60
- *
61
- * @param {function} parse the function used to parse strings
62
- * @returns {function}
63
- */
64
- export declare function dateOrParse(parse: any): (dt: any) => any;
65
- /**
66
- * constrainDate returns dt or min/max depending on whether dt is out of bounds (inclusive)
67
- *
68
- * @export
69
- * @param {Date} dt
70
- * @param {Date} min
71
- * @param {Date} max
72
- * @returns {Date}
73
- */
74
- export declare function constrainDate(dt: any, min: any, max: any): any;
1
+ /**
2
+ * @file A generic set of mutation-free date functions.
3
+ */
4
+ /**
5
+ * now returns the current date without any time values
6
+ *
7
+ * @returns {Date}
8
+ */
9
+ export declare function now(): Date;
10
+ /**
11
+ * dateEq compares two dates
12
+ *
13
+ * @param {Date} date1 the first date
14
+ * @param {Date} date2 the second date
15
+ * @returns {boolean}
16
+ */
17
+ export declare function datesEq(date1: any, date2: any): boolean;
18
+ /**
19
+ * shiftDay shifts the specified date by n days
20
+ *
21
+ * @param {Date} dt
22
+ * @param {number} n
23
+ * @returns {Date}
24
+ */
25
+ export declare function shiftDay(dt: any, n: any): any;
26
+ /**
27
+ * shiftMonth shifts the specified date by a specified number of months
28
+ *
29
+ * @param {Date} dt
30
+ * @param {number} n
31
+ * @param {boolean} wrap optional, if true, does not change year
32
+ * value, defaults to false
33
+ * @returns {Date}
34
+ */
35
+ export declare function shiftMonth(dt: any, n: any, wrap?: boolean): any;
36
+ /**
37
+ * shiftYear shifts the specified date by n years
38
+ *
39
+ * @param {Date} dt
40
+ * @param {number} n
41
+ * @returns {Date}
42
+ */
43
+ export declare function shiftYear(dt: any, n: any): any;
44
+ /**
45
+ * setYear changes the specified date to the specified year
46
+ *
47
+ * @param {Date} dt
48
+ * @param {number} year
49
+ */
50
+ export declare function setYear(dt: any, year: any): any;
51
+ /**
52
+ * setMonth changes the specified date to the specified month
53
+ *
54
+ * @param {Date} dt
55
+ * @param {number} month
56
+ */
57
+ export declare function setMonth(dt: any, month: any): any;
58
+ /**
59
+ * dateOrParse creates a function which, given a date or string, returns a date
60
+ *
61
+ * @param {function} parse the function used to parse strings
62
+ * @returns {function}
63
+ */
64
+ export declare function dateOrParse(parse: any): (dt: any) => any;
65
+ /**
66
+ * constrainDate returns dt or min/max depending on whether dt is out of bounds (inclusive)
67
+ *
68
+ * @export
69
+ * @param {Date} dt
70
+ * @param {Date} min
71
+ * @param {Date} max
72
+ * @returns {Date}
73
+ */
74
+ export declare function constrainDate(dt: any, min: any, max: any): any;
@@ -1,120 +1,120 @@
1
- /**
2
- * @file A generic set of mutation-free date functions.
3
- */
4
- /**
5
- * now returns the current date without any time values
6
- *
7
- * @returns {Date}
8
- */
9
- export function now() {
10
- var dt = new Date();
11
- dt.setHours(0, 0, 0, 0);
12
- return dt;
13
- }
14
- /**
15
- * dateEq compares two dates
16
- *
17
- * @param {Date} date1 the first date
18
- * @param {Date} date2 the second date
19
- * @returns {boolean}
20
- */
21
- export function datesEq(date1, date2) {
22
- return (date1 && date1.toDateString()) === (date2 && date2.toDateString());
23
- }
24
- /**
25
- * shiftDay shifts the specified date by n days
26
- *
27
- * @param {Date} dt
28
- * @param {number} n
29
- * @returns {Date}
30
- */
31
- export function shiftDay(dt, n) {
32
- dt = new Date(dt);
33
- dt.setDate(dt.getDate() + n);
34
- return dt;
35
- }
36
- /**
37
- * shiftMonth shifts the specified date by a specified number of months
38
- *
39
- * @param {Date} dt
40
- * @param {number} n
41
- * @param {boolean} wrap optional, if true, does not change year
42
- * value, defaults to false
43
- * @returns {Date}
44
- */
45
- export function shiftMonth(dt, n, wrap) {
46
- dt = new Date(dt);
47
- var dayOfMonth = dt.getDate();
48
- var month = dt.getMonth() + n;
49
- dt.setDate(1);
50
- dt.setMonth(wrap ? (12 + month) % 12 : month);
51
- dt.setDate(dayOfMonth);
52
- // If dayOfMonth = 31, but the target month only has 30 or 29 or whatever...
53
- // head back to the max of the target month
54
- if (dt.getDate() < dayOfMonth) {
55
- dt.setDate(0);
56
- }
57
- return dt;
58
- }
59
- /**
60
- * shiftYear shifts the specified date by n years
61
- *
62
- * @param {Date} dt
63
- * @param {number} n
64
- * @returns {Date}
65
- */
66
- export function shiftYear(dt, n) {
67
- dt = new Date(dt);
68
- dt.setFullYear(dt.getFullYear() + n);
69
- return dt;
70
- }
71
- /**
72
- * setYear changes the specified date to the specified year
73
- *
74
- * @param {Date} dt
75
- * @param {number} year
76
- */
77
- export function setYear(dt, year) {
78
- dt = new Date(dt);
79
- dt.setFullYear(year);
80
- return dt;
81
- }
82
- /**
83
- * setMonth changes the specified date to the specified month
84
- *
85
- * @param {Date} dt
86
- * @param {number} month
87
- */
88
- export function setMonth(dt, month) {
89
- return shiftMonth(dt, month - dt.getMonth());
90
- }
91
- /**
92
- * dateOrParse creates a function which, given a date or string, returns a date
93
- *
94
- * @param {function} parse the function used to parse strings
95
- * @returns {function}
96
- */
97
- export function dateOrParse(parse) {
98
- return function (dt) {
99
- return dropTime(typeof dt === 'string' ? parse(dt) : dt);
100
- };
101
- }
102
- /**
103
- * constrainDate returns dt or min/max depending on whether dt is out of bounds (inclusive)
104
- *
105
- * @export
106
- * @param {Date} dt
107
- * @param {Date} min
108
- * @param {Date} max
109
- * @returns {Date}
110
- */
111
- export function constrainDate(dt, min, max) {
112
- return (dt < min) ? min :
113
- (dt > max) ? max :
114
- dt;
115
- }
116
- function dropTime(dt) {
117
- dt = new Date(dt);
118
- dt.setHours(0, 0, 0, 0);
119
- return dt;
120
- }
1
+ /**
2
+ * @file A generic set of mutation-free date functions.
3
+ */
4
+ /**
5
+ * now returns the current date without any time values
6
+ *
7
+ * @returns {Date}
8
+ */
9
+ export function now() {
10
+ var dt = new Date();
11
+ dt.setHours(0, 0, 0, 0);
12
+ return dt;
13
+ }
14
+ /**
15
+ * dateEq compares two dates
16
+ *
17
+ * @param {Date} date1 the first date
18
+ * @param {Date} date2 the second date
19
+ * @returns {boolean}
20
+ */
21
+ export function datesEq(date1, date2) {
22
+ return (date1 && date1.toDateString()) === (date2 && date2.toDateString());
23
+ }
24
+ /**
25
+ * shiftDay shifts the specified date by n days
26
+ *
27
+ * @param {Date} dt
28
+ * @param {number} n
29
+ * @returns {Date}
30
+ */
31
+ export function shiftDay(dt, n) {
32
+ dt = new Date(dt);
33
+ dt.setDate(dt.getDate() + n);
34
+ return dt;
35
+ }
36
+ /**
37
+ * shiftMonth shifts the specified date by a specified number of months
38
+ *
39
+ * @param {Date} dt
40
+ * @param {number} n
41
+ * @param {boolean} wrap optional, if true, does not change year
42
+ * value, defaults to false
43
+ * @returns {Date}
44
+ */
45
+ export function shiftMonth(dt, n, wrap) {
46
+ dt = new Date(dt);
47
+ var dayOfMonth = dt.getDate();
48
+ var month = dt.getMonth() + n;
49
+ dt.setDate(1);
50
+ dt.setMonth(wrap ? (12 + month) % 12 : month);
51
+ dt.setDate(dayOfMonth);
52
+ // If dayOfMonth = 31, but the target month only has 30 or 29 or whatever...
53
+ // head back to the max of the target month
54
+ if (dt.getDate() < dayOfMonth) {
55
+ dt.setDate(0);
56
+ }
57
+ return dt;
58
+ }
59
+ /**
60
+ * shiftYear shifts the specified date by n years
61
+ *
62
+ * @param {Date} dt
63
+ * @param {number} n
64
+ * @returns {Date}
65
+ */
66
+ export function shiftYear(dt, n) {
67
+ dt = new Date(dt);
68
+ dt.setFullYear(dt.getFullYear() + n);
69
+ return dt;
70
+ }
71
+ /**
72
+ * setYear changes the specified date to the specified year
73
+ *
74
+ * @param {Date} dt
75
+ * @param {number} year
76
+ */
77
+ export function setYear(dt, year) {
78
+ dt = new Date(dt);
79
+ dt.setFullYear(year);
80
+ return dt;
81
+ }
82
+ /**
83
+ * setMonth changes the specified date to the specified month
84
+ *
85
+ * @param {Date} dt
86
+ * @param {number} month
87
+ */
88
+ export function setMonth(dt, month) {
89
+ return shiftMonth(dt, month - dt.getMonth());
90
+ }
91
+ /**
92
+ * dateOrParse creates a function which, given a date or string, returns a date
93
+ *
94
+ * @param {function} parse the function used to parse strings
95
+ * @returns {function}
96
+ */
97
+ export function dateOrParse(parse) {
98
+ return function (dt) {
99
+ return dropTime(typeof dt === 'string' ? parse(dt) : dt);
100
+ };
101
+ }
102
+ /**
103
+ * constrainDate returns dt or min/max depending on whether dt is out of bounds (inclusive)
104
+ *
105
+ * @export
106
+ * @param {Date} dt
107
+ * @param {Date} min
108
+ * @param {Date} max
109
+ * @returns {Date}
110
+ */
111
+ export function constrainDate(dt, min, max) {
112
+ return (dt < min) ? min :
113
+ (dt > max) ? max :
114
+ dt;
115
+ }
116
+ function dropTime(dt) {
117
+ dt = new Date(dt);
118
+ dt.setHours(0, 0, 0, 0);
119
+ return dt;
120
+ }
@@ -1,23 +1,23 @@
1
- import "../../../core/polyfills";
2
- /**
3
- * @file Helper functions for dealing with dom elements.
4
- */
5
- export declare var Key: {
6
- left: number;
7
- up: number;
8
- right: number;
9
- down: number;
10
- enter: number;
11
- esc: number;
12
- };
13
- /**
14
- * on attaches an event handler to the specified element, and returns an
15
- * off function which can be used to remove the handler.
16
- *
17
- * @param {string} evt the name of the event to handle
18
- * @param {HTMLElement} el the element to attach to
19
- * @param {function} handler the event handler
20
- * @returns {function} the off function
21
- */
22
- export declare function on(evt: any, el: any, handler: any): () => void;
23
- export declare var CustomEvent: any;
1
+ import "../../../core/polyfills";
2
+ /**
3
+ * @file Helper functions for dealing with dom elements.
4
+ */
5
+ export declare var Key: {
6
+ left: number;
7
+ up: number;
8
+ right: number;
9
+ down: number;
10
+ enter: number;
11
+ esc: number;
12
+ };
13
+ /**
14
+ * on attaches an event handler to the specified element, and returns an
15
+ * off function which can be used to remove the handler.
16
+ *
17
+ * @param {string} evt the name of the event to handle
18
+ * @param {HTMLElement} el the element to attach to
19
+ * @param {function} handler the event handler
20
+ * @returns {function} the off function
21
+ */
22
+ export declare function on(evt: any, el: any, handler: any): () => void;
23
+ export declare var CustomEvent: any;
@@ -1,28 +1,28 @@
1
- import "../../../core/polyfills";
2
- /**
3
- * @file Helper functions for dealing with dom elements.
4
- */
5
- export var Key = {
6
- left: 37,
7
- up: 38,
8
- right: 39,
9
- down: 40,
10
- enter: 13,
11
- esc: 27,
12
- };
13
- /**
14
- * on attaches an event handler to the specified element, and returns an
15
- * off function which can be used to remove the handler.
16
- *
17
- * @param {string} evt the name of the event to handle
18
- * @param {HTMLElement} el the element to attach to
19
- * @param {function} handler the event handler
20
- * @returns {function} the off function
21
- */
22
- export function on(evt, el, handler) {
23
- el.addEventListener(evt, handler, true);
24
- return function () {
25
- el.removeEventListener(evt, handler, true);
26
- };
27
- }
28
- export var CustomEvent = window.CustomEvent;
1
+ import "../../../core/polyfills";
2
+ /**
3
+ * @file Helper functions for dealing with dom elements.
4
+ */
5
+ export var Key = {
6
+ left: 37,
7
+ up: 38,
8
+ right: 39,
9
+ down: 40,
10
+ enter: 13,
11
+ esc: 27,
12
+ };
13
+ /**
14
+ * on attaches an event handler to the specified element, and returns an
15
+ * off function which can be used to remove the handler.
16
+ *
17
+ * @param {string} evt the name of the event to handle
18
+ * @param {HTMLElement} el the element to attach to
19
+ * @param {function} handler the event handler
20
+ * @returns {function} the off function
21
+ */
22
+ export function on(evt, el, handler) {
23
+ el.addEventListener(evt, handler, true);
24
+ return function () {
25
+ el.removeEventListener(evt, handler, true);
26
+ };
27
+ }
28
+ export var CustomEvent = window.CustomEvent;
@@ -1,13 +1,13 @@
1
- /**
2
- * @file Defines simple event emitter behavior.
3
- */
4
- /**
5
- * Emitter constructs a new emitter object which has on/off methods.
6
- *
7
- * @returns {EventEmitter}
8
- */
9
- export default function Emitter(): {
10
- on: (name: any, handler: any) => any;
11
- emit: (name: any, arg: any) => void;
12
- off: (name: any, handler: any) => any;
13
- };
1
+ /**
2
+ * @file Defines simple event emitter behavior.
3
+ */
4
+ /**
5
+ * Emitter constructs a new emitter object which has on/off methods.
6
+ *
7
+ * @returns {EventEmitter}
8
+ */
9
+ export default function Emitter(): {
10
+ on: (name: any, handler: any) => any;
11
+ emit: (name: any, arg: any) => void;
12
+ off: (name: any, handler: any) => any;
13
+ };