@sepale/components 0.0.0-stage → 0.1.0

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 (261) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +65 -3
  3. package/dist/components/Accordion.svelte +48 -0
  4. package/dist/components/Accordion.svelte.d.ts +24 -0
  5. package/dist/components/Alert.svelte +107 -0
  6. package/dist/components/Alert.svelte.d.ts +40 -0
  7. package/dist/components/Avatar.svelte +75 -0
  8. package/dist/components/Avatar.svelte.d.ts +37 -0
  9. package/dist/components/Badge.svelte +46 -0
  10. package/dist/components/Badge.svelte.d.ts +22 -0
  11. package/dist/components/Breadcrumbs.svelte +36 -0
  12. package/dist/components/Breadcrumbs.svelte.d.ts +18 -0
  13. package/dist/components/Bubble.svelte +43 -0
  14. package/dist/components/Bubble.svelte.d.ts +23 -0
  15. package/dist/components/Button.svelte +132 -0
  16. package/dist/components/Button.svelte.d.ts +40 -0
  17. package/dist/components/Calendar.svelte +193 -0
  18. package/dist/components/Calendar.svelte.d.ts +60 -0
  19. package/dist/components/Card.svelte +69 -0
  20. package/dist/components/Card.svelte.d.ts +37 -0
  21. package/dist/components/Carousel.svelte +550 -0
  22. package/dist/components/Carousel.svelte.d.ts +124 -0
  23. package/dist/components/Checkbox.svelte +48 -0
  24. package/dist/components/Checkbox.svelte.d.ts +26 -0
  25. package/dist/components/Chip.svelte +60 -0
  26. package/dist/components/Chip.svelte.d.ts +26 -0
  27. package/dist/components/ChipsInput.svelte +158 -0
  28. package/dist/components/ChipsInput.svelte.d.ts +64 -0
  29. package/dist/components/Collapse.svelte +101 -0
  30. package/dist/components/Collapse.svelte.d.ts +46 -0
  31. package/dist/components/ColorPicker.svelte +135 -0
  32. package/dist/components/ColorPicker.svelte.d.ts +44 -0
  33. package/dist/components/Combobox.svelte +496 -0
  34. package/dist/components/Combobox.svelte.d.ts +96 -0
  35. package/dist/components/DataControl.svelte +754 -0
  36. package/dist/components/DataControl.svelte.d.ts +143 -0
  37. package/dist/components/DataHandler.svelte +67 -0
  38. package/dist/components/DataHandler.svelte.d.ts +44 -0
  39. package/dist/components/DatePicker.svelte +185 -0
  40. package/dist/components/DatePicker.svelte.d.ts +56 -0
  41. package/dist/components/Dialog.svelte +194 -0
  42. package/dist/components/Dialog.svelte.d.ts +51 -0
  43. package/dist/components/Divider.svelte +54 -0
  44. package/dist/components/Divider.svelte.d.ts +27 -0
  45. package/dist/components/Dock.svelte +34 -0
  46. package/dist/components/Dock.svelte.d.ts +18 -0
  47. package/dist/components/Drawer.svelte +174 -0
  48. package/dist/components/Drawer.svelte.d.ts +51 -0
  49. package/dist/components/Dropdown.svelte +183 -0
  50. package/dist/components/Dropdown.svelte.d.ts +52 -0
  51. package/dist/components/Editable.svelte +292 -0
  52. package/dist/components/Editable.svelte.d.ts +113 -0
  53. package/dist/components/EmptyState.svelte +64 -0
  54. package/dist/components/EmptyState.svelte.d.ts +29 -0
  55. package/dist/components/Fieldset.svelte +42 -0
  56. package/dist/components/Fieldset.svelte.d.ts +20 -0
  57. package/dist/components/FileDropzone.svelte +154 -0
  58. package/dist/components/FileDropzone.svelte.d.ts +45 -0
  59. package/dist/components/FileExplorer.svelte +643 -0
  60. package/dist/components/FileExplorer.svelte.d.ts +114 -0
  61. package/dist/components/FileInput.svelte +125 -0
  62. package/dist/components/FileInput.svelte.d.ts +51 -0
  63. package/dist/components/FloatingLabel.svelte +38 -0
  64. package/dist/components/FloatingLabel.svelte.d.ts +24 -0
  65. package/dist/components/Footer.svelte +68 -0
  66. package/dist/components/Footer.svelte.d.ts +37 -0
  67. package/dist/components/Grid.svelte +122 -0
  68. package/dist/components/Grid.svelte.d.ts +72 -0
  69. package/dist/components/Hero.svelte +62 -0
  70. package/dist/components/Hero.svelte.d.ts +33 -0
  71. package/dist/components/Input.svelte +184 -0
  72. package/dist/components/Input.svelte.d.ts +65 -0
  73. package/dist/components/Join.svelte +38 -0
  74. package/dist/components/Join.svelte.d.ts +21 -0
  75. package/dist/components/Kanban.svelte +284 -0
  76. package/dist/components/Kanban.svelte.d.ts +93 -0
  77. package/dist/components/Label.svelte +32 -0
  78. package/dist/components/Label.svelte.d.ts +21 -0
  79. package/dist/components/LaptopFrame.svelte +44 -0
  80. package/dist/components/LaptopFrame.svelte.d.ts +21 -0
  81. package/dist/components/List.svelte +95 -0
  82. package/dist/components/List.svelte.d.ts +69 -0
  83. package/dist/components/Loading.svelte +37 -0
  84. package/dist/components/Loading.svelte.d.ts +17 -0
  85. package/dist/components/Menu.svelte +144 -0
  86. package/dist/components/Menu.svelte.d.ts +53 -0
  87. package/dist/components/MobileFrame.svelte +41 -0
  88. package/dist/components/MobileFrame.svelte.d.ts +21 -0
  89. package/dist/components/Navbar.svelte +49 -0
  90. package/dist/components/Navbar.svelte.d.ts +25 -0
  91. package/dist/components/NumberInput.svelte +255 -0
  92. package/dist/components/NumberInput.svelte.d.ts +68 -0
  93. package/dist/components/Pagination.svelte +169 -0
  94. package/dist/components/Pagination.svelte.d.ts +50 -0
  95. package/dist/components/Progress.svelte +65 -0
  96. package/dist/components/Progress.svelte.d.ts +28 -0
  97. package/dist/components/RadialProgress.svelte +48 -0
  98. package/dist/components/RadialProgress.svelte.d.ts +20 -0
  99. package/dist/components/Radio.svelte +50 -0
  100. package/dist/components/Radio.svelte.d.ts +28 -0
  101. package/dist/components/Range.svelte +53 -0
  102. package/dist/components/Range.svelte.d.ts +26 -0
  103. package/dist/components/Rating.svelte +90 -0
  104. package/dist/components/Rating.svelte.d.ts +41 -0
  105. package/dist/components/Select.svelte +338 -0
  106. package/dist/components/Select.svelte.d.ts +74 -0
  107. package/dist/components/Sidebar.svelte +100 -0
  108. package/dist/components/Sidebar.svelte.d.ts +54 -0
  109. package/dist/components/Skeleton.svelte +40 -0
  110. package/dist/components/Skeleton.svelte.d.ts +18 -0
  111. package/dist/components/Stat.svelte +71 -0
  112. package/dist/components/Stat.svelte.d.ts +35 -0
  113. package/dist/components/Stats.svelte +38 -0
  114. package/dist/components/Stats.svelte.d.ts +22 -0
  115. package/dist/components/Steps.svelte +204 -0
  116. package/dist/components/Steps.svelte.d.ts +66 -0
  117. package/dist/components/Subtitle.svelte +44 -0
  118. package/dist/components/Subtitle.svelte.d.ts +26 -0
  119. package/dist/components/Swatch.svelte +61 -0
  120. package/dist/components/Swatch.svelte.d.ts +27 -0
  121. package/dist/components/Switch.svelte +105 -0
  122. package/dist/components/Switch.svelte.d.ts +44 -0
  123. package/dist/components/Table.svelte +243 -0
  124. package/dist/components/Table.svelte.d.ts +121 -0
  125. package/dist/components/Tabs.svelte +142 -0
  126. package/dist/components/Tabs.svelte.d.ts +80 -0
  127. package/dist/components/Text.svelte +43 -0
  128. package/dist/components/Text.svelte.d.ts +25 -0
  129. package/dist/components/Textarea.svelte +76 -0
  130. package/dist/components/Textarea.svelte.d.ts +39 -0
  131. package/dist/components/Title.svelte +46 -0
  132. package/dist/components/Title.svelte.d.ts +29 -0
  133. package/dist/components/Toast.svelte +154 -0
  134. package/dist/components/Toast.svelte.d.ts +49 -0
  135. package/dist/components/Toggle.svelte +48 -0
  136. package/dist/components/Toggle.svelte.d.ts +25 -0
  137. package/dist/components/Tooltip.svelte +70 -0
  138. package/dist/components/Tooltip.svelte.d.ts +34 -0
  139. package/dist/components/WindowFrame.svelte +53 -0
  140. package/dist/components/WindowFrame.svelte.d.ts +24 -0
  141. package/dist/components/accordion-context.d.ts +8 -0
  142. package/dist/components/accordion-context.js +25 -0
  143. package/dist/components/color.d.ts +39 -0
  144. package/dist/components/color.js +92 -0
  145. package/dist/components/data-handler.svelte.d.ts +362 -0
  146. package/dist/components/data-handler.svelte.js +690 -0
  147. package/dist/components/file-icons.d.ts +25 -0
  148. package/dist/components/file-icons.js +46 -0
  149. package/dist/family-types.d.ts +45 -0
  150. package/dist/family-types.js +73 -0
  151. package/dist/generated/classes.d.ts +17 -0
  152. package/dist/generated/classes.js +2511 -0
  153. package/dist/generated/components.d.ts +39 -0
  154. package/dist/generated/components.js +28666 -0
  155. package/dist/generated/registry.d.ts +35 -0
  156. package/dist/generated/registry.js +2658 -0
  157. package/dist/index.d.ts +73 -0
  158. package/dist/index.js +99 -0
  159. package/dist/sepale-types.d.ts +8 -0
  160. package/dist/sepale-types.js +200 -0
  161. package/dist/theme.d.ts +123 -0
  162. package/dist/theme.js +226 -0
  163. package/dist/variants.d.ts +124 -0
  164. package/dist/variants.js +70 -0
  165. package/dist/vendor/air-datepicker/LICENSE.md +21 -0
  166. package/dist/vendor/air-datepicker/README.md +19 -0
  167. package/dist/vendor/air-datepicker/buttonPresets.d.ts +13 -0
  168. package/dist/vendor/air-datepicker/buttonPresets.js +12 -0
  169. package/dist/vendor/air-datepicker/consts.d.ts +18 -0
  170. package/dist/vendor/air-datepicker/consts.js +35 -0
  171. package/dist/vendor/air-datepicker/datepicker.d.ts +289 -0
  172. package/dist/vendor/air-datepicker/datepicker.js +1435 -0
  173. package/dist/vendor/air-datepicker/datepickerBody.d.ts +46 -0
  174. package/dist/vendor/air-datepicker/datepickerBody.js +386 -0
  175. package/dist/vendor/air-datepicker/datepickerButtons.d.ts +25 -0
  176. package/dist/vendor/air-datepicker/datepickerButtons.js +85 -0
  177. package/dist/vendor/air-datepicker/datepickerCell.d.ts +35 -0
  178. package/dist/vendor/air-datepicker/datepickerCell.js +297 -0
  179. package/dist/vendor/air-datepicker/datepickerKeyboard.d.ts +26 -0
  180. package/dist/vendor/air-datepicker/datepickerKeyboard.js +207 -0
  181. package/dist/vendor/air-datepicker/datepickerNav.d.ts +31 -0
  182. package/dist/vendor/air-datepicker/datepickerNav.js +200 -0
  183. package/dist/vendor/air-datepicker/datepickerTime.d.ts +60 -0
  184. package/dist/vendor/air-datepicker/datepickerTime.js +276 -0
  185. package/dist/vendor/air-datepicker/defaults.d.ts +65 -0
  186. package/dist/vendor/air-datepicker/defaults.js +79 -0
  187. package/dist/vendor/air-datepicker/index.d.ts +168 -0
  188. package/dist/vendor/air-datepicker/index.js +3 -0
  189. package/dist/vendor/air-datepicker/locale/ar.d.ts +4 -0
  190. package/dist/vendor/air-datepicker/locale/ar.js +14 -0
  191. package/dist/vendor/air-datepicker/locale/bg.d.ts +4 -0
  192. package/dist/vendor/air-datepicker/locale/bg.js +14 -0
  193. package/dist/vendor/air-datepicker/locale/ca.d.ts +4 -0
  194. package/dist/vendor/air-datepicker/locale/ca.js +14 -0
  195. package/dist/vendor/air-datepicker/locale/cs.d.ts +4 -0
  196. package/dist/vendor/air-datepicker/locale/cs.js +14 -0
  197. package/dist/vendor/air-datepicker/locale/da.d.ts +4 -0
  198. package/dist/vendor/air-datepicker/locale/da.js +14 -0
  199. package/dist/vendor/air-datepicker/locale/de.d.ts +4 -0
  200. package/dist/vendor/air-datepicker/locale/de.js +14 -0
  201. package/dist/vendor/air-datepicker/locale/el.d.ts +4 -0
  202. package/dist/vendor/air-datepicker/locale/el.js +14 -0
  203. package/dist/vendor/air-datepicker/locale/en.d.ts +4 -0
  204. package/dist/vendor/air-datepicker/locale/en.js +14 -0
  205. package/dist/vendor/air-datepicker/locale/es.d.ts +4 -0
  206. package/dist/vendor/air-datepicker/locale/es.js +14 -0
  207. package/dist/vendor/air-datepicker/locale/eu.d.ts +4 -0
  208. package/dist/vendor/air-datepicker/locale/eu.js +14 -0
  209. package/dist/vendor/air-datepicker/locale/fi.d.ts +4 -0
  210. package/dist/vendor/air-datepicker/locale/fi.js +14 -0
  211. package/dist/vendor/air-datepicker/locale/fr.d.ts +4 -0
  212. package/dist/vendor/air-datepicker/locale/fr.js +14 -0
  213. package/dist/vendor/air-datepicker/locale/hr.d.ts +4 -0
  214. package/dist/vendor/air-datepicker/locale/hr.js +14 -0
  215. package/dist/vendor/air-datepicker/locale/hu.d.ts +4 -0
  216. package/dist/vendor/air-datepicker/locale/hu.js +14 -0
  217. package/dist/vendor/air-datepicker/locale/id.d.ts +4 -0
  218. package/dist/vendor/air-datepicker/locale/id.js +14 -0
  219. package/dist/vendor/air-datepicker/locale/it.d.ts +4 -0
  220. package/dist/vendor/air-datepicker/locale/it.js +14 -0
  221. package/dist/vendor/air-datepicker/locale/ja.d.ts +4 -0
  222. package/dist/vendor/air-datepicker/locale/ja.js +14 -0
  223. package/dist/vendor/air-datepicker/locale/ko.d.ts +4 -0
  224. package/dist/vendor/air-datepicker/locale/ko.js +14 -0
  225. package/dist/vendor/air-datepicker/locale/nb.d.ts +4 -0
  226. package/dist/vendor/air-datepicker/locale/nb.js +14 -0
  227. package/dist/vendor/air-datepicker/locale/nl.d.ts +4 -0
  228. package/dist/vendor/air-datepicker/locale/nl.js +14 -0
  229. package/dist/vendor/air-datepicker/locale/pl.d.ts +4 -0
  230. package/dist/vendor/air-datepicker/locale/pl.js +14 -0
  231. package/dist/vendor/air-datepicker/locale/pt-BR.d.ts +4 -0
  232. package/dist/vendor/air-datepicker/locale/pt-BR.js +14 -0
  233. package/dist/vendor/air-datepicker/locale/pt.d.ts +4 -0
  234. package/dist/vendor/air-datepicker/locale/pt.js +14 -0
  235. package/dist/vendor/air-datepicker/locale/ro.d.ts +4 -0
  236. package/dist/vendor/air-datepicker/locale/ro.js +14 -0
  237. package/dist/vendor/air-datepicker/locale/ru.d.ts +4 -0
  238. package/dist/vendor/air-datepicker/locale/ru.js +14 -0
  239. package/dist/vendor/air-datepicker/locale/si.d.ts +4 -0
  240. package/dist/vendor/air-datepicker/locale/si.js +14 -0
  241. package/dist/vendor/air-datepicker/locale/sk.d.ts +4 -0
  242. package/dist/vendor/air-datepicker/locale/sk.js +14 -0
  243. package/dist/vendor/air-datepicker/locale/sl.d.ts +4 -0
  244. package/dist/vendor/air-datepicker/locale/sl.js +14 -0
  245. package/dist/vendor/air-datepicker/locale/sv.d.ts +4 -0
  246. package/dist/vendor/air-datepicker/locale/sv.js +14 -0
  247. package/dist/vendor/air-datepicker/locale/th.d.ts +4 -0
  248. package/dist/vendor/air-datepicker/locale/th.js +14 -0
  249. package/dist/vendor/air-datepicker/locale/tr.d.ts +4 -0
  250. package/dist/vendor/air-datepicker/locale/tr.js +16 -0
  251. package/dist/vendor/air-datepicker/locale/uk.d.ts +4 -0
  252. package/dist/vendor/air-datepicker/locale/uk.js +14 -0
  253. package/dist/vendor/air-datepicker/locale/zh.d.ts +4 -0
  254. package/dist/vendor/air-datepicker/locale/zh.js +14 -0
  255. package/dist/vendor/air-datepicker/typedefs.d.ts +3 -0
  256. package/dist/vendor/air-datepicker/typedefs.js +15 -0
  257. package/dist/vendor/air-datepicker/utils.d.ts +155 -0
  258. package/dist/vendor/air-datepicker/utils.js +395 -0
  259. package/dist/vendor/air-datepicker/withEvents.d.ts +1 -0
  260. package/dist/vendor/air-datepicker/withEvents.js +39 -0
  261. package/package.json +44 -3
@@ -0,0 +1,46 @@
1
+ export default class DatepickerBody {
2
+ static getDaysDates(dp: any, cb: any): Date[];
3
+ static getMonthsDates(dp: any, cb: any): Date[];
4
+ static getYearsDates(dp: any, cb: any): Date[];
5
+ static getDatesFunction(viewType?: string): typeof DatepickerBody.getDaysDates | undefined;
6
+ constructor({ dp, type, opts }: {
7
+ dp: any;
8
+ type: any;
9
+ opts: any;
10
+ });
11
+ dp: any;
12
+ type: any;
13
+ opts: any;
14
+ cells: any[];
15
+ $el: string;
16
+ pressed: boolean;
17
+ isVisible: boolean;
18
+ init(): void;
19
+ _bindEvents(): void;
20
+ _bindDatepickerEvents(): void;
21
+ _buildBaseHtml(): void;
22
+ $names: any;
23
+ $cells: any;
24
+ _getDayNamesHtml(firstDay?: any): string;
25
+ renderDayNames(): void;
26
+ _generateCell(date: any): DatepickerCell;
27
+ _generateCells(): void;
28
+ show(): void;
29
+ hide(): void;
30
+ destroyCells(): void;
31
+ destroy(): void;
32
+ handleClick: (e: any) => void;
33
+ handleDayNameClick: (e: any) => void;
34
+ onChangeCurrentView: (view: any) => void;
35
+ onMouseOverCell: (e: any) => void;
36
+ onMouseOutCell: () => void;
37
+ onClickBody: (e: any) => void;
38
+ onMouseDown: (e: any) => void;
39
+ rangeFromFocused: boolean | undefined;
40
+ rangeToFocused: boolean | undefined;
41
+ onMouseMove: (e: any) => void;
42
+ onMouseUp: () => void;
43
+ onChangeViewDate: (date: any, oldViewDate: any) => void;
44
+ render: () => void;
45
+ }
46
+ import DatepickerCell from './datepickerCell.js';
@@ -0,0 +1,386 @@
1
+ // @ts-nocheck — vendored code, typed by index.d.ts; not ours to check.
2
+ // air-datepicker 3.6.0 (MIT, Timofey Marochkin) — see LICENSE.md and README.md.
3
+ import consts from './consts.js';
4
+ import {
5
+ addEventListener,
6
+ classNames,
7
+ closest,
8
+ createElement,
9
+ getDaysCount,
10
+ getDecade,
11
+ getEl,
12
+ getParsedDate,
13
+ isDateBigger,
14
+ isDateSmaller,
15
+ isSameDate,
16
+ subDays,
17
+ } from './utils.js';
18
+ import DatepickerCell from './datepickerCell.js';
19
+
20
+
21
+ let templates = {
22
+ [consts.days]:'' +
23
+ '<div class="air-datepicker-body--day-names"></div>' +
24
+ `<div class="air-datepicker-body--cells -${consts.days}-"></div>`,
25
+ [consts.months]: `<div class="air-datepicker-body--cells -${consts.months}-"></div>`,
26
+ [consts.years]: `<div class="air-datepicker-body--cells -${consts.years}-"></div>`
27
+ };
28
+
29
+ const cellClassName = '.air-datepicker-cell';
30
+
31
+ export default class DatepickerBody {
32
+ constructor({dp, type, opts}) {
33
+ this.dp = dp;
34
+ this.type = type;
35
+ this.opts = opts;
36
+ this.cells = [];
37
+ this.$el = '';
38
+ this.pressed = false;
39
+ this.isVisible = true;
40
+
41
+ this.init();
42
+ }
43
+
44
+ init() {
45
+ this._buildBaseHtml();
46
+ if (this.type === consts.days) {
47
+ this.renderDayNames();
48
+ }
49
+ this.render();
50
+ this._bindEvents();
51
+ this._bindDatepickerEvents();
52
+ }
53
+
54
+ _bindEvents() {
55
+ let {range, dynamicRange} = this.opts;
56
+
57
+ addEventListener(this.$el, 'mouseover', this.onMouseOverCell);
58
+ addEventListener(this.$el, 'mouseout', this.onMouseOutCell);
59
+ addEventListener(this.$el, 'click', this.onClickBody);
60
+
61
+
62
+ if (range && dynamicRange) {
63
+ addEventListener(this.$el, 'mousedown', this.onMouseDown);
64
+ addEventListener(this.$el, 'mousemove', this.onMouseMove);
65
+ addEventListener(window.document, 'mouseup', this.onMouseUp);
66
+ }
67
+
68
+ }
69
+
70
+ _bindDatepickerEvents() {
71
+ this.dp.on(consts.eventChangeViewDate, this.onChangeViewDate);
72
+ this.dp.on(consts.eventChangeCurrentView, this.onChangeCurrentView);
73
+ }
74
+
75
+ _buildBaseHtml() {
76
+ this.$el = createElement({
77
+ className: `air-datepicker-body -${this.type}-`,
78
+ innerHtml: templates[this.type]
79
+ });
80
+
81
+ this.$names = getEl('.air-datepicker-body--day-names', this.$el);
82
+ this.$cells = getEl('.air-datepicker-body--cells', this.$el);
83
+ }
84
+
85
+ _getDayNamesHtml(firstDay = this.dp.locale.firstDay) {
86
+ let html = '',
87
+ isWeekend = this.dp.isWeekend,
88
+ {onClickDayName} = this.opts,
89
+ curDay = firstDay,
90
+ totalDays = 7,
91
+ i = 0;
92
+
93
+ while (i < totalDays) {
94
+ let day = curDay % totalDays;
95
+ let className = classNames('air-datepicker-body--day-name', {
96
+ [consts.cssClassWeekend]: isWeekend(day),
97
+ '-clickable-': !!onClickDayName
98
+ });
99
+ let dayName = this.dp.locale.daysMin[day];
100
+
101
+ html += `<div class="${className}" data-day-index='${day}'>${dayName}</div>`;
102
+
103
+ i++;
104
+ curDay++;
105
+ }
106
+ return html;
107
+ }
108
+
109
+ renderDayNames() {
110
+ this.$names.innerHTML = this._getDayNamesHtml();
111
+ }
112
+
113
+ _generateCell(date) {
114
+ let {type, dp, opts} = this;
115
+ return new DatepickerCell({
116
+ type,
117
+ dp,
118
+ opts,
119
+ date,
120
+ body: this
121
+ });
122
+ }
123
+
124
+ _generateCells() {
125
+ const getDates = DatepickerBody.getDatesFunction(this.type);
126
+
127
+ getDates(this.dp, (date) => {
128
+ this.cells.push(this._generateCell(date));
129
+ });
130
+ }
131
+
132
+ show() {
133
+ this.isVisible = true;
134
+ this.$el.classList.remove('-hidden-');
135
+ }
136
+
137
+ hide() {
138
+ this.isVisible = false;
139
+ this.$el.classList.add('-hidden-');
140
+ }
141
+
142
+ destroyCells() {
143
+ this.cells.forEach(c => c.destroy());
144
+ this.cells = [];
145
+ this.$cells.innerHTML = '';
146
+ }
147
+
148
+ destroy() {
149
+ this.destroyCells();
150
+ this.dp.off(consts.eventChangeViewDate, this.onChangeViewDate);
151
+ this.dp.off(consts.eventChangeCurrentView, this.onChangeCurrentView);
152
+ }
153
+
154
+ handleClick = (e) => {
155
+ let $cell = e.target.closest(cellClassName);
156
+ let cell = $cell.adpCell;
157
+ if (cell.isDisabled) return;
158
+
159
+ if (!this.dp.isMinViewReached) {
160
+ this.dp.down();
161
+ return;
162
+ }
163
+
164
+ let alreadySelectedDate = this.dp._checkIfDateIsSelected(cell.date, cell.type);
165
+
166
+ if (alreadySelectedDate) {
167
+ this.dp._handleAlreadySelectedDates(alreadySelectedDate, cell.date);
168
+ } else {
169
+ this.dp.selectDate(cell.date);
170
+ }
171
+ }
172
+
173
+ handleDayNameClick = (e) => {
174
+ let index = e.target.getAttribute('data-day-index');
175
+
176
+ this.opts.onClickDayName({
177
+ dayIndex: Number(index),
178
+ datepicker: this.dp
179
+ });
180
+ }
181
+
182
+ onChangeCurrentView = (view) => {
183
+ if (view !== this.type) {
184
+ this.hide();
185
+ } else {
186
+ this.show();
187
+ this.render();
188
+ }
189
+ }
190
+
191
+ onMouseOverCell = (e) => {
192
+ let $cell = closest(e.target, cellClassName);
193
+ this.dp.setFocusDate($cell ? $cell.adpCell.date : false);
194
+ }
195
+
196
+ onMouseOutCell = () => {
197
+ this.dp.setFocusDate(false);
198
+ }
199
+
200
+ onClickBody = (e) => {
201
+ let {onClickDayName} = this.opts;
202
+ let target = e.target;
203
+
204
+ if (target.closest(cellClassName)) {
205
+ this.handleClick(e);
206
+ }
207
+
208
+ if (onClickDayName && target.closest('.air-datepicker-body--day-name')) {
209
+ this.handleDayNameClick(e);
210
+ }
211
+ }
212
+
213
+ onMouseDown = (e) => {
214
+ this.pressed = true;
215
+
216
+ let $cell = closest(e.target, cellClassName),
217
+ cell = $cell && $cell.adpCell;
218
+
219
+ if (isSameDate(cell.date, this.dp.rangeDateFrom)) {
220
+ this.rangeFromFocused = true;
221
+ }
222
+ if (isSameDate(cell.date, this.dp.rangeDateTo)) {
223
+ this.rangeToFocused = true;
224
+ }
225
+ }
226
+
227
+ onMouseMove = (e) => {
228
+ if (!this.pressed || !this.dp.isMinViewReached) return;
229
+ e.preventDefault();
230
+
231
+ let $cell = closest(e.target, cellClassName),
232
+ cell = $cell && $cell.adpCell,
233
+ {selectedDates, rangeDateTo, rangeDateFrom} = this.dp;
234
+
235
+ if (!cell || cell.isDisabled) return;
236
+
237
+ let {date} = cell;
238
+
239
+ // Allow user to change selected range
240
+ if (selectedDates.length === 2) {
241
+ // Add hours and minute to new selected date, to update time sliders properly
242
+ if (this.rangeFromFocused && !isDateBigger(date, rangeDateTo)) {
243
+ let {hours, minutes} = getParsedDate(rangeDateFrom);
244
+ date.setHours(hours);
245
+ date.setMinutes(minutes);
246
+
247
+ this.dp.rangeDateFrom = date;
248
+ this.dp.replaceDate(rangeDateFrom, date);
249
+ }
250
+ if (this.rangeToFocused && !isDateSmaller(date, rangeDateFrom)) {
251
+ let {hours, minutes} = getParsedDate(rangeDateTo);
252
+ date.setHours(hours);
253
+ date.setMinutes(minutes);
254
+
255
+ this.dp.rangeDateTo = date;
256
+ this.dp.replaceDate(rangeDateTo, date);
257
+ }
258
+ }
259
+ }
260
+
261
+ onMouseUp = () => {
262
+ this.pressed = false;
263
+ this.rangeFromFocused = false;
264
+ this.rangeToFocused = false;
265
+ }
266
+
267
+ onChangeViewDate = (date, oldViewDate) => {
268
+ // Handle only visible views
269
+ if (!this.isVisible) return;
270
+
271
+ let decade1 = getDecade(date),
272
+ decade2 = getDecade(oldViewDate);
273
+
274
+ // Prevent unnecessary cell rendering when going up or down to next view
275
+ switch (this.dp.currentView) {
276
+ case (consts.days):
277
+ if (isSameDate(date, oldViewDate, consts.months)) {
278
+ return;
279
+ }
280
+ break;
281
+ case (consts.months):
282
+ if (isSameDate(date, oldViewDate, consts.years)) {
283
+ return;
284
+ }
285
+ break;
286
+ case (consts.years):
287
+ if (decade1[0] === decade2[0] && decade1[1] === decade2[1]) {
288
+ return;
289
+ }
290
+ break;
291
+ }
292
+
293
+ this.render();
294
+ }
295
+
296
+ render = () => {
297
+ this.destroyCells();
298
+
299
+ this._generateCells();
300
+ this.cells.forEach((c) => {
301
+ this.$cells.appendChild(c.render());
302
+ });
303
+ }
304
+
305
+
306
+ static getDaysDates(dp, cb) {
307
+ let {viewDate, opts: {fixedHeight}, locale: {firstDay}} = dp,
308
+ totalMonthDays = getDaysCount(viewDate),
309
+ {year, month} = getParsedDate(viewDate),
310
+ firstMonthDay = new Date(year, month, 1),
311
+ lastMonthDay = new Date(year, month, totalMonthDays),
312
+ daysFromPrevMonth = firstMonthDay.getDay() - firstDay,
313
+ daysFromNextMonth = 6 - lastMonthDay.getDay() + firstDay;
314
+
315
+ daysFromPrevMonth = daysFromPrevMonth < 0 ? daysFromPrevMonth + 7 : daysFromPrevMonth;
316
+ daysFromNextMonth = daysFromNextMonth > 6 ? daysFromNextMonth - 7 : daysFromNextMonth;
317
+
318
+ let firstRenderDate = subDays(firstMonthDay, daysFromPrevMonth),
319
+ totalRenderDays = totalMonthDays + daysFromPrevMonth + daysFromNextMonth,
320
+ firstRenderDayDate = firstRenderDate.getDate(),
321
+ {year:renderYear, month: renderMonth} = getParsedDate(firstRenderDate),
322
+ i = 0;
323
+
324
+ if (fixedHeight) {
325
+ totalRenderDays = 6 * 7; // Render 6 weeks in every month
326
+ }
327
+
328
+ const dates = [];
329
+
330
+ while (i < totalRenderDays) {
331
+ let date = new Date(renderYear, renderMonth, firstRenderDayDate + i);
332
+ if (cb) {
333
+ cb(date);
334
+ }
335
+ dates.push(date);
336
+ i++;
337
+ }
338
+
339
+ return dates;
340
+ }
341
+
342
+ static getMonthsDates(dp, cb) {
343
+ let totalMonths = 12,
344
+ {year} = dp.parsedViewDate,
345
+ currentMonth = 0,
346
+ dates = [];
347
+
348
+ while (currentMonth < totalMonths) {
349
+ const date = new Date(year, currentMonth);
350
+ dates.push(date);
351
+ if (cb) {
352
+ cb(date);
353
+ }
354
+ currentMonth++;
355
+ }
356
+
357
+ return dates;
358
+ }
359
+
360
+ static getYearsDates(dp, cb) {
361
+ let decade = getDecade(dp.viewDate),
362
+ firstYear = decade[0] - 1,
363
+ lastYear = decade[1] + 1,
364
+ year = firstYear,
365
+ dates = [];
366
+
367
+ while (year <= lastYear) {
368
+ const date = new Date(year, 0);
369
+ dates.push(date);
370
+ if (cb) {
371
+ cb(date);
372
+ }
373
+ year++;
374
+ }
375
+
376
+ return dates;
377
+ }
378
+
379
+ static getDatesFunction(viewType = consts.days) {
380
+ return {
381
+ [consts.days]: DatepickerBody.getDaysDates,
382
+ [consts.months]: DatepickerBody.getMonthsDates,
383
+ [consts.years]: DatepickerBody.getYearsDates,
384
+ }[viewType];
385
+ }
386
+ }
@@ -0,0 +1,25 @@
1
+ export default class DatepickerButtons {
2
+ constructor({ dp, opts }: {
3
+ dp: any;
4
+ opts: any;
5
+ });
6
+ dp: any;
7
+ opts: any;
8
+ init(): void;
9
+ createElement(): void;
10
+ $el: HTMLElement | undefined;
11
+ destroy(): void;
12
+ clearHtml(): this;
13
+ generateButtons(): void;
14
+ attachEventToButton(button: any, onClick: any): void;
15
+ /**
16
+ * Creates datepicker button HTML element
17
+ * @param {String|Function} content - button content
18
+ * @param {String} [className]
19
+ * @param {String} [tagName=button]
20
+ * @param {Object} [attrs]
21
+ * @return HTMLElement
22
+ */
23
+ createButton({ content, className, tagName, attrs }: string | Function): HTMLElement;
24
+ render(): void;
25
+ }
@@ -0,0 +1,85 @@
1
+ // @ts-nocheck — vendored code, typed by index.d.ts; not ours to check.
2
+ // air-datepicker 3.6.0 (MIT, Timofey Marochkin) — see LICENSE.md and README.md.
3
+ import {classNames, createElement} from './utils.js';
4
+ import buttonPresets from './buttonPresets.js';
5
+
6
+
7
+ export default class DatepickerButtons {
8
+ constructor({dp, opts}) {
9
+ this.dp = dp;
10
+ this.opts = opts;
11
+
12
+ this.init();
13
+ }
14
+
15
+ init() {
16
+ this.createElement();
17
+ this.render();
18
+ }
19
+
20
+ createElement() {
21
+ this.$el = createElement({className: 'air-datepicker-buttons'});
22
+ }
23
+
24
+ destroy() {
25
+ this.$el.parentNode.removeChild(this.$el);
26
+ }
27
+
28
+ clearHtml() {
29
+ this.$el.innerHTML = '';
30
+ return this;
31
+ }
32
+
33
+ generateButtons() {
34
+ let {buttons} = this.opts;
35
+
36
+ if (!Array.isArray(buttons)) {
37
+ buttons = [buttons];
38
+ }
39
+
40
+ buttons.forEach((b) => {
41
+ let data = b;
42
+
43
+ if (typeof b === 'string' && buttonPresets[b]) {
44
+ data = buttonPresets[b];
45
+ }
46
+
47
+ let button = this.createButton(data);
48
+ if (data.onClick) {
49
+ this.attachEventToButton(button, data.onClick);
50
+ }
51
+
52
+ this.$el.appendChild(button);
53
+ });
54
+
55
+ }
56
+
57
+ attachEventToButton(button, onClick) {
58
+ button.addEventListener('click', () => {
59
+ onClick(this.dp);
60
+ });
61
+ }
62
+
63
+ /**
64
+ * Creates datepicker button HTML element
65
+ * @param {String|Function} content - button content
66
+ * @param {String} [className]
67
+ * @param {String} [tagName=button]
68
+ * @param {Object} [attrs]
69
+ * @return HTMLElement
70
+ */
71
+ createButton({content, className, tagName = 'button', attrs = {}}) {
72
+ let _content = typeof content === 'function' ? content(this.dp) : content;
73
+
74
+ return createElement({
75
+ tagName,
76
+ innerHtml: `<span tabindex='-1'>${_content}</span>`,
77
+ className: classNames('air-datepicker-button', className),
78
+ attrs
79
+ });
80
+ }
81
+
82
+ render() {
83
+ this.generateButtons();
84
+ }
85
+ }
@@ -0,0 +1,35 @@
1
+ export default class DatepickerCell {
2
+ constructor({ type, date, dp, opts, body }?: {});
3
+ type: any;
4
+ singleType: any;
5
+ date: any;
6
+ dp: any;
7
+ opts: any;
8
+ body: any;
9
+ customData: boolean;
10
+ init(): void;
11
+ _bindDatepickerEvents(): void;
12
+ unbindDatepickerEvents(): void;
13
+ _createElement(): void;
14
+ $cell: HTMLElement | undefined;
15
+ _getClassName(): string[];
16
+ _getHtml(): any;
17
+ _isOutOfMinMaxRange(): boolean | undefined;
18
+ destroy(): void;
19
+ focus: () => void;
20
+ focused: boolean | undefined;
21
+ removeFocus: () => void;
22
+ select: () => void;
23
+ selected: boolean | undefined;
24
+ removeSelect: () => void;
25
+ _handleRangeStatus(): void;
26
+ _handleSelectedStatus(): void;
27
+ _handleInitialFocusStatus(): void;
28
+ _handleClasses(): void;
29
+ get isDisabled(): boolean;
30
+ get isOtherMonth(): any;
31
+ get isOtherDecade(): any;
32
+ onChangeSelectedDate: () => void;
33
+ onChangeFocusDate: (date: any) => void;
34
+ render: () => HTMLElement | undefined;
35
+ }