react-asc 20.2.0 → 21.0.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 (238) hide show
  1. package/components/Alert/Alert.d.ts +11 -0
  2. package/components/Alert/index.d.ts +1 -0
  3. package/components/AppBar/AppBar.d.ts +9 -0
  4. package/components/AppBar/AppBarTitle.d.ts +5 -0
  5. package/components/AppBar/index.d.ts +2 -0
  6. package/components/AutoComplete/AutoComplete.d.ts +19 -0
  7. package/components/AutoComplete/index.d.ts +1 -0
  8. package/components/Backdrop/Backdrop.d.ts +7 -0
  9. package/components/Backdrop/index.d.ts +1 -0
  10. package/components/Badge/Badge.d.ts +7 -0
  11. package/components/Badge/index.d.ts +1 -0
  12. package/components/Breadcrumb/Breadcrumb.d.ts +5 -0
  13. package/components/Breadcrumb/BreadcrumbItem.d.ts +6 -0
  14. package/components/Breadcrumb/index.d.ts +2 -0
  15. package/components/Button/Button.d.ts +12 -0
  16. package/components/Button/index.d.ts +1 -0
  17. package/components/ButtonGroup/ButtonGroup.d.ts +2 -0
  18. package/components/ButtonGroup/index.d.ts +1 -0
  19. package/components/Card/Card.d.ts +6 -0
  20. package/components/Card/CardBody.d.ts +2 -0
  21. package/components/Card/CardFooter.d.ts +2 -0
  22. package/components/Card/CardImage.d.ts +2 -0
  23. package/components/Card/CardSubtitle.d.ts +2 -0
  24. package/components/Card/CardText.d.ts +2 -0
  25. package/components/Card/CardTitle.d.ts +6 -0
  26. package/components/Card/index.d.ts +7 -0
  27. package/components/Checkbox/Checkbox.d.ts +7 -0
  28. package/components/Checkbox/index.d.ts +1 -0
  29. package/components/Chip/Chip.d.ts +11 -0
  30. package/components/Chip/index.d.ts +1 -0
  31. package/components/ConditionalWrapper/ConditionalWrapper.d.ts +8 -0
  32. package/components/ConditionalWrapper/index.d.ts +1 -0
  33. package/components/DateSelect/DateSelect.d.ts +17 -0
  34. package/components/DateSelect/DaySelect.d.ts +12 -0
  35. package/components/DateSelect/MonthSelect.d.ts +10 -0
  36. package/components/DateSelect/YearSelect.d.ts +12 -0
  37. package/components/DateSelect/index.d.ts +4 -0
  38. package/components/Drawer/Drawer.d.ts +9 -0
  39. package/components/Drawer/index.d.ts +1 -0
  40. package/components/ExpansionPanel/ExpansionPanel.d.ts +8 -0
  41. package/components/ExpansionPanel/ExpansionPanelContent.d.ts +5 -0
  42. package/components/ExpansionPanel/ExpansionPanelHeader.d.ts +7 -0
  43. package/components/ExpansionPanel/index.d.ts +3 -0
  44. package/components/FileInput/FileInput.d.ts +5 -0
  45. package/components/FileInput/index.d.ts +1 -0
  46. package/components/FloatingActionButton/FloatingActionButton.d.ts +12 -0
  47. package/components/FloatingActionButton/index.d.ts +1 -0
  48. package/components/Form/Form.d.ts +38 -0
  49. package/components/Form/FormError.d.ts +8 -0
  50. package/components/Form/FormGroup.d.ts +7 -0
  51. package/components/Form/FormHint/FormHint.d.ts +2 -0
  52. package/components/Form/FormHint/index.d.ts +1 -0
  53. package/components/Form/FormInput/FormInput.d.ts +29 -0
  54. package/components/Form/FormInput/index.d.ts +1 -0
  55. package/components/Form/FormLabel/FormLabel.d.ts +2 -0
  56. package/components/Form/FormLabel/index.d.ts +1 -0
  57. package/components/Form/form.interfaces.d.ts +42 -0
  58. package/components/Form/form.models.d.ts +12 -0
  59. package/components/Form/form.types.d.ts +2 -0
  60. package/components/Form/index.d.ts +10 -0
  61. package/components/Form/validators/EmailValidtor.d.ts +1 -0
  62. package/components/Form/validators/IsEmptyValidator.d.ts +1 -0
  63. package/components/Form/validators/IsEqualValidator.d.ts +1 -0
  64. package/components/Form/validators/index.d.ts +3 -0
  65. package/components/Grid/Column/Column.d.ts +10 -0
  66. package/components/Grid/Column/index.d.ts +1 -0
  67. package/components/Grid/Row/Row.d.ts +5 -0
  68. package/components/Grid/Row/index.d.ts +1 -0
  69. package/components/Grid/index.d.ts +2 -0
  70. package/components/Icon/Icon.d.ts +6 -0
  71. package/components/Icon/index.d.ts +1 -0
  72. package/components/IconButton/IconButton.d.ts +11 -0
  73. package/components/IconButton/index.d.ts +1 -0
  74. package/components/Link/Link.d.ts +2 -0
  75. package/components/Link/Link.test.d.ts +1 -0
  76. package/components/Link/index.d.ts +1 -0
  77. package/components/List/List.d.ts +5 -0
  78. package/components/List/ListItem.d.ts +9 -0
  79. package/components/List/ListItemAction.d.ts +2 -0
  80. package/components/List/ListItemAvatar.d.ts +6 -0
  81. package/components/List/ListItemIcon.d.ts +6 -0
  82. package/components/List/ListItemText.d.ts +7 -0
  83. package/components/List/index.d.ts +6 -0
  84. package/components/List/list.models.d.ts +8 -0
  85. package/components/LoadingIndicator/LoadingIndicator.d.ts +2 -0
  86. package/components/LoadingIndicator/LoadingIndicatorContainer.d.ts +5 -0
  87. package/components/LoadingIndicator/index.d.ts +3 -0
  88. package/components/LoadingIndicator/loading-indicator.service.d.ts +11 -0
  89. package/components/Menu/Menu.d.ts +11 -0
  90. package/components/Menu/MenuBackdrop.d.ts +6 -0
  91. package/components/Menu/MenuBody.d.ts +12 -0
  92. package/components/Menu/MenuContext.d.ts +6 -0
  93. package/components/Menu/MenuDivider.d.ts +2 -0
  94. package/components/Menu/MenuItem.d.ts +8 -0
  95. package/components/Menu/MenuToggle.d.ts +6 -0
  96. package/components/Menu/index.d.ts +6 -0
  97. package/components/Menu/menu.types.d.ts +1 -0
  98. package/components/Modal/GlobalModal.d.ts +19 -0
  99. package/components/Modal/Modal.d.ts +14 -0
  100. package/components/Modal/ModalBody.d.ts +6 -0
  101. package/components/Modal/ModalFooter.d.ts +2 -0
  102. package/components/Modal/ModalHeader.d.ts +7 -0
  103. package/components/Modal/index.d.ts +8 -0
  104. package/components/Modal/modal.enum.d.ts +10 -0
  105. package/components/Modal/modal.interfaces.d.ts +12 -0
  106. package/components/Modal/modal.service.d.ts +21 -0
  107. package/components/NumberSelect/NumberSelect.d.ts +12 -0
  108. package/components/NumberSelect/index.d.ts +1 -0
  109. package/components/Select/Select.d.ts +16 -0
  110. package/components/Select/index.d.ts +1 -0
  111. package/components/Sidebar/Sidebar.d.ts +9 -0
  112. package/components/Sidebar/index.d.ts +2 -0
  113. package/components/Sidebar/sidebar.interfaces.d.ts +9 -0
  114. package/components/Sidebar/sidebar.models.d.ts +11 -0
  115. package/components/Snackbar/Snackbar.d.ts +8 -0
  116. package/components/Snackbar/index.d.ts +2 -0
  117. package/components/Snackbar/snackbar.service.d.ts +19 -0
  118. package/components/SpeedDial/SpeedDial.d.ts +7 -0
  119. package/components/SpeedDial/SpeedDialAction.d.ts +9 -0
  120. package/components/SpeedDial/SpeedDialActions.d.ts +2 -0
  121. package/components/SpeedDial/SpeedDialIcon.d.ts +5 -0
  122. package/components/SpeedDial/index.d.ts +3 -0
  123. package/components/Stepper/Step/Step.d.ts +19 -0
  124. package/components/Stepper/Step/index.d.ts +1 -0
  125. package/components/Stepper/StepConnector/StepConnector.d.ts +6 -0
  126. package/components/Stepper/StepPanel/StepPanel.d.ts +5 -0
  127. package/components/Stepper/Stepper.d.ts +16 -0
  128. package/components/Stepper/StepperActions/StepperActions.d.ts +12 -0
  129. package/components/Stepper/StepperActions/index.d.ts +1 -0
  130. package/components/Stepper/index.d.ts +3 -0
  131. package/components/Table/Table.d.ts +10 -0
  132. package/components/Table/index.d.ts +1 -0
  133. package/components/Tabs/Tab.d.ts +14 -0
  134. package/components/Tabs/TabIndicator.d.ts +10 -0
  135. package/components/Tabs/TabPanel.d.ts +6 -0
  136. package/components/Tabs/Tabs.d.ts +17 -0
  137. package/components/Tabs/index.d.ts +3 -0
  138. package/components/Textarea/Textarea.d.ts +5 -0
  139. package/components/Textarea/index.d.ts +1 -0
  140. package/components/TimeSelect/HourSelect.d.ts +10 -0
  141. package/components/TimeSelect/MilliSecondSelect.d.ts +11 -0
  142. package/components/TimeSelect/MinuteSelect.d.ts +10 -0
  143. package/components/TimeSelect/SecondSelect.d.ts +10 -0
  144. package/components/TimeSelect/TimeSelect.d.ts +20 -0
  145. package/components/TimeSelect/index.d.ts +5 -0
  146. package/components/Tooltip/Tooltip.d.ts +6 -0
  147. package/components/Tooltip/index.d.ts +1 -0
  148. package/components/TreeView/TreeItem.d.ts +14 -0
  149. package/components/TreeView/TreeView.d.ts +2 -0
  150. package/components/TreeView/index.d.ts +2 -0
  151. package/components/Typography/Typography.d.ts +10 -0
  152. package/components/Typography/index.d.ts +1 -0
  153. package/components/component.enums.d.ts +25 -0
  154. package/components/component.interfaces.d.ts +18 -0
  155. package/components/index.d.ts +41 -0
  156. package/hooks/index.d.ts +4 -0
  157. package/hooks/useConstructor.d.ts +1 -0
  158. package/hooks/useDebounce.d.ts +2 -0
  159. package/hooks/useHover.d.ts +2 -0
  160. package/hooks/useWindowSize.d.ts +4 -0
  161. package/icons/CaretDownSolidIcon.d.ts +2 -0
  162. package/icons/CheckSolidIcon.d.ts +2 -0
  163. package/icons/CheckSquareRegularIcon.d.ts +2 -0
  164. package/icons/ChevronDownSolidIcon.d.ts +2 -0
  165. package/icons/ChevronLeftSolidIcon.d.ts +2 -0
  166. package/icons/ChevronRightSolidIcon.d.ts +2 -0
  167. package/icons/ChevronUpSolidIcon.d.ts +2 -0
  168. package/icons/CircleSolidIcon.d.ts +2 -0
  169. package/icons/HomeSolidIcon.d.ts +2 -0
  170. package/icons/PlusSolidIcon.d.ts +2 -0
  171. package/icons/SpinnerSolidIcon.d.ts +2 -0
  172. package/icons/SquareRegularIcon.d.ts +2 -0
  173. package/icons/TimesCircleSolidIcon.d.ts +2 -0
  174. package/icons/TimesSolidIcon.d.ts +2 -0
  175. package/icons/index.d.ts +14 -0
  176. package/index.d.ts +3 -0
  177. package/index.es.js +2635 -0
  178. package/index.js +2751 -0
  179. package/package.json +1 -3
  180. package/react-asc.scss +4 -0
  181. package/readme.md +3 -5
  182. package/apple-touch-icon.png +0 -0
  183. package/assets/index.1f5e1902.js +0 -10
  184. package/assets/index.a1009f35.css +0 -1
  185. package/assets/vendor.d012860f.js +0 -57
  186. package/changelog.md +0 -919
  187. package/favicon-16x16.png +0 -0
  188. package/favicon-32x32.png +0 -0
  189. package/favicon.ico +0 -0
  190. package/favicon.svg +0 -23
  191. package/index.html +0 -27
  192. package/manifest.webmanifest +0 -1
  193. package/pwa-192x192.png +0 -0
  194. package/pwa-512x512.png +0 -0
  195. package/registerSW.js +0 -1
  196. package/robots.txt +0 -3
  197. package/showcase/alert.md +0 -3
  198. package/showcase/appbar.md +0 -8
  199. package/showcase/autocomplete.md +0 -53
  200. package/showcase/backdrop.md +0 -11
  201. package/showcase/badge.md +0 -8
  202. package/showcase/breadcrumb.md +0 -5
  203. package/showcase/button.md +0 -11
  204. package/showcase/buttongroup.md +0 -5
  205. package/showcase/card.md +0 -9
  206. package/showcase/checkbox.md +0 -7
  207. package/showcase/chip.md +0 -7
  208. package/showcase/dateselect.md +0 -8
  209. package/showcase/drawer.md +0 -13
  210. package/showcase/expansionpanel.md +0 -40
  211. package/showcase/fileinput.md +0 -6
  212. package/showcase/floatingactionbutton.md +0 -8
  213. package/showcase/form.md +0 -7
  214. package/showcase/grid.md +0 -5
  215. package/showcase/hookuseconstructor.md +0 -3
  216. package/showcase/hookusedebounce.md +0 -5
  217. package/showcase/hookusehover.md +0 -8
  218. package/showcase/hookusewindowsize.md +0 -5
  219. package/showcase/icon.md +0 -3
  220. package/showcase/iconbutton.md +0 -5
  221. package/showcase/link.md +0 -1
  222. package/showcase/list.md +0 -7
  223. package/showcase/loadingindicator.md +0 -18
  224. package/showcase/menu.md +0 -18
  225. package/showcase/modal.md +0 -17
  226. package/showcase/numberselect.md +0 -20
  227. package/showcase/select.md +0 -27
  228. package/showcase/snackbar.md +0 -22
  229. package/showcase/speeddial.md +0 -43
  230. package/showcase/stepper.md +0 -1
  231. package/showcase/table.md +0 -34
  232. package/showcase/tabs.md +0 -35
  233. package/showcase/timeselect.md +0 -1
  234. package/showcase/tooltip.md +0 -6
  235. package/showcase/treeview.md +0 -12
  236. package/showcase/typography.md +0 -6
  237. package/sw.js +0 -1
  238. package/workbox-6cd28afd.js +0 -1
package/index.js ADDED
@@ -0,0 +1,2751 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var reactDom = require('react-dom');
7
+ var core = require('@popperjs/core');
8
+
9
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
+
11
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
+
13
+ /*! *****************************************************************************
14
+ Copyright (c) Microsoft Corporation.
15
+
16
+ Permission to use, copy, modify, and/or distribute this software for any
17
+ purpose with or without fee is hereby granted.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
20
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
21
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
22
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
23
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
24
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
25
+ PERFORMANCE OF THIS SOFTWARE.
26
+ ***************************************************************************** */
27
+
28
+ function __rest(s, e) {
29
+ var t = {};
30
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
31
+ t[p] = s[p];
32
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
33
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
34
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
35
+ t[p[i]] = s[p[i]];
36
+ }
37
+ return t;
38
+ }
39
+
40
+ exports.COLOR = void 0;
41
+ (function (COLOR) {
42
+ COLOR["primary"] = "primary";
43
+ COLOR["accent"] = "accent";
44
+ COLOR["secondary"] = "secondary";
45
+ // danger = 'danger',
46
+ COLOR["light"] = "light";
47
+ COLOR["dark"] = "dark";
48
+ })(exports.COLOR || (exports.COLOR = {}));
49
+ exports.VARIANT = void 0;
50
+ (function (VARIANT) {
51
+ VARIANT["contained"] = "contained";
52
+ VARIANT["outline"] = "outline";
53
+ VARIANT["text"] = "text";
54
+ })(exports.VARIANT || (exports.VARIANT = {}));
55
+ exports.SIZE = void 0;
56
+ (function (SIZE) {
57
+ SIZE["sm"] = "sm";
58
+ SIZE["md"] = "md";
59
+ SIZE["lg"] = "lg";
60
+ })(exports.SIZE || (exports.SIZE = {}));
61
+ exports.POSITION = void 0;
62
+ (function (POSITION) {
63
+ POSITION["right"] = "right";
64
+ POSITION["left"] = "left";
65
+ })(exports.POSITION || (exports.POSITION = {}));
66
+ const STATUS = {
67
+ HOVERED: 'hovered',
68
+ NORMAL: 'normal',
69
+ };
70
+
71
+ function styleInject(css, ref) {
72
+ if ( ref === void 0 ) ref = {};
73
+ var insertAt = ref.insertAt;
74
+
75
+ if (!css || typeof document === 'undefined') { return; }
76
+
77
+ var head = document.head || document.getElementsByTagName('head')[0];
78
+ var style = document.createElement('style');
79
+ style.type = 'text/css';
80
+
81
+ if (insertAt === 'top') {
82
+ if (head.firstChild) {
83
+ head.insertBefore(style, head.firstChild);
84
+ } else {
85
+ head.appendChild(style);
86
+ }
87
+ } else {
88
+ head.appendChild(style);
89
+ }
90
+
91
+ if (style.styleSheet) {
92
+ style.styleSheet.cssText = css;
93
+ } else {
94
+ style.appendChild(document.createTextNode(css));
95
+ }
96
+ }
97
+
98
+ var css_248z$10 = ".Alert-module_alert__b4tbk {\n border-radius: var(--borderRadius);\n padding: 6px 16px; }\n .Alert-module_alert__b4tbk.Alert-module_shadow__5bz-7 {\n box-shadow: var(--shadow); }\n\n.Alert-module_contained__EM0x6.Alert-module_primary__q4pNj {\n color: var(--primary-contrast-text);\n background-color: var(--primary); }\n\n.Alert-module_contained__EM0x6.Alert-module_accent__a2WIl {\n color: var(--accent-contrast-text);\n background-color: var(--accent); }\n\n.Alert-module_contained__EM0x6.Alert-module_secondary__syXKX {\n color: var(--secondary-contrast-text);\n background-color: var(--secondary); }\n\n.Alert-module_contained__EM0x6.Alert-module_light__VKCXF {\n color: var(--light-contrast-text);\n background-color: var(--light); }\n\n.Alert-module_contained__EM0x6.Alert-module_dark__3c-Hm {\n color: var(--dark-contrast-text);\n background-color: var(--dark); }\n\n.Alert-module_outline__T2262.Alert-module_primary__q4pNj {\n color: var(--primary) !important;\n border: 1px solid var(--primary) !important; }\n\n.Alert-module_outline__T2262.Alert-module_secondary__syXKX {\n color: var(--secondary) !important;\n border: 1px solid var(--secondary) !important; }\n\n.Alert-module_outline__T2262.Alert-module_accent__a2WIl {\n color: var(--accent) !important;\n border: 1px solid var(--accent) !important; }\n\n.Alert-module_outline__T2262.Alert-module_light__VKCXF {\n color: var(--light-contrast-text) !important;\n border: 1px solid var(--light) !important; }\n\n.Alert-module_outline__T2262.Alert-module_dark__3c-Hm {\n color: var(--dark) !important;\n border: 1px solid var(--dark) !important; }\n";
99
+ var styles$10 = {"alert":"Alert-module_alert__b4tbk","shadow":"Alert-module_shadow__5bz-7","contained":"Alert-module_contained__EM0x6","primary":"Alert-module_primary__q4pNj","accent":"Alert-module_accent__a2WIl","secondary":"Alert-module_secondary__syXKX","light":"Alert-module_light__VKCXF","dark":"Alert-module_dark__3c-Hm","outline":"Alert-module_outline__T2262"};
100
+ styleInject(css_248z$10);
101
+
102
+ const Alert = (props) => {
103
+ const { children, className, color = exports.COLOR.primary, variant = exports.VARIANT.contained, shadow = true } = props, rest = __rest(props, ["children", "className", "color", "variant", "shadow"]);
104
+ const getCssClasses = () => {
105
+ const cssClasses = [];
106
+ cssClasses.push(styles$10.alert);
107
+ if (variant === exports.VARIANT.contained) {
108
+ cssClasses.push(styles$10.contained);
109
+ cssClasses.push(styles$10[color]);
110
+ }
111
+ if (variant === exports.VARIANT.outline) {
112
+ cssClasses.push(styles$10.outline);
113
+ cssClasses.push(styles$10[color]);
114
+ }
115
+ shadow && cssClasses.push(styles$10['shadow']);
116
+ className && cssClasses.push(className);
117
+ return cssClasses.filter(r => r).join(' ');
118
+ };
119
+ return (React__default["default"].createElement("div", Object.assign({ className: getCssClasses() }, rest), children));
120
+ };
121
+
122
+ var css_248z$$ = ".AppBar-module_appbar__Neyh3 {\n padding: 0.5rem 1rem;\n display: flex;\n z-index: 1000;\n min-height: 64px;\n flex-shrink: 0; }\n .AppBar-module_appbar__Neyh3.AppBar-module_primary__xMqXD {\n color: var(--primary-contrast-text);\n background-color: var(--primary); }\n .AppBar-module_appbar__Neyh3.AppBar-module_secondary__8MkLA {\n color: var(--secondary-contrast-text);\n background-color: var(--secondary); }\n .AppBar-module_appbar__Neyh3.AppBar-module_accent__vHbkp {\n color: var(--accent-contrast-text);\n background-color: var(--accent); }\n .AppBar-module_appbar__Neyh3.AppBar-module_light__HGy3y {\n color: var(--light-contrast-text);\n background-color: var(--light); }\n .AppBar-module_appbar__Neyh3.AppBar-module_dark__ILq96 {\n color: var(--dark-contrast-text);\n background-color: var(--dark); }\n .AppBar-module_appbar__Neyh3.AppBar-module_shadow__gQN8s {\n box-shadow: var(--shadow); }\n";
123
+ var styles$$ = {"appbar":"AppBar-module_appbar__Neyh3","primary":"AppBar-module_primary__xMqXD","secondary":"AppBar-module_secondary__8MkLA","accent":"AppBar-module_accent__vHbkp","light":"AppBar-module_light__HGy3y","dark":"AppBar-module_dark__ILq96","shadow":"AppBar-module_shadow__gQN8s"};
124
+ styleInject(css_248z$$);
125
+
126
+ const AppBar = (props) => {
127
+ const { children, className, color = exports.COLOR.primary, shadow = true } = props, rest = __rest(props, ["children", "className", "color", "shadow"]);
128
+ const getCssClasses = () => {
129
+ const cssClasses = [];
130
+ cssClasses.push(styles$$[color]);
131
+ cssClasses.push(styles$$.appbar);
132
+ shadow && cssClasses.push(styles$$['shadow']);
133
+ className && cssClasses.push(className);
134
+ return cssClasses.filter(r => r).join(' ');
135
+ };
136
+ return (React__default["default"].createElement("nav", Object.assign({ className: getCssClasses() }, rest), children));
137
+ };
138
+
139
+ var css_248z$_ = ".AppBarTitle-module_appbarTitle__RsFg5 {\n align-items: center;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n font-size: 1.25rem;\n line-height: 1.8;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden !important;\n display: inline-block; }\n .AppBarTitle-module_appbarTitle__RsFg5:hover {\n cursor: pointer; }\n";
140
+ var styles$_ = {"appbarTitle":"AppBarTitle-module_appbarTitle__RsFg5"};
141
+ styleInject(css_248z$_);
142
+
143
+ const AppBarTitle = (props) => {
144
+ const { children, className, onClick } = props;
145
+ const getCssClass = () => {
146
+ const cssClasses = [];
147
+ cssClasses.push(styles$_.appbarTitle);
148
+ className && cssClasses.push(className);
149
+ return cssClasses.filter(r => r).join(' ');
150
+ };
151
+ return (React__default["default"].createElement("div", { className: getCssClass(), onClick: onClick }, children));
152
+ };
153
+
154
+ var css_248z$Z = ".Icon-module_icon__lFKCA {\n align-items: center;\n justify-content: center;\n display: flex;\n width: 20px;\n height: 20px; }\n .Icon-module_icon__lFKCA svg {\n width: inherit;\n height: inherit; }\n .Icon-module_icon__lFKCA.Icon-module_primary__3fID- {\n color: var(--primary); }\n .Icon-module_icon__lFKCA.Icon-module_accent__aZXGb {\n color: var(--accent); }\n .Icon-module_icon__lFKCA.Icon-module_secondary__HKKop {\n color: var(--secondary); }\n .Icon-module_icon__lFKCA.Icon-module_light__-ApMm {\n color: var(--light); }\n .Icon-module_icon__lFKCA.Icon-module_dark__DpCIK {\n color: var(--dark); }\n";
155
+ var styles$Z = {"icon":"Icon-module_icon__lFKCA","primary":"Icon-module_primary__3fID-","accent":"Icon-module_accent__aZXGb","secondary":"Icon-module_secondary__HKKop","light":"Icon-module_light__-ApMm","dark":"Icon-module_dark__DpCIK"};
156
+ styleInject(css_248z$Z);
157
+
158
+ const Icon = (props) => {
159
+ const { children, iconColor, className } = props, rest = __rest(props, ["children", "iconColor", "className"]);
160
+ const getCssClasses = () => {
161
+ const cssClasses = [];
162
+ cssClasses.push(styles$Z.icon);
163
+ iconColor && cssClasses.push(styles$Z[iconColor]);
164
+ className && cssClasses.push(className);
165
+ return cssClasses.filter(css => css).join(' ');
166
+ };
167
+ return (React__default["default"].createElement("div", Object.assign({ className: getCssClasses() }, rest), children));
168
+ };
169
+
170
+ var css_248z$Y = ".IconButton-module_iconButton__rpCPQ {\n border-radius: 100%;\n padding: 0px;\n display: flex;\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n min-width: auto;\n box-shadow: none;\n font-weight: 400;\n text-align: center;\n vertical-align: middle;\n -webkit-user-select: none;\n user-select: none;\n background-color: transparent;\n font-size: 1rem;\n line-height: 1.5;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n border: none; }\n .IconButton-module_iconButton__rpCPQ:hover {\n cursor: pointer; }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_shadow__Uw0RK {\n box-shadow: var(--shadow); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_md__XnuSk {\n width: 48px;\n height: 48px; }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_lg__arEvo {\n width: 56px;\n height: 56px; }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_text__Ualag {\n padding: 0;\n background: transparent;\n color: inherit; }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_text__Ualag:hover, .IconButton-module_iconButton__rpCPQ.IconButton-module_text__Ualag.IconButton-module_active__VIqU9 {\n background-color: rgba(0, 0, 0, 0.04); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_text__Ualag.IconButton-module_primary__vbo-G {\n color: var(--primary); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_text__Ualag.IconButton-module_primary__vbo-G:hover, .IconButton-module_iconButton__rpCPQ.IconButton-module_text__Ualag.IconButton-module_primary__vbo-G.IconButton-module_active__VIqU9 {\n color: var(--primary-dark); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_text__Ualag.IconButton-module_secondary__AiNAY {\n color: var(--secondary); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_text__Ualag.IconButton-module_secondary__AiNAY:hover, .IconButton-module_iconButton__rpCPQ.IconButton-module_text__Ualag.IconButton-module_secondary__AiNAY.IconButton-module_active__VIqU9 {\n color: var(--secondary-dark); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_text__Ualag.IconButton-module_accent__QRzM2 {\n color: var(--accent); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_text__Ualag.IconButton-module_accent__QRzM2:hover, .IconButton-module_iconButton__rpCPQ.IconButton-module_text__Ualag.IconButton-module_accent__QRzM2.IconButton-module_active__VIqU9 {\n color: var(--accent-dark); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_text__Ualag.IconButton-module_light__YNEiO {\n color: var(--light); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_text__Ualag.IconButton-module_light__YNEiO:hover, .IconButton-module_iconButton__rpCPQ.IconButton-module_text__Ualag.IconButton-module_light__YNEiO.IconButton-module_active__VIqU9 {\n color: var(--light-dark); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_text__Ualag.IconButton-module_dark__gnbUH {\n color: var(--dark); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_text__Ualag.IconButton-module_dark__gnbUH:hover, .IconButton-module_iconButton__rpCPQ.IconButton-module_text__Ualag.IconButton-module_dark__gnbUH.IconButton-module_active__VIqU9 {\n color: var(--dark-dark); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_text__Ualag.IconButton-module_disabled__QB0ZV {\n color: rgba(0, 0, 0, 0.26);\n background-color: transparent;\n cursor: default;\n pointer-events: none; }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_contained__k7vGA:hover, .IconButton-module_iconButton__rpCPQ.IconButton-module_contained__k7vGA.IconButton-module_active__VIqU9 {\n background-color: rgba(0, 0, 0, 0.04); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_contained__k7vGA.IconButton-module_primary__vbo-G {\n background-color: var(--primary);\n color: var(--white); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_contained__k7vGA.IconButton-module_primary__vbo-G:hover, .IconButton-module_iconButton__rpCPQ.IconButton-module_contained__k7vGA.IconButton-module_primary__vbo-G.IconButton-module_active__VIqU9 {\n background-color: var(--primary-dark); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_contained__k7vGA.IconButton-module_secondary__AiNAY {\n background-color: var(--secondary);\n color: var(--white); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_contained__k7vGA.IconButton-module_secondary__AiNAY:hover, .IconButton-module_iconButton__rpCPQ.IconButton-module_contained__k7vGA.IconButton-module_secondary__AiNAY.IconButton-module_active__VIqU9 {\n background-color: var(--secondary-dark); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_contained__k7vGA.IconButton-module_accent__QRzM2 {\n background-color: var(--accent);\n color: var(--white); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_contained__k7vGA.IconButton-module_accent__QRzM2:hover, .IconButton-module_iconButton__rpCPQ.IconButton-module_contained__k7vGA.IconButton-module_accent__QRzM2.IconButton-module_active__VIqU9 {\n background-color: var(--accent-dark); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_contained__k7vGA.IconButton-module_light__YNEiO {\n background-color: var(--light);\n color: var(--dark); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_contained__k7vGA.IconButton-module_light__YNEiO:hover, .IconButton-module_iconButton__rpCPQ.IconButton-module_contained__k7vGA.IconButton-module_light__YNEiO.IconButton-module_active__VIqU9 {\n background-color: var(--light-dark); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_contained__k7vGA.IconButton-module_dark__gnbUH {\n background-color: var(--dark);\n color: var(--white); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_contained__k7vGA.IconButton-module_dark__gnbUH:hover, .IconButton-module_iconButton__rpCPQ.IconButton-module_contained__k7vGA.IconButton-module_dark__gnbUH.IconButton-module_active__VIqU9 {\n background-color: var(--dark-light); }\n .IconButton-module_iconButton__rpCPQ.IconButton-module_contained__k7vGA.IconButton-module_disabled__QB0ZV {\n color: rgba(0, 0, 0, 0.26);\n background-color: transparent;\n cursor: default;\n pointer-events: none; }\n .IconButton-module_iconButton__rpCPQ:focus:not(.IconButton-module_iconButton__rpCPQ.IconButton-module_disabled__QB0ZV) {\n color: #212529;\n border-color: #86b7fe;\n outline: 0;\n box-shadow: inset 0 1px 2px #00000013, 0 0 0 0.25rem #0d6efd40; }\n";
171
+ var styles$Y = {"iconButton":"IconButton-module_iconButton__rpCPQ","shadow":"IconButton-module_shadow__Uw0RK","md":"IconButton-module_md__XnuSk","lg":"IconButton-module_lg__arEvo","text":"IconButton-module_text__Ualag","active":"IconButton-module_active__VIqU9","primary":"IconButton-module_primary__vbo-G","secondary":"IconButton-module_secondary__AiNAY","accent":"IconButton-module_accent__QRzM2","light":"IconButton-module_light__YNEiO","dark":"IconButton-module_dark__gnbUH","disabled":"IconButton-module_disabled__QB0ZV","contained":"IconButton-module_contained__k7vGA"};
172
+ styleInject(css_248z$Y);
173
+
174
+ const IconButton = (props) => {
175
+ const { children, icon, variant = exports.VARIANT.text, color = exports.COLOR.dark, size = exports.SIZE.md, isActive, disabled, className, shadow } = props, rest = __rest(props, ["children", "icon", "variant", "color", "size", "isActive", "disabled", "className", "shadow"]);
176
+ const getCssClasses = () => {
177
+ const cssClasses = [];
178
+ cssClasses.push(styles$Y[color]);
179
+ cssClasses.push(styles$Y[variant]);
180
+ cssClasses.push(styles$Y[size]);
181
+ cssClasses.push(styles$Y.iconButton);
182
+ isActive && cssClasses.push(styles$Y.active);
183
+ disabled && cssClasses.push(styles$Y.disabled);
184
+ shadow && cssClasses.push(styles$Y.shadow);
185
+ className && cssClasses.push(className);
186
+ return cssClasses.filter(css => css).join(' ');
187
+ };
188
+ return (React__default["default"].createElement("button", Object.assign({ type: "button", className: getCssClasses(), disabled: disabled }, rest),
189
+ icon && React__default["default"].createElement(Icon, null, icon),
190
+ children));
191
+ };
192
+
193
+ const CaretDownSolidIcon = () => (React__default["default"].createElement("svg", { "aria-hidden": "true", focusable: "false", "data-prefix": "fas", "data-icon": "caret-down", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 320 512" },
194
+ React__default["default"].createElement("path", { fill: "currentColor", d: "M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z" })));
195
+
196
+ const CheckSquareRegularIcon = () => (React__default["default"].createElement("svg", { "aria-hidden": "true", focusable: "false", "data-prefix": "far", "data-icon": "check-square", role: "img", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 448 512" },
197
+ React__default["default"].createElement("path", { fill: "currentColor", d: "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z" })));
198
+
199
+ const ChevronDownSolidIcon = () => (React__default["default"].createElement("svg", { "aria-hidden": "true", focusable: "false", "data-prefix": "fas", "data-icon": "chevron-down", role: "img", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 448 512" },
200
+ React__default["default"].createElement("path", { fill: "currentColor", d: "M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z" })));
201
+
202
+ const ChevronRightSolidIcon = () => (React__default["default"].createElement("svg", { "aria-hidden": "true", focusable: "false", "data-prefix": "fas", "data-icon": "chevron-right", role: "img", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 320 512" },
203
+ React__default["default"].createElement("path", { fill: "currentColor", d: "M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z" })));
204
+
205
+ const ChevronUpSolidIcon = () => (React__default["default"].createElement("svg", { "aria-hidden": "true", focusable: "false", "data-prefix": "fas", "data-icon": "chevron-up", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 448 512" },
206
+ React__default["default"].createElement("path", { fill: "currentColor", d: "M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z" })));
207
+
208
+ const HomeSolidIcon = () => (React__default["default"].createElement("svg", { "aria-hidden": "true", focusable: "false", "data-prefix": "fas", "data-icon": "home", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 576 512" },
209
+ React__default["default"].createElement("path", { fill: "currentColor", d: "M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z" })));
210
+
211
+ const SquareRegularIcon = () => (React__default["default"].createElement("svg", { "aria-hidden": "true", focusable: "false", "data-prefix": "far", "data-icon": "square", role: "img", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 448 512" },
212
+ React__default["default"].createElement("path", { fill: "currentColor", d: "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z" })));
213
+
214
+ const TimesCircleSolidIcon = () => (React__default["default"].createElement("svg", { "aria-hidden": "true", focusable: "false", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512" },
215
+ React__default["default"].createElement("path", { fill: "currentColor", d: "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z" })));
216
+
217
+ const TimesSolidIcon = () => (React__default["default"].createElement("svg", { "aria-hidden": "true", focusable: "false", role: "img", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 352 512" },
218
+ React__default["default"].createElement("path", { fill: "currentColor", d: "M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z" })));
219
+
220
+ const SpinnerSolidIcon = () => (React__default["default"].createElement("svg", { "aria-hidden": "true", focusable: "false", "data-prefix": "fas", "data-icon": "spinner", role: "img", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512" },
221
+ React__default["default"].createElement("path", { fill: "currentColor", d: "M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z" })));
222
+
223
+ const PlusSolidIcon = () => (React__default["default"].createElement("svg", { "aria-hidden": "true", focusable: "false", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 448 512" },
224
+ React__default["default"].createElement("path", { fill: "currentColor", d: "M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z" })));
225
+
226
+ const CheckSolidIcon = () => (React__default["default"].createElement("svg", { "aria-hidden": "true", focusable: "false", role: "img", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512" },
227
+ React__default["default"].createElement("path", { fill: "currentColor", d: "M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z" })));
228
+
229
+ const CircleSolidIcon = () => (React__default["default"].createElement("svg", { "aria-hidden": "true", focusable: "false", role: "img", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512" },
230
+ React__default["default"].createElement("path", { fill: "currentColor", d: "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z" })));
231
+
232
+ const ChevronLeftSolidIcon = () => (React__default["default"].createElement("svg", { "aria-hidden": "true", focusable: "false", role: "img", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 320 512" },
233
+ React__default["default"].createElement("path", { fill: "currentColor", d: "M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z" })));
234
+
235
+ function useWindowSize() {
236
+ const [windowSize, setWindowSize] = React.useState({
237
+ width: 0,
238
+ height: 0,
239
+ });
240
+ React.useEffect(() => {
241
+ function handleResize() {
242
+ setWindowSize({
243
+ width: window.innerWidth,
244
+ height: window.innerHeight,
245
+ });
246
+ }
247
+ window.addEventListener("resize", handleResize);
248
+ handleResize();
249
+ return () => window.removeEventListener("resize", handleResize);
250
+ }, []);
251
+ return windowSize;
252
+ }
253
+
254
+ function useHover() {
255
+ const [value, setValue] = React.useState(false);
256
+ const ref = React.useRef(null);
257
+ const handleMouseOver = () => setValue(true);
258
+ const handleMouseOut = () => setValue(false);
259
+ React.useEffect(() => {
260
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
261
+ const node = ref.current;
262
+ if (node) {
263
+ node.addEventListener("mouseover", handleMouseOver);
264
+ node.addEventListener("mouseout", handleMouseOut);
265
+ return () => {
266
+ node.removeEventListener("mouseover", handleMouseOver);
267
+ node.removeEventListener("mouseout", handleMouseOut);
268
+ };
269
+ }
270
+ return;
271
+ }, [ref.current] // Recall only if ref changes
272
+ );
273
+ return [ref, value];
274
+ }
275
+
276
+ const useConstructor = (callBack) => {
277
+ const [hasBeenCalled, setHasBeenCalled] = React.useState(false);
278
+ if (hasBeenCalled)
279
+ return;
280
+ callBack();
281
+ setHasBeenCalled(true);
282
+ };
283
+
284
+ function useDebounce(callback, timeout, deps) {
285
+ const timeoutId = React.useRef();
286
+ React.useEffect(() => {
287
+ clearTimeout(timeoutId.current);
288
+ timeoutId.current = setTimeout(callback, timeout);
289
+ return () => clearTimeout(timeoutId.current);
290
+ }, deps);
291
+ }
292
+
293
+ var css_248z$X = ".Backdrop-module_backdrop__IRMoL {\n height: 100%;\n width: 100%;\n position: absolute;\n opacity: 0.5;\n z-index: 1040;\n top: 0;\n left: 0;\n background-color: #000; }\n .Backdrop-module_backdrop__IRMoL.Backdrop-module_isTransparent__F5nA5 {\n opacity: 0; }\n";
294
+ var styles$X = {"backdrop":"Backdrop-module_backdrop__IRMoL","isTransparent":"Backdrop-module_isTransparent__F5nA5"};
295
+ styleInject(css_248z$X);
296
+
297
+ const Backdrop = (props) => {
298
+ const { target = document.body, isTransparent = false, onClick, style } = props, rest = __rest(props, ["target", "isTransparent", "onClick", "style"]);
299
+ const handleClick = (e) => {
300
+ e.stopPropagation();
301
+ onClick && onClick(e);
302
+ };
303
+ const getCssClasses = () => {
304
+ const cssClasses = [];
305
+ cssClasses.push(styles$X.backdrop);
306
+ isTransparent && cssClasses.push(styles$X['isTransparent']);
307
+ return cssClasses.filter(css => css).join(' ');
308
+ };
309
+ const getStyles = () => {
310
+ const styles = Object.assign({ height: '100%', width: '100%', position: 'absolute' }, style);
311
+ return styles;
312
+ };
313
+ return (reactDom.createPortal(React__default["default"].createElement("div", Object.assign({ className: getCssClasses(), onClick: handleClick, style: getStyles() }, rest)), target));
314
+ };
315
+
316
+ var css_248z$W = ".List-module_list__gpZ41 {\n width: 100%;\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n margin-top: 0;\n background-color: var(--white); }\n";
317
+ var styles$W = {"list":"List-module_list__gpZ41"};
318
+ styleInject(css_248z$W);
319
+
320
+ const List = (props) => {
321
+ const { children, className, isFlush } = props, rest = __rest(props, ["children", "className", "isFlush"]);
322
+ const getCssClasses = () => {
323
+ const cssClasses = [];
324
+ isFlush && cssClasses.push(styles$W.flush);
325
+ cssClasses.push(styles$W.list);
326
+ className && cssClasses.push(className);
327
+ return cssClasses.filter(css => css).join(' ');
328
+ };
329
+ return (React__default["default"].createElement("ul", Object.assign({ className: getCssClasses() }, rest), children));
330
+ };
331
+
332
+ var css_248z$V = ".ListItem-module_listItem__Pk1AP {\n display: flex;\n align-items: center;\n position: relative;\n padding: 0.75rem 1.25rem;\n min-width: 100%;\n color: var(--bodyColor);\n text-align: inherit;\n transition: background 0.5s ease; }\n .ListItem-module_listItem__Pk1AP:hover, .ListItem-module_listItem__Pk1AP.ListItem-module_active__zm2q8 {\n cursor: pointer;\n z-index: 1;\n text-decoration: none;\n background-color: rgba(0, 0, 0, 0.04);\n color: var(--primary); }\n .ListItem-module_listItem__Pk1AP + .ListItem-module_listItem__Pk1AP {\n border-top-width: 0; }\n .ListItem-module_listItem__Pk1AP.ListItem-module_primary__F6Qja {\n color: var(--primary-contrast-text);\n background-color: var(--primary); }\n .ListItem-module_listItem__Pk1AP.ListItem-module_accent__pg3Ha {\n color: var(--accent-contrast-text);\n background-color: var(--accent); }\n .ListItem-module_listItem__Pk1AP.ListItem-module_secondary__d0drD {\n color: var(--secondary-contrast-text);\n background-color: var(--secondary); }\n .ListItem-module_listItem__Pk1AP.ListItem-module_light__37kby {\n color: var(--light-contrast-text);\n background-color: var(--light); }\n .ListItem-module_listItem__Pk1AP.ListItem-module_dark__ZxQTF {\n color: var(--dark-contrast-text);\n background-color: var(--dark); }\n .ListItem-module_listItem__Pk1AP.ListItem-module_disabled__DQLKl {\n color: rgba(0, 0, 0, 0.26); }\n .ListItem-module_listItem__Pk1AP.ListItem-module_disabled__DQLKl:hover {\n cursor: not-allowed;\n background-color: inherit; }\n";
333
+ var styles$V = {"listItem":"ListItem-module_listItem__Pk1AP","active":"ListItem-module_active__zm2q8","primary":"ListItem-module_primary__F6Qja","accent":"ListItem-module_accent__pg3Ha","secondary":"ListItem-module_secondary__d0drD","light":"ListItem-module_light__37kby","dark":"ListItem-module_dark__ZxQTF","disabled":"ListItem-module_disabled__DQLKl"};
334
+ styleInject(css_248z$V);
335
+
336
+ const ListItem = (props) => {
337
+ const { children, color, active, className, disabled, onClick } = props, rest = __rest(props, ["children", "color", "active", "className", "disabled", "onClick"]);
338
+ const getCssClasses = () => {
339
+ const cssClasses = [];
340
+ cssClasses.push(styles$V.listItem);
341
+ color && cssClasses.push(styles$V[color]);
342
+ active && cssClasses.push(styles$V['active']);
343
+ disabled && cssClasses.push(styles$V['disabled']);
344
+ className && cssClasses.push(className);
345
+ return cssClasses.filter(css => css).join(' ');
346
+ };
347
+ const handleClick = (e) => {
348
+ !disabled && onClick && onClick(e);
349
+ };
350
+ return (React__default["default"].createElement("li", Object.assign({ onClick: handleClick, className: getCssClasses() }, rest), children));
351
+ };
352
+
353
+ var css_248z$U = ".ListItemAvatar-module_avatar__sVWfR {\n margin-right: 16px; }\n .ListItemAvatar-module_avatar__sVWfR svg, .ListItemAvatar-module_avatar__sVWfR img {\n width: 24px;\n height: 24px; }\n .ListItemAvatar-module_avatar__sVWfR img {\n border-radius: 50%; }\n";
354
+ var styles$U = {"avatar":"ListItemAvatar-module_avatar__sVWfR"};
355
+ styleInject(css_248z$U);
356
+
357
+ const ListItemAvatar = (_a) => {
358
+ var { avatar } = _a, rest = __rest(_a, ["avatar"]);
359
+ return (React__default["default"].createElement("div", Object.assign({ className: styles$U.avatar }, rest), avatar));
360
+ };
361
+
362
+ var css_248z$T = ".ListItemIcon-module_icon__cCvEv {\n margin-right: 32px; }\n .ListItemIcon-module_icon__cCvEv svg {\n width: 24px;\n height: 24px; }\n";
363
+ var styles$T = {"icon":"ListItemIcon-module_icon__cCvEv"};
364
+ styleInject(css_248z$T);
365
+
366
+ const ListItemIcon = (_a) => {
367
+ var { icon } = _a, rest = __rest(_a, ["icon"]);
368
+ return (React__default["default"].createElement("div", Object.assign({ className: styles$T.icon }, rest), icon));
369
+ };
370
+
371
+ var css_248z$S = ".ListItemAction-module_listItemAction__gAQRj {\n display: flex;\n justify-content: center;\n min-width: 40px; }\n .ListItemAction-module_listItemAction__gAQRj svg {\n width: 20px;\n height: 20px; }\n";
372
+ var styles$S = {"listItemAction":"ListItemAction-module_listItemAction__gAQRj"};
373
+ styleInject(css_248z$S);
374
+
375
+ const ListItemAction = (_a) => {
376
+ var { children, onClick } = _a, rest = __rest(_a, ["children", "onClick"]);
377
+ return (React__default["default"].createElement("div", Object.assign({ className: styles$S.listItemAction, onClick: e => onClick && onClick(e) }, rest), children));
378
+ };
379
+
380
+ var css_248z$R = ".ListItemTextIcon-module_listItemText__xCBLW {\n flex: 1; }\n";
381
+ var styles$R = {"listItemText":"ListItemTextIcon-module_listItemText__xCBLW"};
382
+ styleInject(css_248z$R);
383
+
384
+ const ListItemText = (_a) => {
385
+ var { primary, secondary } = _a, rest = __rest(_a, ["primary", "secondary"]);
386
+ const getCssClasses = () => {
387
+ const cssClasses = [];
388
+ cssClasses.push(styles$R.listItemText);
389
+ return cssClasses.filter(css => css).join(' ');
390
+ };
391
+ return (React__default["default"].createElement("div", Object.assign({ className: getCssClasses() }, rest),
392
+ React__default["default"].createElement(ListItemTextPrimary, null, primary),
393
+ secondary &&
394
+ React__default["default"].createElement(ListItemTextSecondary, null, secondary)));
395
+ };
396
+ const ListItemTextPrimary = ({ children }) => (React__default["default"].createElement("div", { className: "list-item-text-primary" }, children));
397
+ const ListItemTextSecondary = ({ children }) => (React__default["default"].createElement("div", { className: "list-item-text-secondary text-muted", style: { fontSize: '0.875rem' } }, children));
398
+
399
+ var css_248z$Q = ".AutoComplete-module_selectContainer__1kA85 {\n position: relative; }\n\n.AutoComplete-module_select__NNYOi {\n width: 100%;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n appearance: none;\n border-radius: 0.25rem;\n box-shadow: inset 0 1px 2px #00000013;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n min-height: calc(1.5em + 0.75rem + 2px);\n height: auto;\n display: flex; }\n .AutoComplete-module_select__NNYOi:hover {\n cursor: pointer; }\n .AutoComplete-module_select__NNYOi:focus:not(.AutoComplete-module_select__NNYOi.AutoComplete-module_disabled__CbGP4) {\n color: #212529;\n background-color: #fff;\n border-color: #86b7fe;\n outline: 0;\n box-shadow: inset 0 1px 2px #00000013, 0 0 0 0.25rem #0d6efd40; }\n .AutoComplete-module_select__NNYOi:disabled, .AutoComplete-module_select__NNYOi:read-only {\n background-color: #e9ecef; }\n .AutoComplete-module_select__NNYOi:disabled:hover {\n cursor: not-allowed; }\n .AutoComplete-module_select__NNYOi:read-only:hover {\n cursor: inherit; }\n\n.AutoComplete-module_selectMenu__Gu81L {\n background-color: var(--light);\n position: absolute;\n box-shadow: var(--shadow);\n border-radius: var(--borderRadius);\n width: 100%;\n top: 38px;\n z-index: 1050;\n max-height: 280px;\n overflow: auto; }\n";
400
+ var styles$Q = {"selectContainer":"AutoComplete-module_selectContainer__1kA85","select":"AutoComplete-module_select__NNYOi","disabled":"AutoComplete-module_disabled__CbGP4","selectMenu":"AutoComplete-module_selectMenu__Gu81L"};
401
+ styleInject(css_248z$Q);
402
+
403
+ // preset value
404
+ // enter -> delay? -> show results
405
+ // single
406
+ // multiple
407
+ // custom template render items
408
+ const AutoComplete = (props) => {
409
+ const { id, name, className, options = [], openOnFocus = true, disabled, readOnly, debounce = 0, placeholder, showNoEntry = true, showClearButton, onChange, onSelect, value } = props;
410
+ const [model, setModel] = React.useState('');
411
+ const [searchText, setSearchText] = React.useState('');
412
+ const [isShow, setIsShow] = React.useState(false);
413
+ const [optionsTemp, setOptionsTemp] = React.useState([]);
414
+ const selectConainter = React.useRef(null);
415
+ React.useEffect(() => {
416
+ if (value !== model) {
417
+ const option = options.find(o => o.value === value);
418
+ setModel(option ? option.label : '');
419
+ }
420
+ }, [value]);
421
+ React.useEffect(() => {
422
+ if (options && options.length > 0) {
423
+ const optionsOrigin = JSON.parse(JSON.stringify(options));
424
+ const regex = new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'), 'gi');
425
+ const optionsFiltered = optionsOrigin.filter(o => { var _a; return (_a = o.label) === null || _a === void 0 ? void 0 : _a.match(regex); });
426
+ if (optionsFiltered.length === 0 && showNoEntry) {
427
+ setOptionsTemp([{ value: '', label: '- no entry found -' }]);
428
+ }
429
+ else {
430
+ setOptionsTemp(optionsFiltered);
431
+ }
432
+ }
433
+ }, [options]);
434
+ useDebounce(() => { onChange && onChange(searchText); }, debounce, [searchText]);
435
+ React.useEffect(() => {
436
+ if (isShow === true) {
437
+ document.body.classList.add('modal-open');
438
+ const main = document.querySelector('.main');
439
+ main === null || main === void 0 ? void 0 : main.classList.add('modal-open');
440
+ }
441
+ else {
442
+ document.body.classList.remove('modal-open');
443
+ const main = document.querySelector('.main');
444
+ main === null || main === void 0 ? void 0 : main.classList.remove('modal-open');
445
+ }
446
+ }, [isShow]);
447
+ React.useEffect(() => {
448
+ return () => {
449
+ document.body.classList.remove('modal-open');
450
+ const main = document.querySelector('.main');
451
+ main === null || main === void 0 ? void 0 : main.classList.remove('modal-open');
452
+ };
453
+ }, []);
454
+ const getCssClass = () => {
455
+ const cssClasses = [];
456
+ className && cssClasses.push(className);
457
+ cssClasses.push(styles$Q.select);
458
+ return cssClasses.filter(r => r).join(' ');
459
+ };
460
+ const show = () => setIsShow(true);
461
+ const hide = () => setIsShow(false);
462
+ const handleOnClick = (option) => {
463
+ if (model !== option.value) {
464
+ onSelect && onSelect(option);
465
+ }
466
+ setModel(option.label);
467
+ hide();
468
+ };
469
+ const handleOnChange = (e) => {
470
+ setModel(e.target.value);
471
+ setSearchText(e.target.value);
472
+ show();
473
+ };
474
+ const handleOnFocus = () => {
475
+ openOnFocus && show();
476
+ };
477
+ const handleClickReset = () => {
478
+ setModel('');
479
+ setSearchText('');
480
+ };
481
+ return (React__default["default"].createElement("div", { ref: selectConainter, className: styles$Q.selectContainer },
482
+ React__default["default"].createElement("div", { className: "d-flex" },
483
+ React__default["default"].createElement("input", { type: "text", className: getCssClass(), id: id, name: name, tabIndex: 0, readOnly: readOnly, disabled: disabled, onChange: handleOnChange, onFocus: handleOnFocus, placeholder: placeholder, value: model }),
484
+ showClearButton && (model === null || model === void 0 ? void 0 : model.length) > 0 &&
485
+ React__default["default"].createElement(IconButton, { icon: React__default["default"].createElement(TimesSolidIcon, null), onClick: handleClickReset })),
486
+ isShow &&
487
+ React__default["default"].createElement(React__default["default"].Fragment, null,
488
+ React__default["default"].createElement("div", { className: styles$Q.selectMenu },
489
+ React__default["default"].createElement(List, null, optionsTemp && optionsTemp.map((option, index) => React__default["default"].createElement(ListItem, { id: `list-item-${index}`, key: option.value, onClick: () => handleOnClick(option), disabled: !option.value },
490
+ React__default["default"].createElement(ListItemText, { primary: option.label ? option.label : option.value }))))),
491
+ React__default["default"].createElement(Backdrop, { isTransparent: true, onClick: () => hide() }))));
492
+ };
493
+
494
+ var css_248z$P = ".Badge-module_badgeContainer__3nZBs {\n display: inline-flex;\n position: relative;\n flex-shrink: 0;\n vertical-align: middle; }\n\n.Badge-module_badge__9ImR0 {\n top: 0;\n right: 0;\n transform: scale(1) translate(50%, -50%);\n transform-origin: 100% 0%;\n height: 20px;\n display: flex;\n padding: 0 6px;\n z-index: 1;\n position: absolute;\n flex-wrap: wrap;\n font-size: 0.75rem;\n min-width: 20px;\n align-items: center;\n font-weight: 500;\n line-height: 1;\n align-content: center;\n flex-direction: row;\n justify-content: center;\n border-radius: 10px;\n transition: transform 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; }\n .Badge-module_badge__9ImR0.Badge-module_primary__41U-t {\n color: var(--primary-contrast-text);\n background-color: var(--primary); }\n .Badge-module_badge__9ImR0.Badge-module_accent__OQy2- {\n color: var(--accent-contrast-text);\n background-color: var(--accent); }\n .Badge-module_badge__9ImR0.Badge-module_secondary__a9Jfh {\n color: var(--secondary-contrast-text);\n background-color: var(--secondary); }\n .Badge-module_badge__9ImR0.Badge-module_light__4QvQ5 {\n color: var(--light-contrast-text);\n background-color: var(--light); }\n .Badge-module_badge__9ImR0.Badge-module_dark__g1yUJ {\n color: var(--dark-contrast-text);\n background-color: var(--dark); }\n";
495
+ var styles$P = {"badgeContainer":"Badge-module_badgeContainer__3nZBs","badge":"Badge-module_badge__9ImR0","primary":"Badge-module_primary__41U-t","accent":"Badge-module_accent__OQy2-","secondary":"Badge-module_secondary__a9Jfh","light":"Badge-module_light__4QvQ5","dark":"Badge-module_dark__g1yUJ"};
496
+ styleInject(css_248z$P);
497
+
498
+ const Badge = (props) => {
499
+ const { children, content, className, color = exports.COLOR.primary } = props, rest = __rest(props, ["children", "content", "className", "color"]);
500
+ const getCssClassesBadgeContainer = () => {
501
+ const cssClasses = [];
502
+ cssClasses.push(styles$P.badgeContainer);
503
+ className && cssClasses.push(className);
504
+ return cssClasses.filter(css => css).join(' ');
505
+ };
506
+ const getCssClassesBadge = () => {
507
+ const cssClasses = [];
508
+ cssClasses.push(styles$P.badge);
509
+ cssClasses.push(styles$P[color]);
510
+ return cssClasses.filter(css => css).join(' ');
511
+ };
512
+ return (React__default["default"].createElement("div", Object.assign({ className: getCssClassesBadgeContainer() }, rest),
513
+ children,
514
+ React__default["default"].createElement("span", { className: getCssClassesBadge() }, content)));
515
+ };
516
+
517
+ var css_248z$O = ".Button-module_button__qeIer {\n text-transform: uppercase !important;\n flex-shrink: 0;\n background-color: transparent;\n display: inline-block;\n font-weight: 400;\n line-height: 1.5;\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n user-select: none;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out,\r box-shadow 0.15s ease-in-out;\n min-width: 64px;\n font-size: 0.875rem;\n border-radius: var(--borderRadius); }\n .Button-module_button__qeIer.Button-module_shadow__6N2nE {\n box-shadow: var(--shadow); }\n .Button-module_button__qeIer:hover {\n cursor: pointer; }\n .Button-module_button__qeIer:focus:not(.Button-module_button__qeIer.Button-module_disabled__jiOqa) {\n border-color: #86b7fe;\n outline: 0;\n box-shadow: inset 0 1px 2px #00000013, 0 0 0 0.25rem #0d6efd40; }\n\n.Button-module_btnContained__16y5l.Button-module_primary__EUyOu {\n color: var(--primary-contrast-text);\n background-color: var(--primary); }\n .Button-module_btnContained__16y5l.Button-module_primary__EUyOu:hover {\n background-color: var(--primary-dark); }\n\n.Button-module_btnContained__16y5l.Button-module_accent__opVgQ {\n color: var(--accent-contrast-text);\n background-color: var(--accent); }\n .Button-module_btnContained__16y5l.Button-module_accent__opVgQ:hover {\n background-color: var(--accent-dark); }\n\n.Button-module_btnContained__16y5l.Button-module_secondary__zKoGk {\n color: var(--secondary-contrast-text);\n background-color: var(--secondary); }\n .Button-module_btnContained__16y5l.Button-module_secondary__zKoGk:hover {\n background-color: var(--secondary-dark); }\n\n.Button-module_btnContained__16y5l.Button-module_light__LXeZy {\n color: var(--light-contrast-text);\n background-color: var(--light); }\n .Button-module_btnContained__16y5l.Button-module_light__LXeZy:hover {\n background-color: var(--light-dark); }\n\n.Button-module_btnContained__16y5l.Button-module_dark__5oFOT {\n color: var(--dark-contrast-text);\n background-color: var(--dark); }\n .Button-module_btnContained__16y5l.Button-module_dark__5oFOT:hover {\n background-color: var(--dark-dark); }\n\n.Button-module_btnContained__16y5l:disabled:hover {\n cursor: not-allowed; }\n\n.Button-module_btnText__N5Gys {\n box-shadow: none;\n text-decoration: none; }\n .Button-module_btnText__N5Gys.Button-module_primary__EUyOu {\n color: var(--primary) !important; }\n .Button-module_btnText__N5Gys.Button-module_primary__EUyOu:hover {\n text-decoration: none;\n background: var(--primary-highlight) !important; }\n .Button-module_btnText__N5Gys.Button-module_secondary__zKoGk {\n color: var(--secondary) !important; }\n .Button-module_btnText__N5Gys.Button-module_secondary__zKoGk:hover {\n text-decoration: none;\n background: var(--secondary-highlight) !important; }\n .Button-module_btnText__N5Gys.Button-module_accent__opVgQ {\n color: var(--accent) !important; }\n .Button-module_btnText__N5Gys.Button-module_accent__opVgQ:hover {\n text-decoration: none;\n background: var(--accent-highlight) !important; }\n .Button-module_btnText__N5Gys.Button-module_light__LXeZy {\n color: var(--light-contrast-text) !important; }\n .Button-module_btnText__N5Gys.Button-module_light__LXeZy:hover {\n text-decoration: none;\n background: var(--light-highlight) !important; }\n .Button-module_btnText__N5Gys.Button-module_dark__5oFOT {\n color: var(--dark) !important; }\n .Button-module_btnText__N5Gys.Button-module_dark__5oFOT:hover {\n text-decoration: none;\n background: var(--dark-highlight) !important; }\n\n.Button-module_btnOutline__CCFPI {\n box-shadow: none;\n text-decoration: none; }\n .Button-module_btnOutline__CCFPI.Button-module_primary__EUyOu {\n color: var(--primary) !important;\n border-color: var(--primary) !important; }\n .Button-module_btnOutline__CCFPI.Button-module_primary__EUyOu:hover {\n background: var(--primary-highlight) !important; }\n .Button-module_btnOutline__CCFPI.Button-module_secondary__zKoGk {\n color: var(--secondary) !important;\n border-color: var(--secondary) !important; }\n .Button-module_btnOutline__CCFPI.Button-module_secondary__zKoGk:hover {\n background: var(--secondary-highlight) !important; }\n .Button-module_btnOutline__CCFPI.Button-module_accent__opVgQ {\n color: var(--accent) !important;\n border-color: var(--accent) !important; }\n .Button-module_btnOutline__CCFPI.Button-module_accent__opVgQ:hover {\n background: var(--accent-highlight) !important; }\n .Button-module_btnOutline__CCFPI.Button-module_light__LXeZy {\n color: var(--light-contrast-text) !important;\n border-color: var(--light) !important; }\n .Button-module_btnOutline__CCFPI.Button-module_light__LXeZy:hover {\n background: var(--light-highlight) !important; }\n .Button-module_btnOutline__CCFPI.Button-module_dark__5oFOT {\n color: var(--dark) !important;\n border-color: var(--dark) !important; }\n .Button-module_btnOutline__CCFPI.Button-module_dark__5oFOT:hover {\n background: var(--dark-highlight) !important; }\n\n.Button-module_startIcon__Eylwr {\n display: inherit;\n margin-left: -4px;\n margin-right: 8px; }\n .Button-module_startIcon__Eylwr svg {\n width: 18px;\n height: 18px; }\n\n.Button-module_endIcon__pCffL {\n display: inherit;\n margin-left: 8px; }\n .Button-module_endIcon__pCffL svg {\n width: 18px;\n height: 18px; }\n";
518
+ var styles$O = {"button":"Button-module_button__qeIer","shadow":"Button-module_shadow__6N2nE","disabled":"Button-module_disabled__jiOqa","btnContained":"Button-module_btnContained__16y5l","primary":"Button-module_primary__EUyOu","accent":"Button-module_accent__opVgQ","secondary":"Button-module_secondary__zKoGk","light":"Button-module_light__LXeZy","dark":"Button-module_dark__5oFOT","btnText":"Button-module_btnText__N5Gys","btnOutline":"Button-module_btnOutline__CCFPI","startIcon":"Button-module_startIcon__Eylwr","endIcon":"Button-module_endIcon__pCffL"};
519
+ styleInject(css_248z$O);
520
+
521
+ const Button = (props) => {
522
+ const { children, variant = exports.VARIANT.contained, color = exports.COLOR.primary, isRounded, isActive, className, startIcon, endIcon, shadow = true } = props, rest = __rest(props, ["children", "variant", "color", "isRounded", "isActive", "className", "startIcon", "endIcon", "shadow"]);
523
+ const getCssClasses = () => {
524
+ const cssClasses = [];
525
+ cssClasses.push(styles$O.button);
526
+ if (variant !== 'outline' && variant !== 'text') {
527
+ cssClasses.push(styles$O.btnContained);
528
+ cssClasses.push(styles$O[color]);
529
+ }
530
+ if (variant === 'outline') {
531
+ cssClasses.push(styles$O.btnOutline);
532
+ cssClasses.push(styles$O[color]);
533
+ }
534
+ if (variant === 'text') {
535
+ cssClasses.push(styles$O.btnText);
536
+ cssClasses.push(styles$O[color]);
537
+ }
538
+ if (isRounded && variant !== 'text') {
539
+ cssClasses.push(`rounded-pill`);
540
+ }
541
+ if (isActive) {
542
+ cssClasses.push('active');
543
+ }
544
+ shadow && cssClasses.push(styles$O.shadow);
545
+ className && cssClasses.push(className);
546
+ return cssClasses.filter(css => css).join(' ');
547
+ };
548
+ return (React__default["default"].createElement("button", Object.assign({ type: "button", className: getCssClasses() }, rest),
549
+ React__default["default"].createElement("span", { className: "d-flex justify-content-center" },
550
+ startIcon &&
551
+ React__default["default"].createElement(Icon, { className: styles$O.startIcon }, startIcon),
552
+ children,
553
+ endIcon &&
554
+ React__default["default"].createElement(Icon, { className: styles$O.endIcon }, endIcon))));
555
+ };
556
+
557
+ var css_248z$N = ".ButtonGroup-module_buttonGroup__w6iB- button:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n\n.ButtonGroup-module_buttonGroup__w6iB- button:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n";
558
+ var styles$N = {"buttonGroup":"ButtonGroup-module_buttonGroup__w6iB-"};
559
+ styleInject(css_248z$N);
560
+
561
+ const ButtonGroup = (props) => {
562
+ const { children, className } = props, rest = __rest(props, ["children", "className"]);
563
+ const getCssClasses = () => {
564
+ const cssClasses = [];
565
+ cssClasses.push(styles$N.buttonGroup);
566
+ className && cssClasses.push(className);
567
+ return cssClasses.filter(css => css).join(' ');
568
+ };
569
+ return (React__default["default"].createElement("div", Object.assign({ className: getCssClasses(), role: "group" }, rest), children));
570
+ };
571
+
572
+ var css_248z$M = ".Breadcrumb-module_breadcrumb__-pvAn {\n display: flex;\n flex-wrap: wrap;\n padding: 0;\n margin-bottom: 0;\n list-style: none;\n margin-bottom: 1rem; }\n";
573
+ var styles$M = {"breadcrumb":"Breadcrumb-module_breadcrumb__-pvAn"};
574
+ styleInject(css_248z$M);
575
+
576
+ const Breadcrumb = (props) => {
577
+ const { children, className } = props, rest = __rest(props, ["children", "className"]);
578
+ const getCssClasses = () => {
579
+ const cssClasses = [];
580
+ cssClasses.push(styles$M.breadcrumb);
581
+ className && cssClasses.push(className);
582
+ return cssClasses.filter(css => css).join(' ');
583
+ };
584
+ return (React__default["default"].createElement("nav", Object.assign({}, rest),
585
+ React__default["default"].createElement("ol", { className: getCssClasses() }, children)));
586
+ };
587
+
588
+ const ConditionalWrapper = ({ condition, wrapper, children }) => condition ? wrapper(children) : children;
589
+
590
+ var css_248z$L = ".BreadcrumbItem-module_breadcrumbItem__zsUq- {\n display: flex;\n align-items: center; }\n .BreadcrumbItem-module_breadcrumbItem__zsUq- + .BreadcrumbItem-module_breadcrumbItem__zsUq- {\n padding-left: 0.5rem; }\n .BreadcrumbItem-module_breadcrumbItem__zsUq- + .BreadcrumbItem-module_breadcrumbItem__zsUq-::before {\n float: left;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\"; }\n .BreadcrumbItem-module_breadcrumbItem__zsUq- a:not([href]):not([class]) {\n color: var(--primary); }\n .BreadcrumbItem-module_breadcrumbItem__zsUq-:hover {\n cursor: pointer; }\n .BreadcrumbItem-module_breadcrumbItem__zsUq-.BreadcrumbItem-module_active__Kn1dA:hover {\n cursor: unset; }\n";
591
+ var styles$L = {"breadcrumbItem":"BreadcrumbItem-module_breadcrumbItem__zsUq-","active":"BreadcrumbItem-module_active__Kn1dA"};
592
+ styleInject(css_248z$L);
593
+
594
+ const BreadcrumbItem = (props) => {
595
+ const { children, className, isActive, onClick } = props;
596
+ const getCssClasses = () => {
597
+ const cssClasses = [];
598
+ cssClasses.push(styles$L.breadcrumbItem);
599
+ className && cssClasses.push(className);
600
+ isActive && cssClasses.push('active');
601
+ return cssClasses.filter(css => css).join(' ');
602
+ };
603
+ const handleClick = (event) => {
604
+ onClick && onClick(event);
605
+ };
606
+ return (React__default["default"].createElement("li", { className: getCssClasses(), onClick: handleClick },
607
+ React__default["default"].createElement(ConditionalWrapper, { condition: !isActive, wrapper: label => React__default["default"].createElement("a", null, label) }, children)));
608
+ };
609
+
610
+ var css_248z$K = ".Card-module_card__TQdQq {\n background: var(--white);\n border-radius: var(--borderRadius); }\n .Card-module_card__TQdQq.Card-module_shadow__NxDVz {\n box-shadow: var(--shadow); }\n";
611
+ var styles$K = {"card":"Card-module_card__TQdQq","shadow":"Card-module_shadow__NxDVz"};
612
+ styleInject(css_248z$K);
613
+
614
+ const Card = (props) => {
615
+ const { children, className, shadow = true } = props, rest = __rest(props, ["children", "className", "shadow"]);
616
+ const getCssClasses = () => {
617
+ const cssClasses = [];
618
+ cssClasses.push(styles$K.card);
619
+ shadow && cssClasses.push(styles$K.shadow);
620
+ className && cssClasses.push(className);
621
+ return cssClasses.filter(css => css).join(' ');
622
+ };
623
+ return (React__default["default"].createElement("div", Object.assign({ className: getCssClasses() }, rest), children));
624
+ };
625
+
626
+ var css_248z$J = ".CardBody-module_cardBody__X52VY {\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem; }\n";
627
+ var styles$J = {"cardBody":"CardBody-module_cardBody__X52VY"};
628
+ styleInject(css_248z$J);
629
+
630
+ const CardBody = (props) => {
631
+ const { children, className } = props, rest = __rest(props, ["children", "className"]);
632
+ const getCssClasses = () => {
633
+ const cssClasses = [];
634
+ cssClasses.push(styles$J.cardBody);
635
+ className && cssClasses.push(className);
636
+ return cssClasses.filter(css => css).join(' ');
637
+ };
638
+ return (React__default["default"].createElement("div", Object.assign({ className: getCssClasses() }, rest), children));
639
+ };
640
+
641
+ var css_248z$I = ".CardFooter-module_cardFooter__BpOTG {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125); }\n .CardFooter-module_cardFooter__BpOTG:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); }\n";
642
+ var styles$I = {"cardFooter":"CardFooter-module_cardFooter__BpOTG"};
643
+ styleInject(css_248z$I);
644
+
645
+ const CardFooter = (props) => {
646
+ const { children, className } = props, rest = __rest(props, ["children", "className"]);
647
+ const getCssClasses = () => {
648
+ const cssClasses = [];
649
+ cssClasses.push(styles$I.cardFooter);
650
+ className && cssClasses.push(className);
651
+ return cssClasses.filter(css => css).join(' ');
652
+ };
653
+ return (React__default["default"].createElement("div", Object.assign({ className: getCssClasses() }, rest), children));
654
+ };
655
+
656
+ var css_248z$H = ".CardSubtitle-module_cardSubtitle__YdoRM {\n color: #6c757d !important; }\n";
657
+ var styles$H = {"cardSubtitle":"CardSubtitle-module_cardSubtitle__YdoRM"};
658
+ styleInject(css_248z$H);
659
+
660
+ const CardSubtitle = (props) => {
661
+ const { children, className } = props, rest = __rest(props, ["children", "className"]);
662
+ const getCssClasses = () => {
663
+ const cssClasses = [];
664
+ cssClasses.push(styles$H.cardSubtitle);
665
+ className && cssClasses.push(className);
666
+ return cssClasses.filter(css => css).join(' ');
667
+ };
668
+ return (React__default["default"].createElement("p", Object.assign({ className: getCssClasses() }, rest), children));
669
+ };
670
+
671
+ var css_248z$G = ".CardText-module_cardText__UtYd9:last-child {\n margin-bottom: 0; }\n";
672
+ var styles$G = {"cardText":"CardText-module_cardText__UtYd9"};
673
+ styleInject(css_248z$G);
674
+
675
+ const CardText = (props) => {
676
+ const { children, className } = props, rest = __rest(props, ["children", "className"]);
677
+ const getCssClasses = () => {
678
+ const cssClasses = [];
679
+ cssClasses.push(styles$G.cardText);
680
+ className && cssClasses.push(className);
681
+ return cssClasses.filter(css => css).join(' ');
682
+ };
683
+ return (React__default["default"].createElement("p", Object.assign({ className: getCssClasses() }, rest), children));
684
+ };
685
+
686
+ var css_248z$F = ".CardTitle-module_cardTitle__aiPSE {\n margin-bottom: 0;\n font-size: 1.5rem;\n font-weight: 400;\n line-height: 1.334;\n letter-spacing: 0em; }\n";
687
+ var styles$F = {"cardTitle":"CardTitle-module_cardTitle__aiPSE"};
688
+ styleInject(css_248z$F);
689
+
690
+ const CardTitle = (props) => {
691
+ const { children, className, as: As = 'div' } = props, rest = __rest(props, ["children", "className", "as"]);
692
+ const getCssClasses = () => {
693
+ const cssClasses = [];
694
+ cssClasses.push(styles$F.cardTitle);
695
+ className && cssClasses.push(className);
696
+ return cssClasses.filter(css => css).join(' ');
697
+ };
698
+ return (React__default["default"].createElement(As, Object.assign({ className: getCssClasses() }, rest), children));
699
+ };
700
+
701
+ var css_248z$E = ".CardImage-module_cardImage__Z6JWW {\n flex-shrink: 0;\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px); }\n";
702
+ var styles$E = {"cardImage":"CardImage-module_cardImage__Z6JWW"};
703
+ styleInject(css_248z$E);
704
+
705
+ const CardImage = (props) => {
706
+ const { src, alt, className } = props, rest = __rest(props, ["src", "alt", "className"]);
707
+ const getCssClasses = () => {
708
+ const cssClasses = [];
709
+ cssClasses.push(styles$E.cardImage);
710
+ className && cssClasses.push(className);
711
+ return cssClasses.filter(css => css).join(' ');
712
+ };
713
+ return (React__default["default"].createElement("img", Object.assign({ className: getCssClasses(), src: src, alt: alt }, rest)));
714
+ };
715
+
716
+ var css_248z$D = ".Checkbox-module_checkboxContainer__x2GCi {\n display: flex;\n align-items: center;\n transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; }\n\n.Checkbox-module_checkboxLabel__nPY4k:hover {\n cursor: pointer; }\n\n.Checkbox-module_checkboxLabel__nPY4k.Checkbox-module_disabled__wnFIG {\n color: rgba(0, 0, 0, 0.26);\n cursor: not-allowed; }\n .Checkbox-module_checkboxLabel__nPY4k.Checkbox-module_disabled__wnFIG:hover {\n cursor: not-allowed; }\n";
717
+ var styles$D = {"checkboxContainer":"Checkbox-module_checkboxContainer__x2GCi","checkboxLabel":"Checkbox-module_checkboxLabel__nPY4k","disabled":"Checkbox-module_disabled__wnFIG"};
718
+ styleInject(css_248z$D);
719
+
720
+ const Checkbox = (props) => {
721
+ const { id, checked, className, label, name, value = "off", disabled, readOnly } = props, rest = __rest(props, ["id", "checked", "className", "label", "name", "value", "disabled", "readOnly"]);
722
+ // TODO
723
+ // add own value
724
+ // set from outer
725
+ // update on change
726
+ // emit to outer
727
+ // can be: true/false, custom
728
+ const [isChecked, setIsChecked] = React.useState(false);
729
+ const checkboxElement = React.useRef(null);
730
+ React.useEffect(() => {
731
+ if (checked === true || checked === false) {
732
+ setIsChecked(checked);
733
+ }
734
+ }, [checked]);
735
+ const icons = {
736
+ default: React__default["default"].createElement(SquareRegularIcon, null),
737
+ selected: React__default["default"].createElement(CheckSquareRegularIcon, null)
738
+ };
739
+ const getCssClasses = () => {
740
+ const cssClasses = [];
741
+ cssClasses.push('checkbox');
742
+ className && cssClasses.push(className);
743
+ return cssClasses.filter(css => css).join(' ');
744
+ };
745
+ const getCssClassesLabel = () => {
746
+ const cssClasses = [];
747
+ cssClasses.push(styles$D.checkboxLabel);
748
+ disabled && cssClasses.push(styles$D['disabled']);
749
+ return cssClasses.filter(css => css).join(' ');
750
+ };
751
+ const getIcon = () => {
752
+ return isChecked ? icons.selected : icons.default;
753
+ };
754
+ const handleClick = () => {
755
+ var _a;
756
+ if (!disabled && !readOnly) {
757
+ setIsChecked(!isChecked);
758
+ (_a = checkboxElement === null || checkboxElement === void 0 ? void 0 : checkboxElement.current) === null || _a === void 0 ? void 0 : _a.click();
759
+ }
760
+ };
761
+ return (React__default["default"].createElement("div", { className: styles$D.checkboxContainer },
762
+ React__default["default"].createElement(IconButton, { className: getCssClasses(), onClick: handleClick, icon: getIcon(), disabled: disabled || readOnly }),
763
+ React__default["default"].createElement("label", { onClick: handleClick, className: getCssClassesLabel() }, label),
764
+ React__default["default"].createElement("input", Object.assign({ type: "checkbox", ref: checkboxElement, id: id, name: name, checked: isChecked, disabled: disabled, readOnly: readOnly, hidden: true, value: value }, rest))));
765
+ };
766
+
767
+ var css_248z$C = ".Chip-module_chip__dZ5qz {\n display: inline-flex;\n align-items: center;\n padding: 0.5rem;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n font-size: 75%;\n font-weight: 700;\n border-radius: 10rem;\n line-height: 1; }\n .Chip-module_chip__dZ5qz svg {\n width: 18px;\n height: 18px; }\n .Chip-module_chip__dZ5qz .Chip-module_deleteIcon__--rUx {\n margin-left: 5px; }\n .Chip-module_chip__dZ5qz .Chip-module_deleteIcon__--rUx:hover {\n cursor: pointer; }\n .Chip-module_chip__dZ5qz.Chip-module_primary__YVDi9 {\n background: var(--primary);\n color: var(--primary-contrast-text); }\n .Chip-module_chip__dZ5qz.Chip-module_secondary__-e4xP {\n background: var(--secondary);\n color: var(--secondary-contrast-text); }\n .Chip-module_chip__dZ5qz.Chip-module_accent__ZCTwu {\n background: var(--accent);\n color: var(--accent-contrast-text); }\n .Chip-module_chip__dZ5qz.Chip-module_light__vKs7O {\n color: var(--light-contrast-text);\n background-color: var(--light); }\n .Chip-module_chip__dZ5qz.Chip-module_dark__G-FLQ {\n color: var(--dark-contrast-text);\n background-color: var(--dark); }\n .Chip-module_chip__dZ5qz.Chip-module_clickable__qAqVH:hover {\n cursor: pointer; }\n .Chip-module_chip__dZ5qz.Chip-module_clickable__qAqVH:hover.Chip-module_primary__YVDi9 {\n background: var(--primary-dark); }\n .Chip-module_chip__dZ5qz.Chip-module_clickable__qAqVH:hover.Chip-module_secondary__-e4xP {\n background: var(--secondary-dark); }\n .Chip-module_chip__dZ5qz.Chip-module_clickable__qAqVH:hover.Chip-module_accent__ZCTwu {\n background: var(--accent-dark); }\n .Chip-module_chip__dZ5qz.Chip-module_shadow__v11NF {\n box-shadow: var(--shadow); }\n";
768
+ var styles$C = {"chip":"Chip-module_chip__dZ5qz","deleteIcon":"Chip-module_deleteIcon__--rUx","primary":"Chip-module_primary__YVDi9","secondary":"Chip-module_secondary__-e4xP","accent":"Chip-module_accent__ZCTwu","light":"Chip-module_light__vKs7O","dark":"Chip-module_dark__G-FLQ","clickable":"Chip-module_clickable__qAqVH","shadow":"Chip-module_shadow__v11NF"};
769
+ styleInject(css_248z$C);
770
+
771
+ const Chip = (props) => {
772
+ const { children, color = 'secondary', className, shadow, onClick, isDeletable, onDelete, deleteIcon = React__default["default"].createElement(TimesCircleSolidIcon, null), style } = props, rest = __rest(props, ["children", "color", "className", "shadow", "onClick", "isDeletable", "onDelete", "deleteIcon", "style"]);
773
+ const getCssClass = () => {
774
+ const cssClasses = [];
775
+ cssClasses.push(styles$C.chip);
776
+ cssClasses.push(styles$C[color]);
777
+ shadow && cssClasses.push(styles$C['shadow']);
778
+ onClick && cssClasses.push(styles$C['clickable']);
779
+ className && cssClasses.push(className);
780
+ return cssClasses.filter(r => r).join(' ');
781
+ };
782
+ const handleClickOnDelete = (e) => {
783
+ e.stopPropagation();
784
+ onDelete && onDelete(e);
785
+ };
786
+ return (React__default["default"].createElement("div", Object.assign({ className: getCssClass() }, rest, { style: style }),
787
+ React__default["default"].createElement("div", null, children),
788
+ isDeletable && (React__default["default"].createElement("div", { className: styles$C.deleteIcon, onClick: e => handleClickOnDelete(e) }, deleteIcon))));
789
+ };
790
+
791
+ var css_248z$B = ".Column-module_column__fcTgl {\n flex: 1 0 0%; }\n";
792
+ var styles$B = {"column":"Column-module_column__fcTgl"};
793
+ styleInject(css_248z$B);
794
+
795
+ const Column = (props) => {
796
+ const { children, className } = props,
797
+ // xs,
798
+ // sm,
799
+ // md,
800
+ // lg,
801
+ // xl,
802
+ rest = __rest(props, ["children", "className"]);
803
+ const getCssClasses = () => {
804
+ const cssClasses = [];
805
+ // !xs && !sm && !md && !lg && !xl && cssClasses.push('col');
806
+ // if (xs) cssClasses.push(`col-${xs.toString()}`);
807
+ // if (sm) cssClasses.push(`col-sm-${sm.toString()}`);
808
+ // if (md) cssClasses.push(`col-md-${md.toString()}`);
809
+ // if (lg) cssClasses.push(`col-lg-${lg.toString()}`);
810
+ // if (xl) cssClasses.push(`col-xl-${xl.toString()}`);
811
+ cssClasses.push(styles$B.column);
812
+ className && cssClasses.push(className);
813
+ return cssClasses.filter(css => css).join(' ');
814
+ };
815
+ return (React__default["default"].createElement("div", Object.assign({ className: getCssClasses() }, rest), children));
816
+ };
817
+
818
+ var css_248z$A = ".Row-module_row__bTIWp {\n display: flex;\n gap: 15px;\n flex-wrap: wrap; }\n .Row-module_row__bTIWp > * {\n flex-shrink: 0;\n width: 100%;\n min-width: 0;\n max-width: 100%; }\n";
819
+ var styles$A = {"row":"Row-module_row__bTIWp"};
820
+ styleInject(css_248z$A);
821
+
822
+ const Row = (_a) => {
823
+ var { children, direction = 'row', className } = _a, rest = __rest(_a, ["children", "direction", "className"]);
824
+ const getCssClasses = () => {
825
+ const cssClasses = [];
826
+ cssClasses.push(styles$A.row);
827
+ className && cssClasses.push(className);
828
+ direction && cssClasses.push(`flex-${direction}`);
829
+ return cssClasses.filter(css => css).join(' ');
830
+ };
831
+ return (React__default["default"].createElement("div", Object.assign({ className: getCssClasses() }, rest), children));
832
+ };
833
+
834
+ var css_248z$z = ".FormLabel-module_formLabel__TXcHc {\n display: inline-block;\n margin-bottom: 0.5rem; }\n";
835
+ var styles$z = {"formLabel":"FormLabel-module_formLabel__TXcHc"};
836
+ styleInject(css_248z$z);
837
+
838
+ const FormLabel = (_a) => {
839
+ var { children, className, htmlFor } = _a, rest = __rest(_a, ["children", "className", "htmlFor"]);
840
+ const getCssClasses = () => {
841
+ const cssClasses = [];
842
+ cssClasses.push(styles$z.formLabel);
843
+ className && cssClasses.push(className);
844
+ return cssClasses.filter(css => css).join(' ');
845
+ };
846
+ return (React__default["default"].createElement("label", Object.assign({ htmlFor: htmlFor, className: getCssClasses() }, rest), children));
847
+ };
848
+
849
+ const FormGroup = (props) => {
850
+ const { children, className = 'mb-1' } = props;
851
+ return (React__default["default"].createElement("div", { className: className }, children));
852
+ };
853
+
854
+ const FileInput = (props) => {
855
+ const { id, className, children, name, multiple = false, accept, disabled, onChange, readOnly, value, deletable = false } = props, rest = __rest(props, ["id", "className", "children", "name", "multiple", "accept", "disabled", "onChange", "readOnly", "value", "deletable"]);
856
+ const inputFileElement = React.useRef(null);
857
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
858
+ const [model, setModel] = React.useState(value);
859
+ const [fileList, setFileList] = React.useState();
860
+ const getCssClasses = () => {
861
+ const cssClasses = [];
862
+ className && cssClasses.push(className);
863
+ return cssClasses.filter(r => r).join(' ');
864
+ };
865
+ const handleOnChange = (event) => {
866
+ const values = event.target.files;
867
+ setFileList(values);
868
+ onChange && onChange(event);
869
+ };
870
+ const handleOnDelete = () => {
871
+ alert('coming soon');
872
+ };
873
+ return (React__default["default"].createElement("div", { className: "d-flex align-items-start" },
874
+ React__default["default"].createElement(Button, { className: "flex-wrap", disabled: disabled, onClick: () => { var _a; return (_a = inputFileElement.current) === null || _a === void 0 ? void 0 : _a.click(); } }, children),
875
+ React__default["default"].createElement("div", { className: "d-flex align-items-center flex-wrap ml-1" }, fileList && Array.from(fileList).map((file) => React__default["default"].createElement(Chip, { key: file.name, isDeletable: deletable, onDelete: () => handleOnDelete() }, file.name))),
876
+ React__default["default"].createElement("input", Object.assign({ type: "file", ref: inputFileElement, className: getCssClasses(), id: id, name: name, multiple: multiple, accept: accept, disabled: disabled, readOnly: readOnly, hidden: true, onChange: handleOnChange, value: model }, rest))));
877
+ };
878
+
879
+ var css_248z$y = ".Select-module_selectContainer__DHFDZ {\n position: relative; }\n\n.Select-module_select__Fbn38 {\n width: 100%;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n appearance: none;\n border-radius: 0.25rem;\n box-shadow: inset 0 1px 2px #00000013;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n align-items: center;\n min-height: calc(1.5em + 0.75rem + 2px);\n height: auto;\n display: flex; }\n .Select-module_select__Fbn38:hover {\n cursor: pointer; }\n .Select-module_select__Fbn38:focus:not(.Select-module_select__Fbn38.Select-module_disabled__2XXut) {\n color: #212529;\n background-color: #fff;\n border-color: #86b7fe;\n outline: 0;\n box-shadow: inset 0 1px 2px #00000013, 0 0 0 0.25rem #0d6efd40; }\n .Select-module_select__Fbn38.Select-module_disabled__2XXut, .Select-module_select__Fbn38.Select-module_readOnly__VoTER {\n background-color: #e9ecef; }\n .Select-module_select__Fbn38.Select-module_disabled__2XXut:hover {\n cursor: not-allowed; }\n .Select-module_select__Fbn38.Select-module_readOnly__VoTER:hover {\n cursor: inherit; }\n\n.Select-module_selectMenu__8y4kQ {\n background-color: var(--light);\n position: absolute;\n box-shadow: var(--shadow);\n border-radius: var(--borderRadius);\n width: 100%;\n top: 2px;\n z-index: 1112;\n max-height: 280px;\n overflow: auto; }\n";
880
+ var styles$y = {"selectContainer":"Select-module_selectContainer__DHFDZ","select":"Select-module_select__Fbn38","disabled":"Select-module_disabled__2XXut","readOnly":"Select-module_readOnly__VoTER","selectMenu":"Select-module_selectMenu__8y4kQ"};
881
+ styleInject(css_248z$y);
882
+
883
+ const Select = (props) => {
884
+ var _a, _b, _c;
885
+ const { id, className, options = [], value, multiple, multipleMaxCountItems = 5, disabled, readOnly, onChange, onKeyDown } = props;
886
+ const [model, setModel] = React.useState('');
887
+ const [hoverIndex, setHoverIndex] = React.useState(null);
888
+ const [isShow, setIsShow] = React.useState(false);
889
+ const [selectedOptions, setSelectedOptions] = React.useState([]);
890
+ const selectConainter = React.useRef(null);
891
+ const getCssClass = () => {
892
+ const cssClasses = [];
893
+ className && cssClasses.push(className);
894
+ disabled && cssClasses.push(styles$y['disabled']);
895
+ readOnly && cssClasses.push(styles$y['readOnly']);
896
+ cssClasses.push(styles$y.select);
897
+ return cssClasses.filter(r => r).join(' ');
898
+ };
899
+ React.useEffect(() => {
900
+ const newValue = value ? value : '';
901
+ writeValue(newValue);
902
+ if (newValue) {
903
+ const option = options.find(o => o.value === newValue);
904
+ if (option) {
905
+ setHoverIndex(options.indexOf(option));
906
+ }
907
+ }
908
+ }, [value, options]);
909
+ React.useEffect(() => {
910
+ if (hoverIndex) {
911
+ scrollIntoView(hoverIndex);
912
+ }
913
+ }, [hoverIndex, isShow]);
914
+ const scrollIntoView = (index) => {
915
+ var _a;
916
+ const htmlListItem = (_a = selectConainter.current) === null || _a === void 0 ? void 0 : _a.querySelector(`#list-item-${index}`);
917
+ if (htmlListItem) {
918
+ htmlListItem === null || htmlListItem === void 0 ? void 0 : htmlListItem.scrollIntoView({ block: "end", behavior: "smooth" });
919
+ }
920
+ };
921
+ const writeValue = (val) => setModel(val);
922
+ React.useEffect(() => {
923
+ if (!multiple) {
924
+ const newOption = options.find(o => o.value === model);
925
+ if (newOption) {
926
+ setSelectedOptions([newOption]);
927
+ }
928
+ }
929
+ else {
930
+ const filteredOptions = options.filter(o => model.indexOf(o.value) >= 0);
931
+ setSelectedOptions([...filteredOptions]);
932
+ }
933
+ }, [model, multiple]);
934
+ const handleOnClick = (option) => {
935
+ let newValue = multiple ? [] : '';
936
+ if (!multiple) {
937
+ if (model !== option.value) {
938
+ newValue = option.value;
939
+ onChange && onChange(newValue);
940
+ }
941
+ hide();
942
+ }
943
+ else {
944
+ const selectedOption = selectedOptions.find(o => o.value === option.value);
945
+ if (selectedOption) {
946
+ newValue = selectedOptions.filter(o => o.value !== option.value).map(o => o.value);
947
+ }
948
+ else {
949
+ newValue = newValue.concat(selectedOptions.map(o => o.value));
950
+ newValue.push(option.value);
951
+ }
952
+ onChange && onChange(newValue);
953
+ }
954
+ writeValue(newValue);
955
+ };
956
+ const show = () => {
957
+ if (!disabled && !readOnly) {
958
+ setIsShow(true);
959
+ }
960
+ };
961
+ const hide = () => setIsShow(false);
962
+ const isActive = (option) => {
963
+ return selectedOptions.indexOf(option) >= 0 || hoverIndex === options.indexOf(option);
964
+ };
965
+ const renderSingleViewModel = () => {
966
+ let result = null;
967
+ if (selectedOptions.length > 0) {
968
+ result = React__default["default"].createElement("span", null, selectedOptions[0].label);
969
+ }
970
+ return result;
971
+ };
972
+ const renderMultipleViewModel = () => {
973
+ let result = null;
974
+ if (selectedOptions.length <= multipleMaxCountItems && selectedOptions.length > 0) {
975
+ result = selectedOptions
976
+ .map(option => React__default["default"].createElement(Chip, { key: option.value, className: "mr-2", color: exports.COLOR.primary, isDeletable: true, onDelete: (e) => handleOnDelete(e, option) }, option.label));
977
+ }
978
+ else {
979
+ result = React__default["default"].createElement("span", null,
980
+ selectedOptions.length,
981
+ " Items selected");
982
+ }
983
+ return result;
984
+ };
985
+ const handleOnDelete = (event, option) => {
986
+ event.stopPropagation();
987
+ handleOnClick(option);
988
+ };
989
+ // TODO - extract with wrapper?
990
+ const handleOnKeyDown = (e) => {
991
+ if (isShow) {
992
+ onKeyDown && onKeyDown(e);
993
+ switch (e.code) {
994
+ case 'Escape':
995
+ hide();
996
+ break;
997
+ case 'ArrowDown':
998
+ if (hoverIndex) {
999
+ setHoverIndex(hoverIndex + 1);
1000
+ }
1001
+ break;
1002
+ case 'ArrowUp':
1003
+ // TODO
1004
+ if (hoverIndex) {
1005
+ setHoverIndex(hoverIndex - 1);
1006
+ }
1007
+ break;
1008
+ case 'Enter':
1009
+ if (hoverIndex) {
1010
+ const option = options[hoverIndex];
1011
+ if (option)
1012
+ handleOnClick(option);
1013
+ }
1014
+ break;
1015
+ }
1016
+ }
1017
+ };
1018
+ return (React__default["default"].createElement("div", { ref: selectConainter, className: styles$y.selectContainer },
1019
+ React__default["default"].createElement("div", { id: id, className: getCssClass(), onClick: () => show(), tabIndex: 0, onKeyDown: e => handleOnKeyDown(e) },
1020
+ !multiple && renderSingleViewModel(),
1021
+ multiple && renderMultipleViewModel(),
1022
+ React__default["default"].createElement(Icon, { className: "ml-auto" },
1023
+ React__default["default"].createElement(ChevronDownSolidIcon, null))),
1024
+ isShow &&
1025
+ reactDom.createPortal(React__default["default"].createElement(React__default["default"].Fragment, null,
1026
+ React__default["default"].createElement("div", { className: styles$y.selectMenu, style: { left: (_a = selectConainter.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().x, top: (_b = selectConainter.current) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect().y, width: (_c = selectConainter.current) === null || _c === void 0 ? void 0 : _c.getBoundingClientRect().width } },
1027
+ React__default["default"].createElement(List, null, options && options.map((option, index) => React__default["default"].createElement(ListItem, { id: `list-item-${index}`, key: option.value, onClick: () => handleOnClick(option), active: isActive(option) },
1028
+ multiple &&
1029
+ React__default["default"].createElement(Checkbox, { checked: isActive(option), onChange: () => handleOnClick(option) }),
1030
+ React__default["default"].createElement(ListItemText, { primary: option.label ? option.label : option.value }))))),
1031
+ React__default["default"].createElement(Backdrop, { style: { zIndex: 1111 }, isTransparent: true, onClick: () => hide() })), document.body)));
1032
+ };
1033
+
1034
+ var css_248z$x = ".Textarea-module_textarea__L5zqa {\n min-height: calc(10em + 0.75rem + 2px);\n display: block;\n width: 100%;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n background-clip: padding-box;\n border: 2px solid var(--input-border-color);\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n border-radius: var(--borderRadius);\n resize: vertical;\n color: #212529;\n background-color: #fff;\n background-clip: padding-box;\n appearance: none;\n border-radius: 0.25rem;\n box-shadow: inset 0 1px 2px #00000013;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n border: 1px solid #ced4da; }\n .Textarea-module_textarea__L5zqa:focus:not(.Textarea-module_textarea__L5zqa.Textarea-module_disabled__OqqOF) {\n outline: none !important;\n border-color: var(--primary); }\n .Textarea-module_textarea__L5zqa.Textarea-module_isInvalid__JI01W {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.25rem #dc354540; }\n";
1035
+ var styles$x = {"textarea":"Textarea-module_textarea__L5zqa","disabled":"Textarea-module_disabled__OqqOF","isInvalid":"Textarea-module_isInvalid__JI01W"};
1036
+ styleInject(css_248z$x);
1037
+
1038
+ const Textarea = (props) => {
1039
+ const { className, error } = props, rest = __rest(props, ["className", "error"]);
1040
+ const getCssClass = () => {
1041
+ const cssClasses = [];
1042
+ cssClasses.push(styles$x.textarea);
1043
+ className && cssClasses.push(className);
1044
+ error && cssClasses.push(styles$x['isInvalid']);
1045
+ return cssClasses.filter(r => r).join(' ');
1046
+ };
1047
+ return (React__default["default"].createElement("textarea", Object.assign({ className: getCssClass() }, rest)));
1048
+ };
1049
+
1050
+ var css_248z$w = ".FormInput-module_formInput__VXZip {\n display: block;\n width: 100%;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n -webkit-appearance: none;\n appearance: none;\n border-radius: 0.25rem;\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.08);\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n .FormInput-module_formInput__VXZip:focus:not(.FormInput-module_formInput__VXZip.FormInput-module_disabled__EjdD9) {\n color: #212529;\n background-color: #fff;\n border-color: #86b7fe;\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); }\n .FormInput-module_formInput__VXZip.FormInput-module_isInvalid__vQDuz {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.25rem #dc354540; }\n";
1051
+ var styles$w = {"formInput":"FormInput-module_formInput__VXZip","disabled":"FormInput-module_disabled__EjdD9","isInvalid":"FormInput-module_isInvalid__vQDuz"};
1052
+ styleInject(css_248z$w);
1053
+
1054
+ const FormInput = (props) => {
1055
+ const { value, name, type, placeholder, className, isValid = true, options = [], textareaOptions, selectOptions, autoCompleteOptions, autoFocus, label, disabled = false, readonly = false, onInput, onChange, onBlur, onKeyDown } = props;
1056
+ const getCssClasses = () => {
1057
+ const cssClasses = [];
1058
+ cssClasses.push(styles$w.formInput);
1059
+ className && cssClasses.push(className);
1060
+ !isValid && cssClasses.push(styles$w['isInvalid']);
1061
+ return cssClasses.filter(css => css).join(' ');
1062
+ };
1063
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1064
+ const handleOnInput = (value, type, name) => {
1065
+ onInput && onInput({ value, type, name });
1066
+ };
1067
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1068
+ const handleOnChange = (value, type, name) => {
1069
+ onChange && onChange({ value, type, name });
1070
+ };
1071
+ return (React__default["default"].createElement(React.Fragment, null,
1072
+ (type === 'text' ||
1073
+ type === 'date' ||
1074
+ type === 'datetime-local' ||
1075
+ type === 'email' ||
1076
+ type === 'number' ||
1077
+ type === 'password' ||
1078
+ type === 'color' ||
1079
+ type === 'time')
1080
+ &&
1081
+ React__default["default"].createElement("input", { id: name, name: name, type: type, className: getCssClasses(), value: value, autoFocus: autoFocus, onInput: e => handleOnInput(e.target.value, type, name), onChange: e => handleOnChange((e === null || e === void 0 ? void 0 : e.target).value, type, name), onBlur: onBlur, placeholder: placeholder, readOnly: readonly, disabled: disabled, onKeyDown: onKeyDown }),
1082
+ type === 'file' &&
1083
+ React__default["default"].createElement(FileInput, { id: name, name: name, className: className + (!isValid ? ' is-invalid' : ''), value: value, autoFocus: autoFocus, readOnly: readonly, disabled: disabled, onChange: e => handleOnChange(e.target.value, type, name) }, "choose a file"),
1084
+ type === 'textarea' &&
1085
+ React__default["default"].createElement(Textarea, { id: name, name: name, className: className, error: !isValid, value: value, autoFocus: autoFocus, onInput: e => handleOnInput(e.target.value, type, name), onChange: e => handleOnChange(e.target.value, type, name), placeholder: placeholder, rows: textareaOptions === null || textareaOptions === void 0 ? void 0 : textareaOptions.rows, style: (textareaOptions === null || textareaOptions === void 0 ? void 0 : textareaOptions.resize) !== false ? undefined : { resize: 'none' } }),
1086
+ type === 'select' &&
1087
+ React__default["default"].createElement(Select, { id: name, name: name, className: className + (!isValid ? ' is-invalid' : ''), value: value, multiple: selectOptions === null || selectOptions === void 0 ? void 0 : selectOptions.multiple, onChange: e => handleOnChange(e, type, name),
1088
+ // onKeyDown={e => onKeyDown(e)}
1089
+ options: options }),
1090
+ type === 'autocomplete' &&
1091
+ React__default["default"].createElement(AutoComplete, { id: name, name: name, className: className + (!isValid ? ' is-invalid' : ''), value: value, openOnFocus: autoCompleteOptions === null || autoCompleteOptions === void 0 ? void 0 : autoCompleteOptions.openOnFocus, onChange: e => handleOnChange(e, type, name), options: options }),
1092
+ type === 'checkbox' &&
1093
+ React__default["default"].createElement(Checkbox, { id: name, name: name, label: label, className: (!isValid ? ' is-invalid' : ''), onChange: e => handleOnChange((e === null || e === void 0 ? void 0 : e.target).checked, type, name), checked: value }),
1094
+ type === 'radio' &&
1095
+ React__default["default"].createElement(React__default["default"].Fragment, null, options.map((option) => React__default["default"].createElement("div", { className: "form-check", key: option.id },
1096
+ React__default["default"].createElement("input", { id: option.id ? option.id : option.value, name: name, type: "radio", className: "form-check-input", onChange: e => handleOnChange((e === null || e === void 0 ? void 0 : e.target).value, type, name), value: option.value, checked: value === option.value, onKeyDown: onKeyDown }),
1097
+ React__default["default"].createElement("label", { className: "form-check-label", htmlFor: option.id }, option.label))))));
1098
+ };
1099
+
1100
+ const FormHint = (props) => {
1101
+ const { children, className = 'form-text text-muted' } = props;
1102
+ const getCssClasses = () => {
1103
+ const cssClasses = [];
1104
+ className && cssClasses.push(className);
1105
+ return cssClasses.filter(css => css).join(' ');
1106
+ };
1107
+ return (React__default["default"].createElement("small", { className: getCssClasses() }, children));
1108
+ };
1109
+
1110
+ var css_248z$v = ".FormError-module_isInvalid__tO1Sw {\n width: 100%;\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: #dc3545; }\n";
1111
+ var styles$v = {"isInvalid":"FormError-module_isInvalid__tO1Sw"};
1112
+ styleInject(css_248z$v);
1113
+
1114
+ const FormError = (props) => {
1115
+ const { className = styles$v.isInvalid, errors = [] } = props;
1116
+ return (React__default["default"].createElement(React.Fragment, null, errors &&
1117
+ React__default["default"].createElement("div", { className: className }, errors.map(e => React__default["default"].createElement("div", { key: e.validator }, e.message)))));
1118
+ };
1119
+
1120
+ const IsEmptyValidator = (value) => value.trim() === '' || value === null || value === undefined;
1121
+
1122
+ const EmailValidator = (value) => {
1123
+ const isInvalidEmailFormat = value.match(/^([\w.%+-]+)@([\w-]+\.)+([\w]{2,})$/i) === null;
1124
+ const isInvalid = !IsEmptyValidator(value) && isInvalidEmailFormat;
1125
+ return isInvalid;
1126
+ };
1127
+
1128
+ const IsEqualValidator = (valueA, valueB) => valueA === valueB;
1129
+
1130
+ // values, isSubmitting, handleChange, handleBlur, handleSubmit
1131
+ class Form extends React.Component {
1132
+ constructor(props) {
1133
+ super(props);
1134
+ this.myForm = React.createRef();
1135
+ this.state = { controls: undefined, isValid: false, isChanged: false, isSubmitted: false, submitOnEnter: props.submitOnEnter !== undefined ? props.submitOnEnter : true };
1136
+ }
1137
+ static getDerivedStateFromProps(nextProps, state) {
1138
+ if (!state.controls && nextProps.controls) {
1139
+ return ({ controls: nextProps.controls });
1140
+ }
1141
+ return null;
1142
+ }
1143
+ handleChange() {
1144
+ // get value by myForm instead of getControl?
1145
+ if (this.state.isChanged || this.state.isSubmitted) {
1146
+ const keys = Object.keys(this.state.controls);
1147
+ const values = keys.reduce((obj, f) => {
1148
+ const control = this.getControl(f);
1149
+ // TODO - refactor
1150
+ const newValue = ((control.type === 'date' || control.type === 'datetime-local') && control.value && isValidDate((control.value))) ? new Date((control.value)).toISOString() : control.value;
1151
+ return (Object.assign(Object.assign({}, obj), { [f]: newValue }));
1152
+ }, {});
1153
+ if (this.state.isValid && this.state.isSubmitted) {
1154
+ this.props.onSubmit && this.props.onSubmit(values);
1155
+ }
1156
+ this.props.onChange && this.props.onChange(values);
1157
+ this.setState({ isChanged: false, isSubmitted: false });
1158
+ }
1159
+ }
1160
+ // extract to service?
1161
+ validateField(fieldValue, fieldValidators) {
1162
+ const errors = [];
1163
+ if (fieldValidators) {
1164
+ for (const validator of fieldValidators) {
1165
+ const validatorSplitted = validator.split(':');
1166
+ const validatorName = validatorSplitted[0];
1167
+ const validatorParam = validatorSplitted.length > 1 ? validatorSplitted[1] : null;
1168
+ switch (validatorName) {
1169
+ case 'required':
1170
+ if (IsEmptyValidator(fieldValue)) {
1171
+ errors.push({ validator: validatorName, message: 'This field is required' });
1172
+ }
1173
+ break;
1174
+ case 'email':
1175
+ if (EmailValidator(fieldValue)) {
1176
+ errors.push({ validator: validatorName, message: 'Email format is wrong' });
1177
+ }
1178
+ break;
1179
+ case 'match':
1180
+ if (validatorParam) {
1181
+ const matchControl = this.getControl(validatorParam);
1182
+ if (matchControl) {
1183
+ if (!IsEqualValidator(fieldValue, matchControl.value)) {
1184
+ errors.push({ validator: validatorName, message: 'Values do not match' });
1185
+ }
1186
+ }
1187
+ else {
1188
+ console.error(`Form: Field ${validatorParam} not found`);
1189
+ }
1190
+ }
1191
+ break;
1192
+ }
1193
+ }
1194
+ }
1195
+ return errors;
1196
+ }
1197
+ handleInputChange(name, value) {
1198
+ const field = this.getControl(name);
1199
+ field.value = value;
1200
+ // redundant mit handleOnBlur
1201
+ field.isDirty = true;
1202
+ field.errors = this.validateField(field.value, field.validators);
1203
+ field.isValid = field.errors.length === 0;
1204
+ const newControls = Object.assign({}, this.state.controls);
1205
+ newControls[name] = field;
1206
+ this.setState({ controls: newControls, isChanged: true }, () => this.handleChange());
1207
+ }
1208
+ handleOnBlur(e) {
1209
+ if (this.props.validateOnBlur) {
1210
+ const { name } = e.target;
1211
+ const field = this.getControl(name);
1212
+ field.isDirty = true;
1213
+ field.errors = this.validateField(field.value, field.validators);
1214
+ field.isValid = field.errors.length === 0;
1215
+ const controls = this.state.controls;
1216
+ if (controls) {
1217
+ controls[name] = field;
1218
+ this.setState({ controls: controls, isChanged: true }, () => this.handleChange());
1219
+ }
1220
+ }
1221
+ }
1222
+ isRequired(fieldName) {
1223
+ let result = false;
1224
+ result = this.getControl(fieldName).validators.indexOf('required') >= 0;
1225
+ return result;
1226
+ }
1227
+ isInvalid(fieldName) {
1228
+ let result = false;
1229
+ const field = this.getControl(fieldName);
1230
+ result = field.isDirty && !field.isValid;
1231
+ return result;
1232
+ }
1233
+ getControl(name) {
1234
+ return this.state.controls[name];
1235
+ }
1236
+ renderLabel(fieldKey, label, labelClassName = 'form-label') {
1237
+ const cssClasses = [labelClassName, this.isRequired(fieldKey) ? 'required' : undefined];
1238
+ return React__default["default"].createElement(FormLabel, { htmlFor: fieldKey, className: cssClasses.join(' ') }, label);
1239
+ }
1240
+ // trigger via ref
1241
+ handleFormSubmit() {
1242
+ for (const fieldKey of Object.keys(this.state.controls)) {
1243
+ const field = this.getControl(fieldKey);
1244
+ // redundant mit handleBlur
1245
+ field.isDirty = true;
1246
+ field.errors = this.validateField(field.value, field.validators);
1247
+ field.isValid = field.errors.length === 0;
1248
+ }
1249
+ this.setState({
1250
+ controls: Object.assign({}, this.state.controls),
1251
+ isSubmitted: true,
1252
+ isValid: Object.keys(this.state.controls).map(f => this.getControl(f).isValid).every(valid => valid === true)
1253
+ }, () => this.handleChange());
1254
+ }
1255
+ // trigger via ref
1256
+ handleFormReset() {
1257
+ for (const fieldKey of Object.keys(this.state.controls)) {
1258
+ const field = this.getControl(fieldKey);
1259
+ field.value = '';
1260
+ field.isDirty = false;
1261
+ field.errors = [];
1262
+ field.isValid = field.errors.length === 0;
1263
+ }
1264
+ this.setState({
1265
+ controls: Object.assign({}, this.state.controls),
1266
+ isSubmitted: false,
1267
+ isChanged: false,
1268
+ isValid: false
1269
+ });
1270
+ }
1271
+ handleOnKeyDown(e) {
1272
+ if (e.key === 'Enter') {
1273
+ e.preventDefault();
1274
+ this.state.submitOnEnter && this.handleFormSubmit();
1275
+ }
1276
+ }
1277
+ destroy() {
1278
+ this.setState({ controls: {}, isValid: false, isChanged: false, isSubmitted: false });
1279
+ }
1280
+ getFormGroupCssClass(fieldKey) {
1281
+ const result = this.getControl(fieldKey).config.formGroupClassName;
1282
+ return result;
1283
+ }
1284
+ render() {
1285
+ return (React__default["default"].createElement("form", { ref: this.myForm }, this.state && this.state.controls && Object.keys(this.state.controls).map((fieldKey) => {
1286
+ return (React__default["default"].createElement(FormGroup, { key: fieldKey, className: this.getFormGroupCssClass(fieldKey) },
1287
+ this.getControl(fieldKey).config.labelPosition !== 'behind' && this.getControl(fieldKey).type !== 'checkbox' &&
1288
+ this.renderLabel(fieldKey, this.getControl(fieldKey).config.label, this.getControl(fieldKey).config.labelClassName),
1289
+ React__default["default"].createElement(FormInput, { autoFocus: this.getControl(fieldKey).config.autoFocus, className: this.getControl(fieldKey).config.formControlClassName, isValid: !this.isInvalid(fieldKey), label: this.getControl(fieldKey).config.label, name: fieldKey, options: this.getControl(fieldKey).config.options, placeholder: this.getControl(fieldKey).config.placeholder, textareaOptions: this.getControl(fieldKey).config.textareaOptions, selectOptions: this.getControl(fieldKey).config.selectOptions, autoCompleteOptions: this.getControl(fieldKey).config.autoCompleteOptions, type: this.getControl(fieldKey).type, value: this.getControl(fieldKey).value, disabled: this.getControl(fieldKey).config.disabled, readonly: this.getControl(fieldKey).config.readonly, onChange: ({ name, value }) => this.handleInputChange(name, value), onBlur: (e) => this.handleOnBlur(e), onKeyDown: (e) => this.handleOnKeyDown(e) }),
1290
+ this.getControl(fieldKey).config.labelPosition === 'behind' && this.getControl(fieldKey).type !== 'checkbox' &&
1291
+ this.renderLabel(fieldKey, this.getControl(fieldKey).config.label, this.getControl(fieldKey).config.labelClassName),
1292
+ this.getControl(fieldKey).config.hint &&
1293
+ React__default["default"].createElement(FormHint, null, this.getControl(fieldKey).config.hint),
1294
+ this.getControl(fieldKey).errors &&
1295
+ React__default["default"].createElement(FormError, { errors: this.getControl(fieldKey).errors })));
1296
+ })));
1297
+ }
1298
+ }
1299
+ function isValidDate(dateObject) {
1300
+ return new Date(dateObject).toString() !== 'Invalid Date';
1301
+ }
1302
+
1303
+ class FormControl {
1304
+ constructor(
1305
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1306
+ value, validators = [], type, config) {
1307
+ this.value = value;
1308
+ this.validators = validators;
1309
+ this.type = type;
1310
+ this.config = config;
1311
+ this.errors = [];
1312
+ this.isValid = false;
1313
+ this.isDirty = false;
1314
+ }
1315
+ }
1316
+
1317
+ const DaySelect = (props) => {
1318
+ const { className, day = new Date().getDate(), month = new Date().getMonth(), year = new Date().getFullYear(), disabled, id, name, onChange } = props;
1319
+ React.useEffect(() => {
1320
+ init();
1321
+ }, [month, year]);
1322
+ const init = () => {
1323
+ const daysInMonth = new Date(year, month + 1, 0).getDate();
1324
+ const newDays = [];
1325
+ for (let i = 1; i <= daysInMonth; i++) {
1326
+ newDays.push({ value: i.toString(), label: i.toString() });
1327
+ }
1328
+ setDayOptions(newDays);
1329
+ };
1330
+ const [value, setValue] = React.useState(day);
1331
+ const [dayOptions, setDayOptions] = React.useState();
1332
+ const getCssClasses = () => {
1333
+ const cssClasses = [];
1334
+ className && cssClasses.push(className);
1335
+ return cssClasses.filter(css => css).join(' ');
1336
+ };
1337
+ const handleOnChange = (e) => {
1338
+ setValue(e);
1339
+ onChange && onChange(e);
1340
+ };
1341
+ return (React__default["default"].createElement(Select, { id: id, name: name, className: getCssClasses(), options: dayOptions, onChange: (e) => handleOnChange(parseInt(e)), disabled: disabled, value: value.toString() }));
1342
+ };
1343
+
1344
+ const MonthSelect = (props) => {
1345
+ const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
1346
+ const { className, value = new Date().getMonth(), id, name, disabled, onChange } = props;
1347
+ const [newValue, setNewValue] = React.useState(value);
1348
+ const [monthOptions, setMonthOptions] = React.useState();
1349
+ React.useEffect(() => {
1350
+ setMonthOptions(months.map((m, index) => ({ value: index.toString(), label: m })));
1351
+ }, []);
1352
+ const getCssClasses = () => {
1353
+ const cssClasses = [];
1354
+ className && cssClasses.push(className);
1355
+ return cssClasses.filter(css => css).join(' ');
1356
+ };
1357
+ const handleOnChange = (e) => {
1358
+ setNewValue(e);
1359
+ onChange && onChange(e);
1360
+ };
1361
+ return (React__default["default"].createElement(Select, { id: id, name: name, className: getCssClasses(), options: monthOptions, onChange: (e) => handleOnChange(parseInt(e)), disabled: disabled, value: newValue.toString() }));
1362
+ };
1363
+
1364
+ const YearSelect = (props) => {
1365
+ const { className, from = 1970, to = new Date().getFullYear().toString(), value = new Date().getFullYear().toString(), id, name, disabled, onChange } = props;
1366
+ const [newValue, setNewValue] = React.useState(value.toString());
1367
+ const [years, setYears] = React.useState();
1368
+ React.useEffect(() => {
1369
+ const newYears = [];
1370
+ for (let i = from; i <= to; i++) {
1371
+ newYears.push({ value: i.toString(), label: i.toString() });
1372
+ }
1373
+ setYears(newYears.reverse());
1374
+ }, [from, to]);
1375
+ const getCssClasses = () => {
1376
+ const cssClasses = [];
1377
+ className && cssClasses.push(className);
1378
+ return cssClasses.filter(css => css).join(' ');
1379
+ };
1380
+ const handleOnChange = (e) => {
1381
+ setNewValue(e);
1382
+ onChange && onChange(parseInt(e));
1383
+ };
1384
+ return (React__default["default"].createElement(Select, { id: id, name: name, className: getCssClasses(), options: years, onChange: handleOnChange, disabled: disabled, value: newValue }));
1385
+ };
1386
+
1387
+ exports.DATEMODE = void 0;
1388
+ (function (DATEMODE) {
1389
+ DATEMODE[DATEMODE["YEAR"] = 0] = "YEAR";
1390
+ DATEMODE[DATEMODE["MONTH"] = 1] = "MONTH";
1391
+ DATEMODE[DATEMODE["DAY"] = 2] = "DAY";
1392
+ })(exports.DATEMODE || (exports.DATEMODE = {}));
1393
+ const DateSelect = (props) => {
1394
+ const { className, value = new Date(), disabled, yearConfig, onChange } = props;
1395
+ const getCssClasses = () => {
1396
+ const cssClasses = [];
1397
+ cssClasses.push('row');
1398
+ className && cssClasses.push(className);
1399
+ return cssClasses.filter(css => css).join(' ');
1400
+ };
1401
+ const [currDate, setCurrDate] = React.useState(value);
1402
+ const handleOnChange = (e, mode) => {
1403
+ const currYear = mode === exports.DATEMODE.YEAR ? e : currDate.getFullYear();
1404
+ const currMonth = mode === exports.DATEMODE.MONTH ? e : currDate.getMonth();
1405
+ const currday = mode === exports.DATEMODE.DAY ? e : currDate.getDate();
1406
+ const newDate = new Date(currYear, currMonth, currday);
1407
+ setCurrDate(newDate);
1408
+ onChange && onChange(newDate);
1409
+ };
1410
+ return (React__default["default"].createElement(Row, { className: getCssClasses() },
1411
+ React__default["default"].createElement(Column, null,
1412
+ React__default["default"].createElement(FormLabel, null, "Year"),
1413
+ React__default["default"].createElement(YearSelect, { value: currDate.getFullYear(), disabled: disabled, from: yearConfig === null || yearConfig === void 0 ? void 0 : yearConfig.from, to: yearConfig === null || yearConfig === void 0 ? void 0 : yearConfig.to, onChange: e => handleOnChange(e, exports.DATEMODE.YEAR) })),
1414
+ React__default["default"].createElement(Column, null,
1415
+ React__default["default"].createElement(FormLabel, null, "Month"),
1416
+ React__default["default"].createElement(MonthSelect, { value: currDate.getMonth(), disabled: disabled, onChange: e => handleOnChange(e, exports.DATEMODE.MONTH) })),
1417
+ React__default["default"].createElement(Column, null,
1418
+ React__default["default"].createElement(FormLabel, null, "Day"),
1419
+ React__default["default"].createElement(DaySelect, { day: currDate.getDate(), month: currDate.getMonth(), year: currDate.getFullYear(), disabled: disabled, onChange: e => handleOnChange(e, exports.DATEMODE.DAY) }))));
1420
+ };
1421
+ /*
1422
+ * result = { year, month, day, dayOfWeek, weekNumber }
1423
+ */
1424
+ // const getWeekNumber = () => {
1425
+ // var d = new Date(Date.UTC(this.getFullYear(), this.getMonth(), this.getDate()));
1426
+ // var dayNum = d.getUTCDay() || 7;
1427
+ // d.setUTCDate(d.getUTCDate() + 4 - dayNum);
1428
+ // var yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
1429
+ // return Math.ceil((((d - yearStart) / 86400000) + 1) / 7)
1430
+ // };
1431
+
1432
+ var css_248z$u = ".Drawer-module_drawer__kdQCk {\n height: 100%;\n z-index: 1101;\n bottom: 0;\n position: fixed;\n background: white;\n min-width: 280px;\n overflow-y: auto; }\n .Drawer-module_drawer__kdQCk.Drawer-module_permanent__c-y8y {\n position: inherit;\n z-index: 0; }\n .Drawer-module_drawer__kdQCk.Drawer-module_left__loQVO {\n order: 0; }\n .Drawer-module_drawer__kdQCk.Drawer-module_right__sJ3mZ {\n order: 2; }\n .Drawer-module_drawer__kdQCk.Drawer-module_shadow__Myo3n {\n box-shadow: var(--shadow); }\n\n.Drawer-module_drawerOpen__07ptP {\n overflow: hidden; }\n";
1433
+ var styles$u = {"drawer":"Drawer-module_drawer__kdQCk","permanent":"Drawer-module_permanent__c-y8y","left":"Drawer-module_left__loQVO","right":"Drawer-module_right__sJ3mZ","shadow":"Drawer-module_shadow__Myo3n","drawerOpen":"Drawer-module_drawerOpen__07ptP"};
1434
+ styleInject(css_248z$u);
1435
+
1436
+ const Drawer = (props) => {
1437
+ const { children, className, position = 'left', permanent = false, target = document.body, shadow = true, onClickBackdrop } = props, rest = __rest(props, ["children", "className", "position", "permanent", "target", "shadow", "onClickBackdrop"]);
1438
+ React.useEffect(() => {
1439
+ document.body.classList.add(styles$u.drawerOpen);
1440
+ return () => {
1441
+ document.body.classList.remove(styles$u.drawerOpen);
1442
+ };
1443
+ }, []);
1444
+ const handleClickBackdrop = () => {
1445
+ onClickBackdrop && onClickBackdrop();
1446
+ };
1447
+ return reactDom.createPortal(React__default["default"].createElement(React__default["default"].Fragment, null,
1448
+ React__default["default"].createElement(DrawerContent, Object.assign({ className: className, position: position, permanent: permanent, shadow: shadow }, rest), children),
1449
+ !permanent && React__default["default"].createElement(Backdrop, { onClick: handleClickBackdrop })), target);
1450
+ };
1451
+ const DrawerContent = (props) => {
1452
+ const { children, className, position = 'left', permanent = false, shadow } = props, rest = __rest(props, ["children", "className", "position", "permanent", "shadow"]);
1453
+ const getCssClasses = () => {
1454
+ const cssClasses = [];
1455
+ cssClasses.push(styles$u.drawer);
1456
+ shadow && cssClasses.push(styles$u.shadow);
1457
+ !!permanent && cssClasses.push(styles$u['permanent']);
1458
+ position === 'left' ? cssClasses.push(styles$u['left']) : cssClasses.push(styles$u['right']);
1459
+ className && cssClasses.push(className);
1460
+ return cssClasses.filter(css => css).join(' ');
1461
+ };
1462
+ const positionStyles = {
1463
+ left: { left: '0px' },
1464
+ right: { right: '0px' },
1465
+ };
1466
+ const getStyles = () => {
1467
+ return !permanent ? positionStyles[position] : undefined;
1468
+ };
1469
+ return (React__default["default"].createElement("div", Object.assign({ className: getCssClasses(), style: getStyles() }, rest), children));
1470
+ };
1471
+
1472
+ var css_248z$t = ".MenuBody-module_menuBody__u4FIQ {\n z-index: 1111;\n margin: 0;\n position: absolute;\n top: 100%;\n left: 0;\n min-width: 10rem;\n padding: 8px 0px;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border-radius: var(--borderRadius); }\n .MenuBody-module_menuBody__u4FIQ.MenuBody-module_shadow__OBp-f {\n box-shadow: var(--shadow); }\n";
1473
+ var styles$t = {"menuBody":"MenuBody-module_menuBody__u4FIQ","shadow":"MenuBody-module_shadow__OBp-f"};
1474
+ styleInject(css_248z$t);
1475
+
1476
+ const MenuBody = (props) => {
1477
+ const { parentRef, children, className, shadow = true, menuPosition = 'left', onClickBackdrop } = props;
1478
+ const menuBodyRef = React.useRef(null);
1479
+ React.useEffect(() => {
1480
+ if (menuBodyRef && parentRef.current && menuBodyRef.current) {
1481
+ core.createPopper(parentRef.current, menuBodyRef.current, {
1482
+ placement: `${menuPosition}-start`,
1483
+ modifiers: [
1484
+ {
1485
+ name: 'offset',
1486
+ options: {
1487
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1488
+ offset: ({ placement, popper }) => {
1489
+ if (placement === 'left-start') {
1490
+ return [0, -popper.width]; // y, x
1491
+ }
1492
+ if (placement === 'right-start') {
1493
+ return [0, -popper.width];
1494
+ }
1495
+ return [];
1496
+ },
1497
+ },
1498
+ },
1499
+ ]
1500
+ });
1501
+ }
1502
+ }, [menuBodyRef]);
1503
+ const getCssClasses = () => {
1504
+ const cssClasses = [];
1505
+ cssClasses.push(styles$t.menuBody);
1506
+ shadow && cssClasses.push(styles$t.shadow);
1507
+ className && cssClasses.push(className);
1508
+ return cssClasses.filter(css => css).join(' ');
1509
+ };
1510
+ const handleClickBackdrop = () => {
1511
+ onClickBackdrop && onClickBackdrop();
1512
+ };
1513
+ return (reactDom.createPortal(React__default["default"].createElement(React__default["default"].Fragment, null,
1514
+ React__default["default"].createElement("div", { ref: menuBodyRef, className: getCssClasses() }, children),
1515
+ React__default["default"].createElement(Backdrop, { isTransparent: true, onClick: handleClickBackdrop })), document.body));
1516
+ };
1517
+
1518
+ var css_248z$s = ".Menu-module_menu__p8QL- {\n display: flex; }\n";
1519
+ var styles$s = {"menu":"Menu-module_menu__p8QL-"};
1520
+ styleInject(css_248z$s);
1521
+
1522
+ const Menu = (props) => {
1523
+ const { toggle, children, className, open, menuPosition, onClickBackdrop } = props, rest = __rest(props, ["toggle", "children", "className", "open", "menuPosition", "onClickBackdrop"]);
1524
+ const menuContainer = React.useRef(null);
1525
+ const toggleContainerRef = React.useRef(null);
1526
+ const getCssClasses = () => {
1527
+ const cssClasses = [];
1528
+ cssClasses.push(styles$s.menu);
1529
+ className && cssClasses.push(className);
1530
+ return cssClasses.filter(css => css).join(' ');
1531
+ };
1532
+ const handleClickBackdrop = () => {
1533
+ onClickBackdrop && onClickBackdrop();
1534
+ };
1535
+ return (React__default["default"].createElement("div", Object.assign({ ref: menuContainer, className: getCssClasses() }, rest),
1536
+ React__default["default"].createElement("div", { ref: toggleContainerRef }, toggle),
1537
+ open &&
1538
+ React__default["default"].createElement(MenuBody, { parentRef: toggleContainerRef, menuPosition: menuPosition, onClickBackdrop: handleClickBackdrop }, children)));
1539
+ };
1540
+
1541
+ var css_248z$r = ".MenuItem-module_menuItem__MeBxN {\n display: flex;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n text-decoration: none;\n white-space: nowrap;\n background-color: transparent;\n border: 0; }\n .MenuItem-module_menuItem__MeBxN.MenuItem-module_menuItemHeader__2l732 {\n margin-bottom: 0;\n font-size: 0.875rem; }\n .MenuItem-module_menuItem__MeBxN:hover {\n cursor: pointer;\n color: #1e2125;\n background-color: rgba(0, 0, 0, 0.04); }\n";
1542
+ var styles$r = {"menuItem":"MenuItem-module_menuItem__MeBxN","menuItemHeader":"MenuItem-module_menuItemHeader__2l732"};
1543
+ styleInject(css_248z$r);
1544
+
1545
+ const MenuItem = (props) => {
1546
+ const { children, onClick, type = 'item' } = props;
1547
+ const getCssClasses = () => {
1548
+ const cssClasses = [];
1549
+ cssClasses.push(styles$r.menuItem);
1550
+ if (type === 'header') {
1551
+ cssClasses.push(styles$r.menuItemHeader);
1552
+ }
1553
+ return cssClasses.filter(css => css).join(' ');
1554
+ };
1555
+ const handleClick = (e) => {
1556
+ e.stopPropagation();
1557
+ onClick && onClick(e);
1558
+ };
1559
+ return (React__default["default"].createElement(ConditionalWrapper, { condition: true, wrapper: children => ((type === 'item' ? (React__default["default"].createElement("a", { className: getCssClasses(), onClick: handleClick }, children)) :
1560
+ React__default["default"].createElement("div", { className: getCssClasses(), onClick: handleClick }, children))) }, children));
1561
+ };
1562
+
1563
+ const MenuToggle = ({ children }) => {
1564
+ return (React__default["default"].createElement(React.Fragment, null, children));
1565
+ };
1566
+
1567
+ var css_248z$q = ".MenuDivider-module_menuItemDivider__oRP-j {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef; }\n";
1568
+ var styles$q = {"menuItemDivider":"MenuDivider-module_menuItemDivider__oRP-j"};
1569
+ styleInject(css_248z$q);
1570
+
1571
+ const MenuDivider = () => React__default["default"].createElement("div", { className: styles$q.menuItemDivider });
1572
+
1573
+ var css_248z$p = ".ExpansionPanelContent-module_expansionPanelContent__aXNfH {\n padding: 8px 16px 16px; }\n";
1574
+ var styles$p = {"expansionPanelContent":"ExpansionPanelContent-module_expansionPanelContent__aXNfH"};
1575
+ styleInject(css_248z$p);
1576
+
1577
+ const ExpansionPanelContent = ({ children }) => {
1578
+ return (React__default["default"].createElement("div", { className: styles$p.expansionPanelContent }, children));
1579
+ };
1580
+
1581
+ var css_248z$o = ".ExpansionPanelHeader-module_expansionPanelHeader__Wy6Pq {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n min-height: 48px; }\n .ExpansionPanelHeader-module_expansionPanelHeader__Wy6Pq:hover {\n cursor: pointer;\n background-color: var(--highlight); }\n";
1582
+ var styles$o = {"expansionPanelHeader":"ExpansionPanelHeader-module_expansionPanelHeader__Wy6Pq"};
1583
+ styleInject(css_248z$o);
1584
+
1585
+ const ExpansionPanelHeader = (props) => {
1586
+ const { children, isExpanded, onClick } = props;
1587
+ const handleClick = (e) => {
1588
+ e.stopPropagation();
1589
+ onClick && onClick(e);
1590
+ };
1591
+ return (React__default["default"].createElement("div", { className: styles$o.expansionPanelHeader, onClick: handleClick },
1592
+ children,
1593
+ React__default["default"].createElement("span", { className: "ml-auto text-muted" },
1594
+ React__default["default"].createElement(Icon, null, isExpanded ? React__default["default"].createElement(ChevronUpSolidIcon, null) : React__default["default"].createElement(ChevronDownSolidIcon, null)))));
1595
+ };
1596
+
1597
+ var css_248z$n = ".ExpansionPanel-module_expansionPanel__m1yQq {\n background-color: var(--white);\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n .ExpansionPanel-module_expansionPanel__m1yQq:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px; }\n .ExpansionPanel-module_expansionPanel__m1yQq:last-child {\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px; }\n .ExpansionPanel-module_expansionPanel__m1yQq.ExpansionPanel-module_isExpanded__TS1ph {\n margin: 16px 0; }\n .ExpansionPanel-module_expansionPanel__m1yQq.ExpansionPanel-module_isExpanded__TS1ph:first-child {\n margin-top: 0; }\n .ExpansionPanel-module_expansionPanel__m1yQq.ExpansionPanel-module_isExpanded__TS1ph:last-child {\n margin-bottom: 0; }\n";
1598
+ var styles$n = {"expansionPanel":"ExpansionPanel-module_expansionPanel__m1yQq","isExpanded":"ExpansionPanel-module_isExpanded__TS1ph"};
1599
+ styleInject(css_248z$n);
1600
+
1601
+ const ExpansionPanel = (props) => {
1602
+ const { header, children, isExpanded = false, onChange } = props;
1603
+ const [_isExpanded, setIsExpanded] = React.useState(false);
1604
+ React.useEffect(() => {
1605
+ setIsExpanded(isExpanded);
1606
+ }, [isExpanded]);
1607
+ const getCssClasses = () => {
1608
+ const cssClasses = [];
1609
+ cssClasses.push(styles$n.expansionPanel);
1610
+ if (_isExpanded) {
1611
+ cssClasses.push(styles$n.isExpanded);
1612
+ }
1613
+ return cssClasses.filter(css => css).join(' ');
1614
+ };
1615
+ const handleClickHeader = (event) => {
1616
+ setIsExpanded(!_isExpanded);
1617
+ onChange && onChange(event, !_isExpanded);
1618
+ };
1619
+ return (React__default["default"].createElement("div", { className: getCssClasses() },
1620
+ React__default["default"].createElement(ExpansionPanelHeader, { isExpanded: _isExpanded, onClick: handleClickHeader }, header),
1621
+ _isExpanded &&
1622
+ React__default["default"].createElement(ExpansionPanelContent, null, children)));
1623
+ };
1624
+
1625
+ var css_248z$m = ".FloatingActionButton-module_fab__Rw3kd {\n box-shadow: var(--shadow); }\n .FloatingActionButton-module_fab__Rw3kd.FloatingActionButton-module_fixed__XQOkG {\n position: fixed;\n bottom: 16px;\n right: 16px;\n z-index: 1000; }\n";
1626
+ var styles$m = {"fab":"FloatingActionButton-module_fab__Rw3kd","fixed":"FloatingActionButton-module_fixed__XQOkG"};
1627
+ styleInject(css_248z$m);
1628
+
1629
+ const FloatingActionButton = (props) => {
1630
+ const { className, icon, color = exports.COLOR.primary, fixed, size = exports.SIZE.lg, isActive, disabled, onClick } = props;
1631
+ const getCssClasses = () => {
1632
+ const cssClasses = [];
1633
+ cssClasses.push(styles$m.fab);
1634
+ fixed && cssClasses.push(styles$m['fixed']);
1635
+ className && cssClasses.push(className);
1636
+ return cssClasses.filter(css => css).join(' ');
1637
+ };
1638
+ const handleClick = (e) => {
1639
+ e.stopPropagation();
1640
+ onClick && onClick(e);
1641
+ };
1642
+ return (React__default["default"].createElement(IconButton, { className: getCssClasses(), color: color, size: size, isActive: isActive, disabled: disabled, icon: icon, variant: exports.VARIANT.contained, onClick: handleClick }));
1643
+ };
1644
+
1645
+ var css_248z$l = ".Link-module_link__YlJQl {\n color: var(--primary);\n text-decoration: underline; }\n .Link-module_link__YlJQl:hover {\n color: var(--primary-dark); }\n";
1646
+ var styles$l = {"link":"Link-module_link__YlJQl"};
1647
+ styleInject(css_248z$l);
1648
+
1649
+ const Link = (props) => {
1650
+ const { href = '#', className, target, children } = props, rest = __rest(props, ["href", "className", "target", "children"]);
1651
+ const [status, setStatus] = React.useState(STATUS.NORMAL);
1652
+ const getCssClasses = () => {
1653
+ const cssClasses = [];
1654
+ cssClasses.push(styles$l.link);
1655
+ className && cssClasses.push(className);
1656
+ status !== STATUS.NORMAL && cssClasses.push(status);
1657
+ return cssClasses.filter(css => css).join(' ');
1658
+ };
1659
+ const onMouseEnter = () => {
1660
+ setStatus(STATUS.HOVERED);
1661
+ };
1662
+ const onMouseLeave = () => {
1663
+ setStatus(STATUS.NORMAL);
1664
+ };
1665
+ return (React__default["default"].createElement("a", Object.assign({ className: getCssClasses(), href: href, target: target, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave }, rest), children));
1666
+ };
1667
+
1668
+ var css_248z$k = ".LoadingIndicator-module_loadingIndicatorContainer__GS9OG {\n position: fixed;\n top: 0;\n left: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 100%; }\n\n.LoadingIndicator-module_loadingIndicator__EC9sx {\n animation-name: LoadingIndicator-module_spinAnimation__LeY4Z;\n animation-duration: 5000ms;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n width: 24px;\n height: 24px; }\n\n@keyframes LoadingIndicator-module_spinAnimation__LeY4Z {\n from {\n transform: rotate(0deg); }\n to {\n transform: rotate(360deg); } }\n";
1669
+ var styles$k = {"loadingIndicatorContainer":"LoadingIndicator-module_loadingIndicatorContainer__GS9OG","loadingIndicator":"LoadingIndicator-module_loadingIndicator__EC9sx","spinAnimation":"LoadingIndicator-module_spinAnimation__LeY4Z"};
1670
+ styleInject(css_248z$k);
1671
+
1672
+ const LoadingIndicator = (_a) => {
1673
+ var rest = __rest(_a, []);
1674
+ const getCssClasses = () => {
1675
+ const cssClasses = [];
1676
+ cssClasses.push(styles$k.loadingIndicator);
1677
+ return cssClasses.filter(css => css).join(' ');
1678
+ };
1679
+ return (React__default["default"].createElement("div", Object.assign({ className: getCssClasses() }, rest),
1680
+ React__default["default"].createElement(SpinnerSolidIcon, null)));
1681
+ };
1682
+
1683
+ const LoadingIndicatorContainer = ({ children }) => {
1684
+ const getCssClasses = () => {
1685
+ const cssClasses = [];
1686
+ cssClasses.push(styles$k.loadingIndicatorContainer);
1687
+ return cssClasses.filter(css => css).join(' ');
1688
+ };
1689
+ return (React__default["default"].createElement("div", { className: getCssClasses() }, children));
1690
+ };
1691
+
1692
+ class LoadingIndicatorService {
1693
+ show() {
1694
+ if (this.container) {
1695
+ this.hide();
1696
+ }
1697
+ this.container = document.createElement('div');
1698
+ this.container.classList.add('snackbar-container');
1699
+ document.body.appendChild(this.container);
1700
+ reactDom.render(React__default["default"].createElement(LoadingIndicatorContainer, null,
1701
+ React__default["default"].createElement(LoadingIndicator, null)), this.container);
1702
+ }
1703
+ hide() {
1704
+ if (this.container) {
1705
+ reactDom.unmountComponentAtNode(this.container);
1706
+ document.body.removeChild(this.container);
1707
+ this.container = undefined;
1708
+ this.handler && clearTimeout(this.handler);
1709
+ }
1710
+ }
1711
+ }
1712
+ const loadingIndicatorService = new LoadingIndicatorService();
1713
+
1714
+ var css_248z$j = ".ModalHeader-module_modalHeader__tw-u- {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n border-bottom: none;\n align-items: center; }\n\n.ModalHeader-module_modalTitle__2xShH {\n margin-bottom: 0;\n line-height: 1.5; }\n";
1715
+ var styles$j = {"modalHeader":"ModalHeader-module_modalHeader__tw-u-","modalTitle":"ModalHeader-module_modalTitle__2xShH"};
1716
+ styleInject(css_248z$j);
1717
+
1718
+ const ModalHeader = (props) => {
1719
+ const { children, isDismissable = false, onClose } = props, rest = __rest(props, ["children", "isDismissable", "onClose"]);
1720
+ const handleClick = () => {
1721
+ onClose && onClose();
1722
+ };
1723
+ return (React__default["default"].createElement("div", Object.assign({ className: styles$j.modalHeader }, rest),
1724
+ React__default["default"].createElement("h5", { className: styles$j.modalTitle }, children),
1725
+ isDismissable &&
1726
+ React__default["default"].createElement(IconButton, { icon: React__default["default"].createElement(TimesSolidIcon, null), variant: exports.VARIANT.text, onClick: handleClick })));
1727
+ };
1728
+
1729
+ var css_248z$i = ".ModalBody-module_modalBody__D-gk2 {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem; }\n";
1730
+ var styles$i = {"modalBody":"ModalBody-module_modalBody__D-gk2"};
1731
+ styleInject(css_248z$i);
1732
+
1733
+ const ModalBody = ({ children }) => (React__default["default"].createElement("div", { className: styles$i.modalBody }, children));
1734
+
1735
+ var css_248z$h = ".ModalFooter-module_modalFooter__SNm-f {\n display: flex;\n flex-wrap: wrap;\n flex-shrink: 0;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px); }\n .ModalFooter-module_modalFooter__SNm-f > * {\n margin: 0.25rem; }\n";
1736
+ var styles$h = {"modalFooter":"ModalFooter-module_modalFooter__SNm-f"};
1737
+ styleInject(css_248z$h);
1738
+
1739
+ const ModalFooter = ({ children }) => (React__default["default"].createElement("div", { className: styles$h.modalFooter }, children));
1740
+
1741
+ var css_248z$g = ".Modal-module_modal__HMxWV {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n overflow-x: hidden;\n overflow-y: auto;\n outline: 0;\n z-index: 1111 !important;\n border-radius: var(--borderRadius); }\n .Modal-module_modal__HMxWV .Modal-module_sm__CsR6U {\n max-width: 300px; }\n .Modal-module_modal__HMxWV .Modal-module_md__lNggx {\n max-width: 500px; }\n .Modal-module_modal__HMxWV .Modal-module_lg__6dtT2 {\n max-width: 1140px; }\n @media (min-width: 576px) {\n .Modal-module_modal__HMxWV .Modal-module_modal-dialog__U2wGf {\n max-width: 600px; } }\n\n.Modal-module_modalDialog__fNqyK {\n position: relative;\n width: auto;\n pointer-events: none; }\n @media (min-width: 576px) {\n .Modal-module_modalDialog__fNqyK {\n max-width: 500px;\n margin: 1.75rem auto; } }\n\n.Modal-module_modalDialogCentered__sa2wv {\n min-height: calc(100% - 3.5rem);\n display: flex;\n align-items: center; }\n\n.Modal-module_modalContent__9wAwB {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n box-shadow: 0 0.125rem 0.25rem black;\n outline: 0; }\n\n.Modal-module_fullscreen__iepGa {\n width: 100% !important;\n height: 100% !important;\n max-height: 100% !important;\n margin: 0;\n padding: 0; }\n .Modal-module_fullscreen__iepGa .Modal-module_modalContent__9wAwB {\n height: auto;\n min-height: 100%;\n max-height: 100%;\n border-radius: 0;\n overflow: auto; }\n @media (min-width: 320px) {\n .Modal-module_fullscreen__iepGa {\n max-width: 100% !important; } }\n";
1742
+ var styles$g = {"modal":"Modal-module_modal__HMxWV","sm":"Modal-module_sm__CsR6U","md":"Modal-module_md__lNggx","lg":"Modal-module_lg__6dtT2","modal-dialog":"Modal-module_modal-dialog__U2wGf","modalDialog":"Modal-module_modalDialog__fNqyK","modalDialogCentered":"Modal-module_modalDialogCentered__sa2wv","modalContent":"Modal-module_modalContent__9wAwB","fullscreen":"Modal-module_fullscreen__iepGa"};
1743
+ styleInject(css_248z$g);
1744
+
1745
+ const Modal = (props) => {
1746
+ const { className, size, fullScreen, children, header, footer, onHeaderCloseClick, onBackdropClick, isDismissable = false } = props;
1747
+ const getCssClass = () => {
1748
+ const cssClasses = [];
1749
+ cssClasses.push(styles$g.modalDialog);
1750
+ cssClasses.push(styles$g.modalDialogCentered);
1751
+ fullScreen && cssClasses.push(styles$g.fullscreen);
1752
+ size && cssClasses.push(styles$g[size]);
1753
+ className && cssClasses.push(className);
1754
+ return cssClasses.filter(r => r).join(' ');
1755
+ };
1756
+ React.useEffect(() => {
1757
+ document.body.classList.add('modal-open');
1758
+ return () => {
1759
+ document.body.classList.remove('modal-open');
1760
+ };
1761
+ }, []);
1762
+ const handleClickBackdrop = () => {
1763
+ onBackdropClick && onBackdropClick();
1764
+ };
1765
+ return (React__default["default"].createElement(React__default["default"].Fragment, null,
1766
+ React__default["default"].createElement("div", { className: styles$g.modal },
1767
+ React__default["default"].createElement("div", { className: getCssClass() },
1768
+ React__default["default"].createElement("div", { className: styles$g.modalContent },
1769
+ header &&
1770
+ React__default["default"].createElement(ModalHeader, { isDismissable: isDismissable, onClose: () => onHeaderCloseClick && onHeaderCloseClick() }, header),
1771
+ React__default["default"].createElement(ModalBody, null, children),
1772
+ footer &&
1773
+ React__default["default"].createElement(ModalFooter, null, footer)))),
1774
+ React__default["default"].createElement(Backdrop, { onClick: handleClickBackdrop })));
1775
+ };
1776
+
1777
+ // export enum MODALRESULT { OK = 'OK', CANCEL = 'CANCEL', DELETE = 'DELETE' }
1778
+ exports.MODALTYPE = void 0;
1779
+ (function (MODALTYPE) {
1780
+ MODALTYPE["BASIC"] = "BASIC";
1781
+ MODALTYPE["FORM"] = "FORM";
1782
+ })(exports.MODALTYPE || (exports.MODALTYPE = {}));
1783
+ exports.MODALBUTTONTYPE = void 0;
1784
+ (function (MODALBUTTONTYPE) {
1785
+ MODALBUTTONTYPE["OK"] = "OK";
1786
+ MODALBUTTONTYPE["CANCEL"] = "CANCEL";
1787
+ MODALBUTTONTYPE["RESET"] = "RESET";
1788
+ MODALBUTTONTYPE["DEFAULT"] = "DEFAULT";
1789
+ })(exports.MODALBUTTONTYPE || (exports.MODALBUTTONTYPE = {}));
1790
+
1791
+ const GlobalModal = ({ title, description, formControls, onOk, onCancel, isDismissable = false, buttons = [
1792
+ { label: 'Cancel', type: exports.MODALBUTTONTYPE.CANCEL, color: exports.COLOR.secondary, variant: exports.VARIANT.text, shadow: false },
1793
+ { label: 'Ok', type: exports.MODALBUTTONTYPE.OK, variant: exports.VARIANT.contained, focus: true },
1794
+ ], size = exports.SIZE.md, fullScreen = false }) => {
1795
+ // workaround for getDerivedStateFromProps
1796
+ const [myControls, setMyControls] = React.useState(null);
1797
+ React.useEffect(() => {
1798
+ setMyControls(Object.assign({}, formControls));
1799
+ }, []);
1800
+ // end
1801
+ const modalType = formControls ? exports.MODALTYPE.FORM : exports.MODALTYPE.BASIC;
1802
+ const myForm = React.useRef(null);
1803
+ const handleOk = () => {
1804
+ var _a;
1805
+ if (modalType === exports.MODALTYPE.FORM) {
1806
+ (_a = myForm === null || myForm === void 0 ? void 0 : myForm.current) === null || _a === void 0 ? void 0 : _a.handleFormSubmit();
1807
+ }
1808
+ else {
1809
+ onOk && onOk();
1810
+ }
1811
+ };
1812
+ const handleCancel = () => {
1813
+ onCancel && onCancel();
1814
+ };
1815
+ const onSubmit = (values) => {
1816
+ onOk && onOk(values);
1817
+ };
1818
+ const handleClickButton = (button) => {
1819
+ switch (button.type) {
1820
+ case exports.MODALBUTTONTYPE.OK:
1821
+ handleOk();
1822
+ break;
1823
+ case exports.MODALBUTTONTYPE.CANCEL:
1824
+ handleCancel();
1825
+ break;
1826
+ default:
1827
+ handleCancel();
1828
+ break;
1829
+ }
1830
+ button.handler && button.handler();
1831
+ };
1832
+ return (React__default["default"].createElement(Modal, { size: size, fullScreen: fullScreen, header: title, onHeaderCloseClick: onCancel, isDismissable: isDismissable, footer: React__default["default"].createElement(React.Fragment, null, buttons.map((button, index) => (React__default["default"].createElement(Button, { key: index, variant: button.variant, color: button.color, autoFocus: button.autoFocus, shadow: button.shadow, onClick: () => handleClickButton(button) }, button.label)))) },
1833
+ description && React__default["default"].createElement("div", null, description),
1834
+ modalType === exports.MODALTYPE.FORM &&
1835
+ React__default["default"].createElement(React.Fragment, null,
1836
+ React__default["default"].createElement(Form, { ref: myForm, controls: myControls, validateOnBlur: true, onSubmit: onSubmit }))));
1837
+ };
1838
+
1839
+ class ModalService {
1840
+ show(title, description, options) {
1841
+ return new Promise((resolve, reject) => {
1842
+ if (!this.container) {
1843
+ this.container = document.createElement('div');
1844
+ document.body.appendChild(this.container);
1845
+ const handleOk = (values) => {
1846
+ resolve(values);
1847
+ this.hide();
1848
+ };
1849
+ const handleCancel = () => {
1850
+ reject();
1851
+ this.hide();
1852
+ };
1853
+ reactDom.render(React__default["default"].createElement(GlobalModal, { fullScreen: options && options.fullScreen, size: options && options.size, title: title, description: description, formControls: options && options.formControls, onCancel: handleCancel, onOk: handleOk, isDismissable: options && options.isDismissable, buttons: options && options.buttons }), this.container);
1854
+ }
1855
+ });
1856
+ }
1857
+ hide() {
1858
+ if (this.container) {
1859
+ reactDom.unmountComponentAtNode(this.container);
1860
+ document.body.removeChild(this.container);
1861
+ this.container = undefined;
1862
+ }
1863
+ }
1864
+ }
1865
+ const modalService = new ModalService();
1866
+
1867
+ const NumberSelect = (props) => {
1868
+ const { className, value = 0, from = 0, to = 100, id, name, disabled = false, onChange } = props;
1869
+ const [newValue, setNewValue] = React.useState(0);
1870
+ const [numberOptions, setNumberOptions] = React.useState();
1871
+ React.useEffect(() => {
1872
+ setNewValue(value);
1873
+ }, [value]);
1874
+ React.useEffect(() => {
1875
+ const options = [];
1876
+ for (let i = from; i <= to; i++) {
1877
+ options.push({ value: i.toString(), label: i.toString() });
1878
+ }
1879
+ setNumberOptions(options);
1880
+ }, [from, to]);
1881
+ const getCssClasses = () => {
1882
+ const cssClasses = [];
1883
+ className && cssClasses.push(className);
1884
+ return cssClasses.filter(css => css).join(' ');
1885
+ };
1886
+ const handleOnChange = (e) => {
1887
+ setNewValue(e);
1888
+ onChange && onChange(e);
1889
+ };
1890
+ return (React__default["default"].createElement(Select, { id: id, name: name, className: getCssClasses(), options: numberOptions, onChange: (e) => handleOnChange(parseInt(e)), disabled: disabled, value: newValue.toString() }));
1891
+ };
1892
+
1893
+ class SidebarItemModel {
1894
+ constructor(id, label, path, icon, isActive, items, isCollapsible = false, isCollapsed = false) {
1895
+ this.id = id;
1896
+ this.label = label;
1897
+ this.path = path;
1898
+ this.icon = icon;
1899
+ this.isActive = isActive;
1900
+ this.items = items;
1901
+ this.isCollapsible = isCollapsible;
1902
+ this.isCollapsed = isCollapsed;
1903
+ }
1904
+ }
1905
+
1906
+ const Sidebar = (props) => {
1907
+ const { className, items, currentUrl, onItemClicked } = props, rest = __rest(props, ["className", "items", "currentUrl", "onItemClicked"]);
1908
+ const [menuItems, setMenuItems] = React.useState([]);
1909
+ React.useEffect(() => {
1910
+ if (items && items.length > 0) {
1911
+ initMenuItems();
1912
+ }
1913
+ }, []);
1914
+ const getCssClasses = () => {
1915
+ const cssClasses = [];
1916
+ className && cssClasses.push(className);
1917
+ return cssClasses.filter(css => css).join(' ');
1918
+ };
1919
+ const initMenuItems = () => {
1920
+ const newItems = items.map(item => new SidebarItemModel(item.id, item.label, item.path, item.icon, isMenuItemActive(item.path), item.items && item.items.map(subItem => new SidebarItemModel(subItem.id, subItem.label, subItem.path, subItem.icon, isMenuItemActive(`${item.path}/${subItem.path}`))), item.isCollapsible, item.isCollapsed));
1921
+ setMenuItems(newItems);
1922
+ };
1923
+ const isMenuItemActive = (path) => {
1924
+ const lastSegment = currentUrl.substring(currentUrl.lastIndexOf('/') + 1, currentUrl.length);
1925
+ let result = false;
1926
+ if (currentUrl === '/' && path === '') {
1927
+ result = true;
1928
+ }
1929
+ else if (path !== '') {
1930
+ result = lastSegment ? lastSegment.toLowerCase() === path.toLowerCase() : false;
1931
+ }
1932
+ return result;
1933
+ };
1934
+ const navigate = (e, path) => {
1935
+ e.stopPropagation();
1936
+ e.preventDefault();
1937
+ onItemClicked(path);
1938
+ };
1939
+ const handleClickItem = (item, e) => {
1940
+ if (item.items && item.items.length > 0 && item.isCollapsible) {
1941
+ const newMenuItems = menuItems.map((menuItem) => {
1942
+ if (item.id === menuItem.id) {
1943
+ menuItem.isCollapsed = !item.isCollapsed;
1944
+ }
1945
+ return menuItem;
1946
+ });
1947
+ setMenuItems(newMenuItems);
1948
+ }
1949
+ else {
1950
+ navigate(e, `/${item.path}`);
1951
+ }
1952
+ };
1953
+ const handleClickSubItem = (itemPath, subItemPath, e) => {
1954
+ navigate(e, `/${itemPath}/${subItemPath}`);
1955
+ };
1956
+ return (React__default["default"].createElement("nav", Object.assign({ className: getCssClasses() }, rest),
1957
+ React__default["default"].createElement(List, null, menuItems.map(item => (React__default["default"].createElement(React__default["default"].Fragment, { key: item.id },
1958
+ React__default["default"].createElement(ListItem, { active: isMenuItemActive(item.path), onClick: (e) => handleClickItem(item, e) },
1959
+ React__default["default"].createElement(ListItemText, { primary: React__default["default"].createElement(React__default["default"].Fragment, null,
1960
+ item.label,
1961
+ item.items && item.items.length > 0 && (React__default["default"].createElement("small", { className: "ml-2" },
1962
+ "(",
1963
+ item.items.length,
1964
+ ")"))) }),
1965
+ item.items && item.items.length > 0 &&
1966
+ React__default["default"].createElement(ListItemAction, null, item.isCollapsed ? React__default["default"].createElement(ChevronDownSolidIcon, null) : React__default["default"].createElement(ChevronUpSolidIcon, null))),
1967
+ !item.isCollapsed && item.items && item.items.length > 0 && (React__default["default"].createElement(List, { className: "list-level-1", key: `${item.id}-sub` }, item.items.map(subItem => (React__default["default"].createElement(ListItem, { className: "list-item-level-1", active: isMenuItemActive(subItem.path), key: subItem.id, onClick: (e) => handleClickSubItem(item.path, subItem.path, e) }, subItem.label)))))))))));
1968
+ };
1969
+
1970
+ var css_248z$f = ".Snackbar-module_snackbar__O5T2b {\n display: flex;\n align-items: center;\n min-width: 288px;\n padding: 6px 16px;\n transform-origin: center;\n min-height: 52px;\n animation: Snackbar-module_bounceIn__E47iD 0.4s ease;\n z-index: 1001;\n position: fixed;\n left: 50%;\n transform: translateX(-50%);\n bottom: 2%;\n border-radius: var(--borderRadius); }\n .Snackbar-module_snackbar__O5T2b.Snackbar-module_primary__ZBOTN {\n color: var(--primary-contrast-text);\n background-color: var(--primary); }\n .Snackbar-module_snackbar__O5T2b.Snackbar-module_accent__0MnFy {\n color: var(--accent-contrast-text);\n background-color: var(--accent); }\n .Snackbar-module_snackbar__O5T2b.Snackbar-module_secondary__s8-ez {\n color: var(--secondary-contrast-text);\n background-color: var(--secondary); }\n .Snackbar-module_snackbar__O5T2b.Snackbar-module_light__Vrd7o {\n color: var(--light-contrast-text);\n background-color: var(--light); }\n .Snackbar-module_snackbar__O5T2b.Snackbar-module_dark__U-5io {\n color: var(--dark-contrast-text);\n background-color: var(--dark); }\n\n.Snackbar-module_text__G5r5D {\n width: 100%;\n padding: 8px 0; }\n\n.Snackbar-module_action__vus2Y {\n margin-left: auto; }\n .Snackbar-module_action__vus2Y:hover {\n cursor: pointer; }\n\n@keyframes Snackbar-module_bounceIn__E47iD {\n 0% {\n opacity: 0; }\n 50% {\n opacity: 0.9; }\n 80% {\n opacity: 1; }\n 100% {\n opacity: 1; } }\n";
1971
+ var styles$f = {"snackbar":"Snackbar-module_snackbar__O5T2b","bounceIn":"Snackbar-module_bounceIn__E47iD","primary":"Snackbar-module_primary__ZBOTN","accent":"Snackbar-module_accent__0MnFy","secondary":"Snackbar-module_secondary__s8-ez","light":"Snackbar-module_light__Vrd7o","dark":"Snackbar-module_dark__U-5io","text":"Snackbar-module_text__G5r5D","action":"Snackbar-module_action__vus2Y"};
1972
+ styleInject(css_248z$f);
1973
+
1974
+ const Snackbar = (props) => {
1975
+ const { children, color = exports.COLOR.dark, actionText = 'ok', onOk } = props, rest = __rest(props, ["children", "color", "actionText", "onOk"]);
1976
+ const getCssClasses = () => {
1977
+ const cssClasses = [];
1978
+ cssClasses.push(styles$f.snackbar);
1979
+ cssClasses.push(`shadow-lg`);
1980
+ cssClasses.push(styles$f[color]);
1981
+ return cssClasses.filter(css => css).join(' ');
1982
+ };
1983
+ const handleClickAction = (e) => {
1984
+ onOk && onOk(e);
1985
+ };
1986
+ return (React__default["default"].createElement("div", Object.assign({ className: getCssClasses() }, rest),
1987
+ React__default["default"].createElement("div", { className: styles$f.text }, children),
1988
+ React__default["default"].createElement("div", { className: styles$f.action + " text-accent", onClick: handleClickAction },
1989
+ React__default["default"].createElement("span", null, actionText))));
1990
+ };
1991
+
1992
+ class SnackbarService {
1993
+ show(message, options) {
1994
+ const defaultOptions = { timeout: 3000, actionText: 'ok', color: exports.COLOR.dark, target: document.body };
1995
+ const mergedOptions = Object.assign(defaultOptions, options);
1996
+ return new Promise((resolve) => {
1997
+ if (this.container) {
1998
+ this.hide();
1999
+ }
2000
+ this.container = document.createElement('div');
2001
+ this.container.classList.add('snackbar-container');
2002
+ mergedOptions.target.appendChild(this.container);
2003
+ if (mergedOptions.timeout && mergedOptions.timeout > 0) {
2004
+ this.handler = setTimeout(() => {
2005
+ this.hide();
2006
+ }, mergedOptions.timeout);
2007
+ }
2008
+ const handleOk = () => {
2009
+ resolve();
2010
+ this.hide();
2011
+ };
2012
+ reactDom.render(React__default["default"].createElement(Snackbar, { color: mergedOptions.color, actionText: mergedOptions.actionText, onOk: handleOk }, message), this.container);
2013
+ });
2014
+ }
2015
+ hide() {
2016
+ if (this.container) {
2017
+ reactDom.unmountComponentAtNode(this.container);
2018
+ document.body.removeChild(this.container);
2019
+ this.container = undefined;
2020
+ this.handler && clearTimeout(this.handler);
2021
+ }
2022
+ }
2023
+ }
2024
+ const snackbarService = new SnackbarService();
2025
+
2026
+ var css_248z$e = ".SpeedDialActions-module_speedDialActions__cY2i3 {\n margin-bottom: -32px;\n flex-direction: column-reverse;\n padding-bottom: 48px;\n display: flex;\n pointer-events: auto; }\n";
2027
+ var styles$e = {"speedDialActions":"SpeedDialActions-module_speedDialActions__cY2i3"};
2028
+ styleInject(css_248z$e);
2029
+
2030
+ const SpeedDialActions = (props) => {
2031
+ const { children } = props;
2032
+ const getCssClasses = () => {
2033
+ const cssClasses = [];
2034
+ cssClasses.push(styles$e.speedDialActions);
2035
+ return cssClasses.filter(css => css).join(' ');
2036
+ };
2037
+ return (React__default["default"].createElement("div", { className: getCssClasses() }, children));
2038
+ };
2039
+
2040
+ var css_248z$d = ".SpeedDial-module_speedDial__W3VN2 {\n position: absolute;\n flex-direction: column-reverse;\n display: flex;\n z-index: 1050;\n align-items: center;\n right: 16px;\n bottom: 16px;\n transition: transform 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; }\n";
2041
+ var styles$d = {"speedDial":"SpeedDial-module_speedDial__W3VN2"};
2042
+ styleInject(css_248z$d);
2043
+
2044
+ const SpeedDial = (props) => {
2045
+ const { children, className, open, onOpen, onClose } = props, rest = __rest(props, ["children", "className", "open", "onOpen", "onClose"]);
2046
+ const getCssClasses = () => {
2047
+ const cssClasses = [];
2048
+ cssClasses.push(styles$d.speedDial);
2049
+ className && cssClasses.push(className);
2050
+ return cssClasses.filter(css => css).join(' ');
2051
+ };
2052
+ const handleClick = (e) => {
2053
+ if (open)
2054
+ onClose && onClose(e);
2055
+ else
2056
+ onOpen && onOpen(e);
2057
+ };
2058
+ return (React__default["default"].createElement("div", Object.assign({ className: getCssClasses() }, rest),
2059
+ React__default["default"].createElement("div", { style: { 'transform': open ? 'rotate(45deg)' : undefined } },
2060
+ React__default["default"].createElement(FloatingActionButton, { icon: React__default["default"].createElement(PlusSolidIcon, null), onClick: handleClick })),
2061
+ open &&
2062
+ React__default["default"].createElement(SpeedDialActions, null, children)));
2063
+ };
2064
+
2065
+ var css_248z$c = ".SpeedDialAction-module_speedDialAction__kJLpz + .SpeedDialAction-module_speedDialAction__kJLpz {\n margin-bottom: 10px; }\n";
2066
+ var styles$c = {"speedDialAction":"SpeedDialAction-module_speedDialAction__kJLpz"};
2067
+ styleInject(css_248z$c);
2068
+
2069
+ const SpeedDialAction = (props) => {
2070
+ const { icon, color = exports.COLOR.light, onClick, className } = props;
2071
+ const getCssClasses = () => {
2072
+ const cssClasses = [];
2073
+ cssClasses.push(styles$c.speedDialAction);
2074
+ className && cssClasses.push(className);
2075
+ return cssClasses.filter(css => css).join(' ');
2076
+ };
2077
+ return (React__default["default"].createElement(IconButton, { className: getCssClasses(), icon: icon, color: color, variant: exports.VARIANT.contained, shadow: true, onClick: onClick }));
2078
+ };
2079
+
2080
+ const SpeedDialIcon = (props) => {
2081
+ const { children, className } = props, rest = __rest(props, ["children", "className"]);
2082
+ const getCssClasses = () => {
2083
+ const cssClasses = [];
2084
+ className && cssClasses.push(className);
2085
+ return cssClasses.filter(css => css).join(' ');
2086
+ };
2087
+ return (React__default["default"].createElement(Icon, Object.assign({ className: getCssClasses() }, rest), children));
2088
+ };
2089
+
2090
+ var css_248z$b = ".StepperActions-module_stepperActions__hBUkh {\n display: flex; }\n";
2091
+ var styles$b = {"stepperActions":"StepperActions-module_stepperActions__hBUkh"};
2092
+ styleInject(css_248z$b);
2093
+
2094
+ const StepperActions = (props) => {
2095
+ const { className, isCompleted, isFirstStep, isStepOptional, onBack, onSkip, onNext, onReset } = props;
2096
+ const getCssClasses = () => {
2097
+ const cssClasses = [];
2098
+ cssClasses.push(styles$b.stepperActions);
2099
+ className && cssClasses.push(className);
2100
+ return cssClasses.filter(css => css).join(' ');
2101
+ };
2102
+ return (React__default["default"].createElement("div", { className: getCssClasses() },
2103
+ React__default["default"].createElement(Button, { className: "mr-2", variant: exports.VARIANT.outline, disabled: isFirstStep, startIcon: !isFirstStep ? React__default["default"].createElement(ChevronLeftSolidIcon, null) : undefined, onClick: () => onBack && onBack() }, "Back"),
2104
+ React__default["default"].createElement("div", { className: "ml-auto" },
2105
+ isCompleted && (React__default["default"].createElement(Button, { className: "mr-2", color: exports.COLOR.secondary, variant: exports.VARIANT.text, onClick: () => onReset && onReset() }, "Reset")),
2106
+ isStepOptional && (React__default["default"].createElement(Button, { className: "mr-2", variant: exports.VARIANT.contained, color: exports.COLOR.primary, onClick: () => onSkip && onSkip() }, "Skip")),
2107
+ React__default["default"].createElement(Button, { variant: exports.VARIANT.contained, color: exports.COLOR.primary, startIcon: isCompleted ? React__default["default"].createElement(CheckSolidIcon, null) : undefined, endIcon: !isCompleted ? React__default["default"].createElement(ChevronRightSolidIcon, null) : undefined, onClick: () => onNext && onNext() }, isCompleted ? 'Done' : 'Next'))));
2108
+ };
2109
+
2110
+ const StepPanel = (props) => {
2111
+ const { children } = props;
2112
+ return (React__default["default"].createElement("div", { className: "steppanel" }, children));
2113
+ };
2114
+
2115
+ var css_248z$a = ".StepConnector-module_stepConnector__A7A-7 {\n flex: 1 1 auto;\n flex-shrink: 0;\n min-width: 20px; }\n\n.StepConnector-module_stepConnectorLine__8rQxv {\n display: block;\n border-color: var(--secondary);\n transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; }\n .StepConnector-module_stepConnectorLine__8rQxv.StepConnector-module_isActive__TUIKV {\n border-color: var(--primary); }\n\n.StepConnector-module_stepConnectorLineHorizontal__i09K0 {\n border-top-style: solid;\n border-top-width: 1px; }\n";
2116
+ var styles$a = {"stepConnector":"StepConnector-module_stepConnector__A7A-7","stepConnectorLine":"StepConnector-module_stepConnectorLine__8rQxv","isActive":"StepConnector-module_isActive__TUIKV","stepConnectorLineHorizontal":"StepConnector-module_stepConnectorLineHorizontal__i09K0"};
2117
+ styleInject(css_248z$a);
2118
+
2119
+ const StepConnector = (props) => {
2120
+ const { isActive, isHorizontal = true } = props;
2121
+ const getCssClassesConnector = () => {
2122
+ const cssClasses = [];
2123
+ cssClasses.push(styles$a.stepConnector);
2124
+ return cssClasses.filter(css => css).join(' ');
2125
+ };
2126
+ const getCssClassesLine = () => {
2127
+ const cssClasses = [];
2128
+ cssClasses.push(styles$a.stepConnectorLine);
2129
+ isActive && cssClasses.push(styles$a['isActive']);
2130
+ isHorizontal && cssClasses.push(styles$a.stepConnectorLineHorizontal);
2131
+ return cssClasses.filter(css => css).join(' ');
2132
+ };
2133
+ return (React__default["default"].createElement("div", { className: getCssClassesConnector() },
2134
+ React__default["default"].createElement("div", { className: getCssClassesLine() })));
2135
+ };
2136
+
2137
+ var css_248z$9 = ".Stepper-module_stepper__V6odG {\n display: flex;\n align-items: center;\n flex-direction: row;\n margin-bottom: 10px; }\n .Stepper-module_stepper__V6odG.Stepper-module_isHorizontal__Q-3Wu {\n overflow-x: auto; }\n";
2138
+ var styles$9 = {"stepper":"Stepper-module_stepper__V6odG","isHorizontal":"Stepper-module_isHorizontal__Q-3Wu"};
2139
+ styleInject(css_248z$9);
2140
+
2141
+ const Stepper = (props) => {
2142
+ const { children, isLinear = true, showLabel = true, showProgressCheckIcon = false, value, isHorizontal = true, onChange, onFinish } = props;
2143
+ const [steps, setSteps] = React.useState();
2144
+ const [activeIndex, setActiveIndex] = React__default["default"].useState(0);
2145
+ const [skipped, setSkipped] = React__default["default"].useState(new Set());
2146
+ React.useEffect(() => {
2147
+ if (children) {
2148
+ setSteps(React__default["default"].Children.toArray(children));
2149
+ }
2150
+ }, [children]);
2151
+ React.useEffect(() => {
2152
+ if (value !== undefined) {
2153
+ setActiveIndex(value);
2154
+ }
2155
+ }, [value]);
2156
+ const isStepSkipped = (step) => {
2157
+ return skipped.has(step);
2158
+ };
2159
+ const handleClickStep = (event, newValue, index) => {
2160
+ setActiveIndex(() => {
2161
+ onChange && onChange(index);
2162
+ return index;
2163
+ });
2164
+ };
2165
+ const renderSteps = (child, index) => {
2166
+ return React__default["default"].isValidElement(child) &&
2167
+ React.cloneElement(child, {
2168
+ index: index,
2169
+ isActive: activeIndex >= index,
2170
+ isDone: activeIndex > index,
2171
+ isDisabled: isLinear && (activeIndex + 1 < index),
2172
+ showLabel: showLabel,
2173
+ showProgressCheckIcon: showProgressCheckIcon,
2174
+ onClick: (e) => handleClickStep(e.event, e.value, index)
2175
+ });
2176
+ };
2177
+ const isStepOptional = (index) => {
2178
+ return steps && steps[index].props.isOptional;
2179
+ };
2180
+ const handleBack = () => {
2181
+ setActiveIndex((prevActiveStep) => {
2182
+ const newIndex = prevActiveStep - 1;
2183
+ onChange && onChange(newIndex);
2184
+ return newIndex;
2185
+ });
2186
+ };
2187
+ // TODO
2188
+ const handleSkip = () => {
2189
+ if (!isStepOptional(activeIndex)) {
2190
+ throw new Error("You can't skip a step that isn't optional.");
2191
+ }
2192
+ setActiveIndex((prevActiveStep) => prevActiveStep + 1);
2193
+ setSkipped((prevSkipped) => {
2194
+ const newSkipped = new Set(prevSkipped.values());
2195
+ newSkipped.add(activeIndex);
2196
+ return newSkipped;
2197
+ });
2198
+ };
2199
+ // TODO
2200
+ const handleNext = () => {
2201
+ if (!isLastStep()) {
2202
+ let newSkipped = skipped;
2203
+ if (isStepSkipped(activeIndex)) {
2204
+ newSkipped = new Set(newSkipped.values());
2205
+ newSkipped.delete(activeIndex);
2206
+ }
2207
+ setActiveIndex((prevActiveStep) => {
2208
+ const newIndex = prevActiveStep + 1;
2209
+ onChange && onChange(newIndex);
2210
+ return newIndex;
2211
+ });
2212
+ setSkipped(newSkipped);
2213
+ }
2214
+ else {
2215
+ onFinish && onFinish();
2216
+ }
2217
+ };
2218
+ const handleReset = () => {
2219
+ setActiveIndex(0);
2220
+ onChange && onChange(0);
2221
+ };
2222
+ const isLastStep = () => {
2223
+ return steps && activeIndex === steps.length - 1;
2224
+ };
2225
+ const getCssClasses = () => {
2226
+ const cssClasses = [];
2227
+ cssClasses.push(styles$9.stepper);
2228
+ isHorizontal && cssClasses.push(styles$9['isHorizontal']);
2229
+ return cssClasses.filter(css => css).join(' ');
2230
+ };
2231
+ return (React__default["default"].createElement(React__default["default"].Fragment, null, steps &&
2232
+ React__default["default"].createElement(React__default["default"].Fragment, null,
2233
+ React__default["default"].createElement("div", { className: getCssClasses() }, steps.map((child, index) => (React__default["default"].createElement(React__default["default"].Fragment, { key: child.props.value },
2234
+ renderSteps(child, index),
2235
+ index !== steps.length - 1 && React__default["default"].createElement(StepConnector, { isActive: activeIndex > index }))))),
2236
+ steps && steps.map((step, index) => React__default["default"].createElement(React.Fragment, { key: step.props.value }, index === activeIndex &&
2237
+ React__default["default"].createElement(StepPanel, null, step.props.children))),
2238
+ React__default["default"].createElement(StepperActions, { className: "mt-3", isFirstStep: activeIndex === 0, isStepOptional: isStepOptional(activeIndex), isCompleted: isLastStep(), onBack: handleBack, onSkip: handleSkip, onNext: handleNext, onReset: handleReset }))));
2239
+ };
2240
+
2241
+ var css_248z$8 = ".Typography-module_typography__sw-td {\n text-overflow: ellipsis;\n font-family: var(--fontFamily); }\n\nh1 {\n font-size: 2.5rem; }\n\nh2 {\n font-size: 2rem; }\n\nh3 {\n font-size: 1.75rem; }\n\nh4 {\n font-size: 1.5rem; }\n\nh5 {\n font-size: 1.25rem; }\n\nh6 {\n font-size: 1rem; }\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-weight: 500 !important;\n margin-top: 0;\n margin-bottom: 0.5rem;\n line-height: 1.2; }\n";
2242
+ var styles$8 = {"typography":"Typography-module_typography__sw-td"};
2243
+ styleInject(css_248z$8);
2244
+
2245
+ const Wrapper = (props) => {
2246
+ const { as = 'span', children, className } = props, rest = __rest(props, ["as", "children", "className"]);
2247
+ const getCssClasses = () => {
2248
+ const cssClasses = [];
2249
+ cssClasses.push(styles$8.typography);
2250
+ cssClasses.push(styles$8.as);
2251
+ className && cssClasses.push(className);
2252
+ return cssClasses.filter(css => css).join(' ');
2253
+ };
2254
+ return React__default["default"].createElement(as, Object.assign(Object.assign({}, rest), { className: getCssClasses() }), children);
2255
+ };
2256
+ const Typography = (_a) => {
2257
+ var { children, as = 'span' } = _a, rest = __rest(_a, ["children", "as"]);
2258
+ return (React__default["default"].createElement(Wrapper, Object.assign({ as: as }, rest), children));
2259
+ };
2260
+
2261
+ var css_248z$7 = ".Step-module_stepWrapper__IQwq1 {\n display: flex;\n align-items: center;\n padding-left: 8px;\n padding-right: 8px;\n transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; }\n .Step-module_stepWrapper__IQwq1.Step-module_hasLabel__LZNvd:not(.Step-module_disabled__JnxUP):hover {\n cursor: pointer;\n background-color: rgba(0, 0, 0, 0.04);\n border-radius: var(--borderRadius); }\n\n.Step-module_step__k42go {\n width: 40px;\n height: 40px;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; }\n .Step-module_step__k42go:not(.Step-module_hasLabel__LZNvd):not(.Step-module_disabled__JnxUP):hover {\n border-radius: 100%;\n cursor: pointer;\n background-color: rgba(0, 0, 0, 0.04); }\n .Step-module_step__k42go.Step-module_hasLabel__LZNvd svg {\n width: 18px !important;\n height: 18px !important; }\n\n.Step-module_stepIconCircle__hnxIV svg {\n width: 24px;\n height: 24px; }\n\n.Step-module_stepValue__B0-xv {\n position: absolute;\n color: var(--secondary-contrast-text); }\n .Step-module_stepValue__B0-xv .Step-module_isActive__3GGcl {\n color: var(--primary-contrast-text); }\n";
2262
+ var styles$7 = {"stepWrapper":"Step-module_stepWrapper__IQwq1","hasLabel":"Step-module_hasLabel__LZNvd","disabled":"Step-module_disabled__JnxUP","step":"Step-module_step__k42go","stepIconCircle":"Step-module_stepIconCircle__hnxIV","stepValue":"Step-module_stepValue__B0-xv","isActive":"Step-module_isActive__3GGcl"};
2263
+ styleInject(css_248z$7);
2264
+
2265
+ const Step = (props) => {
2266
+ const { className, label, showLabel, index, value, isActive, isDone, isDisabled, showProgressCheckIcon, onClick } = props;
2267
+ const [hoverRef, isHovered] = useHover();
2268
+ const handleClick = (event) => {
2269
+ if (!isDisabled) {
2270
+ onClick && onClick({ event, value });
2271
+ }
2272
+ };
2273
+ const getCssClasses = () => {
2274
+ const cssClasses = [];
2275
+ cssClasses.push(styles$7.stepWrapper);
2276
+ label && showLabel && cssClasses.push(styles$7['hasLabel']);
2277
+ isDisabled && cssClasses.push(styles$7['disabled']);
2278
+ className && cssClasses.push(className);
2279
+ return cssClasses.filter(css => css).join(' ');
2280
+ };
2281
+ const getCssClassesStep = () => {
2282
+ const cssClasses = [];
2283
+ cssClasses.push(styles$7.step);
2284
+ label && showLabel && cssClasses.push(styles$7['hasLabel']);
2285
+ isDisabled && cssClasses.push(styles$7['disabled']);
2286
+ return cssClasses.filter(css => css).join(' ');
2287
+ };
2288
+ const getCssClassesStepValue = () => {
2289
+ const cssClasses = [];
2290
+ cssClasses.push(styles$7.stepValue);
2291
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2292
+ isActive && cssClasses.push(styles$7.stepValue['isActive']);
2293
+ return cssClasses.filter(css => css).join(' ');
2294
+ };
2295
+ return (React__default["default"].createElement("div", { ref: hoverRef, className: getCssClasses(), onClick: handleClick },
2296
+ React__default["default"].createElement("div", { className: getCssClassesStep() },
2297
+ React__default["default"].createElement(Icon, { className: styles$7.stepIconCircle, iconColor: (isHovered || isActive) && !isDisabled ? exports.COLOR.primary : exports.COLOR.secondary },
2298
+ React__default["default"].createElement(CircleSolidIcon, null)),
2299
+ React__default["default"].createElement("div", { className: getCssClassesStepValue() }, showProgressCheckIcon && isActive && isDone ?
2300
+ React__default["default"].createElement(Icon, null,
2301
+ React__default["default"].createElement(CheckSolidIcon, null))
2302
+ :
2303
+ React__default["default"].createElement(Typography, null, index + 1))),
2304
+ label && showLabel &&
2305
+ React__default["default"].createElement(Typography, { className: "flex-shrink-0" }, label)));
2306
+ };
2307
+
2308
+ var css_248z$6 = ".Table-module_table__DHKNv {\n --bs-table-bg: transparent;\n --bs-table-accent-bg: transparent;\n --bs-table-striped-color: #212529;\n --bs-table-striped-bg: rgba(0, 0, 0, 0.05);\n --bs-table-active-color: #212529;\n --bs-table-active-bg: rgba(0, 0, 0, 0.1);\n --bs-table-hover-color: #212529;\n --bs-table-hover-bg: rgba(0, 0, 0, 0.075);\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n vertical-align: top;\n border-color: #dee2e6; }\n .Table-module_table__DHKNv thead {\n vertical-align: bottom; }\n .Table-module_table__DHKNv > :not(caption) > * > * {\n padding: 0.5rem 0.5rem;\n background-color: var(--bs-table-bg);\n border-bottom-width: 1px;\n box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg); }\n .Table-module_table__DHKNv > :not(:first-child) {\n border-top: 2px solid currentColor; }\n\n.Table-module_bordered__1Kp1p > :not(caption) > * > * {\n border-width: 0 1px; }\n\n.Table-module_bordered__1Kp1p > :not(caption) > * {\n border-width: 1px 0; }\n\n.Table-module_striped__jmxgE > tbody > tr:nth-of-type(odd) > * {\n --bs-table-accent-bg: var(--bs-table-striped-bg);\n color: var(--bs-table-striped-color); }\n\n.Table-module_hover__P6r3y > tbody > tr:hover > * {\n --bs-table-accent-bg: var(--bs-table-hover-bg);\n color: var(--bs-table-hover-color); }\n\n.Table-module_tableResponsive__ykttB {\n overflow-x: auto; }\n";
2309
+ var styles$6 = {"table":"Table-module_table__DHKNv","bordered":"Table-module_bordered__1Kp1p","striped":"Table-module_striped__jmxgE","hover":"Table-module_hover__P6r3y","tableResponsive":"Table-module_tableResponsive__ykttB"};
2310
+ styleInject(css_248z$6);
2311
+
2312
+ const Table = (props) => {
2313
+ const { children, className, bordered, striped, hover, responsive = false } = props;
2314
+ const getCssClasses = () => {
2315
+ const cssClasses = [];
2316
+ cssClasses.push(styles$6.table);
2317
+ bordered && cssClasses.push(styles$6['bordered']);
2318
+ striped && cssClasses.push(styles$6['striped']);
2319
+ hover && cssClasses.push(styles$6['hover']);
2320
+ className && cssClasses.push(className);
2321
+ return cssClasses.filter(css => css).join(' ');
2322
+ };
2323
+ return (React__default["default"].createElement(ConditionalWrapper, { condition: responsive, wrapper: children => React__default["default"].createElement("div", { className: styles$6.tableResponsive }, children) },
2324
+ React__default["default"].createElement("table", { className: getCssClasses() }, children)));
2325
+ };
2326
+
2327
+ var css_248z$5 = ".TabIndicator-module_tabIndicator__jSJhH {\n bottom: 0;\n height: 2px;\n position: absolute;\n transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; }\n .TabIndicator-module_tabIndicator__jSJhH.TabIndicator-module_primary__Q5jEo {\n background-color: var(--primary); }\n .TabIndicator-module_tabIndicator__jSJhH.TabIndicator-module_accent__qbgIG {\n background-color: var(--accent); }\n";
2328
+ var styles$5 = {"tabIndicator":"TabIndicator-module_tabIndicator__jSJhH","primary":"TabIndicator-module_primary__Q5jEo","accent":"TabIndicator-module_accent__qbgIG"};
2329
+ styleInject(css_248z$5);
2330
+
2331
+ const TabIndicator = (props) => {
2332
+ const { color = exports.COLOR.accent, width, amount, index } = props;
2333
+ const getCssClasses = () => {
2334
+ const cssClasses = [];
2335
+ cssClasses.push(styles$5.tabIndicator);
2336
+ cssClasses.push(styles$5[color]);
2337
+ return cssClasses.filter(css => css).join(' ');
2338
+ };
2339
+ return (React__default["default"].createElement("span", { className: getCssClasses(), style: {
2340
+ width: width,
2341
+ left: `calc(calc(100% / ${amount}) * ${index})`
2342
+ } }));
2343
+ };
2344
+
2345
+ var css_248z$4 = ".Tabs-module_tabs__YyRTZ {\n display: flex;\n position: relative; }\n";
2346
+ var styles$4 = {"tabs":"Tabs-module_tabs__YyRTZ"};
2347
+ styleInject(css_248z$4);
2348
+
2349
+ const Tabs = (props) => {
2350
+ const { children, className, fixed, indicatorColor, onChange, value } = props;
2351
+ const [selectedValue, setSelectedValue] = React.useState(value);
2352
+ const [selectedIndex, setSelectedIndex] = React.useState();
2353
+ React.useEffect(() => {
2354
+ React__default["default"].Children.toArray(children).forEach((child, index) => {
2355
+ if (child.props.value === value) {
2356
+ setSelectedIndex(index);
2357
+ }
2358
+ });
2359
+ }, [children, value]);
2360
+ const getCssClasses = () => {
2361
+ const cssClasses = [];
2362
+ cssClasses.push(styles$4.tabs);
2363
+ className && cssClasses.push(className);
2364
+ return cssClasses.filter(css => css).join(' ');
2365
+ };
2366
+ const handleClickTab = (event, newValue, index) => {
2367
+ setSelectedValue(newValue);
2368
+ setSelectedIndex(index);
2369
+ onChange && onChange({ event, newValue });
2370
+ };
2371
+ const renderTabs = (child, index) => {
2372
+ return React__default["default"].isValidElement(child) && React.cloneElement(child, {
2373
+ key: child.props.value,
2374
+ isActive: child.props.value === selectedValue,
2375
+ fixed: fixed,
2376
+ onClick: (e) => handleClickTab(e.event, e.value, index),
2377
+ });
2378
+ };
2379
+ return (React__default["default"].createElement(React__default["default"].Fragment, null,
2380
+ React__default["default"].createElement("div", { className: getCssClasses() },
2381
+ children && React__default["default"].Children.toArray(children).map((child, index) => renderTabs(child, index)),
2382
+ children &&
2383
+ React__default["default"].createElement(TabIndicator, { color: indicatorColor, width: (100 / React__default["default"].Children.toArray(children).length) + '%', index: selectedIndex, amount: React__default["default"].Children.toArray(children).length }))));
2384
+ };
2385
+
2386
+ var css_248z$3 = ".Tab-module_tab__Q8w1f {\n padding: 6px 12px;\n overflow: hidden;\n position: relative;\n font-size: 0.875rem;\n min-width: 72px;\n box-sizing: border-box;\n min-height: 48px;\n text-align: center;\n font-weight: 500;\n line-height: 1.75;\n white-space: normal;\n letter-spacing: 0.02857em;\n text-transform: uppercase;\n border-radius: 0;\n flex-grow: 1;\n flex-basis: 0;\n transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; }\n";
2387
+ var styles$3 = {"tab":"Tab-module_tab__Q8w1f"};
2388
+ styleInject(css_248z$3);
2389
+
2390
+ const Tab = (props) => {
2391
+ const { label, className, isActive, disabled, value, onClick } = props;
2392
+ const getCssClasses = () => {
2393
+ const cssClasses = [];
2394
+ cssClasses.push(styles$3.tab);
2395
+ if (isActive) {
2396
+ cssClasses.push(`show active`);
2397
+ }
2398
+ className && cssClasses.push(className);
2399
+ return cssClasses.filter(css => css).join(' ');
2400
+ };
2401
+ return (React__default["default"].createElement(Button, { className: getCssClasses(), onClick: (event) => onClick && onClick({ event, value }), isActive: isActive, disabled: disabled }, label));
2402
+ };
2403
+
2404
+ const TabPanel = (props) => {
2405
+ const { children, value, index } = props, rest = __rest(props, ["children", "value", "index"]);
2406
+ return (React__default["default"].createElement("div", Object.assign({ role: "tabpanel", hidden: value !== index, id: `tabpanel-${index}`, "aria-labelledby": `wrapped-tab-${index}` }, rest), value === index && children));
2407
+ };
2408
+
2409
+ var css_248z$2 = ".Tooltip-module_tooltipContainer__9ZWx3 {\n display: inline; }\n\n.Tooltip-module_tooltip__x5HOu {\n background-color: #333;\n color: white;\n padding: 5px 10px;\n border-radius: 4px;\n font-size: 13px;\n position: absolute;\n left: -1000000px;\n z-index: 1100; }\n .Tooltip-module_tooltip__x5HOu #Tooltip-module_arrow__B6lfe,\n .Tooltip-module_tooltip__x5HOu #Tooltip-module_arrow__B6lfe::before {\n position: absolute;\n width: 8px;\n height: 8px;\n z-index: -1; }\n .Tooltip-module_tooltip__x5HOu #Tooltip-module_arrow__B6lfe::before {\n content: \"\";\n transform: rotate(45deg);\n background: #333; }\n .Tooltip-module_tooltip__x5HOu[data-popper-placement^=\"top\"] > #Tooltip-module_arrow__B6lfe {\n bottom: -4px; }\n .Tooltip-module_tooltip__x5HOu[data-popper-placement^=\"bottom\"] > #Tooltip-module_arrow__B6lfe {\n top: -4px; }\n .Tooltip-module_tooltip__x5HOu[data-popper-placement^=\"left\"] > #Tooltip-module_arrow__B6lfe {\n right: -4px; }\n .Tooltip-module_tooltip__x5HOu[data-popper-placement^=\"right\"] > #Tooltip-module_arrow__B6lfe {\n left: -4px; }\n";
2410
+ var styles$2 = {"tooltipContainer":"Tooltip-module_tooltipContainer__9ZWx3","tooltip":"Tooltip-module_tooltip__x5HOu","arrow":"Tooltip-module_arrow__B6lfe"};
2411
+ styleInject(css_248z$2);
2412
+
2413
+ const Tooltip = (props) => {
2414
+ const { children, text, placement = 'bottom' } = props;
2415
+ const [show, setShow] = React.useState(false);
2416
+ const refChild = React.useRef();
2417
+ const refTooltip = React.useRef();
2418
+ React.useEffect(() => {
2419
+ if (show === true && refChild && refChild.current && refTooltip && refTooltip.current) {
2420
+ // TODO - extract to own component?
2421
+ core.createPopper(refChild.current, refTooltip.current, {
2422
+ placement: placement,
2423
+ modifiers: [
2424
+ {
2425
+ name: 'offset',
2426
+ options: { offset: [0, 8] }
2427
+ },
2428
+ ]
2429
+ });
2430
+ }
2431
+ }, [show]);
2432
+ const handleMouseOver = () => {
2433
+ setShow(true);
2434
+ };
2435
+ const handleMouseLeave = () => {
2436
+ setShow(false);
2437
+ };
2438
+ return (React__default["default"].createElement(React__default["default"].Fragment, null,
2439
+ React__default["default"].createElement("div", { className: styles$2.tooltipContainer, ref: refChild, id: "tooltip-container" }, React.cloneElement(children, {
2440
+ onMouseOver: handleMouseOver,
2441
+ onMouseLeave: handleMouseLeave,
2442
+ })),
2443
+ show &&
2444
+ React__default["default"].createElement("div", { className: styles$2.tooltip, ref: refTooltip, id: "tooltip" },
2445
+ text,
2446
+ React__default["default"].createElement("div", { id: "arrow", "data-popper-arrow": true }))));
2447
+ };
2448
+
2449
+ const HourSelect = (props) => {
2450
+ const { className, value = 0, id, name, disabled, onChange } = props;
2451
+ const [newValue, setNewValue] = React.useState(value);
2452
+ const [hourOptions, setHourOptions] = React.useState();
2453
+ React.useEffect(() => {
2454
+ const newHourOptions = [];
2455
+ for (let i = 0; i < 24; i++) {
2456
+ newHourOptions.push({ value: i.toString(), label: i.toString() });
2457
+ }
2458
+ setHourOptions(newHourOptions);
2459
+ }, []);
2460
+ const getCssClasses = () => {
2461
+ const cssClasses = [];
2462
+ className && cssClasses.push(className);
2463
+ return cssClasses.filter(css => css).join(' ');
2464
+ };
2465
+ const handleOnChange = (e) => {
2466
+ setNewValue(e);
2467
+ onChange && onChange(e);
2468
+ };
2469
+ return (React__default["default"].createElement(Select, { id: id, name: name, className: getCssClasses(), options: hourOptions, onChange: (e) => handleOnChange(parseInt(e)), disabled: disabled, value: newValue.toString() }));
2470
+ };
2471
+
2472
+ const MilliSecondSelect = (props) => {
2473
+ const { className, value = 0, steps = 100, id, name, disabled, onChange } = props;
2474
+ const [newValue, setNewValue] = React.useState(value);
2475
+ const [milliSecondOptions, setMilliSecondOptions] = React.useState();
2476
+ React.useEffect(() => {
2477
+ const newMilliSecondOptions = [];
2478
+ for (let i = 0; i < 1000; i += steps) {
2479
+ newMilliSecondOptions.push({ value: i.toString(), label: i.toString() });
2480
+ }
2481
+ setMilliSecondOptions(newMilliSecondOptions);
2482
+ }, []);
2483
+ const getCssClasses = () => {
2484
+ const cssClasses = [];
2485
+ className && cssClasses.push(className);
2486
+ return cssClasses.filter(css => css).join(' ');
2487
+ };
2488
+ const handleOnChange = (e) => {
2489
+ setNewValue(e);
2490
+ onChange && onChange(e);
2491
+ };
2492
+ return (React__default["default"].createElement(Select, { id: id, name: name, className: getCssClasses(), options: milliSecondOptions, onChange: (e) => handleOnChange(parseInt(e)), disabled: disabled, value: newValue.toString() }));
2493
+ };
2494
+
2495
+ const MinuteSelect = (props) => {
2496
+ const { className, value = 0, id, name, disabled, onChange } = props;
2497
+ const [newValue, setNewValue] = React.useState(value);
2498
+ const [minuteOptions, setMinuteOptions] = React.useState();
2499
+ React.useEffect(() => {
2500
+ const newMinuteOptions = [];
2501
+ for (let i = 0; i < 60; i++) {
2502
+ newMinuteOptions.push({ value: i.toString(), label: i.toString() });
2503
+ }
2504
+ setMinuteOptions(newMinuteOptions);
2505
+ }, []);
2506
+ const getCssClasses = () => {
2507
+ const cssClasses = [];
2508
+ className && cssClasses.push(className);
2509
+ return cssClasses.filter(css => css).join(' ');
2510
+ };
2511
+ const handleOnChange = (e) => {
2512
+ setNewValue(e);
2513
+ onChange && onChange(e);
2514
+ };
2515
+ return (React__default["default"].createElement(Select, { id: id, name: name, className: getCssClasses(), options: minuteOptions, onChange: (e) => handleOnChange(parseInt(e)), disabled: disabled, value: newValue.toString() }));
2516
+ };
2517
+
2518
+ const SecondSelect = (props) => {
2519
+ const { className, value = 0, id, name, disabled, onChange } = props;
2520
+ const [newValue, setNewValue] = React.useState(value);
2521
+ const [secondOptions, setSecondOptions] = React.useState();
2522
+ React.useEffect(() => {
2523
+ const newSecondOptions = [];
2524
+ for (let i = 0; i < 60; i++) {
2525
+ newSecondOptions.push({ value: i.toString(), label: i.toString() });
2526
+ }
2527
+ setSecondOptions(newSecondOptions);
2528
+ }, []);
2529
+ const getCssClasses = () => {
2530
+ const cssClasses = [];
2531
+ className && cssClasses.push(className);
2532
+ return cssClasses.filter(css => css).join(' ');
2533
+ };
2534
+ const handleOnChange = (e) => {
2535
+ setNewValue(e);
2536
+ onChange && onChange(e);
2537
+ };
2538
+ return (React__default["default"].createElement(Select, { id: id, name: name, className: getCssClasses(), options: secondOptions, onChange: (e) => handleOnChange(parseInt(e)), disabled: disabled, value: newValue.toString() }));
2539
+ };
2540
+
2541
+ exports.TIMEMODE = void 0;
2542
+ (function (TIMEMODE) {
2543
+ TIMEMODE[TIMEMODE["HOUR"] = 0] = "HOUR";
2544
+ TIMEMODE[TIMEMODE["MINUTE"] = 1] = "MINUTE";
2545
+ TIMEMODE[TIMEMODE["SECONDS"] = 2] = "SECONDS";
2546
+ TIMEMODE[TIMEMODE["MILLISECONDS"] = 3] = "MILLISECONDS";
2547
+ })(exports.TIMEMODE || (exports.TIMEMODE = {}));
2548
+ const TimeSelect = (props) => {
2549
+ const { className, value = new Date(), disabled, showHours = true, showMinutes = true, showSeconds = false, showMilliSeconds = false, onChange } = props;
2550
+ const [currDate, setCurrDate] = React.useState(value);
2551
+ const getCssClasses = () => {
2552
+ const cssClasses = [];
2553
+ cssClasses.push('row');
2554
+ className && cssClasses.push(className);
2555
+ return cssClasses.filter(css => css).join(' ');
2556
+ };
2557
+ const handleOnChange = (e, mode) => {
2558
+ const currYear = currDate.getFullYear();
2559
+ const currMonth = currDate.getMonth();
2560
+ const currday = currDate.getDate();
2561
+ const currHour = mode === exports.TIMEMODE.HOUR ? e : currDate.getHours();
2562
+ const currMinute = mode === exports.TIMEMODE.MINUTE ? e : currDate.getMinutes();
2563
+ const currSeconds = mode === exports.TIMEMODE.SECONDS ? e : currDate.getSeconds();
2564
+ const currMilliSeconds = mode === exports.TIMEMODE.MILLISECONDS ? e : currDate.getMilliseconds();
2565
+ const newDate = new Date(currYear, currMonth, currday, currHour, currMinute, currSeconds, currMilliSeconds);
2566
+ setCurrDate(newDate);
2567
+ onChange && onChange(newDate);
2568
+ };
2569
+ return (React__default["default"].createElement(Row, { className: getCssClasses() },
2570
+ showHours &&
2571
+ React__default["default"].createElement(Column, null,
2572
+ React__default["default"].createElement(FormLabel, null, "Hours"),
2573
+ React__default["default"].createElement(HourSelect, { value: currDate.getHours(), disabled: disabled, onChange: e => handleOnChange(e, exports.TIMEMODE.HOUR) })),
2574
+ showMinutes &&
2575
+ React__default["default"].createElement(Column, null,
2576
+ React__default["default"].createElement(FormLabel, null, "Minutes"),
2577
+ React__default["default"].createElement(MinuteSelect, { value: currDate.getMinutes(), disabled: disabled, onChange: e => handleOnChange(e, exports.TIMEMODE.MINUTE) })),
2578
+ showSeconds &&
2579
+ React__default["default"].createElement(Column, null,
2580
+ React__default["default"].createElement(FormLabel, null, "Seconds"),
2581
+ React__default["default"].createElement(SecondSelect, { value: currDate.getSeconds(), disabled: disabled, onChange: e => handleOnChange(e, exports.TIMEMODE.SECONDS) })),
2582
+ showMilliSeconds &&
2583
+ React__default["default"].createElement(Column, null,
2584
+ React__default["default"].createElement(FormLabel, null, "Milliseconds"),
2585
+ React__default["default"].createElement(MilliSecondSelect, { value: currDate.getMilliseconds(), disabled: disabled, onChange: e => handleOnChange(e, exports.TIMEMODE.MILLISECONDS) }))));
2586
+ };
2587
+
2588
+ var css_248z$1 = ".TreeView-module_treeView__VVj-4 {\n list-style-type: none;\n margin-bottom: 0;\n padding-left: 0px !important; }\n .TreeView-module_treeView__VVj-4 ul {\n padding-left: 48px !important; }\n";
2589
+ var styles$1 = {"treeView":"TreeView-module_treeView__VVj-4"};
2590
+ styleInject(css_248z$1);
2591
+
2592
+ const TreeView = (props) => {
2593
+ const { children, className } = props, rest = __rest(props, ["children", "className"]);
2594
+ const getCssClasses = () => {
2595
+ const cssClasses = [];
2596
+ cssClasses.push(styles$1.treeView);
2597
+ className && cssClasses.push(className);
2598
+ return cssClasses.filter(css => css).join(' ');
2599
+ };
2600
+ return (React__default["default"].createElement("ul", Object.assign({ className: getCssClasses() }, rest), children));
2601
+ };
2602
+
2603
+ var css_248z = ".TreeItem-module_treeItem__Mxsjr {\n display: flex;\n flex-direction: column;\n min-height: 48px;\n justify-content: center; }\n";
2604
+ var styles = {"treeItem":"TreeItem-module_treeItem__Mxsjr"};
2605
+ styleInject(css_248z);
2606
+
2607
+ const TreeItem = (props) => {
2608
+ const { nodeId, label, children, className, isExpanded, isSelected, isSelectable, onToggleExpand, onItemSelect } = props;
2609
+ const [_isExpanded, setIsExpanded] = React.useState(false);
2610
+ const [_isSelected, setIsSelected] = React.useState(false);
2611
+ const getCssClasses = () => {
2612
+ const cssClasses = [];
2613
+ cssClasses.push(styles.treeItem);
2614
+ className && cssClasses.push(className);
2615
+ return cssClasses.filter(css => css).join(' ');
2616
+ };
2617
+ React.useEffect(() => {
2618
+ if (isExpanded !== undefined)
2619
+ setIsExpanded(isExpanded);
2620
+ }, [isExpanded]);
2621
+ React.useEffect(() => {
2622
+ if (isSelected !== undefined)
2623
+ setIsSelected(isSelected);
2624
+ }, [isSelected]);
2625
+ const handleOnToggleExpand = (nodeId) => {
2626
+ setIsExpanded(!_isExpanded);
2627
+ onToggleExpand && onToggleExpand(nodeId);
2628
+ };
2629
+ const handleOnSelect = (nodeId) => {
2630
+ setIsSelected(!_isSelected);
2631
+ onItemSelect && onItemSelect({ id: nodeId, isSelected: !_isSelected });
2632
+ };
2633
+ return (React__default["default"].createElement("li", { className: getCssClasses(), style: { paddingLeft: `${(48 * (children ? 0 : 1))}px` } },
2634
+ React__default["default"].createElement("div", { className: "d-flex align-items-center" },
2635
+ children &&
2636
+ React__default["default"].createElement(IconButton, { onClick: () => handleOnToggleExpand(nodeId), icon: !_isExpanded ? React__default["default"].createElement(ChevronRightSolidIcon, null) : React__default["default"].createElement(ChevronDownSolidIcon, null) }),
2637
+ isSelectable &&
2638
+ React__default["default"].createElement(Checkbox, { checked: _isSelected, onChange: () => handleOnSelect(nodeId) }),
2639
+ label),
2640
+ children && _isExpanded ? React__default["default"].createElement("ul", null, children) : null));
2641
+ };
2642
+
2643
+ exports.Alert = Alert;
2644
+ exports.AppBar = AppBar;
2645
+ exports.AppBarTitle = AppBarTitle;
2646
+ exports.AutoComplete = AutoComplete;
2647
+ exports.Backdrop = Backdrop;
2648
+ exports.Badge = Badge;
2649
+ exports.Breadcrumb = Breadcrumb;
2650
+ exports.BreadcrumbItem = BreadcrumbItem;
2651
+ exports.Button = Button;
2652
+ exports.ButtonGroup = ButtonGroup;
2653
+ exports.Card = Card;
2654
+ exports.CardBody = CardBody;
2655
+ exports.CardFooter = CardFooter;
2656
+ exports.CardImage = CardImage;
2657
+ exports.CardSubtitle = CardSubtitle;
2658
+ exports.CardText = CardText;
2659
+ exports.CardTitle = CardTitle;
2660
+ exports.CaretDownSolidIcon = CaretDownSolidIcon;
2661
+ exports.CheckSolidIcon = CheckSolidIcon;
2662
+ exports.CheckSquareRegularIcon = CheckSquareRegularIcon;
2663
+ exports.Checkbox = Checkbox;
2664
+ exports.ChevronDownSolidIcon = ChevronDownSolidIcon;
2665
+ exports.ChevronLeftSolidIcon = ChevronLeftSolidIcon;
2666
+ exports.ChevronRightSolidIcon = ChevronRightSolidIcon;
2667
+ exports.ChevronUpSolidIcon = ChevronUpSolidIcon;
2668
+ exports.Chip = Chip;
2669
+ exports.CircleSolidIcon = CircleSolidIcon;
2670
+ exports.Column = Column;
2671
+ exports.ConditionalWrapper = ConditionalWrapper;
2672
+ exports.DateSelect = DateSelect;
2673
+ exports.DaySelect = DaySelect;
2674
+ exports.Drawer = Drawer;
2675
+ exports.EmailValidator = EmailValidator;
2676
+ exports.ExpansionPanel = ExpansionPanel;
2677
+ exports.ExpansionPanelContent = ExpansionPanelContent;
2678
+ exports.ExpansionPanelHeader = ExpansionPanelHeader;
2679
+ exports.FileInput = FileInput;
2680
+ exports.FloatingActionButton = FloatingActionButton;
2681
+ exports.Form = Form;
2682
+ exports.FormControl = FormControl;
2683
+ exports.FormError = FormError;
2684
+ exports.FormGroup = FormGroup;
2685
+ exports.FormHint = FormHint;
2686
+ exports.FormInput = FormInput;
2687
+ exports.FormLabel = FormLabel;
2688
+ exports.GlobalModal = GlobalModal;
2689
+ exports.HomeSolidIcon = HomeSolidIcon;
2690
+ exports.HourSelect = HourSelect;
2691
+ exports.Icon = Icon;
2692
+ exports.IconButton = IconButton;
2693
+ exports.IsEmptyValidator = IsEmptyValidator;
2694
+ exports.IsEqualValidator = IsEqualValidator;
2695
+ exports.Link = Link;
2696
+ exports.List = List;
2697
+ exports.ListItem = ListItem;
2698
+ exports.ListItemAction = ListItemAction;
2699
+ exports.ListItemAvatar = ListItemAvatar;
2700
+ exports.ListItemIcon = ListItemIcon;
2701
+ exports.ListItemText = ListItemText;
2702
+ exports.LoadingIndicator = LoadingIndicator;
2703
+ exports.LoadingIndicatorContainer = LoadingIndicatorContainer;
2704
+ exports.Menu = Menu;
2705
+ exports.MenuBody = MenuBody;
2706
+ exports.MenuDivider = MenuDivider;
2707
+ exports.MenuItem = MenuItem;
2708
+ exports.MenuToggle = MenuToggle;
2709
+ exports.MilliSecondSelect = MilliSecondSelect;
2710
+ exports.MinuteSelect = MinuteSelect;
2711
+ exports.Modal = Modal;
2712
+ exports.ModalBody = ModalBody;
2713
+ exports.ModalFooter = ModalFooter;
2714
+ exports.ModalHeader = ModalHeader;
2715
+ exports.MonthSelect = MonthSelect;
2716
+ exports.NumberSelect = NumberSelect;
2717
+ exports.PlusSolidIcon = PlusSolidIcon;
2718
+ exports.Row = Row;
2719
+ exports.STATUS = STATUS;
2720
+ exports.SecondSelect = SecondSelect;
2721
+ exports.Select = Select;
2722
+ exports.Sidebar = Sidebar;
2723
+ exports.Snackbar = Snackbar;
2724
+ exports.SpeedDial = SpeedDial;
2725
+ exports.SpeedDialAction = SpeedDialAction;
2726
+ exports.SpeedDialIcon = SpeedDialIcon;
2727
+ exports.SpinnerSolidIcon = SpinnerSolidIcon;
2728
+ exports.SquareRegularIcon = SquareRegularIcon;
2729
+ exports.Step = Step;
2730
+ exports.Stepper = Stepper;
2731
+ exports.StepperActions = StepperActions;
2732
+ exports.Tab = Tab;
2733
+ exports.TabPanel = TabPanel;
2734
+ exports.Table = Table;
2735
+ exports.Tabs = Tabs;
2736
+ exports.Textarea = Textarea;
2737
+ exports.TimeSelect = TimeSelect;
2738
+ exports.TimesCircleSolidIcon = TimesCircleSolidIcon;
2739
+ exports.TimesSolidIcon = TimesSolidIcon;
2740
+ exports.Tooltip = Tooltip;
2741
+ exports.TreeItem = TreeItem;
2742
+ exports.TreeView = TreeView;
2743
+ exports.Typography = Typography;
2744
+ exports.YearSelect = YearSelect;
2745
+ exports.loadingIndicatorService = loadingIndicatorService;
2746
+ exports.modalService = modalService;
2747
+ exports.snackbarService = snackbarService;
2748
+ exports.useConstructor = useConstructor;
2749
+ exports.useDebounce = useDebounce;
2750
+ exports.useHover = useHover;
2751
+ exports.useWindowSize = useWindowSize;