@delightui/components 0.1.149 → 0.1.150
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.
- package/dist/cjs/components/atoms/Button/Button.contants.d.ts +2 -0
- package/dist/cjs/components/atoms/Button/Button.types.d.ts +6 -0
- package/dist/cjs/components/atoms/Button/ButtonExample.d.ts +3 -0
- package/dist/cjs/components/atoms/ToggleButton/ToggleButton.presenter.d.ts +1 -0
- package/dist/cjs/library.css +75 -44
- package/dist/cjs/library.js +3 -3
- package/dist/cjs/library.js.map +1 -1
- package/dist/esm/components/atoms/Button/Button.contants.d.ts +2 -0
- package/dist/esm/components/atoms/Button/Button.types.d.ts +6 -0
- package/dist/esm/components/atoms/Button/ButtonExample.d.ts +3 -0
- package/dist/esm/components/atoms/ToggleButton/ToggleButton.presenter.d.ts +1 -0
- package/dist/esm/library.css +75 -44
- package/dist/esm/library.js +3 -3
- package/dist/esm/library.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/package.json +1 -1
package/dist/cjs/library.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"library.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/modules/theme/useBuildVariantProps.ts","../../src/components/atoms/Spinner/Spinner.tsx","../../src/components/atoms/Image/image.tsx","../../src/components/atoms/Text/contants.ts","../../src/components/atoms/Text/Text.tsx","../../src/components/utils/WrapTextNodes/WrapTextNodes.tsx","../../src/components/atoms/Button/Button.tsx","../../src/components/atoms/Icon/useDynamicSVGImport.ts","../../src/components/atoms/Icon/Icon.tsx","../../src/components/atoms/IconButton/IconButton.tsx","../../src/components/utils/ConditionalView/ConditionalView.tsx","../../src/components/molecules/FormField/useControlledValue.ts","../../src/components/utils/utils.tsx","../../src/components/atoms/Input/Input.presenter.tsx","../../src/components/atoms/Input/Input.tsx","../../src/components/atoms/TextArea/TextArea.tsx","../../src/components/atoms/TextArea/TextArea.presenter.tsx","../../src/components/atoms/ResponsiveComponent/ResponsiveComponent.tsx","../../src/components/atoms/Checkbox/useCheckboxField.tsx","../../src/components/atoms/Toggle/Toggle.tsx","../../src/components/atoms/Toggle/Toggle.presenter.tsx","../../src/components/atoms/ToggleButton/ToggleButton.tsx","../../src/components/atoms/ToggleButton/ToggleButton.presenter.tsx","../../src/components/atoms/Tooltip/Tooltip.constants.ts","../../src/components/utils/RenderStateView/usePresenter.ts","../../src/components/utils/useDebounce/useDebounce.ts","../../src/components/utils/accessibilityUtils.ts","../../src/components/atoms/Tooltip/Tooltip.tsx","../../src/components/atoms/Tooltip/Tooltip.presenter.ts","../../src/components/atoms/CustomToggle/CustomToggle.tsx","../../src/components/atoms/CustomToggle/CustomToggle.presenter.tsx","../../src/components/atoms/Chip/Chip.tsx","../../src/components/atoms/Checkbox/Checkbox.tsx","../../src/components/atoms/Checkbox/Checkbox.presenter.tsx","../../src/components/atoms/CheckboxItem/CheckboxItem.tsx","../../src/components/atoms/CheckboxItem/CheckboxItem.presenter.tsx","../../src/components/atoms/RadioButton/RadioButton.tsx","../../src/components/atoms/RadioButtonItem/RadioButtonItem.tsx","../../src/components/atoms/RadioButtonItem/RadioButtonItem.presenter.tsx","../../src/components/molecules/Nav/NavLink/NavLink.tsx","../../src/components/molecules/ContextMenu/ContextMenu.tsx","../../node_modules/flatpickr/dist/esm/types/options.js","../../node_modules/flatpickr/dist/esm/l10n/default.js","../../node_modules/flatpickr/dist/esm/utils/index.js","../../node_modules/flatpickr/dist/esm/utils/dom.js","../../node_modules/flatpickr/dist/esm/utils/formatting.js","../../node_modules/flatpickr/dist/esm/utils/dates.js","../../node_modules/flatpickr/dist/esm/utils/polyfills.js","../../node_modules/flatpickr/dist/esm/index.js","../../node_modules/prop-types/node_modules/react-is/index.js","../../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../../node_modules/object-assign/index.js","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../node_modules/prop-types/lib/has.js","../../node_modules/prop-types/index.js","../../node_modules/prop-types/factoryWithTypeCheckers.js","../../node_modules/prop-types/checkPropTypes.js","../../node_modules/prop-types/factoryWithThrowingShims.js","../../node_modules/react-flatpickr/build/index.js","../../src/components/molecules/DatePicker/DatePickerBase/Plugins/utils.ts","../../src/components/molecules/DatePicker/DatePickerBase/Plugins/customTimeSelector.tsx","../../src/components/molecules/DatePicker/DatePickerBase/Plugins/dateTimeSelector.tsx","../../src/components/molecules/DatePicker/DatePickerBase/Plugins/timeSelector.ts","../../node_modules/flatpickr/dist/l10n/default.js","../../src/components/molecules/DatePicker/DatePickerBase/DatePickerBase.constants.ts","../../src/components/molecules/DatePicker/DatePickerBase/DatePickerBase.tsx","../../src/components/molecules/DatePicker/DatePickerBase/DatePickerBase.presenter.tsx","../../src/components/organisms/Form/FormContext.tsx","../../src/components/organisms/Form/Form.utils.ts","../../src/components/molecules/FormField/FormField.utils.ts","../../src/components/molecules/List/components/RootList.tsx","../../src/components/molecules/List/components/RootListItem.tsx","../../src/components/molecules/List/components/BasicList.tsx","../../node_modules/@dnd-kit/utilities/dist/utilities.esm.js","../../node_modules/@dnd-kit/modifiers/dist/modifiers.esm.js","../../src/components/molecules/List/components/SortableListItem.tsx","../../src/components/molecules/List/components/SortableList.tsx","../../src/components/molecules/List/List.tsx","../../src/components/molecules/List/RepeaterList.tsx","../../src/components/molecules/Modal/Modal.tsx","../../src/components/molecules/Modal/ModalContext/ModalContext.tsx","../../src/components/molecules/PaginationNumberField/PaginationNumberField.tsx","../../src/components/molecules/PaginationNumberField/PaginationNumberField.presenter.ts","../../src/components/molecules/Popover/Popover.utils.ts","../../src/components/molecules/Popover/Popover.tsx","../../src/components/molecules/Popover/Popover.presenter.tsx","../../src/components/molecules/RadioGroup/RadioGroup.utils.ts","../../src/components/molecules/Select/Select.Context.tsx","../../src/components/molecules/Select/Select.utils.ts","../../src/components/molecules/Select/Select.tsx","../../src/components/molecules/Select/Select.presenter.tsx","../../src/components/molecules/ChipInput/ChipInput.utils.ts","../../src/components/molecules/ChipInput/ChipInput.presenter.tsx","../../src/components/molecules/Search/Search.tsx","../../src/components/molecules/Search/Search.presenter.tsx","../../node_modules/file-selector/dist/es2015/file.js","../../node_modules/file-selector/dist/es2015/file-selector.js","../../node_modules/attr-accept/dist/es/index.js","../../node_modules/react-dropzone/dist/es/utils/index.js","../../node_modules/react-dropzone/dist/es/index.js","../../src/components/organisms/Dropzone/Dropzone.presenter.tsx","../../src/components/organisms/Dropzone/Dropzone.tsx","../../src/components/organisms/Dropzone/components/DropzoneClear.tsx","../../src/components/organisms/Dropzone/components/DropzoneFilename.tsx","../../src/components/organisms/Dropzone/components/DropzoneSupportedFormats.tsx","../../src/components/organisms/Dropzone/components/DropzoneTrigger.tsx","../../src/components/organisms/Dropzone/components/DropzoneDrag.tsx","../../src/components/organisms/Form/Form.tsx","../../src/components/organisms/Form/useForm.ts","../../src/components/organisms/Tabs/Tabs.Context.tsx","../../src/components/organisms/Tabs/TabItem/TabItem.tsx","../../src/components/organisms/Tabs/TabContent/TabContent.tsx","../../src/components/organisms/Tabs/Tabs.tsx","../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../node_modules/react-transition-group/esm/config.js","../../node_modules/react-transition-group/esm/utils/PropTypes.js","../../node_modules/react-transition-group/esm/TransitionGroupContext.js","../../node_modules/react-transition-group/esm/Transition.js","../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../node_modules/react-transition-group/esm/utils/reflow.js","../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../src/components/organisms/SlideOutPanel/FadeTransition.tsx","../../src/modules/theme/ThemeProvider.tsx","../../src/modules/notification/NotificationContext.tsx","../../src/components/atoms/ToastNotification/ToastNotification.tsx","../../src/modules/notification/NotificationContainer.tsx","../../src/components/molecules/Accordion/Accordion.tsx","../../src/components/molecules/Accordion/AccordionGroup/AccordionGroup.tsx","../../src/components/molecules/ActionCard/ActionCard.tsx","../../src/components/atoms/ActionImage/ActionImage.tsx","../../src/components/molecules/Breadcrumbs/Breadcrumb/Breadcrumb.tsx","../../src/components/molecules/Breadcrumbs/Breadcrumbs.tsx","../../src/components/molecules/ButtonGroup/ButtonGroup.tsx","../../src/components/molecules/ButtonGroup/utils.tsx","../../src/components/molecules/Card/Card.tsx","../../src/components/molecules/ChipInput/ChipInput.tsx","../../src/components/molecules/DatePicker/DateInput/DateInput.tsx","../../src/components/molecules/DatePicker/DateInput/DateInput.presenter.tsx","../../src/components/molecules/DatePicker/DatePicker.tsx","../../src/components/molecules/List/components/SortableTrigger.tsx","../../src/components/organisms/DropzoneContent/DropzoneContent.tsx","../../src/components/organisms/Form/index.tsx","../../src/components/molecules/FormField/FormField.tsx","../../src/components/molecules/FormField/FormField.presenter.tsx","../../src/components/molecules/Grid/Grid.tsx","../../src/components/molecules/GridList/GridList.tsx","../../src/components/atoms/ListItem/ListItem.tsx","../../src/components/molecules/Modal/ModalFooter/ModalFooter.tsx","../../src/components/molecules/Modal/ModalHeader/ModalHeader.tsx","../../src/components/molecules/Nav/Nav.tsx","../../src/components/molecules/Nav/NavItem/NavItem.tsx","../../src/components/molecules/Select/Option/Option.tsx","../../src/components/molecules/Pagination/Pagination.tsx","../../src/components/molecules/Pagination/Pagination.presenter.ts","../../src/components/atoms/Password/Password.tsx","../../src/components/atoms/Password/Password.presenter.tsx","../../src/components/molecules/ProgressBar/ProgressBar.tsx","../../src/components/molecules/ProgressBar/ProgressBar.utils.ts","../../src/components/molecules/RadioGroup/RadioGroup.tsx","../../src/components/molecules/RadioGroup/RadioGroup.presenter.tsx","../../src/components/utils/RenderStateView/RenderStateView.tsx","../../src/components/atoms/SelectListItem/SelectListItem.tsx","../../src/components/organisms/SlideOutPanel/SlideOutPanel.tsx","../../src/components/atoms/Slider/Slider.tsx","../../src/components/atoms/Slider/Slider.presenter.tsx","../../src/components/organisms/Table/Table.tsx","../../src/components/organisms/Table/TableBody/TableBody.tsx","../../src/components/organisms/Table/TableCell/TableCell.tsx","../../src/components/organisms/Table/TableHeader/TableHeader.tsx","../../src/components/organisms/Table/TableHeaderCell/TableHeaderCell.tsx","../../src/components/organisms/Table/TableRow/TableRow.tsx","../../src/components/organisms/Tabs/index.tsx","../../src/components/utils/useInflateView/useInflateView.tsx","../../src/components/molecules/Modal/ModalContext/useModal.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import { useMemo } from \"react\";\n\nconst nativeBooleanAttributes = [\n 'disabled', 'required', 'readonly', 'checked', 'default', 'selected', 'autofocus', 'autoplay'\n];\n\nconst splitIntoWords = (input: string): string[] => {\n return input\n .split(/(?=[A-Z])|[\\s\\-_—]+|[^\\w]+/) // Split on camelCase, spaces, hyphens, underscores, em dashes, or other non-word characters\n // .flatMap(word => word.split(/(?<=[a-zA-Z])(?=\\d)|(?<=[\\d])(?=[a-zA-Z])/)) // Further split between letters and numbers\n .filter(Boolean); // Remove empty strings\n};\n\nconst useBuildVariantProps = (\n componentName: string, \n variants: Record<string, string> = {},\n stateFlags: Record<string, boolean | undefined> = {},\n componentVariantOverride?: string,\n) => {\n const variantProps = useMemo(() => {\n let variantString = Object.entries(variants)\n .sort(([keyA], [keyB]) => keyA.localeCompare(keyB))\n .map(([, value]) => splitIntoWords(value).join('-').toLowerCase())\n .join('-');\n\n if (!variantString) {\n variantString = 'default';\n }\n\n // Create a string representation of state flags\n const stateFlagsStrings = Object.entries(stateFlags)\n .filter(([, value]) => value === true) // Only include true flags\n .reduce<Record<string, boolean | string | undefined>>((acc, [key, value]) => {\n if (value) {\n acc[key] = nativeBooleanAttributes.includes(key) ? true : 'true';\n }\n return acc;\n }, {})\n return {\n 'component-variant': componentVariantOverride ?? `${componentName}-${variantString}`,\n ...stateFlagsStrings,\n }\n }, [\n componentName,\n variants,\n stateFlags,\n componentVariantOverride,\n ]);\n \n return variantProps;\n}\n\nexport default useBuildVariantProps;","import React from 'react';\nimport cx from 'classnames';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\nimport styles from './Spinner.module.scss';\nimport { SpinnerProps } from './Spinner.types';\n\nconst Spinner = ({ className, 'component-variant': componentVariant }: SpinnerProps) => {\n const variantProps = useBuildVariantProps(\n 'spinner',\n {},\n undefined,\n componentVariant,\n );\n\n return (\n <div \n role=\"alert\" \n aria-atomic=\"true\" \n className={cx(styles.spinner, className)}\n {...variantProps}\n >\n <div className={styles.inner} />\n </div>\n );\n};\n\nexport default Spinner;\n","import cx from 'classnames';\nimport { type SyntheticEvent, useEffect, useMemo, useState } from 'react';\n\nimport Spinner from '../Spinner';\n\nimport styles from './image.module.scss';\nimport type { ImageProps } from './image.types';\n\nconst fitMap = {\n 'Fit': 'fit',\n 'Fill': 'fill',\n 'Crop': 'crop',\n};\n\nconst Image = (props: ImageProps): JSX.Element => {\n const {\n className,\n src,\n fit = 'Fit',\n fallback,\n onLoad,\n onError,\n showLoading = false,\n aspectRatio,\n alt = '',\n ...otherImageProps\n } = props;\n\n const [imgSrc, setImgSrc] = useState<string | undefined>(src);\n const [imgWidth, setImgWidth] = useState<number | undefined>(undefined);\n const [imgHeight, setImgHeight] = useState<number | undefined>(undefined);\n const [isLoading, setIsLoading] = useState<boolean>(true);\n\n // Set the image src and loading state when the src prop changes\n useEffect(() => {\n setImgSrc(src);\n setIsLoading(true);\n }, [src]);\n\n // Handle the image error\n const handleError = (error: SyntheticEvent<HTMLImageElement>) => {\n // If the image is already the fallback, don't set it again\n if (fallback && imgSrc !== fallback) {\n setImgSrc(fallback);\n }\n onError?.(error);\n };\n\n // Set the image width and height when the image is loaded\n const handleLoad = (e: SyntheticEvent<HTMLImageElement>) => {\n setImgWidth(e.currentTarget.naturalWidth);\n setImgHeight(e.currentTarget.naturalHeight);\n setIsLoading(false);\n onLoad?.();\n };\n\n // Calculate the natural aspect ratio of the loaded image\n const naturalAspectRatio = useMemo(() => {\n return imgWidth && imgHeight ? `${imgHeight / imgWidth * 100}%` : undefined;\n }, [imgWidth, imgHeight]);\n\n // Calculate the aspect padding based on the aspect ratio and fit\n const aspectPadding = useMemo(() => {\n // only use aspectRatio if fit is 'Fit'\n if (fit === 'Fit') {\n const [heightRatio, widthRatio] = aspectRatio?.split(':') || [];\n const width = parseInt(widthRatio);\n const height = parseInt(heightRatio);\n // If the aspect ratio is not a number, use the natural aspect ratio\n return (width && height && !isNaN(width) && !isNaN(height))\n ? `${(height / width) * 100}%`\n : naturalAspectRatio;\n }\n return undefined;\n }, [aspectRatio, fit, naturalAspectRatio]);\n\n return (\n <div\n className={cx(styles.image, className)}\n >\n <div\n className={cx(styles.imageContainer, {\n [styles.aspect]: aspectPadding,\n })}\n style={{\n paddingTop: aspectPadding,\n }}\n >\n <img\n {...otherImageProps}\n src={imgSrc || fallback}\n alt={alt}\n className={cx(styles.content, styles[fitMap[fit]])}\n onLoad={handleLoad}\n onError={handleError}\n />\n </div>\n {isLoading && showLoading &&\n <div className={cx(styles.loadingIcon)}>\n <Spinner />\n </div>\n }\n </div>\n );\n};\n\nexport default Image;","export const types = [\n 'Heading1', \n 'Heading2', \n 'Heading3', \n 'Heading4', \n 'Heading5', \n 'Heading6', \n 'BodyLarge',\n 'BodyMedium',\n 'BodySmall',\n] as const;\n\nexport const typesMap: {\n [key in typeof types[number]]: string;\n} = {\n Heading1: 'heading1',\n Heading2: 'heading2',\n Heading3: 'heading3',\n Heading4: 'heading4',\n Heading5: 'heading5',\n Heading6: 'heading6',\n BodyLarge: 'bodylarge',\n BodyMedium: 'bodymedium',\n BodySmall: 'bodysmall',\n};\n\nexport const weightNames = [\n 'Thin',\n 'ExtraLight',\n 'Light',\n 'Regular',\n 'Medium',\n 'SemiBold',\n 'Bold',\n 'ExtraBold',\n 'Black',\n 'ExtraBlack',\n] as const;\n\nexport const weightValues = [\n 100,\n 200,\n 300,\n 400,\n 500,\n 600,\n 700,\n 800,\n 900,\n 950,\n] as const;\n\nexport const weights = [\n ...weightNames,\n ...weightValues,\n] as const;\n\nexport const weightNameMap: {\n [key in typeof weights[number]]: string;\n} = {\n Thin: 'thin',\n ExtraLight: 'extralight',\n Light: 'light',\n Regular: 'regular',\n Medium: 'medium',\n SemiBold: 'semibold',\n Bold: 'bold',\n ExtraBold: 'extrabold',\n Black: 'black',\n ExtraBlack: 'extrablack',\n 100: 'thin',\n 200: 'extralight',\n 300: 'light',\n 400: 'regular',\n 500: 'medium',\n 600: 'semibold',\n 700: 'bold',\n 800: 'extrabold',\n 900: 'black',\n 950: 'extrablack',\n};\n\nexport const transforms = [\n 'None', \n 'Capitalize', \n 'UpperCase', \n 'LowerCase',\n] as const;\n\nexport const tansformMap: {\n [key in typeof transforms[number]]: string;\n} = {\n None: 'none',\n Capitalize: 'capitalize',\n UpperCase: 'upperCase',\n LowerCase: 'lowerCase',\n};","import React, { FC } from 'react';\nimport cx from 'classnames';\nimport styles from './Text.module.scss';\nimport type { TextProps, TextTypeEnum } from './Text.types';\nimport { tansformMap, typesMap, weightNameMap } from './contants';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\nconst componentTypeMap: Record<TextTypeEnum, React.ElementType<any, 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p'>> = {\n Heading1: 'h1',\n Heading2: 'h2',\n Heading3: 'h3',\n Heading4: 'h4',\n Heading5: 'h5',\n Heading6: 'h6',\n BodyLarge: 'p',\n BodyMedium: 'p',\n BodySmall: 'p',\n};\n\n/**\n * Text component definition.\n */\nconst Text = (props: TextProps) => {\n const {\n className,\n type = 'BodyMedium',\n weight = 'Regular',\n noWrap = false,\n whiteSpaceNoWrap = false,\n italic = false,\n decoration = 'None',\n transform = 'None',\n ellipsis = false,\n as,\n children,\n } = props;\n const TextComponent = as || componentTypeMap[type] || componentTypeMap.BodyMedium;\n\n const variantProps = useBuildVariantProps(\n 'text',\n {\n type: typesMap[type] || 'bodymedium',\n weight: weightNameMap[weight] || 'regular',\n }\n );\n\n return (\n <TextComponent\n className={cx(\n styles.text,\n {\n [styles.nowrap]: noWrap,\n [styles.whiteSpaceNoWrap]: whiteSpaceNoWrap,\n [styles.italic]: italic,\n [styles.underline]: decoration === 'Underline',\n [styles.strikethrough]: decoration === 'Strikethrough',\n [styles.ellipsis]: ellipsis,\n },\n styles[tansformMap[transform]],\n className,\n )}\n {...variantProps}\n >\n {children}\n </TextComponent>\n );\n};\nexport default Text;\n","import React from \"react\";\nimport { WrapTextNodesProps } from \"./WrapTextNodes.types\";\nimport Text from \"../../atoms/Text\";\n\n/**\n * Wraps string and number children in a <Text> component.\n */\nexport const WrapTextNodes: React.FC<WrapTextNodesProps> = (props) => {\n const { children, ...textProps } = props;\n return (\n <>\n {React.Children.map(children, (child) =>\n typeof child === 'string' || typeof child === 'number' ? (\n <Text {...textProps}>\n {child}\n </Text>\n ) : (\n child\n )\n )}\n </>\n );\n};\n","import React from 'react';\nimport cx from 'classnames';\nimport styles from './Button.module.scss';\nimport type { ButtonProps } from './Button.types';\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport Spinner from '../Spinner';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\n/**\n * Button component definition.\n */\nconst Button = (props: ButtonProps) => {\n const {\n className,\n appearance = 'Default',\n size = 'Medium',\n type = 'Filled',\n style = 'Primary',\n leadingIcon,\n trailingIcon,\n loading = false,\n disabled = false,\n onClick,\n children,\n actionType = 'button',\n ...restProps\n } = props;\n\n let leadingIconComponent, trailingIconComponent, content, loadingComponent;\n\n // If the button is in loading state replace content with a loading indicator\n if (loading) {\n loadingComponent = (\n <Spinner className={styles.loadingIcon} />\n );\n }\n\n // Render leading icon if it is passed\n if (leadingIcon) {\n leadingIconComponent = <div className={styles.leadingIcon}>\n {leadingIcon}\n </div>;\n }\n\n // Render training icon if it is passed\n if (trailingIcon) {\n trailingIconComponent = <div className={styles.trailingIcon}>\n {trailingIcon}\n </div>;\n }\n\n if (children) {\n content = <div className={styles.content}>\n <WrapTextNodes noWrap={true} className={styles.text}>\n {children}\n </WrapTextNodes>\n </div>;\n }\n\n const variantProps = useBuildVariantProps(\n 'button', \n { appearance, size, style, type }, \n { loading },\n );\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (!disabled && !loading) {\n onClick?.(event);\n }\n };\n\n return (\n <button\n className={cx(\n styles.button,\n className,\n { \n [styles.loading]: loading,\n },\n )}\n type={actionType}\n onClick={handleClick}\n disabled={disabled}\n {...variantProps}\n {...restProps}\n >\n {loadingComponent}\n {leadingIconComponent}\n {content}\n {trailingIconComponent}\n </button>\n );\n};\n\nexport default Button;\n","import { useEffect, useState } from 'react';\n\nconst svgCache: Record<string, string> = {};\nconst pendingRequests: Record<string, Promise<string> | undefined> = {};\n\nexport const useDynamicSVGImport = (name: string) => {\n const [svgContent, setSvgContent] = useState<string | null>(null);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<any>();\n\n useEffect(() => {\n let isMounted = true;\n\n const fetchSvg = async () => {\n if (svgCache[name]) {\n // If the SVG is already cached, return it\n setSvgContent(svgCache[name]);\n setLoading(false);\n return;\n }\n\n const pendingRequest = pendingRequests[name];\n if (pendingRequest) {\n // If there's already a pending request for this SVG, wait for it to resolve\n setLoading(true);\n try {\n const svgText = await pendingRequest;\n if (isMounted) {\n setSvgContent(svgText);\n setLoading(false);\n }\n } catch (err) {\n if (isMounted) {\n console.error(`Error fetching SVG ${name}:`, err);\n setError(err);\n setLoading(false);\n }\n }\n return;\n }\n \n // If not cached and no pending request, fetch the SVG\n setLoading(true);\n const fetchRequest = (async () => {\n try {\n const response = await fetch(`/icons/${name}.svg`);\n if (!response.ok) {\n throw new Error(`Failed to fetch SVG: ${response.status} ${response.statusText}`);\n }\n const svgText = await response.text();\n svgCache[name] = svgText; // Cache the SVG content locally\n return svgText;\n } catch (err) {\n throw err;\n } finally {\n delete pendingRequests[name]; // Clean up pending request once resolved\n }\n })();\n pendingRequests[name] = fetchRequest;\n \n try {\n const svgText = await fetchRequest;\n if (isMounted) {\n setSvgContent(svgText);\n }\n } catch (err) {\n if (isMounted) {\n console.error(`Error fetching SVG ${name}:`, err);\n setError(err);\n }\n } finally {\n if (isMounted) {\n setLoading(false);\n }\n }\n\n };\n\n void fetchSvg();\n\n return () => {\n isMounted = false;\n };\n }, [name]);\n\n return {\n error,\n loading,\n svgContent,\n };\n};","import React from 'react';\nimport cx from 'classnames';\n\nimport type { IconProps } from './Icon.types';\nimport styles from './Icon.module.scss';\nimport { useDynamicSVGImport } from './useDynamicSVGImport';\n\nconst sizeMap = {\n 'Small': 'small',\n 'Medium': 'medium',\n 'Large': 'large',\n};\n\nconst Icon = (props: IconProps) => {\n const {\n className,\n style = 'Filled',\n size = 'Medium',\n icon,\n } = props;\n const { svgContent, error, loading } = useDynamicSVGImport(`${icon}${style}`);\n\n if (error) {\n return <div className={cx(styles.icon, styles[sizeMap[size]], className)} />;\n }\n\n if (loading) {\n return <div className={cx(styles.icon, styles[sizeMap[size]], className)} />;\n }\n\n if (svgContent) {\n return (\n <div className={cx(styles.icon, styles[sizeMap[size]], className)}>\n <div className={styles.svg} dangerouslySetInnerHTML={{ __html: svgContent }}/>\n </div>\n );\n }\n\n return null;\n};\n\nexport default Icon;","import React from 'react';\nimport cx from 'classnames';\n\nimport type { IconButtonProps } from './IconButton.types';\nimport styles from './IconButton.module.scss';\nimport Button from '../Button';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\nconst IconButton = (props: IconButtonProps) => {\n const {\n className,\n appearance = 'Default',\n size = 'Medium',\n type = 'Filled',\n style = 'Primary',\n icon,\n ...otherProps\n } = props;\n \n const variantProps = useBuildVariantProps(\n 'icon-button',\n { appearance, size, style, type },\n );\n\n return (\n <Button\n className={cx(\n styles.iconButton,\n className,\n )}\n appearance={appearance}\n size={size}\n style={style}\n type={type}\n leadingIcon={icon}\n {...variantProps}\n {...otherProps}\n >\n </Button>\n );\n};\n\nexport default IconButton;","import { isValidElement } from \"react\";\nimport { ConditionalViewProps } from \"./ConditionalView.types\";\n\nconst ConditionalView = ({ condition, children }: ConditionalViewProps) => {\n // If condition is another ConditionalView, ignore our condition and return children directly\n if (isValidElement(condition) && condition.type === ConditionalView) {\n return Boolean(condition.props.condition) ? children : null;\n }\n \n return Boolean(condition) ? children : null;\n};\n\nexport default ConditionalView;\n","import { useState, useEffect, useCallback } from 'react';\n\ninterface UseControlledValueProps<T> {\n value?: T;\n onValueChange?: (value: T) => void;\n defaultValue?: T;\n}\n\nexport const useControlledValue = <T>({ value, onValueChange, defaultValue }: UseControlledValueProps<T>) => {\n const [internalValue, setInternalValue] = useState<T | undefined>(value ?? defaultValue);\n\n useEffect(() => {\n if (value !== undefined) {\n setInternalValue(value);\n }\n }, [value]);\n\n const handleValueChange = useCallback((newValue: T | ((prevValue: T | undefined) => T)) => {\n setInternalValue(prevValue => {\n const resolvedValue = typeof newValue === 'function' \n ? (newValue as (prevValue: T | undefined) => T)(prevValue)\n : newValue;\n \n onValueChange?.(resolvedValue);\n return resolvedValue;\n });\n }, [onValueChange]);\n\n return {\n value: internalValue,\n onValueChange: handleValueChange,\n };\n};\n","import React, { MutableRefObject, Ref, ReactNode } from 'react';\n\n/**\n * Clones valid React elements and applies additional props to them.\n *\n * @param children - The child nodes to process.\n * @param extraProps - Additional props to be passed to valid React elements.\n * @returns A ReactNode with extra props applied to valid elements, leaving others unchanged.\n */\nexport const applyPropsToChildren = (children: ReactNode, extraProps?: Record<string, any>): ReactNode => {\n if (!extraProps) return children;\n\n return React.Children.map(children, (child) =>\n React.isValidElement(child) ? React.cloneElement(child, extraProps) : child\n );\n};\n\n/**\n * Utility function to merge multiple refs into a single ref callback function.\n *\n * @param refs - Refs to be merged.\n * @returns A callback function that sets the value on all merged refs.\n */\nexport const mergeRefs = <T,>(...refs: (Ref<T> | undefined)[]): Ref<T> => {\n return (value: T) => {\n refs.forEach(ref => {\n if (!ref) return; // Skip null/undefined refs\n \n if (typeof ref === 'function') {\n // If the ref is a function, call it with the value\n // Special handling for flatpickr which doesn't handle null values properly\n if (value === null || value === undefined) {\n // Check if this might be a flatpickr ref by examining the function\n const refString = ref.toString();\n if (refString.includes('flatpickr') || refString.includes('createFlatpickrInstance')) {\n // Skip calling flatpickr with null - it will crash\n // Flatpickr cleanup should be handled by the component itself\n return;\n }\n }\n \n // For all other refs, call normally\n ref(value);\n } else if (typeof ref === 'object' && 'current' in ref) {\n // If the ref is an object (MutableRefObject), assign the value to its current property\n (ref as MutableRefObject<T>).current = value;\n }\n });\n };\n};\n","import { useRef } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { useControlledValue } from '../../molecules/FormField/useControlledValue';\nimport { mergeRefs } from '../../utils/utils';\nimport { InputProps } from './Input.types';\n\nconst inputTypeMap = {\n 'Text': 'text',\n 'Number': 'number',\n 'Email': 'email',\n 'Password': 'password',\n} as const;\n\nconst usePresenter = (props: InputProps, ref: React.ForwardedRef<HTMLInputElement>) => {\n const {\n leadingIcon,\n trailingIcon,\n value,\n onValueChange,\n disabled = false,\n invalid = false,\n inputType = 'Text',\n required,\n preProcessInput,\n 'component-variant': componentVariant,\n ...otherInputProps\n } = props;\n\n const internalInputRef = useRef<HTMLInputElement>(null);\n\n const { value: internalValue, onValueChange: handleValueChange } = useControlledValue({ value, onValueChange, defaultValue: '' }); \n\n const onInputChanged = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (preProcessInput && internalInputRef?.current) {\n internalInputRef.current.value = preProcessInput(event.target.value);\n }\n // updated value from change event object\n const updatedValue = internalInputRef.current?.value || '';\n handleValueChange(updatedValue);\n };\n\n const variantProps = useBuildVariantProps(\n 'input',\n { inputType },\n {\n disabled,\n invalid,\n },\n componentVariant,\n );\n\n return {\n variantProps,\n onInputChanged,\n otherInputProps,\n leadingIcon,\n trailingIcon,\n value: internalValue,\n disabled,\n invalid,\n inputType: inputTypeMap[inputType],\n required,\n componentVariant,\n inputRef: mergeRefs(internalInputRef, ref),\n };\n};\n\nexport default usePresenter;","import cx from 'classnames';\nimport { forwardRef } from 'react';\n\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport styles from './Input.module.scss';\nimport usePresenter from './Input.presenter';\nimport type { InputProps } from './Input.types';\n\nconst Input = forwardRef<HTMLInputElement, InputProps>((props: InputProps, ref) => {\n const {\n variantProps,\n onInputChanged,\n otherInputProps,\n leadingIcon,\n trailingIcon,\n value,\n disabled,\n invalid,\n inputType,\n required,\n inputRef,\n } = usePresenter(props, ref);\n\n return (\n <div\n className={cx(\n styles.input,\n props.className,\n {\n [styles.disabled]: disabled, // to apply styles for disabled state to parent div\n [styles.error]: invalid, // to apply styles for error state to parent div\n },\n )}\n {...variantProps}\n >\n <ConditionalView condition={leadingIcon}>\n <div className={cx(styles.leadingIcon)}>\n {leadingIcon}\n </div>\n </ConditionalView>\n <input\n {...otherInputProps}\n aria-invalid={invalid}\n className={cx(styles.inputElement)}\n value={value || ''}\n onChange={onInputChanged}\n disabled={disabled}\n type={inputType}\n required={required}\n ref={inputRef}\n id={props.id}\n />\n <ConditionalView condition={trailingIcon}>\n <div className={cx(styles.trailingIcon)}>\n {trailingIcon}\n </div>\n </ConditionalView>\n </div>\n );\n});\n\nexport default Input;\n","import cx from 'classnames';\nimport { forwardRef } from 'react';\n\nimport styles from './TextArea.module.scss';\nimport usePresenter from './TextArea.presenter';\nimport type { TextAreaProps } from './TextArea.types';\n\nconst TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>((props: TextAreaProps, ref) => {\n const {\n value,\n onInputChanged,\n disabled,\n invalid,\n required,\n otherTextAreaProps,\n variantProps,\n } = usePresenter(props);\n\n return (\n <textarea\n {...otherTextAreaProps}\n className={cx(styles.textArea, {\n [styles.error]: invalid, // to apply styles for error state to parent div\n }, props.className)}\n ref={ref}\n aria-invalid={invalid}\n value={value || ''}\n onChange={onInputChanged}\n disabled={disabled}\n required={required}\n id={props.id}\n {...variantProps}\n />\n );\n});\n\nexport default TextArea;","import useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { useControlledValue } from '../../molecules/FormField/useControlledValue';\nimport { TextAreaProps } from './TextArea.types';\n\nconst usePresenter = (props: TextAreaProps) => {\n const {\n value,\n onValueChange,\n disabled = false,\n invalid = false,\n required,\n ...otherTextAreaProps\n } = props;\n\n const { value: textAreaValue, onValueChange: handleValueChange } = useControlledValue({ value, onValueChange, defaultValue: '' });\n\n const onInputChanged = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n // updated value from change event object\n const updatedValue = event.target.value || '';\n handleValueChange(updatedValue);\n };\n\n const variantProps = useBuildVariantProps(\n 'text-area',\n {},\n { \n disabled,\n invalid,\n },\n );\n\n return {\n value: textAreaValue,\n onInputChanged,\n disabled,\n invalid,\n required,\n otherTextAreaProps,\n variantProps,\n }\n};\n\nexport default usePresenter;","import React, { useState, useEffect, useMemo } from 'react';\nimport { BreakpointProps, ResponsiveComponentProps } from './ResponsiveComponent.types';\n\nexport const Breakpoint = <T,>({ children }: BreakpointProps<T>) => {\n return <>{children}</>;\n};\n\nconst ResponsiveComponent = <T,>(props: ResponsiveComponentProps<T>) => {\n const { component: Component, children } = props;\n\n // Parse each child of ResponsiveComponent\n const parsedBreakpoints = (React.Children.map(children, (child) => {\n if (React.isValidElement(child) && child.type === Breakpoint && child.props.children) {\n // Get the width of the breakpoint\n const width = child.props.width as number;\n // Get the children props of the breakpoint that match the component type\n const childProps = React.Children.map(child.props.children, (breakpointChild) => {\n // Check if the child is a valid React element and if it is the same type as the component\n if (React.isValidElement(breakpointChild) && breakpointChild.type === Component) {\n const breakpointChildProps = breakpointChild.props;\n return breakpointChildProps;\n }\n });\n return {\n width,\n childProps: childProps[0],\n };\n }\n }) || [])\n .filter(Boolean)\n // Reduce the breakpoints to an object with the width as the key and the child props as the value\n .reduce<Record<number, any>>((acc, curr) => {\n acc[curr.width] = curr.childProps;\n return acc;\n }, {}) || {};\n\n const [activeBreakpoint, setActiveBreakpoint] = useState<number | null>(null);\n const breakpoints = useMemo(() => {\n // Derive breakpoints from the propsMap keys\n return Object.keys(parsedBreakpoints)\n .map((key) => parseInt(key, 10))\n .sort((a, b) => b - a); // Sort descending for easier matching\n }, [parsedBreakpoints]);\n\n useEffect(() => {\n const breakpoints = Object.keys(parsedBreakpoints)\n .map((key) => parseInt(key, 10))\n .sort((a, b) => b - a); // Sort descending\n\n // Create an array of media query objects based on the breakpoints\n const mediaQueries = breakpoints.map((breakpoint) => ({\n // The current breakpoint value (e.g., 375, 768, 1024, etc.)\n breakpoint,\n\n // Create a media query for the current breakpoint using matchMedia\n // The query checks if the viewport's width is at least the specified breakpoint value\n query: window.matchMedia(`(min-width: ${breakpoint}px)`),\n }));\n\n\n const updateActiveBreakpoint = () => {\n // Find the first media query that matches the current viewport width\n const matchingQuery = mediaQueries.find(({ query }) => query.matches);\n\n // If a matching query is found, set the active breakpoint to this query's breakpoint value\n if (matchingQuery) {\n setActiveBreakpoint(matchingQuery.breakpoint);\n } else {\n // If no query matches (i.e., the viewport width is smaller than the smallest breakpoint),\n // fallback to the smallest breakpoint in the breakpoints array\n setActiveBreakpoint(Math.min(...breakpoints));\n }\n };\n\n // Attach listeners\n mediaQueries.forEach(({ query }) =>\n query.addEventListener('change', updateActiveBreakpoint)\n );\n\n // Set the initial breakpoint\n updateActiveBreakpoint();\n\n return () => {\n // Cleanup listeners\n mediaQueries.forEach(({ query }) =>\n query.removeEventListener('change', updateActiveBreakpoint)\n );\n };\n }, [parsedBreakpoints]);\n\n // Fallback to the smallest breakpoint if none match\n const fallbackBreakpoint = Math.min(...breakpoints);\n \n // Use the active breakpoint or fallback to the smallest\n const breakpoint = activeBreakpoint ?? fallbackBreakpoint;\n\n // Get the props for the breakpoint\n const activeProps = parsedBreakpoints[breakpoint];\n\n return <Component {...activeProps} />;\n};\n\nexport default ResponsiveComponent;\n","import { useEffect, useState } from 'react';\n\nexport type CheckboxFieldProps = {\n checked?: boolean;\n defaultChecked?: boolean;\n value?: boolean;\n onValueChange?: (value: boolean) => void;\n};\n\nconst useCheckboxField = ({ checked, defaultChecked, value, onValueChange }: CheckboxFieldProps) => {\n const [isChecked, setIsChecked] = useState(defaultChecked ?? checked ?? value ?? false);\n\n useEffect(() => {\n setIsChecked(checked ?? value ?? false);\n }, [checked, value]);\n\n const onCheckboxChanged = (event: React.ChangeEvent<HTMLInputElement>) => {\n const updatedValue = event.target.checked;\n setIsChecked(updatedValue);\n onValueChange?.(updatedValue);\n };\n\n return { isChecked, onCheckboxChanged };\n};\n\nexport default useCheckboxField;","import cx from 'classnames';\nimport { forwardRef } from 'react';\n\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport styles from './Toggle.module.scss';\nimport usePresenter from './Toggle.presenter';\nimport type { ToggleProps } from './Toggle.types';\n\nconst Toggle = forwardRef<HTMLInputElement, ToggleProps>((props: ToggleProps, ref) => {\n const {\n disabled,\n invalid,\n isChecked,\n labelAlignment,\n onToggleChanged,\n otherInputProps,\n required,\n variantProps,\n } = usePresenter(props);\n\n return (\n <label\n className={cx(\n styles.toggle,\n props.className,\n {\n [styles.labelLeft]: labelAlignment === 'Left',\n [styles.labelRight]: labelAlignment === 'Right',\n },\n )}\n {...variantProps}\n >\n <input\n {...otherInputProps}\n type=\"checkbox\"\n className={styles.input}\n checked={isChecked}\n onChange={onToggleChanged}\n disabled={disabled}\n required={required}\n ref={ref}\n id={props.id}\n aria-invalid={invalid}\n />\n <span className={cx(styles.track, { [styles.disabled]: disabled })}>\n <span className={styles.thumb} />\n </span>\n <ConditionalView condition={props.children}>\n <WrapTextNodes className={styles.text}>\n {props.children}\n </WrapTextNodes>\n </ConditionalView>\n </label>\n );\n});\n\nexport default Toggle;","import { useEffect } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport useCheckboxField from '../Checkbox/useCheckboxField';\nimport { ToggleProps } from './Toggle.types';\n\nconst usePresenter = (props: ToggleProps) => {\n const {\n checked,\n value,\n onValueChange,\n disabled = false,\n invalid = false,\n required,\n labelAlignment = 'Left',\n defaultChecked = false,\n children,\n ...otherInputProps\n } = props;\n\n const { isChecked, onCheckboxChanged } = useCheckboxField({ checked, defaultChecked, value, onValueChange });\n\n const variantProps = useBuildVariantProps(\n 'toggle',\n {\n styles: isChecked ? 'selected' : 'unselected',\n },\n {\n disabled,\n invalid,\n },\n );\n\n return {\n variantProps,\n isChecked,\n onToggleChanged: onCheckboxChanged,\n otherInputProps,\n disabled,\n invalid,\n required,\n labelAlignment,\n defaultChecked,\n };\n};\n\nexport default usePresenter;","import cx from 'classnames';\nimport React, { forwardRef } from 'react';\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport Button from '../Button';\nimport styles from './ToggleButton.module.scss';\nimport usePresenter from './ToggleButton.presenter';\nimport { ToggleButtonProps } from './ToggleButton.types';\n\nconst ToggleButton = forwardRef<HTMLInputElement, ToggleButtonProps>((props, ref) => {\n const {\n otherProps,\n isChecked,\n handleChange,\n disabled,\n required,\n invalid,\n className,\n appearance,\n style,\n size,\n id,\n } = usePresenter(props);\n\n return (\n <>\n <input\n type=\"checkbox\"\n className={styles.input}\n checked={isChecked}\n onChange={handleChange}\n disabled={disabled}\n required={required}\n ref={ref}\n id={id}\n aria-invalid={invalid}\n />\n <Button\n {...otherProps}\n className={cx(styles.toggleButton, {\n [styles.checked]: isChecked,\n }, className)}\n appearance={appearance}\n style={style}\n size={size}\n type={isChecked ? 'Filled' : 'Outlined'}\n onClick={() => handleChange({ target: { checked: !isChecked } } as React.ChangeEvent<HTMLInputElement>)}\n disabled={disabled}\n actionType='button'\n >\n <ConditionalView condition={props.children}>\n <WrapTextNodes>\n {props.children}\n </WrapTextNodes>\n </ConditionalView>\n </Button>\n </>\n );\n});\n\nexport default ToggleButton;","import { useCallback, useMemo } from 'react';\nimport useCheckboxField from '../Checkbox/useCheckboxField';\nimport { ToggleButtonProps } from './ToggleButton.types';\n\nconst usePresenter = (props: ToggleButtonProps) => {\n const {\n value,\n checked,\n defaultChecked = false,\n onValueChange,\n disabled = false,\n required = false,\n invalid = false,\n children,\n className,\n appearance = 'Default',\n style = 'Primary',\n size = 'Medium',\n id,\n ...otherProps\n } = props;\n\n const { isChecked, onCheckboxChanged } = useCheckboxField({ checked, defaultChecked, value, onValueChange });\n\n return {\n otherProps,\n isChecked,\n handleChange: onCheckboxChanged,\n disabled,\n required,\n invalid,\n className,\n appearance,\n style,\n size,\n id,\n };\n};\n\nexport default usePresenter;","import { TooltipDirectionEnum } from './Tooltip.types';\n\nexport const TOOLTIP_ARROW_CONSTANTS = {\n WIDTH: 28,\n HEIGHT: 8,\n OFFSET: 12,\n} as const;\n\nexport const ARROW_DIMENSIONS_MAP: Record<TooltipDirectionEnum, { width: number; height: number }> = {\n 'Top': { width: TOOLTIP_ARROW_CONSTANTS.WIDTH, height: TOOLTIP_ARROW_CONSTANTS.HEIGHT },\n 'Bottom': { width: TOOLTIP_ARROW_CONSTANTS.WIDTH, height: TOOLTIP_ARROW_CONSTANTS.HEIGHT },\n 'Left': { width: TOOLTIP_ARROW_CONSTANTS.HEIGHT, height: TOOLTIP_ARROW_CONSTANTS.WIDTH },\n 'Right': { width: TOOLTIP_ARROW_CONSTANTS.HEIGHT, height: TOOLTIP_ARROW_CONSTANTS.WIDTH },\n} as const;\n\nexport const TOOLTIP_VARIANT_MAP = {\n 'Top-Center': 'center-top',\n 'Top-Start': 'start-top',\n 'Top-End': 'end-top',\n 'Bottom-Center': 'center-bottom',\n 'Bottom-Start': 'start-bottom',\n 'Bottom-End': 'end-bottom',\n 'Left-Center': 'center-left',\n 'Left-Start': 'start-left',\n 'Left-End': 'end-left',\n 'Right-Center': 'center-right',\n 'Right-Start': 'start-right',\n 'Right-End': 'end-right',\n} as const;\n","import { RenderStateViewProps } from \"./RenderStateView.types\";\n\nconst isEmpty = (data: unknown) => {\n return !data || (Array.isArray(data) && data.length === 0);\n};\n\nexport const usePresenter = <T = unknown, P = any>(props: RenderStateViewProps<T, P>) => {\n const { data, isLoading, errorData } = props;\n\n const showError = Boolean(errorData);\n const showLoading = !errorData && Boolean(isLoading);\n const showEmpty = !errorData && !isLoading && isEmpty(data);\n const showFilled = !errorData && !isLoading && !isEmpty(data);\n\n return { showError, showLoading, showEmpty, showFilled };\n};\n","import { useCallback, useEffect, useRef } from 'react';\n\n/**\n * Custom hook that debounces a callback function\n * @param callback - The function to debounce\n * @param delay - The debounce delay in milliseconds\n * @returns Object containing the debounced function and a cancel function\n */\nexport const useDebounce = <T extends (...args: any[]) => void>(\n callback: T,\n delay: number\n) => {\n const timeoutRef = useRef<NodeJS.Timeout>();\n const callbackRef = useRef(callback);\n\n // Update callback ref when callback changes\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n const debouncedCallback = useCallback(\n (...args: Parameters<T>) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n timeoutRef.current = setTimeout(() => {\n callbackRef.current(...args);\n }, delay);\n },\n [delay]\n );\n\n const cancel = useCallback(() => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = undefined;\n }\n }, []);\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n return {\n debouncedCallback,\n cancel,\n };\n};","import type { AriaRole, KeyboardEvent, KeyboardEventHandler, SyntheticEvent } from 'react';\n\nexport type ArrowDirectionEnum = 'ArrowUp' | 'ArrowDown' | 'ArrowLeft' | 'ArrowRight';\n\nexport type AccessibilityActions = {\n onClick?: (event?: SyntheticEvent) => void;\n onTab?: (forward: boolean) => void;\n onEsc?: () => void;\n onArrowNavigation?: (direction: ArrowDirectionEnum) => void;\n};\n\nexport type AccessibilityProps = {\n tabIndex?: number;\n role?: AriaRole;\n onKeyDown?: KeyboardEventHandler<unknown>;\n};\n\n/** Executes the provided function with setTimeout with 0 delay */\nexport const runInNextCycle = (func: (() => void)): void => {\n setTimeout(func, 0);\n};\n\n/**\n * Generates accessibility properties for clickable elements.\n * @param {boolean} [addIndex] -\n * @param {AriaRole} [role='button'] - ARIA role attribute to be assigned to the element.\n * @returns {AccessibilityProps}\n */\nexport const getClickAccessibilityProps = (params: {\n /** Object containing action handlers for various key events. */\n actions: AccessibilityActions;\n /** If true, sets the tabIndex to 0 to make the element focusable. */\n addIndex?: boolean;\n /** Accessibility properties including ARIA role and key event handlers. */\n role?: AriaRole;\n}): AccessibilityProps => {\n const { actions, addIndex, role } = params;\n // Initialize the element properties with default role 'button' or provided role\n const elementProps: AccessibilityProps = {\n role: role || 'button',\n onKeyDown: (event: KeyboardEvent) => {\n // Handle different key events\n switch (event.key) {\n case 'Enter':\n case ' ':\n case 'Spacebar':\n event.preventDefault(); // Prevent default action for Enter and Space keys\n console.log('here in keydown handler for accessibility', actions);\n\n // Trigger onClick action if defined\n if (actions.onClick) {\n actions.onClick(event);\n }\n break;\n case 'Escape':\n // Trigger onEsc action if defined\n if (actions.onEsc) {\n actions.onEsc();\n }\n break;\n case 'Tab':\n // Trigger onTab action if defined, passing a boolean indicating the direction of tabbing\n if (actions.onTab) {\n actions.onTab(!event.shiftKey);\n }\n break;\n case 'ArrowUp':\n case 'ArrowDown':\n if (actions.onArrowNavigation) {\n actions.onArrowNavigation(event.key);\n }\n break;\n }\n },\n };\n\n // Add tabIndex property if addIndex is true to make the element focusable\n if (addIndex) {\n elementProps.tabIndex = 0;\n }\n\n // Return the constructed accessibility properties\n return elementProps;\n};\n\n/**\n * Handles arrow key navigation for category elements.\n *\n * This function allows users to navigate through keys.\n * It focuses on the next or previous element and optionally triggers a callback.\n *\n * @param {boolean} forward - Whether to move forward (true) or backward (false) in the tab order.\n * @param {number} index - The current index of the focused element.\n * @param {HTMLAnchorElement[]} arrayOfRefs - Array of element references to navigate through.\n * @param {(nextIndex: number) => void} [selectFunction] - Optional callback to handle selection.\n */\nexport const handleKeyboardNavigation = (\n forward: boolean,\n index: number,\n arrayOfRefs: HTMLAnchorElement[] | HTMLButtonElement[] | HTMLElement[],\n selectFunction?: (nextIndex: number) => void,\n shouldFocusNextElement: boolean = true,\n) => {\n // Guard clause: Return if refs array is invalid\n if (!arrayOfRefs || !Array.isArray(arrayOfRefs)) {\n return;\n }\n\n // Determine the next index based on navigation direction\n const nextIndex = forward ? Math.min(index + 1, arrayOfRefs.length - 1) : Math.max(index - 1, 0);\n\n runInNextCycle(() => {\n // Focus the next element in the refs array\n if (shouldFocusNextElement) {\n arrayOfRefs[nextIndex]?.focus();\n }\n // Call the selection function, if provided\n if (selectFunction) {\n selectFunction(nextIndex);\n }\n });\n};\n","import cx from 'classnames';\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport Icon from '../Icon';\nimport styles from './Tooltip.module.scss';\nimport usePresenter from './Tooltip.presenter';\nimport { TooltipProps } from './Tooltip.types';\nimport { ConditionalView } from '../../utils';\n\nconst Tooltip = (props: TooltipProps) => {\n const {\n direction,\n action,\n target,\n position,\n showTooltip,\n hideTooltip,\n toggleTooltip,\n targetRef,\n tooltipRef,\n wrapperRef,\n variantProps,\n arrowStyle,\n style,\n visible,\n } = usePresenter(props);\n\n return (\n <div ref={wrapperRef} className={cx(styles.tooltipWrapper,\n {\n [styles.outlined]: style === 'Outlined'\n }, props.className)}\n {...variantProps}\n >\n <div\n ref={targetRef}\n className={styles.tooltipTarget}\n onMouseEnter={action === 'Hover' ? showTooltip : undefined}\n onMouseLeave={action === 'Hover' ? hideTooltip : undefined}\n onClick={action === 'Click' ? toggleTooltip : undefined}\n >\n {target}\n </div>\n <ConditionalView condition={visible}>\n <div\n className={styles.tooltipContent}\n ref={tooltipRef}\n style={{ top: `${position.top}px`, left: `${position.left}px` }}\n data-direction={direction}\n >\n <WrapTextNodes className={styles.text}>\n {props.children}\n </WrapTextNodes>\n <div className={styles.tooltipArrow}\n style={arrowStyle}\n >\n <Icon className={cx(styles.tooltipArrowIcon, styles.tailFill)} icon=\"Tail\" style=\"Filled\" />\n <Icon className={cx(styles.tooltipArrowIcon, styles.tailOutline)} icon=\"Tail\" style=\"Outlined\" />\n </div>\n </div>\n </ConditionalView>\n </div>\n );\n};\n\nexport default Tooltip;\n","import { CSSProperties, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { ARROW_DIMENSIONS_MAP, TOOLTIP_ARROW_CONSTANTS, TOOLTIP_VARIANT_MAP } from \"./Tooltip.constants\";\nimport { TooltipProps } from './Tooltip.types';\n\nconst usePresenter = (props: TooltipProps) => {\n const {\n direction = 'Top',\n alignment = 'Center',\n action = 'Hover',\n isVisible = false,\n style = 'Default',\n target,\n } = props;\n\n const [visible, setVisible] = useState(isVisible);\n const [position, setPosition] = useState({ top: 0, left: 0 });\n const tooltipRef = useRef<HTMLDivElement>(null);\n const targetRef = useRef<HTMLDivElement>(null);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const [arrowOffset, setArrowOffset] = useState(0);\n\n const showTooltip = () => {\n setVisible(true);\n };\n\n const hideTooltip = () => {\n setVisible(false);\n };\n\n const toggleTooltip = () => {\n setVisible((prev) => !prev);\n };\n\n const updatePosition = useCallback((e?: Event) => {\n if (!visible) return;\n\n if (targetRef.current && wrapperRef.current) {\n const tooltipRect = tooltipRef.current?.getBoundingClientRect();\n const targetRect = targetRef.current.getBoundingClientRect();\n const wrapperRect = wrapperRef.current.getBoundingClientRect();\n\n if (!tooltipRect) return;\n let top = targetRect.top - wrapperRect.top,\n left = targetRect.left - wrapperRect.left;\n\n if (action === 'Follow' && target) {\n const followRect = targetRef.current.firstElementChild?.getBoundingClientRect() || targetRect;\n top = followRect.top - wrapperRect.top;\n left = followRect.left - wrapperRect.left;\n }\n\n switch (direction) {\n case 'Top':\n top -= tooltipRect.height + 10;\n break;\n case 'Bottom':\n top += targetRect.height + 10;\n break;\n case 'Left':\n left -= tooltipRect.width + 10;\n break;\n case 'Right':\n left += targetRect.width + 10;\n break;\n }\n\n switch (alignment) {\n case 'Center':\n if (direction === 'Top' || direction === 'Bottom') {\n left += (targetRect.width - tooltipRect.width) / 2;\n } else {\n top += (targetRect.height - tooltipRect.height) / 2;\n }\n break;\n case 'End':\n if (direction === 'Top' || direction === 'Bottom') {\n left += targetRect.width - tooltipRect.width;\n } else {\n top += targetRect.height - tooltipRect.height;\n }\n break;\n case 'Start':\n break;\n }\n // Calculate the arrow offset based on alignment\n if (direction === 'Top' || direction === 'Bottom') {\n const tooltipWidth = tooltipRect.width;\n\n // if the tooltip is taller than the arrow, set the arrow offset\n if ((tooltipWidth - TOOLTIP_ARROW_CONSTANTS.WIDTH) > TOOLTIP_ARROW_CONSTANTS.WIDTH) {\n // For Top/Bottom: arrow position along horizontal axis based on alignment\n let offset = 0;\n switch (alignment) {\n case 'Start':\n offset = 20; // Arrow at left side of tooltip\n break;\n case 'Center':\n offset = tooltipRect.width / 2; // Arrow at center of tooltip\n break;\n case 'End':\n offset = tooltipRect.width - 20; // Arrow at right side of tooltip\n break;\n }\n setArrowOffset(offset);\n } else {\n setArrowOffset(tooltipRect.width / 2);\n }\n } else if (direction === 'Left' || direction === 'Right') {\n const tooltipHeight = tooltipRect.height;\n\n // if the tooltip is wider than the arrow, set the arrow offset\n if ((tooltipHeight - TOOLTIP_ARROW_CONSTANTS.WIDTH) > TOOLTIP_ARROW_CONSTANTS.WIDTH) {\n // For Left/Right: arrow position along vertical axis based on alignment\n let offset = 0;\n switch (alignment) {\n case 'Start':\n offset = 12; // Arrow at top of tooltip\n break;\n case 'Center':\n offset = tooltipRect.height / 2; // Arrow at center of tooltip\n break;\n case 'End':\n offset = tooltipRect.height - 12; // Arrow at bottom of tooltip\n break;\n }\n setArrowOffset(offset);\n } else {\n setArrowOffset(tooltipRect.height / 2);\n }\n }\n setPosition({ top, left });\n }\n }, [visible, targetRef.current, tooltipRef.current, wrapperRef.current, action, direction, alignment]);\n\n useEffect(() => {\n if (visible) {\n updatePosition();\n window.addEventListener('scroll', updatePosition);\n window.addEventListener('resize', updatePosition);\n if (action === 'Follow') {\n window.addEventListener('mousemove', updatePosition);\n }\n }\n return () => {\n window.removeEventListener('scroll', updatePosition);\n window.removeEventListener('resize', updatePosition);\n if (action === 'Follow') {\n window.removeEventListener('mousemove', updatePosition);\n }\n };\n }, [visible, targetRef.current, tooltipRef.current]);\n\n const variantKey = `${direction}-${alignment}` as keyof typeof TOOLTIP_VARIANT_MAP;\n const baseVariant = TOOLTIP_VARIANT_MAP[variantKey];\n\n const variantProps = useBuildVariantProps(\n 'tooltip',\n { baseVariant, style },\n {},\n );\n\n const arrowStyle: CSSProperties = useMemo(() => {\n let positions: CSSProperties = {};\n if (direction === 'Top' || direction === 'Bottom') {\n positions.left = arrowOffset;\n } else {\n positions.top = arrowOffset;\n }\n\n const arrowDimensions = ARROW_DIMENSIONS_MAP[direction];\n\n return {\n ...positions,\n ...arrowDimensions,\n };\n }, [arrowOffset, direction]);\n\n return {\n direction,\n action,\n target,\n position,\n showTooltip,\n hideTooltip,\n toggleTooltip,\n targetRef,\n tooltipRef,\n wrapperRef,\n variantProps,\n arrowStyle,\n style,\n visible,\n };\n};\n\nexport default usePresenter;\n\n","import classNames from 'classnames';\nimport { forwardRef } from 'react';\nimport styles from './CustomToggle.module.scss';\nimport usePresenter from './CustomToggle.presenter';\nimport { CustomToggleProps } from './CustomToggle.types';\n\nconst CustomToggle = forwardRef<HTMLInputElement, CustomToggleProps>((props, ref) => {\n const {\n variantProps,\n isChecked,\n handleChange,\n disabled,\n invalid,\n otherInputProps,\n required,\n content,\n } = usePresenter(props);\n\n return (\n <label\n className={classNames(\n styles.toggleWrapper,\n {\n [styles.disabled]: disabled,\n [styles.invalid]: invalid,\n },\n props.className,\n )}\n {...variantProps}\n >\n <input\n {...otherInputProps}\n type=\"checkbox\"\n className={styles.input}\n checked={isChecked}\n onChange={handleChange}\n disabled={disabled}\n required={required}\n ref={ref}\n aria-invalid={invalid}\n />\n <div className={styles.toggle}>\n {content}\n </div>\n </label>\n );\n});\n\nexport default CustomToggle;\n","import { useMemo } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport useCheckboxField from '../Checkbox/useCheckboxField';\nimport { CustomToggleProps } from './CustomToggle.types';\n\nconst usePresenter = (props: CustomToggleProps) => {\n const {\n checked,\n value,\n onValueChange,\n disabled = false,\n required = false,\n invalid = false,\n offContent,\n onContent,\n className,\n ...otherInputProps\n } = props;\n\n const { isChecked, onCheckboxChanged } = useCheckboxField({ checked, value, onValueChange });\n\n const content = isChecked ? onContent : offContent;\n\n const variantProps = useBuildVariantProps(\n 'custom-toggle',\n {\n styles: isChecked ? 'selected' : 'unselected',\n },\n {\n disabled,\n invalid,\n },\n );\n\n return {\n variantProps,\n isChecked,\n handleChange: onCheckboxChanged,\n disabled,\n invalid,\n otherInputProps,\n required,\n content,\n };\n};\n\nexport default usePresenter;","import React from 'react';\nimport cx from 'classnames';\nimport styles from './Chip.module.scss';\nimport type { ChipProps } from './Chip.types';\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport Icon from '../Icon';\nimport IconButton from '../IconButton';\n\n/**\n * Chip component definition.\n */\nconst Chip = (props: ChipProps) => {\n const {\n className,\n type = 'Filled',\n style = 'A',\n size = 'Medium',\n leadingIcon,\n trailingIcon,\n closeIcon,\n isDisabled = false,\n onClick,\n onClose,\n children,\n corner = 'Rounded',\n isDismissible = false,\n ...restProps\n } = props;\n\n let leadingIconComponent, trailingIconComponent, content, closeIconComponent;\n\n // Render leading icon if provided\n if (leadingIcon) {\n leadingIconComponent = <div className={styles.leadingIcon}>{leadingIcon}</div>;\n }\n\n // Render trailing icon if provided\n if (trailingIcon) {\n trailingIconComponent = <div className={styles.trailingIcon}>{trailingIcon}</div>;\n }\n\n // Render close icon if dismissible\n if (isDismissible) {\n const closeIconView = closeIcon || <Icon icon=\"CloseDelete\" style='Outlined' size='Small' />;\n closeIconComponent = (\n <IconButton\n type='Ghost'\n size='Small'\n onClick={(e) => {\n e?.stopPropagation();\n onClose?.(e);\n }}\n icon={closeIconView}\n />\n );\n }\n\n // Render chip content\n if (children) {\n content = (\n <div className={styles.content}>\n <WrapTextNodes noWrap={true} className={styles.text}>\n {children}\n </WrapTextNodes>\n </div>\n );\n }\n\n const variantProps = useBuildVariantProps(\n 'chip',\n { type, size, style, corner },\n { isDisabled },\n );\n\n return (\n <div\n className={cx(\n styles.chip,\n className,\n {\n [styles.disabled]: isDisabled,\n },\n )}\n onClick={!isDisabled ? onClick : undefined}\n {...variantProps}\n {...restProps}\n >\n <div className={styles.iconAndContentContainer}>\n {leadingIconComponent}\n {content}\n {trailingIconComponent}\n </div>\n {closeIconComponent}\n </div>\n );\n};\n\nexport default Chip;","import cx from 'classnames';\nimport { forwardRef } from 'react';\n\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport Icon from '../Icon';\nimport styles from './Checkbox.module.scss';\nimport usePresenter from './Checkbox.presenter';\nimport type { CheckboxProps } from './Checkbox.types';\n\nconst Checkbox = forwardRef<HTMLInputElement, CheckboxProps>((props: CheckboxProps, ref) => {\n const {\n labelAlignment,\n disabled,\n isChecked,\n required,\n name,\n invalid,\n variantProps,\n otherInputProps,\n onCheckboxChanged,\n } = usePresenter(props);\n\n return (\n <label\n className={cx(\n styles.checkbox,\n props.className,\n {\n [styles.labelLeft]: labelAlignment === 'Left',\n [styles.labelRight]: labelAlignment === 'Right',\n [styles.disabled]: disabled,\n },\n )}\n {...variantProps}\n >\n <input\n {...otherInputProps}\n type=\"checkbox\"\n className={styles.input}\n checked={isChecked}\n onChange={onCheckboxChanged}\n disabled={disabled}\n required={required}\n ref={ref}\n name={name}\n value={name}\n aria-invalid={invalid}\n id={props.id}\n />\n <div className={styles.iconWrapper}>\n <div className={styles.iconContainer}>\n <Icon icon=\"Check\" style=\"Filled\" className={cx(styles.icon)} />\n </div>\n </div>\n <ConditionalView condition={props.children}>\n <WrapTextNodes className={styles.label}>\n {props.children}\n </WrapTextNodes>\n </ConditionalView>\n </label>\n );\n});\n\nexport default Checkbox;\n","import { useMemo } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { CheckboxProps } from './Checkbox.types';\nimport useCheckboxField from './useCheckboxField';\n\nconst usePresenter = (props: CheckboxProps) => {\n const {\n className,\n size = 'Medium',\n type = 'Default',\n checked,\n onValueChange,\n disabled = false,\n invalid = false,\n required,\n labelAlignment = 'Left',\n defaultChecked = false,\n children,\n name,\n value,\n ...otherInputProps\n } = props;\n\n const { isChecked, onCheckboxChanged } = useCheckboxField({ checked, defaultChecked, value, onValueChange });\n\n const variantProps = useBuildVariantProps(\n 'checkbox',\n {\n styles: isChecked ? 'Selected' : 'Unselected',\n size,\n type,\n },\n {\n disabled,\n invalid,\n },\n );\n\n return {\n otherInputProps,\n onCheckboxChanged,\n variantProps,\n labelAlignment,\n disabled,\n isChecked,\n required,\n name,\n invalid,\n };\n};\n\nexport default usePresenter;","import cx from 'classnames';\nimport React from 'react';\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport Checkbox from '../Checkbox/Checkbox';\nimport IconButton from '../IconButton/IconButton';\nimport styles from './CheckboxItem.module.scss';\nimport usePresenter from './CheckboxItem.presenter';\nimport type { CheckboxItemProps } from './CheckboxItem.types';\n\nconst CheckboxItem = React.forwardRef<HTMLInputElement, CheckboxItemProps>((props: CheckboxItemProps, ref) => {\n const {\n variantProps,\n isChecked,\n handleChange,\n required,\n otherInputProps,\n defaultChecked,\n invalid,\n labelAlignment,\n value,\n disabled,\n showRightButton,\n onRightButtonClick,\n rightButtonIcon,\n id,\n } = usePresenter(props);\n\n return (\n <div\n className={cx(\n styles.checkboxItem,\n props.className,\n {\n [styles.disabled]: disabled,\n [styles.hasRightButton]: showRightButton,\n },\n )}\n {...variantProps}\n >\n <Checkbox\n checked={isChecked}\n defaultChecked={defaultChecked}\n onValueChange={handleChange}\n disabled={disabled}\n invalid={invalid}\n required={required}\n labelAlignment={labelAlignment}\n ref={ref}\n value={value}\n id={id}\n {...otherInputProps}\n className={cx(styles.checkbox, otherInputProps.className)}\n >\n <WrapTextNodes className={styles.text}>\n {props.children}\n </WrapTextNodes>\n </Checkbox>\n <ConditionalView condition={showRightButton}>\n <IconButton\n className={styles.rightButton}\n onClick={onRightButtonClick}\n disabled={disabled}\n appearance=\"Default\"\n size=\"Small\"\n style=\"Secondary\"\n icon={rightButtonIcon}\n type=\"Ghost\"\n actionType=\"button\"\n />\n </ConditionalView>\n </div>\n );\n});\n\nexport default CheckboxItem; ","import { useState, useEffect } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { CheckboxItemProps } from './CheckboxItem.types';\n\nconst usePresenter = (props: CheckboxItemProps) => {\n const {\n checked,\n defaultChecked,\n onValueChange,\n disabled = false,\n invalid = false,\n required = false,\n labelAlignment = 'Left',\n children,\n showRightButton = false,\n onRightButtonClick,\n rightButtonIcon,\n value,\n id,\n ...otherInputProps\n } = props;\n\n const [isChecked, setIsChecked] = useState(checked ?? defaultChecked ?? false);\n\n useEffect(() => {\n setIsChecked(!!(checked ?? value));\n }, [checked, value]);\n\n const handleChange = (value: boolean) => {\n setIsChecked(!!value);\n onValueChange?.(value);\n };\n\n const variantProps = useBuildVariantProps(\n 'checkbox-item',\n {\n styles: isChecked ? 'selected' : 'unselected',\n },\n {\n disabled,\n invalid,\n },\n );\n\n return {\n variantProps,\n handleChange,\n isChecked,\n disabled,\n required,\n otherInputProps,\n defaultChecked,\n invalid,\n labelAlignment,\n value,\n showRightButton,\n onRightButtonClick,\n rightButtonIcon,\n id,\n };\n};\n\nexport default usePresenter;","import cx from 'classnames';\nimport { forwardRef } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport styles from './RadioButton.module.scss';\nimport type { RadioButtonProps } from './RadioButton.types';\n\nconst RadioButton = forwardRef<HTMLInputElement, RadioButtonProps>((props: RadioButtonProps, ref) => {\n const {\n className,\n size = 'Medium',\n checked,\n disabled = false,\n invalid = false,\n labelAlignment = 'Left',\n value,\n children,\n onChange,\n ...otherInputProps\n } = props;\n\n const variantProps = useBuildVariantProps(\n 'radio-button',\n {\n size,\n style: checked ? 'Selected' : 'Unselected',\n },\n {\n disabled,\n invalid,\n },\n );\n\n return (\n <label\n className={cx(\n styles.radioButton,\n className,\n {\n [styles.labelLeft]: labelAlignment === 'Left',\n [styles.labelRight]: labelAlignment === 'Right',\n [styles.disabled]: disabled,\n },\n )}\n {...variantProps}\n >\n <input\n {...otherInputProps}\n type=\"radio\"\n className={styles.input}\n checked={checked}\n onChange={onChange}\n disabled={disabled}\n ref={ref}\n value={value}\n />\n <div className={styles.iconWrapper}>\n <div className={styles.radio}>\n <div className={styles.dot} />\n </div>\n </div>\n <ConditionalView condition={children}>\n <WrapTextNodes className={styles.text}>\n {children}\n </WrapTextNodes>\n </ConditionalView>\n </label>\n );\n});\n\nexport default RadioButton;","import cx from 'classnames';\nimport React from 'react';\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport IconButton from '../IconButton/IconButton';\nimport RadioButton from '../RadioButton/RadioButton';\nimport styles from './RadioButtonItem.module.scss';\nimport usePresenter from './RadioButtonItem.presenter';\nimport type { RadioButtonItemProps } from './RadioButtonItem.types';\n\nconst RadioButtonItem = React.forwardRef<HTMLInputElement, RadioButtonItemProps>((props: RadioButtonItemProps, ref) => {\n const {\n handleChange,\n variantProps,\n isSelected,\n defaultChecked,\n value,\n disabled,\n invalid,\n required,\n labelAlignment,\n children,\n showRightButton,\n onRightButtonClick,\n rightButtonIcon,\n otherProps,\n } = usePresenter(props);\n\n return (\n <div\n className={cx(\n styles.radioButtonItem,\n props.className,\n {\n [styles.disabled]: disabled,\n [styles.hasRightButton]: showRightButton,\n },\n )}\n {...variantProps}\n >\n <RadioButton\n checked={isSelected}\n defaultChecked={defaultChecked}\n onChange={handleChange}\n disabled={disabled}\n invalid={invalid}\n required={required}\n labelAlignment={labelAlignment}\n ref={ref}\n value={value}\n {...otherProps}\n >\n {children}\n </RadioButton>\n <ConditionalView condition={showRightButton}>\n <IconButton\n className={styles.rightButton}\n onClick={onRightButtonClick}\n disabled={disabled}\n appearance=\"Default\"\n size=\"Small\"\n style=\"Secondary\"\n icon={rightButtonIcon}\n type=\"Ghost\"\n actionType=\"button\"\n />\n </ConditionalView>\n </div>\n );\n});\n\nexport default RadioButtonItem; ","import { useEffect, useState } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { RadioButtonItemProps } from './RadioButtonItem.types';\n\nconst usePresenter = (props: RadioButtonItemProps) => {\n const {\n className,\n checked,\n defaultChecked,\n value,\n disabled = false,\n invalid = false,\n required = false,\n labelAlignment = 'Left',\n children,\n showRightButton = false,\n onRightButtonClick,\n rightButtonIcon,\n onChange,\n ...otherProps\n } = props;\n\n const [isSelected, setIsSelected] = useState(checked ?? defaultChecked ?? false);\n\n useEffect(() => {\n setIsSelected(!!checked);\n }, [checked]);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setIsSelected(true);\n onChange?.(event);\n };\n\n const variantProps = useBuildVariantProps(\n 'radio-button-item',\n {\n styles: isSelected ? 'selected' : 'unselected',\n },\n {\n disabled,\n invalid,\n },\n );\n\n return {\n handleChange,\n variantProps,\n isSelected,\n checked,\n defaultChecked,\n value,\n disabled,\n invalid,\n required,\n labelAlignment,\n children,\n showRightButton,\n onRightButtonClick,\n otherProps,\n rightButtonIcon,\n };\n};\n\nexport default usePresenter;","import cx from 'classnames';\nimport { NavLink as RouterNavLink, useNavigate } from 'react-router-dom';\n\nimport styles from './NavLink.module.scss';\nimport type { NavLinkProps } from './NavLink.types';\nimport { WrapTextNodes } from '../../../utils/WrapTextNodes';\nimport useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\nimport { TextProps } from '../../../atoms';\nimport { TextStylingProps } from '../../../atoms/Text/Text.types';\n\nconst NavContent = (props: Pick<NavLinkProps, 'children' | 'leadingIcon' | 'trailingIcon' | 'className'>) => {\n const { children, leadingIcon, trailingIcon, className } = props;\n\n return (\n <>\n {leadingIcon && (\n <div className={styles.leadingIcon}>\n {leadingIcon}\n </div>\n )}\n <WrapTextNodes as=\"span\" className={className}>\n {children}\n </WrapTextNodes>\n {trailingIcon && (\n <div className={styles.trailingIcon}>\n {trailingIcon}\n </div>\n )}\n </>\n );\n};\n\nconst NavigateNavLink = (\n props: Omit<NavLinkProps, 'to'> & {\n to: number,\n componentVariantProp: { 'component-variant': string },\n textClassName: string,\n },\n) => {\n const navigate = useNavigate();\n const {\n to,\n children,\n className,\n leadingIcon,\n trailingIcon,\n componentVariantProp,\n textClassName,\n ...rest } = props;\n\n return (\n <a\n {...rest}\n onClick={() => navigate(to)}\n className={cx(styles.navLink, className)}\n {...componentVariantProp}\n >\n <NavContent\n children={children}\n leadingIcon={leadingIcon}\n trailingIcon={trailingIcon}\n className={textClassName}\n />\n </a>\n )\n};\n\nconst NavLink = (props: NavLinkProps) => {\n const {\n to,\n children,\n className,\n 'component-variant': componentVariant,\n appearance,\n size,\n style,\n type = 'Fill',\n leadingIcon,\n trailingIcon,\n ...rest\n } = props;\n\n /**\n * Check if the component should be rendered as a button.\n * If any of the appearance, size, style, or type props are provided, the component will be rendered as a button.\n */\n const asButton = [appearance, style, !['Fill', 'Underline'].includes(type)].some(Boolean);\n\n const buttonVariants: Record<string, string> = {\n appearance: appearance || 'Default',\n size: size || 'Small',\n style: style || 'Secondary',\n type: type || 'Filled',\n };\n\n const navLinkVariants: Record<string, string> = {\n type,\n size: size || 'Small',\n };\n\n const buildVariantOptions = {\n component: asButton ? 'button' : 'nav-link',\n // if the component is a button, we need to build the variant props\n // use the default values if some props are not provided\n variants: asButton ? buttonVariants : navLinkVariants,\n stateFlags: {\n },\n componentVariant,\n };\n\n const componentVariantProp = useBuildVariantProps(\n buildVariantOptions.component,\n buildVariantOptions.variants,\n buildVariantOptions.stateFlags,\n buildVariantOptions.componentVariant,\n );\n\n /**\n * If the component variant is provided, we don't need to add the additional class name.\n * Otherwise, we add the additional class name based on if the component is a button or a link.\n * This is to ensure that we use the correct theme variables for the component.\n */\n const asComponentVariant = componentVariant !== undefined;\n const additionalClassName = asComponentVariant ? '' : (asButton ? 'button' : 'link');\n\n const classNameProp = cx(\n styles.navLink,\n styles[additionalClassName],\n className,\n );\n\n if (typeof to === 'number') {\n return (\n <NavigateNavLink\n {...rest}\n to={to}\n children={children}\n className={classNameProp}\n componentVariantProp={componentVariantProp}\n textClassName={asButton ? styles.buttonText : styles.linkText}\n />\n )\n }\n\n const isExternal = /^https?:\\/\\//.test(to);\n if (isExternal) {\n return (\n <a\n {...rest}\n href={to}\n className={classNameProp}\n {\n ...componentVariantProp\n }\n >\n <NavContent\n children={children}\n leadingIcon={leadingIcon}\n trailingIcon={trailingIcon}\n className={asButton ? styles.buttonText : styles.linkText}\n />\n </a>\n );\n }\n\n return (\n <RouterNavLink\n {...rest}\n to={to}\n className={classNameProp}\n {\n ...componentVariantProp\n }\n >\n <NavContent\n children={children}\n leadingIcon={leadingIcon}\n trailingIcon={trailingIcon}\n className={asButton ? styles.buttonText : styles.linkText}\n />\n </RouterNavLink>\n );\n};\nexport default NavLink;\n","import React from \"react\";\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { ContextMenuProps } from \"./ContextMenu.types\";\nimport { List } from \"../..\";\nimport { ListItemType } from \"../List/List.types\";\nimport cx from 'classnames';\nimport styles from './ContextMenu.module.scss';\n\nconst ContextMenu = <T extends ListItemType>(props: ContextMenuProps<T>) => {\n const { className, 'component-variant': componentVariant, ...restProps } = props;\n \n const variantProps = useBuildVariantProps(\n 'context-menu',\n {},\n undefined,\n componentVariant,\n );\n\n return <div className={cx(styles.contextMenu, className)} {...variantProps}>\n <List \n className={styles.list}\n {...restProps} \n align=\"Vertical\"\n />\n </div>;\n};\n\nexport default ContextMenu;\n","export var HOOKS = [\n \"onChange\",\n \"onClose\",\n \"onDayCreate\",\n \"onDestroy\",\n \"onKeyDown\",\n \"onMonthChange\",\n \"onOpen\",\n \"onParseConfig\",\n \"onReady\",\n \"onValueUpdate\",\n \"onYearChange\",\n \"onPreCalendarPosition\",\n];\nexport var defaults = {\n _disable: [],\n allowInput: false,\n allowInvalidPreload: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" &&\n window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n autoFillDefaultTime: true,\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enableSeconds: false,\n enableTime: false,\n errorHandler: function (err) {\n return typeof console !== \"undefined\" && console.warn(err);\n },\n getWeek: function (givenDate) {\n var date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0);\n date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n var week1 = new Date(date.getFullYear(), 0, 4);\n return (1 +\n Math.round(((date.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getDay() + 6) % 7)) /\n 7));\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n monthSelectorType: \"dropdown\",\n nextArrow: \"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false,\n};\n","export var english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n};\nexport default english;\n","export var pad = function (number, length) {\n if (length === void 0) { length = 2; }\n return (\"000\" + number).slice(length * -1);\n};\nexport var int = function (bool) { return (bool === true ? 1 : 0); };\nexport function debounce(fn, wait) {\n var t;\n return function () {\n var _this = this;\n var args = arguments;\n clearTimeout(t);\n t = setTimeout(function () { return fn.apply(_this, args); }, wait);\n };\n}\nexport var arrayify = function (obj) {\n return obj instanceof Array ? obj : [obj];\n};\n","export function toggleClass(elem, className, bool) {\n if (bool === true)\n return elem.classList.add(className);\n elem.classList.remove(className);\n}\nexport function createElement(tag, className, content) {\n var e = window.document.createElement(tag);\n className = className || \"\";\n content = content || \"\";\n e.className = className;\n if (content !== undefined)\n e.textContent = content;\n return e;\n}\nexport function clearNode(node) {\n while (node.firstChild)\n node.removeChild(node.firstChild);\n}\nexport function findParent(node, condition) {\n if (condition(node))\n return node;\n else if (node.parentNode)\n return findParent(node.parentNode, condition);\n return undefined;\n}\nexport function createNumberInput(inputClassName, opts) {\n var wrapper = createElement(\"div\", \"numInputWrapper\"), numInput = createElement(\"input\", \"numInput \" + inputClassName), arrowUp = createElement(\"span\", \"arrowUp\"), arrowDown = createElement(\"span\", \"arrowDown\");\n if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n numInput.type = \"number\";\n }\n else {\n numInput.type = \"text\";\n numInput.pattern = \"\\\\d*\";\n }\n if (opts !== undefined)\n for (var key in opts)\n numInput.setAttribute(key, opts[key]);\n wrapper.appendChild(numInput);\n wrapper.appendChild(arrowUp);\n wrapper.appendChild(arrowDown);\n return wrapper;\n}\nexport function getEventTarget(event) {\n try {\n if (typeof event.composedPath === \"function\") {\n var path = event.composedPath();\n return path[0];\n }\n return event.target;\n }\n catch (error) {\n return event.target;\n }\n}\n","import { int, pad } from \"../utils\";\nvar doNothing = function () { return undefined; };\nexport var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber]; };\nexport var revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n H: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n J: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n K: function (dateObj, amPM, locale) {\n dateObj.setHours((dateObj.getHours() % 12) +\n 12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n },\n M: function (dateObj, shortMonth, locale) {\n dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n },\n S: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: function (_, unixSeconds) { return new Date(parseFloat(unixSeconds) * 1000); },\n W: function (dateObj, weekNum, locale) {\n var weekNumber = parseInt(weekNum);\n var date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n return date;\n },\n Y: function (dateObj, year) {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: function (_, ISODate) { return new Date(ISODate); },\n d: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n h: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n i: function (dateObj, minutes) {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: function (_, unixMillSeconds) {\n return new Date(parseFloat(unixMillSeconds));\n },\n w: doNothing,\n y: function (dateObj, year) {\n dateObj.setFullYear(2000 + parseFloat(year));\n },\n};\nexport var tokenRegex = {\n D: \"\",\n F: \"\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\",\n};\nexport var formats = {\n Z: function (date) { return date.toISOString(); },\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n H: function (date) { return pad(date.getHours()); },\n J: function (date, locale) {\n return locale.ordinal !== undefined\n ? date.getDate() + locale.ordinal(date.getDate())\n : date.getDate();\n },\n K: function (date, locale) { return locale.amPM[int(date.getHours() > 11)]; },\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n S: function (date) { return pad(date.getSeconds()); },\n U: function (date) { return date.getTime() / 1000; },\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n Y: function (date) { return pad(date.getFullYear(), 4); },\n d: function (date) { return pad(date.getDate()); },\n h: function (date) { return (date.getHours() % 12 ? date.getHours() % 12 : 12); },\n i: function (date) { return pad(date.getMinutes()); },\n j: function (date) { return date.getDate(); },\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n m: function (date) { return pad(date.getMonth() + 1); },\n n: function (date) { return date.getMonth() + 1; },\n s: function (date) { return date.getSeconds(); },\n u: function (date) { return date.getTime(); },\n w: function (date) { return date.getDay(); },\n y: function (date) { return String(date.getFullYear()).substring(2); },\n};\n","import { tokenRegex, revFormat, formats, } from \"./formatting\";\nimport { defaults } from \"../types/options\";\nimport { english } from \"../l10n/default\";\nexport var createDateFormatter = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c, _d = _a.isMobile, isMobile = _d === void 0 ? false : _d;\n return function (dateObj, frmt, overrideLocale) {\n var locale = overrideLocale || l10n;\n if (config.formatDate !== undefined && !isMobile) {\n return config.formatDate(dateObj, frmt, locale);\n }\n return frmt\n .split(\"\")\n .map(function (c, i, arr) {\n return formats[c] && arr[i - 1] !== \"\\\\\"\n ? formats[c](dateObj, locale, config)\n : c !== \"\\\\\"\n ? c\n : \"\";\n })\n .join(\"\");\n };\n};\nexport var createDateParser = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c;\n return function (date, givenFormat, timeless, customLocale) {\n if (date !== 0 && !date)\n return undefined;\n var locale = customLocale || l10n;\n var parsedDate;\n var dateOrig = date;\n if (date instanceof Date)\n parsedDate = new Date(date.getTime());\n else if (typeof date !== \"string\" &&\n date.toFixed !== undefined)\n parsedDate = new Date(date);\n else if (typeof date === \"string\") {\n var format = givenFormat || (config || defaults).dateFormat;\n var datestr = String(date).trim();\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n }\n else if (config && config.parseDate) {\n parsedDate = config.parseDate(date, format);\n }\n else if (/Z$/.test(datestr) ||\n /GMT$/.test(datestr)) {\n parsedDate = new Date(date);\n }\n else {\n var matched = void 0, ops = [];\n for (var i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n var token = format[i];\n var isBackSlash = token === \"\\\\\";\n var escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token] && !escaped) {\n regexStr += tokenRegex[token];\n var match = new RegExp(regexStr).exec(date);\n if (match && (matched = true)) {\n ops[token !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token],\n val: match[++matchIndex],\n });\n }\n }\n else if (!isBackSlash)\n regexStr += \".\";\n }\n parsedDate =\n !config || !config.noCalendar\n ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)\n : new Date(new Date().setHours(0, 0, 0, 0));\n ops.forEach(function (_a) {\n var fn = _a.fn, val = _a.val;\n return (parsedDate = fn(parsedDate, val, locale) || parsedDate);\n });\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n config.errorHandler(new Error(\"Invalid date provided: \" + dateOrig));\n return undefined;\n }\n if (timeless === true)\n parsedDate.setHours(0, 0, 0, 0);\n return parsedDate;\n };\n};\nexport function compareDates(date1, date2, timeless) {\n if (timeless === void 0) { timeless = true; }\n if (timeless !== false) {\n return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -\n new Date(date2.getTime()).setHours(0, 0, 0, 0));\n }\n return date1.getTime() - date2.getTime();\n}\nexport function compareTimes(date1, date2) {\n return (3600 * (date1.getHours() - date2.getHours()) +\n 60 * (date1.getMinutes() - date2.getMinutes()) +\n date1.getSeconds() -\n date2.getSeconds());\n}\nexport var isBetween = function (ts, ts1, ts2) {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n};\nexport var calculateSecondsSinceMidnight = function (hours, minutes, seconds) {\n return hours * 3600 + minutes * 60 + seconds;\n};\nexport var parseSeconds = function (secondsSinceMidnight) {\n var hours = Math.floor(secondsSinceMidnight / 3600), minutes = (secondsSinceMidnight - hours * 3600) / 60;\n return [hours, minutes, secondsSinceMidnight - hours * 3600 - minutes * 60];\n};\nexport var duration = {\n DAY: 86400000,\n};\nexport function getDefaultHours(config) {\n var hours = config.defaultHour;\n var minutes = config.defaultMinute;\n var seconds = config.defaultSeconds;\n if (config.minDate !== undefined) {\n var minHour = config.minDate.getHours();\n var minMinutes = config.minDate.getMinutes();\n var minSeconds = config.minDate.getSeconds();\n if (hours < minHour) {\n hours = minHour;\n }\n if (hours === minHour && minutes < minMinutes) {\n minutes = minMinutes;\n }\n if (hours === minHour && minutes === minMinutes && seconds < minSeconds)\n seconds = config.minDate.getSeconds();\n }\n if (config.maxDate !== undefined) {\n var maxHr = config.maxDate.getHours();\n var maxMinutes = config.maxDate.getMinutes();\n hours = Math.min(hours, maxHr);\n if (hours === maxHr)\n minutes = Math.min(maxMinutes, minutes);\n if (hours === maxHr && minutes === maxMinutes)\n seconds = config.maxDate.getSeconds();\n }\n return { hours: hours, minutes: minutes, seconds: seconds };\n}\n","\"use strict\";\nif (typeof Object.assign !== \"function\") {\n Object.assign = function (target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n var _loop_1 = function (source) {\n if (source) {\n Object.keys(source).forEach(function (key) { return (target[key] = source[key]); });\n }\n };\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var source = args_1[_a];\n _loop_1(source);\n }\n return target;\n };\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { defaults as defaultOptions, HOOKS, } from \"./types/options\";\nimport English from \"./l10n/default\";\nimport { arrayify, debounce, int, pad } from \"./utils\";\nimport { clearNode, createElement, createNumberInput, findParent, toggleClass, getEventTarget, } from \"./utils/dom\";\nimport { compareDates, createDateParser, createDateFormatter, duration, isBetween, getDefaultHours, calculateSecondsSinceMidnight, parseSeconds, } from \"./utils/dates\";\nimport { tokenRegex, monthToStr } from \"./utils/formatting\";\nimport \"./utils/polyfills\";\nvar DEBOUNCED_CHANGE_MS = 300;\nfunction FlatpickrInstance(element, instanceConfig) {\n var self = {\n config: __assign(__assign({}, defaultOptions), flatpickr.defaultConfig),\n l10n: English,\n };\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self.onMouseOver = onMouseOver;\n self._createElement = createElement;\n self.createDay = createDay;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.updateValue = updateValue;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth: function (month, yr) {\n if (month === void 0) { month = self.currentMonth; }\n if (yr === void 0) { yr = self.currentYear; }\n if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))\n return 29;\n return self.l10n.daysInMonth[month];\n },\n };\n }\n function init() {\n self.element = self.input = element;\n self.isOpen = false;\n parseConfig();\n setupLocale();\n setupInputs();\n setupDates();\n setupHelperFunctions();\n if (!self.isMobile)\n build();\n bindEvents();\n if (self.selectedDates.length || self.config.noCalendar) {\n if (self.config.enableTime) {\n setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : undefined);\n }\n updateValue(false);\n }\n setCalendarWidth();\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function getClosestActiveElement() {\n var _a;\n return (((_a = self.calendarContainer) === null || _a === void 0 ? void 0 : _a.getRootNode())\n .activeElement || document.activeElement);\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n var config = self.config;\n if (config.weekNumbers === false && config.showMonths === 1) {\n return;\n }\n else if (config.noCalendar !== true) {\n window.requestAnimationFrame(function () {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.style.visibility = \"hidden\";\n self.calendarContainer.style.display = \"block\";\n }\n if (self.daysContainer !== undefined) {\n var daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n self.daysContainer.style.width = daysWidth + \"px\";\n self.calendarContainer.style.width =\n daysWidth +\n (self.weekWrapper !== undefined\n ? self.weekWrapper.offsetWidth\n : 0) +\n \"px\";\n self.calendarContainer.style.removeProperty(\"visibility\");\n self.calendarContainer.style.removeProperty(\"display\");\n }\n });\n }\n }\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n var defaultDate = self.config.minDate === undefined ||\n compareDates(new Date(), self.config.minDate) >= 0\n ? new Date()\n : new Date(self.config.minDate.getTime());\n var defaults = getDefaultHours(self.config);\n defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());\n self.selectedDates = [defaultDate];\n self.latestSelectedDateObj = defaultDate;\n }\n if (e !== undefined && e.type !== \"blur\") {\n timeWrapper(e);\n }\n var prevValue = self._input.value;\n setHoursFromInputs();\n updateValue();\n if (self._input.value !== prevValue) {\n self._debouncedChange();\n }\n }\n function ampm2military(hour, amPM) {\n return (hour % 12) + 12 * int(amPM === self.l10n.amPM[1]);\n }\n function military2ampm(hour) {\n switch (hour % 24) {\n case 0:\n case 12:\n return 12;\n default:\n return hour % 12;\n }\n }\n function setHoursFromInputs() {\n if (self.hourElement === undefined || self.minuteElement === undefined)\n return;\n var hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined\n ? (parseInt(self.secondElement.value, 10) || 0) % 60\n : 0;\n if (self.amPM !== undefined) {\n hours = ampm2military(hours, self.amPM.textContent);\n }\n var limitMinHours = self.config.minTime !== undefined ||\n (self.config.minDate &&\n self.minDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===\n 0);\n var limitMaxHours = self.config.maxTime !== undefined ||\n (self.config.maxDate &&\n self.maxDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===\n 0);\n if (self.config.maxTime !== undefined &&\n self.config.minTime !== undefined &&\n self.config.minTime > self.config.maxTime) {\n var minBound = calculateSecondsSinceMidnight(self.config.minTime.getHours(), self.config.minTime.getMinutes(), self.config.minTime.getSeconds());\n var maxBound = calculateSecondsSinceMidnight(self.config.maxTime.getHours(), self.config.maxTime.getMinutes(), self.config.maxTime.getSeconds());\n var currentTime = calculateSecondsSinceMidnight(hours, minutes, seconds);\n if (currentTime > maxBound && currentTime < minBound) {\n var result = parseSeconds(minBound);\n hours = result[0];\n minutes = result[1];\n seconds = result[2];\n }\n }\n else {\n if (limitMaxHours) {\n var maxTime = self.config.maxTime !== undefined\n ? self.config.maxTime\n : self.config.maxDate;\n hours = Math.min(hours, maxTime.getHours());\n if (hours === maxTime.getHours())\n minutes = Math.min(minutes, maxTime.getMinutes());\n if (minutes === maxTime.getMinutes())\n seconds = Math.min(seconds, maxTime.getSeconds());\n }\n if (limitMinHours) {\n var minTime = self.config.minTime !== undefined\n ? self.config.minTime\n : self.config.minDate;\n hours = Math.max(hours, minTime.getHours());\n if (hours === minTime.getHours() && minutes < minTime.getMinutes())\n minutes = minTime.getMinutes();\n if (minutes === minTime.getMinutes())\n seconds = Math.max(seconds, minTime.getSeconds());\n }\n }\n setHours(hours, minutes, seconds);\n }\n function setHoursFromDate(dateObj) {\n var date = dateObj || self.latestSelectedDateObj;\n if (date && date instanceof Date) {\n setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n }\n function setHours(hours, minutes, seconds) {\n if (self.latestSelectedDateObj !== undefined) {\n self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n }\n if (!self.hourElement || !self.minuteElement || self.isMobile)\n return;\n self.hourElement.value = pad(!self.config.time_24hr\n ? ((12 + hours) % 12) + 12 * int(hours % 12 === 0)\n : hours);\n self.minuteElement.value = pad(minutes);\n if (self.amPM !== undefined)\n self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n if (self.secondElement !== undefined)\n self.secondElement.value = pad(seconds);\n }\n function onYearInput(event) {\n var eventTarget = getEventTarget(event);\n var year = parseInt(eventTarget.value) + (event.delta || 0);\n if (year / 1000 > 1 ||\n (event.key === \"Enter\" && !/[^\\d]/.test(year.toString()))) {\n changeYear(year);\n }\n }\n function bind(element, event, handler, options) {\n if (event instanceof Array)\n return event.forEach(function (ev) { return bind(element, ev, handler, options); });\n if (element instanceof Array)\n return element.forEach(function (el) { return bind(el, event, handler, options); });\n element.addEventListener(event, handler, options);\n self._handlers.push({\n remove: function () { return element.removeEventListener(event, handler, options); },\n });\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach(function (evt) {\n Array.prototype.forEach.call(self.element.querySelectorAll(\"[data-\" + evt + \"]\"), function (el) {\n return bind(el, \"click\", self[evt]);\n });\n });\n }\n if (self.isMobile) {\n setupMobile();\n return;\n }\n var debouncedResize = debounce(onResize, 50);\n self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))\n bind(self.daysContainer, \"mouseover\", function (e) {\n if (self.config.mode === \"range\")\n onMouseOver(getEventTarget(e));\n });\n bind(self._input, \"keydown\", onKeyDown);\n if (self.calendarContainer !== undefined) {\n bind(self.calendarContainer, \"keydown\", onKeyDown);\n }\n if (!self.config.inline && !self.config.static)\n bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined)\n bind(window.document, \"touchstart\", documentClick);\n else\n bind(window.document, \"mousedown\", documentClick);\n bind(window.document, \"focus\", documentClick, { capture: true });\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"click\", onMonthNavClick);\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"click\", selectDate);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined) {\n var selText = function (e) {\n return getEventTarget(e).select();\n };\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, { capture: true });\n bind(self.timeContainer, \"click\", timeIncrement);\n bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n if (self.secondElement !== undefined)\n bind(self.secondElement, \"focus\", function () { return self.secondElement && self.secondElement.select(); });\n if (self.amPM !== undefined) {\n bind(self.amPM, \"click\", function (e) {\n updateTime(e);\n });\n }\n }\n if (self.config.allowInput) {\n bind(self._input, \"blur\", onBlur);\n }\n }\n function jumpToDate(jumpDate, triggerChange) {\n var jumpTo = jumpDate !== undefined\n ? self.parseDate(jumpDate)\n : self.latestSelectedDateObj ||\n (self.config.minDate && self.config.minDate > self.now\n ? self.config.minDate\n : self.config.maxDate && self.config.maxDate < self.now\n ? self.config.maxDate\n : self.now);\n var oldYear = self.currentYear;\n var oldMonth = self.currentMonth;\n try {\n if (jumpTo !== undefined) {\n self.currentYear = jumpTo.getFullYear();\n self.currentMonth = jumpTo.getMonth();\n }\n }\n catch (e) {\n e.message = \"Invalid date supplied: \" + jumpTo;\n self.config.errorHandler(e);\n }\n if (triggerChange && self.currentYear !== oldYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n if (triggerChange &&\n (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n triggerEvent(\"onMonthChange\");\n }\n self.redraw();\n }\n function timeIncrement(e) {\n var eventTarget = getEventTarget(e);\n if (~eventTarget.className.indexOf(\"arrow\"))\n incrementNumInput(e, eventTarget.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n function incrementNumInput(e, delta, inputElem) {\n var target = e && getEventTarget(e);\n var input = inputElem ||\n (target && target.parentNode && target.parentNode.firstChild);\n var event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n function build() {\n var fragment = window.document.createDocumentFragment();\n self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n self.calendarContainer.tabIndex = -1;\n if (!self.config.noCalendar) {\n fragment.appendChild(buildMonthNav());\n self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n if (self.config.weekNumbers) {\n var _a = buildWeeks(), weekWrapper = _a.weekWrapper, weekNumbers = _a.weekNumbers;\n self.innerContainer.appendChild(weekWrapper);\n self.weekNumbers = weekNumbers;\n self.weekWrapper = weekWrapper;\n }\n self.rContainer = createElement(\"div\", \"flatpickr-rContainer\");\n self.rContainer.appendChild(buildWeekdays());\n if (!self.daysContainer) {\n self.daysContainer = createElement(\"div\", \"flatpickr-days\");\n self.daysContainer.tabIndex = -1;\n }\n buildDays();\n self.rContainer.appendChild(self.daysContainer);\n self.innerContainer.appendChild(self.rContainer);\n fragment.appendChild(self.innerContainer);\n }\n if (self.config.enableTime) {\n fragment.appendChild(buildTime());\n }\n toggleClass(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n toggleClass(self.calendarContainer, \"animate\", self.config.animate === true);\n toggleClass(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n self.calendarContainer.appendChild(fragment);\n var customAppend = self.config.appendTo !== undefined &&\n self.config.appendTo.nodeType !== undefined;\n if (self.config.inline || self.config.static) {\n self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n if (self.config.inline) {\n if (!customAppend && self.element.parentNode)\n self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);\n else if (self.config.appendTo !== undefined)\n self.config.appendTo.appendChild(self.calendarContainer);\n }\n if (self.config.static) {\n var wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n if (self.element.parentNode)\n self.element.parentNode.insertBefore(wrapper, self.element);\n wrapper.appendChild(self.element);\n if (self.altInput)\n wrapper.appendChild(self.altInput);\n wrapper.appendChild(self.calendarContainer);\n }\n }\n if (!self.config.static && !self.config.inline)\n (self.config.appendTo !== undefined\n ? self.config.appendTo\n : window.document.body).appendChild(self.calendarContainer);\n }\n function createDay(className, date, _dayNumber, i) {\n var dateIsEnabled = isEnabled(date, true), dayElement = createElement(\"span\", className, date.getDate().toString());\n dayElement.dateObj = date;\n dayElement.$i = i;\n dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n if (className.indexOf(\"hidden\") === -1 &&\n compareDates(date, self.now) === 0) {\n self.todayDateElem = dayElement;\n dayElement.classList.add(\"today\");\n dayElement.setAttribute(\"aria-current\", \"date\");\n }\n if (dateIsEnabled) {\n dayElement.tabIndex = -1;\n if (isDateSelected(date)) {\n dayElement.classList.add(\"selected\");\n self.selectedDateElem = dayElement;\n if (self.config.mode === \"range\") {\n toggleClass(dayElement, \"startRange\", self.selectedDates[0] &&\n compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] &&\n compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\")\n dayElement.classList.add(\"inRange\");\n }\n }\n }\n else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date))\n dayElement.classList.add(\"inRange\");\n }\n if (self.weekNumbers &&\n self.config.showMonths === 1 &&\n className !== \"prevMonthDay\" &&\n i % 7 === 6) {\n self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"<span class='flatpickr-day'>\" + self.config.getWeek(date) + \"</span>\");\n }\n triggerEvent(\"onDayCreate\", dayElement);\n return dayElement;\n }\n function focusOnDayElem(targetNode) {\n targetNode.focus();\n if (self.config.mode === \"range\")\n onMouseOver(targetNode);\n }\n function getFirstAvailableDay(delta) {\n var startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n for (var m = startMonth; m != endMonth; m += delta) {\n var month = self.daysContainer.children[m];\n var startIndex = delta > 0 ? 0 : month.children.length - 1;\n var endIndex = delta > 0 ? month.children.length : -1;\n for (var i = startIndex; i != endIndex; i += delta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj))\n return c;\n }\n }\n return undefined;\n }\n function getNextAvailableDay(current, delta) {\n var givenMonth = current.className.indexOf(\"Month\") === -1\n ? current.dateObj.getMonth()\n : self.currentMonth;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n var loopDelta = delta > 0 ? 1 : -1;\n for (var m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n var month = self.daysContainer.children[m];\n var startIndex = givenMonth - self.currentMonth === m\n ? current.$i + delta\n : delta < 0\n ? month.children.length - 1\n : 0;\n var numMonthDays = month.children.length;\n for (var i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 &&\n isEnabled(c.dateObj) &&\n Math.abs(current.$i - i) >= Math.abs(delta))\n return focusOnDayElem(c);\n }\n }\n self.changeMonth(loopDelta);\n focusOnDay(getFirstAvailableDay(loopDelta), 0);\n return undefined;\n }\n function focusOnDay(current, offset) {\n var activeElement = getClosestActiveElement();\n var dayFocused = isInView(activeElement || document.body);\n var startElem = current !== undefined\n ? current\n : dayFocused\n ? activeElement\n : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)\n ? self.selectedDateElem\n : self.todayDateElem !== undefined && isInView(self.todayDateElem)\n ? self.todayDateElem\n : getFirstAvailableDay(offset > 0 ? 1 : -1);\n if (startElem === undefined) {\n self._input.focus();\n }\n else if (!dayFocused) {\n focusOnDayElem(startElem);\n }\n else {\n getNextAvailableDay(startElem, offset);\n }\n }\n function buildMonthDays(year, month) {\n var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n var daysInMonth = self.utils.getDaysInMonth(month, year), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\", nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n var dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n var dayContainer = createElement(\"div\", \"dayContainer\");\n dayContainer.appendChild(days);\n return dayContainer;\n }\n function buildDays() {\n if (self.daysContainer === undefined) {\n return;\n }\n clearNode(self.daysContainer);\n if (self.weekNumbers)\n clearNode(self.weekNumbers);\n var frag = document.createDocumentFragment();\n for (var i = 0; i < self.config.showMonths; i++) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n }\n self.daysContainer.appendChild(frag);\n self.days = self.daysContainer.firstChild;\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n onMouseOver();\n }\n }\n function buildMonthSwitch() {\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType !== \"dropdown\")\n return;\n var shouldBuildMonth = function (month) {\n if (self.config.minDate !== undefined &&\n self.currentYear === self.config.minDate.getFullYear() &&\n month < self.config.minDate.getMonth()) {\n return false;\n }\n return !(self.config.maxDate !== undefined &&\n self.currentYear === self.config.maxDate.getFullYear() &&\n month > self.config.maxDate.getMonth());\n };\n self.monthsDropdownContainer.tabIndex = -1;\n self.monthsDropdownContainer.innerHTML = \"\";\n for (var i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i))\n continue;\n var month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n month.value = new Date(self.currentYear, i).getMonth().toString();\n month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n month.tabIndex = -1;\n if (self.currentMonth === i) {\n month.selected = true;\n }\n self.monthsDropdownContainer.appendChild(month);\n }\n }\n function buildMonth() {\n var container = createElement(\"div\", \"flatpickr-month\");\n var monthNavFragment = window.document.createDocumentFragment();\n var monthElement;\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n monthElement = createElement(\"span\", \"cur-month\");\n }\n else {\n self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n self.monthsDropdownContainer.setAttribute(\"aria-label\", self.l10n.monthAriaLabel);\n bind(self.monthsDropdownContainer, \"change\", function (e) {\n var target = getEventTarget(e);\n var selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n var yearInput = createNumberInput(\"cur-year\", { tabindex: \"-1\" });\n var yearElement = yearInput.getElementsByTagName(\"input\")[0];\n yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n if (self.config.minDate) {\n yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n }\n if (self.config.maxDate) {\n yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n yearElement.disabled =\n !!self.config.minDate &&\n self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n }\n var currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n currentMonth.appendChild(monthElement);\n currentMonth.appendChild(yearInput);\n monthNavFragment.appendChild(currentMonth);\n container.appendChild(monthNavFragment);\n return {\n container: container,\n yearElement: yearElement,\n monthElement: monthElement,\n };\n }\n function buildMonths() {\n clearNode(self.monthNav);\n self.monthNav.appendChild(self.prevMonthNav);\n if (self.config.showMonths) {\n self.yearElements = [];\n self.monthElements = [];\n }\n for (var m = self.config.showMonths; m--;) {\n var month = buildMonth();\n self.yearElements.push(month.yearElement);\n self.monthElements.push(month.monthElement);\n self.monthNav.appendChild(month.container);\n }\n self.monthNav.appendChild(self.nextMonthNav);\n }\n function buildMonthNav() {\n self.monthNav = createElement(\"div\", \"flatpickr-months\");\n self.yearElements = [];\n self.monthElements = [];\n self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n self.prevMonthNav.innerHTML = self.config.prevArrow;\n self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n self.nextMonthNav.innerHTML = self.config.nextArrow;\n buildMonths();\n Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n get: function () { return self.__hidePrevMonthArrow; },\n set: function (bool) {\n if (self.__hidePrevMonthArrow !== bool) {\n toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n self.__hidePrevMonthArrow = bool;\n }\n },\n });\n Object.defineProperty(self, \"_hideNextMonthArrow\", {\n get: function () { return self.__hideNextMonthArrow; },\n set: function (bool) {\n if (self.__hideNextMonthArrow !== bool) {\n toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n self.__hideNextMonthArrow = bool;\n }\n },\n });\n self.currentYearElement = self.yearElements[0];\n updateNavigationCurrentMonth();\n return self.monthNav;\n }\n function buildTime() {\n self.calendarContainer.classList.add(\"hasTime\");\n if (self.config.noCalendar)\n self.calendarContainer.classList.add(\"noCalendar\");\n var defaults = getDefaultHours(self.config);\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n var separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n var hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel,\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n var minuteInput = createNumberInput(\"flatpickr-minute\", {\n \"aria-label\": self.l10n.minuteAriaLabel,\n });\n self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n self.hourElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getHours()\n : self.config.time_24hr\n ? defaults.hours\n : military2ampm(defaults.hours));\n self.minuteElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getMinutes()\n : defaults.minutes);\n self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n self.hourElement.setAttribute(\"maxlength\", \"2\");\n self.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\n self.minuteElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(hourInput);\n self.timeContainer.appendChild(separator);\n self.timeContainer.appendChild(minuteInput);\n if (self.config.time_24hr)\n self.timeContainer.classList.add(\"time24hr\");\n if (self.config.enableSeconds) {\n self.timeContainer.classList.add(\"hasSeconds\");\n var secondInput = createNumberInput(\"flatpickr-second\");\n self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n self.secondElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getSeconds()\n : defaults.seconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.secondElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n if (!self.config.time_24hr) {\n self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj\n ? self.hourElement.value\n : self.config.defaultHour) > 11)]);\n self.amPM.title = self.l10n.toggleTitle;\n self.amPM.tabIndex = -1;\n self.timeContainer.appendChild(self.amPM);\n }\n return self.timeContainer;\n }\n function buildWeekdays() {\n if (!self.weekdayContainer)\n self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");\n else\n clearNode(self.weekdayContainer);\n for (var i = self.config.showMonths; i--;) {\n var container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n self.weekdayContainer.appendChild(container);\n }\n updateWeekdays();\n return self.weekdayContainer;\n }\n function updateWeekdays() {\n if (!self.weekdayContainer) {\n return;\n }\n var firstDayOfWeek = self.l10n.firstDayOfWeek;\n var weekdays = __spreadArrays(self.l10n.weekdays.shorthand);\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = __spreadArrays(weekdays.splice(firstDayOfWeek, weekdays.length), weekdays.splice(0, firstDayOfWeek));\n }\n for (var i = self.config.showMonths; i--;) {\n self.weekdayContainer.children[i].innerHTML = \"\\n <span class='flatpickr-weekday'>\\n \" + weekdays.join(\"</span><span class='flatpickr-weekday'>\") + \"\\n </span>\\n \";\n }\n }\n function buildWeeks() {\n self.calendarContainer.classList.add(\"hasWeeks\");\n var weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n var weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper: weekWrapper,\n weekNumbers: weekNumbers,\n };\n }\n function changeMonth(value, isOffset) {\n if (isOffset === void 0) { isOffset = true; }\n var delta = isOffset ? value : value - self.currentMonth;\n if ((delta < 0 && self._hidePrevMonthArrow === true) ||\n (delta > 0 && self._hideNextMonthArrow === true))\n return;\n self.currentMonth += delta;\n if (self.currentMonth < 0 || self.currentMonth > 11) {\n self.currentYear += self.currentMonth > 11 ? 1 : -1;\n self.currentMonth = (self.currentMonth + 12) % 12;\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n buildDays();\n triggerEvent(\"onMonthChange\");\n updateNavigationCurrentMonth();\n }\n function clear(triggerChangeEvent, toInitial) {\n if (triggerChangeEvent === void 0) { triggerChangeEvent = true; }\n if (toInitial === void 0) { toInitial = true; }\n self.input.value = \"\";\n if (self.altInput !== undefined)\n self.altInput.value = \"\";\n if (self.mobileInput !== undefined)\n self.mobileInput.value = \"\";\n self.selectedDates = [];\n self.latestSelectedDateObj = undefined;\n if (toInitial === true) {\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n }\n if (self.config.enableTime === true) {\n var _a = getDefaultHours(self.config), hours = _a.hours, minutes = _a.minutes, seconds = _a.seconds;\n setHours(hours, minutes, seconds);\n }\n self.redraw();\n if (triggerChangeEvent)\n triggerEvent(\"onChange\");\n }\n function close() {\n self.isOpen = false;\n if (!self.isMobile) {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.classList.remove(\"open\");\n }\n if (self._input !== undefined) {\n self._input.classList.remove(\"active\");\n }\n }\n triggerEvent(\"onClose\");\n }\n function destroy() {\n if (self.config !== undefined)\n triggerEvent(\"onDestroy\");\n for (var i = self._handlers.length; i--;) {\n self._handlers[i].remove();\n }\n self._handlers = [];\n if (self.mobileInput) {\n if (self.mobileInput.parentNode)\n self.mobileInput.parentNode.removeChild(self.mobileInput);\n self.mobileInput = undefined;\n }\n else if (self.calendarContainer && self.calendarContainer.parentNode) {\n if (self.config.static && self.calendarContainer.parentNode) {\n var wrapper = self.calendarContainer.parentNode;\n wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n if (wrapper.parentNode) {\n while (wrapper.firstChild)\n wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n wrapper.parentNode.removeChild(wrapper);\n }\n }\n else\n self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n }\n if (self.altInput) {\n self.input.type = \"text\";\n if (self.altInput.parentNode)\n self.altInput.parentNode.removeChild(self.altInput);\n delete self.altInput;\n }\n if (self.input) {\n self.input.type = self.input._type;\n self.input.classList.remove(\"flatpickr-input\");\n self.input.removeAttribute(\"readonly\");\n }\n [\n \"_showTimeInput\",\n \"latestSelectedDateObj\",\n \"_hideNextMonthArrow\",\n \"_hidePrevMonthArrow\",\n \"__hideNextMonthArrow\",\n \"__hidePrevMonthArrow\",\n \"isMobile\",\n \"isOpen\",\n \"selectedDateElem\",\n \"minDateHasTime\",\n \"maxDateHasTime\",\n \"days\",\n \"daysContainer\",\n \"_input\",\n \"_positionElement\",\n \"innerContainer\",\n \"rContainer\",\n \"monthNav\",\n \"todayDateElem\",\n \"calendarContainer\",\n \"weekdayContainer\",\n \"prevMonthNav\",\n \"nextMonthNav\",\n \"monthsDropdownContainer\",\n \"currentMonthElement\",\n \"currentYearElement\",\n \"navigationCurrentMonth\",\n \"selectedDateElem\",\n \"config\",\n ].forEach(function (k) {\n try {\n delete self[k];\n }\n catch (_) { }\n });\n }\n function isCalendarElem(elem) {\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n var eventTarget_1 = getEventTarget(e);\n var isCalendarElement = isCalendarElem(eventTarget_1);\n var isInput = eventTarget_1 === self.input ||\n eventTarget_1 === self.altInput ||\n self.element.contains(eventTarget_1) ||\n (e.path &&\n e.path.indexOf &&\n (~e.path.indexOf(self.input) ||\n ~e.path.indexOf(self.altInput)));\n var lostFocus = !isInput &&\n !isCalendarElement &&\n !isCalendarElem(e.relatedTarget);\n var isIgnored = !self.config.ignoredFocusElements.some(function (elem) {\n return elem.contains(eventTarget_1);\n });\n if (lostFocus && isIgnored) {\n if (self.config.allowInput) {\n self.setDate(self._input.value, false, self.config.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined &&\n self.input.value !== \"\" &&\n self.input.value !== undefined) {\n updateTime();\n }\n self.close();\n if (self.config &&\n self.config.mode === \"range\" &&\n self.selectedDates.length === 1)\n self.clear(false);\n }\n }\n }\n function changeYear(newYear) {\n if (!newYear ||\n (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||\n (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))\n return;\n var newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;\n self.currentYear = newYearNum || self.currentYear;\n if (self.config.maxDate &&\n self.currentYear === self.config.maxDate.getFullYear()) {\n self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n }\n else if (self.config.minDate &&\n self.currentYear === self.config.minDate.getFullYear()) {\n self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n }\n if (isNewYear) {\n self.redraw();\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n }\n function isEnabled(date, timeless) {\n var _a;\n if (timeless === void 0) { timeless = true; }\n var dateToCheck = self.parseDate(date, undefined, timeless);\n if ((self.config.minDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||\n (self.config.maxDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0))\n return false;\n if (!self.config.enable && self.config.disable.length === 0)\n return true;\n if (dateToCheck === undefined)\n return false;\n var bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n for (var i = 0, d = void 0; i < array.length; i++) {\n d = array[i];\n if (typeof d === \"function\" &&\n d(dateToCheck))\n return bool;\n else if (d instanceof Date &&\n dateToCheck !== undefined &&\n d.getTime() === dateToCheck.getTime())\n return bool;\n else if (typeof d === \"string\") {\n var parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime()\n ? bool\n : !bool;\n }\n else if (typeof d === \"object\" &&\n dateToCheck !== undefined &&\n d.from &&\n d.to &&\n dateToCheck.getTime() >= d.from.getTime() &&\n dateToCheck.getTime() <= d.to.getTime())\n return bool;\n }\n return !bool;\n }\n function isInView(elem) {\n if (self.daysContainer !== undefined)\n return (elem.className.indexOf(\"hidden\") === -1 &&\n elem.className.indexOf(\"flatpickr-disabled\") === -1 &&\n self.daysContainer.contains(elem));\n return false;\n }\n function onBlur(e) {\n var isInput = e.target === self._input;\n var valueChanged = self._input.value.trimEnd() !== getDateStr();\n if (isInput &&\n valueChanged &&\n !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {\n self.setDate(self._input.value, true, e.target === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n }\n function onKeyDown(e) {\n var eventTarget = getEventTarget(e);\n var isInput = self.config.wrap\n ? element.contains(eventTarget)\n : eventTarget === self._input;\n var allowInput = self.config.allowInput;\n var allowKeydown = self.isOpen && (!allowInput || !isInput);\n var allowInlineKeydown = self.config.inline && isInput && !allowInput;\n if (e.keyCode === 13 && isInput) {\n if (allowInput) {\n self.setDate(self._input.value, true, eventTarget === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n self.close();\n return eventTarget.blur();\n }\n else {\n self.open();\n }\n }\n else if (isCalendarElem(eventTarget) ||\n allowKeydown ||\n allowInlineKeydown) {\n var isTimeObj = !!self.timeContainer &&\n self.timeContainer.contains(eventTarget);\n switch (e.keyCode) {\n case 13:\n if (isTimeObj) {\n e.preventDefault();\n updateTime();\n focusAndClose();\n }\n else\n selectDate(e);\n break;\n case 27:\n e.preventDefault();\n focusAndClose();\n break;\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n break;\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n var activeElement = getClosestActiveElement();\n if (self.daysContainer !== undefined &&\n (allowInput === false ||\n (activeElement && isInView(activeElement)))) {\n var delta_1 = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey)\n focusOnDay(undefined, delta_1);\n else {\n e.stopPropagation();\n changeMonth(delta_1);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n }\n }\n else if (self.hourElement)\n self.hourElement.focus();\n break;\n case 38:\n case 40:\n e.preventDefault();\n var delta = e.keyCode === 40 ? 1 : -1;\n if ((self.daysContainer &&\n eventTarget.$i !== undefined) ||\n eventTarget === self.input ||\n eventTarget === self.altInput) {\n if (e.ctrlKey) {\n e.stopPropagation();\n changeYear(self.currentYear - delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n else if (!isTimeObj)\n focusOnDay(undefined, delta * 7);\n }\n else if (eventTarget === self.currentYearElement) {\n changeYear(self.currentYear - delta);\n }\n else if (self.config.enableTime) {\n if (!isTimeObj && self.hourElement)\n self.hourElement.focus();\n updateTime(e);\n self._debouncedChange();\n }\n break;\n case 9:\n if (isTimeObj) {\n var elems = [\n self.hourElement,\n self.minuteElement,\n self.secondElement,\n self.amPM,\n ]\n .concat(self.pluginElements)\n .filter(function (x) { return x; });\n var i = elems.indexOf(eventTarget);\n if (i !== -1) {\n var target = elems[i + (e.shiftKey ? -1 : 1)];\n e.preventDefault();\n (target || self._input).focus();\n }\n }\n else if (!self.config.noCalendar &&\n self.daysContainer &&\n self.daysContainer.contains(eventTarget) &&\n e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n break;\n default:\n break;\n }\n }\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n switch (e.key) {\n case self.l10n.amPM[0].charAt(0):\n case self.l10n.amPM[0].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[0];\n setHoursFromInputs();\n updateValue();\n break;\n case self.l10n.amPM[1].charAt(0):\n case self.l10n.amPM[1].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[1];\n setHoursFromInputs();\n updateValue();\n break;\n }\n }\n if (isInput || isCalendarElem(eventTarget)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n function onMouseOver(elem, cellClass) {\n if (cellClass === void 0) { cellClass = \"flatpickr-day\"; }\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(cellClass) ||\n elem.classList.contains(\"flatpickr-disabled\"))))\n return;\n var hoverDate = elem\n ? elem.dateObj.getTime()\n : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n var containsDisabled = false;\n var minRange = 0, maxRange = 0;\n for (var t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n if (!isEnabled(new Date(t), true)) {\n containsDisabled =\n containsDisabled || (t > rangeStartDate && t < rangeEndDate);\n if (t < initialDate && (!minRange || t > minRange))\n minRange = t;\n else if (t > initialDate && (!maxRange || t < maxRange))\n maxRange = t;\n }\n }\n var hoverableCells = Array.from(self.rContainer.querySelectorAll(\"*:nth-child(-n+\" + self.config.showMonths + \") > .\" + cellClass));\n hoverableCells.forEach(function (dayElem) {\n var date = dayElem.dateObj;\n var timestamp = date.getTime();\n var outOfRange = (minRange > 0 && timestamp < minRange) ||\n (maxRange > 0 && timestamp > maxRange);\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n return;\n }\n else if (containsDisabled && !outOfRange)\n return;\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n if (elem !== undefined) {\n elem.classList.add(hoverDate <= self.selectedDates[0].getTime()\n ? \"startRange\"\n : \"endRange\");\n if (initialDate < hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"startRange\");\n else if (initialDate > hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange &&\n (maxRange === 0 || timestamp <= maxRange) &&\n isBetween(timestamp, initialDate, hoverDate))\n dayElem.classList.add(\"inRange\");\n }\n });\n }\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline)\n positionCalendar();\n }\n function open(e, positionElement) {\n if (positionElement === void 0) { positionElement = self._positionElement; }\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n var eventTarget = getEventTarget(e);\n if (eventTarget) {\n eventTarget.blur();\n }\n }\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n triggerEvent(\"onOpen\");\n return;\n }\n else if (self._input.disabled || self.config.inline) {\n return;\n }\n var wasOpen = self.isOpen;\n self.isOpen = true;\n if (!wasOpen) {\n self.calendarContainer.classList.add(\"open\");\n self._input.classList.add(\"active\");\n triggerEvent(\"onOpen\");\n positionCalendar(positionElement);\n }\n if (self.config.enableTime === true && self.config.noCalendar === true) {\n if (self.config.allowInput === false &&\n (e === undefined ||\n !self.timeContainer.contains(e.relatedTarget))) {\n setTimeout(function () { return self.hourElement.select(); }, 50);\n }\n }\n }\n function minMaxDateSetter(type) {\n return function (date) {\n var dateObj = (self.config[\"_\" + type + \"Date\"] = self.parseDate(date, self.config.dateFormat));\n var inverseDateObj = self.config[\"_\" + (type === \"min\" ? \"max\" : \"min\") + \"Date\"];\n if (dateObj !== undefined) {\n self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] =\n dateObj.getHours() > 0 ||\n dateObj.getMinutes() > 0 ||\n dateObj.getSeconds() > 0;\n }\n if (self.selectedDates) {\n self.selectedDates = self.selectedDates.filter(function (d) { return isEnabled(d); });\n if (!self.selectedDates.length && type === \"min\")\n setHoursFromDate(dateObj);\n updateValue();\n }\n if (self.daysContainer) {\n redraw();\n if (dateObj !== undefined)\n self.currentYearElement[type] = dateObj.getFullYear().toString();\n else\n self.currentYearElement.removeAttribute(type);\n self.currentYearElement.disabled =\n !!inverseDateObj &&\n dateObj !== undefined &&\n inverseDateObj.getFullYear() === dateObj.getFullYear();\n }\n };\n }\n function parseConfig() {\n var boolOpts = [\n \"wrap\",\n \"weekNumbers\",\n \"allowInput\",\n \"allowInvalidPreload\",\n \"clickOpens\",\n \"time_24hr\",\n \"enableTime\",\n \"noCalendar\",\n \"altInput\",\n \"shorthandCurrentMonth\",\n \"inline\",\n \"static\",\n \"enableSeconds\",\n \"disableMobile\",\n ];\n var userConfig = __assign(__assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n var formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: function () { return self.config._enable; },\n set: function (dates) {\n self.config._enable = parseDateRules(dates);\n },\n });\n Object.defineProperty(self.config, \"disable\", {\n get: function () { return self.config._disable; },\n set: function (dates) {\n self.config._disable = parseDateRules(dates);\n },\n });\n var timeMode = userConfig.mode === \"time\";\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n var defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaultOptions.dateFormat;\n formats.dateFormat =\n userConfig.noCalendar || timeMode\n ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\")\n : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n }\n if (userConfig.altInput &&\n (userConfig.enableTime || timeMode) &&\n !userConfig.altFormat) {\n var defaultAltFormat = flatpickr.defaultConfig.altFormat || defaultOptions.altFormat;\n formats.altFormat =\n userConfig.noCalendar || timeMode\n ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\")\n : defaultAltFormat + (\" h:i\" + (userConfig.enableSeconds ? \":S\" : \"\") + \" K\");\n }\n Object.defineProperty(self.config, \"minDate\", {\n get: function () { return self.config._minDate; },\n set: minMaxDateSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: function () { return self.config._maxDate; },\n set: minMaxDateSetter(\"max\"),\n });\n var minMaxTimeSetter = function (type) { return function (val) {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n }; };\n Object.defineProperty(self.config, \"minTime\", {\n get: function () { return self.config._minTime; },\n set: minMaxTimeSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: function () { return self.config._maxTime; },\n set: minMaxTimeSetter(\"max\"),\n });\n if (userConfig.mode === \"time\") {\n self.config.noCalendar = true;\n self.config.enableTime = true;\n }\n Object.assign(self.config, formats, userConfig);\n for (var i = 0; i < boolOpts.length; i++)\n self.config[boolOpts[i]] =\n self.config[boolOpts[i]] === true ||\n self.config[boolOpts[i]] === \"true\";\n HOOKS.filter(function (hook) { return self.config[hook] !== undefined; }).forEach(function (hook) {\n self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n });\n self.isMobile =\n !self.config.disableMobile &&\n !self.config.inline &&\n self.config.mode === \"single\" &&\n !self.config.disable.length &&\n !self.config.enable &&\n !self.config.weekNumbers &&\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n for (var i = 0; i < self.config.plugins.length; i++) {\n var pluginConf = self.config.plugins[i](self) || {};\n for (var key in pluginConf) {\n if (HOOKS.indexOf(key) > -1) {\n self.config[key] = arrayify(pluginConf[key])\n .map(bindToInstance)\n .concat(self.config[key]);\n }\n else if (typeof userConfig[key] === \"undefined\")\n self.config[key] = pluginConf[key];\n }\n }\n if (!userConfig.altInputClass) {\n self.config.altInputClass =\n getInputElem().className + \" \" + self.config.altInputClass;\n }\n triggerEvent(\"onParseConfig\");\n }\n function getInputElem() {\n return self.config.wrap\n ? element.querySelector(\"[data-input]\")\n : element;\n }\n function setupLocale() {\n if (typeof self.config.locale !== \"object\" &&\n typeof flatpickr.l10ns[self.config.locale] === \"undefined\")\n self.config.errorHandler(new Error(\"flatpickr: invalid locale \" + self.config.locale));\n self.l10n = __assign(__assign({}, flatpickr.l10ns.default), (typeof self.config.locale === \"object\"\n ? self.config.locale\n : self.config.locale !== \"default\"\n ? flatpickr.l10ns[self.config.locale]\n : undefined));\n tokenRegex.D = \"(\" + self.l10n.weekdays.shorthand.join(\"|\") + \")\";\n tokenRegex.l = \"(\" + self.l10n.weekdays.longhand.join(\"|\") + \")\";\n tokenRegex.M = \"(\" + self.l10n.months.shorthand.join(\"|\") + \")\";\n tokenRegex.F = \"(\" + self.l10n.months.longhand.join(\"|\") + \")\";\n tokenRegex.K = \"(\" + self.l10n.amPM[0] + \"|\" + self.l10n.amPM[1] + \"|\" + self.l10n.amPM[0].toLowerCase() + \"|\" + self.l10n.amPM[1].toLowerCase() + \")\";\n var userConfig = __assign(__assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));\n if (userConfig.time_24hr === undefined &&\n flatpickr.defaultConfig.time_24hr === undefined) {\n self.config.time_24hr = self.l10n.time_24hr;\n }\n self.formatDate = createDateFormatter(self);\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n }\n function positionCalendar(customPositionElement) {\n if (typeof self.config.position === \"function\") {\n return void self.config.position(self, customPositionElement);\n }\n if (self.calendarContainer === undefined)\n return;\n triggerEvent(\"onPreCalendarPosition\");\n var positionElement = customPositionElement || self._positionElement;\n var calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, (function (acc, child) { return acc + child.offsetHeight; }), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(\" \"), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === \"above\" ||\n (configPosVertical !== \"below\" &&\n distanceFromBottom < calendarHeight &&\n inputBounds.top > calendarHeight);\n var top = window.pageYOffset +\n inputBounds.top +\n (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n if (self.config.inline)\n return;\n var left = window.pageXOffset + inputBounds.left;\n var isCenter = false;\n var isRight = false;\n if (configPosHorizontal === \"center\") {\n left -= (calendarWidth - inputBounds.width) / 2;\n isCenter = true;\n }\n else if (configPosHorizontal === \"right\") {\n left -= calendarWidth - inputBounds.width;\n isRight = true;\n }\n toggleClass(self.calendarContainer, \"arrowLeft\", !isCenter && !isRight);\n toggleClass(self.calendarContainer, \"arrowCenter\", isCenter);\n toggleClass(self.calendarContainer, \"arrowRight\", isRight);\n var right = window.document.body.offsetWidth -\n (window.pageXOffset + inputBounds.right);\n var rightMost = left + calendarWidth > window.document.body.offsetWidth;\n var centerMost = right + calendarWidth > window.document.body.offsetWidth;\n toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n if (self.config.static)\n return;\n self.calendarContainer.style.top = top + \"px\";\n if (!rightMost) {\n self.calendarContainer.style.left = left + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n else if (!centerMost) {\n self.calendarContainer.style.left = \"auto\";\n self.calendarContainer.style.right = right + \"px\";\n }\n else {\n var doc = getDocumentStyleSheet();\n if (doc === undefined)\n return;\n var bodyWidth = window.document.body.offsetWidth;\n var centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n var centerBefore = \".flatpickr-calendar.centerMost:before\";\n var centerAfter = \".flatpickr-calendar.centerMost:after\";\n var centerIndex = doc.cssRules.length;\n var centerStyle = \"{left:\" + inputBounds.left + \"px;right:auto;}\";\n toggleClass(self.calendarContainer, \"rightMost\", false);\n toggleClass(self.calendarContainer, \"centerMost\", true);\n doc.insertRule(centerBefore + \",\" + centerAfter + centerStyle, centerIndex);\n self.calendarContainer.style.left = centerLeft + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n }\n function getDocumentStyleSheet() {\n var editableSheet = null;\n for (var i = 0; i < document.styleSheets.length; i++) {\n var sheet = document.styleSheets[i];\n if (!sheet.cssRules)\n continue;\n try {\n sheet.cssRules;\n }\n catch (err) {\n continue;\n }\n editableSheet = sheet;\n break;\n }\n return editableSheet != null ? editableSheet : createStyleSheet();\n }\n function createStyleSheet() {\n var style = document.createElement(\"style\");\n document.head.appendChild(style);\n return style.sheet;\n }\n function redraw() {\n if (self.config.noCalendar || self.isMobile)\n return;\n buildMonthSwitch();\n updateNavigationCurrentMonth();\n buildDays();\n }\n function focusAndClose() {\n self._input.focus();\n if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 ||\n navigator.msMaxTouchPoints !== undefined) {\n setTimeout(self.close, 0);\n }\n else {\n self.close();\n }\n }\n function selectDate(e) {\n e.preventDefault();\n e.stopPropagation();\n var isSelectable = function (day) {\n return day.classList &&\n day.classList.contains(\"flatpickr-day\") &&\n !day.classList.contains(\"flatpickr-disabled\") &&\n !day.classList.contains(\"notAllowed\");\n };\n var t = findParent(getEventTarget(e), isSelectable);\n if (t === undefined)\n return;\n var target = t;\n var selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));\n var shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||\n selectedDate.getMonth() >\n self.currentMonth + self.config.showMonths - 1) &&\n self.config.mode !== \"range\";\n self.selectedDateElem = target;\n if (self.config.mode === \"single\")\n self.selectedDates = [selectedDate];\n else if (self.config.mode === \"multiple\") {\n var selectedIndex = isDateSelected(selectedDate);\n if (selectedIndex)\n self.selectedDates.splice(parseInt(selectedIndex), 1);\n else\n self.selectedDates.push(selectedDate);\n }\n else if (self.config.mode === \"range\") {\n if (self.selectedDates.length === 2) {\n self.clear(false, false);\n }\n self.latestSelectedDateObj = selectedDate;\n self.selectedDates.push(selectedDate);\n if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n setHoursFromInputs();\n if (shouldChangeMonth) {\n var isNewYear = self.currentYear !== selectedDate.getFullYear();\n self.currentYear = selectedDate.getFullYear();\n self.currentMonth = selectedDate.getMonth();\n if (isNewYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n triggerEvent(\"onMonthChange\");\n }\n updateNavigationCurrentMonth();\n buildDays();\n updateValue();\n if (!shouldChangeMonth &&\n self.config.mode !== \"range\" &&\n self.config.showMonths === 1)\n focusOnDayElem(target);\n else if (self.selectedDateElem !== undefined &&\n self.hourElement === undefined) {\n self.selectedDateElem && self.selectedDateElem.focus();\n }\n if (self.hourElement !== undefined)\n self.hourElement !== undefined && self.hourElement.focus();\n if (self.config.closeOnSelect) {\n var single = self.config.mode === \"single\" && !self.config.enableTime;\n var range = self.config.mode === \"range\" &&\n self.selectedDates.length === 2 &&\n !self.config.enableTime;\n if (single || range) {\n focusAndClose();\n }\n }\n triggerChange();\n }\n var CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate],\n positionElement: [updatePositionElement],\n clickOpens: [\n function () {\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n else {\n self._input.removeEventListener(\"focus\", self.open);\n self._input.removeEventListener(\"click\", self.open);\n }\n },\n ],\n };\n function set(option, value) {\n if (option !== null && typeof option === \"object\") {\n Object.assign(self.config, option);\n for (var key in option) {\n if (CALLBACKS[key] !== undefined)\n CALLBACKS[key].forEach(function (x) { return x(); });\n }\n }\n else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined)\n CALLBACKS[option].forEach(function (x) { return x(); });\n else if (HOOKS.indexOf(option) > -1)\n self.config[option] = arrayify(value);\n }\n self.redraw();\n updateValue(true);\n }\n function setSelectedDate(inputDate, format) {\n var dates = [];\n if (inputDate instanceof Array)\n dates = inputDate.map(function (d) { return self.parseDate(d, format); });\n else if (inputDate instanceof Date || typeof inputDate === \"number\")\n dates = [self.parseDate(inputDate, format)];\n else if (typeof inputDate === \"string\") {\n switch (self.config.mode) {\n case \"single\":\n case \"time\":\n dates = [self.parseDate(inputDate, format)];\n break;\n case \"multiple\":\n dates = inputDate\n .split(self.config.conjunction)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n case \"range\":\n dates = inputDate\n .split(self.l10n.rangeSeparator)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n default:\n break;\n }\n }\n else\n self.config.errorHandler(new Error(\"Invalid date supplied: \" + JSON.stringify(inputDate)));\n self.selectedDates = (self.config.allowInvalidPreload\n ? dates\n : dates.filter(function (d) { return d instanceof Date && isEnabled(d, false); }));\n if (self.config.mode === \"range\")\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n function setDate(date, triggerChange, format) {\n if (triggerChange === void 0) { triggerChange = false; }\n if (format === void 0) { format = self.config.dateFormat; }\n if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))\n return self.clear(triggerChange);\n setSelectedDate(date, format);\n self.latestSelectedDateObj =\n self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate(undefined, triggerChange);\n setHoursFromDate();\n if (self.selectedDates.length === 0) {\n self.clear(false);\n }\n updateValue(triggerChange);\n if (triggerChange)\n triggerEvent(\"onChange\");\n }\n function parseDateRules(arr) {\n return arr\n .slice()\n .map(function (rule) {\n if (typeof rule === \"string\" ||\n typeof rule === \"number\" ||\n rule instanceof Date) {\n return self.parseDate(rule, undefined, true);\n }\n else if (rule &&\n typeof rule === \"object\" &&\n rule.from &&\n rule.to)\n return {\n from: self.parseDate(rule.from, undefined),\n to: self.parseDate(rule.to, undefined),\n };\n return rule;\n })\n .filter(function (x) { return x; });\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n var preloadedDate = self.config.defaultDate ||\n ((self.input.nodeName === \"INPUT\" ||\n self.input.nodeName === \"TEXTAREA\") &&\n self.input.placeholder &&\n self.input.value === self.input.placeholder\n ? null\n : self.input.value);\n if (preloadedDate)\n setSelectedDate(preloadedDate, self.config.dateFormat);\n self._initialDate =\n self.selectedDates.length > 0\n ? self.selectedDates[0]\n : self.config.minDate &&\n self.config.minDate.getTime() > self.now.getTime()\n ? self.config.minDate\n : self.config.maxDate &&\n self.config.maxDate.getTime() < self.now.getTime()\n ? self.config.maxDate\n : self.now;\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n if (self.selectedDates.length > 0)\n self.latestSelectedDateObj = self.selectedDates[0];\n if (self.config.minTime !== undefined)\n self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n if (self.config.maxTime !== undefined)\n self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n self.minDateHasTime =\n !!self.config.minDate &&\n (self.config.minDate.getHours() > 0 ||\n self.config.minDate.getMinutes() > 0 ||\n self.config.minDate.getSeconds() > 0);\n self.maxDateHasTime =\n !!self.config.maxDate &&\n (self.config.maxDate.getHours() > 0 ||\n self.config.maxDate.getMinutes() > 0 ||\n self.config.maxDate.getSeconds() > 0);\n }\n function setupInputs() {\n self.input = getInputElem();\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n }\n self.input._type = self.input.type;\n self.input.type = \"text\";\n self.input.classList.add(\"flatpickr-input\");\n self._input = self.input;\n if (self.config.altInput) {\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode)\n self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n if (!self.config.allowInput)\n self._input.setAttribute(\"readonly\", \"readonly\");\n updatePositionElement();\n }\n function updatePositionElement() {\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n var inputType = self.config.enableTime\n ? self.config.noCalendar\n ? \"time\"\n : \"datetime-local\"\n : \"date\";\n self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n self.mobileInput.tabIndex = 1;\n self.mobileInput.type = inputType;\n self.mobileInput.disabled = self.input.disabled;\n self.mobileInput.required = self.input.required;\n self.mobileInput.placeholder = self.input.placeholder;\n self.mobileFormatStr =\n inputType === \"datetime-local\"\n ? \"Y-m-d\\\\TH:i:S\"\n : inputType === \"date\"\n ? \"Y-m-d\"\n : \"H:i:S\";\n if (self.selectedDates.length > 0) {\n self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n }\n if (self.config.minDate)\n self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n if (self.config.maxDate)\n self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n if (self.input.getAttribute(\"step\"))\n self.mobileInput.step = String(self.input.getAttribute(\"step\"));\n self.input.type = \"hidden\";\n if (self.altInput !== undefined)\n self.altInput.type = \"hidden\";\n try {\n if (self.input.parentNode)\n self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n }\n catch (_a) { }\n bind(self.mobileInput, \"change\", function (e) {\n self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);\n triggerEvent(\"onChange\");\n triggerEvent(\"onClose\");\n });\n }\n function toggle(e) {\n if (self.isOpen === true)\n return self.close();\n self.open(e);\n }\n function triggerEvent(event, data) {\n if (self.config === undefined)\n return;\n var hooks = self.config[event];\n if (hooks !== undefined && hooks.length > 0) {\n for (var i = 0; hooks[i] && i < hooks.length; i++)\n hooks[i](self.selectedDates, self.input.value, self, data);\n }\n if (event === \"onChange\") {\n self.input.dispatchEvent(createEvent(\"change\"));\n self.input.dispatchEvent(createEvent(\"input\"));\n }\n }\n function createEvent(name) {\n var e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n function isDateSelected(date) {\n for (var i = 0; i < self.selectedDates.length; i++) {\n var selectedDate = self.selectedDates[i];\n if (selectedDate instanceof Date &&\n compareDates(selectedDate, date) === 0)\n return \"\" + i;\n }\n return false;\n }\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2)\n return false;\n return (compareDates(date, self.selectedDates[0]) >= 0 &&\n compareDates(date, self.selectedDates[1]) <= 0);\n }\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav)\n return;\n self.yearElements.forEach(function (yearElement, i) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n self.monthElements[i].textContent =\n monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n }\n else {\n self.monthsDropdownContainer.value = d.getMonth().toString();\n }\n yearElement.value = d.getFullYear().toString();\n });\n self._hidePrevMonthArrow =\n self.config.minDate !== undefined &&\n (self.currentYear === self.config.minDate.getFullYear()\n ? self.currentMonth <= self.config.minDate.getMonth()\n : self.currentYear < self.config.minDate.getFullYear());\n self._hideNextMonthArrow =\n self.config.maxDate !== undefined &&\n (self.currentYear === self.config.maxDate.getFullYear()\n ? self.currentMonth + 1 > self.config.maxDate.getMonth()\n : self.currentYear > self.config.maxDate.getFullYear());\n }\n function getDateStr(specificFormat) {\n var format = specificFormat ||\n (self.config.altInput ? self.config.altFormat : self.config.dateFormat);\n return self.selectedDates\n .map(function (dObj) { return self.formatDate(dObj, format); })\n .filter(function (d, i, arr) {\n return self.config.mode !== \"range\" ||\n self.config.enableTime ||\n arr.indexOf(d) === i;\n })\n .join(self.config.mode !== \"range\"\n ? self.config.conjunction\n : self.l10n.rangeSeparator);\n }\n function updateValue(triggerChange) {\n if (triggerChange === void 0) { triggerChange = true; }\n if (self.mobileInput !== undefined && self.mobileFormatStr) {\n self.mobileInput.value =\n self.latestSelectedDateObj !== undefined\n ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr)\n : \"\";\n }\n self.input.value = getDateStr(self.config.dateFormat);\n if (self.altInput !== undefined) {\n self.altInput.value = getDateStr(self.config.altFormat);\n }\n if (triggerChange !== false)\n triggerEvent(\"onValueUpdate\");\n }\n function onMonthNavClick(e) {\n var eventTarget = getEventTarget(e);\n var isPrevMonth = self.prevMonthNav.contains(eventTarget);\n var isNextMonth = self.nextMonthNav.contains(eventTarget);\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n }\n else if (self.yearElements.indexOf(eventTarget) >= 0) {\n eventTarget.select();\n }\n else if (eventTarget.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n }\n else if (eventTarget.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n function timeWrapper(e) {\n e.preventDefault();\n var isKeyDown = e.type === \"keydown\", eventTarget = getEventTarget(e), input = eventTarget;\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n var min = parseFloat(input.getAttribute(\"min\")), max = parseFloat(input.getAttribute(\"max\")), step = parseFloat(input.getAttribute(\"step\")), curValue = parseInt(input.value, 10), delta = e.delta ||\n (isKeyDown ? (e.which === 38 ? 1 : -1) : 0);\n var newValue = curValue + step * delta;\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n var isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;\n if (newValue < min) {\n newValue =\n max +\n newValue +\n int(!isHourElem) +\n (int(isHourElem) && int(!self.amPM));\n if (isMinuteElem)\n incrementNumInput(undefined, -1, self.hourElement);\n }\n else if (newValue > max) {\n newValue =\n input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n if (isMinuteElem)\n incrementNumInput(undefined, 1, self.hourElement);\n }\n if (self.amPM &&\n isHourElem &&\n (step === 1\n ? newValue + curValue === 23\n : Math.abs(newValue - curValue) > step)) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n input.value = pad(newValue);\n }\n }\n init();\n return self;\n}\nfunction _flatpickr(nodeList, config) {\n var nodes = Array.prototype.slice\n .call(nodeList)\n .filter(function (x) { return x instanceof HTMLElement; });\n var instances = [];\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n try {\n if (node.getAttribute(\"data-fp-omit\") !== null)\n continue;\n if (node._flatpickr !== undefined) {\n node._flatpickr.destroy();\n node._flatpickr = undefined;\n }\n node._flatpickr = FlatpickrInstance(node, config || {});\n instances.push(node._flatpickr);\n }\n catch (e) {\n console.error(e);\n }\n }\n return instances.length === 1 ? instances[0] : instances;\n}\nif (typeof HTMLElement !== \"undefined\" &&\n typeof HTMLCollection !== \"undefined\" &&\n typeof NodeList !== \"undefined\") {\n HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n HTMLElement.prototype.flatpickr = function (config) {\n return _flatpickr([this], config);\n };\n}\nvar flatpickr = function (selector, config) {\n if (typeof selector === \"string\") {\n return _flatpickr(window.document.querySelectorAll(selector), config);\n }\n else if (selector instanceof Node) {\n return _flatpickr([selector], config);\n }\n else {\n return _flatpickr(selector, config);\n }\n};\nflatpickr.defaultConfig = {};\nflatpickr.l10ns = {\n en: __assign({}, English),\n default: __assign({}, English),\n};\nflatpickr.localize = function (l10n) {\n flatpickr.l10ns.default = __assign(__assign({}, flatpickr.l10ns.default), l10n);\n};\nflatpickr.setDefaults = function (config) {\n flatpickr.defaultConfig = __assign(__assign({}, flatpickr.defaultConfig), config);\n};\nflatpickr.parseDate = createDateParser({});\nflatpickr.formatDate = createDateFormatter({});\nflatpickr.compareDates = compareDates;\nif (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n}\nDate.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n};\nif (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n}\nexport default flatpickr;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _flatpickr = _interopRequireDefault(require(\"flatpickr\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar hooks = ['onChange', 'onOpen', 'onClose', 'onMonthChange', 'onYearChange', 'onReady', 'onValueUpdate', 'onDayCreate'];\n\nvar hookPropType = _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].func, _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].func)]);\n\nvar callbacks = ['onCreate', 'onDestroy'];\nvar callbackPropTypes = _propTypes[\"default\"].func;\n\nvar DateTimePicker = /*#__PURE__*/function (_Component) {\n _inherits(DateTimePicker, _Component);\n\n var _super = _createSuper(DateTimePicker);\n\n function DateTimePicker() {\n var _this;\n\n _classCallCheck(this, DateTimePicker);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"createFlatpickrInstance\", function () {\n var options = _objectSpread({\n onClose: function onClose() {\n _this.node.blur && _this.node.blur();\n }\n }, _this.props.options); // Add prop hooks to options\n\n\n options = mergeHooks(options, _this.props);\n _this.flatpickr = (0, _flatpickr[\"default\"])(_this.node, options);\n\n if (_this.props.hasOwnProperty('value')) {\n _this.flatpickr.setDate(_this.props.value, false);\n }\n\n var onCreate = _this.props.onCreate;\n if (onCreate) onCreate(_this.flatpickr);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"destroyFlatpickrInstance\", function () {\n var onDestroy = _this.props.onDestroy;\n if (onDestroy) onDestroy(_this.flatpickr);\n\n _this.flatpickr.destroy();\n\n _this.flatpickr = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleNodeChange\", function (node) {\n _this.node = node;\n\n if (_this.flatpickr) {\n _this.destroyFlatpickrInstance();\n\n _this.createFlatpickrInstance();\n }\n });\n\n return _this;\n }\n\n _createClass(DateTimePicker, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var options = this.props.options;\n var prevOptions = prevProps.options;\n options = mergeHooks(options, this.props); // Add prev ones too so we can compare against them later\n\n prevOptions = mergeHooks(prevOptions, prevProps);\n var optionsKeys = Object.getOwnPropertyNames(options);\n\n for (var index = optionsKeys.length - 1; index >= 0; index--) {\n var key = optionsKeys[index];\n var value = options[key];\n\n if (value !== prevOptions[key]) {\n // Hook handlers must be set as an array\n if (hooks.indexOf(key) !== -1 && !Array.isArray(value)) {\n value = [value];\n }\n\n this.flatpickr.set(key, value);\n }\n }\n\n if (this.props.hasOwnProperty('value') && !(this.props.value && Array.isArray(this.props.value) && prevProps.value && Array.isArray(prevProps.value) && this.props.value.every(function (v, i) {\n prevProps[i] === v;\n })) && this.props.value !== prevProps.value) {\n this.flatpickr.setDate(this.props.value, false);\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.createFlatpickrInstance();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.destroyFlatpickrInstance();\n }\n }, {\n key: \"render\",\n value: function render() {\n // eslint-disable-next-line no-unused-vars\n var _this$props = this.props,\n options = _this$props.options,\n defaultValue = _this$props.defaultValue,\n value = _this$props.value,\n children = _this$props.children,\n render = _this$props.render,\n props = _objectWithoutProperties(_this$props, [\"options\", \"defaultValue\", \"value\", \"children\", \"render\"]); // Don't pass hooks and callbacks to dom node\n\n\n hooks.forEach(function (hook) {\n delete props[hook];\n });\n callbacks.forEach(function (callback) {\n delete props[callback];\n });\n if (render) return render(_objectSpread(_objectSpread({}, props), {}, {\n defaultValue: defaultValue,\n value: value\n }), this.handleNodeChange);\n return options.wrap ? /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({}, props, {\n ref: this.handleNodeChange\n }), children) : /*#__PURE__*/_react[\"default\"].createElement(\"input\", _extends({}, props, {\n defaultValue: defaultValue,\n ref: this.handleNodeChange\n }));\n }\n }]);\n\n return DateTimePicker;\n}(_react.Component);\n\n_defineProperty(DateTimePicker, \"propTypes\", {\n defaultValue: _propTypes[\"default\"].string,\n options: _propTypes[\"default\"].object,\n onChange: hookPropType,\n onOpen: hookPropType,\n onClose: hookPropType,\n onMonthChange: hookPropType,\n onYearChange: hookPropType,\n onReady: hookPropType,\n onValueUpdate: hookPropType,\n onDayCreate: hookPropType,\n onCreate: callbackPropTypes,\n onDestroy: callbackPropTypes,\n value: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].array, _propTypes[\"default\"].object, _propTypes[\"default\"].number]),\n children: _propTypes[\"default\"].node,\n className: _propTypes[\"default\"].string,\n render: _propTypes[\"default\"].func\n});\n\n_defineProperty(DateTimePicker, \"defaultProps\", {\n options: {}\n});\n\nfunction mergeHooks(inputOptions, props) {\n var options = _objectSpread({}, inputOptions);\n\n hooks.forEach(function (hook) {\n if (props.hasOwnProperty(hook)) {\n var _options$hook;\n\n if (options[hook] && !Array.isArray(options[hook])) {\n options[hook] = [options[hook]];\n } else if (!options[hook]) {\n options[hook] = [];\n }\n\n var propHook = Array.isArray(props[hook]) ? props[hook] : [props[hook]];\n\n (_options$hook = options[hook]).push.apply(_options$hook, _toConsumableArray(propHook));\n }\n });\n return options;\n}\n\nvar _default = DateTimePicker;\nexports[\"default\"] = _default;","// utils.ts\n\n/**\n * Creates a dropdown element with a specific className.\n * @param className - The class to add to the dropdown element.\n * @returns The created dropdown element.\n */\nexport const createDropdownElement = (className: string): HTMLDivElement => {\n const dropdown = document.createElement(\"div\");\n dropdown.classList.add(className);\n dropdown.style.display = \"none\"; // Initially hidden\n return dropdown;\n};\n\n/**\n * Filters the dropdown options based on the query string.\n * @param dropdown - The dropdown element to populate.\n * @param query - The query string to filter options by.\n * @param options - Array of string options to display in the dropdown.\n */\nexport const filterDropdownOptions = (\n dropdown: HTMLDivElement,\n query: string,\n options: string[],\n handleTimeOptionClick: (option: string) => void,\n closeDropdown?: () => void\n): void => {\n dropdown.innerHTML = \"\"; // Clear previous options\n\n const filteredOptions = options.filter((option) =>\n option.toLowerCase().includes(query.toLowerCase())\n );\n\n // Populate dropdown with matching options\n if (filteredOptions.length > 0) {\n filteredOptions.forEach((option) => {\n const optionElement = document.createElement(\"span\");\n optionElement.classList.add(\"dropdown-option\");\n optionElement.textContent = option;\n optionElement.addEventListener('click', () => { handleTimeOptionClick(option) })\n dropdown.appendChild(optionElement);\n });\n toggleDropdownVisibility(dropdown, true); // Show the dropdown\n } else {\n if (closeDropdown) {\n closeDropdown();\n }\n toggleDropdownVisibility(dropdown, false); // Hide the dropdown if no match\n }\n};\n\n/**\n * Positions the dropdown relative to the input field.\n * @param dropdown - The dropdown element to position.\n * @param inputElement - The input element to base the dropdown positioning on.\n * @param wrapperElement - The wrapper element to base the dropdown positioning on. This will take precedence over the input element.\n * @param dropdownPosition - The position of the dropdown. 'fixed' or 'absolute'.\n */\nexport const positionDropdownRelativeToInput = (\n dropdown: HTMLDivElement,\n inputElement: HTMLInputElement,\n wrapperElement?: HTMLElement,\n dropdownPosition: 'fixed' | 'absolute' = 'absolute'\n): void => {\n dropdown.style.position = dropdownPosition;\n dropdown.style.left = '0';\n dropdown.style.width = '100%';\n dropdown.style.zIndex = '100';\n\n // Calculate available space below and above\n const wrapperRect = wrapperElement?.getBoundingClientRect() || inputElement.getBoundingClientRect();\n const dropdownHeight = dropdown.offsetHeight;\n const windowHeight = window.innerHeight;\n const spaceBelow = windowHeight - wrapperRect.bottom;\n const spaceAbove = wrapperRect.top;\n\n // Position above if not enough space below and more space above\n if (spaceBelow < dropdownHeight && spaceAbove > dropdownHeight) {\n dropdown.style.bottom = '110%';\n dropdown.style.top = 'auto';\n } else {\n dropdown.style.top = '110%';\n dropdown.style.bottom = 'auto';\n }\n};\n\n/**\n * Formats a Date object into a time string (HH:MM AM/PM).\n * @param date - The Date object to format.\n * @returns The formatted time string (e.g., \"12:00 PM\").\n */\nexport const formatTime = (date: Date): string =>\n date.toLocaleTimeString(\"en-US\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n hour12: true,\n });\n\n/**\n * Toggles the visibility of a dropdown element.\n * @param dropdown - The dropdown element to show or hide.\n * @param isVisible - A boolean indicating whether the dropdown should be visible.\n */\nexport const toggleDropdownVisibility = (\n dropdown: HTMLDivElement,\n isVisible: boolean\n): void => {\n dropdown.style.display = isVisible ? \"flex\" : \"none\";\n};\n\n// Generates the time options based on minute step\nexport const generateTimeOptions = (minuteStep: number): string[] => {\n const times: string[] = [];\n for (let hour = 0; hour < 24; hour++) {\n for (let minute = 0; minute < 60; minute += minuteStep) {\n const date = new Date();\n date.setHours(hour, minute, 0, 0);\n const formattedTime = formatTime(date);\n times.push(formattedTime);\n }\n }\n return times;\n};\n\n/**\n * Parses a time input string and returns a formatted time string.\n * Handles various input formats and edge cases including AM/PM specifications.\n * Hours greater than 24 are handled by taking remainder of 24.\n * \n * @param input - The time input string to parse (can be numeric, time string, or include AM/PM)\n * @returns A formatted time string in \"HH:MM AM/PM\" format\n * \n * @example\n * parseTimeInput(\"1\") => \"1:00 AM\"\n * parseTimeInput(\"abc\") => \"12:00 AM\"\n * parseTimeInput(\"3456\") => \"12:00 AM\"\n * parseTimeInput(\"1:30\") => \"1:30 AM\"\n * parseTimeInput(\"1:30 PM\") => \"1:30 PM\"\n * parseTimeInput(\"13:45\") => \"1:45 PM\"\n */\nexport const parseTimeInput = (input: string): string => {\n // Clean and standardize the input\n const cleanInput = input.trim().toUpperCase();\n if (!cleanInput) return \"12:00 AM\"; // Default to \"12:00 AM\" if input is empty\n\n // Check if the input specifies AM or PM\n const hasAMPM = /\\s*(AM|PM)$/i.test(cleanInput);\n let specifiedPeriod = hasAMPM ? cleanInput.slice(-2) : ''; // Extract AM/PM if present\n const timeString = hasAMPM ? cleanInput.slice(0, -2).trim() : cleanInput; // Remove AM/PM for parsing\n\n // Helper function to format time\n const parseTime = (hours: number, minutes: number): string => {\n // Validate hours and minutes\n if (isNaN(hours) || isNaN(minutes) || hours >= 24 || minutes >= 60) {\n return \"12:00 AM\"; // Return default if invalid\n }\n // Determine AM/PM if not specified\n if (!specifiedPeriod) {\n specifiedPeriod = hours >= 12 ? 'PM' : 'AM';\n }\n // Convert 24-hour format to 12-hour format\n hours = hours % 12 || 12;\n const minuteString = minutes.toString().padStart(2, '0'); // Pad minutes to ensure 2 digits\n return `${hours}:${minuteString} ${specifiedPeriod}`;\n };\n\n // Handle time strings with colon (e.g., \"1:30\")\n if (timeString.includes(':')) {\n const [hoursStr, minutesStr] = timeString.split(':');\n return parseTime(parseInt(hoursStr), parseInt(minutesStr));\n }\n\n // Handle numeric inputs (e.g., \"130\" for \"1:30\")\n const numericInput = timeString.replace(/[^0-9]/g, '');\n if (!numericInput) return \"12:00 AM\"; // Default if no numeric input\n\n // Handle inputs with 3 or more digits (e.g., \"1345\" for \"13:45\")\n if (numericInput.length >= 3) {\n const paddedInput = numericInput.padStart(4, '0'); // Pad to ensure at least 4 digits\n const hours = parseInt(paddedInput.substring(0, 2));\n const minutes = parseInt(paddedInput.substring(2, 4));\n return parseTime(hours, minutes);\n }\n\n // Handle inputs with 1 or 2 digits (e.g., \"1\" for \"1:00\")\n const hours = parseInt(numericInput.substring(0, 2));\n return parseTime(hours, 0);\n};","import React from 'react';\nimport { Plugin } from \"flatpickr/dist/types/options\";\nimport { createRoot } from \"react-dom/client\";\nimport { Icon } from '../../../../atoms';\nimport { CustomTimePickerConfig } from '../DatePickerBase.types';\nimport {\n createDropdownElement,\n filterDropdownOptions,\n generateTimeOptions,\n parseTimeInput,\n positionDropdownRelativeToInput,\n toggleDropdownVisibility\n} from \"./utils\";\n\nconst timeDropdownPlugin = (config: CustomTimePickerConfig): Plugin => {\n const { minuteStep = 30 } = config;\n\n return (flatpickrInstance) => {\n const flatpickrConfig = flatpickrInstance.config;\n let dropdownElement: HTMLDivElement;\n let timeInputField: HTMLInputElement | undefined;\n let wrapperElement: HTMLDivElement;\n let preventClose = false;\n\n const createDropdown = () => {\n dropdownElement = createDropdownElement(\"time-dropdown\");\n dropdownElement.style.position = \"absolute\";\n dropdownElement.style.display = \"none\";\n };\n\n const positionDropdown = () => {\n if (timeInputField && dropdownElement && wrapperElement) {\n positionDropdownRelativeToInput(dropdownElement, timeInputField, wrapperElement, 'fixed');\n }\n };\n\n const closeDropdown = () => {\n flatpickrInstance.calendarContainer.style.display = \"none\";\n toggleDropdownVisibility(dropdownElement!, false);\n };\n\n const handleTimeOptionClick = (time: string) => {\n if (timeInputField) {\n timeInputField.value = time;\n }\n\n const selectedDate = flatpickrInstance.selectedDates[0] || new Date();\n const [hour, minute] = time.split(\":\");\n const isPM = time.includes(\"PM\");\n const adjustedHour = isPM ? (parseInt(hour, 10) % 12) + 12 : parseInt(hour, 10) % 12;\n\n selectedDate.setHours(adjustedHour, parseInt(minute, 10));\n flatpickrInstance.setDate(selectedDate, false);\n timeInputField?.focus();\n closeDropdown();\n };\n\n const handleInputBlur = () => {\n // don't close dropdown if user clicked on the dropdown and didn't select an option\n if (preventClose) {\n preventClose = false;\n return;\n }\n\n // if time input field has a value, set the date\n if (timeInputField && timeInputField.value) {\n const selectedDate = flatpickrInstance.selectedDates[0] || new Date();\n const datePart = flatpickrInstance.formatDate(selectedDate, \"m/d/Y\");\n // parse time input to HH:MM AM/PM format\n const parsedTime = parseTimeInput(timeInputField.value);\n\n if (!parsedTime) {\n closeDropdown();\n return;\n }\n\n // format date and time to HH:MM AM/PM format\n const fullDateTimeString = `${datePart} ${parsedTime}`;\n\n if (fullDateTimeString) {\n try {\n const parsedDate = new Date(fullDateTimeString);\n // set flatpickr config\n flatpickrInstance.config = flatpickrConfig;\n flatpickrInstance.setDate(parsedDate, true);\n // fill input field with formatted time\n timeInputField.value = parsedDate.toLocaleTimeString(undefined, {\n hour: \"numeric\",\n minute: \"numeric\",\n hour12: true\n }).toUpperCase();\n } catch (error) {\n console.error('Error setting date:', error);\n }\n }\n }\n\n closeDropdown();\n };\n\n const handleInputChange = (e: Event) => {\n const input = e.target as HTMLInputElement;\n const query = input.value.trim();\n // open dropdown\n toggleDropdownVisibility(dropdownElement!, true);\n // filter dropdown options\n filterDropdownOptions(dropdownElement!, query, generateTimeOptions(minuteStep), handleTimeOptionClick);\n // position dropdown\n positionDropdown();\n };\n\n const handleInputFocus = () => {\n // open dropdown\n flatpickrInstance.calendarContainer.style.display = \"flex\";\n toggleDropdownVisibility(dropdownElement!, true);\n // generate and filter dropdown options\n filterDropdownOptions(\n dropdownElement!,\n timeInputField?.value.trim() || \"\",\n generateTimeOptions(minuteStep),\n handleTimeOptionClick\n );\n // position dropdown\n positionDropdown();\n };\n\n const handleKeyDown = (e: KeyboardEvent) => {\n // Allow arrow keys, home, end, backspace, delete for cursor movement and editing\n const allowedKeys = ['ArrowLeft', 'ArrowRight', 'Home', 'End', 'Backspace', 'Delete'];\n if (allowedKeys.includes(e.key)) {\n e.stopPropagation(); // Prevent flatpickr from handling these keys\n return;\n }\n };\n\n return {\n onReady() {\n // Hide the original flatpickr input\n if (flatpickrInstance.altInput) {\n flatpickrInstance.altInput.style.display = 'none';\n }\n if (flatpickrInstance.input) {\n flatpickrInstance.input.style.display = 'none';\n }\n\n // custom time picker wrapper\n const wrapper = document.createElement(\"div\");\n wrapper.className = \"custom-time-wrapper\";\n // create dropdown\n createDropdown();\n\n // create custom time picker input wrapper\n const inputWrapper = document.createElement(\"div\");\n inputWrapper.className = \"custom-time-only-input-wrapper\";\n // append dropdown to custom time picker wrapper\n inputWrapper.appendChild(dropdownElement);\n wrapperElement = inputWrapper;\n\n // create custom time picker icon\n const iconContainer = document.createElement(\"div\");\n iconContainer.className = \"custom-time-icon\";\n const iconRoot = createRoot(iconContainer);\n iconRoot.render(<Icon icon=\"Schedule\" style=\"Outlined\" size=\"Small\" />);\n\n // create input field\n const inputField = document.createElement(\"input\");\n inputField.type = \"text\";\n inputField.className = \"custom-time-input\";\n // leave empty if no initial date\n const initialDate = flatpickrInstance.selectedDates[0];\n if (initialDate) {\n inputField.value = initialDate?.toLocaleTimeString(undefined, {\n hour: \"numeric\",\n minute: \"2-digit\",\n hour12: true\n }).toUpperCase() || '';\n }\n inputField.setAttribute(\"autocomplete\", \"off\");\n timeInputField = inputField;\n\n // append icon and input field to input wrapper\n inputWrapper.appendChild(iconContainer);\n inputWrapper.appendChild(inputField);\n // append input wrapper to custom time picker wrapper\n wrapper.appendChild(inputWrapper);\n // append custom time picker wrapper to flatpickr calendar container\n flatpickrInstance.calendarContainer.appendChild(wrapper);\n\n // Event listeners\n inputField.addEventListener(\"input\", handleInputChange);\n inputField.addEventListener(\"focus\", handleInputFocus);\n inputField.addEventListener(\"keydown\", handleKeyDown);\n dropdownElement?.addEventListener(\"mousedown\", () => (preventClose = true));\n inputField.addEventListener(\"blur\", handleInputBlur);\n\n // Window event listeners\n window.addEventListener(\"resize\", positionDropdown);\n window.addEventListener(\"scroll\", positionDropdown, true);\n\n setTimeout(() => {\n timeInputField?.focus();\n }, 200);\n },\n onDestroy() {\n // remove event listeners\n window.removeEventListener(\"resize\", positionDropdown);\n window.removeEventListener(\"scroll\", positionDropdown, true);\n if (timeInputField) {\n timeInputField.removeEventListener(\"input\", handleInputChange);\n timeInputField.removeEventListener(\"focus\", handleInputFocus);\n timeInputField.removeEventListener(\"keydown\", handleKeyDown);\n timeInputField.removeEventListener(\"blur\", handleInputBlur);\n }\n if (dropdownElement) {\n dropdownElement.remove();\n }\n }\n };\n };\n};\n\nexport default timeDropdownPlugin;","import React from 'react';\nimport { Icon } from \"../../../../atoms\";\nimport { Plugin } from \"flatpickr/dist/types/options\";\nimport { createRoot } from \"react-dom/client\";\nimport { CustomTimePickerConfig } from \"../DatePickerBase.types\";\nimport {\n createDropdownElement,\n filterDropdownOptions,\n generateTimeOptions,\n parseTimeInput,\n positionDropdownRelativeToInput,\n toggleDropdownVisibility\n} from \"./utils\";\n\nconst dateTimeDropdownPlugin = (config: CustomTimePickerConfig): Plugin => {\n const { minuteStep = 30 } = config;\n\n return (flatpickrInstance) => {\n let dropdownElement: HTMLDivElement;\n let timeInputField: HTMLInputElement | undefined;\n let wrapperElement: HTMLElement | undefined;\n let preventClose = false;\n\n const createDropdown = () => {\n dropdownElement = createDropdownElement(\"time-dropdown\");\n dropdownElement.style.position = \"absolute\";\n dropdownElement.style.display = \"none\";\n };\n\n const positionDropdown = () => {\n if (timeInputField && dropdownElement) {\n positionDropdownRelativeToInput(dropdownElement, timeInputField, wrapperElement);\n }\n };\n\n const closeDropdown = () => {\n toggleDropdownVisibility(dropdownElement!, false);\n };\n\n const handleTimeOptionClick = (time: string) => {\n // fill the input field with the selected time\n if (timeInputField) {\n timeInputField.value = time;\n }\n\n // set the date to the selected time\n const selectedDate = flatpickrInstance.selectedDates[0] || new Date();\n // split the time into hour and minute\n const [hour, minute] = time.split(\":\");\n // check if the time is in PM\n const isPM = time.includes(\"PM\");\n // adjust the hour to the correct format\n const adjustedHour = isPM ? (parseInt(hour, 10) % 12) + 12 : parseInt(hour, 10) % 12;\n\n // set the date to the selected time\n selectedDate.setHours(adjustedHour, parseInt(minute, 10));\n // set the flatpickr date to the selected time\n flatpickrInstance.setDate(selectedDate, false);\n\n // close the dropdown and focus the input field\n timeInputField?.focus();\n closeDropdown();\n };\n\n const handleInputBlur = () => {\n // don't close dropdown if user clicked on the dropdown and didn't select an option\n if (preventClose) {\n preventClose = false;\n return;\n }\n\n if (timeInputField) {\n const selectedDate = flatpickrInstance.selectedDates[0] || new Date();\n const datePart = flatpickrInstance.formatDate(selectedDate, \"m/d/Y\");\n // parse time input to HH:MM AM/PM format\n const parsedTime = parseTimeInput(timeInputField.value);\n\n // format date and time to HH:MM AM/PM format\n const fullDateTimeString = `${datePart} ${parsedTime}`;\n if (fullDateTimeString) {\n try {\n // parse the date and time to a date object\n const parsedDate = new Date(fullDateTimeString);\n flatpickrInstance.setDate(parsedDate, true);\n // fill input field with formatted time\n timeInputField.value = parsedDate.toLocaleTimeString(undefined, {\n hour: \"numeric\",\n minute: \"numeric\",\n hour12: true\n }).toUpperCase();\n } catch (err) {\n console.error('Error setting date:', err);\n }\n }\n }\n\n closeDropdown();\n };\n\n const handleKeyDown = (e: KeyboardEvent) => {\n // Allow arrow keys, home, end, backspace, delete for cursor movement and editing\n const allowedKeys = ['ArrowLeft', 'ArrowRight', 'Home', 'End', 'Backspace', 'Delete'];\n if (allowedKeys.includes(e.key)) {\n e.stopPropagation(); // Prevent flatpickr from handling these keys\n return;\n }\n };\n\n const handleInputChange = (e: Event) => {\n const input = e.target as HTMLInputElement;\n const query = input.value.trim();\n // open dropdown\n toggleDropdownVisibility(dropdownElement!, true);\n // filter dropdown options\n filterDropdownOptions(dropdownElement!, query, generateTimeOptions(minuteStep), handleTimeOptionClick);\n // position dropdown\n positionDropdown();\n };\n\n const handleInputFocus = () => {\n // open dropdown\n toggleDropdownVisibility(dropdownElement!, true);\n // generate and filter dropdown options\n filterDropdownOptions(\n dropdownElement!,\n timeInputField?.value.trim() || \"\",\n generateTimeOptions(minuteStep),\n handleTimeOptionClick\n );\n // position dropdown\n positionDropdown();\n };\n\n return {\n onReady() {\n // create dropdown and wrapper for the input field and dropdown\n const wrapper = document.createElement(\"div\");\n wrapper.className = \"custom-time-wrapper\";\n\n // create label for the input field\n const label = document.createElement(\"label\");\n label.className = \"custom-time-label\";\n label.innerText = \"Time\";\n\n // create wrapper for the input\n const inputWrapper = document.createElement(\"div\");\n inputWrapper.className = \"custom-time-input-wrapper\";\n wrapperElement = inputWrapper;\n\n // create icon container and render the icon\n const iconContainer = document.createElement(\"div\");\n iconContainer.className = \"custom-time-icon\";\n const iconRoot = createRoot(iconContainer);\n iconRoot.render(<Icon icon=\"Schedule\" style=\"Outlined\" size=\"Small\" />);\n\n // create input field \n const inputField = document.createElement(\"input\");\n inputField.type = \"text\";\n inputField.className = \"custom-time-input\";\n // set the initial value of the input field to the selected time\n const now = new Date();\n now.setHours(0, 0, 0, 0);\n const initialDate = flatpickrInstance.selectedDates[0] || now;\n inputField.value = initialDate.toLocaleTimeString(undefined, {\n hour: \"numeric\",\n minute: \"2-digit\",\n hour12: true\n }).toUpperCase();\n inputField.setAttribute(\"autocomplete\", \"off\");\n // set the time input field to the input field\n timeInputField = inputField;\n\n // append the icon container and input field to the input wrapper\n inputWrapper.appendChild(iconContainer);\n inputWrapper.appendChild(inputField);\n // append the label and input wrapper to the wrapper\n wrapper.appendChild(label);\n wrapper.appendChild(inputWrapper);\n\n // create and append dropdown after wrapper is created\n createDropdown();\n inputWrapper.appendChild(dropdownElement);\n\n // append the wrapper to the calendar container\n flatpickrInstance.calendarContainer.appendChild(wrapper);\n\n // add event listeners\n inputField.addEventListener(\"input\", handleInputChange);\n inputField.addEventListener(\"focus\", handleInputFocus);\n inputField.addEventListener(\"keydown\", handleKeyDown);\n dropdownElement?.addEventListener(\"mousedown\", () => (preventClose = true));\n inputField.addEventListener(\"blur\", handleInputBlur);\n\n // position dropdown on resize and scroll\n window.addEventListener(\"resize\", positionDropdown);\n window.addEventListener(\"scroll\", positionDropdown, true);\n },\n onDestroy() {\n // remove event listeners\n window.removeEventListener(\"resize\", positionDropdown);\n window.removeEventListener(\"scroll\", positionDropdown, true);\n\n if (timeInputField) {\n timeInputField.removeEventListener(\"keydown\", handleKeyDown);\n }\n\n if (dropdownElement) {\n dropdownElement.remove();\n }\n }\n };\n };\n};\n\nexport default dateTimeDropdownPlugin;\n","import { Plugin } from \"flatpickr/dist/types/options\";\nimport { CustomTimePickerConfig } from \"../DatePickerBase.types\";\nimport {\n createDropdownElement,\n filterDropdownOptions,\n generateTimeOptions,\n toggleDropdownVisibility\n} from \"./utils\";\n\nconst timeDropdownPlugin = (config: CustomTimePickerConfig): Plugin => {\n const { minuteStep = 30 } = config;\n\n return (flatpickrInstance) => {\n let dropdown: HTMLDivElement;\n let preventClose = false;\n\n // Create dropdown structure\n const createDropdown = () => {\n dropdown = createDropdownElement(\"time-dropdown\");\n dropdown.style.display = \"none\";\n document.body.appendChild(dropdown);\n populateDropdown('');\n };\n\n // Close dropdown when focus is lost\n const closeDropdown = () => {\n flatpickrInstance.calendarContainer.style.display = \"none\";\n toggleDropdownVisibility(dropdown, false);\n };\n\n const handleTimeOptionClick = (time: string) => {\n const selectedDate = flatpickrInstance.selectedDates.length > 0 ? flatpickrInstance.selectedDates[0] : new Date();\n const [hours, minutes] = time.split(\":\");\n const isPM = time.includes(\"PM\");\n const adjustedHours = isPM\n ? (parseInt(hours, 10) % 12) + 12\n : parseInt(hours, 10) % 12;\n\n selectedDate.setHours(adjustedHours, parseInt(minutes, 10));\n flatpickrInstance.setDate(selectedDate, false); // Update selected date\n closeDropdown();\n flatpickrInstance.close();\n }\n\n // Populate dropdown with time options based on the query\n const populateDropdown = (query: string) => {\n if (!dropdown) return;\n dropdown.innerHTML = \"\"; // Clear previous items\n flatpickrInstance.calendarContainer.style.display = \"flex\";\n // Filter the options based on the query using filterDropdownOptions\n filterDropdownOptions(dropdown, query, generateTimeOptions(minuteStep), handleTimeOptionClick, closeDropdown);\n };\n\n // Input change handler\n const onInputChange = (e: Event) => {\n e.preventDefault(); // Prevent default Flatpickr parsing\n const input = e.target as HTMLInputElement;\n const query = input.value.trim();\n\n // Don't let Flatpickr format the input value\n flatpickrInstance._input.value = query;\n if (flatpickrInstance.altInput) {\n flatpickrInstance.altInput.value = query;\n }\n\n // Populate dropdown based on the query\n populateDropdown(query);\n toggleDropdownVisibility(dropdown, true);\n };\n\n const handleInputBlur = () => {\n if (preventClose) {\n preventClose = false;\n return;\n }\n closeDropdown();\n flatpickrInstance.close();\n }\n\n return {\n onReady() {\n const wrapper = flatpickrInstance.calendarContainer;\n\n // Create dropdown and append it to the calendar container\n createDropdown();\n if (dropdown) {\n wrapper.appendChild(dropdown);\n }\n const inputElement = flatpickrInstance.altInput;\n if (inputElement) {\n inputElement.addEventListener(\"input\", onInputChange);\n inputElement.addEventListener(\"focus\", () => populateDropdown(''));\n // Close dropdown when input loses focus\n dropdown?.addEventListener(\"mousedown\", () => (preventClose = true));\n inputElement.addEventListener(\"blur\", handleInputBlur);\n\n // Prevent autocomplete in the input field\n inputElement.setAttribute(\"autocomplete\", \"off\");\n }\n },\n };\n };\n};\n\nexport default timeDropdownPlugin;\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.default = {}));\n}(this, (function (exports) { 'use strict';\n\n var english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n };\n\n exports.default = english;\n exports.english = english;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","import english from 'flatpickr/dist/l10n/default';\n\nexport const customLocale = {\n weekdays: {\n shorthand: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n longhand: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n },\n months: english.months\n};","import React from 'react';\nimport FlatPickr from 'flatpickr';\nimport 'flatpickr/dist/flatpickr.css';\nimport ReactFlatPickr from 'react-flatpickr';\n\nimport type { CustomLocale } from 'flatpickr/dist/types/locale';\n\nimport type { DatePickerBaseProps } from './DatePickerBase.types';\nimport './Flatpickr.custom.scss';\nimport usePresenter from './DatePickerBase.presenter';\nimport { customLocale } from './DatePickerBase.constants';\n\nFlatPickr.localize(customLocale as CustomLocale);\n\nconst DatePickerBase = (props: DatePickerBaseProps) => {\n const {\n datePickerRef,\n disabled,\n required,\n mode,\n enableTime,\n noCalendar,\n isTimePickerOnly,\n customPlugin,\n handleKeyDown,\n otherProps,\n onDateChange,\n onCloseDatePicker,\n onOpenDatePicker,\n dayVariantProps,\n calendarVariantProps,\n value,\n isInDialog,\n } = usePresenter(props);\n\n const { renderInput } = props;\n\n return (\n <ReactFlatPickr\n ref={datePickerRef}\n disabled={disabled}\n required={required}\n value={value}\n options={{\n mode,\n enableTime,\n noCalendar,\n inline: props.inline,\n allowInput: props.allowInput,\n altInput: isTimePickerOnly,\n altInputClass: 'custom-time-selector-input',\n plugins: customPlugin,\n onKeyDown: handleKeyDown,\n // When inside dialog, keep calendar DOM next to input and avoid absolute positioning\n static: !!isInDialog,\n ...otherProps\n }}\n {...(renderInput ? { render: renderInput } : {})}\n onChange={onDateChange}\n onClose={onCloseDatePicker}\n onOpen={onOpenDatePicker}\n onDayCreate={(_, __, ___, dayElem) => {\n for (const [key, value] of Object.entries(dayVariantProps)) {\n dayElem.setAttribute(key, value);\n }\n }}\n onReady={(_, __, calendarInstance) => {\n // If a className is provided, split it by spaces and add each class to the most outer div of the calendar\n if (props.className) {\n props.className.split(' ').forEach((externalClass) => {\n calendarInstance.calendarContainer.classList.add(externalClass);\n });\n }\n if (calendarInstance.calendarContainer) {\n for (const [key, value] of Object.entries(calendarVariantProps)) {\n calendarInstance.calendarContainer.setAttribute(key, value);\n }\n }\n // Ensure single-click opens when inside dialog: open on input focus/mousedown\n if (isInDialog) {\n const activeInput = (calendarInstance as any).altInput || calendarInstance.input;\n if (activeInput) {\n const onFocusOpen = () => {\n if (!calendarInstance.isOpen) {\n calendarInstance.open();\n }\n };\n const onMouseDownOpen = () => {\n if (!calendarInstance.isOpen) {\n calendarInstance.open();\n }\n };\n activeInput.addEventListener('focus', onFocusOpen);\n activeInput.addEventListener('mousedown', onMouseDownOpen);\n }\n }\n }}\n />\n );\n};\n\nexport default DatePickerBase;\n","import FlatPickr from 'flatpickr';\nimport { Instance } from 'flatpickr/dist/types/instance';\nimport { useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport DatePicker from 'react-flatpickr';\nimport useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\nimport { DatePickerBaseProps } from './DatePickerBase.types';\nimport customTimeSelectorPlugin from './Plugins/customTimeSelector';\nimport dateTimeSelectorPlugin from './Plugins/dateTimeSelector';\nimport timeSelectorPlugin from './Plugins/timeSelector';\n\nconst usePresenter = (props: DatePickerBaseProps) => {\n const {\n value,\n onValueChange,\n disabled,\n required,\n enableRange,\n datePickerRef,\n noCalendar,\n enableTime,\n customTimePickerPlugin,\n customDateTimePickerPlugin,\n useCustomTimeInputForTimePicker,\n handleInputReadOnlyState,\n onClose = () => { },\n onOpen = () => { },\n ...otherProps\n } = props;\n\n const isTimePickerOnly = noCalendar && enableTime;\n const isDateTimePicker = !noCalendar && enableTime;\n const containerRef = useRef<DatePicker>(null);\n const resolvedRef = datePickerRef ?? containerRef;\n\n const [isInDialog, setIsInDialog] = useState(false);\n\n const mode: 'range' | 'single' = enableRange ? 'range' : 'single';\n\n const onDateChange = (dates: Date[]) => {\n onValueChange?.(enableRange ? dates : dates[0]);\n };\n\n const onOpenDatePicker: FlatPickr.Options.Hook = (dates: Date[], dateStr: string) => {\n onOpen(dates, dateStr);\n if (handleInputReadOnlyState) {\n handleInputReadOnlyState(true);\n }\n };\n\n const onCloseDatePicker: FlatPickr.Options.Hook = (dates: Date[], dateStr: string) => {\n onClose(dates, dateStr);\n if (handleInputReadOnlyState) {\n handleInputReadOnlyState(false);\n }\n };\n\n const onInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const inputValue = event.target.value.trim();\n onValueChange?.(inputValue);\n };\n\n const customPlugin = useMemo(() => {\n // If time picker only, use custom time picker plugin if provided, otherwise use default time picker plugin\n if (isTimePickerOnly) {\n if (customTimePickerPlugin) {\n return [customTimePickerPlugin({ minuteStep: 30 })];\n } else if (useCustomTimeInputForTimePicker) { // to use custom time input same as date picker input\n return [customTimeSelectorPlugin({ minuteStep: 30 })];\n } else {\n return [timeSelectorPlugin({ minuteStep: 30 })];\n }\n } else if (enableTime) {\n // If date time picker, use custom date time picker plugin if provided, otherwise use default date time picker plugin\n if (customDateTimePickerPlugin) {\n return [customDateTimePickerPlugin({ minuteStep: 30 })];\n } else {\n return [dateTimeSelectorPlugin({ minuteStep: 30 })];\n }\n }\n return [];\n }, [isTimePickerOnly, enableTime, useCustomTimeInputForTimePicker]);\n\n const handleKeyDown = (\n _selectedDates: Date[],\n _dateStr: string,\n instance: Instance,\n event: KeyboardEvent\n ) => {\n if (isDateTimePicker && event.key === \"Escape\") {\n instance.close(); // Close the calendar\n if (handleInputReadOnlyState) {\n handleInputReadOnlyState(false);\n }\n }\n };\n\n const calendarVariantProps = useBuildVariantProps('date-picker');\n const dayVariantProps = useBuildVariantProps('date-picker-day');\n\n useLayoutEffect(() => {\n if (resolvedRef?.current?.flatpickr?.input) {\n const inputEl = resolvedRef.current.flatpickr.input as HTMLElement;\n const possibleDialog = inputEl.closest('[role=\"dialog\"]');\n if (possibleDialog instanceof HTMLElement) {\n setIsInDialog(true);\n } else {\n setIsInDialog(false);\n }\n }\n }, [resolvedRef]);\n\n return {\n value,\n datePickerRef: resolvedRef,\n disabled,\n required,\n mode,\n enableTime,\n noCalendar,\n isTimePickerOnly,\n customPlugin,\n handleKeyDown,\n onDateChange,\n onCloseDatePicker,\n onOpenDatePicker,\n calendarVariantProps,\n dayVariantProps,\n isInDialog,\n otherProps,\n };\n};\n\nexport default usePresenter;","import React, { createContext, useCallback, useEffect, useRef, useState } from 'react';\nimport type { FormContextValues, FormErrors, RequiredFields, FieldValidationFunction, FormProviderProps, FieldValidators, FormState, FieldValue } from './Form.types';\nimport { mergeRefs } from '../../utils/utils';\nimport { useDebounce } from '../../utils/useDebounce';\nimport { isEqualFormState } from './Form.utils';\n\nconst FormContext = createContext<FormContextValues<FormState> | undefined>(undefined);\n\nexport const FormProvider = <T extends FormState>(props: FormProviderProps<T>) => {\n const { \n formRef,\n formState: defaultFormState = {} as T, \n onFormStateChange, \n formValidator, \n onSubmit, \n validateOnChange,\n autosave = false,\n autosaveDelayMs,\n } = props;\n\n // Create a ref to the form element\n const internalFormRef = useRef<HTMLFormElement>(null);\n\n // State for form values, errors, required fields, and validation functions\n const [initialFormState, setInitialFormState] = useState<T>(defaultFormState);\n const [formState, setFormState] = useState<T>(defaultFormState);\n const [formErrors, setFormErrors] = useState<FormErrors<T>>({});\n const [requiredFields, setRequiredFields] = useState<RequiredFields<T>>({});\n const [fieldValidators, setFieldValidators] = useState<FieldValidators<T>>({});\n const [isPristine, setIsPristine] = useState(true);\n\n useEffect(() => {\n if (!isEqualFormState(initialFormState, defaultFormState)) {\n setFormState(defaultFormState);\n setInitialFormState(defaultFormState);\n setIsPristine(true);\n }\n }, [defaultFormState]);\n\n // Memoized function to update form error for a field using name and error\n const updateFieldError = useCallback((name: keyof T, error: string) => {\n setFormErrors((prevErrors) => ({\n ...prevErrors,\n [name]: error,\n }));\n }, [formErrors]);\n\n // Memoized function to set error for a specific field\n const setFieldError = useCallback((name: keyof T) => {\n return (message: string) => {\n updateFieldError(name, message);\n };\n }, [updateFieldError]);\n\n // Update validation functions for a specific field\n const updateFieldValidators = useCallback((name: keyof T, validate?: FieldValidationFunction) => {\n setFieldValidators((prevValidationFunctions) => ({ ...prevValidationFunctions, [name]: validate }));\n }, []);\n\n // Update required fields\n const updateRequiredFields = useCallback((name: keyof T, required?: boolean) => {\n setRequiredFields((prevRequiredFields) => ({ ...prevRequiredFields, [name]: !!required }));\n }, []);\n\n // Update the value of a form field\n const updateFieldValue = useCallback((name: string, value: FieldValue) => {\n // Clear the error for the field\n setFormErrors((prevErrors) => ({\n ...prevErrors,\n [name]: '',\n }));\n\n // Update the form values\n const updatedState: T = {\n ...formState,\n [name]: value,\n };\n setFormState(updatedState);\n setIsPristine(false);\n onFormStateChange?.(updatedState, updateFieldError);\n\n // Validate the field if validateOnChange is true\n if (validateOnChange) {\n fieldValidators[name]?.(setFieldError(name), value);\n }\n }, [formState, validateOnChange, fieldValidators, onFormStateChange]);\n\n // Validate required fields\n const validateRequiredFields = () => {\n let valid = true;\n Object.entries(requiredFields).forEach(([fieldName, required]) => {\n if (!required) return true;\n if (!formState[fieldName] || (Array.isArray(formState[fieldName]) && formState[fieldName].length === 0)) {\n setFieldError(fieldName)(`${fieldName} is required`);\n valid = false\n }\n });\n return valid;\n };\n\n // Validate each field with a validation function\n const validateEachField = () => {\n const fieldsWithValidateFunction = Object.keys(fieldValidators);\n return fieldsWithValidateFunction.length\n ? fieldsWithValidateFunction.every((fieldName) => {\n const isFieldValidated = fieldValidators[fieldName]?.(setFieldError(fieldName), formState[fieldName]);\n return isFieldValidated === undefined\n ? true // considering field validated if there is no field validator for it\n : isFieldValidated;\n })\n : true;\n };\n\n // Handle form submission\n const handleSubmit: React.FormEventHandler<HTMLFormElement> = (event) => {\n event.preventDefault();\n\n // Validate required fields, individual fields, and the entire form\n const areRequiredFieldsValid = validateRequiredFields();\n const areFieldsValid = validateEachField();\n const isFormValid = formValidator ? formValidator(formState, updateFieldError) : true;\n\n // If any validation fails, return early\n if (!areRequiredFieldsValid || !areFieldsValid || !isFormValid) {\n return;\n }\n\n // Call the onSubmit callback with the form values\n onSubmit?.(formState, updateFieldError);\n };\n\n const handleReset = useCallback(() => {\n // Reset the form state to the initial values\n setFormState(defaultFormState);\n setFormErrors({});\n setIsPristine(true);\n }, [defaultFormState]);\n\n // Autosave functionality\n const performAutosave = useCallback(() => {\n if (!autosave || !onSubmit) return;\n\n // Validate required fields, individual fields, and the entire form\n const areRequiredFieldsValid = validateRequiredFields();\n const areFieldsValid = validateEachField();\n const isFormValid = formValidator ? formValidator(formState, updateFieldError) : true;\n\n // If all validations pass, submit the form\n if (areRequiredFieldsValid && areFieldsValid && isFormValid) {\n onSubmit(formState, updateFieldError);\n setIsPristine(true);\n }\n }, [autosave, onSubmit, formState, formValidator, updateFieldError]);\n\n // Create debounced version of autosave if autosaveDelayMs is provided\n const { debouncedCallback: debouncedAutosave } = useDebounce(performAutosave, autosaveDelayMs || 0);\n\n // Trigger autosave when form state changes\n useEffect(() => {\n if (autosave && !isPristine) {\n if (autosaveDelayMs) {\n debouncedAutosave();\n } else {\n performAutosave();\n }\n }\n }, [formState, isPristine]);\n\n // Create the context value\n const contextValue: FormContextValues = {\n formRef: mergeRefs(formRef, internalFormRef),\n formState,\n updateFieldValue,\n formErrors,\n updateFieldError,\n onFormSubmit: handleSubmit,\n updateFieldValidators,\n updateRequiredFields,\n resetForm: handleReset,\n };\n\n // Provide the form context to the child components\n return (\n <FormContext.Provider value={contextValue}>\n {props.children}\n </FormContext.Provider>\n );\n};\n\nexport default FormContext;","import { FieldValue, FormState } from \"./Form.types\";\n\nexport const isEqualFormState = <T extends FieldValue>(state1: FormState<T>, state2: FormState<T>): boolean => {\n const keys1 = Object.keys(state1);\n const keys2 = Object.keys(state2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n return keys1.every(key => state1[key] === state2[key]);\n};","import React from 'react';\nimport { FieldValue } from '../../organisms';\n\nconst isNativeFormElement = (element: React.ReactElement): boolean => {\n const type = element.type;\n if (typeof type === 'string') {\n return type === 'input' || type === 'textarea';\n }\n return false;\n};\n\nconst isTextComponent = (element: React.ReactElement): boolean => {\n const type = element.type;\n if (typeof type === 'function' && type.name === 'Text') {\n return true;\n }\n return false;\n};\n\nexport const injectPropsToMatchingFields = (\n node: React.ReactNode,\n propsToInject: {\n id: string;\n name: string;\n value: any;\n onValueChange: (value: FieldValue) => void;\n disabled?: boolean;\n invalid?: boolean;\n required?: boolean;\n },\n shouldInjectValueProps: boolean,\n): React.ReactNode => {\n // Handle arrays of children at the top level\n if (React.Children.count(node) > 1 || Array.isArray(node)) {\n return React.Children.map(node, (child) =>\n injectPropsToMatchingFields(child, propsToInject, shouldInjectValueProps)\n );\n }\n\n // Handle null, undefined, or primitive nodes\n if (!React.isValidElement(node)) {\n return node;\n }\n\n const originalOnValueChange = node.props?.onValueChange;\n const originalOnChange = node.props?.onChange;\n\n const updatedOnChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value;\n propsToInject.onValueChange(newValue);\n if (originalOnChange) {\n originalOnChange(e);\n }\n };\n\n const injectedProps: Record<string, any> = {\n id: propsToInject.id,\n disabled: propsToInject.disabled,\n invalid: propsToInject.invalid,\n required: propsToInject.required,\n };\n\n if (shouldInjectValueProps) {\n injectedProps.value = propsToInject.value;\n injectedProps.onValueChange = (value: FieldValue) => {\n propsToInject.onValueChange(value);\n if (originalOnValueChange) {\n originalOnValueChange(value);\n }\n };\n }\n\n if (isTextComponent(node)) {\n const children = node.props.children;\n const newChildren = React.Children.map(children, (child) =>\n injectPropsToMatchingFields(child, propsToInject, shouldInjectValueProps)\n );\n return React.cloneElement(node, {\n ...node.props,\n children: newChildren,\n });\n }\n\n if (isNativeFormElement(node)) {\n return React.cloneElement(node, {\n ...node.props,\n ...injectedProps,\n onChange: shouldInjectValueProps ? updatedOnChange : originalOnChange,\n });\n }\n\n // Always process children if they exist\n if (typeof node.type === 'string' && node.props.children) {\n const children = node.props.children;\n const newChildren = React.Children.map(children, (child) =>\n injectPropsToMatchingFields(child, propsToInject, shouldInjectValueProps)\n );\n\n // For form elements or other components, inject props and include processed children\n return React.cloneElement(node, {\n ...node.props,\n children: newChildren,\n });\n }\n\n return React.cloneElement(node, {\n ...node.props,\n ...injectedProps,\n });\n}\n","import useBuildVariantProps from \"../../../../modules/theme/useBuildVariantProps\";\nimport { ListItemType, RootListProps } from \"../List.types\";\nimport cx from 'classnames';\nimport styles from '../List.module.scss';\n\n/**\n * A root list component that provides layout and styling for list items.\n * \n * @template T - The type of the list items.\n * @param {RootListProps<T>} props - The properties for the root list.\n * @returns {JSX.Element} The rendered root list.\n */\nexport const RootList = <T extends ListItemType>(props: RootListProps<T>) => {\n const {\n align = 'Horizontal',\n wrap,\n className,\n children,\n ...restProps\n } = props;\n\n const variantProps = useBuildVariantProps(\n 'list',\n { align },\n );\n\n return (\n <ul\n {...restProps}\n className={cx(styles.list,\n {\n [styles.wrap]: wrap,\n },\n className,\n )}\n {...variantProps}\n >\n {children}\n </ul>\n )\n}","import cx from 'classnames';\nimport styles from '../List.module.scss';\nimport { ListItemProps, ListItemType } from \"../List.types\";\n\n/**\n * A list item component that renders a single item.\n * \n * @template T - The type of the list item.\n * @param {ListItemProps<T>} props - The properties for the list item.\n * @returns {JSX.Element} The rendered list item.\n */\nexport const RootListItem = <T extends ListItemType>(props: ListItemProps<T>) => {\n const { id, component: Component, item, ...rest } = props;\n const { itemClassName, itemStyle, ...itemProps } = item;\n return (\n <li\n {...rest}\n className={cx(styles.listItem, itemClassName)}\n style={itemStyle}\n >\n <Component {...itemProps} />\n </li>\n );\n}","import React from 'react';\nimport type { ListItemType, ListProps } from '../List.types';\nimport { RootList } from './RootList';\nimport { RootListItem } from './RootListItem';\n\n/**\n * A basic list component that renders items without sorting functionality.\n */\nexport const BasicList = <T extends ListItemType>(props: ListProps<T>) => {\n const { data, component, keyExtractor, ...rest } = props;\n\n return (\n <RootList {...rest}>\n {data?.map((item, index) => {\n const itemId = item.id ?? keyExtractor?.(item, index) ?? index;\n return (\n <RootListItem\n key={itemId}\n id={itemId}\n item={item}\n component={component}\n />\n );\n })}\n </RootList>\n );\n};","import { useMemo, useLayoutEffect, useEffect, useRef, useCallback } from 'react';\n\nfunction useCombinedRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return useMemo(() => node => {\n refs.forEach(ref => ref(node));\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n refs);\n}\n\n// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\nconst canUseDOM = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined';\n\nfunction isWindow(element) {\n const elementString = Object.prototype.toString.call(element);\n return elementString === '[object Window]' || // In Electron context the Window object serializes to [object global]\n elementString === '[object global]';\n}\n\nfunction isNode(node) {\n return 'nodeType' in node;\n}\n\nfunction getWindow(target) {\n var _target$ownerDocument, _target$ownerDocument2;\n\n if (!target) {\n return window;\n }\n\n if (isWindow(target)) {\n return target;\n }\n\n if (!isNode(target)) {\n return window;\n }\n\n return (_target$ownerDocument = (_target$ownerDocument2 = target.ownerDocument) == null ? void 0 : _target$ownerDocument2.defaultView) != null ? _target$ownerDocument : window;\n}\n\nfunction isDocument(node) {\n const {\n Document\n } = getWindow(node);\n return node instanceof Document;\n}\n\nfunction isHTMLElement(node) {\n if (isWindow(node)) {\n return false;\n }\n\n return node instanceof getWindow(node).HTMLElement;\n}\n\nfunction isSVGElement(node) {\n return node instanceof getWindow(node).SVGElement;\n}\n\nfunction getOwnerDocument(target) {\n if (!target) {\n return document;\n }\n\n if (isWindow(target)) {\n return target.document;\n }\n\n if (!isNode(target)) {\n return document;\n }\n\n if (isDocument(target)) {\n return target;\n }\n\n if (isHTMLElement(target) || isSVGElement(target)) {\n return target.ownerDocument;\n }\n\n return document;\n}\n\n/**\r\n * A hook that resolves to useEffect on the server and useLayoutEffect on the client\r\n * @param callback {function} Callback function that is invoked when the dependencies of the hook change\r\n */\n\nconst useIsomorphicLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;\n\nfunction useEvent(handler) {\n const handlerRef = useRef(handler);\n useIsomorphicLayoutEffect(() => {\n handlerRef.current = handler;\n });\n return useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return handlerRef.current == null ? void 0 : handlerRef.current(...args);\n }, []);\n}\n\nfunction useInterval() {\n const intervalRef = useRef(null);\n const set = useCallback((listener, duration) => {\n intervalRef.current = setInterval(listener, duration);\n }, []);\n const clear = useCallback(() => {\n if (intervalRef.current !== null) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n }, []);\n return [set, clear];\n}\n\nfunction useLatestValue(value, dependencies) {\n if (dependencies === void 0) {\n dependencies = [value];\n }\n\n const valueRef = useRef(value);\n useIsomorphicLayoutEffect(() => {\n if (valueRef.current !== value) {\n valueRef.current = value;\n }\n }, dependencies);\n return valueRef;\n}\n\nfunction useLazyMemo(callback, dependencies) {\n const valueRef = useRef();\n return useMemo(() => {\n const newValue = callback(valueRef.current);\n valueRef.current = newValue;\n return newValue;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [...dependencies]);\n}\n\nfunction useNodeRef(onChange) {\n const onChangeHandler = useEvent(onChange);\n const node = useRef(null);\n const setNodeRef = useCallback(element => {\n if (element !== node.current) {\n onChangeHandler == null ? void 0 : onChangeHandler(element, node.current);\n }\n\n node.current = element;\n }, //eslint-disable-next-line\n []);\n return [node, setNodeRef];\n}\n\nfunction usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nlet ids = {};\nfunction useUniqueId(prefix, value) {\n return useMemo(() => {\n if (value) {\n return value;\n }\n\n const id = ids[prefix] == null ? 0 : ids[prefix] + 1;\n ids[prefix] = id;\n return prefix + \"-\" + id;\n }, [prefix, value]);\n}\n\nfunction createAdjustmentFn(modifier) {\n return function (object) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n\n return adjustments.reduce((accumulator, adjustment) => {\n const entries = Object.entries(adjustment);\n\n for (const [key, valueAdjustment] of entries) {\n const value = accumulator[key];\n\n if (value != null) {\n accumulator[key] = value + modifier * valueAdjustment;\n }\n }\n\n return accumulator;\n }, { ...object\n });\n };\n}\n\nconst add = /*#__PURE__*/createAdjustmentFn(1);\nconst subtract = /*#__PURE__*/createAdjustmentFn(-1);\n\nfunction hasViewportRelativeCoordinates(event) {\n return 'clientX' in event && 'clientY' in event;\n}\n\nfunction isKeyboardEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n KeyboardEvent\n } = getWindow(event.target);\n return KeyboardEvent && event instanceof KeyboardEvent;\n}\n\nfunction isTouchEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n TouchEvent\n } = getWindow(event.target);\n return TouchEvent && event instanceof TouchEvent;\n}\n\n/**\r\n * Returns the normalized x and y coordinates for mouse and touch events.\r\n */\n\nfunction getEventCoordinates(event) {\n if (isTouchEvent(event)) {\n if (event.touches && event.touches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.touches[0];\n return {\n x,\n y\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.changedTouches[0];\n return {\n x,\n y\n };\n }\n }\n\n if (hasViewportRelativeCoordinates(event)) {\n return {\n x: event.clientX,\n y: event.clientY\n };\n }\n\n return null;\n}\n\nconst CSS = /*#__PURE__*/Object.freeze({\n Translate: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n x,\n y\n } = transform;\n return \"translate3d(\" + (x ? Math.round(x) : 0) + \"px, \" + (y ? Math.round(y) : 0) + \"px, 0)\";\n }\n\n },\n Scale: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n scaleX,\n scaleY\n } = transform;\n return \"scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\";\n }\n\n },\n Transform: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n return [CSS.Translate.toString(transform), CSS.Scale.toString(transform)].join(' ');\n }\n\n },\n Transition: {\n toString(_ref) {\n let {\n property,\n duration,\n easing\n } = _ref;\n return property + \" \" + duration + \"ms \" + easing;\n }\n\n }\n});\n\nconst SELECTOR = 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]';\nfunction findFirstFocusableNode(element) {\n if (element.matches(SELECTOR)) {\n return element;\n }\n\n return element.querySelector(SELECTOR);\n}\n\nexport { CSS, add, canUseDOM, findFirstFocusableNode, getEventCoordinates, getOwnerDocument, getWindow, hasViewportRelativeCoordinates, isDocument, isHTMLElement, isKeyboardEvent, isNode, isSVGElement, isTouchEvent, isWindow, subtract, useCombinedRefs, useEvent, useInterval, useIsomorphicLayoutEffect, useLatestValue, useLazyMemo, useNodeRef, usePrevious, useUniqueId };\n//# sourceMappingURL=utilities.esm.js.map\n","import { getEventCoordinates } from '@dnd-kit/utilities';\n\nfunction createSnapModifier(gridSize) {\n return _ref => {\n let {\n transform\n } = _ref;\n return { ...transform,\n x: Math.ceil(transform.x / gridSize) * gridSize,\n y: Math.ceil(transform.y / gridSize) * gridSize\n };\n };\n}\n\nconst restrictToHorizontalAxis = _ref => {\n let {\n transform\n } = _ref;\n return { ...transform,\n y: 0\n };\n};\n\nfunction restrictToBoundingRect(transform, rect, boundingRect) {\n const value = { ...transform\n };\n\n if (rect.top + transform.y <= boundingRect.top) {\n value.y = boundingRect.top - rect.top;\n } else if (rect.bottom + transform.y >= boundingRect.top + boundingRect.height) {\n value.y = boundingRect.top + boundingRect.height - rect.bottom;\n }\n\n if (rect.left + transform.x <= boundingRect.left) {\n value.x = boundingRect.left - rect.left;\n } else if (rect.right + transform.x >= boundingRect.left + boundingRect.width) {\n value.x = boundingRect.left + boundingRect.width - rect.right;\n }\n\n return value;\n}\n\nconst restrictToParentElement = _ref => {\n let {\n containerNodeRect,\n draggingNodeRect,\n transform\n } = _ref;\n\n if (!draggingNodeRect || !containerNodeRect) {\n return transform;\n }\n\n return restrictToBoundingRect(transform, draggingNodeRect, containerNodeRect);\n};\n\nconst restrictToFirstScrollableAncestor = _ref => {\n let {\n draggingNodeRect,\n transform,\n scrollableAncestorRects\n } = _ref;\n const firstScrollableAncestorRect = scrollableAncestorRects[0];\n\n if (!draggingNodeRect || !firstScrollableAncestorRect) {\n return transform;\n }\n\n return restrictToBoundingRect(transform, draggingNodeRect, firstScrollableAncestorRect);\n};\n\nconst restrictToVerticalAxis = _ref => {\n let {\n transform\n } = _ref;\n return { ...transform,\n x: 0\n };\n};\n\nconst restrictToWindowEdges = _ref => {\n let {\n transform,\n draggingNodeRect,\n windowRect\n } = _ref;\n\n if (!draggingNodeRect || !windowRect) {\n return transform;\n }\n\n return restrictToBoundingRect(transform, draggingNodeRect, windowRect);\n};\n\nconst snapCenterToCursor = _ref => {\n let {\n activatorEvent,\n draggingNodeRect,\n transform\n } = _ref;\n\n if (draggingNodeRect && activatorEvent) {\n const activatorCoordinates = getEventCoordinates(activatorEvent);\n\n if (!activatorCoordinates) {\n return transform;\n }\n\n const offsetX = activatorCoordinates.x - draggingNodeRect.left;\n const offsetY = activatorCoordinates.y - draggingNodeRect.top;\n return { ...transform,\n x: transform.x + offsetX - draggingNodeRect.width / 2,\n y: transform.y + offsetY - draggingNodeRect.height / 2\n };\n }\n\n return transform;\n};\n\nexport { createSnapModifier, restrictToFirstScrollableAncestor, restrictToHorizontalAxis, restrictToParentElement, restrictToVerticalAxis, restrictToWindowEdges, snapCenterToCursor };\n//# sourceMappingURL=modifiers.esm.js.map\n","import { createContext, useContext } from 'react';\nimport cx from 'classnames';\nimport {\n useSortable,\n} from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\n\nimport styles from '../List.module.scss';\nimport { ListItemProps, ListItemType, SortableItemContextType } from \"../List.types\";\n\nconst SortableItemContext = createContext<SortableItemContextType | undefined>(undefined);\n\n/**\n * A sortable item component that integrates with the dnd-kit library for drag-and-drop functionality.\n * \n * @template T - The type of the list item.\n * @param {ListItemProps<T>} props - The properties for the sortable item.\n * @returns {JSX.Element} The rendered sortable item.\n */\nexport const SortableItem = <T extends ListItemType>(props: ListItemProps<T>) => {\n const { id, component: Component, item, ...rest } = props;\n const { itemClassName, itemStyle, ...itemProps } = item;\n\n const {\n attributes,\n listeners,\n\n setNodeRef,\n transform,\n transition,\n } = useSortable({ id });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n return (\n <SortableItemContext.Provider value={{ id, transform, transition, attributes, listeners }}>\n <li\n {...rest}\n ref={setNodeRef}\n style={style}\n className={cx(styles.listItem, itemClassName)}\n >\n <Component\n {...itemProps}\n />\n </li>\n </SortableItemContext.Provider>\n );\n}\n\nexport const useSortableItem = () => {\n const context = useContext(SortableItemContext);\n if (!context) {\n throw new Error('useSortableItem must be used within a SortableItem');\n }\n return context;\n}\n","import { DndContext, DragEndEvent, DragOverlay, DragStartEvent, UniqueIdentifier, closestCenter } from '@dnd-kit/core';\nimport { restrictToHorizontalAxis, restrictToParentElement, restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport {\n arrayMove,\n horizontalListSortingStrategy,\n SortableContext,\n verticalListSortingStrategy,\n} from '@dnd-kit/sortable';\nimport React, { useState, useEffect } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { SortableListProps, ListItemType, SortableListItemType } from \"../List.types\";\nimport { RootList } from './RootList';\nimport { SortableItem } from './SortableListItem';\n\n/**\n * A sortable list component that allows drag-and-drop reordering of items.\n * \n * @template T - The type of the list items, which must include an `id` property.\n * @param {SortableListProps<T>} props - The properties for the sortable list.\n * @returns {JSX.Element} The rendered sortable list.\n */\nexport const SortableList = <T extends ListItemType>(props: SortableListProps<T>) => {\n const {\n data, \n updateSortOrder,\n component,\n keyExtractor,\n ...rootProps\n } = props;\n\n // Transform data to ensure all items have required IDs\n const [mappedData, setMappedData] = useState<(SortableListItemType)[]>([]);\n\n useEffect(() => {\n const newMappedData = data?.map((item, index) => {\n let itemId = item.id;\n if (itemId === undefined) {\n if (keyExtractor) {\n itemId = keyExtractor(item, index);\n } else {\n itemId = index;\n }\n }\n return {\n ...item,\n id: itemId,\n };\n }) || [];\n setMappedData(newMappedData);\n }, [data, keyExtractor]);\n\n const [activeId, setActiveId] = useState<UniqueIdentifier | null>();\n \n /**\n * Handles the drag start event, setting the active item ID.\n * \n * @param {DragStartEvent} event - The drag start event.\n */\n const handleDragStart = (event: DragStartEvent) => {\n setActiveId(event.active.id);\n };\n\n /**\n * Handles the drag end event, updating the sort order if necessary.\n * \n * @param {DragEndEvent} event - The drag end event.\n */\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event;\n\n if (over && active.id !== over.id) {\n const mappedDataIndex = mappedData.map((item) => item.id);\n const oldIndex = mappedDataIndex.indexOf(active.id);\n const newIndex = mappedDataIndex.indexOf(over.id);\n const movedData = arrayMove(mappedData, oldIndex, newIndex);\n \n \n // Call the callback if provided\n if (updateSortOrder) {\n // unforunately, the type of the updateSortOrder function is not known at this point\n // so we need to cast it to the correct type.\n // the only difference between the `mappedData` and the `data` is that the `mappedData` has a required id property\n const updatedData = updateSortOrder(movedData as T[], oldIndex, newIndex) as SortableListItemType[];\n if (updatedData) {\n setMappedData(updatedData);\n }\n } else {\n setMappedData(movedData);\n }\n }\n\n setActiveId(null);\n }\n const horizontalSort = props.align === 'Horizontal';\n\n return (\n <DndContext\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n modifiers={[horizontalSort ? restrictToHorizontalAxis : restrictToVerticalAxis, restrictToParentElement]}\n >\n <SortableContext\n items={mappedData}\n strategy={horizontalSort ? horizontalListSortingStrategy : verticalListSortingStrategy}\n >\n <RootList {...rootProps}>\n {mappedData.map((item) => (\n <SortableItem\n key={item.id}\n id={item.id}\n item={item}\n component={component}\n />\n ))}\n </RootList>\n </SortableContext>\n \n {createPortal(\n <DragOverlay dropAnimation={null}>\n <div style={{ visibility: activeId ? 'visible' : 'hidden' }}>\n {/** Overlay content here */}\n </div>\n </DragOverlay>,\n document.body,\n )}\n </DndContext>\n )\n}","import type { ListItemType, ListProps } from './List.types';\nimport { BasicList } from './components/BasicList';\nimport { SortableList } from './components/SortableList';\n\n/**\n * A wrapper component that manages the rendering of either a sortable or regular list based on the provided props.\n */\nconst List = <T extends ListItemType>(props: ListProps<T>) => {\n if (props.sortable) {\n return <SortableList {...props} />;\n }\n\n return <BasicList {...props} />;\n}\n\nexport default List;\n","import { ListItemType, RepeaterListProps } from \"./List.types\";\n\n/**\n * A list component that renders a list of items without any parent container.\n * \n * @template T - The type of the list item.\n * @param {RepeaterListProps<T>} props - The properties for the repeater list.\n * @returns {JSX.Element} The rendered repeater list.\n */\nconst RepeaterList = <T extends ListItemType>(props: RepeaterListProps<T>) => {\n const {\n data,\n component: Component,\n } = props;\n\n return (\n <>\n {data?.map((item, index) => (\n <Component key={index} {...item} />\n ))}\n </>\n )\n}\n\nexport default RepeaterList;","import cx from 'classnames';\nimport React, { useCallback } from 'react';\nimport { Modal as ModalComponent } from 'react-overlays';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport styles from './Modal.module.scss';\nimport type { ModalProps } from './Modal.types';\n\n/**\n * Modal component for displaying a dialog window.\n */\nconst Modal = (props: ModalProps) => {\n const {\n size = 'Medium',\n onHide,\n show,\n children,\n header,\n footer,\n backdrop = true,\n renderBackdrop,\n disableBackdropDismiss,\n 'component-variant': componentVariant,\n className,\n Transition,\n } = props;\n\n /**\n * Handles click events on the modal backdrop. Calls onHide if backdrop dismissal is enabled.\n * @returns {void}\n */\n const handleBackdropClick = useCallback(() => {\n if (!disableBackdropDismiss && onHide) {\n onHide();\n }\n }, [disableBackdropDismiss, onHide]);\n\n /**\n * Creates the backdrop element for the modal.\n * @returns {React.ReactElement} The backdrop element\n */\n const createBackdrop = useCallback(() => {\n if (renderBackdrop) {\n return <div onClick={handleBackdropClick}>{renderBackdrop}</div>;\n }\n return <div className={cx(styles.backdrop)} onClick={handleBackdropClick} />;\n }, [renderBackdrop, handleBackdropClick]);\n\n let headerComponent, footerComponent, content;\n\n if (header) {\n headerComponent = <div className={cx(styles.header)}>{header}</div>;\n }\n\n if (footer) {\n footerComponent = <div className={cx(styles.footer)}>{footer}</div>;\n }\n\n if (children) {\n content = <div className={cx(styles.content)}>{children}</div>;\n }\n\n const variantProps = useBuildVariantProps(\n 'modal',\n { size },\n undefined,\n componentVariant,\n );\n\n return (\n <ModalComponent\n className={cx(styles.modal, styles[`modal--${size.toLowerCase()}`], className)}\n onHide={onHide}\n show={show}\n backdrop={backdrop}\n renderBackdrop={createBackdrop}\n container={document.body} // Ensure modal is appended to the document body for accessibility\n transition={Transition}\n {...variantProps}\n >\n <>\n {headerComponent}\n {content}\n {footerComponent}\n </>\n </ModalComponent>\n );\n};\n\nexport default Modal;\n","import React, { createContext, useContext, useState, useCallback, useMemo } from 'react';\nimport type { ModalContextType, ModalProviderProps, ModalInstance, ModalComponentProps } from './ModalContext.types';\n\n/**\n * React context for managing modal state and operations.\n * Provides functions to open and close modals programmatically.\n */\nconst ModalContext = createContext<ModalContextType | undefined>(undefined);\n\n/**\n * Hook to access the modal context.\n * Must be used within a ModalProvider component.\n * \n * @returns The modal context containing openModal and closeModal functions\n * @throws Error if used outside of a ModalProvider\n * \n * @example\n * ```tsx\n * function MyComponent() {\n * const { openModal, closeModal } = useModalContext();\n * \n * const handleOpenModal = () => {\n * openModal('my-modal', MyModalComponent, { title: 'Hello' });\n * };\n * \n * return <button onClick={handleOpenModal}>Open Modal</button>;\n * }\n * ```\n */\nexport const useModalContext = () => {\n const context = useContext(ModalContext);\n if (!context) {\n throw new Error('useModalContext must be used within a ModalProvider');\n }\n return context;\n};\n\n/**\n * Provider component that manages modal state and renders modal instances.\n * Wraps child components with modal context and renders all active modals.\n * \n * @param props - The provider props\n * @param props.children - Child components that will have access to modal context\n * \n * @example\n * ```tsx\n * function App() {\n * return (\n * <ModalProvider>\n * <MyApplication />\n * </ModalProvider>\n * );\n * }\n * ```\n */\nexport const ModalProvider = ({ children }: ModalProviderProps) => {\n const [modals, setModals] = useState<Record<string, ModalInstance>>({});\n\n /**\n * Opens a modal with the given component and props.\n * If a modal with the same ID already exists, it will be replaced.\n */\n const openModal = useCallback(<T extends ModalComponentProps>(\n id: string,\n Component: React.ComponentType<T>,\n props: T\n ) => {\n // create a new modal instance with the given component and props. set show to true and onCancel to close the modal.\n const modalInstance: ModalInstance = {\n id,\n component: <Component \n key={id} \n {...props} \n show={true}\n onCancel={() => {\n props.onCancel?.();\n closeModal(id);\n }}\n />\n };\n\n setModals(prev => ({\n ...prev,\n [id]: modalInstance\n }));\n }, []);\n\n /**\n * Closes and removes a modal by its unique identifier.\n * If the modal doesn't exist, this operation is a no-op.\n */\n const closeModal = useCallback((id: string) => {\n setModals(prev => {\n const { [id]: removed, ...rest } = prev;\n return rest;\n });\n }, []);\n\n const contextValue: ModalContextType = {\n openModal,\n closeModal\n };\n\n const modalComponents = useMemo(\n () => Object.values(modals).map(modal => modal.component),\n [modals]\n );\n\n return (\n <ModalContext.Provider value={contextValue}>\n {children}\n {modalComponents}\n </ModalContext.Provider>\n );\n};","import React from 'react';\nimport cx from 'classnames';\n\nimport styles from './PaginationNumberField.module.scss';\nimport { PaginationNumberFieldProps } from './PaginationNumberField.types';\nimport usePresenter from './PaginationNumberField.presenter';\n\nconst PaginationNumberField = (props: PaginationNumberFieldProps) => {\n const { inputRef, page, onBlur, onPageChanged, keyListener } = usePresenter(props);\n return (\n <div className={cx(styles.root, props.className)}>\n <input\n className={styles.pageNumber}\n ref={inputRef}\n value={page}\n onChange={onPageChanged}\n onKeyUp={keyListener}\n onBlur={onBlur}\n />\n </div>\n );\n};\n\nexport default PaginationNumberField;\n","import { ChangeEventHandler, KeyboardEventHandler, useEffect, useRef, useState } from \"react\";\nimport { PaginationNumberFieldProps } from \"./PaginationNumberField.types\";\n\nconst usePresenter = (props: PaginationNumberFieldProps) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const [page, setPage] = useState(`${props.page}`);\n const [tempPage, setTempPage] = useState(`${props.page}`);\n\n useEffect(() => {\n setPage(`${props.page}`);\n setTempPage(`${props.page}`);\n }, [props.page]);\n\n useEffect(() => {\n if (tempPage === \"\") {\n setPage('');\n return; // Allow empty input without immediate correction\n }\n \n const parsedPage = parseInt(tempPage, 10);\n\n if (isNaN(parsedPage)) {\n setTempPage(`${props.page}`); // Reset if input is invalid\n } else {\n const clampedPage = Math.min(Math.max(parsedPage, 1), props.totalPages || 1);\n setTempPage(`${clampedPage}`);\n setPage(`${clampedPage}`);\n if (props.onPageChanged) {\n props.onPageChanged(clampedPage);\n }\n }\n }, [tempPage, props.totalPages, props.page]);\n\n const onPageChanged: ChangeEventHandler<HTMLInputElement> = (event) => {\n setTempPage(event.target.value); // Allow immediate updates without correction\n // if(event.target.value) {\n // const parsedPage = Math.min(Math.max(parseInt(event.target.value || '0', 10), 1), props.totalPages || 1);\n // if(inputRef.current) {\n // inputRef.current.value = `${parsedPage}`;\n // }\n // setPage(`${parsedPage}`);\n // }\n }\n\n const keyListener: KeyboardEventHandler<HTMLInputElement> = (event) => {\n if (event.code === 'Enter') {\n inputRef.current?.blur();\n }\n }\n\n const onBlur = () => {\n if (props.onPageChanged) {\n props.onPageChanged(parseInt(page, 10));\n }\n }\n\n return {\n inputRef,\n page,\n onPageChanged,\n onBlur,\n keyListener,\n }\n}\n\nexport default usePresenter;","import type { Placement } from 'react-overlays/usePopper';\nimport type { ActionType, OverlayDirectionEnum, OverlayAlignEnum } from './Popover.types';\n\n/**\n * Handles the interaction logic for showing or hiding the popover based on the action type.\n * @param action - The action type ('click' or 'hover') that triggers the popover.\n * @param show - The current visibility state of the popover.\n * @param setShow - The function to update the visibility state of the popover.\n * @param actionType - The type of action currently being performed.\n * @param value - Optional boolean value indicating the hover state (true for hover in, false for hover out).\n * @param disabled - Optional boolean value indicating the disabled state of target component.\n */\nexport const handleInteraction = (\n action: ActionType | undefined,\n show: boolean,\n setShow: React.Dispatch<React.SetStateAction<boolean>>,\n actionType: ActionType,\n value?: boolean,\n disabled?: boolean,\n) => {\n if (action !== actionType || disabled) {\n return;\n }\n\n if (action === 'Click' || action === 'DoubleClick') {\n setShow(!show);\n } else if (action === 'Hover') {\n setShow(value || false);\n }\n\n};\n\n/**\n * Determines the placement of the popover based on direction and alignment.\n * @param direction - The direction of the popover ('top', 'bottom', 'right', 'left').\n * @param alignment - The alignment of the popover ('start', 'end', 'center').\n * @returns The calculated placement string for the popover.\n */\nexport const getPlacement = (\n alignment: OverlayAlignEnum = 'Center', // Default alignment to 'center'\n direction: OverlayDirectionEnum = 'Down', // Default direction to 'down'\n): Placement => {\n const basePlacement = direction === 'Up' ? 'top' : direction === 'Down' ? 'bottom' : direction.toLowerCase();\n return alignment === 'Center' ? basePlacement as Placement : `${basePlacement}-${alignment.toLowerCase()}` as Placement;\n};\n\n/**\n * Gets the width value based on the provided parameters.\n * If `matchTriggerWidth` is `true` and `width` is `'match-trigger'`,\n * it returns the width of the `targetRef` element.\n *\n * @param {string | number | undefined} width - Width value or 'match-trigger'.\n * @param {React.RefObject<HTMLDivElement> | undefined} targetRef - Optional reference to the target element.\n * @param {boolean} matchTriggerWidth - Flag indicating whether to match width with `targetRef`.\n * @returns {string | number | undefined} Calculated width value.\n */\nexport const getWidth = (\n width?: string | number,\n targetRef?: React.RefObject<HTMLDivElement>,\n matchTriggerWidth = false,\n) => {\n \n if (matchTriggerWidth || width === 'match-trigger') {\n return `${targetRef?.current?.getBoundingClientRect().width}px`;\n }\n\n return width;\n};\n\n\n","import cx from 'classnames';\nimport React, { forwardRef, useImperativeHandle } from 'react';\nimport Overlay from 'react-overlays/Overlay';\nimport styles from './Popover.module.scss';\nimport usePresenter from './Popover.presenter';\nimport type { PopoverHandle, PopoverProps } from './Popover.types';\nimport { getWidth } from './Popover.utils';\n\n/**\n * Popover component that displays a floating content element in relation to a target element.\n * It can be triggered via different user actions like 'Click' or 'Hover'.\n */\nconst Popover = forwardRef<PopoverHandle, PopoverProps>((props, ref) => {\n const {\n handleOnHide,\n openPopover,\n containerRef,\n onClickListener,\n onDoubleClickListener,\n targetOnClickListener,\n targetOnDoubleClickListener,\n targetRef,\n onMouseOutListener,\n onMouseOverListener,\n popoverAccessibilityProps,\n targetAccessibilityProps,\n show,\n offset,\n placement,\n contentPosition,\n initialTransformRef,\n hideOnClickAway,\n otherProps\n } = usePresenter(props);\n\n // Expose methods to the parent component\n useImperativeHandle(ref, () => ({\n close: handleOnHide, // Method to close the popover programmatically\n open: openPopover, // (Optional) Method to open the popover programmatically\n }));\n\n return (\n <div\n className={cx(styles.popover, props.className)}\n ref={containerRef}\n onClick={onClickListener}\n onDoubleClick={onDoubleClickListener}\n onMouseOut={onMouseOutListener}\n onMouseOver={onMouseOverListener}\n {...popoverAccessibilityProps}\n {...{\n ...otherProps,\n disabled: props.disabled,\n }}\n >\n {/* Target element that triggers the popover */}\n <div\n className={cx(styles.target,\n {\n [styles.disabled]: props.disabled,\n },\n )}\n onClick={targetOnClickListener}\n onDoubleClick={targetOnDoubleClickListener}\n {...targetAccessibilityProps}\n ref={targetRef}\n >\n {React.isValidElement(props.target)\n ? React.cloneElement(props.target, {\n ...(show ? { active: 'true' } : {}),\n })\n : props.target}\n </div>\n <Overlay\n offset={offset}\n onHide={handleOnHide}\n placement={placement}\n rootClose={hideOnClickAway}\n show={show}\n target={targetRef}\n container={props.container || containerRef}\n flip={props.flip}\n >\n {({ props: { style: { transform, ...restStyle }, ...restProps } }) => {\n // Store the initial transform value if it's not set and contentPosition is fixed\n if (contentPosition === 'fixed' && !initialTransformRef.current && transform) {\n initialTransformRef.current = transform;\n }\n\n return (\n <div\n className={cx(styles.content, props.overlayClassName)}\n {...restProps}\n style={{\n ...restStyle,\n minWidth: getWidth(props.contentProps?.minWidth, targetRef, !props.contentProps?.minWidth),\n width: getWidth(props.contentProps?.width, targetRef),\n position: contentPosition,\n transform: contentPosition === 'fixed'\n ? initialTransformRef.current\n : transform\n }}\n onMouseOut={onMouseOutListener}\n onMouseOver={onMouseOverListener}\n tabIndex={show ? 0 : -1}\n >\n {props.content}\n </div>\n );\n }}\n </Overlay>\n </div>\n );\n});\n\nexport default Popover;\n","import { useEffect, useRef, useState } from 'react';\nimport { getClickAccessibilityProps } from '../../utils/accessibilityUtils';\nimport { PopoverProps } from './Popover.types';\nimport { getPlacement, handleInteraction } from './Popover.utils';\n\nconst usePresenter = (props: PopoverProps) => {\n const {\n target,\n action = 'Click',\n content,\n offset,\n onHide,\n onOpen,\n alignment,\n direction,\n hideOnClickAway = true,\n show: defaultShow = false,\n contentProps,\n disabled,\n keepContentOnItemClick = false,\n flip,\n className,\n container,\n overlayClassName,\n contentPosition = 'absolute',\n ...otherProps\n } = props;\n\n // Refs for the popover container and target elements\n const containerRef = useRef<HTMLDivElement>(null);\n const targetRef = useRef<HTMLDivElement>(null);\n\n // State to manage the visibility of the popover\n const [show, setShow] = useState<boolean>(defaultShow);\n\n // ref to store the initial transform when position is fixed for content\n const initialTransformRef = useRef<string | undefined>();\n\n // Cleanup effect to ensure onHide callback is called when the popover is unmounted\n useEffect(() => {\n if (show && onOpen) {\n onOpen();\n }\n\n return () => {\n // Notify onHide callback if the popover is visible upon unmounting\n if (show && onHide) {\n onHide();\n }\n };\n }, [show, onHide, onOpen]);\n\n // Set initial show state based on defaultShow prop if action is not provided\n useEffect(() => {\n if (defaultShow !== undefined && !action) {\n setShow(defaultShow);\n }\n }, [defaultShow, action]);\n\n // Calculate placement using utility function\n const placement = getPlacement(alignment, direction);\n\n // Handle hide event \n const handleOnHide = () => {\n setShow(false);\n if (onHide) {\n onHide();\n }\n };\n\n const onClickListener = action === 'Click' ? () => !keepContentOnItemClick && handleInteraction(action, show, setShow, 'Click', undefined, disabled) : undefined;\n const onDoubleClickListener = action === 'DoubleClick' ? () => !keepContentOnItemClick && handleInteraction(action, show, setShow, 'DoubleClick', undefined, disabled) : undefined;\n\n const onMouseOutListener = action === 'Hover' ? () => handleInteraction(action, show, setShow, 'Hover', false, disabled) : undefined;\n const onMouseOverListener = action === 'Hover' ? () => handleInteraction(action, show, setShow, 'Hover', true, disabled) : undefined;\n\n const popoverAccessibilityProps = !keepContentOnItemClick ? getClickAccessibilityProps({\n actions: {\n onClick: action === 'Click' ? onClickListener : onDoubleClickListener,\n },\n addIndex: !keepContentOnItemClick,\n }) : {};\n\n const targetOnClickListener = () => keepContentOnItemClick && handleInteraction(action, show, setShow, 'Click', undefined, disabled);\n const targetOnDoubleClickListener = () => keepContentOnItemClick && handleInteraction(action, show, setShow, 'DoubleClick', undefined, disabled);\n\n const targetAccessibilityProps = keepContentOnItemClick ? getClickAccessibilityProps({\n actions: {\n onClick: action === 'Click' ? targetOnClickListener : targetOnDoubleClickListener,\n },\n addIndex: keepContentOnItemClick,\n }) : {};\n\n const openPopover = () => {\n setShow(true);\n };\n\n return {\n show,\n offset,\n placement,\n handleOnHide,\n openPopover,\n containerRef,\n targetRef,\n initialTransformRef,\n action,\n hideOnClickAway,\n defaultShow,\n keepContentOnItemClick,\n contentPosition,\n onClickListener,\n onDoubleClickListener,\n onMouseOutListener,\n onMouseOverListener,\n targetOnClickListener,\n targetOnDoubleClickListener,\n popoverAccessibilityProps,\n targetAccessibilityProps,\n otherProps,\n };\n}\nexport default usePresenter;","import React from 'react';\nimport { RadioButtonProps } from '../../atoms';\n\nexport const injectRadioButtonProps = (\n children: React.ReactElement<RadioButtonProps> | React.ReactElement<RadioButtonProps>[],\n value?: string | number,\n onValueChange?: (value: string | number) => void,\n) => {\n return React.Children.map(children,(child) => {\n const originalOnChange = child.props.onChange;\n return React.cloneElement(child, {\n checked: value !== undefined && child.props.value === value,\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => {\n const isChecked = event.target.checked;\n if (isChecked) {\n onValueChange?.(child.props.value || '');\n }\n originalOnChange?.(event);\n },\n });\n });\n};","import React, { createContext, useContext, useState, useCallback } from 'react';\nimport { FieldValue } from '../../organisms';\nimport { useControlledValue } from '../FormField/useControlledValue';\nimport type { SelectContextType, SelectProviderProps } from './Select.types';\nimport { handleSelectionChange, hasValue } from './Select.utils';\n\n// Initial context value for SelectContext\nconst selectContextInitialValue: SelectContextType = {\n selectedValue: '', // Initial selected value is empty string\n updateSelectedValue: () => { }, // function for updating selected value\n resetSelectedValue: () => { }, // function for resetting selected value\n registerOption: () => { }, // function for registering option labels\n getDisplayLabel: () => undefined, // function for getting display labels\n};\n\n// Create a context instance for Select component\nconst SelectContext = createContext<SelectContextType>(selectContextInitialValue);\n\n/**\n * Custom hook to use the SelectContext values.\n * Throws an error if used outside of a SelectProvider.\n *\n * @throws Error if used outside of SelectProvider.\n * @returns Context values of type SelectContextType.\n */\nexport const useSelectContext = (): SelectContextType => {\n const context = useContext(SelectContext);\n if (!context) {\n throw new Error('useSelectContext must be used within a SelectProvider');\n }\n return context;\n};\n\n/**\n * Provider component for managing state and providing context to Select components.\n * Manages the selected value state and provides methods to update or reset it.\n *\n * @param props - Props for configuring the SelectProvider.\n * @returns JSX element that provides context to its children.\n */\nexport const SelectProvider = ({\n children,\n value = '',\n multiple = false,\n disabled,\n invalid,\n onValueChange,\n closeSelectOptions,\n}: SelectProviderProps) => {\n\n const { value: selectedValue, onValueChange: handleValueChange } = useControlledValue<FieldValue>({ value, onValueChange, defaultValue: '' });\n\n // Store option labels in state to trigger re-renders when options register\n const [optionLabels, setOptionLabels] = useState<Map<string, React.ReactNode>>(new Map());\n\n /**\n * Registers an option's value-label pair.\n */\n const registerOption = useCallback((optionValue: FieldValue, label: React.ReactNode): void => {\n const key = String(optionValue);\n setOptionLabels(prev => {\n const newMap = new Map(prev);\n newMap.set(key, label);\n return newMap;\n });\n }, []);\n\n /**\n * Gets the display label for a value.\n */\n const getDisplayLabel = useCallback((optionValue: FieldValue): React.ReactNode | undefined => {\n if (Array.isArray(optionValue)) {\n if (optionValue.length === 0) {\n return undefined\n };\n\n if (optionValue.length >= 2) {\n return `${optionValue.length} items selected`;\n }\n\n const key = String(optionValue[0]);\n return optionLabels.get(String(key));\n }\n\n const key = String(optionValue);\n return optionLabels.get(key);\n }, [optionLabels]);\n\n /**\n * Updates the selected value based on the new value.\n * Handles multiple selections if enabled.\n *\n * @param newValue - The new value to be selected.\n */\n const updateSelectedValue = (newValue: string | number): void => {\n const currentSelection = handleSelectionChange(newValue, value, multiple);\n handleValueChange(currentSelection);\n if (!multiple && closeSelectOptions) {\n closeSelectOptions();\n }\n };\n\n /**\n * Resets the selected value to default or undefined.\n * Triggers the onValueChanged callback with default or undefined.\n */\n const resetSelectedValue = (): void => {\n const resetValue = value && hasValue(value) ? value : '';\n onValueChange?.(resetValue);\n if (!multiple && closeSelectOptions) {\n closeSelectOptions();\n }\n };\n\n return (\n <SelectContext.Provider\n value={{\n selectedValue: selectedValue ?? '',\n updateSelectedValue,\n resetSelectedValue,\n registerOption,\n getDisplayLabel,\n disabledField: disabled,\n invalidField: invalid,\n }}\n >\n {children}\n </SelectContext.Provider>\n );\n};\n","import React from 'react';\nimport { FieldValue } from '../../organisms/Form/Form.types';\n\n\n/**\n * Utility function to check if a given value has content.\n * - If the value is an array, it returns true if the array has elements, otherwise false.\n * - If the value is not an array, it returns the value itself.\n *\n * @param {FieldValue} value - The value to check. Can be a string, number, string array, or undefined.\n * @returns {boolean | FieldValue} - Returns true if the value is a non-empty array, otherwise returns the value itself.\n */\nexport const hasValue = (value: FieldValue): boolean | FieldValue => {\n // Check if the value is an array\n if (Array.isArray(value)) {\n // Return true if the array has elements, otherwise false\n return value.length > 0;\n }\n // If the value is not an array, return the value itself\n return value;\n};\n\n/**\n * Returns the selected value in an appropriate format.\n *\n * @param selected - The selected value, which can be a string, number, or an array of strings or numbers.\n * @param defaultValue - The default value to return if no selected value is provided. Default is an empty string.\n * @param labelMap - Optional map of values to labels for displaying custom text.\n * @returns The selected value if it exists, formatted as a string or number, or the default value.\n */\nexport const getSelectedValue = (\n selected: FieldValue, \n defaultValue: string = '', \n labelMap?: Map<string, React.ReactNode>\n): string | React.ReactNode | undefined => {\n if (!selected) return defaultValue;\n\n // Return the selected value directly if it is a string or number\n if (typeof selected === 'string' || typeof selected === 'number') {\n const key = String(selected);\n return labelMap?.get(key) || selected;\n }\n\n // If the selected value is an array\n if (Array.isArray(selected) && hasValue(selected)) {\n const [firstItem, ...rest] = selected;\n const key = String(firstItem);\n const firstLabel = labelMap?.get(key) || key;\n return rest.length === 0 ? firstLabel : `${firstLabel} + ${rest.length}`; // Format based on array length\n }\n\n return defaultValue;\n};\n\n/**\n * Utility function to handle changes to the selected value in a Select component.\n * @param newValue The new value to be selected or deselected.\n * @param Values The current selected value(s).\n * @param multiple Flag to indicate if multiple selections are allowed.\n * @returns The updated selected option(s).\n */\nexport const handleSelectionChange = (\n newValue: string | number,\n selectedValue: FieldValue,\n multiple?: boolean,\n defaultValue?: FieldValue,\n hasDefaultOption?: boolean,\n): FieldValue => {\n let currentSelection: FieldValue;\n\n // Check if multiple selections are allowed and the current selection is an array.\n if (multiple) {\n if (Array.isArray(selectedValue)) {\n // If the new value is already in the selection, remove it.\n if (selectedValue.includes(String(newValue))) {\n currentSelection = selectedValue.filter((item) => item !== newValue);\n } else {\n // If the new value is not in the selection, add it.\n currentSelection = [...selectedValue, String(newValue)];\n }\n } else {\n currentSelection = [String(newValue)];\n }\n\n } else {\n // For single selection mode, toggle the selection.\n const isValueUpdated = newValue !== selectedValue;\n const fallBackValue = hasDefaultOption ? (defaultValue || '') : newValue;\n currentSelection = isValueUpdated ? newValue : fallBackValue;\n }\n\n return currentSelection;\n};\n\n/**\n * Utility function to determine if an option is selected.\n * @param optionValue The value of the option to check.\n * @param Values The currently selected value.\n * @returns Whether the option is selected or not.\n */\nexport const checkIsSelected = (optionValue?: string, selectedValue?: FieldValue) => {\n if (selectedValue === undefined) return false;\n if (optionValue && Array.isArray(selectedValue)) {\n return selectedValue.includes(optionValue);\n }\n return optionValue === selectedValue;\n};\n\n","import cx from 'classnames';\nimport React, { cloneElement, forwardRef, useRef, useMemo, useEffect } from 'react';\nimport { Icon } from '../../atoms';\nimport Button from '../../atoms/Button';\nimport Text from '../../atoms/Text';\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport Popover, { PopoverHandle } from '../Popover';\nimport optionStyle from './Option/Option.module.scss';\nimport { SelectProvider } from './Select.Context';\nimport styles from './Select.module.scss';\nimport usePresenter from './Select.presenter';\nimport type { SelectProps, SelectViewProps } from './Select.types';\n\n/**\n * Select component for displaying a dropdown with options.\n * Uses Popover for the dropdown functionality.\n *\n * @param props - Props for configuring the Select component.\n * @returns Element representing the select.\n */\nconst SelectComponent = forwardRef<PopoverHandle, SelectViewProps>((props, ref) => {\n const {\n variantProps,\n isOpen,\n selectedValue,\n resetSelectedValue,\n triggerProps,\n expandIcon,\n SelectedView,\n placeholder,\n leadingIcon,\n disabled,\n hasDefaultOption,\n menuProps,\n popoverOffset,\n onOptionsOpen,\n onOptionsClose,\n displayValue,\n multiple,\n } = usePresenter(props);\n\n const expandIconView = (\n <div className={cx(styles.expandIcon, {\n [styles.collapseIcon]: isOpen,\n })}>\n <ConditionalView condition={expandIcon}>\n {expandIcon}\n </ConditionalView>\n <ConditionalView condition={!expandIcon}>\n <Icon\n icon='ExpandMore'\n style='Filled'\n size='Small'\n />\n </ConditionalView>\n </div>\n );\n\n const selectedComponent = (\n <>\n <ConditionalView condition={Boolean(SelectedView && selectedValue)}>\n {SelectedView && <SelectedView selectedValue={selectedValue} />}\n </ConditionalView>\n <ConditionalView condition={!(SelectedView && selectedValue)}>\n <Text className={cx(styles.title)} weight={'Regular'} type='BodySmall'>\n {displayValue}\n </Text>\n </ConditionalView>\n </>\n );\n\n // Function to render the select trigger\n const selectTrigger = (\n <>\n <Button\n {...triggerProps}\n className={cx(styles.trigger)}\n leadingIcon={leadingIcon}\n trailingIcon={expandIconView}\n disabled={disabled}\n {...variantProps}\n >\n {selectedComponent}\n </Button>\n\n {/* Hidden render of children to register options immediately */}\n <div style={{ display: 'none' }}>\n {props.children}\n </div>\n </>\n );\n\n // Function to render the options\n const options = (\n <ul className={cx(styles.options)} >\n <ConditionalView condition={hasDefaultOption}>\n <li className={cx(optionStyle.option)} onClick={resetSelectedValue}>\n <Text weight={'Regular'} type='BodySmall'>{placeholder}</Text>\n </li>\n </ConditionalView>\n {Array.isArray(props.children) ? (\n props.children.map((child, index) => cloneElement(child, { key: index, closeSelectOptions: onOptionsClose }))\n ) : (\n cloneElement(props.children, { closeSelectOptions: onOptionsClose })\n )}\n </ul>\n );\n\n return (\n <Popover\n ref={ref}\n {...triggerProps}\n className={cx(styles.select, props.className)}\n target={selectTrigger}\n content={options}\n show={isOpen}\n onOpen={onOptionsOpen}\n onHide={onOptionsClose}\n direction='Down'\n alignment='Start'\n action='Click'\n offset={popoverOffset}\n contentProps={menuProps}\n disabled={disabled}\n keepContentOnItemClick={multiple}\n {...variantProps}\n />\n );\n});\n\n/**\n * Select component that wraps SelectComponent with SelectProvider.\n * Provides state management and context to SelectComponent.\n *\n * @param props - Props for configuring the Select component.\n * @returns JSX element that renders the SelectComponent wrapped with SelectProvider.\n */\nconst Select = (props: SelectProps): JSX.Element => {\n const {\n value,\n multiple,\n disabled,\n onValueChange,\n hasDefaultOption,\n invalid,\n ...restProps\n } = props;\n\n const popoverOverRef = useRef<PopoverHandle>(null);\n\n const closeSelectOptions = () => {\n popoverOverRef.current?.close();\n };\n\n return (\n <SelectProvider\n value={value}\n multiple={multiple}\n disabled={disabled}\n invalid={invalid}\n onValueChange={onValueChange}\n hasDefaultOption={hasDefaultOption}\n closeSelectOptions={closeSelectOptions}\n >\n <SelectComponent\n ref={popoverOverRef}\n {...restProps}\n multiple={multiple || false}\n hasDefaultOption={hasDefaultOption}\n />\n </SelectProvider>\n );\n};\n\nexport default Select;\n","import { useEffect, useMemo, useState } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { useSelectContext } from './Select.Context';\nimport { SelectProps } from './Select.types';\n\nconst usePresenter = (props: SelectProps) => {\n const {\n placeholder,\n defaultOpen = false,\n leadingIcon,\n expandIcon,\n state = 'Default',\n menuProps,\n multiple,\n hasDefaultOption,\n className,\n children,\n selectedView: SelectedView,\n popoverOffset = [0, 2],\n ...restProps\n } = props;\n\n const { selectedValue, resetSelectedValue, disabledField, invalidField, getDisplayLabel } = useSelectContext();\n\n const [isOpen, setIsOpen] = useState(defaultOpen);\n\n useEffect(() => {\n setIsOpen(defaultOpen);\n }, [defaultOpen]);\n\n const onOptionsOpen = () => {\n if (!disabledField) {\n setIsOpen(true);\n }\n };\n\n const onOptionsClose = () => {\n setIsOpen(false);\n };\n\n const variantProps = useBuildVariantProps(\n 'select',\n {\n type: multiple ? 'multi-select' : 'single-select',\n },\n {\n disabled: disabledField,\n invalid: invalidField || state === 'Error',\n },\n );\n\n const displayValue = useMemo(() => {\n const label = getDisplayLabel(selectedValue);\n return label || placeholder;\n }, [selectedValue, placeholder, getDisplayLabel]);\n\n return {\n menuProps,\n popoverOffset,\n hasDefaultOption,\n leadingIcon,\n disabled: disabledField,\n placeholder,\n SelectedView,\n expandIcon,\n variantProps,\n isOpen,\n selectedValue,\n resetSelectedValue,\n triggerProps: restProps,\n onOptionsOpen,\n onOptionsClose,\n displayValue,\n multiple,\n };\n};\n\nexport default usePresenter;\n","import { ChipProps } from '../../atoms/Chip/Chip.types';\nimport { CheckboxItemProps } from '../../atoms/CheckboxItem/CheckboxItem.types';\nimport { OptionLike, OptionLikeKey } from './ChipInput.types';\n\n/**\n * Normalizes string array or OptionLike array to OptionLike array\n */\nexport const normalizeToOptionLike = (options: string[] | OptionLike[]): OptionLike[] => {\n if (!options || options.length === 0) return [];\n \n // Check if first item is OptionLike (has key and label properties)\n const firstOption = options[0];\n if (typeof firstOption === 'object' && 'key' in firstOption && 'label' in firstOption) {\n return options as OptionLike[];\n }\n \n // Convert strings to OptionLike\n return (options as string[]).map(option => ({\n key: option,\n label: option,\n }));\n};\n\n/**\n * Normalizes string array or OptionLike array to OptionLikeKey array\n */\nexport const normalizeToOptionLikeKey = (options: string[] | OptionLike[]): OptionLikeKey[] => {\n return normalizeToOptionLike(options).map(option => option.key);\n};\n\n/**\n * Creates chip props for a selected value using OptionLike\n */\nexport const createChipProps = (\n option: OptionLike,\n onRemove: (key: OptionLikeKey) => void,\n className?: string\n): ChipProps => ({\n children: option.label,\n isDismissible: true,\n onClose: () => onRemove(option.key),\n style: 'F',\n size: 'Small',\n type: 'Subdued',\n corner: 'Squared',\n className,\n});\n\n/**\n * Creates checkbox item props for context menu options using OptionLike\n */\nexport const createCheckboxItemProps = (\n option: OptionLike,\n isChecked: boolean,\n onSelect: (key: OptionLikeKey) => void,\n className?: string\n): CheckboxItemProps => ({\n id: String(option.key),\n children: option.label,\n className,\n onValueChange: () => onSelect(option.key),\n checked: isChecked,\n labelAlignment: 'Right',\n});\n\n/**\n * Toggles an option key in the selected keys array\n */\nexport const toggleOptionInArray = (\n selectedKeys: OptionLikeKey[],\n optionKey: OptionLikeKey\n): OptionLikeKey[] => {\n if (!selectedKeys.includes(optionKey)) {\n return [...selectedKeys, optionKey];\n }\n return selectedKeys.filter(key => key !== optionKey);\n};\n\n/**\n * Adds a new OptionLike to available options if it doesn't exist\n */\nexport const addUniqueOption = (\n availableOptions: OptionLike[],\n newOption: OptionLike\n): OptionLike[] => {\n const exists = availableOptions.some(option => option.key === newOption.key);\n if (!exists) {\n return [...availableOptions, newOption];\n }\n return availableOptions;\n};\n\n/**\n * Handles Enter key press for adding new chips\n */\nexport const handleEnterKeyForChip = (\n event: React.KeyboardEvent<HTMLInputElement>,\n inputValue: string,\n onAddChip: (value: string) => void,\n onClearInput: () => void\n): void => {\n if (event.key === \"Enter\") {\n event.preventDefault();\n const trimmedValue = inputValue.trim();\n if (trimmedValue) {\n onAddChip(trimmedValue);\n onClearInput();\n }\n }\n};\n\n/**\n * Finds an OptionLike by its key\n */\nexport const findOptionByKey = (\n options: OptionLike[],\n key: OptionLikeKey\n): OptionLike | undefined => {\n return options.find(option => option.key === key);\n};\n\n/**\n * Converts OptionLikeKey array back to original format (string[] or OptionLike[])\n */\nexport const convertKeysToOriginalFormat = <T extends string[] | OptionLike[]>(\n keys: OptionLikeKey[],\n originalValue: T | undefined,\n availableOptions: OptionLike[]\n): T => {\n // If no original value, default to string[] format\n if (!originalValue || originalValue.length === 0) {\n return keys as T;\n }\n \n // Check if original was OptionLike[]\n const firstItem = originalValue[0];\n if (typeof firstItem === 'object' && 'key' in firstItem && 'label' in firstItem) {\n // Convert back to OptionLike[]\n return keys.map(key => findOptionByKey(availableOptions, key)).filter(Boolean) as T;\n } else {\n // Convert back to string[]\n return keys as T;\n }\n};\n\n/**\n * Filters options by input value for search functionality\n */\nexport const filterOptionsByInput = (options: OptionLike[], inputValue: string): OptionLike[] => {\n if (!inputValue.trim()) return options;\n const searchTerm = inputValue.toLowerCase();\n return options.filter(option => \n option.label.toLowerCase().includes(searchTerm)\n );\n};\n\n/**\n * Creates an optimistic item for async operations\n */\nexport const createOptimisticItem = (value: string): OptionLike => ({\n key: `temp-${Date.now()}`,\n label: value\n});\n\n/**\n * Adds a key to selected keys array\n */\nexport const addKeyToSelection = (\n selectedKeys: OptionLikeKey[],\n keyToAdd: OptionLikeKey\n): OptionLikeKey[] => {\n if (selectedKeys.includes(keyToAdd)) return selectedKeys;\n return [...selectedKeys, keyToAdd];\n};\n\n/**\n * Removes a key from selected keys array\n */\nexport const removeKeyFromSelection = (\n selectedKeys: OptionLikeKey[],\n keyToRemove: OptionLikeKey\n): OptionLikeKey[] => {\n return selectedKeys.filter(key => key !== keyToRemove);\n};\n\n/**\n * Replaces a temporary key with a real key in selected keys array\n */\nexport const replaceKeyInSelection = (\n selectedKeys: OptionLikeKey[],\n oldKey: OptionLikeKey,\n newKey: OptionLikeKey\n): OptionLikeKey[] => {\n return selectedKeys.map(key => key === oldKey ? newKey : key);\n};\n\n/**\n * Handles async add item operation with optimistic updates\n */\nexport const handleAsyncAddItem = async (\n inputValue: string,\n onAddItem: (value: string) => Promise<OptionLike>,\n currentOptions: OptionLike[],\n currentSelectedKeys: OptionLikeKey[],\n setOptions: (options: OptionLike[]) => void,\n setSelectedKeys: (keys: OptionLikeKey[]) => void\n): Promise<void> => {\n const tempOption = createOptimisticItem(inputValue);\n \n // Optimistic updates\n setOptions(addUniqueOption(currentOptions, tempOption));\n setSelectedKeys(addKeyToSelection(currentSelectedKeys, tempOption.key));\n \n try {\n const realOption = await onAddItem(inputValue);\n // Replace temp with real\n setOptions(currentOptions.map(opt => opt.key === tempOption.key ? realOption : opt));\n setSelectedKeys(replaceKeyInSelection(currentSelectedKeys, tempOption.key, realOption.key));\n } catch (error) {\n // Revert optimistic changes\n setOptions(currentOptions.filter(opt => opt.key !== tempOption.key));\n setSelectedKeys(removeKeyFromSelection(currentSelectedKeys, tempOption.key));\n throw error; // Re-throw for caller to handle\n }\n};","import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { useControlledValue } from '../FormField/useControlledValue';\nimport styles from './ChipInput.module.scss';\nimport { ChipInputProps } from './ChipInput.types';\nimport { ChipProps } from '../../atoms/Chip/Chip.types';\nimport { createChipProps, createCheckboxItemProps, toggleOptionInArray, addUniqueOption, handleEnterKeyForChip, normalizeToOptionLike, findOptionByKey, normalizeToOptionLikeKey, convertKeysToOriginalFormat, filterOptionsByInput, createOptimisticItem } from './ChipInput.utils';\nimport { OptionLike, OptionLikeKey } from './ChipInput.types';\n\nconst usePresenter = <T extends string[] | OptionLike[]>(props: ChipInputProps<T>) => {\n const {\n inputValue: controlledInputValue,\n onInputChange,\n options,\n onValueChange,\n value: controlledValues,\n disabled = false,\n invalid = false,\n onAddItem,\n onDeleteItem,\n } = props;\n // Normalizes options by converting strings to OptionLike objects\n const normalizedOptions = useMemo(() => normalizeToOptionLike(options || []), [options]);\n // Normalizes values by converting keys to OptionLike objects\n const normalizedValues = useMemo(() => normalizeToOptionLikeKey(controlledValues ?? []), [controlledValues]);\n \n // Internal state for options\n const [internalOptions, setInternalOptions] = useState<OptionLike[]>(normalizedOptions);\n // Internal state for input value\n const [internalInputValue, setInternalInputValue] = useState<string>('');\n\n // Internal state for selected keys\n const { value: internalSelectedKeys, onValueChange: setInternalSelectedKeys } = useControlledValue<OptionLikeKey[]>({ \n value: normalizedValues, \n onValueChange: (keys) => {\n // Converts keys to original format and calls onValueChange\n if (onValueChange) {\n const originalFormat = convertKeysToOriginalFormat(keys, controlledValues, internalOptions);\n onValueChange(originalFormat);\n }\n }, \n defaultValue: [],\n });\n\n // Update internal options when props.options change\n useEffect(() => {\n setInternalOptions(normalizedOptions);\n }, [normalizedOptions]);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputValue = controlledInputValue ?? internalInputValue;\n \n const handleInputValueChange = useCallback((value: string) => {\n if (onInputChange) {\n onInputChange(value);\n } else {\n setInternalInputValue(value);\n }\n }, [onInputChange]);\n\n // Always filter options based on input value\n const filteredOptions = useMemo(() => {\n return filterOptionsByInput(internalOptions, inputValue);\n }, [internalOptions, inputValue]);\n\n /**\n * Handle option click\n */\n const handleSelect = useCallback((selectedOptionKey: OptionLikeKey) => {\n setInternalSelectedKeys(prev => {\n return toggleOptionInArray(prev || [], selectedOptionKey);\n });\n }, [setInternalSelectedKeys]);\n\n /**\n * Handle add new option with async support\n */\n const handleAddNewOption = useCallback(async (inputValue: string) => {\n // Use onAddItem (async) if available\n if (onAddItem) {\n // Async operation with optimistic update\n const tempOption = createOptimisticItem(inputValue);\n \n // Add temp option to internal options\n setInternalOptions(prev => {\n const updated = addUniqueOption(prev, tempOption);\n return updated;\n });\n \n // Add temp option to internal selected keys\n setInternalSelectedKeys(prev => {\n const updated = prev ? [...prev, tempOption.key] : [tempOption.key];\n return updated;\n });\n \n try {\n const realOption = await onAddItem(inputValue);\n \n // Update internal options with real option\n setInternalOptions(prev => {\n const updated = prev.map(opt => opt.key === tempOption.key ? realOption : opt);\n return updated;\n });\n \n // Update internal selected keys with real option key\n setInternalSelectedKeys(prev => {\n const updated = (prev || []).map(key => key === tempOption.key ? realOption.key : key);\n return updated;\n });\n } catch (error) {\n // Delete temp option if error occurs\n if (onDeleteItem) {\n await onDeleteItem(tempOption.key);\n }\n \n // Remove temp option on error\n setInternalOptions(prev => {\n const updated = prev.filter(opt => opt.key !== tempOption.key);\n return updated;\n });\n \n // Remove temp option from internal selected keys\n setInternalSelectedKeys(prev => {\n const updated = (prev || []).filter(key => key !== tempOption.key);\n return updated;\n });\n }\n } else {\n // Create default OptionLike from input value\n const newOption: OptionLike = { key: inputValue, label: inputValue };\n \n // Add new option to internal options\n setInternalOptions((prev) => {\n const updated = addUniqueOption(prev, newOption);\n return updated;\n });\n \n // Add new option to internal selected keys\n setInternalSelectedKeys(prev => {\n const updated = [...(prev || []), newOption.key];\n return updated;\n });\n }\n }, [onAddItem, onDeleteItem, setInternalOptions, setInternalSelectedKeys]);\n\n /**\n * Enhanced key handler with backspace deletion and enter for adding\n */\n const handleKeyDown = useCallback((event: React.KeyboardEvent<HTMLInputElement>) => {\n // Backspace deletion: remove last chip when input is empty\n if (event.key === 'Backspace' && !inputValue.trim() && internalSelectedKeys?.length) {\n const lastKey = internalSelectedKeys[internalSelectedKeys.length - 1];\n removeChip(lastKey);\n return;\n }\n \n // Enter key: add new item\n handleEnterKeyForChip(\n event,\n inputValue,\n (trimmedValue) => {\n // Check if option already exists\n const existingOption = internalOptions.find(opt => opt.key === trimmedValue || opt.label === trimmedValue);\n let optionKey: OptionLikeKey;\n \n if (existingOption) {\n optionKey = existingOption.key;\n // Add to selected values if not already selected\n setInternalSelectedKeys((prev) => {\n if (prev?.includes(optionKey)) {\n return prev;\n }\n return [...(prev || []), optionKey];\n });\n } else {\n // Add new option. it will be added to internal options and internal selected keys\n handleAddNewOption(trimmedValue);\n }\n },\n () => setInternalInputValue('')\n );\n }, [inputValue, internalOptions, handleAddNewOption, setInternalSelectedKeys, internalSelectedKeys]);\n\n /**\n * Handle removing a selected option\n */\n const removeChip = useCallback((keyToRemove: OptionLikeKey) => {\n setInternalSelectedKeys((prev) => {\n const newKeys = (prev || []).filter(key => key !== keyToRemove);\n return newKeys;\n });\n }, [setInternalSelectedKeys]);\n\n /**\n * Prepare chip data only\n */\n const chips = useMemo(() => {\n if (internalSelectedKeys) {\n return internalSelectedKeys.map((key): ChipProps => {\n const option = findOptionByKey(internalOptions, key);\n if (option) {\n return createChipProps(option, removeChip, styles.chip);\n }\n // Fallback if option not found (shouldn't happen but for safety)\n return createChipProps({ key, label: String(key) }, removeChip, styles.chip);\n });\n }\n return [];\n }, [internalSelectedKeys, internalOptions, removeChip]);\n \n /**\n * This is to focus in the input when chip input is clicked\n */\n const handleChipInputAreaClick = useCallback(() => {\n inputRef.current?.focus();\n }, [inputRef]);\n\n /**\n * Prepare option list for Chip Input Context Menu using filtered options\n */\n const optionList = useMemo(() => {\n if (filteredOptions) {\n return filteredOptions.map((option) => {\n const isChecked = internalSelectedKeys?.includes(option.key) ?? false;\n return createCheckboxItemProps(option, isChecked, handleSelect, styles.checkboxItem);\n });\n }\n return [];\n }, [filteredOptions, internalSelectedKeys, handleSelect]);\n\n /**\n * Prepare variant props for Chip Input\n */\n const variantProps = useBuildVariantProps(\n 'chip-input',\n {},\n {\n disabled,\n invalid,\n },\n );\n\n return {\n handleChipInputAreaClick,\n handleKeyDown,\n inputValue,\n onValueChange: handleInputValueChange,\n chips,\n inputRef,\n optionList,\n variantProps,\n disabled\n };\n};\n\nexport default usePresenter;","import cx from 'classnames';\nimport { forwardRef } from 'react';\n\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport { Input, Icon, IconButton, Button } from '../../atoms';\nimport styles from './Search.module.scss';\nimport usePresenter from './Search.presenter';\nimport type { SearchProps } from './Search.types';\n\n/**\n * Search component with auto and manual search modes\n * \n * @param props - The search component props\n * @param ref - Forward ref to the input element\n * @returns Search component\n */\nconst Search = forwardRef<HTMLInputElement, SearchProps>((props: SearchProps, ref) => {\n const {\n showSubmitButton = true,\n showClearButton = true,\n className,\n } = props;\n\n const {\n controlledValue,\n isSearching,\n searchDisabled,\n handleInputChange,\n handleSubmit,\n handleClear,\n handleKeyDown,\n showClearButton: shouldShowClearButton,\n isAutoStyle,\n isButtonStyle,\n variantProps,\n restProps: inputProps,\n } = usePresenter(props);\n\n return (\n <div \n className={cx(styles.search, className)}\n {...variantProps}\n >\n <Input\n {...inputProps}\n ref={ref}\n className={styles.searchInput}\n value={controlledValue}\n onValueChange={handleInputChange}\n onKeyDown={handleKeyDown}\n leadingIcon={\n <ConditionalView condition={isAutoStyle}>\n <Icon\n className={styles.searchIcon}\n icon=\"Search\"\n style=\"Outlined\"\n size=\"Medium\"\n />\n </ConditionalView>\n }\n trailingIcon={\n <ConditionalView condition={shouldShowClearButton && showClearButton}>\n <IconButton\n className={styles.searchIcon}\n type=\"Ghost\"\n size=\"Small\"\n icon={<Icon icon=\"CloseDelete\" style=\"Outlined\" size=\"Small\" />}\n onClick={handleClear}\n disabled={isSearching}\n aria-label=\"Clear search\"\n />\n </ConditionalView>\n }\n placeholder={props.placeholder || 'Search...'}\n disabled={props.disabled || isSearching}\n />\n <ConditionalView condition={isButtonStyle && showSubmitButton}>\n <Button\n className={styles.searchButton}\n type=\"Ghost\"\n size=\"Small\"\n onClick={handleSubmit}\n disabled={searchDisabled}\n aria-label=\"Search\"\n >\n <Icon icon=\"Search\" style=\"Outlined\" size=\"Small\" />\n </Button>\n </ConditionalView>\n </div>\n );\n});\n\nexport default Search;","import { useCallback, useMemo, useRef, useState } from 'react';\nimport { SearchProps } from './Search.types';\nimport { useControlledValue } from '../FormField/useControlledValue';\nimport { useDebounce } from '../../utils/useDebounce';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\n/**\n * Custom hook that manages the search component logic and state\n * @param props - The search component props\n * @returns Object containing component state and handlers\n */\nconst useSearchPresenter = (props: SearchProps) => {\n // Destructure props with default values\n const {\n style = 'Auto',\n onSearch,\n debounceMs = 300,\n minCharacters = 1,\n loading = false,\n value,\n initialValue,\n onValueChange,\n 'component-variant': componentVariant,\n ...restProps\n } = props;\n\n // Handle controlled/uncontrolled value state\n const { value: controlledValue, onValueChange: handleValueChange } = useControlledValue({\n value,\n onValueChange,\n defaultValue: initialValue || '',\n });\n\n const isAutoStyle = useMemo(() => style === 'Auto', [style]);\n const isButtonStyle = useMemo(() => style === 'Button', [style]);\n\n // Track search loading state internally\n const [isSearching, setIsSearching] = useState(false);\n \n // Keep reference to last search query to prevent duplicate searches\n const lastSearchRef = useRef<string>('');\n\n /**\n * Executes the search callback and manages loading state\n * Prevents duplicate searches by comparing with last search query\n */\n const handleSearch = useCallback(async (query: string) => {\n // Skip if same query was already searched\n if (query === lastSearchRef.current) return;\n \n lastSearchRef.current = query;\n setIsSearching(true);\n \n try {\n await onSearch?.(query);\n } finally {\n setIsSearching(false);\n }\n }, [onSearch]);\n\n // Create debounced version of search for auto mode\n const { debouncedCallback: debouncedSearch, cancel: cancelDebounce } = useDebounce(\n handleSearch,\n debounceMs\n );\n\n /**\n * Handles input value changes and triggers search in auto mode\n * In auto mode: searches are debounced and only trigger when minimum characters are met\n * In manual mode: only updates the input value\n */\n const handleInputChange = useCallback((newValue: string) => {\n handleValueChange(newValue);\n\n // Only trigger search in auto mode\n if (isAutoStyle) {\n if (newValue.length >= minCharacters) {\n debouncedSearch(newValue);\n } else {\n // Cancel pending search if input is too short\n cancelDebounce();\n }\n }\n }, [isAutoStyle, minCharacters, debouncedSearch, cancelDebounce, handleValueChange]);\n\n /**\n * Handles manual search submission (for button clicks)\n * Only executes in manual mode when minimum characters requirement is met\n */\n const handleSubmit = useCallback(() => {\n if (isButtonStyle && controlledValue && controlledValue.length >= minCharacters) {\n handleSearch(controlledValue);\n }\n }, [isButtonStyle, controlledValue, minCharacters, handleSearch]);\n\n /**\n * Clears the search input and cancels any pending searches\n * Resets the last search reference to allow re-searching the same query\n */\n const handleClear = useCallback(() => {\n handleValueChange('');\n lastSearchRef.current = '';\n cancelDebounce();\n }, [handleValueChange, cancelDebounce]);\n\n /**\n * Handles keyboard events on the input\n * In manual mode: triggers search when Enter key is pressed\n */\n const handleKeyDown = useCallback((e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter' && isButtonStyle) {\n e.preventDefault();\n if (controlledValue && controlledValue.length >= minCharacters) {\n handleSearch(controlledValue);\n }\n }\n }, [isButtonStyle, controlledValue, minCharacters, handleSearch]);\n\n\n const variantProps = useBuildVariantProps(\n 'search',\n { \n style,\n type: controlledValue?.length ? 'Filled' : 'Default',\n },\n {\n disabled: props.disabled,\n invalid: props.invalid,\n },\n componentVariant\n );\n\n // Return all the values and handlers needed by the view component\n return {\n // Current input value (controlled by useControlledValue)\n controlledValue,\n // Combined loading state from internal search and external loading prop\n isSearching: isSearching || loading,\n // Disable search when loading or when input is empty\n searchDisabled: isSearching || loading || controlledValue?.length === 0,\n // Event handlers\n handleInputChange,\n handleSubmit,\n handleClear,\n handleKeyDown,\n // UI state flags\n showClearButton: controlledValue?.length,\n isAutoStyle,\n isButtonStyle,\n variantProps,\n // Remaining props to pass to Input component\n restProps,\n };\n};\n\nexport default useSearchPresenter;","export const COMMON_MIME_TYPES = new Map([\n // https://github.com/guzzle/psr7/blob/2d9260799e713f1c475d3c5fdc3d6561ff7441b2/src/MimeType.php\n ['1km', 'application/vnd.1000minds.decision-model+xml'],\n ['3dml', 'text/vnd.in3d.3dml'],\n ['3ds', 'image/x-3ds'],\n ['3g2', 'video/3gpp2'],\n ['3gp', 'video/3gp'],\n ['3gpp', 'video/3gpp'],\n ['3mf', 'model/3mf'],\n ['7z', 'application/x-7z-compressed'],\n ['7zip', 'application/x-7z-compressed'],\n ['123', 'application/vnd.lotus-1-2-3'],\n ['aab', 'application/x-authorware-bin'],\n ['aac', 'audio/x-acc'],\n ['aam', 'application/x-authorware-map'],\n ['aas', 'application/x-authorware-seg'],\n ['abw', 'application/x-abiword'],\n ['ac', 'application/vnd.nokia.n-gage.ac+xml'],\n ['ac3', 'audio/ac3'],\n ['acc', 'application/vnd.americandynamics.acc'],\n ['ace', 'application/x-ace-compressed'],\n ['acu', 'application/vnd.acucobol'],\n ['acutc', 'application/vnd.acucorp'],\n ['adp', 'audio/adpcm'],\n ['aep', 'application/vnd.audiograph'],\n ['afm', 'application/x-font-type1'],\n ['afp', 'application/vnd.ibm.modcap'],\n ['ahead', 'application/vnd.ahead.space'],\n ['ai', 'application/pdf'],\n ['aif', 'audio/x-aiff'],\n ['aifc', 'audio/x-aiff'],\n ['aiff', 'audio/x-aiff'],\n ['air', 'application/vnd.adobe.air-application-installer-package+zip'],\n ['ait', 'application/vnd.dvb.ait'],\n ['ami', 'application/vnd.amiga.ami'],\n ['amr', 'audio/amr'],\n ['apk', 'application/vnd.android.package-archive'],\n ['apng', 'image/apng'],\n ['appcache', 'text/cache-manifest'],\n ['application', 'application/x-ms-application'],\n ['apr', 'application/vnd.lotus-approach'],\n ['arc', 'application/x-freearc'],\n ['arj', 'application/x-arj'],\n ['asc', 'application/pgp-signature'],\n ['asf', 'video/x-ms-asf'],\n ['asm', 'text/x-asm'],\n ['aso', 'application/vnd.accpac.simply.aso'],\n ['asx', 'video/x-ms-asf'],\n ['atc', 'application/vnd.acucorp'],\n ['atom', 'application/atom+xml'],\n ['atomcat', 'application/atomcat+xml'],\n ['atomdeleted', 'application/atomdeleted+xml'],\n ['atomsvc', 'application/atomsvc+xml'],\n ['atx', 'application/vnd.antix.game-component'],\n ['au', 'audio/x-au'],\n ['avi', 'video/x-msvideo'],\n ['avif', 'image/avif'],\n ['aw', 'application/applixware'],\n ['azf', 'application/vnd.airzip.filesecure.azf'],\n ['azs', 'application/vnd.airzip.filesecure.azs'],\n ['azv', 'image/vnd.airzip.accelerator.azv'],\n ['azw', 'application/vnd.amazon.ebook'],\n ['b16', 'image/vnd.pco.b16'],\n ['bat', 'application/x-msdownload'],\n ['bcpio', 'application/x-bcpio'],\n ['bdf', 'application/x-font-bdf'],\n ['bdm', 'application/vnd.syncml.dm+wbxml'],\n ['bdoc', 'application/x-bdoc'],\n ['bed', 'application/vnd.realvnc.bed'],\n ['bh2', 'application/vnd.fujitsu.oasysprs'],\n ['bin', 'application/octet-stream'],\n ['blb', 'application/x-blorb'],\n ['blorb', 'application/x-blorb'],\n ['bmi', 'application/vnd.bmi'],\n ['bmml', 'application/vnd.balsamiq.bmml+xml'],\n ['bmp', 'image/bmp'],\n ['book', 'application/vnd.framemaker'],\n ['box', 'application/vnd.previewsystems.box'],\n ['boz', 'application/x-bzip2'],\n ['bpk', 'application/octet-stream'],\n ['bpmn', 'application/octet-stream'],\n ['bsp', 'model/vnd.valve.source.compiled-map'],\n ['btif', 'image/prs.btif'],\n ['buffer', 'application/octet-stream'],\n ['bz', 'application/x-bzip'],\n ['bz2', 'application/x-bzip2'],\n ['c', 'text/x-c'],\n ['c4d', 'application/vnd.clonk.c4group'],\n ['c4f', 'application/vnd.clonk.c4group'],\n ['c4g', 'application/vnd.clonk.c4group'],\n ['c4p', 'application/vnd.clonk.c4group'],\n ['c4u', 'application/vnd.clonk.c4group'],\n ['c11amc', 'application/vnd.cluetrust.cartomobile-config'],\n ['c11amz', 'application/vnd.cluetrust.cartomobile-config-pkg'],\n ['cab', 'application/vnd.ms-cab-compressed'],\n ['caf', 'audio/x-caf'],\n ['cap', 'application/vnd.tcpdump.pcap'],\n ['car', 'application/vnd.curl.car'],\n ['cat', 'application/vnd.ms-pki.seccat'],\n ['cb7', 'application/x-cbr'],\n ['cba', 'application/x-cbr'],\n ['cbr', 'application/x-cbr'],\n ['cbt', 'application/x-cbr'],\n ['cbz', 'application/x-cbr'],\n ['cc', 'text/x-c'],\n ['cco', 'application/x-cocoa'],\n ['cct', 'application/x-director'],\n ['ccxml', 'application/ccxml+xml'],\n ['cdbcmsg', 'application/vnd.contact.cmsg'],\n ['cda', 'application/x-cdf'],\n ['cdf', 'application/x-netcdf'],\n ['cdfx', 'application/cdfx+xml'],\n ['cdkey', 'application/vnd.mediastation.cdkey'],\n ['cdmia', 'application/cdmi-capability'],\n ['cdmic', 'application/cdmi-container'],\n ['cdmid', 'application/cdmi-domain'],\n ['cdmio', 'application/cdmi-object'],\n ['cdmiq', 'application/cdmi-queue'],\n ['cdr', 'application/cdr'],\n ['cdx', 'chemical/x-cdx'],\n ['cdxml', 'application/vnd.chemdraw+xml'],\n ['cdy', 'application/vnd.cinderella'],\n ['cer', 'application/pkix-cert'],\n ['cfs', 'application/x-cfs-compressed'],\n ['cgm', 'image/cgm'],\n ['chat', 'application/x-chat'],\n ['chm', 'application/vnd.ms-htmlhelp'],\n ['chrt', 'application/vnd.kde.kchart'],\n ['cif', 'chemical/x-cif'],\n ['cii', 'application/vnd.anser-web-certificate-issue-initiation'],\n ['cil', 'application/vnd.ms-artgalry'],\n ['cjs', 'application/node'],\n ['cla', 'application/vnd.claymore'],\n ['class', 'application/octet-stream'],\n ['clkk', 'application/vnd.crick.clicker.keyboard'],\n ['clkp', 'application/vnd.crick.clicker.palette'],\n ['clkt', 'application/vnd.crick.clicker.template'],\n ['clkw', 'application/vnd.crick.clicker.wordbank'],\n ['clkx', 'application/vnd.crick.clicker'],\n ['clp', 'application/x-msclip'],\n ['cmc', 'application/vnd.cosmocaller'],\n ['cmdf', 'chemical/x-cmdf'],\n ['cml', 'chemical/x-cml'],\n ['cmp', 'application/vnd.yellowriver-custom-menu'],\n ['cmx', 'image/x-cmx'],\n ['cod', 'application/vnd.rim.cod'],\n ['coffee', 'text/coffeescript'],\n ['com', 'application/x-msdownload'],\n ['conf', 'text/plain'],\n ['cpio', 'application/x-cpio'],\n ['cpp', 'text/x-c'],\n ['cpt', 'application/mac-compactpro'],\n ['crd', 'application/x-mscardfile'],\n ['crl', 'application/pkix-crl'],\n ['crt', 'application/x-x509-ca-cert'],\n ['crx', 'application/x-chrome-extension'],\n ['cryptonote', 'application/vnd.rig.cryptonote'],\n ['csh', 'application/x-csh'],\n ['csl', 'application/vnd.citationstyles.style+xml'],\n ['csml', 'chemical/x-csml'],\n ['csp', 'application/vnd.commonspace'],\n ['csr', 'application/octet-stream'],\n ['css', 'text/css'],\n ['cst', 'application/x-director'],\n ['csv', 'text/csv'],\n ['cu', 'application/cu-seeme'],\n ['curl', 'text/vnd.curl'],\n ['cww', 'application/prs.cww'],\n ['cxt', 'application/x-director'],\n ['cxx', 'text/x-c'],\n ['dae', 'model/vnd.collada+xml'],\n ['daf', 'application/vnd.mobius.daf'],\n ['dart', 'application/vnd.dart'],\n ['dataless', 'application/vnd.fdsn.seed'],\n ['davmount', 'application/davmount+xml'],\n ['dbf', 'application/vnd.dbf'],\n ['dbk', 'application/docbook+xml'],\n ['dcr', 'application/x-director'],\n ['dcurl', 'text/vnd.curl.dcurl'],\n ['dd2', 'application/vnd.oma.dd2+xml'],\n ['ddd', 'application/vnd.fujixerox.ddd'],\n ['ddf', 'application/vnd.syncml.dmddf+xml'],\n ['dds', 'image/vnd.ms-dds'],\n ['deb', 'application/x-debian-package'],\n ['def', 'text/plain'],\n ['deploy', 'application/octet-stream'],\n ['der', 'application/x-x509-ca-cert'],\n ['dfac', 'application/vnd.dreamfactory'],\n ['dgc', 'application/x-dgc-compressed'],\n ['dic', 'text/x-c'],\n ['dir', 'application/x-director'],\n ['dis', 'application/vnd.mobius.dis'],\n ['disposition-notification', 'message/disposition-notification'],\n ['dist', 'application/octet-stream'],\n ['distz', 'application/octet-stream'],\n ['djv', 'image/vnd.djvu'],\n ['djvu', 'image/vnd.djvu'],\n ['dll', 'application/octet-stream'],\n ['dmg', 'application/x-apple-diskimage'],\n ['dmn', 'application/octet-stream'],\n ['dmp', 'application/vnd.tcpdump.pcap'],\n ['dms', 'application/octet-stream'],\n ['dna', 'application/vnd.dna'],\n ['doc', 'application/msword'],\n ['docm', 'application/vnd.ms-word.template.macroEnabled.12'],\n ['docx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'],\n ['dot', 'application/msword'],\n ['dotm', 'application/vnd.ms-word.template.macroEnabled.12'],\n ['dotx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.template'],\n ['dp', 'application/vnd.osgi.dp'],\n ['dpg', 'application/vnd.dpgraph'],\n ['dra', 'audio/vnd.dra'],\n ['drle', 'image/dicom-rle'],\n ['dsc', 'text/prs.lines.tag'],\n ['dssc', 'application/dssc+der'],\n ['dtb', 'application/x-dtbook+xml'],\n ['dtd', 'application/xml-dtd'],\n ['dts', 'audio/vnd.dts'],\n ['dtshd', 'audio/vnd.dts.hd'],\n ['dump', 'application/octet-stream'],\n ['dvb', 'video/vnd.dvb.file'],\n ['dvi', 'application/x-dvi'],\n ['dwd', 'application/atsc-dwd+xml'],\n ['dwf', 'model/vnd.dwf'],\n ['dwg', 'image/vnd.dwg'],\n ['dxf', 'image/vnd.dxf'],\n ['dxp', 'application/vnd.spotfire.dxp'],\n ['dxr', 'application/x-director'],\n ['ear', 'application/java-archive'],\n ['ecelp4800', 'audio/vnd.nuera.ecelp4800'],\n ['ecelp7470', 'audio/vnd.nuera.ecelp7470'],\n ['ecelp9600', 'audio/vnd.nuera.ecelp9600'],\n ['ecma', 'application/ecmascript'],\n ['edm', 'application/vnd.novadigm.edm'],\n ['edx', 'application/vnd.novadigm.edx'],\n ['efif', 'application/vnd.picsel'],\n ['ei6', 'application/vnd.pg.osasli'],\n ['elc', 'application/octet-stream'],\n ['emf', 'image/emf'],\n ['eml', 'message/rfc822'],\n ['emma', 'application/emma+xml'],\n ['emotionml', 'application/emotionml+xml'],\n ['emz', 'application/x-msmetafile'],\n ['eol', 'audio/vnd.digital-winds'],\n ['eot', 'application/vnd.ms-fontobject'],\n ['eps', 'application/postscript'],\n ['epub', 'application/epub+zip'],\n ['es', 'application/ecmascript'],\n ['es3', 'application/vnd.eszigno3+xml'],\n ['esa', 'application/vnd.osgi.subsystem'],\n ['esf', 'application/vnd.epson.esf'],\n ['et3', 'application/vnd.eszigno3+xml'],\n ['etx', 'text/x-setext'],\n ['eva', 'application/x-eva'],\n ['evy', 'application/x-envoy'],\n ['exe', 'application/octet-stream'],\n ['exi', 'application/exi'],\n ['exp', 'application/express'],\n ['exr', 'image/aces'],\n ['ext', 'application/vnd.novadigm.ext'],\n ['ez', 'application/andrew-inset'],\n ['ez2', 'application/vnd.ezpix-album'],\n ['ez3', 'application/vnd.ezpix-package'],\n ['f', 'text/x-fortran'],\n ['f4v', 'video/mp4'],\n ['f77', 'text/x-fortran'],\n ['f90', 'text/x-fortran'],\n ['fbs', 'image/vnd.fastbidsheet'],\n ['fcdt', 'application/vnd.adobe.formscentral.fcdt'],\n ['fcs', 'application/vnd.isac.fcs'],\n ['fdf', 'application/vnd.fdf'],\n ['fdt', 'application/fdt+xml'],\n ['fe_launch', 'application/vnd.denovo.fcselayout-link'],\n ['fg5', 'application/vnd.fujitsu.oasysgp'],\n ['fgd', 'application/x-director'],\n ['fh', 'image/x-freehand'],\n ['fh4', 'image/x-freehand'],\n ['fh5', 'image/x-freehand'],\n ['fh7', 'image/x-freehand'],\n ['fhc', 'image/x-freehand'],\n ['fig', 'application/x-xfig'],\n ['fits', 'image/fits'],\n ['flac', 'audio/x-flac'],\n ['fli', 'video/x-fli'],\n ['flo', 'application/vnd.micrografx.flo'],\n ['flv', 'video/x-flv'],\n ['flw', 'application/vnd.kde.kivio'],\n ['flx', 'text/vnd.fmi.flexstor'],\n ['fly', 'text/vnd.fly'],\n ['fm', 'application/vnd.framemaker'],\n ['fnc', 'application/vnd.frogans.fnc'],\n ['fo', 'application/vnd.software602.filler.form+xml'],\n ['for', 'text/x-fortran'],\n ['fpx', 'image/vnd.fpx'],\n ['frame', 'application/vnd.framemaker'],\n ['fsc', 'application/vnd.fsc.weblaunch'],\n ['fst', 'image/vnd.fst'],\n ['ftc', 'application/vnd.fluxtime.clip'],\n ['fti', 'application/vnd.anser-web-funds-transfer-initiation'],\n ['fvt', 'video/vnd.fvt'],\n ['fxp', 'application/vnd.adobe.fxp'],\n ['fxpl', 'application/vnd.adobe.fxp'],\n ['fzs', 'application/vnd.fuzzysheet'],\n ['g2w', 'application/vnd.geoplan'],\n ['g3', 'image/g3fax'],\n ['g3w', 'application/vnd.geospace'],\n ['gac', 'application/vnd.groove-account'],\n ['gam', 'application/x-tads'],\n ['gbr', 'application/rpki-ghostbusters'],\n ['gca', 'application/x-gca-compressed'],\n ['gdl', 'model/vnd.gdl'],\n ['gdoc', 'application/vnd.google-apps.document'],\n ['geo', 'application/vnd.dynageo'],\n ['geojson', 'application/geo+json'],\n ['gex', 'application/vnd.geometry-explorer'],\n ['ggb', 'application/vnd.geogebra.file'],\n ['ggt', 'application/vnd.geogebra.tool'],\n ['ghf', 'application/vnd.groove-help'],\n ['gif', 'image/gif'],\n ['gim', 'application/vnd.groove-identity-message'],\n ['glb', 'model/gltf-binary'],\n ['gltf', 'model/gltf+json'],\n ['gml', 'application/gml+xml'],\n ['gmx', 'application/vnd.gmx'],\n ['gnumeric', 'application/x-gnumeric'],\n ['gpg', 'application/gpg-keys'],\n ['gph', 'application/vnd.flographit'],\n ['gpx', 'application/gpx+xml'],\n ['gqf', 'application/vnd.grafeq'],\n ['gqs', 'application/vnd.grafeq'],\n ['gram', 'application/srgs'],\n ['gramps', 'application/x-gramps-xml'],\n ['gre', 'application/vnd.geometry-explorer'],\n ['grv', 'application/vnd.groove-injector'],\n ['grxml', 'application/srgs+xml'],\n ['gsf', 'application/x-font-ghostscript'],\n ['gsheet', 'application/vnd.google-apps.spreadsheet'],\n ['gslides', 'application/vnd.google-apps.presentation'],\n ['gtar', 'application/x-gtar'],\n ['gtm', 'application/vnd.groove-tool-message'],\n ['gtw', 'model/vnd.gtw'],\n ['gv', 'text/vnd.graphviz'],\n ['gxf', 'application/gxf'],\n ['gxt', 'application/vnd.geonext'],\n ['gz', 'application/gzip'],\n ['gzip', 'application/gzip'],\n ['h', 'text/x-c'],\n ['h261', 'video/h261'],\n ['h263', 'video/h263'],\n ['h264', 'video/h264'],\n ['hal', 'application/vnd.hal+xml'],\n ['hbci', 'application/vnd.hbci'],\n ['hbs', 'text/x-handlebars-template'],\n ['hdd', 'application/x-virtualbox-hdd'],\n ['hdf', 'application/x-hdf'],\n ['heic', 'image/heic'],\n ['heics', 'image/heic-sequence'],\n ['heif', 'image/heif'],\n ['heifs', 'image/heif-sequence'],\n ['hej2', 'image/hej2k'],\n ['held', 'application/atsc-held+xml'],\n ['hh', 'text/x-c'],\n ['hjson', 'application/hjson'],\n ['hlp', 'application/winhlp'],\n ['hpgl', 'application/vnd.hp-hpgl'],\n ['hpid', 'application/vnd.hp-hpid'],\n ['hps', 'application/vnd.hp-hps'],\n ['hqx', 'application/mac-binhex40'],\n ['hsj2', 'image/hsj2'],\n ['htc', 'text/x-component'],\n ['htke', 'application/vnd.kenameaapp'],\n ['htm', 'text/html'],\n ['html', 'text/html'],\n ['hvd', 'application/vnd.yamaha.hv-dic'],\n ['hvp', 'application/vnd.yamaha.hv-voice'],\n ['hvs', 'application/vnd.yamaha.hv-script'],\n ['i2g', 'application/vnd.intergeo'],\n ['icc', 'application/vnd.iccprofile'],\n ['ice', 'x-conference/x-cooltalk'],\n ['icm', 'application/vnd.iccprofile'],\n ['ico', 'image/x-icon'],\n ['ics', 'text/calendar'],\n ['ief', 'image/ief'],\n ['ifb', 'text/calendar'],\n ['ifm', 'application/vnd.shana.informed.formdata'],\n ['iges', 'model/iges'],\n ['igl', 'application/vnd.igloader'],\n ['igm', 'application/vnd.insors.igm'],\n ['igs', 'model/iges'],\n ['igx', 'application/vnd.micrografx.igx'],\n ['iif', 'application/vnd.shana.informed.interchange'],\n ['img', 'application/octet-stream'],\n ['imp', 'application/vnd.accpac.simply.imp'],\n ['ims', 'application/vnd.ms-ims'],\n ['in', 'text/plain'],\n ['ini', 'text/plain'],\n ['ink', 'application/inkml+xml'],\n ['inkml', 'application/inkml+xml'],\n ['install', 'application/x-install-instructions'],\n ['iota', 'application/vnd.astraea-software.iota'],\n ['ipfix', 'application/ipfix'],\n ['ipk', 'application/vnd.shana.informed.package'],\n ['irm', 'application/vnd.ibm.rights-management'],\n ['irp', 'application/vnd.irepository.package+xml'],\n ['iso', 'application/x-iso9660-image'],\n ['itp', 'application/vnd.shana.informed.formtemplate'],\n ['its', 'application/its+xml'],\n ['ivp', 'application/vnd.immervision-ivp'],\n ['ivu', 'application/vnd.immervision-ivu'],\n ['jad', 'text/vnd.sun.j2me.app-descriptor'],\n ['jade', 'text/jade'],\n ['jam', 'application/vnd.jam'],\n ['jar', 'application/java-archive'],\n ['jardiff', 'application/x-java-archive-diff'],\n ['java', 'text/x-java-source'],\n ['jhc', 'image/jphc'],\n ['jisp', 'application/vnd.jisp'],\n ['jls', 'image/jls'],\n ['jlt', 'application/vnd.hp-jlyt'],\n ['jng', 'image/x-jng'],\n ['jnlp', 'application/x-java-jnlp-file'],\n ['joda', 'application/vnd.joost.joda-archive'],\n ['jp2', 'image/jp2'],\n ['jpe', 'image/jpeg'],\n ['jpeg', 'image/jpeg'],\n ['jpf', 'image/jpx'],\n ['jpg', 'image/jpeg'],\n ['jpg2', 'image/jp2'],\n ['jpgm', 'video/jpm'],\n ['jpgv', 'video/jpeg'],\n ['jph', 'image/jph'],\n ['jpm', 'video/jpm'],\n ['jpx', 'image/jpx'],\n ['js', 'application/javascript'],\n ['json', 'application/json'],\n ['json5', 'application/json5'],\n ['jsonld', 'application/ld+json'],\n // https://jsonlines.org/\n ['jsonl', 'application/jsonl'],\n ['jsonml', 'application/jsonml+json'],\n ['jsx', 'text/jsx'],\n ['jxr', 'image/jxr'],\n ['jxra', 'image/jxra'],\n ['jxrs', 'image/jxrs'],\n ['jxs', 'image/jxs'],\n ['jxsc', 'image/jxsc'],\n ['jxsi', 'image/jxsi'],\n ['jxss', 'image/jxss'],\n ['kar', 'audio/midi'],\n ['karbon', 'application/vnd.kde.karbon'],\n ['kdb', 'application/octet-stream'],\n ['kdbx', 'application/x-keepass2'],\n ['key', 'application/x-iwork-keynote-sffkey'],\n ['kfo', 'application/vnd.kde.kformula'],\n ['kia', 'application/vnd.kidspiration'],\n ['kml', 'application/vnd.google-earth.kml+xml'],\n ['kmz', 'application/vnd.google-earth.kmz'],\n ['kne', 'application/vnd.kinar'],\n ['knp', 'application/vnd.kinar'],\n ['kon', 'application/vnd.kde.kontour'],\n ['kpr', 'application/vnd.kde.kpresenter'],\n ['kpt', 'application/vnd.kde.kpresenter'],\n ['kpxx', 'application/vnd.ds-keypoint'],\n ['ksp', 'application/vnd.kde.kspread'],\n ['ktr', 'application/vnd.kahootz'],\n ['ktx', 'image/ktx'],\n ['ktx2', 'image/ktx2'],\n ['ktz', 'application/vnd.kahootz'],\n ['kwd', 'application/vnd.kde.kword'],\n ['kwt', 'application/vnd.kde.kword'],\n ['lasxml', 'application/vnd.las.las+xml'],\n ['latex', 'application/x-latex'],\n ['lbd', 'application/vnd.llamagraphics.life-balance.desktop'],\n ['lbe', 'application/vnd.llamagraphics.life-balance.exchange+xml'],\n ['les', 'application/vnd.hhe.lesson-player'],\n ['less', 'text/less'],\n ['lgr', 'application/lgr+xml'],\n ['lha', 'application/octet-stream'],\n ['link66', 'application/vnd.route66.link66+xml'],\n ['list', 'text/plain'],\n ['list3820', 'application/vnd.ibm.modcap'],\n ['listafp', 'application/vnd.ibm.modcap'],\n ['litcoffee', 'text/coffeescript'],\n ['lnk', 'application/x-ms-shortcut'],\n ['log', 'text/plain'],\n ['lostxml', 'application/lost+xml'],\n ['lrf', 'application/octet-stream'],\n ['lrm', 'application/vnd.ms-lrm'],\n ['ltf', 'application/vnd.frogans.ltf'],\n ['lua', 'text/x-lua'],\n ['luac', 'application/x-lua-bytecode'],\n ['lvp', 'audio/vnd.lucent.voice'],\n ['lwp', 'application/vnd.lotus-wordpro'],\n ['lzh', 'application/octet-stream'],\n ['m1v', 'video/mpeg'],\n ['m2a', 'audio/mpeg'],\n ['m2v', 'video/mpeg'],\n ['m3a', 'audio/mpeg'],\n ['m3u', 'text/plain'],\n ['m3u8', 'application/vnd.apple.mpegurl'],\n ['m4a', 'audio/x-m4a'],\n ['m4p', 'application/mp4'],\n ['m4s', 'video/iso.segment'],\n ['m4u', 'application/vnd.mpegurl'],\n ['m4v', 'video/x-m4v'],\n ['m13', 'application/x-msmediaview'],\n ['m14', 'application/x-msmediaview'],\n ['m21', 'application/mp21'],\n ['ma', 'application/mathematica'],\n ['mads', 'application/mads+xml'],\n ['maei', 'application/mmt-aei+xml'],\n ['mag', 'application/vnd.ecowin.chart'],\n ['maker', 'application/vnd.framemaker'],\n ['man', 'text/troff'],\n ['manifest', 'text/cache-manifest'],\n ['map', 'application/json'],\n ['mar', 'application/octet-stream'],\n ['markdown', 'text/markdown'],\n ['mathml', 'application/mathml+xml'],\n ['mb', 'application/mathematica'],\n ['mbk', 'application/vnd.mobius.mbk'],\n ['mbox', 'application/mbox'],\n ['mc1', 'application/vnd.medcalcdata'],\n ['mcd', 'application/vnd.mcd'],\n ['mcurl', 'text/vnd.curl.mcurl'],\n ['md', 'text/markdown'],\n ['mdb', 'application/x-msaccess'],\n ['mdi', 'image/vnd.ms-modi'],\n ['mdx', 'text/mdx'],\n ['me', 'text/troff'],\n ['mesh', 'model/mesh'],\n ['meta4', 'application/metalink4+xml'],\n ['metalink', 'application/metalink+xml'],\n ['mets', 'application/mets+xml'],\n ['mfm', 'application/vnd.mfmp'],\n ['mft', 'application/rpki-manifest'],\n ['mgp', 'application/vnd.osgeo.mapguide.package'],\n ['mgz', 'application/vnd.proteus.magazine'],\n ['mid', 'audio/midi'],\n ['midi', 'audio/midi'],\n ['mie', 'application/x-mie'],\n ['mif', 'application/vnd.mif'],\n ['mime', 'message/rfc822'],\n ['mj2', 'video/mj2'],\n ['mjp2', 'video/mj2'],\n ['mjs', 'application/javascript'],\n ['mk3d', 'video/x-matroska'],\n ['mka', 'audio/x-matroska'],\n ['mkd', 'text/x-markdown'],\n ['mks', 'video/x-matroska'],\n ['mkv', 'video/x-matroska'],\n ['mlp', 'application/vnd.dolby.mlp'],\n ['mmd', 'application/vnd.chipnuts.karaoke-mmd'],\n ['mmf', 'application/vnd.smaf'],\n ['mml', 'text/mathml'],\n ['mmr', 'image/vnd.fujixerox.edmics-mmr'],\n ['mng', 'video/x-mng'],\n ['mny', 'application/x-msmoney'],\n ['mobi', 'application/x-mobipocket-ebook'],\n ['mods', 'application/mods+xml'],\n ['mov', 'video/quicktime'],\n ['movie', 'video/x-sgi-movie'],\n ['mp2', 'audio/mpeg'],\n ['mp2a', 'audio/mpeg'],\n ['mp3', 'audio/mpeg'],\n ['mp4', 'video/mp4'],\n ['mp4a', 'audio/mp4'],\n ['mp4s', 'application/mp4'],\n ['mp4v', 'video/mp4'],\n ['mp21', 'application/mp21'],\n ['mpc', 'application/vnd.mophun.certificate'],\n ['mpd', 'application/dash+xml'],\n ['mpe', 'video/mpeg'],\n ['mpeg', 'video/mpeg'],\n ['mpg', 'video/mpeg'],\n ['mpg4', 'video/mp4'],\n ['mpga', 'audio/mpeg'],\n ['mpkg', 'application/vnd.apple.installer+xml'],\n ['mpm', 'application/vnd.blueice.multipass'],\n ['mpn', 'application/vnd.mophun.application'],\n ['mpp', 'application/vnd.ms-project'],\n ['mpt', 'application/vnd.ms-project'],\n ['mpy', 'application/vnd.ibm.minipay'],\n ['mqy', 'application/vnd.mobius.mqy'],\n ['mrc', 'application/marc'],\n ['mrcx', 'application/marcxml+xml'],\n ['ms', 'text/troff'],\n ['mscml', 'application/mediaservercontrol+xml'],\n ['mseed', 'application/vnd.fdsn.mseed'],\n ['mseq', 'application/vnd.mseq'],\n ['msf', 'application/vnd.epson.msf'],\n ['msg', 'application/vnd.ms-outlook'],\n ['msh', 'model/mesh'],\n ['msi', 'application/x-msdownload'],\n ['msl', 'application/vnd.mobius.msl'],\n ['msm', 'application/octet-stream'],\n ['msp', 'application/octet-stream'],\n ['msty', 'application/vnd.muvee.style'],\n ['mtl', 'model/mtl'],\n ['mts', 'model/vnd.mts'],\n ['mus', 'application/vnd.musician'],\n ['musd', 'application/mmt-usd+xml'],\n ['musicxml', 'application/vnd.recordare.musicxml+xml'],\n ['mvb', 'application/x-msmediaview'],\n ['mvt', 'application/vnd.mapbox-vector-tile'],\n ['mwf', 'application/vnd.mfer'],\n ['mxf', 'application/mxf'],\n ['mxl', 'application/vnd.recordare.musicxml'],\n ['mxmf', 'audio/mobile-xmf'],\n ['mxml', 'application/xv+xml'],\n ['mxs', 'application/vnd.triscape.mxs'],\n ['mxu', 'video/vnd.mpegurl'],\n ['n-gage', 'application/vnd.nokia.n-gage.symbian.install'],\n ['n3', 'text/n3'],\n ['nb', 'application/mathematica'],\n ['nbp', 'application/vnd.wolfram.player'],\n ['nc', 'application/x-netcdf'],\n ['ncx', 'application/x-dtbncx+xml'],\n ['nfo', 'text/x-nfo'],\n ['ngdat', 'application/vnd.nokia.n-gage.data'],\n ['nitf', 'application/vnd.nitf'],\n ['nlu', 'application/vnd.neurolanguage.nlu'],\n ['nml', 'application/vnd.enliven'],\n ['nnd', 'application/vnd.noblenet-directory'],\n ['nns', 'application/vnd.noblenet-sealer'],\n ['nnw', 'application/vnd.noblenet-web'],\n ['npx', 'image/vnd.net-fpx'],\n ['nq', 'application/n-quads'],\n ['nsc', 'application/x-conference'],\n ['nsf', 'application/vnd.lotus-notes'],\n ['nt', 'application/n-triples'],\n ['ntf', 'application/vnd.nitf'],\n ['numbers', 'application/x-iwork-numbers-sffnumbers'],\n ['nzb', 'application/x-nzb'],\n ['oa2', 'application/vnd.fujitsu.oasys2'],\n ['oa3', 'application/vnd.fujitsu.oasys3'],\n ['oas', 'application/vnd.fujitsu.oasys'],\n ['obd', 'application/x-msbinder'],\n ['obgx', 'application/vnd.openblox.game+xml'],\n ['obj', 'model/obj'],\n ['oda', 'application/oda'],\n ['odb', 'application/vnd.oasis.opendocument.database'],\n ['odc', 'application/vnd.oasis.opendocument.chart'],\n ['odf', 'application/vnd.oasis.opendocument.formula'],\n ['odft', 'application/vnd.oasis.opendocument.formula-template'],\n ['odg', 'application/vnd.oasis.opendocument.graphics'],\n ['odi', 'application/vnd.oasis.opendocument.image'],\n ['odm', 'application/vnd.oasis.opendocument.text-master'],\n ['odp', 'application/vnd.oasis.opendocument.presentation'],\n ['ods', 'application/vnd.oasis.opendocument.spreadsheet'],\n ['odt', 'application/vnd.oasis.opendocument.text'],\n ['oga', 'audio/ogg'],\n ['ogex', 'model/vnd.opengex'],\n ['ogg', 'audio/ogg'],\n ['ogv', 'video/ogg'],\n ['ogx', 'application/ogg'],\n ['omdoc', 'application/omdoc+xml'],\n ['onepkg', 'application/onenote'],\n ['onetmp', 'application/onenote'],\n ['onetoc', 'application/onenote'],\n ['onetoc2', 'application/onenote'],\n ['opf', 'application/oebps-package+xml'],\n ['opml', 'text/x-opml'],\n ['oprc', 'application/vnd.palm'],\n ['opus', 'audio/ogg'],\n ['org', 'text/x-org'],\n ['osf', 'application/vnd.yamaha.openscoreformat'],\n ['osfpvg', 'application/vnd.yamaha.openscoreformat.osfpvg+xml'],\n ['osm', 'application/vnd.openstreetmap.data+xml'],\n ['otc', 'application/vnd.oasis.opendocument.chart-template'],\n ['otf', 'font/otf'],\n ['otg', 'application/vnd.oasis.opendocument.graphics-template'],\n ['oth', 'application/vnd.oasis.opendocument.text-web'],\n ['oti', 'application/vnd.oasis.opendocument.image-template'],\n ['otp', 'application/vnd.oasis.opendocument.presentation-template'],\n ['ots', 'application/vnd.oasis.opendocument.spreadsheet-template'],\n ['ott', 'application/vnd.oasis.opendocument.text-template'],\n ['ova', 'application/x-virtualbox-ova'],\n ['ovf', 'application/x-virtualbox-ovf'],\n ['owl', 'application/rdf+xml'],\n ['oxps', 'application/oxps'],\n ['oxt', 'application/vnd.openofficeorg.extension'],\n ['p', 'text/x-pascal'],\n ['p7a', 'application/x-pkcs7-signature'],\n ['p7b', 'application/x-pkcs7-certificates'],\n ['p7c', 'application/pkcs7-mime'],\n ['p7m', 'application/pkcs7-mime'],\n ['p7r', 'application/x-pkcs7-certreqresp'],\n ['p7s', 'application/pkcs7-signature'],\n ['p8', 'application/pkcs8'],\n ['p10', 'application/x-pkcs10'],\n ['p12', 'application/x-pkcs12'],\n ['pac', 'application/x-ns-proxy-autoconfig'],\n ['pages', 'application/x-iwork-pages-sffpages'],\n ['pas', 'text/x-pascal'],\n ['paw', 'application/vnd.pawaafile'],\n ['pbd', 'application/vnd.powerbuilder6'],\n ['pbm', 'image/x-portable-bitmap'],\n ['pcap', 'application/vnd.tcpdump.pcap'],\n ['pcf', 'application/x-font-pcf'],\n ['pcl', 'application/vnd.hp-pcl'],\n ['pclxl', 'application/vnd.hp-pclxl'],\n ['pct', 'image/x-pict'],\n ['pcurl', 'application/vnd.curl.pcurl'],\n ['pcx', 'image/x-pcx'],\n ['pdb', 'application/x-pilot'],\n ['pde', 'text/x-processing'],\n ['pdf', 'application/pdf'],\n ['pem', 'application/x-x509-user-cert'],\n ['pfa', 'application/x-font-type1'],\n ['pfb', 'application/x-font-type1'],\n ['pfm', 'application/x-font-type1'],\n ['pfr', 'application/font-tdpfr'],\n ['pfx', 'application/x-pkcs12'],\n ['pgm', 'image/x-portable-graymap'],\n ['pgn', 'application/x-chess-pgn'],\n ['pgp', 'application/pgp'],\n ['php', 'application/x-httpd-php'],\n ['php3', 'application/x-httpd-php'],\n ['php4', 'application/x-httpd-php'],\n ['phps', 'application/x-httpd-php-source'],\n ['phtml', 'application/x-httpd-php'],\n ['pic', 'image/x-pict'],\n ['pkg', 'application/octet-stream'],\n ['pki', 'application/pkixcmp'],\n ['pkipath', 'application/pkix-pkipath'],\n ['pkpass', 'application/vnd.apple.pkpass'],\n ['pl', 'application/x-perl'],\n ['plb', 'application/vnd.3gpp.pic-bw-large'],\n ['plc', 'application/vnd.mobius.plc'],\n ['plf', 'application/vnd.pocketlearn'],\n ['pls', 'application/pls+xml'],\n ['pm', 'application/x-perl'],\n ['pml', 'application/vnd.ctc-posml'],\n ['png', 'image/png'],\n ['pnm', 'image/x-portable-anymap'],\n ['portpkg', 'application/vnd.macports.portpkg'],\n ['pot', 'application/vnd.ms-powerpoint'],\n ['potm', 'application/vnd.ms-powerpoint.presentation.macroEnabled.12'],\n ['potx', 'application/vnd.openxmlformats-officedocument.presentationml.template'],\n ['ppa', 'application/vnd.ms-powerpoint'],\n ['ppam', 'application/vnd.ms-powerpoint.addin.macroEnabled.12'],\n ['ppd', 'application/vnd.cups-ppd'],\n ['ppm', 'image/x-portable-pixmap'],\n ['pps', 'application/vnd.ms-powerpoint'],\n ['ppsm', 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12'],\n ['ppsx', 'application/vnd.openxmlformats-officedocument.presentationml.slideshow'],\n ['ppt', 'application/powerpoint'],\n ['pptm', 'application/vnd.ms-powerpoint.presentation.macroEnabled.12'],\n ['pptx', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'],\n ['pqa', 'application/vnd.palm'],\n ['prc', 'application/x-pilot'],\n ['pre', 'application/vnd.lotus-freelance'],\n ['prf', 'application/pics-rules'],\n ['provx', 'application/provenance+xml'],\n ['ps', 'application/postscript'],\n ['psb', 'application/vnd.3gpp.pic-bw-small'],\n ['psd', 'application/x-photoshop'],\n ['psf', 'application/x-font-linux-psf'],\n ['pskcxml', 'application/pskc+xml'],\n ['pti', 'image/prs.pti'],\n ['ptid', 'application/vnd.pvi.ptid1'],\n ['pub', 'application/x-mspublisher'],\n ['pvb', 'application/vnd.3gpp.pic-bw-var'],\n ['pwn', 'application/vnd.3m.post-it-notes'],\n ['pya', 'audio/vnd.ms-playready.media.pya'],\n ['pyv', 'video/vnd.ms-playready.media.pyv'],\n ['qam', 'application/vnd.epson.quickanime'],\n ['qbo', 'application/vnd.intu.qbo'],\n ['qfx', 'application/vnd.intu.qfx'],\n ['qps', 'application/vnd.publishare-delta-tree'],\n ['qt', 'video/quicktime'],\n ['qwd', 'application/vnd.quark.quarkxpress'],\n ['qwt', 'application/vnd.quark.quarkxpress'],\n ['qxb', 'application/vnd.quark.quarkxpress'],\n ['qxd', 'application/vnd.quark.quarkxpress'],\n ['qxl', 'application/vnd.quark.quarkxpress'],\n ['qxt', 'application/vnd.quark.quarkxpress'],\n ['ra', 'audio/x-realaudio'],\n ['ram', 'audio/x-pn-realaudio'],\n ['raml', 'application/raml+yaml'],\n ['rapd', 'application/route-apd+xml'],\n ['rar', 'application/x-rar'],\n ['ras', 'image/x-cmu-raster'],\n ['rcprofile', 'application/vnd.ipunplugged.rcprofile'],\n ['rdf', 'application/rdf+xml'],\n ['rdz', 'application/vnd.data-vision.rdz'],\n ['relo', 'application/p2p-overlay+xml'],\n ['rep', 'application/vnd.businessobjects'],\n ['res', 'application/x-dtbresource+xml'],\n ['rgb', 'image/x-rgb'],\n ['rif', 'application/reginfo+xml'],\n ['rip', 'audio/vnd.rip'],\n ['ris', 'application/x-research-info-systems'],\n ['rl', 'application/resource-lists+xml'],\n ['rlc', 'image/vnd.fujixerox.edmics-rlc'],\n ['rld', 'application/resource-lists-diff+xml'],\n ['rm', 'audio/x-pn-realaudio'],\n ['rmi', 'audio/midi'],\n ['rmp', 'audio/x-pn-realaudio-plugin'],\n ['rms', 'application/vnd.jcp.javame.midlet-rms'],\n ['rmvb', 'application/vnd.rn-realmedia-vbr'],\n ['rnc', 'application/relax-ng-compact-syntax'],\n ['rng', 'application/xml'],\n ['roa', 'application/rpki-roa'],\n ['roff', 'text/troff'],\n ['rp9', 'application/vnd.cloanto.rp9'],\n ['rpm', 'audio/x-pn-realaudio-plugin'],\n ['rpss', 'application/vnd.nokia.radio-presets'],\n ['rpst', 'application/vnd.nokia.radio-preset'],\n ['rq', 'application/sparql-query'],\n ['rs', 'application/rls-services+xml'],\n ['rsa', 'application/x-pkcs7'],\n ['rsat', 'application/atsc-rsat+xml'],\n ['rsd', 'application/rsd+xml'],\n ['rsheet', 'application/urc-ressheet+xml'],\n ['rss', 'application/rss+xml'],\n ['rtf', 'text/rtf'],\n ['rtx', 'text/richtext'],\n ['run', 'application/x-makeself'],\n ['rusd', 'application/route-usd+xml'],\n ['rv', 'video/vnd.rn-realvideo'],\n ['s', 'text/x-asm'],\n ['s3m', 'audio/s3m'],\n ['saf', 'application/vnd.yamaha.smaf-audio'],\n ['sass', 'text/x-sass'],\n ['sbml', 'application/sbml+xml'],\n ['sc', 'application/vnd.ibm.secure-container'],\n ['scd', 'application/x-msschedule'],\n ['scm', 'application/vnd.lotus-screencam'],\n ['scq', 'application/scvp-cv-request'],\n ['scs', 'application/scvp-cv-response'],\n ['scss', 'text/x-scss'],\n ['scurl', 'text/vnd.curl.scurl'],\n ['sda', 'application/vnd.stardivision.draw'],\n ['sdc', 'application/vnd.stardivision.calc'],\n ['sdd', 'application/vnd.stardivision.impress'],\n ['sdkd', 'application/vnd.solent.sdkm+xml'],\n ['sdkm', 'application/vnd.solent.sdkm+xml'],\n ['sdp', 'application/sdp'],\n ['sdw', 'application/vnd.stardivision.writer'],\n ['sea', 'application/octet-stream'],\n ['see', 'application/vnd.seemail'],\n ['seed', 'application/vnd.fdsn.seed'],\n ['sema', 'application/vnd.sema'],\n ['semd', 'application/vnd.semd'],\n ['semf', 'application/vnd.semf'],\n ['senmlx', 'application/senml+xml'],\n ['sensmlx', 'application/sensml+xml'],\n ['ser', 'application/java-serialized-object'],\n ['setpay', 'application/set-payment-initiation'],\n ['setreg', 'application/set-registration-initiation'],\n ['sfd-hdstx', 'application/vnd.hydrostatix.sof-data'],\n ['sfs', 'application/vnd.spotfire.sfs'],\n ['sfv', 'text/x-sfv'],\n ['sgi', 'image/sgi'],\n ['sgl', 'application/vnd.stardivision.writer-global'],\n ['sgm', 'text/sgml'],\n ['sgml', 'text/sgml'],\n ['sh', 'application/x-sh'],\n ['shar', 'application/x-shar'],\n ['shex', 'text/shex'],\n ['shf', 'application/shf+xml'],\n ['shtml', 'text/html'],\n ['sid', 'image/x-mrsid-image'],\n ['sieve', 'application/sieve'],\n ['sig', 'application/pgp-signature'],\n ['sil', 'audio/silk'],\n ['silo', 'model/mesh'],\n ['sis', 'application/vnd.symbian.install'],\n ['sisx', 'application/vnd.symbian.install'],\n ['sit', 'application/x-stuffit'],\n ['sitx', 'application/x-stuffitx'],\n ['siv', 'application/sieve'],\n ['skd', 'application/vnd.koan'],\n ['skm', 'application/vnd.koan'],\n ['skp', 'application/vnd.koan'],\n ['skt', 'application/vnd.koan'],\n ['sldm', 'application/vnd.ms-powerpoint.slide.macroenabled.12'],\n ['sldx', 'application/vnd.openxmlformats-officedocument.presentationml.slide'],\n ['slim', 'text/slim'],\n ['slm', 'text/slim'],\n ['sls', 'application/route-s-tsid+xml'],\n ['slt', 'application/vnd.epson.salt'],\n ['sm', 'application/vnd.stepmania.stepchart'],\n ['smf', 'application/vnd.stardivision.math'],\n ['smi', 'application/smil'],\n ['smil', 'application/smil'],\n ['smv', 'video/x-smv'],\n ['smzip', 'application/vnd.stepmania.package'],\n ['snd', 'audio/basic'],\n ['snf', 'application/x-font-snf'],\n ['so', 'application/octet-stream'],\n ['spc', 'application/x-pkcs7-certificates'],\n ['spdx', 'text/spdx'],\n ['spf', 'application/vnd.yamaha.smaf-phrase'],\n ['spl', 'application/x-futuresplash'],\n ['spot', 'text/vnd.in3d.spot'],\n ['spp', 'application/scvp-vp-response'],\n ['spq', 'application/scvp-vp-request'],\n ['spx', 'audio/ogg'],\n ['sql', 'application/x-sql'],\n ['src', 'application/x-wais-source'],\n ['srt', 'application/x-subrip'],\n ['sru', 'application/sru+xml'],\n ['srx', 'application/sparql-results+xml'],\n ['ssdl', 'application/ssdl+xml'],\n ['sse', 'application/vnd.kodak-descriptor'],\n ['ssf', 'application/vnd.epson.ssf'],\n ['ssml', 'application/ssml+xml'],\n ['sst', 'application/octet-stream'],\n ['st', 'application/vnd.sailingtracker.track'],\n ['stc', 'application/vnd.sun.xml.calc.template'],\n ['std', 'application/vnd.sun.xml.draw.template'],\n ['stf', 'application/vnd.wt.stf'],\n ['sti', 'application/vnd.sun.xml.impress.template'],\n ['stk', 'application/hyperstudio'],\n ['stl', 'model/stl'],\n ['stpx', 'model/step+xml'],\n ['stpxz', 'model/step-xml+zip'],\n ['stpz', 'model/step+zip'],\n ['str', 'application/vnd.pg.format'],\n ['stw', 'application/vnd.sun.xml.writer.template'],\n ['styl', 'text/stylus'],\n ['stylus', 'text/stylus'],\n ['sub', 'text/vnd.dvb.subtitle'],\n ['sus', 'application/vnd.sus-calendar'],\n ['susp', 'application/vnd.sus-calendar'],\n ['sv4cpio', 'application/x-sv4cpio'],\n ['sv4crc', 'application/x-sv4crc'],\n ['svc', 'application/vnd.dvb.service'],\n ['svd', 'application/vnd.svd'],\n ['svg', 'image/svg+xml'],\n ['svgz', 'image/svg+xml'],\n ['swa', 'application/x-director'],\n ['swf', 'application/x-shockwave-flash'],\n ['swi', 'application/vnd.aristanetworks.swi'],\n ['swidtag', 'application/swid+xml'],\n ['sxc', 'application/vnd.sun.xml.calc'],\n ['sxd', 'application/vnd.sun.xml.draw'],\n ['sxg', 'application/vnd.sun.xml.writer.global'],\n ['sxi', 'application/vnd.sun.xml.impress'],\n ['sxm', 'application/vnd.sun.xml.math'],\n ['sxw', 'application/vnd.sun.xml.writer'],\n ['t', 'text/troff'],\n ['t3', 'application/x-t3vm-image'],\n ['t38', 'image/t38'],\n ['taglet', 'application/vnd.mynfc'],\n ['tao', 'application/vnd.tao.intent-module-archive'],\n ['tap', 'image/vnd.tencent.tap'],\n ['tar', 'application/x-tar'],\n ['tcap', 'application/vnd.3gpp2.tcap'],\n ['tcl', 'application/x-tcl'],\n ['td', 'application/urc-targetdesc+xml'],\n ['teacher', 'application/vnd.smart.teacher'],\n ['tei', 'application/tei+xml'],\n ['teicorpus', 'application/tei+xml'],\n ['tex', 'application/x-tex'],\n ['texi', 'application/x-texinfo'],\n ['texinfo', 'application/x-texinfo'],\n ['text', 'text/plain'],\n ['tfi', 'application/thraud+xml'],\n ['tfm', 'application/x-tex-tfm'],\n ['tfx', 'image/tiff-fx'],\n ['tga', 'image/x-tga'],\n ['tgz', 'application/x-tar'],\n ['thmx', 'application/vnd.ms-officetheme'],\n ['tif', 'image/tiff'],\n ['tiff', 'image/tiff'],\n ['tk', 'application/x-tcl'],\n ['tmo', 'application/vnd.tmobile-livetv'],\n ['toml', 'application/toml'],\n ['torrent', 'application/x-bittorrent'],\n ['tpl', 'application/vnd.groove-tool-template'],\n ['tpt', 'application/vnd.trid.tpt'],\n ['tr', 'text/troff'],\n ['tra', 'application/vnd.trueapp'],\n ['trig', 'application/trig'],\n ['trm', 'application/x-msterminal'],\n ['ts', 'video/mp2t'],\n ['tsd', 'application/timestamped-data'],\n ['tsv', 'text/tab-separated-values'],\n ['ttc', 'font/collection'],\n ['ttf', 'font/ttf'],\n ['ttl', 'text/turtle'],\n ['ttml', 'application/ttml+xml'],\n ['twd', 'application/vnd.simtech-mindmapper'],\n ['twds', 'application/vnd.simtech-mindmapper'],\n ['txd', 'application/vnd.genomatix.tuxedo'],\n ['txf', 'application/vnd.mobius.txf'],\n ['txt', 'text/plain'],\n ['u8dsn', 'message/global-delivery-status'],\n ['u8hdr', 'message/global-headers'],\n ['u8mdn', 'message/global-disposition-notification'],\n ['u8msg', 'message/global'],\n ['u32', 'application/x-authorware-bin'],\n ['ubj', 'application/ubjson'],\n ['udeb', 'application/x-debian-package'],\n ['ufd', 'application/vnd.ufdl'],\n ['ufdl', 'application/vnd.ufdl'],\n ['ulx', 'application/x-glulx'],\n ['umj', 'application/vnd.umajin'],\n ['unityweb', 'application/vnd.unity'],\n ['uoml', 'application/vnd.uoml+xml'],\n ['uri', 'text/uri-list'],\n ['uris', 'text/uri-list'],\n ['urls', 'text/uri-list'],\n ['usdz', 'model/vnd.usdz+zip'],\n ['ustar', 'application/x-ustar'],\n ['utz', 'application/vnd.uiq.theme'],\n ['uu', 'text/x-uuencode'],\n ['uva', 'audio/vnd.dece.audio'],\n ['uvd', 'application/vnd.dece.data'],\n ['uvf', 'application/vnd.dece.data'],\n ['uvg', 'image/vnd.dece.graphic'],\n ['uvh', 'video/vnd.dece.hd'],\n ['uvi', 'image/vnd.dece.graphic'],\n ['uvm', 'video/vnd.dece.mobile'],\n ['uvp', 'video/vnd.dece.pd'],\n ['uvs', 'video/vnd.dece.sd'],\n ['uvt', 'application/vnd.dece.ttml+xml'],\n ['uvu', 'video/vnd.uvvu.mp4'],\n ['uvv', 'video/vnd.dece.video'],\n ['uvva', 'audio/vnd.dece.audio'],\n ['uvvd', 'application/vnd.dece.data'],\n ['uvvf', 'application/vnd.dece.data'],\n ['uvvg', 'image/vnd.dece.graphic'],\n ['uvvh', 'video/vnd.dece.hd'],\n ['uvvi', 'image/vnd.dece.graphic'],\n ['uvvm', 'video/vnd.dece.mobile'],\n ['uvvp', 'video/vnd.dece.pd'],\n ['uvvs', 'video/vnd.dece.sd'],\n ['uvvt', 'application/vnd.dece.ttml+xml'],\n ['uvvu', 'video/vnd.uvvu.mp4'],\n ['uvvv', 'video/vnd.dece.video'],\n ['uvvx', 'application/vnd.dece.unspecified'],\n ['uvvz', 'application/vnd.dece.zip'],\n ['uvx', 'application/vnd.dece.unspecified'],\n ['uvz', 'application/vnd.dece.zip'],\n ['vbox', 'application/x-virtualbox-vbox'],\n ['vbox-extpack', 'application/x-virtualbox-vbox-extpack'],\n ['vcard', 'text/vcard'],\n ['vcd', 'application/x-cdlink'],\n ['vcf', 'text/x-vcard'],\n ['vcg', 'application/vnd.groove-vcard'],\n ['vcs', 'text/x-vcalendar'],\n ['vcx', 'application/vnd.vcx'],\n ['vdi', 'application/x-virtualbox-vdi'],\n ['vds', 'model/vnd.sap.vds'],\n ['vhd', 'application/x-virtualbox-vhd'],\n ['vis', 'application/vnd.visionary'],\n ['viv', 'video/vnd.vivo'],\n ['vlc', 'application/videolan'],\n ['vmdk', 'application/x-virtualbox-vmdk'],\n ['vob', 'video/x-ms-vob'],\n ['vor', 'application/vnd.stardivision.writer'],\n ['vox', 'application/x-authorware-bin'],\n ['vrml', 'model/vrml'],\n ['vsd', 'application/vnd.visio'],\n ['vsf', 'application/vnd.vsf'],\n ['vss', 'application/vnd.visio'],\n ['vst', 'application/vnd.visio'],\n ['vsw', 'application/vnd.visio'],\n ['vtf', 'image/vnd.valve.source.texture'],\n ['vtt', 'text/vtt'],\n ['vtu', 'model/vnd.vtu'],\n ['vxml', 'application/voicexml+xml'],\n ['w3d', 'application/x-director'],\n ['wad', 'application/x-doom'],\n ['wadl', 'application/vnd.sun.wadl+xml'],\n ['war', 'application/java-archive'],\n ['wasm', 'application/wasm'],\n ['wav', 'audio/x-wav'],\n ['wax', 'audio/x-ms-wax'],\n ['wbmp', 'image/vnd.wap.wbmp'],\n ['wbs', 'application/vnd.criticaltools.wbs+xml'],\n ['wbxml', 'application/wbxml'],\n ['wcm', 'application/vnd.ms-works'],\n ['wdb', 'application/vnd.ms-works'],\n ['wdp', 'image/vnd.ms-photo'],\n ['weba', 'audio/webm'],\n ['webapp', 'application/x-web-app-manifest+json'],\n ['webm', 'video/webm'],\n ['webmanifest', 'application/manifest+json'],\n ['webp', 'image/webp'],\n ['wg', 'application/vnd.pmi.widget'],\n ['wgt', 'application/widget'],\n ['wks', 'application/vnd.ms-works'],\n ['wm', 'video/x-ms-wm'],\n ['wma', 'audio/x-ms-wma'],\n ['wmd', 'application/x-ms-wmd'],\n ['wmf', 'image/wmf'],\n ['wml', 'text/vnd.wap.wml'],\n ['wmlc', 'application/wmlc'],\n ['wmls', 'text/vnd.wap.wmlscript'],\n ['wmlsc', 'application/vnd.wap.wmlscriptc'],\n ['wmv', 'video/x-ms-wmv'],\n ['wmx', 'video/x-ms-wmx'],\n ['wmz', 'application/x-msmetafile'],\n ['woff', 'font/woff'],\n ['woff2', 'font/woff2'],\n ['word', 'application/msword'],\n ['wpd', 'application/vnd.wordperfect'],\n ['wpl', 'application/vnd.ms-wpl'],\n ['wps', 'application/vnd.ms-works'],\n ['wqd', 'application/vnd.wqd'],\n ['wri', 'application/x-mswrite'],\n ['wrl', 'model/vrml'],\n ['wsc', 'message/vnd.wfa.wsc'],\n ['wsdl', 'application/wsdl+xml'],\n ['wspolicy', 'application/wspolicy+xml'],\n ['wtb', 'application/vnd.webturbo'],\n ['wvx', 'video/x-ms-wvx'],\n ['x3d', 'model/x3d+xml'],\n ['x3db', 'model/x3d+fastinfoset'],\n ['x3dbz', 'model/x3d+binary'],\n ['x3dv', 'model/x3d-vrml'],\n ['x3dvz', 'model/x3d+vrml'],\n ['x3dz', 'model/x3d+xml'],\n ['x32', 'application/x-authorware-bin'],\n ['x_b', 'model/vnd.parasolid.transmit.binary'],\n ['x_t', 'model/vnd.parasolid.transmit.text'],\n ['xaml', 'application/xaml+xml'],\n ['xap', 'application/x-silverlight-app'],\n ['xar', 'application/vnd.xara'],\n ['xav', 'application/xcap-att+xml'],\n ['xbap', 'application/x-ms-xbap'],\n ['xbd', 'application/vnd.fujixerox.docuworks.binder'],\n ['xbm', 'image/x-xbitmap'],\n ['xca', 'application/xcap-caps+xml'],\n ['xcs', 'application/calendar+xml'],\n ['xdf', 'application/xcap-diff+xml'],\n ['xdm', 'application/vnd.syncml.dm+xml'],\n ['xdp', 'application/vnd.adobe.xdp+xml'],\n ['xdssc', 'application/dssc+xml'],\n ['xdw', 'application/vnd.fujixerox.docuworks'],\n ['xel', 'application/xcap-el+xml'],\n ['xenc', 'application/xenc+xml'],\n ['xer', 'application/patch-ops-error+xml'],\n ['xfdf', 'application/vnd.adobe.xfdf'],\n ['xfdl', 'application/vnd.xfdl'],\n ['xht', 'application/xhtml+xml'],\n ['xhtml', 'application/xhtml+xml'],\n ['xhvml', 'application/xv+xml'],\n ['xif', 'image/vnd.xiff'],\n ['xl', 'application/excel'],\n ['xla', 'application/vnd.ms-excel'],\n ['xlam', 'application/vnd.ms-excel.addin.macroEnabled.12'],\n ['xlc', 'application/vnd.ms-excel'],\n ['xlf', 'application/xliff+xml'],\n ['xlm', 'application/vnd.ms-excel'],\n ['xls', 'application/vnd.ms-excel'],\n ['xlsb', 'application/vnd.ms-excel.sheet.binary.macroEnabled.12'],\n ['xlsm', 'application/vnd.ms-excel.sheet.macroEnabled.12'],\n ['xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],\n ['xlt', 'application/vnd.ms-excel'],\n ['xltm', 'application/vnd.ms-excel.template.macroEnabled.12'],\n ['xltx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.template'],\n ['xlw', 'application/vnd.ms-excel'],\n ['xm', 'audio/xm'],\n ['xml', 'application/xml'],\n ['xns', 'application/xcap-ns+xml'],\n ['xo', 'application/vnd.olpc-sugar'],\n ['xop', 'application/xop+xml'],\n ['xpi', 'application/x-xpinstall'],\n ['xpl', 'application/xproc+xml'],\n ['xpm', 'image/x-xpixmap'],\n ['xpr', 'application/vnd.is-xpr'],\n ['xps', 'application/vnd.ms-xpsdocument'],\n ['xpw', 'application/vnd.intercon.formnet'],\n ['xpx', 'application/vnd.intercon.formnet'],\n ['xsd', 'application/xml'],\n ['xsl', 'application/xml'],\n ['xslt', 'application/xslt+xml'],\n ['xsm', 'application/vnd.syncml+xml'],\n ['xspf', 'application/xspf+xml'],\n ['xul', 'application/vnd.mozilla.xul+xml'],\n ['xvm', 'application/xv+xml'],\n ['xvml', 'application/xv+xml'],\n ['xwd', 'image/x-xwindowdump'],\n ['xyz', 'chemical/x-xyz'],\n ['xz', 'application/x-xz'],\n ['yaml', 'text/yaml'],\n ['yang', 'application/yang'],\n ['yin', 'application/yin+xml'],\n ['yml', 'text/yaml'],\n ['ymp', 'text/x-suse-ymp'],\n ['z', 'application/x-compress'],\n ['z1', 'application/x-zmachine'],\n ['z2', 'application/x-zmachine'],\n ['z3', 'application/x-zmachine'],\n ['z4', 'application/x-zmachine'],\n ['z5', 'application/x-zmachine'],\n ['z6', 'application/x-zmachine'],\n ['z7', 'application/x-zmachine'],\n ['z8', 'application/x-zmachine'],\n ['zaz', 'application/vnd.zzazz.deck+xml'],\n ['zip', 'application/zip'],\n ['zir', 'application/vnd.zul'],\n ['zirz', 'application/vnd.zul'],\n ['zmm', 'application/vnd.handheld-entertainment+xml'],\n ['zsh', 'text/x-scriptzsh']\n]);\nexport function toFileWithPath(file, path, h) {\n const f = withMimeType(file);\n const { webkitRelativePath } = file;\n const p = typeof path === 'string'\n ? path\n // If <input webkitdirectory> is set,\n // the File will have a {webkitRelativePath} property\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory\n : typeof webkitRelativePath === 'string' && webkitRelativePath.length > 0\n ? webkitRelativePath\n : `./${file.name}`;\n if (typeof f.path !== 'string') { // on electron, path is already set to the absolute path\n setObjProp(f, 'path', p);\n }\n if (h !== undefined) {\n Object.defineProperty(f, 'handle', {\n value: h,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n // Always populate a relative path so that even electron apps have access to a relativePath value\n setObjProp(f, 'relativePath', p);\n return f;\n}\nfunction withMimeType(file) {\n const { name } = file;\n const hasExtension = name && name.lastIndexOf('.') !== -1;\n if (hasExtension && !file.type) {\n const ext = name.split('.')\n .pop().toLowerCase();\n const type = COMMON_MIME_TYPES.get(ext);\n if (type) {\n Object.defineProperty(file, 'type', {\n value: type,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n }\n return file;\n}\nfunction setObjProp(f, key, value) {\n Object.defineProperty(f, key, {\n value,\n writable: false,\n configurable: false,\n enumerable: true\n });\n}\n//# sourceMappingURL=file.js.map","import { __awaiter } from \"tslib\";\nimport { toFileWithPath } from './file';\nconst FILES_TO_IGNORE = [\n // Thumbnail cache files for macOS and Windows\n '.DS_Store', // macOs\n 'Thumbs.db' // Windows\n];\n/**\n * Convert a DragEvent's DataTrasfer object to a list of File objects\n * NOTE: If some of the items are folders,\n * everything will be flattened and placed in the same list but the paths will be kept as a {path} property.\n *\n * EXPERIMENTAL: A list of https://developer.mozilla.org/en-US/docs/Web/API/FileSystemHandle objects can also be passed as an arg\n * and a list of File objects will be returned.\n *\n * @param evt\n */\nexport function fromEvent(evt) {\n return __awaiter(this, void 0, void 0, function* () {\n if (isObject(evt) && isDataTransfer(evt.dataTransfer)) {\n return getDataTransferFiles(evt.dataTransfer, evt.type);\n }\n else if (isChangeEvt(evt)) {\n return getInputFiles(evt);\n }\n else if (Array.isArray(evt) && evt.every(item => 'getFile' in item && typeof item.getFile === 'function')) {\n return getFsHandleFiles(evt);\n }\n return [];\n });\n}\nfunction isDataTransfer(value) {\n return isObject(value);\n}\nfunction isChangeEvt(value) {\n return isObject(value) && isObject(value.target);\n}\nfunction isObject(v) {\n return typeof v === 'object' && v !== null;\n}\nfunction getInputFiles(evt) {\n return fromList(evt.target.files).map(file => toFileWithPath(file));\n}\n// Ee expect each handle to be https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle\nfunction getFsHandleFiles(handles) {\n return __awaiter(this, void 0, void 0, function* () {\n const files = yield Promise.all(handles.map(h => h.getFile()));\n return files.map(file => toFileWithPath(file));\n });\n}\nfunction getDataTransferFiles(dt, type) {\n return __awaiter(this, void 0, void 0, function* () {\n // IE11 does not support dataTransfer.items\n // See https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/items#Browser_compatibility\n if (dt.items) {\n const items = fromList(dt.items)\n .filter(item => item.kind === 'file');\n // According to https://html.spec.whatwg.org/multipage/dnd.html#dndevents,\n // only 'dragstart' and 'drop' has access to the data (source node)\n if (type !== 'drop') {\n return items;\n }\n const files = yield Promise.all(items.map(toFilePromises));\n return noIgnoredFiles(flatten(files));\n }\n return noIgnoredFiles(fromList(dt.files)\n .map(file => toFileWithPath(file)));\n });\n}\nfunction noIgnoredFiles(files) {\n return files.filter(file => FILES_TO_IGNORE.indexOf(file.name) === -1);\n}\n// IE11 does not support Array.from()\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Browser_compatibility\n// https://developer.mozilla.org/en-US/docs/Web/API/FileList\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList\nfunction fromList(items) {\n if (items === null) {\n return [];\n }\n const files = [];\n // tslint:disable: prefer-for-of\n for (let i = 0; i < items.length; i++) {\n const file = items[i];\n files.push(file);\n }\n return files;\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem\nfunction toFilePromises(item) {\n if (typeof item.webkitGetAsEntry !== 'function') {\n return fromDataTransferItem(item);\n }\n const entry = item.webkitGetAsEntry();\n // Safari supports dropping an image node from a different window and can be retrieved using\n // the DataTransferItem.getAsFile() API\n // NOTE: FileSystemEntry.file() throws if trying to get the file\n if (entry && entry.isDirectory) {\n return fromDirEntry(entry);\n }\n return fromDataTransferItem(item, entry);\n}\nfunction flatten(items) {\n return items.reduce((acc, files) => [\n ...acc,\n ...(Array.isArray(files) ? flatten(files) : [files])\n ], []);\n}\nfunction fromDataTransferItem(item, entry) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n // Check if we're in a secure context; due to a bug in Chrome (as far as we know)\n // the browser crashes when calling this API (yet to be confirmed as a consistent behaviour).\n //\n // See:\n // - https://issues.chromium.org/issues/40186242\n // - https://github.com/react-dropzone/react-dropzone/issues/1397\n if (globalThis.isSecureContext && typeof item.getAsFileSystemHandle === 'function') {\n const h = yield item.getAsFileSystemHandle();\n if (h === null) {\n throw new Error(`${item} is not a File`);\n }\n // It seems that the handle can be `undefined` (see https://github.com/react-dropzone/file-selector/issues/120),\n // so we check if it isn't; if it is, the code path continues to the next API (`getAsFile`).\n if (h !== undefined) {\n const file = yield h.getFile();\n file.handle = h;\n return toFileWithPath(file);\n }\n }\n const file = item.getAsFile();\n if (!file) {\n throw new Error(`${item} is not a File`);\n }\n const fwp = toFileWithPath(file, (_a = entry === null || entry === void 0 ? void 0 : entry.fullPath) !== null && _a !== void 0 ? _a : undefined);\n return fwp;\n });\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry\nfunction fromEntry(entry) {\n return __awaiter(this, void 0, void 0, function* () {\n return entry.isDirectory ? fromDirEntry(entry) : fromFileEntry(entry);\n });\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry\nfunction fromDirEntry(entry) {\n const reader = entry.createReader();\n return new Promise((resolve, reject) => {\n const entries = [];\n function readEntries() {\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/createReader\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries\n reader.readEntries((batch) => __awaiter(this, void 0, void 0, function* () {\n if (!batch.length) {\n // Done reading directory\n try {\n const files = yield Promise.all(entries);\n resolve(files);\n }\n catch (err) {\n reject(err);\n }\n }\n else {\n const items = Promise.all(batch.map(fromEntry));\n entries.push(items);\n // Continue reading\n readEntries();\n }\n }), (err) => {\n reject(err);\n });\n }\n readEntries();\n });\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry\nfunction fromFileEntry(entry) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n entry.file((file) => {\n const fwp = toFileWithPath(file, entry.fullPath);\n resolve(fwp);\n }, (err) => {\n reject(err);\n });\n });\n });\n}\n//# sourceMappingURL=file-selector.js.map","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n\n if (acceptedFilesArray.length === 0) {\n return true;\n }\n\n var fileName = file.name || '';\n var mimeType = (file.type || '').toLowerCase();\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim().toLowerCase();\n\n if (validType.charAt(0) === '.') {\n return fileName.toLowerCase().endsWith(validType);\n } else if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n\n return mimeType === validType;\n });\n }\n\n return true;\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport _accepts from \"attr-accept\";\nvar accepts = typeof _accepts === \"function\" ? _accepts : _accepts.default; // Error codes\n\nexport var FILE_INVALID_TYPE = \"file-invalid-type\";\nexport var FILE_TOO_LARGE = \"file-too-large\";\nexport var FILE_TOO_SMALL = \"file-too-small\";\nexport var TOO_MANY_FILES = \"too-many-files\";\nexport var ErrorCode = {\n FileInvalidType: FILE_INVALID_TYPE,\n FileTooLarge: FILE_TOO_LARGE,\n FileTooSmall: FILE_TOO_SMALL,\n TooManyFiles: TOO_MANY_FILES\n};\n/**\n *\n * @param {string} accept\n */\n\nexport var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr() {\n var accept = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var acceptArr = accept.split(\",\");\n var msg = acceptArr.length > 1 ? \"one of \".concat(acceptArr.join(\", \")) : acceptArr[0];\n return {\n code: FILE_INVALID_TYPE,\n message: \"File type must be \".concat(msg)\n };\n};\nexport var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {\n return {\n code: FILE_TOO_LARGE,\n message: \"File is larger than \".concat(maxSize, \" \").concat(maxSize === 1 ? \"byte\" : \"bytes\")\n };\n};\nexport var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {\n return {\n code: FILE_TOO_SMALL,\n message: \"File is smaller than \".concat(minSize, \" \").concat(minSize === 1 ? \"byte\" : \"bytes\")\n };\n};\nexport var TOO_MANY_FILES_REJECTION = {\n code: TOO_MANY_FILES,\n message: \"Too many files\"\n};\n/**\n * Check if file is accepted.\n *\n * Firefox versions prior to 53 return a bogus MIME type for every file drag,\n * so dragovers with that MIME type will always be accepted.\n *\n * @param {File} file\n * @param {string} accept\n * @returns\n */\n\nexport function fileAccepted(file, accept) {\n var isAcceptable = file.type === \"application/x-moz-file\" || accepts(file, accept);\n return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];\n}\nexport function fileMatchSize(file, minSize, maxSize) {\n if (isDefined(file.size)) {\n if (isDefined(minSize) && isDefined(maxSize)) {\n if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];\n } else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n }\n\n return [true, null];\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n/**\n *\n * @param {object} options\n * @param {File[]} options.files\n * @param {string} [options.accept]\n * @param {number} [options.minSize]\n * @param {number} [options.maxSize]\n * @param {boolean} [options.multiple]\n * @param {number} [options.maxFiles]\n * @param {(f: File) => FileError|FileError[]|null} [options.validator]\n * @returns\n */\n\n\nexport function allFilesAccepted(_ref) {\n var files = _ref.files,\n accept = _ref.accept,\n minSize = _ref.minSize,\n maxSize = _ref.maxSize,\n multiple = _ref.multiple,\n maxFiles = _ref.maxFiles,\n validator = _ref.validator;\n\n if (!multiple && files.length > 1 || multiple && maxFiles >= 1 && files.length > maxFiles) {\n return false;\n }\n\n return files.every(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 1),\n accepted = _fileAccepted2[0];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 1),\n sizeMatch = _fileMatchSize2[0];\n\n var customErrors = validator ? validator(file) : null;\n return accepted && sizeMatch && !customErrors;\n });\n} // React's synthetic events has event.isPropagationStopped,\n// but to remain compatibility with other libs (Preact) fall back\n// to check event.cancelBubble\n\nexport function isPropagationStopped(event) {\n if (typeof event.isPropagationStopped === \"function\") {\n return event.isPropagationStopped();\n } else if (typeof event.cancelBubble !== \"undefined\") {\n return event.cancelBubble;\n }\n\n return false;\n}\nexport function isEvtWithFiles(event) {\n if (!event.dataTransfer) {\n return !!event.target && !!event.target.files;\n } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types\n // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file\n\n\n return Array.prototype.some.call(event.dataTransfer.types, function (type) {\n return type === \"Files\" || type === \"application/x-moz-file\";\n });\n}\nexport function isKindFile(item) {\n return _typeof(item) === \"object\" && item !== null && item.kind === \"file\";\n} // allow the entire document to be a drag target\n\nexport function onDocumentDragOver(event) {\n event.preventDefault();\n}\n\nfunction isIe(userAgent) {\n return userAgent.indexOf(\"MSIE\") !== -1 || userAgent.indexOf(\"Trident/\") !== -1;\n}\n\nfunction isEdge(userAgent) {\n return userAgent.indexOf(\"Edge/\") !== -1;\n}\n\nexport function isIeOrEdge() {\n var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;\n return isIe(userAgent) || isEdge(userAgent);\n}\n/**\n * This is intended to be used to compose event handlers\n * They are executed in order until one of them calls `event.isPropagationStopped()`.\n * Note that the check is done on the first invoke too,\n * meaning that if propagation was stopped before invoking the fns,\n * no handlers will be executed.\n *\n * @param {Function} fns the event hanlder functions\n * @return {Function} the event handler to add to an element\n */\n\nexport function composeEventHandlers() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return fns.some(function (fn) {\n if (!isPropagationStopped(event) && fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return isPropagationStopped(event);\n });\n };\n}\n/**\n * canUseFileSystemAccessAPI checks if the [File System Access API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)\n * is supported by the browser.\n * @returns {boolean}\n */\n\nexport function canUseFileSystemAccessAPI() {\n return \"showOpenFilePicker\" in window;\n}\n/**\n * Convert the `{accept}` dropzone prop to the\n * `{types}` option for https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n *\n * @param {AcceptProp} accept\n * @returns {{accept: string[]}[]}\n */\n\nexport function pickerOptionsFromAccept(accept) {\n if (isDefined(accept)) {\n var acceptForPicker = Object.entries(accept).filter(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n mimeType = _ref3[0],\n ext = _ref3[1];\n\n var ok = true;\n\n if (!isMIMEType(mimeType)) {\n console.warn(\"Skipped \\\"\".concat(mimeType, \"\\\" because it is not a valid MIME type. Check https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types for a list of valid MIME types.\"));\n ok = false;\n }\n\n if (!Array.isArray(ext) || !ext.every(isExt)) {\n console.warn(\"Skipped \\\"\".concat(mimeType, \"\\\" because an invalid file extension was provided.\"));\n ok = false;\n }\n\n return ok;\n }).reduce(function (agg, _ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n mimeType = _ref5[0],\n ext = _ref5[1];\n\n return _objectSpread(_objectSpread({}, agg), {}, _defineProperty({}, mimeType, ext));\n }, {});\n return [{\n // description is required due to https://crbug.com/1264708\n description: \"Files\",\n accept: acceptForPicker\n }];\n }\n\n return accept;\n}\n/**\n * Convert the `{accept}` dropzone prop to an array of MIME types/extensions.\n * @param {AcceptProp} accept\n * @returns {string}\n */\n\nexport function acceptPropAsAcceptAttr(accept) {\n if (isDefined(accept)) {\n return Object.entries(accept).reduce(function (a, _ref6) {\n var _ref7 = _slicedToArray(_ref6, 2),\n mimeType = _ref7[0],\n ext = _ref7[1];\n\n return [].concat(_toConsumableArray(a), [mimeType], _toConsumableArray(ext));\n }, []) // Silently discard invalid entries as pickerOptionsFromAccept warns about these\n .filter(function (v) {\n return isMIMEType(v) || isExt(v);\n }).join(\",\");\n }\n\n return undefined;\n}\n/**\n * Check if v is an exception caused by aborting a request (e.g window.showOpenFilePicker()).\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.\n * @param {any} v\n * @returns {boolean} True if v is an abort exception.\n */\n\nexport function isAbort(v) {\n return v instanceof DOMException && (v.name === \"AbortError\" || v.code === v.ABORT_ERR);\n}\n/**\n * Check if v is a security error.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.\n * @param {any} v\n * @returns {boolean} True if v is a security error.\n */\n\nexport function isSecurityError(v) {\n return v instanceof DOMException && (v.name === \"SecurityError\" || v.code === v.SECURITY_ERR);\n}\n/**\n * Check if v is a MIME type string.\n *\n * See accepted format: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers.\n *\n * @param {string} v\n */\n\nexport function isMIMEType(v) {\n return v === \"audio/*\" || v === \"video/*\" || v === \"image/*\" || v === \"text/*\" || v === \"application/*\" || /\\w+\\/[-+.\\w]+/g.test(v);\n}\n/**\n * Check if v is a file extension.\n * @param {string} v\n */\n\nexport function isExt(v) {\n return /^.*\\.[\\w]+$/.test(v);\n}\n/**\n * @typedef {Object.<string, string[]>} AcceptProp\n */\n\n/**\n * @typedef {object} FileError\n * @property {string} message\n * @property {ErrorCode|string} code\n */\n\n/**\n * @typedef {\"file-invalid-type\"|\"file-too-large\"|\"file-too-small\"|\"too-many-files\"} ErrorCode\n */","var _excluded = [\"children\"],\n _excluded2 = [\"open\"],\n _excluded3 = [\"refKey\", \"role\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onClick\", \"onDragEnter\", \"onDragOver\", \"onDragLeave\", \"onDrop\"],\n _excluded4 = [\"refKey\", \"onChange\", \"onClick\"];\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* eslint prefer-template: 0 */\nimport React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { fromEvent } from \"file-selector\";\nimport { acceptPropAsAcceptAttr, allFilesAccepted, composeEventHandlers, fileAccepted, fileMatchSize, canUseFileSystemAccessAPI, isAbort, isEvtWithFiles, isIeOrEdge, isPropagationStopped, isSecurityError, onDocumentDragOver, pickerOptionsFromAccept, TOO_MANY_FILES_REJECTION } from \"./utils/index\";\n/**\n * Convenience wrapper component for the `useDropzone` hook\n *\n * ```jsx\n * <Dropzone>\n * {({getRootProps, getInputProps}) => (\n * <div {...getRootProps()}>\n * <input {...getInputProps()} />\n * <p>Drag 'n' drop some files here, or click to select files</p>\n * </div>\n * )}\n * </Dropzone>\n * ```\n */\n\nvar Dropzone = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n params = _objectWithoutProperties(_ref, _excluded);\n\n var _useDropzone = useDropzone(params),\n open = _useDropzone.open,\n props = _objectWithoutProperties(_useDropzone, _excluded2);\n\n useImperativeHandle(ref, function () {\n return {\n open: open\n };\n }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element\n\n return /*#__PURE__*/React.createElement(Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {\n open: open\n })));\n});\nDropzone.displayName = \"Dropzone\"; // Add default props for react-docgen\n\nvar defaultProps = {\n disabled: false,\n getFilesFromEvent: fromEvent,\n maxSize: Infinity,\n minSize: 0,\n multiple: true,\n maxFiles: 0,\n preventDropOnDocument: true,\n noClick: false,\n noKeyboard: false,\n noDrag: false,\n noDragEventsBubbling: false,\n validator: null,\n useFsAccessApi: false,\n autoFocus: false\n};\nDropzone.defaultProps = defaultProps;\nDropzone.propTypes = {\n /**\n * Render function that exposes the dropzone state and prop getter fns\n *\n * @param {object} params\n * @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render\n * @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render\n * @param {Function} params.open Open the native file selection dialog\n * @param {boolean} params.isFocused Dropzone area is in focus\n * @param {boolean} params.isFileDialogActive File dialog is opened\n * @param {boolean} params.isDragActive Active drag is in progress\n * @param {boolean} params.isDragAccept Dragged files are accepted\n * @param {boolean} params.isDragReject Some dragged files are rejected\n * @param {File[]} params.acceptedFiles Accepted files\n * @param {FileRejection[]} params.fileRejections Rejected files and why they were rejected\n */\n children: PropTypes.func,\n\n /**\n * Set accepted file types.\n * Checkout https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker types option for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all (https://github.com/react-dropzone/react-dropzone/issues/276).\n */\n accept: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.string)),\n\n /**\n * Allow drag 'n' drop (or selection from the file dialog) of multiple files\n */\n multiple: PropTypes.bool,\n\n /**\n * If false, allow dropped items to take over the current browser window\n */\n preventDropOnDocument: PropTypes.bool,\n\n /**\n * If true, disables click to open the native file selection dialog\n */\n noClick: PropTypes.bool,\n\n /**\n * If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n */\n noKeyboard: PropTypes.bool,\n\n /**\n * If true, disables drag 'n' drop\n */\n noDrag: PropTypes.bool,\n\n /**\n * If true, stops drag event propagation to parents\n */\n noDragEventsBubbling: PropTypes.bool,\n\n /**\n * Minimum file size (in bytes)\n */\n minSize: PropTypes.number,\n\n /**\n * Maximum file size (in bytes)\n */\n maxSize: PropTypes.number,\n\n /**\n * Maximum accepted number of files\n * The default value is 0 which means there is no limitation to how many files are accepted.\n */\n maxFiles: PropTypes.number,\n\n /**\n * Enable/disable the dropzone\n */\n disabled: PropTypes.bool,\n\n /**\n * Use this to provide a custom file aggregator\n *\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n getFilesFromEvent: PropTypes.func,\n\n /**\n * Cb for when closing the file dialog with no selection\n */\n onFileDialogCancel: PropTypes.func,\n\n /**\n * Cb for when opening the file dialog\n */\n onFileDialogOpen: PropTypes.func,\n\n /**\n * Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `<input type=\"file\">` click event.\n */\n useFsAccessApi: PropTypes.bool,\n\n /**\n * Set to true to focus the root element on render\n */\n autoFocus: PropTypes.bool,\n\n /**\n * Cb for when the `dragenter` event occurs.\n *\n * @param {DragEvent} event\n */\n onDragEnter: PropTypes.func,\n\n /**\n * Cb for when the `dragleave` event occurs\n *\n * @param {DragEvent} event\n */\n onDragLeave: PropTypes.func,\n\n /**\n * Cb for when the `dragover` event occurs\n *\n * @param {DragEvent} event\n */\n onDragOver: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n *\n * @param {File[]} acceptedFiles\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n onDrop: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are accepted, this callback is not invoked.\n *\n * @param {File[]} files\n * @param {(DragEvent|Event)} event\n */\n onDropAccepted: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are rejected, this callback is not invoked.\n *\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event\n */\n onDropRejected: PropTypes.func,\n\n /**\n * Cb for when there's some error from any of the promises.\n *\n * @param {Error} error\n */\n onError: PropTypes.func,\n\n /**\n * Custom validation function. It must return null if there's no errors.\n * @param {File} file\n * @returns {FileError|FileError[]|null}\n */\n validator: PropTypes.func\n};\nexport default Dropzone;\n/**\n * A function that is invoked for the `dragenter`,\n * `dragover` and `dragleave` events.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dragCb\n * @param {DragEvent} event\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dropCb\n * @param {File[]} acceptedFiles List of accepted files\n * @param {FileRejection[]} fileRejections List of rejected files and why they were rejected\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are files (such as link, text, etc.).\n *\n * @callback dropAcceptedCb\n * @param {File[]} files List of accepted files that meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n *\n * @callback dropRejectedCb\n * @param {File[]} files List of rejected files that do not meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is used aggregate files,\n * in a asynchronous fashion, from drag or input change events.\n *\n * @callback getFilesFromEvent\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n * @returns {(File[]|Promise<File[]>)}\n */\n\n/**\n * An object with the current dropzone state.\n *\n * @typedef {object} DropzoneState\n * @property {boolean} isFocused Dropzone area is in focus\n * @property {boolean} isFileDialogActive File dialog is opened\n * @property {boolean} isDragActive Active drag is in progress\n * @property {boolean} isDragAccept Dragged files are accepted\n * @property {boolean} isDragReject Some dragged files are rejected\n * @property {File[]} acceptedFiles Accepted files\n * @property {FileRejection[]} fileRejections Rejected files and why they were rejected\n */\n\n/**\n * An object with the dropzone methods.\n *\n * @typedef {object} DropzoneMethods\n * @property {Function} getRootProps Returns the props you should apply to the root drop container you render\n * @property {Function} getInputProps Returns the props you should apply to hidden file input you render\n * @property {Function} open Open the native file selection dialog\n */\n\nvar initialState = {\n isFocused: false,\n isFileDialogActive: false,\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false,\n acceptedFiles: [],\n fileRejections: []\n};\n/**\n * A React hook that creates a drag 'n' drop area.\n *\n * ```jsx\n * function MyDropzone(props) {\n * const {getRootProps, getInputProps} = useDropzone({\n * onDrop: acceptedFiles => {\n * // do something with the File objects, e.g. upload to some server\n * }\n * });\n * return (\n * <div {...getRootProps()}>\n * <input {...getInputProps()} />\n * <p>Drag and drop some files here, or click to select files</p>\n * </div>\n * )\n * }\n * ```\n *\n * @function useDropzone\n *\n * @param {object} props\n * @param {import(\"./utils\").AcceptProp} [props.accept] Set accepted file types.\n * Checkout https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker types option for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all (https://github.com/react-dropzone/react-dropzone/issues/276).\n * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files\n * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window\n * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog\n * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop\n * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents\n * @param {number} [props.minSize=0] Minimum file size (in bytes)\n * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)\n * @param {boolean} [props.disabled=false] Enable/disable the dropzone\n * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator\n * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection\n * @param {boolean} [props.useFsAccessApi] Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `<input type=\"file\">` click event.\n * @param {boolean} autoFocus Set to true to auto focus the root element.\n * @param {Function} [props.onFileDialogOpen] Cb for when opening the file dialog\n * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.\n * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs\n * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs\n * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be an object with keys as a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) and the value an array of file extensions (optional).\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n * @param {dropAcceptedCb} [props.onDropAccepted]\n * @param {dropRejectedCb} [props.onDropRejected]\n * @param {(error: Error) => void} [props.onError]\n *\n * @returns {DropzoneState & DropzoneMethods}\n */\n\nexport function useDropzone() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),\n accept = _defaultProps$props.accept,\n disabled = _defaultProps$props.disabled,\n getFilesFromEvent = _defaultProps$props.getFilesFromEvent,\n maxSize = _defaultProps$props.maxSize,\n minSize = _defaultProps$props.minSize,\n multiple = _defaultProps$props.multiple,\n maxFiles = _defaultProps$props.maxFiles,\n onDragEnter = _defaultProps$props.onDragEnter,\n onDragLeave = _defaultProps$props.onDragLeave,\n onDragOver = _defaultProps$props.onDragOver,\n onDrop = _defaultProps$props.onDrop,\n onDropAccepted = _defaultProps$props.onDropAccepted,\n onDropRejected = _defaultProps$props.onDropRejected,\n onFileDialogCancel = _defaultProps$props.onFileDialogCancel,\n onFileDialogOpen = _defaultProps$props.onFileDialogOpen,\n useFsAccessApi = _defaultProps$props.useFsAccessApi,\n autoFocus = _defaultProps$props.autoFocus,\n preventDropOnDocument = _defaultProps$props.preventDropOnDocument,\n noClick = _defaultProps$props.noClick,\n noKeyboard = _defaultProps$props.noKeyboard,\n noDrag = _defaultProps$props.noDrag,\n noDragEventsBubbling = _defaultProps$props.noDragEventsBubbling,\n onError = _defaultProps$props.onError,\n validator = _defaultProps$props.validator;\n\n var acceptAttr = useMemo(function () {\n return acceptPropAsAcceptAttr(accept);\n }, [accept]);\n var pickerTypes = useMemo(function () {\n return pickerOptionsFromAccept(accept);\n }, [accept]);\n var onFileDialogOpenCb = useMemo(function () {\n return typeof onFileDialogOpen === \"function\" ? onFileDialogOpen : noop;\n }, [onFileDialogOpen]);\n var onFileDialogCancelCb = useMemo(function () {\n return typeof onFileDialogCancel === \"function\" ? onFileDialogCancel : noop;\n }, [onFileDialogCancel]);\n /**\n * @constant\n * @type {React.MutableRefObject<HTMLElement>}\n */\n\n var rootRef = useRef(null);\n var inputRef = useRef(null);\n\n var _useReducer = useReducer(reducer, initialState),\n _useReducer2 = _slicedToArray(_useReducer, 2),\n state = _useReducer2[0],\n dispatch = _useReducer2[1];\n\n var isFocused = state.isFocused,\n isFileDialogActive = state.isFileDialogActive;\n var fsAccessApiWorksRef = useRef(typeof window !== \"undefined\" && window.isSecureContext && useFsAccessApi && canUseFileSystemAccessAPI()); // Update file dialog active state when the window is focused on\n\n var onWindowFocus = function onWindowFocus() {\n // Execute the timeout only if the file dialog is opened in the browser\n if (!fsAccessApiWorksRef.current && isFileDialogActive) {\n setTimeout(function () {\n if (inputRef.current) {\n var files = inputRef.current.files;\n\n if (!files.length) {\n dispatch({\n type: \"closeDialog\"\n });\n onFileDialogCancelCb();\n }\n }\n }, 300);\n }\n };\n\n useEffect(function () {\n window.addEventListener(\"focus\", onWindowFocus, false);\n return function () {\n window.removeEventListener(\"focus\", onWindowFocus, false);\n };\n }, [inputRef, isFileDialogActive, onFileDialogCancelCb, fsAccessApiWorksRef]);\n var dragTargetsRef = useRef([]);\n\n var onDocumentDrop = function onDocumentDrop(event) {\n if (rootRef.current && rootRef.current.contains(event.target)) {\n // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n return;\n }\n\n event.preventDefault();\n dragTargetsRef.current = [];\n };\n\n useEffect(function () {\n if (preventDropOnDocument) {\n document.addEventListener(\"dragover\", onDocumentDragOver, false);\n document.addEventListener(\"drop\", onDocumentDrop, false);\n }\n\n return function () {\n if (preventDropOnDocument) {\n document.removeEventListener(\"dragover\", onDocumentDragOver);\n document.removeEventListener(\"drop\", onDocumentDrop);\n }\n };\n }, [rootRef, preventDropOnDocument]); // Auto focus the root when autoFocus is true\n\n useEffect(function () {\n if (!disabled && autoFocus && rootRef.current) {\n rootRef.current.focus();\n }\n\n return function () {};\n }, [rootRef, autoFocus, disabled]);\n var onErrCb = useCallback(function (e) {\n if (onError) {\n onError(e);\n } else {\n // Let the user know something's gone wrong if they haven't provided the onError cb.\n console.error(e);\n }\n }, [onError]);\n var onDragEnterCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n var fileCount = files.length;\n var isDragAccept = fileCount > 0 && allFilesAccepted({\n files: files,\n accept: acceptAttr,\n minSize: minSize,\n maxSize: maxSize,\n multiple: multiple,\n maxFiles: maxFiles,\n validator: validator\n });\n var isDragReject = fileCount > 0 && !isDragAccept;\n dispatch({\n isDragAccept: isDragAccept,\n isDragReject: isDragReject,\n isDragActive: true,\n type: \"setDraggedFiles\"\n });\n\n if (onDragEnter) {\n onDragEnter(event);\n }\n }).catch(function (e) {\n return onErrCb(e);\n });\n }\n }, [getFilesFromEvent, onDragEnter, onErrCb, noDragEventsBubbling, acceptAttr, minSize, maxSize, multiple, maxFiles, validator]);\n var onDragOverCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event);\n var hasFiles = isEvtWithFiles(event);\n\n if (hasFiles && event.dataTransfer) {\n try {\n event.dataTransfer.dropEffect = \"copy\";\n } catch (_unused) {}\n /* eslint-disable-line no-empty */\n\n }\n\n if (hasFiles && onDragOver) {\n onDragOver(event);\n }\n\n return false;\n }, [onDragOver, noDragEventsBubbling]);\n var onDragLeaveCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event); // Only deactivate once the dropzone and all children have been left\n\n var targets = dragTargetsRef.current.filter(function (target) {\n return rootRef.current && rootRef.current.contains(target);\n }); // Make sure to remove a target present multiple times only once\n // (Firefox may fire dragenter/dragleave multiple times on the same element)\n\n var targetIdx = targets.indexOf(event.target);\n\n if (targetIdx !== -1) {\n targets.splice(targetIdx, 1);\n }\n\n dragTargetsRef.current = targets;\n\n if (targets.length > 0) {\n return;\n }\n\n dispatch({\n type: \"setDraggedFiles\",\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false\n });\n\n if (isEvtWithFiles(event) && onDragLeave) {\n onDragLeave(event);\n }\n }, [rootRef, onDragLeave, noDragEventsBubbling]);\n var setFiles = useCallback(function (files, event) {\n var acceptedFiles = [];\n var fileRejections = [];\n files.forEach(function (file) {\n var _fileAccepted = fileAccepted(file, acceptAttr),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 2),\n accepted = _fileAccepted2[0],\n acceptError = _fileAccepted2[1];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),\n sizeMatch = _fileMatchSize2[0],\n sizeError = _fileMatchSize2[1];\n\n var customErrors = validator ? validator(file) : null;\n\n if (accepted && sizeMatch && !customErrors) {\n acceptedFiles.push(file);\n } else {\n var errors = [acceptError, sizeError];\n\n if (customErrors) {\n errors = errors.concat(customErrors);\n }\n\n fileRejections.push({\n file: file,\n errors: errors.filter(function (e) {\n return e;\n })\n });\n }\n });\n\n if (!multiple && acceptedFiles.length > 1 || multiple && maxFiles >= 1 && acceptedFiles.length > maxFiles) {\n // Reject everything and empty accepted files\n acceptedFiles.forEach(function (file) {\n fileRejections.push({\n file: file,\n errors: [TOO_MANY_FILES_REJECTION]\n });\n });\n acceptedFiles.splice(0);\n }\n\n dispatch({\n acceptedFiles: acceptedFiles,\n fileRejections: fileRejections,\n isDragReject: fileRejections.length > 0,\n type: \"setFiles\"\n });\n\n if (onDrop) {\n onDrop(acceptedFiles, fileRejections, event);\n }\n\n if (fileRejections.length > 0 && onDropRejected) {\n onDropRejected(fileRejections, event);\n }\n\n if (acceptedFiles.length > 0 && onDropAccepted) {\n onDropAccepted(acceptedFiles, event);\n }\n }, [dispatch, multiple, acceptAttr, minSize, maxSize, maxFiles, onDrop, onDropAccepted, onDropRejected, validator]);\n var onDropCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [];\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n setFiles(files, event);\n }).catch(function (e) {\n return onErrCb(e);\n });\n }\n\n dispatch({\n type: \"reset\"\n });\n }, [getFilesFromEvent, setFiles, onErrCb, noDragEventsBubbling]); // Fn for opening the file dialog programmatically\n\n var openFileDialog = useCallback(function () {\n // No point to use FS access APIs if context is not secure\n // https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts#feature_detection\n if (fsAccessApiWorksRef.current) {\n dispatch({\n type: \"openDialog\"\n });\n onFileDialogOpenCb(); // https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n\n var opts = {\n multiple: multiple,\n types: pickerTypes\n };\n window.showOpenFilePicker(opts).then(function (handles) {\n return getFilesFromEvent(handles);\n }).then(function (files) {\n setFiles(files, null);\n dispatch({\n type: \"closeDialog\"\n });\n }).catch(function (e) {\n // AbortError means the user canceled\n if (isAbort(e)) {\n onFileDialogCancelCb(e);\n dispatch({\n type: \"closeDialog\"\n });\n } else if (isSecurityError(e)) {\n fsAccessApiWorksRef.current = false; // CORS, so cannot use this API\n // Try using the input\n\n if (inputRef.current) {\n inputRef.current.value = null;\n inputRef.current.click();\n } else {\n onErrCb(new Error(\"Cannot open the file picker because the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API is not supported and no <input> was provided.\"));\n }\n } else {\n onErrCb(e);\n }\n });\n return;\n }\n\n if (inputRef.current) {\n dispatch({\n type: \"openDialog\"\n });\n onFileDialogOpenCb();\n inputRef.current.value = null;\n inputRef.current.click();\n }\n }, [dispatch, onFileDialogOpenCb, onFileDialogCancelCb, useFsAccessApi, setFiles, onErrCb, pickerTypes, multiple]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone\n\n var onKeyDownCb = useCallback(function (event) {\n // Ignore keyboard events bubbling up the DOM tree\n if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {\n return;\n }\n\n if (event.key === \" \" || event.key === \"Enter\" || event.keyCode === 32 || event.keyCode === 13) {\n event.preventDefault();\n openFileDialog();\n }\n }, [rootRef, openFileDialog]); // Update focus state for the dropzone\n\n var onFocusCb = useCallback(function () {\n dispatch({\n type: \"focus\"\n });\n }, []);\n var onBlurCb = useCallback(function () {\n dispatch({\n type: \"blur\"\n });\n }, []); // Cb to open the file dialog when click occurs on the dropzone\n\n var onClickCb = useCallback(function () {\n if (noClick) {\n return;\n } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()\n // to ensure React can handle state changes\n // See: https://github.com/react-dropzone/react-dropzone/issues/450\n\n\n if (isIeOrEdge()) {\n setTimeout(openFileDialog, 0);\n } else {\n openFileDialog();\n }\n }, [noClick, openFileDialog]);\n\n var composeHandler = function composeHandler(fn) {\n return disabled ? null : fn;\n };\n\n var composeKeyboardHandler = function composeKeyboardHandler(fn) {\n return noKeyboard ? null : composeHandler(fn);\n };\n\n var composeDragHandler = function composeDragHandler(fn) {\n return noDrag ? null : composeHandler(fn);\n };\n\n var stopPropagation = function stopPropagation(event) {\n if (noDragEventsBubbling) {\n event.stopPropagation();\n }\n };\n\n var getRootProps = useMemo(function () {\n return function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? \"ref\" : _ref2$refKey,\n role = _ref2.role,\n onKeyDown = _ref2.onKeyDown,\n onFocus = _ref2.onFocus,\n onBlur = _ref2.onBlur,\n onClick = _ref2.onClick,\n onDragEnter = _ref2.onDragEnter,\n onDragOver = _ref2.onDragOver,\n onDragLeave = _ref2.onDragLeave,\n onDrop = _ref2.onDrop,\n rest = _objectWithoutProperties(_ref2, _excluded3);\n\n return _objectSpread(_objectSpread(_defineProperty({\n onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),\n onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),\n onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),\n onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),\n onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),\n onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),\n onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb)),\n role: typeof role === \"string\" && role !== \"\" ? role : \"presentation\"\n }, refKey, rootRef), !disabled && !noKeyboard ? {\n tabIndex: 0\n } : {}), rest);\n };\n }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);\n var onInputElementClick = useCallback(function (event) {\n event.stopPropagation();\n }, []);\n var getInputProps = useMemo(function () {\n return function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? \"ref\" : _ref3$refKey,\n onChange = _ref3.onChange,\n onClick = _ref3.onClick,\n rest = _objectWithoutProperties(_ref3, _excluded4);\n\n var inputProps = _defineProperty({\n accept: acceptAttr,\n multiple: multiple,\n type: \"file\",\n style: {\n border: 0,\n clip: \"rect(0, 0, 0, 0)\",\n clipPath: \"inset(50%)\",\n height: \"1px\",\n margin: \"0 -1px -1px 0\",\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n width: \"1px\",\n whiteSpace: \"nowrap\"\n },\n onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),\n tabIndex: -1\n }, refKey, inputRef);\n\n return _objectSpread(_objectSpread({}, inputProps), rest);\n };\n }, [inputRef, accept, multiple, onDropCb, disabled]);\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: isFocused && !disabled,\n getRootProps: getRootProps,\n getInputProps: getInputProps,\n rootRef: rootRef,\n inputRef: inputRef,\n open: composeHandler(openFileDialog)\n });\n}\n/**\n * @param {DropzoneState} state\n * @param {{type: string} & DropzoneState} action\n * @returns {DropzoneState}\n */\n\nfunction reducer(state, action) {\n /* istanbul ignore next */\n switch (action.type) {\n case \"focus\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: true\n });\n\n case \"blur\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: false\n });\n\n case \"openDialog\":\n return _objectSpread(_objectSpread({}, initialState), {}, {\n isFileDialogActive: true\n });\n\n case \"closeDialog\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: false\n });\n\n case \"setDraggedFiles\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isDragActive: action.isDragActive,\n isDragAccept: action.isDragAccept,\n isDragReject: action.isDragReject\n });\n\n case \"setFiles\":\n return _objectSpread(_objectSpread({}, state), {}, {\n acceptedFiles: action.acceptedFiles,\n fileRejections: action.fileRejections,\n isDragReject: action.isDragReject\n });\n\n case \"reset\":\n return _objectSpread({}, initialState);\n\n default:\n return state;\n }\n}\n\nfunction noop() {}\n\nexport { ErrorCode } from \"./utils\";","import { useCallback, useEffect, useState } from 'react';\nimport { useDropzone } from 'react-dropzone';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { useControlledValue } from '../../molecules/FormField/useControlledValue';\nimport { DropzoneProps, DropzoneStatus } from './Dropzone.types';\n\nconst usePresenter = (props: DropzoneProps) => {\n const {\n empty,\n loading,\n uploaded,\n accept,\n maxSize,\n maxFiles = 1,\n disabled,\n onValueChange,\n onFilesReset,\n id,\n drag,\n } = props;\n\n const { value: files, onValueChange: handleValueChange } = useControlledValue<File[]>({\n onValueChange,\n defaultValue: [],\n });\n\n const [status, setStatus] = useState<DropzoneStatus>('Empty');\n\n const resetFiles = useCallback(() => {\n setStatus('Empty');\n handleValueChange([]);\n onFilesReset?.();\n }, [handleValueChange, onFilesReset]);\n\n const onDrop = useCallback(async (acceptedFiles: File[]) => {\n if (acceptedFiles.length > 0) {\n setStatus('Loading');\n handleValueChange(acceptedFiles);\n setStatus('Uploaded');\n }\n }, [handleValueChange]);\n\n const { getRootProps, getInputProps, open, isDragActive } = useDropzone({\n onDrop,\n multiple: maxFiles > 1,\n accept,\n maxSize,\n maxFiles,\n noClick: true,\n disabled,\n });\n\n const variantProps = useBuildVariantProps(\n 'dropzone',\n {\n status,\n }\n );\n\n return {\n variantProps,\n files,\n getRootProps,\n getInputProps,\n open,\n empty,\n loading,\n uploaded,\n drag,\n status,\n accept,\n resetFiles,\n id,\n isDragActive,\n };\n};\n\nexport default usePresenter;","import cx from 'classnames';\nimport { createContext, useContext } from 'react';\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport styles from './Dropzone.module.scss';\nimport usePresenter from './Dropzone.presenter';\nimport { DropzoneContextType, DropzoneProps } from './Dropzone.types';\n\nconst DropzoneContext = createContext<DropzoneContextType | undefined>(undefined);\n\nconst Dropzone = (props: DropzoneProps) => {\n const {\n status,\n files,\n accept,\n resetFiles,\n variantProps,\n getRootProps,\n getInputProps,\n empty,\n loading,\n uploaded,\n drag,\n open,\n id,\n isDragActive,\n } = usePresenter(props);\n\n return (\n <DropzoneContext.Provider value={{ status, files: files || [], accept: accept || {}, selectFiles: open, resetFiles }}>\n <div\n {...getRootProps()}\n {...variantProps}\n className={cx(styles.dropzone, props.className)}\n >\n <input {...getInputProps()} id={id} />\n <ConditionalView condition={status === 'Empty'}>\n {empty}\n </ConditionalView>\n <ConditionalView condition={status === 'Loading'}>\n {loading}\n </ConditionalView>\n <ConditionalView condition={status === 'Uploaded'}>\n {uploaded}\n </ConditionalView>\n <ConditionalView condition={drag}>\n <div className={cx(\n styles.dropzoneOverlay,\n {\n [styles.visible]: isDragActive,\n }\n )}>\n {drag}\n </div>\n </ConditionalView>\n </div>\n </DropzoneContext.Provider>\n );\n};\n\nexport const useDropzoneContext = () => {\n const context = useContext(DropzoneContext);\n if (!context) {\n throw new Error('useDropzoneContext must be used within a Dropzone');\n }\n return context;\n};\n\nexport default Dropzone;\n","import React from \"react\";\nimport { Icon, IconButton } from \"../../../atoms\";\nimport { useDropzoneContext } from \"../Dropzone\";\nimport { DropzoneClearProps } from \"../Dropzone.types\";\n\nconst DropzoneClear = (props: DropzoneClearProps) => {\n const { resetFiles } = useDropzoneContext();\n const { icon, ...rest } = props;\n return (\n <IconButton \n {...rest} \n icon={icon || <Icon icon=\"CloseDelete\" style=\"Outlined\"/>}\n onClick={resetFiles} \n />\n );\n};\n\nexport default DropzoneClear;\n","import React from \"react\";\nimport { Text } from \"../../../atoms\";\nimport { useDropzoneContext } from \"../Dropzone\";\nimport { DropzoneFilenameProps } from \"../Dropzone.types\";\n\nconst DropzoneFilename = ({ children, fileIndex = 0, ...props }: DropzoneFilenameProps) => {\n const { files } = useDropzoneContext();\n return <Text {...props}>{files[fileIndex]?.name}</Text>;\n};\n\nexport default DropzoneFilename;\n","import React from 'react';\nimport { Text } from '../../../atoms';\nimport { DropzoneSupportedFormatsProps } from '../Dropzone.types';\nimport { useDropzoneContext } from '../Dropzone';\n\nconst DropzoneSupportedFormats = (props: DropzoneSupportedFormatsProps) => {\n const { accept } = useDropzoneContext();\n const supportedFormats = Object.values(accept).reduce((acc, curr) => {\n return acc.concat(curr);\n }, []).join(', ');\n return <Text {...props}>\n Supported formats: {supportedFormats}\n </Text>;\n};\n\nexport default DropzoneSupportedFormats;\n","import React from \"react\";\nimport { useDropzoneContext } from \"../Dropzone\";\nimport { Button } from \"../../../atoms\";\nimport { DropzoneTriggerProps } from \"../Dropzone.types\";\n\nconst DropzoneTrigger = (props: DropzoneTriggerProps) => {\n const { selectFiles } = useDropzoneContext();\n return <Button {...props} onClick={selectFiles} />;\n};\n\nexport default DropzoneTrigger;\n","import { DropzoneDragProps } from '../Dropzone.types';\n\nconst DropzoneDrag = (props: DropzoneDragProps) => {\n return (\n <div {...props} />\n );\n};\n\nexport default DropzoneDrag;\n","import cx from 'classnames';\nimport React, { useContext } from 'react';\n\nimport styles from './Form.module.scss';\nimport type { FormProps } from './Form.types';\nimport FormContext from './FormContext';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\nconst Form = (props: FormProps) => {\n const {\n children, \n className, \n ...otherFormProps\n } = props;\n\n const formContext = useContext(FormContext);\n const { formRef, onFormSubmit, resetForm } = formContext || {};\n const variantProps = useBuildVariantProps(\n 'form',\n );\n return (\n <form \n {...otherFormProps}\n ref={formRef}\n className={cx(styles.form, className)}\n onSubmit={onFormSubmit} \n onReset={(e) => {\n e.preventDefault();\n resetForm?.();\n props.onReset?.(e);\n }}\n {...variantProps}\n >\n {children}\n </form>\n );\n};\n\nexport default Form;","import { useContext } from 'react';\nimport FormContext from './FormContext';\nimport type { FormContextValues, FormState } from './Form.types';\n\n/**\n * Custom hook to access form context values.\n * Provides direct access to all form state management functions and values.\n * \n * @throws {Error} If used outside of a Form component\n * @returns {FormContextValues} Object containing form state and control functions\n * \n * @example\n * ```tsx\n * const MyCustomField = () => {\n * const { \n * formState, \n * formErrors, \n * updateFieldValue,\n * resetForm \n * } = useForm();\n * \n * return (\n * <div>\n * <input \n * value={formState.myField || ''}\n * onChange={(e) => updateFieldValue('myField', e.target.value)}\n * />\n * {formErrors.myField && <span>{formErrors.myField}</span>}\n * </div>\n * );\n * };\n * ```\n */\nexport const useForm = <T extends FormState = FormState>(): FormContextValues<T> => {\n const context = useContext(FormContext);\n \n if (!context) {\n throw new Error('useForm must be used within a Form component. Wrap your component with <Form> to use this hook.');\n }\n \n // Type assertion is safe here because we know the context exists\n // and the generic type T extends FormState\n return context as FormContextValues<T>;\n};\n\n/**\n * Type-safe version of useForm that returns properly typed form context\n * \n * @example\n * ```tsx\n * interface MyFormData {\n * name: string;\n * email: string;\n * age: number;\n * }\n * \n * const MyComponent = () => {\n * const form = useFormTyped<MyFormData>();\n * // form.formState is now typed as MyFormData\n * // form.formErrors is now typed as FormErrors<MyFormData>\n * };\n * ```\n */\nexport const useFormTyped = <T extends FormState>() => useForm<T>();","import React, { createContext, useContext, useEffect, useState } from 'react';\nimport type { TabContextType, TabProviderProps } from './Tabs.types';\n\nconst tabsContextInitialValue: TabContextType = {\n style: 'Filled',\n currentTab: '',\n updateCurrentTab: () => { },\n};\n\nexport const TabContext = createContext<TabContextType>(tabsContextInitialValue);\n\n/**\n * Custom hook to use the TabContext\n * Throws an error if used outside of a TabProvider\n */\nexport const useTab = () => {\n const context = useContext(TabContext);\n if (!context) {\n throw new Error('useTab must be used within a TabProvider');\n }\n return context;\n};\n\n/**\n * Provides context for Tab components\n * Manages the current tab state and providing a method to update\n */\nexport const TabProvider = ({\n children,\n value,\n style = 'Filled',\n onClick,\n}: TabProviderProps) => {\n const [internalCurrentTab, setInternalCurrentTab] = useState<string | number>('');\n\n const updateCurrentTab = (tabValue: string | number) => {\n if (internalCurrentTab !== tabValue) {\n if (value && onClick) {\n onClick(tabValue);\n }\n setInternalCurrentTab(tabValue);\n }\n };\n\n useEffect(() => {\n if (value !== undefined && onClick) {\n setInternalCurrentTab(value);\n }\n }, [value]);\n\n return (\n <TabContext.Provider value={{ style, currentTab: internalCurrentTab, updateCurrentTab }}>\n {children}\n </TabContext.Provider>\n );\n};","import React, { useEffect, useMemo } from 'react';\nimport cx from 'classnames';\nimport styles from './TabItem.module.scss';\nimport type { TabItemProps, TabItemTypeEnum } from './TabItem.types';\nimport { useTab } from '../Tabs.Context';\nimport useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\nimport Button from '../../../atoms/Button';\nimport { ConditionalView } from '../../../utils/ConditionalView';\nimport { WrapTextNodes } from '../../../utils/WrapTextNodes';\nimport { Spinner } from '../../../../library';\n\nconst TabItem = (props: TabItemProps) => {\n const {\n value,\n defaultTab = false,\n onClick,\n children,\n className,\n leadingIcon,\n trailingIcon,\n loading,\n style: currentStyle,\n ...otherProps\n } = props;\n\n const { style: tabsStyle, currentTab, updateCurrentTab } = useTab();\n\n const style = currentStyle ?? tabsStyle;\n const type: TabItemTypeEnum = useMemo(() => (value === currentTab ? 'Selected' : 'Unselected'), [value, currentTab]);\n\n useEffect(() => {\n if (defaultTab && currentTab === '') {\n updateCurrentTab(value);\n }\n }, [defaultTab, value, updateCurrentTab, currentTab]);\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n updateCurrentTab(value);\n if (onClick) {\n onClick(e);\n }\n };\n\n let leadingIconComponent, trailingIconComponent, content, loadingComponent;\n\n // If the button is in loading state replace content with a loading indicator\n if (loading) {\n loadingComponent = (\n <Spinner className={styles.loadingIcon} />\n );\n }\n\n // Render leading icon if it is passed\n if (leadingIcon) {\n leadingIconComponent = <div className={styles.leadingIcon}>\n {leadingIcon}\n </div>;\n }\n\n // Render training icon if it is passed\n if (trailingIcon) {\n trailingIconComponent = <div className={styles.trailingIcon}>\n {trailingIcon}\n </div>;\n }\n\n if (children) {\n content = (\n <WrapTextNodes \n noWrap\n className={styles.text}\n >\n {children}\n </WrapTextNodes>\n )\n }\n\n const variantProps = useBuildVariantProps(\n 'tab-item',\n {\n style,\n type,\n }\n );\n\n return (\n <button\n className={cx(\n styles.tabItem,\n className,\n )}\n onClick={handleClick}\n {...otherProps}\n {...variantProps}\n role=\"tab\"\n aria-selected={type === 'Selected'}\n >\n <div className={styles.contentContainer}>\n {leadingIconComponent}\n {content}\n {trailingIconComponent}\n </div>\n <ConditionalView condition={style === 'Underlined' && type === 'Selected'}>\n <div className={styles.underline} />\n </ConditionalView>\n </button>\n );\n};\nexport default TabItem;\n","import React from 'react';\nimport cx from 'classnames';\nimport styles from './TabContent.module.scss';\nimport type { TabContentProps } from './TabContent.types';\nimport { useTab } from '../Tabs.Context';\n\nconst TabContent = (props: TabContentProps) => {\n const {\n className,\n children,\n value,\n } = props;\n\n const { currentTab } = useTab();\n\n return (\n <div\n className={cx(styles.tabContent, className)}\n style={{\n display: currentTab === value ? 'flex' : 'none',\n }}\n >\n {children}\n </div>\n );\n};\nexport default TabContent;\n","import React, { ReactNode } from 'react';\nimport cx from 'classnames';\nimport styles from './Tabs.module.scss';\nimport type { TabsViewProps } from './Tabs.types';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport TabItem from './TabItem';\nimport TabContent from './TabContent';\n\n/**\n * Recursively walks the tree and collects any wrapper elements\n * that contain components with the given displayName (e.g. 'TabItem').\n * This ensures we preserve layout wrappers (like divs).\n */\nconst getBranchesWithComponent = (\n children: ReactNode,\n matchComponent: React.ComponentType<any>\n): ReactNode[] => {\n const branches: ReactNode[] = [];\n\n React.Children.forEach(children, (child: any) => {\n if (!child) return;\n\n const isMatch = child.type === matchComponent;\n\n if (isMatch) {\n branches.push(child);\n } else if (child.props?.children) {\n const nested = getBranchesWithComponent(\n child.props.children,\n matchComponent\n );\n\n if (nested.length > 0) {\n // Clone the wrapper and keep the matched nested content\n branches.push(\n React.cloneElement(child, { key: child.key }, nested)\n );\n }\n }\n });\n\n return branches;\n};\n\n\nconst Tabs = (props: TabsViewProps) => {\n const {\n className,\n children,\n type = 'Horizontal',\n } = props;\n\n const variantProps = useBuildVariantProps(\n 'tabs-header',\n {\n }\n );\n\n // Filter and separate Tab and TabPanel components\n const tabs = getBranchesWithComponent(children, TabItem);\n const panels = getBranchesWithComponent(children, TabContent);\n\n return (\n <div \n className={cx(styles.tabs, styles[type.toLowerCase()], className)}\n {...variantProps}\n >\n <div className={styles.tabsHeader} role=\"tablist\">\n {tabs}\n </div>\n <div className={styles.tabsContent}>\n {panels}\n </div>\n </div>\n );\n};\nexport default Tabs;\n","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","export default {\n disabled: false\n};","import PropTypes from 'prop-types';\nexport var timeoutsShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n enter: PropTypes.number,\n exit: PropTypes.number,\n appear: PropTypes.number\n}).isRequired]) : null;\nexport var classNamesShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string,\n active: PropTypes.string\n}), PropTypes.shape({\n enter: PropTypes.string,\n enterDone: PropTypes.string,\n enterActive: PropTypes.string,\n exit: PropTypes.string,\n exitDone: PropTypes.string,\n exitActive: PropTypes.string\n})]) : null;","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `<CSSTransition>` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.indexOf(n) >= 0) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import cx from 'classnames';\nimport React, { forwardRef, useRef } from 'react';\nimport { Transition } from 'react-transition-group';\nimport { TransitionCallbacks } from 'react-overlays/cjs/types';\nimport styles from './SlideOutPanel.module.scss';\n\n// Define your props explicitly\ntype FadeTransitionProps = {\n in: boolean;\n appear?: boolean;\n unmountOnExit?: boolean;\n children?: React.ReactElement<any>;\n} & TransitionCallbacks;\n\nexport const FadeTransition = forwardRef<HTMLDivElement, FadeTransitionProps>(\n ({ children, ...props }, ref) => {\n const nodeRef = useRef(null); // Used for nodeRef prop (optional)\n\n return (\n <Transition\n timeout={300}\n {...props}\n nodeRef={nodeRef} // Prevents use of findDOMNode\n >\n {(state) =>\n children\n ? React.cloneElement(children, {\n ref: ref ?? nodeRef,\n className: cx(children.props.className, styles[state]),\n })\n : null\n }\n </Transition>\n );\n }\n);","import React, { createContext, useEffect, useState } from 'react';\nimport type { ThemeContextType, ThemeProviderProps } from './ThemeProvider.types';\nimport '../../resources/themes/base.css';\n// import '../../resources/themes/override.css';\nimport '../../resources/themes/light.css';\nimport '../../resources/themes/dark.css';\n\nconst initialValue: ThemeContextType = {\n theme: 'light',\n updateTheme: () => { },\n};\n\nexport const ThemeContext = createContext<ThemeContextType>(initialValue);\n\nexport const ThemeProvider: React.FC<ThemeProviderProps> = (props: ThemeProviderProps) => {\n const [theme, setTheme] = useState(props.theme || 'light');\n\n useEffect(() => {\n document.documentElement.setAttribute('data-theme', theme);\n }, [theme])\n\n const updateTheme = (newTheme: string) => {\n setTheme(newTheme);\n };\n\n return (\n <ThemeContext.Provider value={{ theme, updateTheme }}>\n {props.children}\n </ThemeContext.Provider>\n );\n};","import React, { createContext, useState, useCallback, useContext } from 'react';\nimport { Notification, NotificationContextValue, NotificationProviderProps, TriggerNotificationPayload } from './types';\nimport NotificationContainer from './NotificationContainer';\nimport { ToastNotificationStyleEnum } from '../../components/atoms/ToastNotification/ToastNotification.types';\n\nexport const NotificationContext = createContext<NotificationContextValue>({} as NotificationContextValue);\n\nexport const NotificationProvider: React.FC<NotificationProviderProps> = ({\n children,\n position = 'top-right',\n offset = { x: 20, y: 20 }\n}) => {\n const [notifications, setNotifications] = useState<Notification[]>([]);\n\n const addNotification = useCallback((message: React.ReactNode, duration: number = 0, style?: ToastNotificationStyleEnum, isDismissable?: boolean, closeIcon?: React.ReactNode, leadingIcon?: React.ReactNode, trailingIcon?: React.ReactNode, isCloseButtonShown: boolean) => {\n const id = Date.now();\n const newNotification = { id, message, style, isDismissable, closeIcon, leadingIcon, trailingIcon, isCloseButtonShown };\n setNotifications((prevNotifications) => [...prevNotifications, newNotification]);\n\n if (duration > 0) {\n setTimeout(() => {\n removeNotification(id);\n }, duration);\n }\n }, []);\n\n const removeNotification = useCallback((id: number) => {\n setNotifications((prevNotifications) => prevNotifications.filter(notification => notification.id !== id));\n }, []);\n\n const clear = useCallback(() => {\n setNotifications([]);\n }, []);\n\n const trigger = useCallback((payload: TriggerNotificationPayload) => {\n const { message, duration, style, isDismissable, closeIcon, leadingIcon, trailingIcon, isCloseButtonShown } = payload;\n addNotification(message, duration, style, isDismissable, closeIcon, leadingIcon, trailingIcon, isCloseButtonShown);\n }, [addNotification]);\n\n return (\n <NotificationContext.Provider value={{\n notifications,\n clear,\n trigger,\n removeNotification,\n }}>\n <NotificationContainer position={position} offset={offset} />\n {children}\n </NotificationContext.Provider>\n );\n};\n\nexport const useNotification = () => {\n const context = useContext(NotificationContext);\n return context;\n};","import React from 'react';\nimport cx from 'classnames';\nimport styles from './ToastNotification.module.scss';\nimport type { ToastNotificationProps } from './ToastNotification.types';\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport IconButton from '../IconButton';\nimport Icon from '../Icon';\n\nconst ToastNotification: React.FC<ToastNotificationProps> = (props) => {\n const {\n className,\n style = 'Neutral',\n leadingIcon,\n trailingIcon,\n closeIcon,\n isDismissable = true,\n isCloseButtonShown = true,\n removeToast,\n duration,\n children,\n ...restProps\n } = props;\n\n let leadingIconComponent, trailingIconComponent, content, closeIconComponent;\n\n if (leadingIcon) {\n leadingIconComponent = <>{leadingIcon}</>;\n }\n\n if (trailingIcon) {\n trailingIconComponent = <>{trailingIcon}</>;\n }\n\n if (isDismissable && isCloseButtonShown) {\n closeIconComponent = (\n <IconButton\n type='Ghost'\n style='Secondary'\n appearance='Default'\n icon={closeIcon || <Icon icon='CloseDelete' style='Outlined' />}\n onClick={removeToast}\n />\n );\n }\n\n if (children) {\n content = (\n <WrapTextNodes className={styles.text}>\n {children}\n </WrapTextNodes>\n );\n }\n\n const variantProps = useBuildVariantProps(\n 'toast-notification',\n { style },\n {}\n );\n\n return (\n <div\n className={cx(styles.toastNotification, className)}\n {...variantProps}\n {...restProps}\n >\n <div className={styles.messageContainer}>\n {leadingIconComponent}\n {content}\n {trailingIconComponent}\n </div>\n {closeIconComponent}\n </div>\n );\n};\n\nexport default ToastNotification;\n","import React, { useMemo } from 'react';\nimport cx from 'classnames';\n\nimport styles from './NotificationContainer.module.scss';\nimport { NotificationContainerProps } from './types';\nimport { useNotification } from './NotificationContext';\nimport ToastNotification from '../../components/atoms/ToastNotification';\n\nconst NotificationContainer: React.FC<NotificationContainerProps> = (props) => {\n const { className, position = 'top-right', offset = { x: 20, y: 20 } } = props;\n const { notifications, removeNotification } = useNotification();\n\n const containerStyle = useMemo(() => {\n const style: React.CSSProperties = {};\n\n if (position.includes('top')) {\n style.top = `${offset.y || 20}px`;\n } else if (position.includes('bottom')) {\n style.bottom = `${offset.y || 20}px`;\n style.flexDirection = 'column-reverse';\n }\n\n if (position.includes('left')) {\n style.left = `${offset.x || 20}px`;\n } else if (position.includes('right')) {\n style.right = `${offset.x || 20}px`;\n } else if (position.includes('center')) {\n style.left = '50%';\n style.transform = 'translateX(-50%)';\n }\n\n return style;\n }, [position, offset]);\n\n const containerClass = cx(\n styles.notificationContainer,\n styles[position],\n className\n );\n\n return (\n <div className={containerClass} style={containerStyle}>\n {notifications?.map(({ id, message, ...rest }) => (\n <ToastNotification\n key={id}\n removeToast={() => removeNotification(id || 0)}\n {...rest}\n >\n {message}\n </ToastNotification>\n ))}\n </div>\n );\n};\n\nexport default NotificationContainer;\n","import cx from 'classnames';\nimport React from \"react\";\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { Icon } from '../../atoms';\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport styles from './Accordion.module.scss';\nimport type { AccordionDetailsProps, AccordionProps, AccordionSummaryProps } from './Accordion.types';\n\nconst AccordionSummary = (props: AccordionSummaryProps) => {\n const { children, className, expandIcon } = props;\n\n const expandCollapseIcon = expandIcon || <Icon icon=\"ChevronRight\" className={styles.icon} style='Outlined' />;\n\n const variantProps = useBuildVariantProps(\n 'accordion-summary',\n {},\n );\n\n return (\n <summary className={cx(styles.summary, className)} {...variantProps}>\n <WrapTextNodes whiteSpaceNoWrap={true} className={styles.summaryText}>{children}</WrapTextNodes>\n <span className={styles.expandIcon}>\n {expandCollapseIcon}\n </span>\n </summary>\n );\n};\n\nconst AccordionDetails = (props: AccordionDetailsProps) => {\n const variantProps = useBuildVariantProps(\n 'accordion-details',\n {},\n );\n\n return (\n <div className={cx(styles.content, props.className)} {...variantProps}>\n <WrapTextNodes whiteSpaceNoWrap={true} className={styles.detailsText}>{props.children}</WrapTextNodes>\n </div>\n );\n};\n\nconst Accordion = (props: AccordionProps) => {\n const {\n name,\n children,\n size = 'Medium',\n className,\n defaultExpanded = false,\n expanded,\n onChange,\n } = props;\n\n const [isOpen, setIsOpen] = React.useState(defaultExpanded);\n\n React.useEffect(() => {\n if (expanded !== undefined) {\n setIsOpen(expanded);\n }\n }, [expanded]);\n\n const handleToggle = (e: React.SyntheticEvent<HTMLDetailsElement>) => {\n const willBeOpen = (e.currentTarget as HTMLDetailsElement).open;\n\n if (expanded !== undefined) {\n // If expanded prop is provided, prevent default behavior\n e.preventDefault();\n } else {\n setIsOpen(willBeOpen);\n }\n\n onChange?.(willBeOpen);\n };\n\n const variantProps = useBuildVariantProps(\n 'accordion',\n {\n size,\n type: isOpen ? 'Expanded' : 'Collapsed',\n },\n );\n\n return (\n <details\n className={cx(styles.root, className)}\n open={expanded || isOpen ? true : undefined}\n onToggle={handleToggle}\n name={name}\n {...variantProps}\n >\n <WrapTextNodes className={styles.text}>{children}</WrapTextNodes>\n </details>\n );\n};\n\nexport { Accordion, AccordionDetails, AccordionSummary };\n\n","import React from 'react';\nimport cx from 'classnames';\nimport { WrapTextNodes } from '../../../utils/WrapTextNodes';\nimport styles from './AccordionGroup.module.scss';\nimport { AccordionGroupProps } from './AccordionGroup.types';\n\nconst AccordionGroup = (props: AccordionGroupProps) => {\n const { name, ...rest } = props;\n return (\n <div className={cx(styles.root, props.className)} {...rest}>\n {React.Children.map(props.children, child => {\n if (typeof child === 'string' || typeof child === 'number') {\n return <WrapTextNodes>{child}</WrapTextNodes>;\n } else {\n return React.isValidElement(child) ? React.cloneElement(child, { ...{ name } }) : child;\n }\n })}\n </div>\n );\n};\n\nexport default AccordionGroup;\n","import React from 'react';\nimport cx from 'classnames';\nimport styles from './ActionCard.module.scss';\nimport type { ActionCardProps } from './ActionCard.types';\nimport { NavLink } from '../../molecules';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\n/**\n * ActionCard component definition.\n */\nconst ActionCard = (props: ActionCardProps) => {\n const {\n disabled,\n className,\n children,\n onClick,\n to,\n ...restProps\n } = props;\n\n const RootElement: React.ElementType = to !== undefined ? NavLink : 'div'\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n // Check if the event's target has its own click event\n if (e.target instanceof HTMLElement && e.target.hasAttribute('onClick')) {\n e.stopPropagation();\n }\n if (onClick && !disabled) {\n onClick(e);\n }\n };\n\n const variantProps = useBuildVariantProps(\n 'action-card',\n );\n\n return (\n <RootElement\n role='button'\n aria-label='Action Card'\n aria-disabled={disabled}\n tabIndex={0}\n {...{...restProps, to}}\n className={cx(\n styles.actionCard,\n {\n [styles.disabled]: disabled,\n },\n className,\n )}\n onClick={handleClick}\n {...variantProps}\n >\n {children}\n </RootElement>\n );\n};\n\nexport default ActionCard;\n","import React from 'react';\nimport cx from 'classnames';\nimport styles from './ActionImage.module.scss';\nimport type { ActionImageProps } from './ActionImage.types';\nimport Image from '../Image';\n\n/**\n * ActionImage component definition.\n */\nconst ActionImage = (props: ActionImageProps) => {\n const {\n disabled,\n className,\n onClick,\n ...restProps\n } = props;\n\n const handleClick = (e: React.MouseEvent<HTMLImageElement, MouseEvent>) => {\n if (onClick && !disabled) {\n onClick(e);\n }\n };\n\n return (\n <div\n role='button'\n aria-label='Action Image'\n aria-disabled={disabled}\n tabIndex={0}\n className={cx(\n styles.actionImage,\n {\n [styles.disabled]: disabled,\n },\n className,\n )}\n onClick={handleClick}\n >\n <Image {...restProps} />\n </div>\n );\n};\n\nexport default ActionImage;\n","import React from 'react';\nimport cx from 'classnames';\nimport { BreadcrumbProps } from './Breadcrumb.types';\nimport styles from './Breadcrumb.module.scss';\nimport useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\nimport { NavLink } from '../../Nav';\n\nconst Breadcrumb = (props: BreadcrumbProps) => {\n const { className, selected, navLinkType, ...restProps } = props;\n\n const variantProps = useBuildVariantProps(\n 'breadcrumb',\n {\n type: selected ? 'selected' : 'Unselected',\n },\n {},\n );\n\n return (\n <NavLink\n className={cx(\n styles.breadcrumb,\n className,\n )}\n type={navLinkType}\n {...restProps}\n {...variantProps}\n />\n );\n};\n\nexport default Breadcrumb;","import React from 'react';\nimport cx from 'classnames';\nimport { BreadcrumbsProps } from './Breadcrumbs.types';\nimport styles from './Breadcrumbs.module.scss';\nimport { Icon } from '../../atoms';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\nconst Breadcrumbs = (props: BreadcrumbsProps) => {\n const { className, children, divider } = props;\n const items = React.Children.toArray(children);\n\n const dividerComponent = divider ||\n <Icon className={styles.divider} icon='ArrowForward' style='Outlined' size='Medium' />;\n\n const variantProps = useBuildVariantProps(\n 'breadcrumbs',\n {},\n {},\n );\n\n return (\n <ol\n className={cx(styles.breadcrumbs, className)}\n {...variantProps}\n >\n {items.map((child, index) => (\n <li key={index} className={styles.breadcrumbItem}>\n {child}\n {index < items.length - 1 && dividerComponent}\n </li>\n ))}\n </ol>\n );\n};\n\nexport default Breadcrumbs;","import React from 'react';\nimport cx from 'classnames';\nimport styles from './ButtonGroup.module.scss';\nimport type { ButtonGroupProps } from './ButtonGroup.types';\nimport { renderButtonItem } from './utils';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\n/**\n * ButtonGroup component definition.\n */\nconst ButtonGroup = (props: ButtonGroupProps) => {\n const { className, children, align = 'Horizontal', type = 'Outlined' } = props;\n const buttonItems = renderButtonItem(children);\n const variantProps = useBuildVariantProps(\n 'button-group',\n { align, type },\n );\n return <ul \n className={cx(\n styles.buttonGroup,\n className,\n )}\n {...variantProps}\n >\n {buttonItems}\n </ul>;\n};\n\nexport default ButtonGroup;\n","import React, { ReactElement, ReactNode } from \"react\";\n\n/**\n * Renders a list of button items.\n *\n * This function takes children elements (which can be a single ReactNode \n * or an array of ReactNodes) and maps them to list items (<li>) \n * with unique keys.\n *\n * @param {ReactNode | ReactNode[]} children - The button items to render.\n * @returns {ReactElement | null} A React fragment containing a list of \n * <li> elements, each wrapping a child.\n */\nexport const renderButtonItem = (children: ReactNode | ReactNode[]) => {\n return (\n <>\n {\n // Use React.Children.map to iterate over children and render them as list item and key\n React.Children.map(children, (child, index): ReactElement | null => {\n return <li key={index}>{child}</li>;\n })\n }\n </>\n );\n}\n","import React from 'react';\nimport cx from 'classnames';\nimport styles from './Card.module.scss';\nimport type { CardProps } from './Card.types';\n\n/**\n * Card component definition.\n */\nconst Card = (props: CardProps) => {\n const { className, children } = props;\n return <div className={cx(styles.card, className)}>{children}</div>;\n};\n\nexport default Card;\n","import cx from 'classnames';\nimport React from 'react';\nimport { CheckboxItem, Input } from \"../../atoms\";\nimport Chip from \"../../atoms/Chip\";\nimport ContextMenu from '../ContextMenu';\nimport RepeaterList from \"../List/RepeaterList\";\nimport Popover from \"../Popover\";\nimport styles from './ChipInput.module.scss';\nimport usePresenter from './ChipInput.presenter';\nimport { ChipInputProps, OptionLike } from \"./ChipInput.types\";\n// import { onEnterKeyPreventFormSubmit } from './ChipInput.utils';\n\nconst ChipInput = <T extends string[] | OptionLike[]>(props: ChipInputProps<T>) => {\n const {\n handleChipInputAreaClick,\n chips,\n handleKeyDown,\n inputValue,\n onValueChange,\n inputRef,\n optionList,\n variantProps,\n disabled,\n } = usePresenter(props);\n\n return (\n <Popover\n className={cx(styles.popover, styles.chipInput)}\n target={\n <div\n className={cx(\n styles.trigger,\n styles.chipList,\n props.className,\n )}\n onClick={handleChipInputAreaClick}\n >\n <RepeaterList\n data={chips}\n component={Chip}\n />\n <Input\n ref={inputRef}\n id={props.id}\n className={cx(styles.input, {\n [styles.disabledInput]: disabled,\n })}\n placeholder={props.placeholder}\n required={props.required}\n invalid={props.invalid}\n onKeyDown={handleKeyDown}\n value={inputValue}\n onValueChange={onValueChange}\n disabled={disabled}\n />\n </div>\n }\n content={\n <ContextMenu\n data={optionList}\n component={CheckboxItem}\n className={styles.contextMenu}\n />\n }\n direction='Down'\n alignment='Start'\n action='Click'\n hideOnClickAway={true}\n keepContentOnItemClick={true}\n offset={[0, 2]}\n disabled={disabled}\n {...variantProps}\n />\n );\n};\n\nexport default ChipInput;\n","import React from 'react';\nimport styles from './DateInput.module.scss';\n\nimport { Icon, IconButton, Input } from '../../../atoms';\n\nimport usePresenter from './DateInput.presenter';\nimport { DateInputProps } from './DateInput.types';\nimport DatePickerBase from '../DatePickerBase';\n\nconst DateInput = (props: DateInputProps) => {\n const {\n invalid,\n isTimePickerOnly,\n onInputBlur,\n inputLeadingIcon,\n readOnly,\n inputVariantProps,\n handleInputReadOnlyState,\n } = usePresenter(props);\n\n const calendarIcon = <IconButton\n size='Small'\n type='Ghost'\n icon={<Icon\n icon='Calendar'\n size='Small'\n style='Outlined'\n />}\n />;\n\n return (\n <DatePickerBase\n {...props}\n renderInput={(_, ref) => {\n return (\n <Input\n ref={ref}\n className={styles.dateInput}\n inputType='Text'\n invalid={invalid}\n onBlur={isTimePickerOnly ? onInputBlur : undefined}\n leadingIcon={props.leadingIcon || inputLeadingIcon}\n trailingIcon={props.trailingIcon || calendarIcon}\n readOnly={readOnly}\n autoComplete='off'\n placeholder={props.placeholder}\n id={props.id}\n {...inputVariantProps}\n />\n );\n }}\n handleInputReadOnlyState={handleInputReadOnlyState}\n />\n );\n};\n\nexport default DateInput;\n","import useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\nimport { DateInputProps } from './DateInput.types';\nimport { Icon } from '../../../atoms';\nimport { useState } from 'react';\n\nconst usePresenter = (props: DateInputProps) => {\n const {\n value,\n onValueChange,\n disabled,\n invalid,\n required,\n noCalendar,\n enableTime,\n } = props;\n\n const [readOnly, setReadOnly] = useState(false);\n const isTimePickerOnly = noCalendar && enableTime;\n\n const onInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const inputValue = event.target.value.trim();\n onValueChange?.(inputValue);\n };\n\n const inputLeadingIcon = isTimePickerOnly && <Icon icon='Schedule' style='Outlined' size='Small' />;\n\n const inputVariantProps = useBuildVariantProps(\n 'date-input',\n {},\n { disabled, required, invalid }\n );\n\n const handleInputReadOnlyState = (value: boolean) => {\n setReadOnly(value);\n };\n\n return {\n invalid,\n onInputBlur,\n inputLeadingIcon,\n readOnly,\n inputVariantProps,\n value,\n isTimePickerOnly,\n handleInputReadOnlyState,\n };\n}\n\nexport default usePresenter;","import React from 'react';\n\nimport { DatePickerProps } from './DatePicker.types';\nimport DatePickerBase from './DatePickerBase';\n\nconst DatePicker = (props: DatePickerProps) => {\n\n return (\n <DatePickerBase\n inline={true}\n {...props}\n />\n );\n};\n\nexport default DatePicker;\n","import { Icon, IconButton } from \"../../../atoms\";\nimport { useSortableItem } from \"./SortableListItem\";\nimport type { SortableTriggerProps } from \"../List.types\";\n\nconst SortableTrigger = (props: SortableTriggerProps) => {\n const { attributes, listeners } = useSortableItem();\n const icon = props.icon || <Icon icon='Drag' style=\"Outlined\" />;\n return <IconButton \n {...props}\n {...attributes}\n {...listeners}\n icon={icon}\n />;\n};\n\nexport default SortableTrigger;","import cx from 'classnames';\nimport { Icon, Spinner, Text } from '../../atoms';\nimport DropzoneClear from '../Dropzone/components/DropzoneClear';\nimport DropzoneDrag from '../Dropzone/components/DropzoneDrag';\nimport DropzoneFilename from '../Dropzone/components/DropzoneFilename';\nimport DropzoneSupportedFormats from '../Dropzone/components/DropzoneSupportedFormats';\nimport DropzoneTrigger from '../Dropzone/components/DropzoneTrigger';\nimport styles from './DropzoneContent.module.scss';\nimport { DropzoneContentProps } from './DropzoneContent.types';\n\nconst DropzoneContent = (props: DropzoneContentProps) => {\n return (\n <div\n className={cx(\n styles.dropzoneContent,\n styles[`type--${props.type}`],\n props.className,\n )}\n >\n <div className={styles.infoTextAndButtonContainer}>\n <Text\n className={styles.infoText}\n type=\"BodySmall\"\n weight=\"Medium\"\n >\n Drag & Drop or\n </Text>\n <DropzoneTrigger\n className={styles.dropzoneFileUploadTriggerChooseFileButton}\n appearance=\"Default\"\n type=\"Outlined\"\n style=\"Secondary\"\n size=\"Medium\"\n >\n Choose File\n </DropzoneTrigger>\n </div>\n <DropzoneDrag className={styles.dropzoneDrag} />\n <Spinner\n className={styles.loaderAnim}\n />\n <DropzoneFilename className={styles.dropzoneFileName} />\n <DropzoneSupportedFormats\n className={styles.dropzoneSupportedFormats}\n />\n <DropzoneClear\n className={styles.dropzoneRemoveUploadButtonDeleteButton}\n appearance=\"Default\"\n type=\"Ghost\"\n style=\"Secondary\"\n size=\"Medium\"\n icon={(\n <Icon\n className={\n styles.dropzoneRemoveUploadButtonDeleteButtoncloseDelete\n }\n style=\"Outlined\"\n size=\"Medium\"\n icon=\"CloseDelete\"\n />\n )}\n />\n </div>\n );\n};\n\nexport default DropzoneContent;\n","import React from 'react';\nimport InternalForm from './Form';\nimport { FormProvider } from './FormContext';\nimport type { FormProps, FormProviderProps, FormState } from './Form.types';\n\nconst Form = <T extends FormState>(props: FormProviderProps<T> & FormProps) => {\n const {\n formRef,\n formState: values, \n onFormStateChange, \n formValidator,\n onSubmit,\n validateOnChange,\n autosave,\n autosaveDelayMs,\n ...otherProps\n } = props;\n\n return (\n <FormProvider \n formRef={formRef}\n formState={values}\n onFormStateChange={onFormStateChange}\n formValidator={formValidator}\n onSubmit={onSubmit}\n validateOnChange={validateOnChange}\n autosave={autosave}\n autosaveDelayMs={autosaveDelayMs}\n >\n <InternalForm {...otherProps} noValidate />\n </FormProvider>\n );\n};\n\nexport default Form;\nexport * from './Form.types';\nexport { useForm, useFormTyped } from './useForm';","import cx from 'classnames';\nimport { Icon, Text } from '../../atoms';\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport styles from './FormField.module.scss';\nimport usePresenter from './FormField.presenter';\nimport { FormFieldProps } from './FormField.types';\n\nconst FormField = (props: FormFieldProps) => {\n const {\n label,\n required,\n infoIcon,\n children,\n messageText,\n fieldId,\n variantProps,\n showMessageContainer,\n showErrorIcon,\n showInfoIcon,\n } = usePresenter(props);\n\n const infoIconView = infoIcon || (\n <Icon className={styles.messageIcon} icon=\"Info\" style=\"Outlined\" size=\"Small\" />\n );\n\n return (\n <div className={cx(styles.formField, props.className)} {...variantProps}>\n <div className={styles.field}>\n <ConditionalView condition={label}>\n <label className={styles.labelContainer} htmlFor={fieldId}>\n <Text\n className={cx(styles.label, { [styles.required]: required })}\n type=\"BodySmall\"\n weight=\"Bold\"\n >\n {label}\n </Text>\n </label>\n </ConditionalView>\n {children}\n </div>\n <ConditionalView condition={showMessageContainer}>\n <div className={styles.messageContainer}>\n <ConditionalView condition={showErrorIcon}>\n <Icon className={styles.messageIcon} icon=\"Info\" style=\"Outlined\" size=\"Small\" />\n </ConditionalView>\n <ConditionalView condition={showInfoIcon}>\n {infoIconView}\n </ConditionalView>\n <Text className={styles.message} type=\"BodySmall\" weight=\"Regular\">\n {messageText}\n </Text>\n </div>\n </ConditionalView>\n </div>\n );\n};\n\nexport default FormField;\n","import { useId, useContext, useEffect, useCallback, useMemo, useRef } from 'react';\nimport FormContext from '../../organisms/Form/FormContext';\nimport { FormFieldProps } from './FormField.types';\nimport { injectPropsToMatchingFields } from './FormField.utils';\nimport { FieldValue } from '../../organisms';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\nconst usePresenter = (props: FormFieldProps) => {\n const {\n name,\n label,\n children,\n message,\n infoIcon,\n required,\n disabled,\n validate,\n invalid,\n id,\n hasMessage,\n } = props;\n\n const generatedId = useId();\n const fieldId = id || generatedId;\n\n const formContext = useContext(FormContext);\n const {\n formState,\n updateFieldValue,\n formErrors,\n updateFieldValidators,\n updateRequiredFields,\n } = formContext || {};\n\n // Capture whether FormContext was available at initial render.\n // Used to determine if we should inject field props — does not update dynamically.\n const hadFormContext = useRef(!!formContext);\n\n const value = useMemo(() => formState?.[name], [formState, name]);\n const error = useMemo(() => formErrors?.[name], [formErrors, name]);\n const isInvalid = useMemo(() => !!error || !!invalid, [error, invalid]);\n\n useEffect(() => {\n updateFieldValidators?.(name, validate);\n return () => updateFieldValidators?.(name, undefined);\n }, [name, validate]);\n\n useEffect(() => {\n updateRequiredFields?.(name, required);\n return () => updateRequiredFields?.(name, undefined);\n }, [name, required]);\n\n const handleChange = useCallback(\n (updatedValue: FieldValue) => {\n updateFieldValue?.(name, updatedValue);\n },\n [name, updateFieldValue]\n );\n\n const messageText = error || message;\n\n const injected = useMemo(() => (\n injectPropsToMatchingFields(children, {\n name,\n value,\n onValueChange: handleChange,\n disabled,\n invalid: isInvalid,\n required,\n id: fieldId,\n }, hadFormContext.current)\n ), [children, name, fieldId, value, handleChange, disabled, isInvalid, required, hadFormContext.current]);\n\n const variantProps = useBuildVariantProps(\n 'form-field',\n {\n type: isInvalid ? 'error' : 'default'\n },\n );\n\n return {\n label,\n required,\n infoIcon,\n children: injected,\n messageText,\n fieldId,\n variantProps,\n showMessageContainer: hasMessage || messageText,\n showErrorIcon: isInvalid && messageText,\n showInfoIcon: !isInvalid && messageText,\n };\n};\n\nexport default usePresenter;\n","import React from 'react';\nimport styles from './Grid.module.scss';\nimport { GridProps } from './Grid.types';\n\nconst Grid = (props: GridProps) => {\n const { \n columns = 1, \n rows,\n children,\n ...rest \n } = props;\n\n return (\n <div \n {...rest}\n className={styles.grid}\n style={{\n display: 'grid',\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n gridTemplateRows: rows ? `repeat(${rows}, 1fr)` : undefined,\n }}\n >\n {children}\n </div>\n );\n};\n\nexport default Grid;","import React, { useMemo } from 'react';\nimport cx from 'classnames';\nimport styles from './GridList.module.scss';\nimport { GridListProps } from './GridList.types'; \nimport { ListItemType } from '../List/List.types';\nimport List from '../List';\n\nconst GridList = <T extends ListItemType>(props: GridListProps<T>) => {\n const { \n className,\n component, \n columns = 1, \n data,\n gap,\n ...rest \n } = props;\n\n // Add gridColumn to each item\n const updatedData = useMemo(() => {\n return data?.map((item): T => ({\n ...item,\n itemClassName: styles.gridListItem,\n }));\n }, [data]);\n\n return (\n <List\n {...rest}\n className={cx(styles.gridList, className)}\n style={{\n display: 'grid',\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n gap: gap,\n }}\n component={component}\n data={updatedData}\n />\n );\n};\n\nexport default GridList;\n","import React, { Children } from 'react';\nimport cx from 'classnames';\nimport styles from './ListItem.module.scss';\nimport { ListItemProps } from \"./ListItem.types\";\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\nconst ListItem = (props: ListItemProps) => {\n const {\n className,\n leadingIcon,\n trailingIcon,\n onClick,\n children,\n disabled,\n ...restProps\n } = props;\n\n let leadingIconComponent, trailingIconComponent, content;\n\n // Render leading icon if it is passed\n if (leadingIcon) {\n leadingIconComponent = <div className={styles.leadingIcon}>\n {leadingIcon}\n </div>;\n }\n\n // Render training icon if it is passed\n if (trailingIcon) {\n trailingIconComponent = <div className={styles.trailingIcon}>\n {trailingIcon}\n </div>;\n }\n\n if (children) {\n content = <div className={styles.content}>\n <WrapTextNodes className={styles.text}>\n {children}\n </WrapTextNodes>\n </div>;\n }\n\n const variantProps = useBuildVariantProps(\n 'list-item',\n {},\n { disabled },\n );\n\n\n return (\n <div\n className={cx(styles.listItem, className)}\n onClick={onClick}\n tabIndex={0}\n {...variantProps}\n {...restProps}\n >\n {leadingIconComponent}\n {content}\n {trailingIconComponent}\n </div>\n );\n};\n\nexport default ListItem;\n","import React from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./ModalFooter.module.scss\";\nimport type { ModalFooterProps } from \"./ModalFooter.types\";\nimport useBuildVariantProps from \"../../../../modules/theme/useBuildVariantProps\";\n\n/**\n * Modal Footer component for displaying footer actions in a modal.\n */\nconst ModalFooter: React.FC<ModalFooterProps> = ({\n type = \"1Button\",\n style = \"NoStroke\",\n primaryButton,\n secondaryButton,\n className,\n ...restProps\n}) => {\n\n let primaryButtonComponent, secondaryButtonComponent;\n\n if (primaryButton) {\n primaryButtonComponent = <>{primaryButton}</>;\n }\n\n if (type === '2Buttons' && secondaryButton) {\n secondaryButtonComponent = <>{secondaryButton}</>;\n }\n const variantProps = useBuildVariantProps(\n 'modal-footer',\n { type, style }\n );\n\n return (\n <div \n className={cx(styles.modalFooter, { \n [styles.oneButton]: type === \"1Button\"\n }, \n className\n )} \n {...variantProps} \n {...restProps}\n >\n {secondaryButtonComponent}\n {primaryButtonComponent}\n </div>\n );\n};\n\nexport default ModalFooter;\n","import React from 'react';\nimport cx from 'classnames';\nimport { Text } from '../../../atoms';\nimport styles from './ModalHeader.module.scss';\nimport type { ModalHeaderProps } from './ModalHeader.types';\nimport useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\n\n/**\n * Modal Header component definition.\n */\nconst ModalHeader = (props: ModalHeaderProps) => {\n const {\n className,\n title,\n iconButton,\n ...restProps\n } = props;\n\n let titleComponent, iconButtonComponent;\n\n // Render icon button if passed\n if (iconButton) {\n iconButtonComponent = (\n <>\n {iconButton}\n </>\n )\n }\n\n const variantProps = useBuildVariantProps('modal-header', {}, {});\n\n return (\n <div className={cx(styles.modalHeader, className)} {...variantProps} {...restProps}>\n <Text\n className={styles.title}\n weight=\"Medium\"\n type=\"BodyMedium\"\n >\n {title}\n </Text>\n {iconButtonComponent}\n </div>\n );\n};\n\nexport default ModalHeader;\n","import React from 'react';\nimport cx from 'classnames';\nimport styles from './Nav.module.scss';\nimport type { NavProps } from './Nav.types';\n\nconst Nav = (props: NavProps) => {\n const {\n className,\n children,\n ...restProps\n } = props;\n return (\n <nav\n {...restProps} \n className={cx(styles.nav, className)}\n >\n <ul className={styles.navItems}>\n {children}\n </ul>\n </nav>\n );\n};\nexport default Nav;\n","import React from 'react';\nimport cx from 'classnames';\nimport styles from './NavItem.module.scss';\nimport type { NavItemProps } from './NavItem.types';\n\nconst NavItem = (props: NavItemProps) => {\n const {\n className,\n children,\n ...restProps\n } = props;\n return (\n <li\n {...restProps} \n className={cx(styles.navItem, className)}\n >\n {children}\n </li>\n );\n};\nexport default NavItem;\n","import cx from 'classnames';\nimport { useEffect } from 'react';\nimport { getClickAccessibilityProps } from '../../../utils/accessibilityUtils';\nimport useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\nimport { Icon } from '../../../atoms';\nimport { WrapTextNodes } from '../../../utils/WrapTextNodes';\nimport { useSelectContext } from '../Select.Context';\nimport { checkIsSelected } from '../Select.utils';\nimport styles from './Option.module.scss';\nimport type { OptionProps } from './Option.types';\n\n/**\n * Functional component representing an option within a select dropdown.\n *\n * @param props - Props for configuring the Option component.\n * @returns Element representing the option.\n */\nconst Option = (props: OptionProps) => {\n const {\n disabled = false,\n leadingIcon,\n trailingIcon,\n value,\n className,\n children,\n closeSelectOptions, // This prop is for internal use, not to be set by the user\n ...restProp\n } = props;\n\n // Accessing Select context to manage selection state\n const { selectedValue, updateSelectedValue, registerOption } = useSelectContext();\n const isSelected = checkIsSelected(String(value), selectedValue);\n\n // Register this option's value-label pair\n useEffect(() => {\n registerOption(value, children);\n }, [value, children, registerOption]);\n\n let leadingIconComponent, trailingIconComponent, content;\n\n // Render leading icon if provided\n if (leadingIcon) {\n leadingIconComponent = <div className={cx(styles.leadingIcon)}>{leadingIcon}</div>;\n }\n\n // Render trailing icon if provided\n const trailingIconView = trailingIcon ?? (\n <Icon\n icon='Check'\n style='Outlined'\n size='Small'\n />\n );\n\n if(isSelected) {\n trailingIconComponent = trailingIconView;\n }\n\n // Render children content if provided\n if (children) {\n content = <div className={cx(styles.content)}>\n <WrapTextNodes whiteSpaceNoWrap={true} className={styles.text}>{children}</WrapTextNodes>\n </div>;\n }\n\n /**\n * Handles click event on the option.\n * Updates the selected value if the option is not disabled.\n */\n const handleClick = () => {\n if (!disabled) {\n updateSelectedValue(value);\n closeSelectOptions?.();\n }\n };\n\n const variantProps = useBuildVariantProps(\n 'select-list-item',\n {\n type: isSelected ? 'selected' : 'unselected',\n },\n {\n disabled,\n }\n );\n\n const accessibilityProps = getClickAccessibilityProps({\n actions: {\n onClick: handleClick,\n },\n addIndex: true,\n role: 'option',\n });\n\n return (\n <li\n {...restProp}\n className={cx(\n styles.option,\n { [styles.selected]: isSelected },\n className\n )}\n onClick={handleClick}\n {...accessibilityProps}\n {...variantProps}\n >\n {leadingIconComponent}\n {content}\n {trailingIconComponent}\n </li>\n );\n};\n\nexport default Option;\n","import React from 'react';\nimport cx from 'classnames';\n\nimport PaginationNumberField from '../PaginationNumberField';\nimport styles from './Pagination.module.scss';\nimport { PaginationProps } from './Pagination.types';\nimport usePresenter from './Pagination.presenter';\nimport { Icon, IconButton, Text } from '../../atoms';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\nconst Pagination = (props: PaginationProps) => {\n const {\n currentPage,\n updateCurrentPage,\n nextPage,\n previousPage,\n totalPages,\n nextPageEnabled,\n previousPageEnabled,\n } = usePresenter(props);\n\n const previousPageIcon = props.previousPageIcon || <Icon icon=\"ChevronLeft\" size=\"Small\" style=\"Outlined\" />;\n const nextPageIcon = props.nextPageIcon || <Icon icon=\"ChevronRight\" size=\"Small\" style=\"Outlined\" />;\n\n const variantProps = useBuildVariantProps(\n \"pagination\",\n {\n style: \"default\",\n },\n {},\n );\n\n return (\n <div className={cx(styles.pagination, props.className)} {...variantProps}>\n <div className={styles.paginationContentContainer}>\n <IconButton\n className={styles.backButton}\n disabled={!previousPageEnabled}\n onClick={previousPage}\n icon={previousPageIcon}\n size=\"Small\"\n style=\"Secondary\"\n type=\"Ghost\"\n />\n <div className={styles.paginationValuesContainer}>\n <PaginationNumberField\n className={styles.paginationNumberField}\n page={currentPage}\n totalPages={totalPages}\n onPageChanged={updateCurrentPage}\n />\n <Text\n className={styles.totalPages}\n type=\"BodySmall\"\n >\n of {totalPages}\n </Text>\n </div>\n <IconButton\n className={styles.forwardButton}\n disabled={!nextPageEnabled}\n onClick={nextPage}\n icon={nextPageIcon}\n size=\"Small\"\n style=\"Secondary\"\n type=\"Ghost\"\n />\n </div>\n </div>\n );\n};\n\nexport default Pagination;\n","import { useEffect, useState } from \"react\";\nimport { PaginationProps } from \"./Pagination.types\";\n\nconst usePresenter = (props: PaginationProps) => {\n const { currentPage = 1, totalPages = 1 , updateCurrentPage } = props;\n const [currentPageState, setCurrentPageState] = useState(currentPage); \n const nextPageEnabled = currentPageState < totalPages;\n const previousPageEnabled = currentPageState > 1;\n\n useEffect(() => {\n setCurrentPageState(currentPage);\n }, [currentPage]); \n\n const nextPage = () => {\n setCurrentPageState(currentPageState + 1);\n if (updateCurrentPage) {\n updateCurrentPage(currentPageState + 1);\n }\n }\n\n const previousPage = () => {\n setCurrentPageState(currentPageState - 1);\n if (updateCurrentPage) {\n updateCurrentPage(currentPageState - 1);\n }\n }\n\n const onPageChanged = (page: number) => {\n setCurrentPageState(page);\n if (updateCurrentPage) {\n updateCurrentPage(page);\n }\n }\n\n return {\n currentPage: currentPageState,\n updateCurrentPage: onPageChanged,\n nextPage,\n previousPage,\n totalPages: totalPages || 1,\n nextPageEnabled,\n previousPageEnabled,\n }\n};\n\nexport default usePresenter;","import React from 'react';\nimport cx from 'classnames';\n\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport Icon from '../Icon';\nimport IconButton from '../IconButton';\nimport Input from '../Input';\nimport styles from './Password.module.scss';\nimport usePresenter from './Password.presenter';\nimport { PasswordProps } from './Password.types';\n\nconst Password = (props: PasswordProps) => {\n const {\n showPassword,\n togglePassword,\n variantProps,\n hideTrailingIcon,\n otherPasswordProps,\n } = usePresenter(props);\n\n const visibilityOffIcon = <Icon className={cx({ [styles.hide]: !showPassword })} icon={'VisibilityOff'} size='Small' />;\n const visibilityOnIcon = <Icon className={cx({ [styles.hide]: showPassword })} icon={'VisibilityOn'} size='Small' />;\n\n return (\n <Input\n {...otherPasswordProps}\n className={cx(styles.password, props.className)}\n inputType={showPassword ? 'Text' : 'Password'}\n trailingIcon={(\n <ConditionalView condition={!hideTrailingIcon}>\n <IconButton\n className={styles.toggle}\n size='Small'\n type='Ghost'\n icon={(\n <>\n {visibilityOffIcon}\n {visibilityOnIcon}\n </>\n )}\n onClick={togglePassword}\n disabled={props.disabled}\n />\n </ConditionalView>\n )}\n {...variantProps}\n />\n );\n\n};\n\nexport default Password;","import { useState } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { PasswordProps } from './Password.types';\n\nconst usePresenter = (props: PasswordProps) => {\n const {\n className,\n hideTrailingIcon,\n ...otherProps\n } = props;\n\n const [showPassword, setShowPassword] = useState(false);\n const togglePassword = () => {\n setShowPassword((prev) => !prev);\n };\n\n // not adding state flags as they will be added to the input component\n const variantProps = useBuildVariantProps(\n 'password',\n );\n\n return {\n showPassword,\n togglePassword,\n variantProps,\n hideTrailingIcon,\n otherPasswordProps: otherProps,\n };\n};\n\nexport default usePresenter;","import React from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./ProgressBar.module.scss\";\nimport { ProgressBarProps } from \"./ProgressBar.types\";\nimport useBuildVariantProps from \"../../../modules/theme/useBuildVariantProps\";\nimport { calculatePercentageValue } from \"./ProgressBar.utils\";\n\nconst ProgressBar: React.FC<ProgressBarProps> = ({\n value,\n min = 0,\n max = 100,\n // orientation = \"Horizontal\",\n showLabel,\n label,\n className,\n}) => {\n // const isVertical = orientation === \"Vertical\";\n const percentage = calculatePercentageValue(value, min, max);\n const variantProps = useBuildVariantProps(\n \"progress-bar\",\n {\n // orientation,\n style: percentage > 0 ? \"Filled\" : \"Empty\",\n },\n {},\n );\n\n return (\n <div\n className={cx(styles.progressBar, className)}\n role=\"progressbar\"\n aria-valuenow={value}\n aria-valuemin={min}\n aria-valuemax={max}\n {...variantProps}\n >\n {/* The progress indicator bar, dynamically setting width/height based on orientation */}\n <div\n className={styles.progressIndicator}\n style={{ width: `${percentage}%` }}\n // style={{\n // width: isVertical ? \"100%\" : `${percentage}%`,\n // height: isVertical ? `${percentage}%` : \"100%\",\n // }}\n />\n\n {/* Show label if enabled, either as a percentage or custom text */}\n {showLabel && (\n <div className={styles.label}>\n {showLabel === \"Percentage\" ? `${Math.round(percentage)}%` : label}\n </div>\n )}\n </div>\n );\n};\n\nexport default ProgressBar;\n","export const calculatePercentageValue = (value: number, min: number, max: number): number => {\n // Ensure the value stays within the min-max range\n const clampedValue = Math.max(min, Math.min(value, max));\n\n // Calculate the percentage representation of the progress\n return ((clampedValue - min) / (max - min)) * 100;\n}","import cx from 'classnames';\nimport styles from './RadioGroup.module.scss';\nimport usePresenter from './RadioGroup.presenter';\nimport type { RadioGroupProps } from './RadioGroup.types';\n\nconst RadioGroup = (props: RadioGroupProps) => {\n const {\n orientation = 'vertical',\n radioButtons,\n variantProps,\n } = usePresenter(props);\n\n return (\n <div\n className={cx(styles.radioGroup, {\n [styles[orientation]]: orientation,\n }, props.className)}\n role=\"radiogroup\"\n {...variantProps}\n >\n {radioButtons}\n </div>\n );\n};\n\nexport default RadioGroup; ","import useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { useControlledValue } from '../FormField/useControlledValue';\nimport { RadioGroupProps } from './RadioGroup.types';\nimport { injectRadioButtonProps } from './RadioGroup.utils';\n\nconst usePresenter = (props: RadioGroupProps) => {\n const {\n children,\n value,\n onValueChange,\n disabled,\n invalid,\n required,\n orientation = 'vertical',\n } = props;\n\n const { value: selectedValue, onValueChange: handleValueChange } = useControlledValue<string | number>({ value, onValueChange, defaultValue: '' });\n\n const variantProps = useBuildVariantProps(\n 'radio-group',\n {\n orientation,\n },\n {\n disabled,\n invalid,\n },\n );\n\n return {\n radioButtons: injectRadioButtonProps(children, selectedValue, handleValueChange),\n orientation,\n variantProps,\n };\n};\n\nexport default usePresenter;","import { ConditionalView } from \"../ConditionalView\";\nimport { RenderStateViewProps } from \"./RenderStateView.types\";\nimport { usePresenter } from \"./usePresenter\";\n\nconst RenderStateView = <T = unknown, P = any>(props: RenderStateViewProps<T, P>) => {\n const { \n data, \n isLoading,\n errorData,\n filled: Filled, \n empty: Empty, \n loading: Loading,\n error: Error,\n ...rest\n } = props;\n const { showError, showLoading, showEmpty, showFilled } = usePresenter(props);\n\n return (\n <>\n <ConditionalView condition={showError}>\n {Error && <Error error={errorData as Error | string} {...rest as any} />}\n </ConditionalView>\n\n <ConditionalView condition={showLoading}>\n {Loading && <Loading {...rest as any} />}\n </ConditionalView>\n\n <ConditionalView condition={showEmpty}>\n {Empty && <Empty {...rest as any} />}\n </ConditionalView>\n\n <ConditionalView condition={showFilled}>\n {Filled && <Filled data={data as T} {...rest as any} />}\n </ConditionalView>\n </>\n );\n};\n\nexport default RenderStateView;\n","import React, { Children } from 'react';\nimport cx from 'classnames';\nimport styles from './SelectListItem.module.scss';\nimport { SelectListItemProps } from \"./SelectListItem.types\";\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\nconst SelectListItem = (props: SelectListItemProps) => {\n const {\n className,\n leadingIcon,\n trailingIcon,\n onClick,\n children,\n disabled,\n ...restProps\n } = props;\n\n let leadingIconComponent, trailingIconComponent, content;\n\n // Render leading icon if it is passed\n if (leadingIcon) {\n leadingIconComponent = <div className={styles.leadingIcon}>\n {leadingIcon}\n </div>;\n }\n\n // Render training icon if it is passed\n if (trailingIcon) {\n trailingIconComponent = <div className={styles.trailingIcon}>\n {trailingIcon}\n </div>;\n }\n\n if (children) {\n content = <div className={styles.content}>\n <WrapTextNodes className={styles.text}>\n {children}\n </WrapTextNodes>\n </div>;\n }\n\n const variantProps = useBuildVariantProps(\n 'list-item',\n {},\n { disabled },\n );\n\n\n return (\n <div\n className={cx(styles.listItem, className)}\n onClick={onClick}\n tabIndex={0}\n {...variantProps}\n {...restProps}\n >\n {leadingIconComponent}\n {content}\n {trailingIconComponent}\n </div>\n );\n};\n\nexport default SelectListItem;\n","import classNames from 'classnames';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { Modal } from '../../molecules';\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport { FadeTransition } from './FadeTransition';\nimport styles from './SlideOutPanel.module.scss';\nimport { SlideOutPanelProps } from './SlideOutPanel.types';\n\nconst SlideOutPanel = (props: SlideOutPanelProps) => {\n const {\n className,\n children,\n direction = 'Right',\n size = 'Medium',\n // Modal props\n backdrop,\n disableBackdropDismiss,\n onHide,\n renderBackdrop,\n show,\n } = props;\n\n const variantProps = useBuildVariantProps(\n 'slide-out-panel',\n { size, direction },\n );\n\n return (\n <Modal\n className={classNames(\n styles.slideOutPanel,\n styles[`slideOutPanel--${size.toLowerCase()}`],\n styles[`slideOutPanel--${direction?.toLowerCase()}`],\n className,\n )}\n backdrop={backdrop}\n disableBackdropDismiss={disableBackdropDismiss}\n onHide={onHide}\n renderBackdrop={renderBackdrop}\n show={show}\n Transition={FadeTransition}\n {...variantProps}\n >\n {children && <WrapTextNodes>{children}</WrapTextNodes>}\n </Modal>\n )\n};\n\nexport default SlideOutPanel","import cx from 'classnames';\nimport { useCallback } from 'react';\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport Text from '../Text';\nimport Tooltip from '../Tooltip';\nimport styles from './Slider.module.scss';\nimport usePresenter from './Slider.presenter';\nimport { SliderProps } from './Slider.types';\n\nconst Slider = (props: SliderProps) => {\n const {\n variantProps,\n sliderRef,\n focusedThumb,\n getPercentage,\n enableRange,\n value,\n showMax,\n max,\n showMin,\n min,\n startDrag,\n showValueOnThumb,\n disabled,\n otherSliderProps,\n } = usePresenter(props);\n\n const toolTipView = useCallback(\n (show: boolean, value: number, index: number) => {\n const sliderThumb = <div\n key={index}\n className={styles.sliderThumb}\n style={{ left: `${getPercentage(value)}%` }}\n onTouchStart={startDrag(index)}\n />;\n\n if (showValueOnThumb && show) {\n return <Tooltip\n isVisible={showValueOnThumb && show}\n action='Follow'\n target={sliderThumb}\n style='Outlined'\n >\n {value}\n </Tooltip>;\n }\n return sliderThumb;\n },\n [showValueOnThumb],\n );\n\n return (\n <div\n className={cx(styles.sliderContainer,\n {\n [styles.disabled]: disabled,\n },\n props.className)}\n {...variantProps}\n {...otherSliderProps}\n >\n <ConditionalView condition={showMin}>\n <Text className={styles.sliderLabel}>{min}</Text>\n </ConditionalView>\n <div\n id={props.id}\n ref={sliderRef}\n className={styles.sliderTrack}\n onMouseDown={startDrag()}\n onTouchStart={startDrag()}\n >\n <div\n className={styles.sliderFill}\n style={\n enableRange\n ? {\n left: `${getPercentage((value as [number, number])[0])}%`,\n right: `${100 - getPercentage((value as [number, number])[1])}%`,\n }\n : {\n left: `0%`,\n right: `${100 - getPercentage(value as number)}%`,\n }\n }\n />\n {enableRange ? (\n (value as [number, number]).map((val, index) =>\n toolTipView(focusedThumb === index, val, index)\n )\n ) : (\n toolTipView(focusedThumb === 0, value as number, 0)\n )}\n </div>\n {showMax && <Text className={styles.sliderLabel}>{max}</Text>}\n </div>\n );\n};\n\nexport default Slider;\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { useControlledValue } from '../../molecules/FormField/useControlledValue';\nimport { SliderProps } from './Slider.types';\n\nconst usePresenter = (props: SliderProps) => {\n const {\n min = 0,\n max = 100,\n step = 1,\n value: propValue,\n onValueChange,\n showMin,\n showMax,\n showValueOnThumb,\n enableRange = false,\n disabled = false,\n invalid = false,\n required = false,\n className,\n ...otherSliderProps\n } = props;\n\n const { value: sliderValue, onValueChange: handleValueChange } = useControlledValue<number | [number, number]>({ value: propValue, onValueChange, defaultValue: min });\n\n const sliderRef = useRef<HTMLDivElement | null>(null);\n\n const value = useMemo(\n () => enableRange \n ? (sliderValue as [number, number]) || [min, max]\n : (sliderValue as number) || min,\n [enableRange, sliderValue, min, max]\n );\n\n const [dragging, setDragging] = useState<number | null>(null);\n const [focusedThumb, setFocusedThumb] = useState<number | null>(null);\n\n const getPercentage = useCallback(\n (val: number) => ((val - min) / (max - min)) * 100,\n [min, max]\n );\n\n const getClosestThumb = useCallback((clientX: number) => {\n if (!enableRange || !sliderRef.current) return 0;\n const { left, width } = sliderRef.current.getBoundingClientRect();\n const percent = ((clientX - left) / width) * 100;\n\n return Math.abs(getPercentage((value as [number, number])[0]) - percent) <\n Math.abs(getPercentage((value as [number, number])[1]) - percent)\n ? 0\n : 1;\n }, [enableRange, getPercentage, value]);\n\n const updateValueFromPosition = useCallback((clientX: number, index?: number) => {\n if (!sliderRef.current) return;\n const { left, width } = sliderRef.current.getBoundingClientRect();\n let percent = (clientX - left) / width;\n let newValue = Math.round((min + percent * (max - min)) / step) * step;\n newValue = Math.min(max, Math.max(min, newValue));\n\n handleValueChange((prev) => {\n if (enableRange) {\n const newValues = [...(prev as [number, number])] as [number, number];\n newValues[index as number] = newValue;\n newValues.sort((a, b) => a - b);\n return newValues;\n } else {\n return newValue;\n }\n });\n }, [min, max, step, enableRange, handleValueChange]);\n\n const startDrag = useCallback(\n (index?: number) => (e: React.MouseEvent | React.TouchEvent) => {\n if (!disabled) {\n e.stopPropagation();\n const clientX = 'touches' in e ? e.touches[0].clientX : e.clientX;\n const closestIndex = enableRange ? index ?? getClosestThumb(clientX) : 0;\n setDragging(closestIndex);\n setFocusedThumb(closestIndex);\n updateValueFromPosition(clientX, closestIndex);\n }\n },\n [disabled, enableRange, getClosestThumb, updateValueFromPosition]\n );\n\n useEffect(() => {\n const moveDrag = (e: MouseEvent | TouchEvent) => {\n if (dragging !== null) {\n updateValueFromPosition(\n 'touches' in e ? e.touches[0].clientX : e.clientX,\n dragging\n );\n }\n };\n\n const stopDrag = () => {\n setDragging(null);\n setFocusedThumb(null);\n };\n\n window.addEventListener('mousemove', moveDrag);\n window.addEventListener('mouseup', stopDrag);\n window.addEventListener('touchmove', moveDrag);\n window.addEventListener('touchend', stopDrag);\n\n return () => {\n window.removeEventListener('mousemove', moveDrag);\n window.removeEventListener('mouseup', stopDrag);\n window.removeEventListener('touchmove', moveDrag);\n window.removeEventListener('touchend', stopDrag);\n };\n }, [dragging, updateValueFromPosition]);\n\n const variantProps = useBuildVariantProps(\n 'slider',\n {\n },\n {\n disabled,\n },\n );\n\n return {\n min,\n max,\n showMin,\n showMax,\n showValueOnThumb,\n enableRange,\n disabled,\n value,\n dragging,\n focusedThumb,\n sliderRef,\n getPercentage,\n startDrag,\n variantProps,\n otherSliderProps,\n };\n};\n\nexport default usePresenter;","import React from 'react';\nimport cx from 'classnames';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport styles from './Table.module.scss';\nimport type { TableProps } from './Table.types';\n\nconst Table = (props: TableProps) => {\n const {\n className,\n children,\n stickyHeader = false,\n ...otherProps\n } = props;\n\n const tableClassName = cx(\n styles.table,\n {\n [styles.stickyHeader]: stickyHeader,\n },\n className\n );\n\n const variantProps = useBuildVariantProps(\n 'table', {}, {}\n );\n\n return (\n <table className={tableClassName} {...otherProps} {...variantProps}>\n {children}\n </table>\n );\n};\n\nexport default Table;\n","import React from 'react';\nimport cx from 'classnames';\nimport useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\nimport styles from './TableBody.module.scss';\nimport type { TableBodyProps } from './TableBody.types';\n\nconst TableBody = (props: TableBodyProps) => {\n const {\n className,\n children,\n ...otherProps\n } = props;\n\n const variantProps = useBuildVariantProps(\n 'table',\n {},\n {},\n );\n\n return (\n <tbody className={cx(styles.tableBody, className)} { ...otherProps } { ...variantProps }>\n {children}\n </tbody>\n );\n};\nexport default TableBody;\n","import React from 'react';\nimport cx from 'classnames';\nimport useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\nimport { WrapTextNodes } from '../../../utils/WrapTextNodes';\nimport styles from './TableCell.module.scss';\nimport type { TableCellProps } from './TableCell.types';\n\nconst TableCell = (props: TableCellProps) => {\n const {\n className,\n children,\n ...otherProps\n } = props;\n\n const variantProps = useBuildVariantProps(\n 'table-cell',\n {},\n {},\n );\n\n return (\n <td className={cx(styles.tableCell, className)} { ...otherProps } { ...variantProps }>\n <WrapTextNodes className={styles.text}>{children}</WrapTextNodes>\n </td>\n );\n};\nexport default TableCell;\n","import React from 'react';\nimport cx from 'classnames';\nimport useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\nimport styles from './TableHeader.module.scss';\nimport type { TableHeaderProps } from './TableHeader.types';\n\nconst TableHeader = (props: TableHeaderProps) => {\n const {\n className,\n children,\n ...otherProps\n } = props;\n\n const variantProps = useBuildVariantProps(\n 'table',\n {},\n {},\n );\n\n return (\n <thead className={cx(styles.tableHeader, className)} { ...otherProps } { ...variantProps }>\n {children}\n </thead>\n );\n};\nexport default TableHeader;\n","import React from 'react';\nimport cx from 'classnames';\nimport useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\nimport { WrapTextNodes } from '../../../utils/WrapTextNodes';\nimport styles from './TableHeaderCell.module.scss';\nimport type { TableHeaderCellProps } from './TableHeaderCell.types';\n\nconst TableHeaderCell = (props: TableHeaderCellProps) => {\n const {\n className,\n children,\n ...otherProps\n } = props;\n\n const variantProps = useBuildVariantProps(\n 'table-header-cell',\n {},\n {},\n );\n\n return (\n <th className={cx(styles.tableHeaderCell, className)} { ...otherProps } { ...variantProps }>\n <WrapTextNodes className={styles.text}>{children}</WrapTextNodes>\n </th>\n );\n};\nexport default TableHeaderCell;\n","import React from 'react';\nimport cx from 'classnames';\nimport useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\nimport styles from './TableRow.module.scss';\nimport type { TableRowProps } from './TableRow.types';\n\nconst TableRow = (props: TableRowProps) => {\n const {\n className,\n children,\n ...otherProps\n } = props;\n\n const variantProps = useBuildVariantProps(\n 'table-row',\n {},\n {},\n );\n\n return (\n <tr className={cx(styles.tableRow, className)} { ...otherProps } { ...variantProps }>\n {children}\n </tr>\n );\n};\nexport default TableRow;\n","import React from 'react';\nimport TabsComponent from './Tabs';\nimport { TabProvider, useTab } from './Tabs.Context';\nimport type { TabsProps } from './Tabs.types';\n\nexport type { TabsProps };\nexport { useTab };\n\n// Wrap the Tabs component with the TabProvider\nconst Tabs = (props: TabsProps) => {\n const {\n value,\n style,\n onClick,\n ...restProps\n } = props;\n return (\n <TabProvider value={value} style={style} onClick={onClick} >\n <TabsComponent {...restProps} style={style}/>\n </TabProvider>\n );\n};\nexport default Tabs;\n","import { useMemo } from 'react';\nimport type { ComponentType, ReactElement } from 'react';\n\n/**\n * A hook that takes a component type and props and returns a memoized React element.\n * This is useful for creating reusable component instances with memoization to prevent\n * unnecessary re-renders when props haven't changed.\n * \n * @template T - The props type for the component\n * @param Component - React component to render\n * @param props - Props to pass to the component\n * @returns Memoized React element\n * \n * @example\n * ```tsx\n * const MyComponent = ({ title, count }) => (\n * <div>\n * <h1>{title}</h1>\n * <p>Count: {count}</p>\n * </div>\n * );\n * \n * function ParentComponent() {\n * const [count, setCount] = useState(0);\n * \n * // This view will only re-render when title or count changes\n * const inflatedView = useInflateView(MyComponent, {\n * title: 'My Title',\n * count: count\n * });\n * \n * return (\n * <div>\n * {inflatedView}\n * <button onClick={() => setCount(c => c + 1)}>\n * Increment\n * </button>\n * </div>\n * );\n * }\n * ```\n */\nexport const useInflateView = <T extends ComponentType<any>>(\n Component: T,\n props: React.ComponentProps<T>\n): ReactElement => {\n return useMemo(\n () => <Component {...props} />,\n [Component, props]\n );\n};\n\nexport default useInflateView;","import { useCallback, useId } from 'react';\nimport { useModalContext } from './ModalContext';\nimport type { ComponentType } from 'react';\nimport type { ModalComponentProps, UseModalReturn } from './ModalContext.types';\n\n/**\n * Custom hook that provides an abstraction layer over the modal context.\n * Takes a component type and returns functions to open/close that specific modal.\n * Uses React's useId hook to generate a unique identifier for the modal instance.\n * \n * @template T - The props type for the modal component (must extend ModalComponentProps)\n * @param Component - React component to use for the modal\n * @returns An object containing openModal, closeModal functions and the modalId\n * \n * @example\n * ```tsx\n * function MyComponent() {\n * const confirmationModal = useModal(ConfirmationModal);\n * \n * const handleDelete = () => {\n * confirmationModal.openModal({\n * title: 'Delete Item',\n * message: 'Are you sure you want to delete this item?',\n * show: true,\n * onConfirm: () => {\n * // perform delete\n * confirmationModal.closeModal();\n * },\n * onCancel: confirmationModal.closeModal\n * });\n * };\n * \n * return <button onClick={handleDelete}>Delete</button>;\n * }\n * ```\n */\nexport const useModal = <T extends ModalComponentProps>(\n Component: ComponentType<T>\n): UseModalReturn<T> => {\n const { openModal: contextOpenModal, closeModal: contextCloseModal } = useModalContext();\n const modalId = useId();\n\n const openModal = useCallback((props: T) => {\n contextOpenModal(modalId, Component, props);\n }, [contextOpenModal, Component, modalId]);\n\n const closeModal = useCallback(() => {\n contextCloseModal(modalId);\n }, [contextCloseModal, modalId]);\n\n return {\n openModal,\n closeModal,\n modalId\n };\n};"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","rejected","result","done","then","__generator","body","f","y","_","label","sent","trys","ops","g","create","Iterator","verb","Symbol","iterator","v","op","TypeError","pop","push","__spreadArray","to","from","pack","ar","l","Array","slice","concat","SuppressedError","nativeBooleanAttributes","useBuildVariantProps","componentName","variants","stateFlags","componentVariantOverride","useMemo","variantString","entries","sort","_a","_b","keyA","keyB","localeCompare","map","input","split","filter","Boolean","join","toLowerCase","stateFlagsStrings","reduce","acc","key","includes","Spinner","className","componentVariant","variantProps","undefined","_jsx","role","cx","styles","children","jsx","fitMap","Fit","Fill","Crop","Image","props","src","fit","fallback","onLoad","onError","_c","showLoading","aspectRatio","_d","alt","otherImageProps","_e","useState","imgSrc","setImgSrc","_f","imgWidth","setImgWidth","_g","imgHeight","setImgHeight","_h","isLoading","setIsLoading","useEffect","naturalAspectRatio","aspectPadding","heightRatio","widthRatio","width","parseInt","height","isNaN","_jsxs","image","imageContainer","aspect","style","paddingTop","content","currentTarget","naturalWidth","naturalHeight","error","loadingIcon","typesMap","Heading1","Heading2","Heading3","Heading4","Heading5","Heading6","BodyLarge","BodyMedium","BodySmall","weightNameMap","Thin","ExtraLight","Light","Regular","Medium","SemiBold","Bold","ExtraBold","Black","ExtraBlack","tansformMap","None","Capitalize","UpperCase","LowerCase","componentTypeMap","Text","type","weight","noWrap","whiteSpaceNoWrap","italic","decoration","transform","_j","ellipsis","as","TextComponent","text","nowrap","underline","strikethrough","WrapTextNodes","textProps","_Fragment","React","Children","child","Button","leadingIconComponent","trailingIconComponent","loadingComponent","appearance","size","leadingIcon","trailingIcon","loading","disabled","onClick","actionType","restProps","event","svgCache","pendingRequests","sizeMap","Small","Large","Icon","icon","name","svgContent","setSvgContent","setLoading","setError","isMounted","pendingRequest","svgText","console","err_1","fetchRequest","fetch","response","ok","Error","status","statusText","err_2","useDynamicSVGImport","svg","dangerouslySetInnerHTML","__html","IconButton","otherProps","ConditionalView","condition","isValidElement","useControlledValue","onValueChange","defaultValue","internalValue","setInternalValue","useCallback","newValue","prevValue","resolvedValue","mergeRefs","refs","_i","forEach","ref","refString","toString","current","inputTypeMap","Number","Email","Password","Input","forwardRef","invalid","inputType","required","preProcessInput","otherInputProps","internalInputRef","useRef","handleValueChange","onInputChanged","target","updatedValue","inputRef","usePresenter","onChange","id","TextArea","otherTextAreaProps","textAreaValue","textArea","Breakpoint","Fragment","useCheckboxField","checked","defaultChecked","isChecked","setIsChecked","onCheckboxChanged","Toggle","labelAlignment","onToggleChanged","ToggleButton","handleChange","TOOLTIP_ARROW_CONSTANTS","ARROW_DIMENSIONS_MAP","Top","Bottom","Left","Right","TOOLTIP_VARIANT_MAP","isEmpty","data","isArray","useDebounce","callback","delay","timeoutRef","callbackRef","debouncedCallback","args","clearTimeout","setTimeout","cancel","getClickAccessibilityProps","params","actions","addIndex","elementProps","onKeyDown","preventDefault","log","onEsc","onTab","shiftKey","onArrowNavigation","tabIndex","Tooltip","direction","alignment","action","isVisible","visible","setVisible","top","left","position","setPosition","tooltipRef","targetRef","wrapperRef","arrowOffset","setArrowOffset","updatePosition","tooltipRect","getBoundingClientRect","targetRect","wrapperRect","top_1","followRect","firstElementChild","offset","window","addEventListener","removeEventListener","variantKey","baseVariant","arrowStyle","positions","arrowDimensions","showTooltip","hideTooltip","toggleTooltip","prev","onMouseEnter","onMouseLeave","CustomToggle","offContent","onContent","classNames","toggleWrapper","toggle","Chip","closeIconComponent","closeIcon","isDisabled","onClose","corner","isDismissible","closeIconView","stopPropagation","Checkbox","CheckboxItem","showRightButton","onRightButtonClick","rightButtonIcon","RadioButton","RadioButtonItem","isSelected","setIsSelected","NavContent","NavigateNavLink","navigate","useNavigate","componentVariantProp","textClassName","rest","navLink","NavLink","asButton","some","buildVariantOptions","component","classNameProp","buttonText","linkText","test","href","RouterNavLink","ContextMenu","List","align","HOOKS","defaults","_disable","allowInput","allowInvalidPreload","altFormat","altInput","altInputClass","animate","navigator","userAgent","ariaDateFormat","autoFillDefaultTime","clickOpens","closeOnSelect","conjunction","dateFormat","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enableSeconds","enableTime","errorHandler","err","warn","getWeek","givenDate","date","Date","getTime","setHours","setDate","getDate","getDay","week1","getFullYear","Math","round","hourIncrement","ignoredFocusElements","inline","locale","minuteIncrement","mode","monthSelectorType","nextArrow","noCalendar","now","onDayCreate","onDestroy","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","plugins","positionElement","prevArrow","shorthandCurrentMonth","showMonths","static","time_24hr","weekNumbers","wrap","english","weekdays","shorthand","longhand","months","daysInMonth","firstDayOfWeek","ordinal","nth","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","monthAriaLabel","hourAriaLabel","minuteAriaLabel","pad","number","int","bool","debounce","fn","wait","_this","arrayify","obj","toggleClass","elem","classList","add","remove","createElement","tag","document","textContent","clearNode","node","firstChild","removeChild","findParent","parentNode","createNumberInput","inputClassName","opts","wrapper","numInput","arrowUp","arrowDown","pattern","setAttribute","appendChild","getEventTarget","composedPath","doNothing","monthToStr","monthNumber","revFormat","D","F","dateObj","monthName","setMonth","G","hour","getHours","parseFloat","H","J","day","K","RegExp","M","shortMonth","S","seconds","setSeconds","U","unixSeconds","W","weekNum","weekNumber","Y","year","setFullYear","Z","ISODate","d","h","minutes","setMinutes","j","m","month","u","unixMillSeconds","w","tokenRegex","formats","toISOString","options","getMonth","getSeconds","getMinutes","String","substring","createDateFormatter","config","l10n","isMobile","frmt","overrideLocale","formatDate","c","arr","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","toFixed","format","datestr","trim","parseDate","matched","matchIndex","regexStr","token","isBackSlash","escaped","match","exec","val","compareDates","date1","date2","isBetween","ts","ts1","ts2","min","max","calculateSecondsSinceMidnight","hours","parseSeconds","secondsSinceMidnight","floor","duration","DAY","getDefaultHours","minDate","minHour","minMinutes","minSeconds","maxDate","maxHr","maxMinutes","_loop_1","source","keys","args_1","__spreadArrays","il","r","k","a","jl","DEBOUNCED_CHANGE_MS","FlatpickrInstance","element","instanceConfig","self","defaultOptions","flatpickr","defaultConfig","English","getClosestActiveElement","calendarContainer","getRootNode","activeElement","bindToInstance","bind","setCalendarWidth","requestAnimationFrame","visibility","display","daysContainer","daysWidth","days","offsetWidth","weekWrapper","removeProperty","updateTime","selectedDates","defaultDate","getMilliseconds","latestSelectedDateObj","isKeyDown","eventTarget","getAttribute","curValue","delta","which","isHourElem","hourElement","isMinuteElem","minuteElement","incrementNumInput","abs","timeWrapper","_input","setHoursFromInputs","updateValue","_debouncedChange","secondElement","limitMinHours","minTime","minDateHasTime","limitMaxHours","maxTime","maxDateHasTime","minBound","maxBound","currentTime","setHoursFromDate","onYearInput","changeYear","handler","ev","el","_handlers","triggerChange","triggerEvent","jumpToDate","jumpDate","jumpTo","oldYear","currentYear","oldMonth","currentMonth","message","buildMonthSwitch","redraw","timeIncrement","contains","inputElem","createEvent","dispatchEvent","createDay","_dayNumber","dateIsEnabled","isEnabled","dayElement","$i","todayDateElem","isDateSelected","selectedDateElem","isDateInRange","insertAdjacentHTML","focusOnDayElem","targetNode","focus","onMouseOver","getFirstAvailableDay","startMonth","endMonth","startIndex","endIndex","focusOnDay","dayFocused","isInView","startElem","givenMonth","loopDelta","numMonthDays","changeMonth","getNextAvailableDay","buildMonthDays","firstOfMonth","prevMonthDays","utils","getDaysInMonth","createDocumentFragment","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayNumber","dayIndex","dayNum","dayContainer","buildDays","frag","shouldBuildMonth","monthsDropdownContainer","innerHTML","selected","buildMonth","monthElement","container","monthNavFragment","selectedMonth","yearInput","tabindex","yearElement","getElementsByTagName","buildMonths","monthNav","prevMonthNav","yearElements","monthElements","nextMonthNav","buildWeekdays","weekdayContainer","updateWeekdays","splice","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","updateNavigationCurrentMonth","isCalendarElem","documentClick","isOpen","eventTarget_1","isCalendarElement","lostFocus","path","relatedTarget","isIgnored","timeContainer","close","clear","newYear","newYearNum","isNewYear","dateToCheck","enable","array","parsed","onBlur","isInput","valueChanged","trimEnd","getDateStr","allowKeydown","allowInlineKeydown","keyCode","blur","open","isTimeObj","focusAndClose","selectDate","delta_1","ctrlKey","currentYearElement","elems","pluginElements","x","charAt","cellClass","hoverDate","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","rContainer","querySelectorAll","dayElem","timestamp","outOfRange","onResize","positionCalendar","minMaxDateSetter","inverseDateObj","removeAttribute","getInputElem","querySelector","setupLocale","l10ns","default","JSON","parse","stringify","dataset","customPositionElement","_positionElement","calendarHeight","offsetHeight","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","distanceFromBottom","innerHeight","bottom","showOnTop","pageYOffset","pageXOffset","isCenter","isRight","right","rightMost","centerMost","doc","editableSheet","styleSheets","sheet","cssRules","head","getDocumentStyleSheet","bodyWidth","centerLeft","centerIndex","centerStyle","insertRule","centerBefore","msMaxTouchPoints","selectedDate","shouldChangeMonth","selectedIndex","b","single","range","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","triggerChangeEvent","toInitial","mobileInput","_initialDate","_createElement","destroy","lastChild","insertBefore","_type","click","wasOpen","select","set","option","CALLBACKS","setSelectedDate","updatePositionElement","inputDate","dates","parseDateRules","rule","hooks","initEvent","specificFormat","dObj","mobileFormatStr","onMonthNavClick","isPrevMonth","isNextMonth","boolOpts","userConfig","defineProperty","get","_enable","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","hook","pluginConf","parseConfig","nodeName","placeholder","nextSibling","setupInputs","preloadedDate","setupDates","yr","fragment","__hidePrevMonthArrow","__hideNextMonthArrow","innerContainer","buildWeeks","separator","hourInput","minuteInput","military2ampm","secondInput","title","buildTime","customAppend","appendTo","nodeType","build","evt","setupMobile","debouncedResize","ontouchstart","capture","selText","bindEvents","isSafari","init","_flatpickr","nodeList","nodes","HTMLElement","instances","HTMLCollection","NodeList","selector","Node","en","localize","setDefaults","jQuery","fp_incr","process","env","NODE_ENV","reactIsModule","exports","for","q","z","$$typeof","A","reactIs_production_min","AsyncMode","ConcurrentMode","ContextProvider","Element","ForwardRef","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","require$$0","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","object","$$typeofType","ContextConsumer","Lazy","hasWarnedAboutDeprecatedIsAsyncMode","reactIs_development","isPortal","propIsEnumerable","objectAssign","test1","getOwnPropertyNames","test2","fromCharCode","test3","letter","shouldUseNative","symbols","toObject","ReactPropTypesSecret_1","has","Function","ReactIs","propTypesModule","require$$1","ReactPropTypesSecret","require$$2","require$$3","checkPropTypes","printWarning","loggedTypeFailures","typeSpecs","values","location","getStack","typeSpecName","ex","stack","resetWarningCache","checkPropTypes_1","require$$4","emptyFunctionThatReturnsNull","factoryWithTypeCheckers","throwOnDirectAccess","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","ANONYMOUS","ReactPropTypes","createPrimitiveTypeChecker","bigint","func","string","symbol","any","createChainableTypeChecker","arrayOf","typeChecker","propName","propFullName","PropTypeError","propValue","getPropType","elementType","instanceOf","expectedClass","expectedClassName","constructor","isNode","objectOf","propType","oneOf","expectedValues","is","valuesString","getPreciseType","oneOfType","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","expectedType","shape","shapeTypes","invalidValidatorError","exact","allKeys","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","secret","cacheKey","chainedCheckType","every","iteratorFn","maybeIterable","getIteratorFn","entry","isSymbol","PropTypes","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","getShim","_typeof","_react","__esModule","cache","_getRequireWildcardCache","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","_interopRequireWildcard","_propTypes","_interopRequireDefault","WeakMap","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","o","minLen","_unsupportedIterableToArray","_nonIterableSpread","len","arr2","_extends","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","ownKeys","enumerableOnly","sym","enumerable","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_createClass","Constructor","protoProps","staticProps","descriptor","configurable","writable","_defineProperties","_setPrototypeOf","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","valueOf","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_assertThisInitialized","_possibleConstructorReturn","ReferenceError","getPrototypeOf","hookPropType","callbacks","callbackPropTypes","DateTimePicker","_Component","subClass","superClass","_inherits","_super","instance","_classCallCheck","_len","_key","mergeHooks","onCreate","destroyFlatpickrInstance","createFlatpickrInstance","prevProps","prevOptions","optionsKeys","index","_this$props","render","handleNodeChange","Component","inputOptions","_options$hook","propHook","_default","createDropdownElement","dropdown","filterDropdownOptions","query","handleTimeOptionClick","closeDropdown","filteredOptions","optionElement","toggleDropdownVisibility","positionDropdownRelativeToInput","inputElement","wrapperElement","dropdownPosition","zIndex","dropdownHeight","spaceBelow","spaceAbove","formatTime","toLocaleTimeString","minute","hour12","generateTimeOptions","minuteStep","times","formattedTime","parseTimeInput","cleanInput","toUpperCase","hasAMPM","specifiedPeriod","timeString","parseTime","minuteString","padStart","hoursStr","minutesStr","numericInput","replace","paddedInput","timeDropdownPlugin","flatpickrInstance","dropdownElement","timeInputField","flatpickrConfig","preventClose","positionDropdown","time","adjustedHour","handleInputBlur","datePart","parsedTime","fullDateTimeString","handleInputChange","handleInputFocus","handleKeyDown","inputWrapper","iconContainer","createRoot","inputField","dateTimeDropdownPlugin","innerText","adjustedHours","populateDropdown","onInputChange","factory","FlatPickr","DatePickerBase","enableRange","datePickerRef","customTimePickerPlugin","customDateTimePickerPlugin","useCustomTimeInputForTimePicker","handleInputReadOnlyState","isTimePickerOnly","isDateTimePicker","containerRef","resolvedRef","isInDialog","setIsInDialog","customPlugin","customTimeSelectorPlugin","timeSelectorPlugin","dateTimeSelectorPlugin","calendarVariantProps","dayVariantProps","useLayoutEffect","closest","_selectedDates","_dateStr","onDateChange","onCloseDatePicker","dateStr","onOpenDatePicker","renderInput","ReactFlatPickr","__","___","value_1","calendarInstance","externalClass","value_2","activeInput","FormContext","createContext","FormProvider","formRef","defaultFormState","onFormStateChange","formValidator","onSubmit","validateOnChange","autosave","autosaveDelayMs","internalFormRef","initialFormState","setInitialFormState","formState","setFormState","formErrors","setFormErrors","requiredFields","setRequiredFields","fieldValidators","setFieldValidators","isPristine","setIsPristine","state1","state2","keys1","keys2","updateFieldError","prevErrors","setFieldError","updateFieldValidators","prevValidationFunctions","updateRequiredFields","prevRequiredFields","updateFieldValue","updatedState","validateRequiredFields","valid","fieldName","validateEachField","fieldsWithValidateFunction","isFieldValidated","handleReset","performAutosave","areRequiredFieldsValid","areFieldsValid","isFormValid","debouncedAutosave","contextValue","onFormSubmit","resetForm","Provider","injectPropsToMatchingFields","propsToInject","shouldInjectValueProps","count","originalOnValueChange","originalOnChange","injectedProps","newChildren","cloneElement","isNativeFormElement","RootList","RootListItem","item","itemClassName","itemStyle","itemProps","BasicList","keyExtractor","itemId","CSS","freeze","Translate","Scale","scaleX","scaleY","Transform","Transition","_ref","property","easing","restrictToHorizontalAxis","restrictToParentElement","containerNodeRect","draggingNodeRect","rect","boundingRect","restrictToBoundingRect","restrictToVerticalAxis","SortableItemContext","SortableItem","useSortable","attributes","listeners","setNodeRef","transition","SortableList","updateSortOrder","rootProps","mappedData","setMappedData","newMappedData","activeId","setActiveId","horizontalSort","DndContext","collisionDetection","closestCenter","onDragStart","active","onDragEnd","over","mappedDataIndex","oldIndex","newIndex","movedData","arrayMove","updatedData","modifiers","SortableContext","items","strategy","horizontalListSortingStrategy","verticalListSortingStrategy","createPortal","DragOverlay","dropAnimation","sortable","RepeaterList","Modal","headerComponent","footerComponent","onHide","show","header","footer","backdrop","renderBackdrop","disableBackdropDismiss","handleBackdropClick","createBackdrop","ModalComponent","modal","ModalContext","PaginationNumberField","page","setPage","tempPage","setTempPage","parsedPage","clampedPage","totalPages","onPageChanged","keyListener","code","onKeyUp","handleInteraction","setShow","getWidth","matchTriggerWidth","Popover","hideOnClickAway","defaultShow","contentProps","keepContentOnItemClick","flip","overlayClassName","contentPosition","initialTransformRef","placement","basePlacement","getPlacement","onClickListener","onDoubleClickListener","onMouseOutListener","onMouseOverListener","popoverAccessibilityProps","targetOnClickListener","targetOnDoubleClickListener","targetAccessibilityProps","handleOnHide","openPopover","useImperativeHandle","popover","onDoubleClick","onMouseOut","Overlay","rootClose","restStyle","minWidth","injectRadioButtonProps","selectContextInitialValue","selectedValue","updateSelectedValue","resetSelectedValue","registerOption","getDisplayLabel","SelectContext","useSelectContext","context","useContext","SelectProvider","multiple","closeSelectOptions","Map","optionLabels","setOptionLabels","optionValue","newMap","key_1","currentSelection","hasDefaultOption","handleSelectionChange","resetValue","hasValue","disabledField","invalidField","SelectComponent","defaultOpen","expandIcon","state","menuProps","SelectedView","selectedView","popoverOffset","setIsOpen","displayValue","triggerProps","onOptionsOpen","onOptionsClose","expandIconView","collapseIcon","selectedComponent","selectTrigger","jsxs","trigger","optionStyle","normalizeToOptionLike","firstOption","createChipProps","onRemove","addUniqueOption","availableOptions","newOption","findOptionByKey","find","controlledInputValue","inputValue","controlledValues","onAddItem","onDeleteItem","normalizedOptions","normalizedValues","normalizeToOptionLikeKey","internalOptions","setInternalOptions","internalInputValue","setInternalInputValue","originalFormat","originalValue","firstItem","convertKeysToOriginalFormat","internalSelectedKeys","setInternalSelectedKeys","handleInputValueChange","searchTerm","filterOptionsByInput","handleSelect","selectedOptionKey","optionKey","selectedKeys","handleAddNewOption","tempOption_1","realOption_1","opt","newOption_1","onAddChip","onClearInput","trimmedValue","handleEnterKeyForChip","existingOption","lastKey","removeChip","keyToRemove","chips","handleChipInputAreaClick","optionList","onSelect","createCheckboxItemProps","Search","showSubmitButton","showClearButton","onSearch","debounceMs","minCharacters","initialValue","controlledValue","isAutoStyle","isButtonStyle","isSearching","setIsSearching","lastSearchRef","handleSearch","debouncedSearch","cancelDebounce","handleSubmit","handleClear","searchDisabled","shouldShowClearButton","inputProps","COMMON_MIME_TYPES","toFileWithPath","file","lastIndexOf","ext","withMimeType","webkitRelativePath","setObjProp","FILES_TO_IGNORE","isObject","noIgnoredFiles","files","fromList","toFilePromises","webkitGetAsEntry","fromDataTransferItem","isDirectory","fromDirEntry","flatten","globalThis","isSecureContext","getAsFileSystemHandle","getFile","handle","getAsFile","fullPath","fromEntry","fwp","fromFileEntry","reader","createReader","readEntries","batch","all","acceptedFiles","acceptedFilesArray","fileName","mimeType","baseMimeType","validType","endsWith","_slicedToArray","_arrayWithHoles","_s","_arr","_n","_iterableToArrayLimit","_nonIterableRest","accepts","_accepts","getInvalidTypeRejectionErr","acceptArr","msg","getTooLargeRejectionErr","maxSize","getTooSmallRejectionErr","minSize","TOO_MANY_FILES_REJECTION","fileAccepted","accept","isAcceptable","fileMatchSize","isDefined","isPropagationStopped","cancelBubble","isEvtWithFiles","dataTransfer","types","onDocumentDragOver","composeEventHandlers","fns","_len2","_key2","isMIMEType","isExt","_excluded","_excluded2","_excluded3","_excluded4","Dropzone","_useDropzone","useDropzone","displayName","defaultProps","getFilesFromEvent","dt","kind","getDataTransferFiles","isChangeEvt","getInputFiles","handles","getFsHandleFiles","Infinity","maxFiles","preventDropOnDocument","noClick","noKeyboard","noDrag","noDragEventsBubbling","validator","useFsAccessApi","autoFocus","propTypes","onFileDialogCancel","onFileDialogOpen","onDragEnter","onDragLeave","onDragOver","onDrop","onDropAccepted","onDropRejected","initialState","isFocused","isFileDialogActive","isDragActive","isDragAccept","isDragReject","fileRejections","_defaultProps$props","acceptAttr","_ref6","_ref7","acceptPropAsAcceptAttr","pickerTypes","description","_ref2","_ref3","agg","_ref4","_ref5","pickerOptionsFromAccept","onFileDialogOpenCb","noop","onFileDialogCancelCb","rootRef","_useReducer2","useReducer","reducer","dispatch","fsAccessApiWorksRef","onWindowFocus","dragTargetsRef","onDocumentDrop","onErrCb","onDragEnterCb","persist","fileCount","accepted","sizeMatch","customErrors","allFilesAccepted","catch","onDragOverCb","hasFiles","dropEffect","_unused","onDragLeaveCb","targets","targetIdx","setFiles","_fileAccepted2","acceptError","_fileMatchSize2","sizeError","errors","onDropCb","openFileDialog","showOpenFilePicker","DOMException","ABORT_ERR","SECURITY_ERR","isSecurityError","onKeyDownCb","isEqualNode","onFocusCb","onBlurCb","onClickCb","isIe","isEdge","isIeOrEdge","composeHandler","composeKeyboardHandler","composeDragHandler","getRootProps","_ref2$refKey","refKey","onFocus","onInputElementClick","getInputProps","_ref3$refKey","border","clip","clipPath","margin","overflow","padding","whiteSpace","DropzoneContext","useDropzoneContext","DropzoneClear","resetFiles","DropzoneFilename","fileIndex","DropzoneSupportedFormats","supportedFormats","curr","DropzoneTrigger","selectFiles","DropzoneDrag","Form","otherFormProps","onReset","useForm","TabContext","currentTab","updateCurrentTab","useTab","TabProvider","internalCurrentTab","setInternalCurrentTab","tabValue","TabItem","defaultTab","currentStyle","tabsStyle","tabItem","contentContainer","TabContent","getBranchesWithComponent","matchComponent","branches","nested","Tabs","tabs","panels","tabsHeader","tabsContent","timeoutsShape","enter","exit","appear","enterDone","enterActive","exitDone","exitActive","TransitionGroupContext","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","_React$Component","initialStatus","isMounting","appearStatus","in","unmountOnExit","mountOnEnter","nextCallback","getDerivedStateFromProps","prevState","_proto","componentDidMount","updateStatus","componentDidUpdate","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","timeout","mounting","nodeRef","ReactDOM","findDOMNode","scrollTop","forceReflow","performEnter","performExit","setState","_this2","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","_this3","onExit","onExiting","onExited","nextState","setNextCallback","_this4","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","childProps","only","contextType","ownerDocument","defaultView","pt","FadeTransition","ThemeContext","theme","updateTheme","NotificationContext","useNotification","ToastNotification","isDismissable","isCloseButtonShown","removeToast","NotificationContainer","notifications","removeNotification","containerStyle","flexDirection","containerClass","notificationContainer","defaultExpanded","expanded","onToggle","willBeOpen","expandCollapseIcon","RootElement","hasAttribute","navLinkType","divider","toArray","dividerComponent","buttonItems","renderButtonItem","readOnly","setReadOnly","onInputBlur","inputLeadingIcon","inputVariantProps","calendarIcon","autoComplete","useSortableItem","empty","uploaded","onFilesReset","drag","setStatus","dropzoneContent","infoTextAndButtonContainer","infoText","dropzoneFileUploadTriggerChooseFileButton","dropzoneDrag","loaderAnim","dropzoneFileName","dropzoneSupportedFormats","dropzoneRemoveUploadButtonDeleteButton","dropzoneRemoveUploadButtonDeleteButtoncloseDelete","InternalForm","noValidate","infoIcon","hasMessage","generatedId","useId","fieldId","formContext","hadFormContext","isInvalid","messageText","injected","showMessageContainer","showErrorIcon","showInfoIcon","infoIconView","messageIcon","formField","field","labelContainer","htmlFor","messageContainer","columns","rows","gridTemplateColumns","gridTemplateRows","gap","primaryButtonComponent","secondaryButtonComponent","primaryButton","secondaryButton","iconButtonComponent","iconButton","modals","setModals","openModal","modalInstance","onCancel","closeModal","modalComponents","setNotifications","addNotification","newNotification","prevNotifications","notification","payload","restProp","checkIsSelected","trailingIconView","handleClick","accessibilityProps","currentPage","updateCurrentPage","currentPageState","setCurrentPageState","nextPageEnabled","previousPageEnabled","nextPage","previousPage","previousPageIcon","nextPageIcon","hideTrailingIcon","showPassword","setShowPassword","togglePassword","otherPasswordProps","visibilityOffIcon","visibilityOnIcon","showLabel","percentage","calculatePercentageValue","orientation","radioButtons","radioGroup","errorData","Filled","filled","Empty","Loading","showError","showEmpty","showFilled","parsedBreakpoints","breakpointChild","activeBreakpoint","setActiveBreakpoint","breakpoints","mediaQueries","breakpoint","matchMedia","updateActiveBreakpoint","matchingQuery","matches","fallbackBreakpoint","activeProps","popoverOverRef","slideOutPanel","showMin","showMax","showValueOnThumb","otherSliderProps","sliderValue","sliderRef","dragging","setDragging","_k","focusedThumb","setFocusedThumb","getPercentage","getClosestThumb","clientX","percent","updateValueFromPosition","newValues","startDrag","touches","closestIndex","moveDrag","stopDrag","toolTipView","sliderThumb","onTouchStart","onMouseDown","stickyHeader","tableClassName","TabsComponent","setTheme","documentElement","newTheme","extraProps","useModalContext","contextOpenModal","contextCloseModal","modalId"],"mappings":"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","x_google_ignoreList":[0,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,65,75,76,97,98,99,100,101,115,116,117,118,119,120,121,122]}
|
|
1
|
+
{"version":3,"file":"library.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/modules/theme/useBuildVariantProps.ts","../../src/components/atoms/Spinner/Spinner.tsx","../../src/components/atoms/Image/image.tsx","../../src/components/atoms/Text/contants.ts","../../src/components/atoms/Text/Text.tsx","../../src/components/utils/WrapTextNodes/WrapTextNodes.tsx","../../src/components/atoms/Button/Button.contants.ts","../../src/components/atoms/Button/Button.tsx","../../src/components/atoms/Icon/useDynamicSVGImport.ts","../../src/components/atoms/Icon/Icon.tsx","../../src/components/atoms/IconButton/IconButton.tsx","../../src/components/utils/ConditionalView/ConditionalView.tsx","../../src/components/molecules/FormField/useControlledValue.ts","../../src/components/utils/utils.tsx","../../src/components/atoms/Input/Input.presenter.tsx","../../src/components/atoms/Input/Input.tsx","../../src/components/atoms/TextArea/TextArea.tsx","../../src/components/atoms/TextArea/TextArea.presenter.tsx","../../src/components/atoms/ResponsiveComponent/ResponsiveComponent.tsx","../../src/components/atoms/Checkbox/useCheckboxField.tsx","../../src/components/atoms/Toggle/Toggle.tsx","../../src/components/atoms/Toggle/Toggle.presenter.tsx","../../src/components/atoms/ToggleButton/ToggleButton.tsx","../../src/components/atoms/ToggleButton/ToggleButton.presenter.tsx","../../src/components/atoms/Tooltip/Tooltip.constants.ts","../../src/components/utils/RenderStateView/usePresenter.ts","../../src/components/utils/useDebounce/useDebounce.ts","../../src/components/utils/accessibilityUtils.ts","../../src/components/atoms/Tooltip/Tooltip.tsx","../../src/components/atoms/Tooltip/Tooltip.presenter.ts","../../src/components/atoms/CustomToggle/CustomToggle.tsx","../../src/components/atoms/CustomToggle/CustomToggle.presenter.tsx","../../src/components/atoms/Chip/Chip.tsx","../../src/components/atoms/Checkbox/Checkbox.tsx","../../src/components/atoms/Checkbox/Checkbox.presenter.tsx","../../src/components/atoms/CheckboxItem/CheckboxItem.tsx","../../src/components/atoms/CheckboxItem/CheckboxItem.presenter.tsx","../../src/components/atoms/RadioButton/RadioButton.tsx","../../src/components/atoms/RadioButtonItem/RadioButtonItem.tsx","../../src/components/atoms/RadioButtonItem/RadioButtonItem.presenter.tsx","../../src/components/molecules/Nav/NavLink/NavLink.tsx","../../src/components/molecules/ContextMenu/ContextMenu.tsx","../../node_modules/flatpickr/dist/esm/types/options.js","../../node_modules/flatpickr/dist/esm/l10n/default.js","../../node_modules/flatpickr/dist/esm/utils/index.js","../../node_modules/flatpickr/dist/esm/utils/dom.js","../../node_modules/flatpickr/dist/esm/utils/formatting.js","../../node_modules/flatpickr/dist/esm/utils/dates.js","../../node_modules/flatpickr/dist/esm/utils/polyfills.js","../../node_modules/flatpickr/dist/esm/index.js","../../node_modules/prop-types/node_modules/react-is/index.js","../../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../../node_modules/object-assign/index.js","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../node_modules/prop-types/lib/has.js","../../node_modules/prop-types/index.js","../../node_modules/prop-types/factoryWithTypeCheckers.js","../../node_modules/prop-types/checkPropTypes.js","../../node_modules/prop-types/factoryWithThrowingShims.js","../../node_modules/react-flatpickr/build/index.js","../../src/components/molecules/DatePicker/DatePickerBase/Plugins/utils.ts","../../src/components/molecules/DatePicker/DatePickerBase/Plugins/customTimeSelector.tsx","../../src/components/molecules/DatePicker/DatePickerBase/Plugins/dateTimeSelector.tsx","../../src/components/molecules/DatePicker/DatePickerBase/Plugins/timeSelector.ts","../../node_modules/flatpickr/dist/l10n/default.js","../../src/components/molecules/DatePicker/DatePickerBase/DatePickerBase.constants.ts","../../src/components/molecules/DatePicker/DatePickerBase/DatePickerBase.tsx","../../src/components/molecules/DatePicker/DatePickerBase/DatePickerBase.presenter.tsx","../../src/components/organisms/Form/FormContext.tsx","../../src/components/organisms/Form/Form.utils.ts","../../src/components/molecules/FormField/FormField.utils.ts","../../src/components/molecules/List/components/RootList.tsx","../../src/components/molecules/List/components/RootListItem.tsx","../../src/components/molecules/List/components/BasicList.tsx","../../node_modules/@dnd-kit/utilities/dist/utilities.esm.js","../../node_modules/@dnd-kit/modifiers/dist/modifiers.esm.js","../../src/components/molecules/List/components/SortableListItem.tsx","../../src/components/molecules/List/components/SortableList.tsx","../../src/components/molecules/List/List.tsx","../../src/components/molecules/List/RepeaterList.tsx","../../src/components/molecules/Modal/Modal.tsx","../../src/components/molecules/Modal/ModalContext/ModalContext.tsx","../../src/components/molecules/PaginationNumberField/PaginationNumberField.tsx","../../src/components/molecules/PaginationNumberField/PaginationNumberField.presenter.ts","../../src/components/molecules/Popover/Popover.utils.ts","../../src/components/molecules/Popover/Popover.tsx","../../src/components/molecules/Popover/Popover.presenter.tsx","../../src/components/molecules/RadioGroup/RadioGroup.utils.ts","../../src/components/molecules/Select/Select.Context.tsx","../../src/components/molecules/Select/Select.utils.ts","../../src/components/molecules/Select/Select.tsx","../../src/components/molecules/Select/Select.presenter.tsx","../../src/components/molecules/ChipInput/ChipInput.utils.ts","../../src/components/molecules/ChipInput/ChipInput.presenter.tsx","../../src/components/molecules/Search/Search.tsx","../../src/components/molecules/Search/Search.presenter.tsx","../../node_modules/file-selector/dist/es2015/file.js","../../node_modules/file-selector/dist/es2015/file-selector.js","../../node_modules/attr-accept/dist/es/index.js","../../node_modules/react-dropzone/dist/es/utils/index.js","../../node_modules/react-dropzone/dist/es/index.js","../../src/components/organisms/Dropzone/Dropzone.presenter.tsx","../../src/components/organisms/Dropzone/Dropzone.tsx","../../src/components/organisms/Dropzone/components/DropzoneClear.tsx","../../src/components/organisms/Dropzone/components/DropzoneFilename.tsx","../../src/components/organisms/Dropzone/components/DropzoneSupportedFormats.tsx","../../src/components/organisms/Dropzone/components/DropzoneTrigger.tsx","../../src/components/organisms/Dropzone/components/DropzoneDrag.tsx","../../src/components/organisms/Form/Form.tsx","../../src/components/organisms/Form/useForm.ts","../../src/components/organisms/Tabs/Tabs.Context.tsx","../../src/components/organisms/Tabs/TabItem/TabItem.tsx","../../src/components/organisms/Tabs/TabContent/TabContent.tsx","../../src/components/organisms/Tabs/Tabs.tsx","../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../node_modules/react-transition-group/esm/config.js","../../node_modules/react-transition-group/esm/utils/PropTypes.js","../../node_modules/react-transition-group/esm/TransitionGroupContext.js","../../node_modules/react-transition-group/esm/Transition.js","../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../node_modules/react-transition-group/esm/utils/reflow.js","../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../src/components/organisms/SlideOutPanel/FadeTransition.tsx","../../src/modules/theme/ThemeProvider.tsx","../../src/modules/notification/NotificationContext.tsx","../../src/components/atoms/ToastNotification/ToastNotification.tsx","../../src/modules/notification/NotificationContainer.tsx","../../src/components/molecules/Accordion/Accordion.tsx","../../src/components/molecules/Accordion/AccordionGroup/AccordionGroup.tsx","../../src/components/molecules/ActionCard/ActionCard.tsx","../../src/components/atoms/ActionImage/ActionImage.tsx","../../src/components/molecules/Breadcrumbs/Breadcrumb/Breadcrumb.tsx","../../src/components/molecules/Breadcrumbs/Breadcrumbs.tsx","../../src/components/molecules/ButtonGroup/ButtonGroup.tsx","../../src/components/molecules/ButtonGroup/utils.tsx","../../src/components/molecules/Card/Card.tsx","../../src/components/molecules/ChipInput/ChipInput.tsx","../../src/components/molecules/DatePicker/DateInput/DateInput.tsx","../../src/components/molecules/DatePicker/DateInput/DateInput.presenter.tsx","../../src/components/molecules/DatePicker/DatePicker.tsx","../../src/components/molecules/List/components/SortableTrigger.tsx","../../src/components/organisms/DropzoneContent/DropzoneContent.tsx","../../src/components/organisms/Form/index.tsx","../../src/components/molecules/FormField/FormField.tsx","../../src/components/molecules/FormField/FormField.presenter.tsx","../../src/components/molecules/Grid/Grid.tsx","../../src/components/molecules/GridList/GridList.tsx","../../src/components/atoms/ListItem/ListItem.tsx","../../src/components/molecules/Modal/ModalFooter/ModalFooter.tsx","../../src/components/molecules/Modal/ModalHeader/ModalHeader.tsx","../../src/components/molecules/Nav/Nav.tsx","../../src/components/molecules/Nav/NavItem/NavItem.tsx","../../src/components/molecules/Select/Option/Option.tsx","../../src/components/molecules/Pagination/Pagination.tsx","../../src/components/molecules/Pagination/Pagination.presenter.ts","../../src/components/atoms/Password/Password.tsx","../../src/components/atoms/Password/Password.presenter.tsx","../../src/components/molecules/ProgressBar/ProgressBar.tsx","../../src/components/molecules/ProgressBar/ProgressBar.utils.ts","../../src/components/molecules/RadioGroup/RadioGroup.tsx","../../src/components/molecules/RadioGroup/RadioGroup.presenter.tsx","../../src/components/utils/RenderStateView/RenderStateView.tsx","../../src/components/atoms/SelectListItem/SelectListItem.tsx","../../src/components/organisms/SlideOutPanel/SlideOutPanel.tsx","../../src/components/atoms/Slider/Slider.tsx","../../src/components/atoms/Slider/Slider.presenter.tsx","../../src/components/organisms/Table/Table.tsx","../../src/components/organisms/Table/TableBody/TableBody.tsx","../../src/components/organisms/Table/TableCell/TableCell.tsx","../../src/components/organisms/Table/TableHeader/TableHeader.tsx","../../src/components/organisms/Table/TableHeaderCell/TableHeaderCell.tsx","../../src/components/organisms/Table/TableRow/TableRow.tsx","../../src/components/organisms/Tabs/index.tsx","../../src/components/utils/useInflateView/useInflateView.tsx","../../src/components/molecules/Modal/ModalContext/useModal.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import { useMemo } from \"react\";\n\nconst nativeBooleanAttributes = [\n 'disabled', 'required', 'readonly', 'checked', 'default', 'selected', 'autofocus', 'autoplay'\n];\n\nconst splitIntoWords = (input: string): string[] => {\n return input\n .split(/(?=[A-Z])|[\\s\\-_—]+|[^\\w]+/) // Split on camelCase, spaces, hyphens, underscores, em dashes, or other non-word characters\n // .flatMap(word => word.split(/(?<=[a-zA-Z])(?=\\d)|(?<=[\\d])(?=[a-zA-Z])/)) // Further split between letters and numbers\n .filter(Boolean); // Remove empty strings\n};\n\nconst useBuildVariantProps = (\n componentName: string, \n variants: Record<string, string> = {},\n stateFlags: Record<string, boolean | undefined> = {},\n componentVariantOverride?: string,\n) => {\n const variantProps = useMemo(() => {\n let variantString = Object.entries(variants)\n .sort(([keyA], [keyB]) => keyA.localeCompare(keyB))\n .map(([, value]) => splitIntoWords(value).join('-').toLowerCase())\n .join('-');\n\n if (!variantString) {\n variantString = 'default';\n }\n\n // Create a string representation of state flags\n const stateFlagsStrings = Object.entries(stateFlags)\n .filter(([, value]) => value === true) // Only include true flags\n .reduce<Record<string, boolean | string | undefined>>((acc, [key, value]) => {\n if (value) {\n acc[key] = nativeBooleanAttributes.includes(key) ? true : 'true';\n }\n return acc;\n }, {})\n return {\n 'component-variant': componentVariantOverride ?? `${componentName}-${variantString}`,\n ...stateFlagsStrings,\n }\n }, [\n componentName,\n variants,\n stateFlags,\n componentVariantOverride,\n ]);\n \n return variantProps;\n}\n\nexport default useBuildVariantProps;","import React from 'react';\nimport cx from 'classnames';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\nimport styles from './Spinner.module.scss';\nimport { SpinnerProps } from './Spinner.types';\n\nconst Spinner = ({ className, 'component-variant': componentVariant }: SpinnerProps) => {\n const variantProps = useBuildVariantProps(\n 'spinner',\n {},\n undefined,\n componentVariant,\n );\n\n return (\n <div \n role=\"alert\" \n aria-atomic=\"true\" \n className={cx(styles.spinner, className)}\n {...variantProps}\n >\n <div className={styles.inner} />\n </div>\n );\n};\n\nexport default Spinner;\n","import cx from 'classnames';\nimport { type SyntheticEvent, useEffect, useMemo, useState } from 'react';\n\nimport Spinner from '../Spinner';\n\nimport styles from './image.module.scss';\nimport type { ImageProps } from './image.types';\n\nconst fitMap = {\n 'Fit': 'fit',\n 'Fill': 'fill',\n 'Crop': 'crop',\n};\n\nconst Image = (props: ImageProps): JSX.Element => {\n const {\n className,\n src,\n fit = 'Fit',\n fallback,\n onLoad,\n onError,\n showLoading = false,\n aspectRatio,\n alt = '',\n ...otherImageProps\n } = props;\n\n const [imgSrc, setImgSrc] = useState<string | undefined>(src);\n const [imgWidth, setImgWidth] = useState<number | undefined>(undefined);\n const [imgHeight, setImgHeight] = useState<number | undefined>(undefined);\n const [isLoading, setIsLoading] = useState<boolean>(true);\n\n // Set the image src and loading state when the src prop changes\n useEffect(() => {\n setImgSrc(src);\n setIsLoading(true);\n }, [src]);\n\n // Handle the image error\n const handleError = (error: SyntheticEvent<HTMLImageElement>) => {\n // If the image is already the fallback, don't set it again\n if (fallback && imgSrc !== fallback) {\n setImgSrc(fallback);\n }\n onError?.(error);\n };\n\n // Set the image width and height when the image is loaded\n const handleLoad = (e: SyntheticEvent<HTMLImageElement>) => {\n setImgWidth(e.currentTarget.naturalWidth);\n setImgHeight(e.currentTarget.naturalHeight);\n setIsLoading(false);\n onLoad?.();\n };\n\n // Calculate the natural aspect ratio of the loaded image\n const naturalAspectRatio = useMemo(() => {\n return imgWidth && imgHeight ? `${imgHeight / imgWidth * 100}%` : undefined;\n }, [imgWidth, imgHeight]);\n\n // Calculate the aspect padding based on the aspect ratio and fit\n const aspectPadding = useMemo(() => {\n // only use aspectRatio if fit is 'Fit'\n if (fit === 'Fit') {\n const [heightRatio, widthRatio] = aspectRatio?.split(':') || [];\n const width = parseInt(widthRatio);\n const height = parseInt(heightRatio);\n // If the aspect ratio is not a number, use the natural aspect ratio\n return (width && height && !isNaN(width) && !isNaN(height))\n ? `${(height / width) * 100}%`\n : naturalAspectRatio;\n }\n return undefined;\n }, [aspectRatio, fit, naturalAspectRatio]);\n\n return (\n <div\n className={cx(styles.image, className)}\n >\n <div\n className={cx(styles.imageContainer, {\n [styles.aspect]: aspectPadding,\n })}\n style={{\n paddingTop: aspectPadding,\n }}\n >\n <img\n {...otherImageProps}\n src={imgSrc || fallback}\n alt={alt}\n className={cx(styles.content, styles[fitMap[fit]])}\n onLoad={handleLoad}\n onError={handleError}\n />\n </div>\n {isLoading && showLoading &&\n <div className={cx(styles.loadingIcon)}>\n <Spinner />\n </div>\n }\n </div>\n );\n};\n\nexport default Image;","export const types = [\n 'Heading1', \n 'Heading2', \n 'Heading3', \n 'Heading4', \n 'Heading5', \n 'Heading6', \n 'BodyLarge',\n 'BodyMedium',\n 'BodySmall',\n] as const;\n\nexport const typesMap: {\n [key in typeof types[number]]: string;\n} = {\n Heading1: 'heading1',\n Heading2: 'heading2',\n Heading3: 'heading3',\n Heading4: 'heading4',\n Heading5: 'heading5',\n Heading6: 'heading6',\n BodyLarge: 'bodylarge',\n BodyMedium: 'bodymedium',\n BodySmall: 'bodysmall',\n};\n\nexport const weightNames = [\n 'Thin',\n 'ExtraLight',\n 'Light',\n 'Regular',\n 'Medium',\n 'SemiBold',\n 'Bold',\n 'ExtraBold',\n 'Black',\n 'ExtraBlack',\n] as const;\n\nexport const weightValues = [\n 100,\n 200,\n 300,\n 400,\n 500,\n 600,\n 700,\n 800,\n 900,\n 950,\n] as const;\n\nexport const weights = [\n ...weightNames,\n ...weightValues,\n] as const;\n\nexport const weightNameMap: {\n [key in typeof weights[number]]: string;\n} = {\n Thin: 'thin',\n ExtraLight: 'extralight',\n Light: 'light',\n Regular: 'regular',\n Medium: 'medium',\n SemiBold: 'semibold',\n Bold: 'bold',\n ExtraBold: 'extrabold',\n Black: 'black',\n ExtraBlack: 'extrablack',\n 100: 'thin',\n 200: 'extralight',\n 300: 'light',\n 400: 'regular',\n 500: 'medium',\n 600: 'semibold',\n 700: 'bold',\n 800: 'extrabold',\n 900: 'black',\n 950: 'extrablack',\n};\n\nexport const transforms = [\n 'None', \n 'Capitalize', \n 'UpperCase', \n 'LowerCase',\n] as const;\n\nexport const tansformMap: {\n [key in typeof transforms[number]]: string;\n} = {\n None: 'none',\n Capitalize: 'capitalize',\n UpperCase: 'upperCase',\n LowerCase: 'lowerCase',\n};","import React, { FC } from 'react';\nimport cx from 'classnames';\nimport styles from './Text.module.scss';\nimport type { TextProps, TextTypeEnum } from './Text.types';\nimport { tansformMap, typesMap, weightNameMap } from './contants';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\nconst componentTypeMap: Record<TextTypeEnum, React.ElementType<any, 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p'>> = {\n Heading1: 'h1',\n Heading2: 'h2',\n Heading3: 'h3',\n Heading4: 'h4',\n Heading5: 'h5',\n Heading6: 'h6',\n BodyLarge: 'p',\n BodyMedium: 'p',\n BodySmall: 'p',\n};\n\n/**\n * Text component definition.\n */\nconst Text = (props: TextProps) => {\n const {\n className,\n type = 'BodyMedium',\n weight = 'Regular',\n noWrap = false,\n whiteSpaceNoWrap = false,\n italic = false,\n decoration = 'None',\n transform = 'None',\n ellipsis = false,\n as,\n children,\n } = props;\n const TextComponent = as || componentTypeMap[type] || componentTypeMap.BodyMedium;\n\n const variantProps = useBuildVariantProps(\n 'text',\n {\n type: typesMap[type] || 'bodymedium',\n weight: weightNameMap[weight] || 'regular',\n }\n );\n\n return (\n <TextComponent\n className={cx(\n styles.text,\n {\n [styles.nowrap]: noWrap,\n [styles.whiteSpaceNoWrap]: whiteSpaceNoWrap,\n [styles.italic]: italic,\n [styles.underline]: decoration === 'Underline',\n [styles.strikethrough]: decoration === 'Strikethrough',\n [styles.ellipsis]: ellipsis,\n },\n styles[tansformMap[transform]],\n className,\n )}\n {...variantProps}\n >\n {children}\n </TextComponent>\n );\n};\nexport default Text;\n","import React from \"react\";\nimport { WrapTextNodesProps } from \"./WrapTextNodes.types\";\nimport Text from \"../../atoms/Text\";\n\n/**\n * Wraps string and number children in a <Text> component.\n */\nexport const WrapTextNodes: React.FC<WrapTextNodesProps> = (props) => {\n const { children, ...textProps } = props;\n return (\n <>\n {React.Children.map(children, (child) =>\n typeof child === 'string' || typeof child === 'number' ? (\n <Text {...textProps}>\n {child}\n </Text>\n ) : (\n child\n )\n )}\n </>\n );\n};\n","import { ButtonContentAlignmentEnum } from './Button.types';\n\nexport const AlignContentMap: Record<ButtonContentAlignmentEnum, string> = {\n 'Center': 'center',\n 'SpaceBetween': 'spaceBetween'\n};","import cx from 'classnames';\nimport React from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport Spinner from '../Spinner';\nimport styles from './Button.module.scss';\nimport type { ButtonProps } from './Button.types';\nimport { AlignContentMap } from './Button.contants';\n\n/**\n * Button component definition.\n */\nconst Button = (props: ButtonProps) => {\n const {\n className,\n appearance = 'Default',\n size = 'Medium',\n type = 'Filled',\n style = 'Primary',\n leadingIcon,\n trailingIcon,\n loading = false,\n disabled = false,\n onClick,\n children,\n actionType = 'button',\n alignContent = 'Center',\n ...restProps\n } = props;\n\n let leadingIconComponent, trailingIconComponent, content, loadingComponent;\n\n // If the button is in loading state replace content with a loading indicator\n if (loading) {\n loadingComponent = (\n <Spinner className={styles.loadingIcon} />\n );\n }\n\n // Render leading icon if it is passed\n if (leadingIcon) {\n leadingIconComponent = <div className={styles.leadingIcon}>\n {leadingIcon}\n </div>;\n }\n\n // Render training icon if it is passed\n if (trailingIcon) {\n trailingIconComponent = <div className={styles.trailingIcon}>\n {trailingIcon}\n </div>;\n }\n\n if (children) {\n content = <div className={styles.content}>\n <WrapTextNodes noWrap={true} className={styles.text}>\n {children}\n </WrapTextNodes>\n </div>;\n }\n\n const variantProps = useBuildVariantProps(\n 'button',\n { appearance, size, style, type },\n { loading },\n );\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (!disabled && !loading) {\n onClick?.(event);\n }\n };\n\n return (\n <button\n className={cx(\n styles.button,\n className,\n styles[AlignContentMap[alignContent]],\n {\n [styles.loading]: loading,\n },\n )}\n type={actionType}\n onClick={handleClick}\n disabled={disabled}\n {...variantProps}\n {...restProps}\n >\n {loadingComponent}\n {leadingIconComponent}\n {content}\n {trailingIconComponent}\n </button>\n );\n};\n\nexport default Button;\n","import { useEffect, useState } from 'react';\n\nconst svgCache: Record<string, string> = {};\nconst pendingRequests: Record<string, Promise<string> | undefined> = {};\n\nexport const useDynamicSVGImport = (name: string) => {\n const [svgContent, setSvgContent] = useState<string | null>(null);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<any>();\n\n useEffect(() => {\n let isMounted = true;\n\n const fetchSvg = async () => {\n if (svgCache[name]) {\n // If the SVG is already cached, return it\n setSvgContent(svgCache[name]);\n setLoading(false);\n return;\n }\n\n const pendingRequest = pendingRequests[name];\n if (pendingRequest) {\n // If there's already a pending request for this SVG, wait for it to resolve\n setLoading(true);\n try {\n const svgText = await pendingRequest;\n if (isMounted) {\n setSvgContent(svgText);\n setLoading(false);\n }\n } catch (err) {\n if (isMounted) {\n console.error(`Error fetching SVG ${name}:`, err);\n setError(err);\n setLoading(false);\n }\n }\n return;\n }\n \n // If not cached and no pending request, fetch the SVG\n setLoading(true);\n const fetchRequest = (async () => {\n try {\n const response = await fetch(`/icons/${name}.svg`);\n if (!response.ok) {\n throw new Error(`Failed to fetch SVG: ${response.status} ${response.statusText}`);\n }\n const svgText = await response.text();\n svgCache[name] = svgText; // Cache the SVG content locally\n return svgText;\n } catch (err) {\n throw err;\n } finally {\n delete pendingRequests[name]; // Clean up pending request once resolved\n }\n })();\n pendingRequests[name] = fetchRequest;\n \n try {\n const svgText = await fetchRequest;\n if (isMounted) {\n setSvgContent(svgText);\n }\n } catch (err) {\n if (isMounted) {\n console.error(`Error fetching SVG ${name}:`, err);\n setError(err);\n }\n } finally {\n if (isMounted) {\n setLoading(false);\n }\n }\n\n };\n\n void fetchSvg();\n\n return () => {\n isMounted = false;\n };\n }, [name]);\n\n return {\n error,\n loading,\n svgContent,\n };\n};","import React from 'react';\nimport cx from 'classnames';\n\nimport type { IconProps } from './Icon.types';\nimport styles from './Icon.module.scss';\nimport { useDynamicSVGImport } from './useDynamicSVGImport';\n\nconst sizeMap = {\n 'Small': 'small',\n 'Medium': 'medium',\n 'Large': 'large',\n};\n\nconst Icon = (props: IconProps) => {\n const {\n className,\n style = 'Filled',\n size = 'Medium',\n icon,\n } = props;\n const { svgContent, error, loading } = useDynamicSVGImport(`${icon}${style}`);\n\n if (error) {\n return <div className={cx(styles.icon, styles[sizeMap[size]], className)} />;\n }\n\n if (loading) {\n return <div className={cx(styles.icon, styles[sizeMap[size]], className)} />;\n }\n\n if (svgContent) {\n return (\n <div className={cx(styles.icon, styles[sizeMap[size]], className)}>\n <div className={styles.svg} dangerouslySetInnerHTML={{ __html: svgContent }}/>\n </div>\n );\n }\n\n return null;\n};\n\nexport default Icon;","import React from 'react';\nimport cx from 'classnames';\n\nimport type { IconButtonProps } from './IconButton.types';\nimport styles from './IconButton.module.scss';\nimport Button from '../Button';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\nconst IconButton = (props: IconButtonProps) => {\n const {\n className,\n appearance = 'Default',\n size = 'Medium',\n type = 'Filled',\n style = 'Primary',\n icon,\n ...otherProps\n } = props;\n \n const variantProps = useBuildVariantProps(\n 'icon-button',\n { appearance, size, style, type },\n );\n\n return (\n <Button\n className={cx(\n styles.iconButton,\n className,\n )}\n appearance={appearance}\n size={size}\n style={style}\n type={type}\n leadingIcon={icon}\n {...variantProps}\n {...otherProps}\n >\n </Button>\n );\n};\n\nexport default IconButton;","import { isValidElement } from \"react\";\nimport { ConditionalViewProps } from \"./ConditionalView.types\";\n\nconst ConditionalView = ({ condition, children }: ConditionalViewProps) => {\n // If condition is another ConditionalView, ignore our condition and return children directly\n if (isValidElement(condition) && condition.type === ConditionalView) {\n return Boolean(condition.props.condition) ? children : null;\n }\n \n return Boolean(condition) ? children : null;\n};\n\nexport default ConditionalView;\n","import { useState, useEffect, useCallback } from 'react';\n\ninterface UseControlledValueProps<T> {\n value?: T;\n onValueChange?: (value: T) => void;\n defaultValue?: T;\n}\n\nexport const useControlledValue = <T>({ value, onValueChange, defaultValue }: UseControlledValueProps<T>) => {\n const [internalValue, setInternalValue] = useState<T | undefined>(value ?? defaultValue);\n\n useEffect(() => {\n if (value !== undefined) {\n setInternalValue(value);\n }\n }, [value]);\n\n const handleValueChange = useCallback((newValue: T | ((prevValue: T | undefined) => T)) => {\n setInternalValue(prevValue => {\n const resolvedValue = typeof newValue === 'function' \n ? (newValue as (prevValue: T | undefined) => T)(prevValue)\n : newValue;\n \n onValueChange?.(resolvedValue);\n return resolvedValue;\n });\n }, [onValueChange]);\n\n return {\n value: internalValue,\n onValueChange: handleValueChange,\n };\n};\n","import React, { MutableRefObject, Ref, ReactNode } from 'react';\n\n/**\n * Clones valid React elements and applies additional props to them.\n *\n * @param children - The child nodes to process.\n * @param extraProps - Additional props to be passed to valid React elements.\n * @returns A ReactNode with extra props applied to valid elements, leaving others unchanged.\n */\nexport const applyPropsToChildren = (children: ReactNode, extraProps?: Record<string, any>): ReactNode => {\n if (!extraProps) return children;\n\n return React.Children.map(children, (child) =>\n React.isValidElement(child) ? React.cloneElement(child, extraProps) : child\n );\n};\n\n/**\n * Utility function to merge multiple refs into a single ref callback function.\n *\n * @param refs - Refs to be merged.\n * @returns A callback function that sets the value on all merged refs.\n */\nexport const mergeRefs = <T,>(...refs: (Ref<T> | undefined)[]): Ref<T> => {\n return (value: T) => {\n refs.forEach(ref => {\n if (!ref) return; // Skip null/undefined refs\n \n if (typeof ref === 'function') {\n // If the ref is a function, call it with the value\n // Special handling for flatpickr which doesn't handle null values properly\n if (value === null || value === undefined) {\n // Check if this might be a flatpickr ref by examining the function\n const refString = ref.toString();\n if (refString.includes('flatpickr') || refString.includes('createFlatpickrInstance')) {\n // Skip calling flatpickr with null - it will crash\n // Flatpickr cleanup should be handled by the component itself\n return;\n }\n }\n \n // For all other refs, call normally\n ref(value);\n } else if (typeof ref === 'object' && 'current' in ref) {\n // If the ref is an object (MutableRefObject), assign the value to its current property\n (ref as MutableRefObject<T>).current = value;\n }\n });\n };\n};\n","import { useRef } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { useControlledValue } from '../../molecules/FormField/useControlledValue';\nimport { mergeRefs } from '../../utils/utils';\nimport { InputProps } from './Input.types';\n\nconst inputTypeMap = {\n 'Text': 'text',\n 'Number': 'number',\n 'Email': 'email',\n 'Password': 'password',\n} as const;\n\nconst usePresenter = (props: InputProps, ref: React.ForwardedRef<HTMLInputElement>) => {\n const {\n leadingIcon,\n trailingIcon,\n value,\n onValueChange,\n disabled = false,\n invalid = false,\n inputType = 'Text',\n required,\n preProcessInput,\n 'component-variant': componentVariant,\n ...otherInputProps\n } = props;\n\n const internalInputRef = useRef<HTMLInputElement>(null);\n\n const { value: internalValue, onValueChange: handleValueChange } = useControlledValue({ value, onValueChange, defaultValue: '' }); \n\n const onInputChanged = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (preProcessInput && internalInputRef?.current) {\n internalInputRef.current.value = preProcessInput(event.target.value);\n }\n // updated value from change event object\n const updatedValue = internalInputRef.current?.value || '';\n handleValueChange(updatedValue);\n };\n\n const variantProps = useBuildVariantProps(\n 'input',\n { inputType },\n {\n disabled,\n invalid,\n },\n componentVariant,\n );\n\n return {\n variantProps,\n onInputChanged,\n otherInputProps,\n leadingIcon,\n trailingIcon,\n value: internalValue,\n disabled,\n invalid,\n inputType: inputTypeMap[inputType],\n required,\n componentVariant,\n inputRef: mergeRefs(internalInputRef, ref),\n };\n};\n\nexport default usePresenter;","import cx from 'classnames';\nimport { forwardRef } from 'react';\n\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport styles from './Input.module.scss';\nimport usePresenter from './Input.presenter';\nimport type { InputProps } from './Input.types';\n\nconst Input = forwardRef<HTMLInputElement, InputProps>((props: InputProps, ref) => {\n const {\n variantProps,\n onInputChanged,\n otherInputProps,\n leadingIcon,\n trailingIcon,\n value,\n disabled,\n invalid,\n inputType,\n required,\n inputRef,\n } = usePresenter(props, ref);\n\n return (\n <div\n className={cx(\n styles.input,\n props.className,\n {\n [styles.disabled]: disabled, // to apply styles for disabled state to parent div\n [styles.error]: invalid, // to apply styles for error state to parent div\n },\n )}\n {...variantProps}\n >\n <ConditionalView condition={leadingIcon}>\n <div className={cx(styles.leadingIcon)}>\n {leadingIcon}\n </div>\n </ConditionalView>\n <input\n {...otherInputProps}\n aria-invalid={invalid}\n className={cx(styles.inputElement)}\n value={value || ''}\n onChange={onInputChanged}\n disabled={disabled}\n type={inputType}\n required={required}\n ref={inputRef}\n id={props.id}\n />\n <ConditionalView condition={trailingIcon}>\n <div className={cx(styles.trailingIcon)}>\n {trailingIcon}\n </div>\n </ConditionalView>\n </div>\n );\n});\n\nexport default Input;\n","import cx from 'classnames';\nimport { forwardRef } from 'react';\n\nimport styles from './TextArea.module.scss';\nimport usePresenter from './TextArea.presenter';\nimport type { TextAreaProps } from './TextArea.types';\n\nconst TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>((props: TextAreaProps, ref) => {\n const {\n value,\n onInputChanged,\n disabled,\n invalid,\n required,\n otherTextAreaProps,\n variantProps,\n } = usePresenter(props);\n\n return (\n <textarea\n {...otherTextAreaProps}\n className={cx(styles.textArea, {\n [styles.error]: invalid, // to apply styles for error state to parent div\n }, props.className)}\n ref={ref}\n aria-invalid={invalid}\n value={value || ''}\n onChange={onInputChanged}\n disabled={disabled}\n required={required}\n id={props.id}\n {...variantProps}\n />\n );\n});\n\nexport default TextArea;","import useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { useControlledValue } from '../../molecules/FormField/useControlledValue';\nimport { TextAreaProps } from './TextArea.types';\n\nconst usePresenter = (props: TextAreaProps) => {\n const {\n value,\n onValueChange,\n disabled = false,\n invalid = false,\n required,\n ...otherTextAreaProps\n } = props;\n\n const { value: textAreaValue, onValueChange: handleValueChange } = useControlledValue({ value, onValueChange, defaultValue: '' });\n\n const onInputChanged = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n // updated value from change event object\n const updatedValue = event.target.value || '';\n handleValueChange(updatedValue);\n };\n\n const variantProps = useBuildVariantProps(\n 'text-area',\n {},\n { \n disabled,\n invalid,\n },\n );\n\n return {\n value: textAreaValue,\n onInputChanged,\n disabled,\n invalid,\n required,\n otherTextAreaProps,\n variantProps,\n }\n};\n\nexport default usePresenter;","import React, { useState, useEffect, useMemo } from 'react';\nimport { BreakpointProps, ResponsiveComponentProps } from './ResponsiveComponent.types';\n\nexport const Breakpoint = <T,>({ children }: BreakpointProps<T>) => {\n return <>{children}</>;\n};\n\nconst ResponsiveComponent = <T,>(props: ResponsiveComponentProps<T>) => {\n const { component: Component, children } = props;\n\n // Parse each child of ResponsiveComponent\n const parsedBreakpoints = (React.Children.map(children, (child) => {\n if (React.isValidElement(child) && child.type === Breakpoint && child.props.children) {\n // Get the width of the breakpoint\n const width = child.props.width as number;\n // Get the children props of the breakpoint that match the component type\n const childProps = React.Children.map(child.props.children, (breakpointChild) => {\n // Check if the child is a valid React element and if it is the same type as the component\n if (React.isValidElement(breakpointChild) && breakpointChild.type === Component) {\n const breakpointChildProps = breakpointChild.props;\n return breakpointChildProps;\n }\n });\n return {\n width,\n childProps: childProps[0],\n };\n }\n }) || [])\n .filter(Boolean)\n // Reduce the breakpoints to an object with the width as the key and the child props as the value\n .reduce<Record<number, any>>((acc, curr) => {\n acc[curr.width] = curr.childProps;\n return acc;\n }, {}) || {};\n\n const [activeBreakpoint, setActiveBreakpoint] = useState<number | null>(null);\n const breakpoints = useMemo(() => {\n // Derive breakpoints from the propsMap keys\n return Object.keys(parsedBreakpoints)\n .map((key) => parseInt(key, 10))\n .sort((a, b) => b - a); // Sort descending for easier matching\n }, [parsedBreakpoints]);\n\n useEffect(() => {\n const breakpoints = Object.keys(parsedBreakpoints)\n .map((key) => parseInt(key, 10))\n .sort((a, b) => b - a); // Sort descending\n\n // Create an array of media query objects based on the breakpoints\n const mediaQueries = breakpoints.map((breakpoint) => ({\n // The current breakpoint value (e.g., 375, 768, 1024, etc.)\n breakpoint,\n\n // Create a media query for the current breakpoint using matchMedia\n // The query checks if the viewport's width is at least the specified breakpoint value\n query: window.matchMedia(`(min-width: ${breakpoint}px)`),\n }));\n\n\n const updateActiveBreakpoint = () => {\n // Find the first media query that matches the current viewport width\n const matchingQuery = mediaQueries.find(({ query }) => query.matches);\n\n // If a matching query is found, set the active breakpoint to this query's breakpoint value\n if (matchingQuery) {\n setActiveBreakpoint(matchingQuery.breakpoint);\n } else {\n // If no query matches (i.e., the viewport width is smaller than the smallest breakpoint),\n // fallback to the smallest breakpoint in the breakpoints array\n setActiveBreakpoint(Math.min(...breakpoints));\n }\n };\n\n // Attach listeners\n mediaQueries.forEach(({ query }) =>\n query.addEventListener('change', updateActiveBreakpoint)\n );\n\n // Set the initial breakpoint\n updateActiveBreakpoint();\n\n return () => {\n // Cleanup listeners\n mediaQueries.forEach(({ query }) =>\n query.removeEventListener('change', updateActiveBreakpoint)\n );\n };\n }, [parsedBreakpoints]);\n\n // Fallback to the smallest breakpoint if none match\n const fallbackBreakpoint = Math.min(...breakpoints);\n \n // Use the active breakpoint or fallback to the smallest\n const breakpoint = activeBreakpoint ?? fallbackBreakpoint;\n\n // Get the props for the breakpoint\n const activeProps = parsedBreakpoints[breakpoint];\n\n return <Component {...activeProps} />;\n};\n\nexport default ResponsiveComponent;\n","import { useEffect, useState } from 'react';\n\nexport type CheckboxFieldProps = {\n checked?: boolean;\n defaultChecked?: boolean;\n value?: boolean;\n onValueChange?: (value: boolean) => void;\n};\n\nconst useCheckboxField = ({ checked, defaultChecked, value, onValueChange }: CheckboxFieldProps) => {\n const [isChecked, setIsChecked] = useState(defaultChecked ?? checked ?? value ?? false);\n\n useEffect(() => {\n setIsChecked(checked ?? value ?? false);\n }, [checked, value]);\n\n const onCheckboxChanged = (event: React.ChangeEvent<HTMLInputElement>) => {\n const updatedValue = event.target.checked;\n setIsChecked(updatedValue);\n onValueChange?.(updatedValue);\n };\n\n return { isChecked, onCheckboxChanged };\n};\n\nexport default useCheckboxField;","import cx from 'classnames';\nimport { forwardRef } from 'react';\n\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport styles from './Toggle.module.scss';\nimport usePresenter from './Toggle.presenter';\nimport type { ToggleProps } from './Toggle.types';\n\nconst Toggle = forwardRef<HTMLInputElement, ToggleProps>((props: ToggleProps, ref) => {\n const {\n disabled,\n invalid,\n isChecked,\n labelAlignment,\n onToggleChanged,\n otherInputProps,\n required,\n variantProps,\n } = usePresenter(props);\n\n return (\n <label\n className={cx(\n styles.toggle,\n props.className,\n {\n [styles.labelLeft]: labelAlignment === 'Left',\n [styles.labelRight]: labelAlignment === 'Right',\n },\n )}\n {...variantProps}\n >\n <input\n {...otherInputProps}\n type=\"checkbox\"\n className={styles.input}\n checked={isChecked}\n onChange={onToggleChanged}\n disabled={disabled}\n required={required}\n ref={ref}\n id={props.id}\n aria-invalid={invalid}\n />\n <span className={cx(styles.track, { [styles.disabled]: disabled })}>\n <span className={styles.thumb} />\n </span>\n <ConditionalView condition={props.children}>\n <WrapTextNodes className={styles.text}>\n {props.children}\n </WrapTextNodes>\n </ConditionalView>\n </label>\n );\n});\n\nexport default Toggle;","import { useEffect } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport useCheckboxField from '../Checkbox/useCheckboxField';\nimport { ToggleProps } from './Toggle.types';\n\nconst usePresenter = (props: ToggleProps) => {\n const {\n checked,\n value,\n onValueChange,\n disabled = false,\n invalid = false,\n required,\n labelAlignment = 'Left',\n defaultChecked = false,\n children,\n ...otherInputProps\n } = props;\n\n const { isChecked, onCheckboxChanged } = useCheckboxField({ checked, defaultChecked, value, onValueChange });\n\n const variantProps = useBuildVariantProps(\n 'toggle',\n {\n styles: isChecked ? 'selected' : 'unselected',\n },\n {\n disabled,\n invalid,\n },\n );\n\n return {\n variantProps,\n isChecked,\n onToggleChanged: onCheckboxChanged,\n otherInputProps,\n disabled,\n invalid,\n required,\n labelAlignment,\n defaultChecked,\n };\n};\n\nexport default usePresenter;","import cx from 'classnames';\nimport React, { forwardRef } from 'react';\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport Button from '../Button';\nimport styles from './ToggleButton.module.scss';\nimport usePresenter from './ToggleButton.presenter';\nimport { ToggleButtonProps } from './ToggleButton.types';\n\nconst ToggleButton = forwardRef<HTMLInputElement, ToggleButtonProps>((props, ref) => {\n const {\n otherProps,\n isChecked,\n handleChange,\n disabled,\n required,\n invalid,\n className,\n appearance,\n style,\n size,\n id,\n } = usePresenter(props);\n\n return (\n <>\n <input\n type=\"checkbox\"\n className={styles.input}\n checked={isChecked}\n onChange={handleChange}\n disabled={disabled}\n required={required}\n ref={ref}\n id={id}\n aria-invalid={invalid}\n />\n <Button\n {...otherProps}\n className={cx(styles.toggleButton, {\n [styles.checked]: isChecked,\n }, className)}\n appearance={appearance}\n style={style}\n size={size}\n type={isChecked ? 'Filled' : 'Outlined'}\n onClick={() => handleChange({ target: { checked: !isChecked } } as React.ChangeEvent<HTMLInputElement>)}\n disabled={disabled}\n actionType='button'\n >\n <ConditionalView condition={props.children}>\n <WrapTextNodes>\n {props.children}\n </WrapTextNodes>\n </ConditionalView>\n </Button>\n </>\n );\n});\n\nexport default ToggleButton;","import { useCallback, useMemo } from 'react';\nimport useCheckboxField from '../Checkbox/useCheckboxField';\nimport { ToggleButtonProps } from './ToggleButton.types';\n\nconst usePresenter = (props: ToggleButtonProps) => {\n const {\n value,\n checked,\n defaultChecked = false,\n onValueChange,\n disabled = false,\n required = false,\n invalid = false,\n children,\n className,\n appearance = 'Default',\n style = 'Primary',\n size = 'Medium',\n id,\n ...otherProps\n } = props;\n\n const { isChecked, onCheckboxChanged } = useCheckboxField({ checked, defaultChecked, value, onValueChange });\n\n return {\n otherProps,\n isChecked,\n handleChange: onCheckboxChanged,\n disabled,\n required,\n invalid,\n className,\n appearance,\n style,\n size,\n id,\n };\n};\n\nexport default usePresenter;","import { TooltipDirectionEnum } from './Tooltip.types';\n\nexport const TOOLTIP_ARROW_CONSTANTS = {\n WIDTH: 28,\n HEIGHT: 8,\n OFFSET: 12,\n} as const;\n\nexport const ARROW_DIMENSIONS_MAP: Record<TooltipDirectionEnum, { width: number; height: number }> = {\n 'Top': { width: TOOLTIP_ARROW_CONSTANTS.WIDTH, height: TOOLTIP_ARROW_CONSTANTS.HEIGHT },\n 'Bottom': { width: TOOLTIP_ARROW_CONSTANTS.WIDTH, height: TOOLTIP_ARROW_CONSTANTS.HEIGHT },\n 'Left': { width: TOOLTIP_ARROW_CONSTANTS.HEIGHT, height: TOOLTIP_ARROW_CONSTANTS.WIDTH },\n 'Right': { width: TOOLTIP_ARROW_CONSTANTS.HEIGHT, height: TOOLTIP_ARROW_CONSTANTS.WIDTH },\n} as const;\n\nexport const TOOLTIP_VARIANT_MAP = {\n 'Top-Center': 'center-top',\n 'Top-Start': 'start-top',\n 'Top-End': 'end-top',\n 'Bottom-Center': 'center-bottom',\n 'Bottom-Start': 'start-bottom',\n 'Bottom-End': 'end-bottom',\n 'Left-Center': 'center-left',\n 'Left-Start': 'start-left',\n 'Left-End': 'end-left',\n 'Right-Center': 'center-right',\n 'Right-Start': 'start-right',\n 'Right-End': 'end-right',\n} as const;\n","import { RenderStateViewProps } from \"./RenderStateView.types\";\n\nconst isEmpty = (data: unknown) => {\n return !data || (Array.isArray(data) && data.length === 0);\n};\n\nexport const usePresenter = <T = unknown, P = any>(props: RenderStateViewProps<T, P>) => {\n const { data, isLoading, errorData } = props;\n\n const showError = Boolean(errorData);\n const showLoading = !errorData && Boolean(isLoading);\n const showEmpty = !errorData && !isLoading && isEmpty(data);\n const showFilled = !errorData && !isLoading && !isEmpty(data);\n\n return { showError, showLoading, showEmpty, showFilled };\n};\n","import { useCallback, useEffect, useRef } from 'react';\n\n/**\n * Custom hook that debounces a callback function\n * @param callback - The function to debounce\n * @param delay - The debounce delay in milliseconds\n * @returns Object containing the debounced function and a cancel function\n */\nexport const useDebounce = <T extends (...args: any[]) => void>(\n callback: T,\n delay: number\n) => {\n const timeoutRef = useRef<NodeJS.Timeout>();\n const callbackRef = useRef(callback);\n\n // Update callback ref when callback changes\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n const debouncedCallback = useCallback(\n (...args: Parameters<T>) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n timeoutRef.current = setTimeout(() => {\n callbackRef.current(...args);\n }, delay);\n },\n [delay]\n );\n\n const cancel = useCallback(() => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = undefined;\n }\n }, []);\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n return {\n debouncedCallback,\n cancel,\n };\n};","import type { AriaRole, KeyboardEvent, KeyboardEventHandler, SyntheticEvent } from 'react';\n\nexport type ArrowDirectionEnum = 'ArrowUp' | 'ArrowDown' | 'ArrowLeft' | 'ArrowRight';\n\nexport type AccessibilityActions = {\n onClick?: (event?: SyntheticEvent) => void;\n onTab?: (forward: boolean) => void;\n onEsc?: () => void;\n onArrowNavigation?: (direction: ArrowDirectionEnum) => void;\n};\n\nexport type AccessibilityProps = {\n tabIndex?: number;\n role?: AriaRole;\n onKeyDown?: KeyboardEventHandler<unknown>;\n};\n\n/** Executes the provided function with setTimeout with 0 delay */\nexport const runInNextCycle = (func: (() => void)): void => {\n setTimeout(func, 0);\n};\n\n/**\n * Generates accessibility properties for clickable elements.\n * @param {boolean} [addIndex] -\n * @param {AriaRole} [role='button'] - ARIA role attribute to be assigned to the element.\n * @returns {AccessibilityProps}\n */\nexport const getClickAccessibilityProps = (params: {\n /** Object containing action handlers for various key events. */\n actions: AccessibilityActions;\n /** If true, sets the tabIndex to 0 to make the element focusable. */\n addIndex?: boolean;\n /** Accessibility properties including ARIA role and key event handlers. */\n role?: AriaRole;\n}): AccessibilityProps => {\n const { actions, addIndex, role } = params;\n // Initialize the element properties with default role 'button' or provided role\n const elementProps: AccessibilityProps = {\n role: role || 'button',\n onKeyDown: (event: KeyboardEvent) => {\n // Handle different key events\n switch (event.key) {\n case 'Enter':\n case ' ':\n case 'Spacebar':\n event.preventDefault(); // Prevent default action for Enter and Space keys\n console.log('here in keydown handler for accessibility', actions);\n\n // Trigger onClick action if defined\n if (actions.onClick) {\n actions.onClick(event);\n }\n break;\n case 'Escape':\n // Trigger onEsc action if defined\n if (actions.onEsc) {\n actions.onEsc();\n }\n break;\n case 'Tab':\n // Trigger onTab action if defined, passing a boolean indicating the direction of tabbing\n if (actions.onTab) {\n actions.onTab(!event.shiftKey);\n }\n break;\n case 'ArrowUp':\n case 'ArrowDown':\n if (actions.onArrowNavigation) {\n actions.onArrowNavigation(event.key);\n }\n break;\n }\n },\n };\n\n // Add tabIndex property if addIndex is true to make the element focusable\n if (addIndex) {\n elementProps.tabIndex = 0;\n }\n\n // Return the constructed accessibility properties\n return elementProps;\n};\n\n/**\n * Handles arrow key navigation for category elements.\n *\n * This function allows users to navigate through keys.\n * It focuses on the next or previous element and optionally triggers a callback.\n *\n * @param {boolean} forward - Whether to move forward (true) or backward (false) in the tab order.\n * @param {number} index - The current index of the focused element.\n * @param {HTMLAnchorElement[]} arrayOfRefs - Array of element references to navigate through.\n * @param {(nextIndex: number) => void} [selectFunction] - Optional callback to handle selection.\n */\nexport const handleKeyboardNavigation = (\n forward: boolean,\n index: number,\n arrayOfRefs: HTMLAnchorElement[] | HTMLButtonElement[] | HTMLElement[],\n selectFunction?: (nextIndex: number) => void,\n shouldFocusNextElement: boolean = true,\n) => {\n // Guard clause: Return if refs array is invalid\n if (!arrayOfRefs || !Array.isArray(arrayOfRefs)) {\n return;\n }\n\n // Determine the next index based on navigation direction\n const nextIndex = forward ? Math.min(index + 1, arrayOfRefs.length - 1) : Math.max(index - 1, 0);\n\n runInNextCycle(() => {\n // Focus the next element in the refs array\n if (shouldFocusNextElement) {\n arrayOfRefs[nextIndex]?.focus();\n }\n // Call the selection function, if provided\n if (selectFunction) {\n selectFunction(nextIndex);\n }\n });\n};\n","import cx from 'classnames';\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport Icon from '../Icon';\nimport styles from './Tooltip.module.scss';\nimport usePresenter from './Tooltip.presenter';\nimport { TooltipProps } from './Tooltip.types';\nimport { ConditionalView } from '../../utils';\n\nconst Tooltip = (props: TooltipProps) => {\n const {\n direction,\n action,\n target,\n position,\n showTooltip,\n hideTooltip,\n toggleTooltip,\n targetRef,\n tooltipRef,\n wrapperRef,\n variantProps,\n arrowStyle,\n style,\n visible,\n } = usePresenter(props);\n\n return (\n <div ref={wrapperRef} className={cx(styles.tooltipWrapper,\n {\n [styles.outlined]: style === 'Outlined'\n }, props.className)}\n {...variantProps}\n >\n <div\n ref={targetRef}\n className={styles.tooltipTarget}\n onMouseEnter={action === 'Hover' ? showTooltip : undefined}\n onMouseLeave={action === 'Hover' ? hideTooltip : undefined}\n onClick={action === 'Click' ? toggleTooltip : undefined}\n >\n {target}\n </div>\n <ConditionalView condition={visible}>\n <div\n className={styles.tooltipContent}\n ref={tooltipRef}\n style={{ top: `${position.top}px`, left: `${position.left}px` }}\n data-direction={direction}\n >\n <WrapTextNodes className={styles.text}>\n {props.children}\n </WrapTextNodes>\n <div className={styles.tooltipArrow}\n style={arrowStyle}\n >\n <Icon className={cx(styles.tooltipArrowIcon, styles.tailFill)} icon=\"Tail\" style=\"Filled\" />\n <Icon className={cx(styles.tooltipArrowIcon, styles.tailOutline)} icon=\"Tail\" style=\"Outlined\" />\n </div>\n </div>\n </ConditionalView>\n </div>\n );\n};\n\nexport default Tooltip;\n","import { CSSProperties, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { ARROW_DIMENSIONS_MAP, TOOLTIP_ARROW_CONSTANTS, TOOLTIP_VARIANT_MAP } from \"./Tooltip.constants\";\nimport { TooltipProps } from './Tooltip.types';\n\nconst usePresenter = (props: TooltipProps) => {\n const {\n direction = 'Top',\n alignment = 'Center',\n action = 'Hover',\n isVisible = false,\n style = 'Default',\n target,\n } = props;\n\n const [visible, setVisible] = useState(isVisible);\n const [position, setPosition] = useState({ top: 0, left: 0 });\n const tooltipRef = useRef<HTMLDivElement>(null);\n const targetRef = useRef<HTMLDivElement>(null);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const [arrowOffset, setArrowOffset] = useState(0);\n\n const showTooltip = () => {\n setVisible(true);\n };\n\n const hideTooltip = () => {\n setVisible(false);\n };\n\n const toggleTooltip = () => {\n setVisible((prev) => !prev);\n };\n\n const updatePosition = useCallback((e?: Event) => {\n if (!visible) return;\n\n if (targetRef.current && wrapperRef.current) {\n const tooltipRect = tooltipRef.current?.getBoundingClientRect();\n const targetRect = targetRef.current.getBoundingClientRect();\n const wrapperRect = wrapperRef.current.getBoundingClientRect();\n\n if (!tooltipRect) return;\n let top = targetRect.top - wrapperRect.top,\n left = targetRect.left - wrapperRect.left;\n\n if (action === 'Follow' && target) {\n const followRect = targetRef.current.firstElementChild?.getBoundingClientRect() || targetRect;\n top = followRect.top - wrapperRect.top;\n left = followRect.left - wrapperRect.left;\n }\n\n switch (direction) {\n case 'Top':\n top -= tooltipRect.height + 10;\n break;\n case 'Bottom':\n top += targetRect.height + 10;\n break;\n case 'Left':\n left -= tooltipRect.width + 10;\n break;\n case 'Right':\n left += targetRect.width + 10;\n break;\n }\n\n switch (alignment) {\n case 'Center':\n if (direction === 'Top' || direction === 'Bottom') {\n left += (targetRect.width - tooltipRect.width) / 2;\n } else {\n top += (targetRect.height - tooltipRect.height) / 2;\n }\n break;\n case 'End':\n if (direction === 'Top' || direction === 'Bottom') {\n left += targetRect.width - tooltipRect.width;\n } else {\n top += targetRect.height - tooltipRect.height;\n }\n break;\n case 'Start':\n break;\n }\n // Calculate the arrow offset based on alignment\n if (direction === 'Top' || direction === 'Bottom') {\n const tooltipWidth = tooltipRect.width;\n\n // if the tooltip is taller than the arrow, set the arrow offset\n if ((tooltipWidth - TOOLTIP_ARROW_CONSTANTS.WIDTH) > TOOLTIP_ARROW_CONSTANTS.WIDTH) {\n // For Top/Bottom: arrow position along horizontal axis based on alignment\n let offset = 0;\n switch (alignment) {\n case 'Start':\n offset = 20; // Arrow at left side of tooltip\n break;\n case 'Center':\n offset = tooltipRect.width / 2; // Arrow at center of tooltip\n break;\n case 'End':\n offset = tooltipRect.width - 20; // Arrow at right side of tooltip\n break;\n }\n setArrowOffset(offset);\n } else {\n setArrowOffset(tooltipRect.width / 2);\n }\n } else if (direction === 'Left' || direction === 'Right') {\n const tooltipHeight = tooltipRect.height;\n\n // if the tooltip is wider than the arrow, set the arrow offset\n if ((tooltipHeight - TOOLTIP_ARROW_CONSTANTS.WIDTH) > TOOLTIP_ARROW_CONSTANTS.WIDTH) {\n // For Left/Right: arrow position along vertical axis based on alignment\n let offset = 0;\n switch (alignment) {\n case 'Start':\n offset = 12; // Arrow at top of tooltip\n break;\n case 'Center':\n offset = tooltipRect.height / 2; // Arrow at center of tooltip\n break;\n case 'End':\n offset = tooltipRect.height - 12; // Arrow at bottom of tooltip\n break;\n }\n setArrowOffset(offset);\n } else {\n setArrowOffset(tooltipRect.height / 2);\n }\n }\n setPosition({ top, left });\n }\n }, [visible, targetRef.current, tooltipRef.current, wrapperRef.current, action, direction, alignment]);\n\n useEffect(() => {\n if (visible) {\n updatePosition();\n window.addEventListener('scroll', updatePosition);\n window.addEventListener('resize', updatePosition);\n if (action === 'Follow') {\n window.addEventListener('mousemove', updatePosition);\n }\n }\n return () => {\n window.removeEventListener('scroll', updatePosition);\n window.removeEventListener('resize', updatePosition);\n if (action === 'Follow') {\n window.removeEventListener('mousemove', updatePosition);\n }\n };\n }, [visible, targetRef.current, tooltipRef.current]);\n\n const variantKey = `${direction}-${alignment}` as keyof typeof TOOLTIP_VARIANT_MAP;\n const baseVariant = TOOLTIP_VARIANT_MAP[variantKey];\n\n const variantProps = useBuildVariantProps(\n 'tooltip',\n { baseVariant, style },\n {},\n );\n\n const arrowStyle: CSSProperties = useMemo(() => {\n let positions: CSSProperties = {};\n if (direction === 'Top' || direction === 'Bottom') {\n positions.left = arrowOffset;\n } else {\n positions.top = arrowOffset;\n }\n\n const arrowDimensions = ARROW_DIMENSIONS_MAP[direction];\n\n return {\n ...positions,\n ...arrowDimensions,\n };\n }, [arrowOffset, direction]);\n\n return {\n direction,\n action,\n target,\n position,\n showTooltip,\n hideTooltip,\n toggleTooltip,\n targetRef,\n tooltipRef,\n wrapperRef,\n variantProps,\n arrowStyle,\n style,\n visible,\n };\n};\n\nexport default usePresenter;\n\n","import classNames from 'classnames';\nimport { forwardRef } from 'react';\nimport styles from './CustomToggle.module.scss';\nimport usePresenter from './CustomToggle.presenter';\nimport { CustomToggleProps } from './CustomToggle.types';\n\nconst CustomToggle = forwardRef<HTMLInputElement, CustomToggleProps>((props, ref) => {\n const {\n variantProps,\n isChecked,\n handleChange,\n disabled,\n invalid,\n otherInputProps,\n required,\n content,\n } = usePresenter(props);\n\n return (\n <label\n className={classNames(\n styles.toggleWrapper,\n {\n [styles.disabled]: disabled,\n [styles.invalid]: invalid,\n },\n props.className,\n )}\n {...variantProps}\n >\n <input\n {...otherInputProps}\n type=\"checkbox\"\n className={styles.input}\n checked={isChecked}\n onChange={handleChange}\n disabled={disabled}\n required={required}\n ref={ref}\n aria-invalid={invalid}\n />\n <div className={styles.toggle}>\n {content}\n </div>\n </label>\n );\n});\n\nexport default CustomToggle;\n","import { useMemo } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport useCheckboxField from '../Checkbox/useCheckboxField';\nimport { CustomToggleProps } from './CustomToggle.types';\n\nconst usePresenter = (props: CustomToggleProps) => {\n const {\n checked,\n value,\n onValueChange,\n disabled = false,\n required = false,\n invalid = false,\n offContent,\n onContent,\n className,\n ...otherInputProps\n } = props;\n\n const { isChecked, onCheckboxChanged } = useCheckboxField({ checked, value, onValueChange });\n\n const content = isChecked ? onContent : offContent;\n\n const variantProps = useBuildVariantProps(\n 'custom-toggle',\n {\n styles: isChecked ? 'selected' : 'unselected',\n },\n {\n disabled,\n invalid,\n },\n );\n\n return {\n variantProps,\n isChecked,\n handleChange: onCheckboxChanged,\n disabled,\n invalid,\n otherInputProps,\n required,\n content,\n };\n};\n\nexport default usePresenter;","import React from 'react';\nimport cx from 'classnames';\nimport styles from './Chip.module.scss';\nimport type { ChipProps } from './Chip.types';\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport Icon from '../Icon';\nimport IconButton from '../IconButton';\n\n/**\n * Chip component definition.\n */\nconst Chip = (props: ChipProps) => {\n const {\n className,\n type = 'Filled',\n style = 'A',\n size = 'Medium',\n leadingIcon,\n trailingIcon,\n closeIcon,\n isDisabled = false,\n onClick,\n onClose,\n children,\n corner = 'Rounded',\n isDismissible = false,\n ...restProps\n } = props;\n\n let leadingIconComponent, trailingIconComponent, content, closeIconComponent;\n\n // Render leading icon if provided\n if (leadingIcon) {\n leadingIconComponent = <div className={styles.leadingIcon}>{leadingIcon}</div>;\n }\n\n // Render trailing icon if provided\n if (trailingIcon) {\n trailingIconComponent = <div className={styles.trailingIcon}>{trailingIcon}</div>;\n }\n\n // Render close icon if dismissible\n if (isDismissible) {\n const closeIconView = closeIcon || <Icon icon=\"CloseDelete\" style='Outlined' size='Small' />;\n closeIconComponent = (\n <IconButton\n type='Ghost'\n size='Small'\n onClick={(e) => {\n e?.stopPropagation();\n onClose?.(e);\n }}\n icon={closeIconView}\n />\n );\n }\n\n // Render chip content\n if (children) {\n content = (\n <div className={styles.content}>\n <WrapTextNodes noWrap={true} className={styles.text}>\n {children}\n </WrapTextNodes>\n </div>\n );\n }\n\n const variantProps = useBuildVariantProps(\n 'chip',\n { type, size, style, corner },\n { isDisabled },\n );\n\n return (\n <div\n className={cx(\n styles.chip,\n className,\n {\n [styles.disabled]: isDisabled,\n },\n )}\n onClick={!isDisabled ? onClick : undefined}\n {...variantProps}\n {...restProps}\n >\n <div className={styles.iconAndContentContainer}>\n {leadingIconComponent}\n {content}\n {trailingIconComponent}\n </div>\n {closeIconComponent}\n </div>\n );\n};\n\nexport default Chip;","import cx from 'classnames';\nimport { forwardRef } from 'react';\n\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport Icon from '../Icon';\nimport styles from './Checkbox.module.scss';\nimport usePresenter from './Checkbox.presenter';\nimport type { CheckboxProps } from './Checkbox.types';\n\nconst Checkbox = forwardRef<HTMLInputElement, CheckboxProps>((props: CheckboxProps, ref) => {\n const {\n labelAlignment,\n disabled,\n isChecked,\n required,\n name,\n invalid,\n variantProps,\n otherInputProps,\n onCheckboxChanged,\n } = usePresenter(props);\n\n return (\n <label\n className={cx(\n styles.checkbox,\n props.className,\n {\n [styles.labelLeft]: labelAlignment === 'Left',\n [styles.labelRight]: labelAlignment === 'Right',\n [styles.disabled]: disabled,\n },\n )}\n {...variantProps}\n >\n <input\n {...otherInputProps}\n type=\"checkbox\"\n className={styles.input}\n checked={isChecked}\n onChange={onCheckboxChanged}\n disabled={disabled}\n required={required}\n ref={ref}\n name={name}\n value={name}\n aria-invalid={invalid}\n id={props.id}\n />\n <div className={styles.iconWrapper}>\n <div className={styles.iconContainer}>\n <Icon icon=\"Check\" style=\"Filled\" className={cx(styles.icon)} />\n </div>\n </div>\n <ConditionalView condition={props.children}>\n <WrapTextNodes className={styles.label}>\n {props.children}\n </WrapTextNodes>\n </ConditionalView>\n </label>\n );\n});\n\nexport default Checkbox;\n","import { useMemo } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { CheckboxProps } from './Checkbox.types';\nimport useCheckboxField from './useCheckboxField';\n\nconst usePresenter = (props: CheckboxProps) => {\n const {\n className,\n size = 'Medium',\n type = 'Default',\n checked,\n onValueChange,\n disabled = false,\n invalid = false,\n required,\n labelAlignment = 'Left',\n defaultChecked = false,\n children,\n name,\n value,\n ...otherInputProps\n } = props;\n\n const { isChecked, onCheckboxChanged } = useCheckboxField({ checked, defaultChecked, value, onValueChange });\n\n const variantProps = useBuildVariantProps(\n 'checkbox',\n {\n styles: isChecked ? 'Selected' : 'Unselected',\n size,\n type,\n },\n {\n disabled,\n invalid,\n },\n );\n\n return {\n otherInputProps,\n onCheckboxChanged,\n variantProps,\n labelAlignment,\n disabled,\n isChecked,\n required,\n name,\n invalid,\n };\n};\n\nexport default usePresenter;","import cx from 'classnames';\nimport React from 'react';\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport Checkbox from '../Checkbox/Checkbox';\nimport IconButton from '../IconButton/IconButton';\nimport styles from './CheckboxItem.module.scss';\nimport usePresenter from './CheckboxItem.presenter';\nimport type { CheckboxItemProps } from './CheckboxItem.types';\n\nconst CheckboxItem = React.forwardRef<HTMLInputElement, CheckboxItemProps>((props: CheckboxItemProps, ref) => {\n const {\n variantProps,\n isChecked,\n handleChange,\n required,\n otherInputProps,\n defaultChecked,\n invalid,\n labelAlignment,\n value,\n disabled,\n showRightButton,\n onRightButtonClick,\n rightButtonIcon,\n id,\n } = usePresenter(props);\n\n return (\n <div\n className={cx(\n styles.checkboxItem,\n props.className,\n {\n [styles.disabled]: disabled,\n [styles.hasRightButton]: showRightButton,\n },\n )}\n {...variantProps}\n >\n <Checkbox\n checked={isChecked}\n defaultChecked={defaultChecked}\n onValueChange={handleChange}\n disabled={disabled}\n invalid={invalid}\n required={required}\n labelAlignment={labelAlignment}\n ref={ref}\n value={value}\n id={id}\n {...otherInputProps}\n className={cx(styles.checkbox, otherInputProps.className)}\n >\n <WrapTextNodes className={styles.text}>\n {props.children}\n </WrapTextNodes>\n </Checkbox>\n <ConditionalView condition={showRightButton}>\n <IconButton\n className={styles.rightButton}\n onClick={onRightButtonClick}\n disabled={disabled}\n appearance=\"Default\"\n size=\"Small\"\n style=\"Secondary\"\n icon={rightButtonIcon}\n type=\"Ghost\"\n actionType=\"button\"\n />\n </ConditionalView>\n </div>\n );\n});\n\nexport default CheckboxItem; ","import { useState, useEffect } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { CheckboxItemProps } from './CheckboxItem.types';\n\nconst usePresenter = (props: CheckboxItemProps) => {\n const {\n checked,\n defaultChecked,\n onValueChange,\n disabled = false,\n invalid = false,\n required = false,\n labelAlignment = 'Left',\n children,\n showRightButton = false,\n onRightButtonClick,\n rightButtonIcon,\n value,\n id,\n ...otherInputProps\n } = props;\n\n const [isChecked, setIsChecked] = useState(checked ?? defaultChecked ?? false);\n\n useEffect(() => {\n setIsChecked(!!(checked ?? value));\n }, [checked, value]);\n\n const handleChange = (value: boolean) => {\n setIsChecked(!!value);\n onValueChange?.(value);\n };\n\n const variantProps = useBuildVariantProps(\n 'checkbox-item',\n {\n styles: isChecked ? 'selected' : 'unselected',\n },\n {\n disabled,\n invalid,\n },\n );\n\n return {\n variantProps,\n handleChange,\n isChecked,\n disabled,\n required,\n otherInputProps,\n defaultChecked,\n invalid,\n labelAlignment,\n value,\n showRightButton,\n onRightButtonClick,\n rightButtonIcon,\n id,\n };\n};\n\nexport default usePresenter;","import cx from 'classnames';\nimport { forwardRef } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport styles from './RadioButton.module.scss';\nimport type { RadioButtonProps } from './RadioButton.types';\n\nconst RadioButton = forwardRef<HTMLInputElement, RadioButtonProps>((props: RadioButtonProps, ref) => {\n const {\n className,\n size = 'Medium',\n checked,\n disabled = false,\n invalid = false,\n labelAlignment = 'Left',\n value,\n children,\n onChange,\n ...otherInputProps\n } = props;\n\n const variantProps = useBuildVariantProps(\n 'radio-button',\n {\n size,\n style: checked ? 'Selected' : 'Unselected',\n },\n {\n disabled,\n invalid,\n },\n );\n\n return (\n <label\n className={cx(\n styles.radioButton,\n className,\n {\n [styles.labelLeft]: labelAlignment === 'Left',\n [styles.labelRight]: labelAlignment === 'Right',\n [styles.disabled]: disabled,\n },\n )}\n {...variantProps}\n >\n <input\n {...otherInputProps}\n type=\"radio\"\n className={styles.input}\n checked={checked}\n onChange={onChange}\n disabled={disabled}\n ref={ref}\n value={value}\n />\n <div className={styles.iconWrapper}>\n <div className={styles.radio}>\n <div className={styles.dot} />\n </div>\n </div>\n <ConditionalView condition={children}>\n <WrapTextNodes className={styles.text}>\n {children}\n </WrapTextNodes>\n </ConditionalView>\n </label>\n );\n});\n\nexport default RadioButton;","import cx from 'classnames';\nimport React from 'react';\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport IconButton from '../IconButton/IconButton';\nimport RadioButton from '../RadioButton/RadioButton';\nimport styles from './RadioButtonItem.module.scss';\nimport usePresenter from './RadioButtonItem.presenter';\nimport type { RadioButtonItemProps } from './RadioButtonItem.types';\n\nconst RadioButtonItem = React.forwardRef<HTMLInputElement, RadioButtonItemProps>((props: RadioButtonItemProps, ref) => {\n const {\n handleChange,\n variantProps,\n isSelected,\n defaultChecked,\n value,\n disabled,\n invalid,\n required,\n labelAlignment,\n children,\n showRightButton,\n onRightButtonClick,\n rightButtonIcon,\n otherProps,\n } = usePresenter(props);\n\n return (\n <div\n className={cx(\n styles.radioButtonItem,\n props.className,\n {\n [styles.disabled]: disabled,\n [styles.hasRightButton]: showRightButton,\n },\n )}\n {...variantProps}\n >\n <RadioButton\n checked={isSelected}\n defaultChecked={defaultChecked}\n onChange={handleChange}\n disabled={disabled}\n invalid={invalid}\n required={required}\n labelAlignment={labelAlignment}\n ref={ref}\n value={value}\n {...otherProps}\n >\n {children}\n </RadioButton>\n <ConditionalView condition={showRightButton}>\n <IconButton\n className={styles.rightButton}\n onClick={onRightButtonClick}\n disabled={disabled}\n appearance=\"Default\"\n size=\"Small\"\n style=\"Secondary\"\n icon={rightButtonIcon}\n type=\"Ghost\"\n actionType=\"button\"\n />\n </ConditionalView>\n </div>\n );\n});\n\nexport default RadioButtonItem; ","import { useEffect, useState } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { RadioButtonItemProps } from './RadioButtonItem.types';\n\nconst usePresenter = (props: RadioButtonItemProps) => {\n const {\n className,\n checked,\n defaultChecked,\n value,\n disabled = false,\n invalid = false,\n required = false,\n labelAlignment = 'Left',\n children,\n showRightButton = false,\n onRightButtonClick,\n rightButtonIcon,\n onChange,\n ...otherProps\n } = props;\n\n const [isSelected, setIsSelected] = useState(checked ?? defaultChecked ?? false);\n\n useEffect(() => {\n setIsSelected(!!checked);\n }, [checked]);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setIsSelected(true);\n onChange?.(event);\n };\n\n const variantProps = useBuildVariantProps(\n 'radio-button-item',\n {\n styles: isSelected ? 'selected' : 'unselected',\n },\n {\n disabled,\n invalid,\n },\n );\n\n return {\n handleChange,\n variantProps,\n isSelected,\n checked,\n defaultChecked,\n value,\n disabled,\n invalid,\n required,\n labelAlignment,\n children,\n showRightButton,\n onRightButtonClick,\n otherProps,\n rightButtonIcon,\n };\n};\n\nexport default usePresenter;","import cx from 'classnames';\nimport { NavLink as RouterNavLink, useNavigate } from 'react-router-dom';\n\nimport styles from './NavLink.module.scss';\nimport type { NavLinkProps } from './NavLink.types';\nimport { WrapTextNodes } from '../../../utils/WrapTextNodes';\nimport useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\nimport { TextProps } from '../../../atoms';\nimport { TextStylingProps } from '../../../atoms/Text/Text.types';\n\nconst NavContent = (props: Pick<NavLinkProps, 'children' | 'leadingIcon' | 'trailingIcon' | 'className'>) => {\n const { children, leadingIcon, trailingIcon, className } = props;\n\n return (\n <>\n {leadingIcon && (\n <div className={styles.leadingIcon}>\n {leadingIcon}\n </div>\n )}\n <WrapTextNodes as=\"span\" className={className}>\n {children}\n </WrapTextNodes>\n {trailingIcon && (\n <div className={styles.trailingIcon}>\n {trailingIcon}\n </div>\n )}\n </>\n );\n};\n\nconst NavigateNavLink = (\n props: Omit<NavLinkProps, 'to'> & {\n to: number,\n componentVariantProp: { 'component-variant': string },\n textClassName: string,\n },\n) => {\n const navigate = useNavigate();\n const {\n to,\n children,\n className,\n leadingIcon,\n trailingIcon,\n componentVariantProp,\n textClassName,\n ...rest } = props;\n\n return (\n <a\n {...rest}\n onClick={() => navigate(to)}\n className={cx(styles.navLink, className)}\n {...componentVariantProp}\n >\n <NavContent\n children={children}\n leadingIcon={leadingIcon}\n trailingIcon={trailingIcon}\n className={textClassName}\n />\n </a>\n )\n};\n\nconst NavLink = (props: NavLinkProps) => {\n const {\n to,\n children,\n className,\n 'component-variant': componentVariant,\n appearance,\n size,\n style,\n type = 'Fill',\n leadingIcon,\n trailingIcon,\n ...rest\n } = props;\n\n /**\n * Check if the component should be rendered as a button.\n * If any of the appearance, size, style, or type props are provided, the component will be rendered as a button.\n */\n const asButton = [appearance, style, !['Fill', 'Underline'].includes(type)].some(Boolean);\n\n const buttonVariants: Record<string, string> = {\n appearance: appearance || 'Default',\n size: size || 'Small',\n style: style || 'Secondary',\n type: type || 'Filled',\n };\n\n const navLinkVariants: Record<string, string> = {\n type,\n size: size || 'Small',\n };\n\n const buildVariantOptions = {\n component: asButton ? 'button' : 'nav-link',\n // if the component is a button, we need to build the variant props\n // use the default values if some props are not provided\n variants: asButton ? buttonVariants : navLinkVariants,\n stateFlags: {\n },\n componentVariant,\n };\n\n const componentVariantProp = useBuildVariantProps(\n buildVariantOptions.component,\n buildVariantOptions.variants,\n buildVariantOptions.stateFlags,\n buildVariantOptions.componentVariant,\n );\n\n /**\n * If the component variant is provided, we don't need to add the additional class name.\n * Otherwise, we add the additional class name based on if the component is a button or a link.\n * This is to ensure that we use the correct theme variables for the component.\n */\n const asComponentVariant = componentVariant !== undefined;\n const additionalClassName = asComponentVariant ? '' : (asButton ? 'button' : 'link');\n\n const classNameProp = cx(\n styles.navLink,\n styles[additionalClassName],\n className,\n );\n\n if (typeof to === 'number') {\n return (\n <NavigateNavLink\n {...rest}\n to={to}\n children={children}\n className={classNameProp}\n componentVariantProp={componentVariantProp}\n textClassName={asButton ? styles.buttonText : styles.linkText}\n />\n )\n }\n\n const isExternal = /^https?:\\/\\//.test(to);\n if (isExternal) {\n return (\n <a\n {...rest}\n href={to}\n className={classNameProp}\n {\n ...componentVariantProp\n }\n >\n <NavContent\n children={children}\n leadingIcon={leadingIcon}\n trailingIcon={trailingIcon}\n className={asButton ? styles.buttonText : styles.linkText}\n />\n </a>\n );\n }\n\n return (\n <RouterNavLink\n {...rest}\n to={to}\n className={classNameProp}\n {\n ...componentVariantProp\n }\n >\n <NavContent\n children={children}\n leadingIcon={leadingIcon}\n trailingIcon={trailingIcon}\n className={asButton ? styles.buttonText : styles.linkText}\n />\n </RouterNavLink>\n );\n};\nexport default NavLink;\n","import React from \"react\";\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { ContextMenuProps } from \"./ContextMenu.types\";\nimport { List } from \"../..\";\nimport { ListItemType } from \"../List/List.types\";\nimport cx from 'classnames';\nimport styles from './ContextMenu.module.scss';\n\nconst ContextMenu = <T extends ListItemType>(props: ContextMenuProps<T>) => {\n const { className, 'component-variant': componentVariant, ...restProps } = props;\n \n const variantProps = useBuildVariantProps(\n 'context-menu',\n {},\n undefined,\n componentVariant,\n );\n\n return <div className={cx(styles.contextMenu, className)} {...variantProps}>\n <List \n className={styles.list}\n {...restProps} \n align=\"Vertical\"\n />\n </div>;\n};\n\nexport default ContextMenu;\n","export var HOOKS = [\n \"onChange\",\n \"onClose\",\n \"onDayCreate\",\n \"onDestroy\",\n \"onKeyDown\",\n \"onMonthChange\",\n \"onOpen\",\n \"onParseConfig\",\n \"onReady\",\n \"onValueUpdate\",\n \"onYearChange\",\n \"onPreCalendarPosition\",\n];\nexport var defaults = {\n _disable: [],\n allowInput: false,\n allowInvalidPreload: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" &&\n window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n autoFillDefaultTime: true,\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enableSeconds: false,\n enableTime: false,\n errorHandler: function (err) {\n return typeof console !== \"undefined\" && console.warn(err);\n },\n getWeek: function (givenDate) {\n var date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0);\n date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n var week1 = new Date(date.getFullYear(), 0, 4);\n return (1 +\n Math.round(((date.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getDay() + 6) % 7)) /\n 7));\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n monthSelectorType: \"dropdown\",\n nextArrow: \"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false,\n};\n","export var english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n};\nexport default english;\n","export var pad = function (number, length) {\n if (length === void 0) { length = 2; }\n return (\"000\" + number).slice(length * -1);\n};\nexport var int = function (bool) { return (bool === true ? 1 : 0); };\nexport function debounce(fn, wait) {\n var t;\n return function () {\n var _this = this;\n var args = arguments;\n clearTimeout(t);\n t = setTimeout(function () { return fn.apply(_this, args); }, wait);\n };\n}\nexport var arrayify = function (obj) {\n return obj instanceof Array ? obj : [obj];\n};\n","export function toggleClass(elem, className, bool) {\n if (bool === true)\n return elem.classList.add(className);\n elem.classList.remove(className);\n}\nexport function createElement(tag, className, content) {\n var e = window.document.createElement(tag);\n className = className || \"\";\n content = content || \"\";\n e.className = className;\n if (content !== undefined)\n e.textContent = content;\n return e;\n}\nexport function clearNode(node) {\n while (node.firstChild)\n node.removeChild(node.firstChild);\n}\nexport function findParent(node, condition) {\n if (condition(node))\n return node;\n else if (node.parentNode)\n return findParent(node.parentNode, condition);\n return undefined;\n}\nexport function createNumberInput(inputClassName, opts) {\n var wrapper = createElement(\"div\", \"numInputWrapper\"), numInput = createElement(\"input\", \"numInput \" + inputClassName), arrowUp = createElement(\"span\", \"arrowUp\"), arrowDown = createElement(\"span\", \"arrowDown\");\n if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n numInput.type = \"number\";\n }\n else {\n numInput.type = \"text\";\n numInput.pattern = \"\\\\d*\";\n }\n if (opts !== undefined)\n for (var key in opts)\n numInput.setAttribute(key, opts[key]);\n wrapper.appendChild(numInput);\n wrapper.appendChild(arrowUp);\n wrapper.appendChild(arrowDown);\n return wrapper;\n}\nexport function getEventTarget(event) {\n try {\n if (typeof event.composedPath === \"function\") {\n var path = event.composedPath();\n return path[0];\n }\n return event.target;\n }\n catch (error) {\n return event.target;\n }\n}\n","import { int, pad } from \"../utils\";\nvar doNothing = function () { return undefined; };\nexport var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber]; };\nexport var revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n H: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n J: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n K: function (dateObj, amPM, locale) {\n dateObj.setHours((dateObj.getHours() % 12) +\n 12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n },\n M: function (dateObj, shortMonth, locale) {\n dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n },\n S: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: function (_, unixSeconds) { return new Date(parseFloat(unixSeconds) * 1000); },\n W: function (dateObj, weekNum, locale) {\n var weekNumber = parseInt(weekNum);\n var date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n return date;\n },\n Y: function (dateObj, year) {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: function (_, ISODate) { return new Date(ISODate); },\n d: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n h: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n i: function (dateObj, minutes) {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: function (_, unixMillSeconds) {\n return new Date(parseFloat(unixMillSeconds));\n },\n w: doNothing,\n y: function (dateObj, year) {\n dateObj.setFullYear(2000 + parseFloat(year));\n },\n};\nexport var tokenRegex = {\n D: \"\",\n F: \"\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\",\n};\nexport var formats = {\n Z: function (date) { return date.toISOString(); },\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n H: function (date) { return pad(date.getHours()); },\n J: function (date, locale) {\n return locale.ordinal !== undefined\n ? date.getDate() + locale.ordinal(date.getDate())\n : date.getDate();\n },\n K: function (date, locale) { return locale.amPM[int(date.getHours() > 11)]; },\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n S: function (date) { return pad(date.getSeconds()); },\n U: function (date) { return date.getTime() / 1000; },\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n Y: function (date) { return pad(date.getFullYear(), 4); },\n d: function (date) { return pad(date.getDate()); },\n h: function (date) { return (date.getHours() % 12 ? date.getHours() % 12 : 12); },\n i: function (date) { return pad(date.getMinutes()); },\n j: function (date) { return date.getDate(); },\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n m: function (date) { return pad(date.getMonth() + 1); },\n n: function (date) { return date.getMonth() + 1; },\n s: function (date) { return date.getSeconds(); },\n u: function (date) { return date.getTime(); },\n w: function (date) { return date.getDay(); },\n y: function (date) { return String(date.getFullYear()).substring(2); },\n};\n","import { tokenRegex, revFormat, formats, } from \"./formatting\";\nimport { defaults } from \"../types/options\";\nimport { english } from \"../l10n/default\";\nexport var createDateFormatter = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c, _d = _a.isMobile, isMobile = _d === void 0 ? false : _d;\n return function (dateObj, frmt, overrideLocale) {\n var locale = overrideLocale || l10n;\n if (config.formatDate !== undefined && !isMobile) {\n return config.formatDate(dateObj, frmt, locale);\n }\n return frmt\n .split(\"\")\n .map(function (c, i, arr) {\n return formats[c] && arr[i - 1] !== \"\\\\\"\n ? formats[c](dateObj, locale, config)\n : c !== \"\\\\\"\n ? c\n : \"\";\n })\n .join(\"\");\n };\n};\nexport var createDateParser = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c;\n return function (date, givenFormat, timeless, customLocale) {\n if (date !== 0 && !date)\n return undefined;\n var locale = customLocale || l10n;\n var parsedDate;\n var dateOrig = date;\n if (date instanceof Date)\n parsedDate = new Date(date.getTime());\n else if (typeof date !== \"string\" &&\n date.toFixed !== undefined)\n parsedDate = new Date(date);\n else if (typeof date === \"string\") {\n var format = givenFormat || (config || defaults).dateFormat;\n var datestr = String(date).trim();\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n }\n else if (config && config.parseDate) {\n parsedDate = config.parseDate(date, format);\n }\n else if (/Z$/.test(datestr) ||\n /GMT$/.test(datestr)) {\n parsedDate = new Date(date);\n }\n else {\n var matched = void 0, ops = [];\n for (var i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n var token = format[i];\n var isBackSlash = token === \"\\\\\";\n var escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token] && !escaped) {\n regexStr += tokenRegex[token];\n var match = new RegExp(regexStr).exec(date);\n if (match && (matched = true)) {\n ops[token !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token],\n val: match[++matchIndex],\n });\n }\n }\n else if (!isBackSlash)\n regexStr += \".\";\n }\n parsedDate =\n !config || !config.noCalendar\n ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)\n : new Date(new Date().setHours(0, 0, 0, 0));\n ops.forEach(function (_a) {\n var fn = _a.fn, val = _a.val;\n return (parsedDate = fn(parsedDate, val, locale) || parsedDate);\n });\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n config.errorHandler(new Error(\"Invalid date provided: \" + dateOrig));\n return undefined;\n }\n if (timeless === true)\n parsedDate.setHours(0, 0, 0, 0);\n return parsedDate;\n };\n};\nexport function compareDates(date1, date2, timeless) {\n if (timeless === void 0) { timeless = true; }\n if (timeless !== false) {\n return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -\n new Date(date2.getTime()).setHours(0, 0, 0, 0));\n }\n return date1.getTime() - date2.getTime();\n}\nexport function compareTimes(date1, date2) {\n return (3600 * (date1.getHours() - date2.getHours()) +\n 60 * (date1.getMinutes() - date2.getMinutes()) +\n date1.getSeconds() -\n date2.getSeconds());\n}\nexport var isBetween = function (ts, ts1, ts2) {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n};\nexport var calculateSecondsSinceMidnight = function (hours, minutes, seconds) {\n return hours * 3600 + minutes * 60 + seconds;\n};\nexport var parseSeconds = function (secondsSinceMidnight) {\n var hours = Math.floor(secondsSinceMidnight / 3600), minutes = (secondsSinceMidnight - hours * 3600) / 60;\n return [hours, minutes, secondsSinceMidnight - hours * 3600 - minutes * 60];\n};\nexport var duration = {\n DAY: 86400000,\n};\nexport function getDefaultHours(config) {\n var hours = config.defaultHour;\n var minutes = config.defaultMinute;\n var seconds = config.defaultSeconds;\n if (config.minDate !== undefined) {\n var minHour = config.minDate.getHours();\n var minMinutes = config.minDate.getMinutes();\n var minSeconds = config.minDate.getSeconds();\n if (hours < minHour) {\n hours = minHour;\n }\n if (hours === minHour && minutes < minMinutes) {\n minutes = minMinutes;\n }\n if (hours === minHour && minutes === minMinutes && seconds < minSeconds)\n seconds = config.minDate.getSeconds();\n }\n if (config.maxDate !== undefined) {\n var maxHr = config.maxDate.getHours();\n var maxMinutes = config.maxDate.getMinutes();\n hours = Math.min(hours, maxHr);\n if (hours === maxHr)\n minutes = Math.min(maxMinutes, minutes);\n if (hours === maxHr && minutes === maxMinutes)\n seconds = config.maxDate.getSeconds();\n }\n return { hours: hours, minutes: minutes, seconds: seconds };\n}\n","\"use strict\";\nif (typeof Object.assign !== \"function\") {\n Object.assign = function (target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n var _loop_1 = function (source) {\n if (source) {\n Object.keys(source).forEach(function (key) { return (target[key] = source[key]); });\n }\n };\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var source = args_1[_a];\n _loop_1(source);\n }\n return target;\n };\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { defaults as defaultOptions, HOOKS, } from \"./types/options\";\nimport English from \"./l10n/default\";\nimport { arrayify, debounce, int, pad } from \"./utils\";\nimport { clearNode, createElement, createNumberInput, findParent, toggleClass, getEventTarget, } from \"./utils/dom\";\nimport { compareDates, createDateParser, createDateFormatter, duration, isBetween, getDefaultHours, calculateSecondsSinceMidnight, parseSeconds, } from \"./utils/dates\";\nimport { tokenRegex, monthToStr } from \"./utils/formatting\";\nimport \"./utils/polyfills\";\nvar DEBOUNCED_CHANGE_MS = 300;\nfunction FlatpickrInstance(element, instanceConfig) {\n var self = {\n config: __assign(__assign({}, defaultOptions), flatpickr.defaultConfig),\n l10n: English,\n };\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self.onMouseOver = onMouseOver;\n self._createElement = createElement;\n self.createDay = createDay;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.updateValue = updateValue;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth: function (month, yr) {\n if (month === void 0) { month = self.currentMonth; }\n if (yr === void 0) { yr = self.currentYear; }\n if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))\n return 29;\n return self.l10n.daysInMonth[month];\n },\n };\n }\n function init() {\n self.element = self.input = element;\n self.isOpen = false;\n parseConfig();\n setupLocale();\n setupInputs();\n setupDates();\n setupHelperFunctions();\n if (!self.isMobile)\n build();\n bindEvents();\n if (self.selectedDates.length || self.config.noCalendar) {\n if (self.config.enableTime) {\n setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : undefined);\n }\n updateValue(false);\n }\n setCalendarWidth();\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function getClosestActiveElement() {\n var _a;\n return (((_a = self.calendarContainer) === null || _a === void 0 ? void 0 : _a.getRootNode())\n .activeElement || document.activeElement);\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n var config = self.config;\n if (config.weekNumbers === false && config.showMonths === 1) {\n return;\n }\n else if (config.noCalendar !== true) {\n window.requestAnimationFrame(function () {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.style.visibility = \"hidden\";\n self.calendarContainer.style.display = \"block\";\n }\n if (self.daysContainer !== undefined) {\n var daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n self.daysContainer.style.width = daysWidth + \"px\";\n self.calendarContainer.style.width =\n daysWidth +\n (self.weekWrapper !== undefined\n ? self.weekWrapper.offsetWidth\n : 0) +\n \"px\";\n self.calendarContainer.style.removeProperty(\"visibility\");\n self.calendarContainer.style.removeProperty(\"display\");\n }\n });\n }\n }\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n var defaultDate = self.config.minDate === undefined ||\n compareDates(new Date(), self.config.minDate) >= 0\n ? new Date()\n : new Date(self.config.minDate.getTime());\n var defaults = getDefaultHours(self.config);\n defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());\n self.selectedDates = [defaultDate];\n self.latestSelectedDateObj = defaultDate;\n }\n if (e !== undefined && e.type !== \"blur\") {\n timeWrapper(e);\n }\n var prevValue = self._input.value;\n setHoursFromInputs();\n updateValue();\n if (self._input.value !== prevValue) {\n self._debouncedChange();\n }\n }\n function ampm2military(hour, amPM) {\n return (hour % 12) + 12 * int(amPM === self.l10n.amPM[1]);\n }\n function military2ampm(hour) {\n switch (hour % 24) {\n case 0:\n case 12:\n return 12;\n default:\n return hour % 12;\n }\n }\n function setHoursFromInputs() {\n if (self.hourElement === undefined || self.minuteElement === undefined)\n return;\n var hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined\n ? (parseInt(self.secondElement.value, 10) || 0) % 60\n : 0;\n if (self.amPM !== undefined) {\n hours = ampm2military(hours, self.amPM.textContent);\n }\n var limitMinHours = self.config.minTime !== undefined ||\n (self.config.minDate &&\n self.minDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===\n 0);\n var limitMaxHours = self.config.maxTime !== undefined ||\n (self.config.maxDate &&\n self.maxDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===\n 0);\n if (self.config.maxTime !== undefined &&\n self.config.minTime !== undefined &&\n self.config.minTime > self.config.maxTime) {\n var minBound = calculateSecondsSinceMidnight(self.config.minTime.getHours(), self.config.minTime.getMinutes(), self.config.minTime.getSeconds());\n var maxBound = calculateSecondsSinceMidnight(self.config.maxTime.getHours(), self.config.maxTime.getMinutes(), self.config.maxTime.getSeconds());\n var currentTime = calculateSecondsSinceMidnight(hours, minutes, seconds);\n if (currentTime > maxBound && currentTime < minBound) {\n var result = parseSeconds(minBound);\n hours = result[0];\n minutes = result[1];\n seconds = result[2];\n }\n }\n else {\n if (limitMaxHours) {\n var maxTime = self.config.maxTime !== undefined\n ? self.config.maxTime\n : self.config.maxDate;\n hours = Math.min(hours, maxTime.getHours());\n if (hours === maxTime.getHours())\n minutes = Math.min(minutes, maxTime.getMinutes());\n if (minutes === maxTime.getMinutes())\n seconds = Math.min(seconds, maxTime.getSeconds());\n }\n if (limitMinHours) {\n var minTime = self.config.minTime !== undefined\n ? self.config.minTime\n : self.config.minDate;\n hours = Math.max(hours, minTime.getHours());\n if (hours === minTime.getHours() && minutes < minTime.getMinutes())\n minutes = minTime.getMinutes();\n if (minutes === minTime.getMinutes())\n seconds = Math.max(seconds, minTime.getSeconds());\n }\n }\n setHours(hours, minutes, seconds);\n }\n function setHoursFromDate(dateObj) {\n var date = dateObj || self.latestSelectedDateObj;\n if (date && date instanceof Date) {\n setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n }\n function setHours(hours, minutes, seconds) {\n if (self.latestSelectedDateObj !== undefined) {\n self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n }\n if (!self.hourElement || !self.minuteElement || self.isMobile)\n return;\n self.hourElement.value = pad(!self.config.time_24hr\n ? ((12 + hours) % 12) + 12 * int(hours % 12 === 0)\n : hours);\n self.minuteElement.value = pad(minutes);\n if (self.amPM !== undefined)\n self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n if (self.secondElement !== undefined)\n self.secondElement.value = pad(seconds);\n }\n function onYearInput(event) {\n var eventTarget = getEventTarget(event);\n var year = parseInt(eventTarget.value) + (event.delta || 0);\n if (year / 1000 > 1 ||\n (event.key === \"Enter\" && !/[^\\d]/.test(year.toString()))) {\n changeYear(year);\n }\n }\n function bind(element, event, handler, options) {\n if (event instanceof Array)\n return event.forEach(function (ev) { return bind(element, ev, handler, options); });\n if (element instanceof Array)\n return element.forEach(function (el) { return bind(el, event, handler, options); });\n element.addEventListener(event, handler, options);\n self._handlers.push({\n remove: function () { return element.removeEventListener(event, handler, options); },\n });\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach(function (evt) {\n Array.prototype.forEach.call(self.element.querySelectorAll(\"[data-\" + evt + \"]\"), function (el) {\n return bind(el, \"click\", self[evt]);\n });\n });\n }\n if (self.isMobile) {\n setupMobile();\n return;\n }\n var debouncedResize = debounce(onResize, 50);\n self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))\n bind(self.daysContainer, \"mouseover\", function (e) {\n if (self.config.mode === \"range\")\n onMouseOver(getEventTarget(e));\n });\n bind(self._input, \"keydown\", onKeyDown);\n if (self.calendarContainer !== undefined) {\n bind(self.calendarContainer, \"keydown\", onKeyDown);\n }\n if (!self.config.inline && !self.config.static)\n bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined)\n bind(window.document, \"touchstart\", documentClick);\n else\n bind(window.document, \"mousedown\", documentClick);\n bind(window.document, \"focus\", documentClick, { capture: true });\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"click\", onMonthNavClick);\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"click\", selectDate);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined) {\n var selText = function (e) {\n return getEventTarget(e).select();\n };\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, { capture: true });\n bind(self.timeContainer, \"click\", timeIncrement);\n bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n if (self.secondElement !== undefined)\n bind(self.secondElement, \"focus\", function () { return self.secondElement && self.secondElement.select(); });\n if (self.amPM !== undefined) {\n bind(self.amPM, \"click\", function (e) {\n updateTime(e);\n });\n }\n }\n if (self.config.allowInput) {\n bind(self._input, \"blur\", onBlur);\n }\n }\n function jumpToDate(jumpDate, triggerChange) {\n var jumpTo = jumpDate !== undefined\n ? self.parseDate(jumpDate)\n : self.latestSelectedDateObj ||\n (self.config.minDate && self.config.minDate > self.now\n ? self.config.minDate\n : self.config.maxDate && self.config.maxDate < self.now\n ? self.config.maxDate\n : self.now);\n var oldYear = self.currentYear;\n var oldMonth = self.currentMonth;\n try {\n if (jumpTo !== undefined) {\n self.currentYear = jumpTo.getFullYear();\n self.currentMonth = jumpTo.getMonth();\n }\n }\n catch (e) {\n e.message = \"Invalid date supplied: \" + jumpTo;\n self.config.errorHandler(e);\n }\n if (triggerChange && self.currentYear !== oldYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n if (triggerChange &&\n (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n triggerEvent(\"onMonthChange\");\n }\n self.redraw();\n }\n function timeIncrement(e) {\n var eventTarget = getEventTarget(e);\n if (~eventTarget.className.indexOf(\"arrow\"))\n incrementNumInput(e, eventTarget.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n function incrementNumInput(e, delta, inputElem) {\n var target = e && getEventTarget(e);\n var input = inputElem ||\n (target && target.parentNode && target.parentNode.firstChild);\n var event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n function build() {\n var fragment = window.document.createDocumentFragment();\n self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n self.calendarContainer.tabIndex = -1;\n if (!self.config.noCalendar) {\n fragment.appendChild(buildMonthNav());\n self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n if (self.config.weekNumbers) {\n var _a = buildWeeks(), weekWrapper = _a.weekWrapper, weekNumbers = _a.weekNumbers;\n self.innerContainer.appendChild(weekWrapper);\n self.weekNumbers = weekNumbers;\n self.weekWrapper = weekWrapper;\n }\n self.rContainer = createElement(\"div\", \"flatpickr-rContainer\");\n self.rContainer.appendChild(buildWeekdays());\n if (!self.daysContainer) {\n self.daysContainer = createElement(\"div\", \"flatpickr-days\");\n self.daysContainer.tabIndex = -1;\n }\n buildDays();\n self.rContainer.appendChild(self.daysContainer);\n self.innerContainer.appendChild(self.rContainer);\n fragment.appendChild(self.innerContainer);\n }\n if (self.config.enableTime) {\n fragment.appendChild(buildTime());\n }\n toggleClass(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n toggleClass(self.calendarContainer, \"animate\", self.config.animate === true);\n toggleClass(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n self.calendarContainer.appendChild(fragment);\n var customAppend = self.config.appendTo !== undefined &&\n self.config.appendTo.nodeType !== undefined;\n if (self.config.inline || self.config.static) {\n self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n if (self.config.inline) {\n if (!customAppend && self.element.parentNode)\n self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);\n else if (self.config.appendTo !== undefined)\n self.config.appendTo.appendChild(self.calendarContainer);\n }\n if (self.config.static) {\n var wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n if (self.element.parentNode)\n self.element.parentNode.insertBefore(wrapper, self.element);\n wrapper.appendChild(self.element);\n if (self.altInput)\n wrapper.appendChild(self.altInput);\n wrapper.appendChild(self.calendarContainer);\n }\n }\n if (!self.config.static && !self.config.inline)\n (self.config.appendTo !== undefined\n ? self.config.appendTo\n : window.document.body).appendChild(self.calendarContainer);\n }\n function createDay(className, date, _dayNumber, i) {\n var dateIsEnabled = isEnabled(date, true), dayElement = createElement(\"span\", className, date.getDate().toString());\n dayElement.dateObj = date;\n dayElement.$i = i;\n dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n if (className.indexOf(\"hidden\") === -1 &&\n compareDates(date, self.now) === 0) {\n self.todayDateElem = dayElement;\n dayElement.classList.add(\"today\");\n dayElement.setAttribute(\"aria-current\", \"date\");\n }\n if (dateIsEnabled) {\n dayElement.tabIndex = -1;\n if (isDateSelected(date)) {\n dayElement.classList.add(\"selected\");\n self.selectedDateElem = dayElement;\n if (self.config.mode === \"range\") {\n toggleClass(dayElement, \"startRange\", self.selectedDates[0] &&\n compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] &&\n compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\")\n dayElement.classList.add(\"inRange\");\n }\n }\n }\n else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date))\n dayElement.classList.add(\"inRange\");\n }\n if (self.weekNumbers &&\n self.config.showMonths === 1 &&\n className !== \"prevMonthDay\" &&\n i % 7 === 6) {\n self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"<span class='flatpickr-day'>\" + self.config.getWeek(date) + \"</span>\");\n }\n triggerEvent(\"onDayCreate\", dayElement);\n return dayElement;\n }\n function focusOnDayElem(targetNode) {\n targetNode.focus();\n if (self.config.mode === \"range\")\n onMouseOver(targetNode);\n }\n function getFirstAvailableDay(delta) {\n var startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n for (var m = startMonth; m != endMonth; m += delta) {\n var month = self.daysContainer.children[m];\n var startIndex = delta > 0 ? 0 : month.children.length - 1;\n var endIndex = delta > 0 ? month.children.length : -1;\n for (var i = startIndex; i != endIndex; i += delta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj))\n return c;\n }\n }\n return undefined;\n }\n function getNextAvailableDay(current, delta) {\n var givenMonth = current.className.indexOf(\"Month\") === -1\n ? current.dateObj.getMonth()\n : self.currentMonth;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n var loopDelta = delta > 0 ? 1 : -1;\n for (var m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n var month = self.daysContainer.children[m];\n var startIndex = givenMonth - self.currentMonth === m\n ? current.$i + delta\n : delta < 0\n ? month.children.length - 1\n : 0;\n var numMonthDays = month.children.length;\n for (var i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 &&\n isEnabled(c.dateObj) &&\n Math.abs(current.$i - i) >= Math.abs(delta))\n return focusOnDayElem(c);\n }\n }\n self.changeMonth(loopDelta);\n focusOnDay(getFirstAvailableDay(loopDelta), 0);\n return undefined;\n }\n function focusOnDay(current, offset) {\n var activeElement = getClosestActiveElement();\n var dayFocused = isInView(activeElement || document.body);\n var startElem = current !== undefined\n ? current\n : dayFocused\n ? activeElement\n : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)\n ? self.selectedDateElem\n : self.todayDateElem !== undefined && isInView(self.todayDateElem)\n ? self.todayDateElem\n : getFirstAvailableDay(offset > 0 ? 1 : -1);\n if (startElem === undefined) {\n self._input.focus();\n }\n else if (!dayFocused) {\n focusOnDayElem(startElem);\n }\n else {\n getNextAvailableDay(startElem, offset);\n }\n }\n function buildMonthDays(year, month) {\n var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n var daysInMonth = self.utils.getDaysInMonth(month, year), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\", nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n var dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n var dayContainer = createElement(\"div\", \"dayContainer\");\n dayContainer.appendChild(days);\n return dayContainer;\n }\n function buildDays() {\n if (self.daysContainer === undefined) {\n return;\n }\n clearNode(self.daysContainer);\n if (self.weekNumbers)\n clearNode(self.weekNumbers);\n var frag = document.createDocumentFragment();\n for (var i = 0; i < self.config.showMonths; i++) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n }\n self.daysContainer.appendChild(frag);\n self.days = self.daysContainer.firstChild;\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n onMouseOver();\n }\n }\n function buildMonthSwitch() {\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType !== \"dropdown\")\n return;\n var shouldBuildMonth = function (month) {\n if (self.config.minDate !== undefined &&\n self.currentYear === self.config.minDate.getFullYear() &&\n month < self.config.minDate.getMonth()) {\n return false;\n }\n return !(self.config.maxDate !== undefined &&\n self.currentYear === self.config.maxDate.getFullYear() &&\n month > self.config.maxDate.getMonth());\n };\n self.monthsDropdownContainer.tabIndex = -1;\n self.monthsDropdownContainer.innerHTML = \"\";\n for (var i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i))\n continue;\n var month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n month.value = new Date(self.currentYear, i).getMonth().toString();\n month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n month.tabIndex = -1;\n if (self.currentMonth === i) {\n month.selected = true;\n }\n self.monthsDropdownContainer.appendChild(month);\n }\n }\n function buildMonth() {\n var container = createElement(\"div\", \"flatpickr-month\");\n var monthNavFragment = window.document.createDocumentFragment();\n var monthElement;\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n monthElement = createElement(\"span\", \"cur-month\");\n }\n else {\n self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n self.monthsDropdownContainer.setAttribute(\"aria-label\", self.l10n.monthAriaLabel);\n bind(self.monthsDropdownContainer, \"change\", function (e) {\n var target = getEventTarget(e);\n var selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n var yearInput = createNumberInput(\"cur-year\", { tabindex: \"-1\" });\n var yearElement = yearInput.getElementsByTagName(\"input\")[0];\n yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n if (self.config.minDate) {\n yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n }\n if (self.config.maxDate) {\n yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n yearElement.disabled =\n !!self.config.minDate &&\n self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n }\n var currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n currentMonth.appendChild(monthElement);\n currentMonth.appendChild(yearInput);\n monthNavFragment.appendChild(currentMonth);\n container.appendChild(monthNavFragment);\n return {\n container: container,\n yearElement: yearElement,\n monthElement: monthElement,\n };\n }\n function buildMonths() {\n clearNode(self.monthNav);\n self.monthNav.appendChild(self.prevMonthNav);\n if (self.config.showMonths) {\n self.yearElements = [];\n self.monthElements = [];\n }\n for (var m = self.config.showMonths; m--;) {\n var month = buildMonth();\n self.yearElements.push(month.yearElement);\n self.monthElements.push(month.monthElement);\n self.monthNav.appendChild(month.container);\n }\n self.monthNav.appendChild(self.nextMonthNav);\n }\n function buildMonthNav() {\n self.monthNav = createElement(\"div\", \"flatpickr-months\");\n self.yearElements = [];\n self.monthElements = [];\n self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n self.prevMonthNav.innerHTML = self.config.prevArrow;\n self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n self.nextMonthNav.innerHTML = self.config.nextArrow;\n buildMonths();\n Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n get: function () { return self.__hidePrevMonthArrow; },\n set: function (bool) {\n if (self.__hidePrevMonthArrow !== bool) {\n toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n self.__hidePrevMonthArrow = bool;\n }\n },\n });\n Object.defineProperty(self, \"_hideNextMonthArrow\", {\n get: function () { return self.__hideNextMonthArrow; },\n set: function (bool) {\n if (self.__hideNextMonthArrow !== bool) {\n toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n self.__hideNextMonthArrow = bool;\n }\n },\n });\n self.currentYearElement = self.yearElements[0];\n updateNavigationCurrentMonth();\n return self.monthNav;\n }\n function buildTime() {\n self.calendarContainer.classList.add(\"hasTime\");\n if (self.config.noCalendar)\n self.calendarContainer.classList.add(\"noCalendar\");\n var defaults = getDefaultHours(self.config);\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n var separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n var hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel,\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n var minuteInput = createNumberInput(\"flatpickr-minute\", {\n \"aria-label\": self.l10n.minuteAriaLabel,\n });\n self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n self.hourElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getHours()\n : self.config.time_24hr\n ? defaults.hours\n : military2ampm(defaults.hours));\n self.minuteElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getMinutes()\n : defaults.minutes);\n self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n self.hourElement.setAttribute(\"maxlength\", \"2\");\n self.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\n self.minuteElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(hourInput);\n self.timeContainer.appendChild(separator);\n self.timeContainer.appendChild(minuteInput);\n if (self.config.time_24hr)\n self.timeContainer.classList.add(\"time24hr\");\n if (self.config.enableSeconds) {\n self.timeContainer.classList.add(\"hasSeconds\");\n var secondInput = createNumberInput(\"flatpickr-second\");\n self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n self.secondElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getSeconds()\n : defaults.seconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.secondElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n if (!self.config.time_24hr) {\n self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj\n ? self.hourElement.value\n : self.config.defaultHour) > 11)]);\n self.amPM.title = self.l10n.toggleTitle;\n self.amPM.tabIndex = -1;\n self.timeContainer.appendChild(self.amPM);\n }\n return self.timeContainer;\n }\n function buildWeekdays() {\n if (!self.weekdayContainer)\n self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");\n else\n clearNode(self.weekdayContainer);\n for (var i = self.config.showMonths; i--;) {\n var container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n self.weekdayContainer.appendChild(container);\n }\n updateWeekdays();\n return self.weekdayContainer;\n }\n function updateWeekdays() {\n if (!self.weekdayContainer) {\n return;\n }\n var firstDayOfWeek = self.l10n.firstDayOfWeek;\n var weekdays = __spreadArrays(self.l10n.weekdays.shorthand);\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = __spreadArrays(weekdays.splice(firstDayOfWeek, weekdays.length), weekdays.splice(0, firstDayOfWeek));\n }\n for (var i = self.config.showMonths; i--;) {\n self.weekdayContainer.children[i].innerHTML = \"\\n <span class='flatpickr-weekday'>\\n \" + weekdays.join(\"</span><span class='flatpickr-weekday'>\") + \"\\n </span>\\n \";\n }\n }\n function buildWeeks() {\n self.calendarContainer.classList.add(\"hasWeeks\");\n var weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n var weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper: weekWrapper,\n weekNumbers: weekNumbers,\n };\n }\n function changeMonth(value, isOffset) {\n if (isOffset === void 0) { isOffset = true; }\n var delta = isOffset ? value : value - self.currentMonth;\n if ((delta < 0 && self._hidePrevMonthArrow === true) ||\n (delta > 0 && self._hideNextMonthArrow === true))\n return;\n self.currentMonth += delta;\n if (self.currentMonth < 0 || self.currentMonth > 11) {\n self.currentYear += self.currentMonth > 11 ? 1 : -1;\n self.currentMonth = (self.currentMonth + 12) % 12;\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n buildDays();\n triggerEvent(\"onMonthChange\");\n updateNavigationCurrentMonth();\n }\n function clear(triggerChangeEvent, toInitial) {\n if (triggerChangeEvent === void 0) { triggerChangeEvent = true; }\n if (toInitial === void 0) { toInitial = true; }\n self.input.value = \"\";\n if (self.altInput !== undefined)\n self.altInput.value = \"\";\n if (self.mobileInput !== undefined)\n self.mobileInput.value = \"\";\n self.selectedDates = [];\n self.latestSelectedDateObj = undefined;\n if (toInitial === true) {\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n }\n if (self.config.enableTime === true) {\n var _a = getDefaultHours(self.config), hours = _a.hours, minutes = _a.minutes, seconds = _a.seconds;\n setHours(hours, minutes, seconds);\n }\n self.redraw();\n if (triggerChangeEvent)\n triggerEvent(\"onChange\");\n }\n function close() {\n self.isOpen = false;\n if (!self.isMobile) {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.classList.remove(\"open\");\n }\n if (self._input !== undefined) {\n self._input.classList.remove(\"active\");\n }\n }\n triggerEvent(\"onClose\");\n }\n function destroy() {\n if (self.config !== undefined)\n triggerEvent(\"onDestroy\");\n for (var i = self._handlers.length; i--;) {\n self._handlers[i].remove();\n }\n self._handlers = [];\n if (self.mobileInput) {\n if (self.mobileInput.parentNode)\n self.mobileInput.parentNode.removeChild(self.mobileInput);\n self.mobileInput = undefined;\n }\n else if (self.calendarContainer && self.calendarContainer.parentNode) {\n if (self.config.static && self.calendarContainer.parentNode) {\n var wrapper = self.calendarContainer.parentNode;\n wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n if (wrapper.parentNode) {\n while (wrapper.firstChild)\n wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n wrapper.parentNode.removeChild(wrapper);\n }\n }\n else\n self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n }\n if (self.altInput) {\n self.input.type = \"text\";\n if (self.altInput.parentNode)\n self.altInput.parentNode.removeChild(self.altInput);\n delete self.altInput;\n }\n if (self.input) {\n self.input.type = self.input._type;\n self.input.classList.remove(\"flatpickr-input\");\n self.input.removeAttribute(\"readonly\");\n }\n [\n \"_showTimeInput\",\n \"latestSelectedDateObj\",\n \"_hideNextMonthArrow\",\n \"_hidePrevMonthArrow\",\n \"__hideNextMonthArrow\",\n \"__hidePrevMonthArrow\",\n \"isMobile\",\n \"isOpen\",\n \"selectedDateElem\",\n \"minDateHasTime\",\n \"maxDateHasTime\",\n \"days\",\n \"daysContainer\",\n \"_input\",\n \"_positionElement\",\n \"innerContainer\",\n \"rContainer\",\n \"monthNav\",\n \"todayDateElem\",\n \"calendarContainer\",\n \"weekdayContainer\",\n \"prevMonthNav\",\n \"nextMonthNav\",\n \"monthsDropdownContainer\",\n \"currentMonthElement\",\n \"currentYearElement\",\n \"navigationCurrentMonth\",\n \"selectedDateElem\",\n \"config\",\n ].forEach(function (k) {\n try {\n delete self[k];\n }\n catch (_) { }\n });\n }\n function isCalendarElem(elem) {\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n var eventTarget_1 = getEventTarget(e);\n var isCalendarElement = isCalendarElem(eventTarget_1);\n var isInput = eventTarget_1 === self.input ||\n eventTarget_1 === self.altInput ||\n self.element.contains(eventTarget_1) ||\n (e.path &&\n e.path.indexOf &&\n (~e.path.indexOf(self.input) ||\n ~e.path.indexOf(self.altInput)));\n var lostFocus = !isInput &&\n !isCalendarElement &&\n !isCalendarElem(e.relatedTarget);\n var isIgnored = !self.config.ignoredFocusElements.some(function (elem) {\n return elem.contains(eventTarget_1);\n });\n if (lostFocus && isIgnored) {\n if (self.config.allowInput) {\n self.setDate(self._input.value, false, self.config.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined &&\n self.input.value !== \"\" &&\n self.input.value !== undefined) {\n updateTime();\n }\n self.close();\n if (self.config &&\n self.config.mode === \"range\" &&\n self.selectedDates.length === 1)\n self.clear(false);\n }\n }\n }\n function changeYear(newYear) {\n if (!newYear ||\n (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||\n (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))\n return;\n var newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;\n self.currentYear = newYearNum || self.currentYear;\n if (self.config.maxDate &&\n self.currentYear === self.config.maxDate.getFullYear()) {\n self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n }\n else if (self.config.minDate &&\n self.currentYear === self.config.minDate.getFullYear()) {\n self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n }\n if (isNewYear) {\n self.redraw();\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n }\n function isEnabled(date, timeless) {\n var _a;\n if (timeless === void 0) { timeless = true; }\n var dateToCheck = self.parseDate(date, undefined, timeless);\n if ((self.config.minDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||\n (self.config.maxDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0))\n return false;\n if (!self.config.enable && self.config.disable.length === 0)\n return true;\n if (dateToCheck === undefined)\n return false;\n var bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n for (var i = 0, d = void 0; i < array.length; i++) {\n d = array[i];\n if (typeof d === \"function\" &&\n d(dateToCheck))\n return bool;\n else if (d instanceof Date &&\n dateToCheck !== undefined &&\n d.getTime() === dateToCheck.getTime())\n return bool;\n else if (typeof d === \"string\") {\n var parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime()\n ? bool\n : !bool;\n }\n else if (typeof d === \"object\" &&\n dateToCheck !== undefined &&\n d.from &&\n d.to &&\n dateToCheck.getTime() >= d.from.getTime() &&\n dateToCheck.getTime() <= d.to.getTime())\n return bool;\n }\n return !bool;\n }\n function isInView(elem) {\n if (self.daysContainer !== undefined)\n return (elem.className.indexOf(\"hidden\") === -1 &&\n elem.className.indexOf(\"flatpickr-disabled\") === -1 &&\n self.daysContainer.contains(elem));\n return false;\n }\n function onBlur(e) {\n var isInput = e.target === self._input;\n var valueChanged = self._input.value.trimEnd() !== getDateStr();\n if (isInput &&\n valueChanged &&\n !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {\n self.setDate(self._input.value, true, e.target === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n }\n function onKeyDown(e) {\n var eventTarget = getEventTarget(e);\n var isInput = self.config.wrap\n ? element.contains(eventTarget)\n : eventTarget === self._input;\n var allowInput = self.config.allowInput;\n var allowKeydown = self.isOpen && (!allowInput || !isInput);\n var allowInlineKeydown = self.config.inline && isInput && !allowInput;\n if (e.keyCode === 13 && isInput) {\n if (allowInput) {\n self.setDate(self._input.value, true, eventTarget === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n self.close();\n return eventTarget.blur();\n }\n else {\n self.open();\n }\n }\n else if (isCalendarElem(eventTarget) ||\n allowKeydown ||\n allowInlineKeydown) {\n var isTimeObj = !!self.timeContainer &&\n self.timeContainer.contains(eventTarget);\n switch (e.keyCode) {\n case 13:\n if (isTimeObj) {\n e.preventDefault();\n updateTime();\n focusAndClose();\n }\n else\n selectDate(e);\n break;\n case 27:\n e.preventDefault();\n focusAndClose();\n break;\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n break;\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n var activeElement = getClosestActiveElement();\n if (self.daysContainer !== undefined &&\n (allowInput === false ||\n (activeElement && isInView(activeElement)))) {\n var delta_1 = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey)\n focusOnDay(undefined, delta_1);\n else {\n e.stopPropagation();\n changeMonth(delta_1);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n }\n }\n else if (self.hourElement)\n self.hourElement.focus();\n break;\n case 38:\n case 40:\n e.preventDefault();\n var delta = e.keyCode === 40 ? 1 : -1;\n if ((self.daysContainer &&\n eventTarget.$i !== undefined) ||\n eventTarget === self.input ||\n eventTarget === self.altInput) {\n if (e.ctrlKey) {\n e.stopPropagation();\n changeYear(self.currentYear - delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n else if (!isTimeObj)\n focusOnDay(undefined, delta * 7);\n }\n else if (eventTarget === self.currentYearElement) {\n changeYear(self.currentYear - delta);\n }\n else if (self.config.enableTime) {\n if (!isTimeObj && self.hourElement)\n self.hourElement.focus();\n updateTime(e);\n self._debouncedChange();\n }\n break;\n case 9:\n if (isTimeObj) {\n var elems = [\n self.hourElement,\n self.minuteElement,\n self.secondElement,\n self.amPM,\n ]\n .concat(self.pluginElements)\n .filter(function (x) { return x; });\n var i = elems.indexOf(eventTarget);\n if (i !== -1) {\n var target = elems[i + (e.shiftKey ? -1 : 1)];\n e.preventDefault();\n (target || self._input).focus();\n }\n }\n else if (!self.config.noCalendar &&\n self.daysContainer &&\n self.daysContainer.contains(eventTarget) &&\n e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n break;\n default:\n break;\n }\n }\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n switch (e.key) {\n case self.l10n.amPM[0].charAt(0):\n case self.l10n.amPM[0].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[0];\n setHoursFromInputs();\n updateValue();\n break;\n case self.l10n.amPM[1].charAt(0):\n case self.l10n.amPM[1].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[1];\n setHoursFromInputs();\n updateValue();\n break;\n }\n }\n if (isInput || isCalendarElem(eventTarget)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n function onMouseOver(elem, cellClass) {\n if (cellClass === void 0) { cellClass = \"flatpickr-day\"; }\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(cellClass) ||\n elem.classList.contains(\"flatpickr-disabled\"))))\n return;\n var hoverDate = elem\n ? elem.dateObj.getTime()\n : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n var containsDisabled = false;\n var minRange = 0, maxRange = 0;\n for (var t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n if (!isEnabled(new Date(t), true)) {\n containsDisabled =\n containsDisabled || (t > rangeStartDate && t < rangeEndDate);\n if (t < initialDate && (!minRange || t > minRange))\n minRange = t;\n else if (t > initialDate && (!maxRange || t < maxRange))\n maxRange = t;\n }\n }\n var hoverableCells = Array.from(self.rContainer.querySelectorAll(\"*:nth-child(-n+\" + self.config.showMonths + \") > .\" + cellClass));\n hoverableCells.forEach(function (dayElem) {\n var date = dayElem.dateObj;\n var timestamp = date.getTime();\n var outOfRange = (minRange > 0 && timestamp < minRange) ||\n (maxRange > 0 && timestamp > maxRange);\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n return;\n }\n else if (containsDisabled && !outOfRange)\n return;\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n if (elem !== undefined) {\n elem.classList.add(hoverDate <= self.selectedDates[0].getTime()\n ? \"startRange\"\n : \"endRange\");\n if (initialDate < hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"startRange\");\n else if (initialDate > hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange &&\n (maxRange === 0 || timestamp <= maxRange) &&\n isBetween(timestamp, initialDate, hoverDate))\n dayElem.classList.add(\"inRange\");\n }\n });\n }\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline)\n positionCalendar();\n }\n function open(e, positionElement) {\n if (positionElement === void 0) { positionElement = self._positionElement; }\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n var eventTarget = getEventTarget(e);\n if (eventTarget) {\n eventTarget.blur();\n }\n }\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n triggerEvent(\"onOpen\");\n return;\n }\n else if (self._input.disabled || self.config.inline) {\n return;\n }\n var wasOpen = self.isOpen;\n self.isOpen = true;\n if (!wasOpen) {\n self.calendarContainer.classList.add(\"open\");\n self._input.classList.add(\"active\");\n triggerEvent(\"onOpen\");\n positionCalendar(positionElement);\n }\n if (self.config.enableTime === true && self.config.noCalendar === true) {\n if (self.config.allowInput === false &&\n (e === undefined ||\n !self.timeContainer.contains(e.relatedTarget))) {\n setTimeout(function () { return self.hourElement.select(); }, 50);\n }\n }\n }\n function minMaxDateSetter(type) {\n return function (date) {\n var dateObj = (self.config[\"_\" + type + \"Date\"] = self.parseDate(date, self.config.dateFormat));\n var inverseDateObj = self.config[\"_\" + (type === \"min\" ? \"max\" : \"min\") + \"Date\"];\n if (dateObj !== undefined) {\n self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] =\n dateObj.getHours() > 0 ||\n dateObj.getMinutes() > 0 ||\n dateObj.getSeconds() > 0;\n }\n if (self.selectedDates) {\n self.selectedDates = self.selectedDates.filter(function (d) { return isEnabled(d); });\n if (!self.selectedDates.length && type === \"min\")\n setHoursFromDate(dateObj);\n updateValue();\n }\n if (self.daysContainer) {\n redraw();\n if (dateObj !== undefined)\n self.currentYearElement[type] = dateObj.getFullYear().toString();\n else\n self.currentYearElement.removeAttribute(type);\n self.currentYearElement.disabled =\n !!inverseDateObj &&\n dateObj !== undefined &&\n inverseDateObj.getFullYear() === dateObj.getFullYear();\n }\n };\n }\n function parseConfig() {\n var boolOpts = [\n \"wrap\",\n \"weekNumbers\",\n \"allowInput\",\n \"allowInvalidPreload\",\n \"clickOpens\",\n \"time_24hr\",\n \"enableTime\",\n \"noCalendar\",\n \"altInput\",\n \"shorthandCurrentMonth\",\n \"inline\",\n \"static\",\n \"enableSeconds\",\n \"disableMobile\",\n ];\n var userConfig = __assign(__assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n var formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: function () { return self.config._enable; },\n set: function (dates) {\n self.config._enable = parseDateRules(dates);\n },\n });\n Object.defineProperty(self.config, \"disable\", {\n get: function () { return self.config._disable; },\n set: function (dates) {\n self.config._disable = parseDateRules(dates);\n },\n });\n var timeMode = userConfig.mode === \"time\";\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n var defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaultOptions.dateFormat;\n formats.dateFormat =\n userConfig.noCalendar || timeMode\n ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\")\n : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n }\n if (userConfig.altInput &&\n (userConfig.enableTime || timeMode) &&\n !userConfig.altFormat) {\n var defaultAltFormat = flatpickr.defaultConfig.altFormat || defaultOptions.altFormat;\n formats.altFormat =\n userConfig.noCalendar || timeMode\n ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\")\n : defaultAltFormat + (\" h:i\" + (userConfig.enableSeconds ? \":S\" : \"\") + \" K\");\n }\n Object.defineProperty(self.config, \"minDate\", {\n get: function () { return self.config._minDate; },\n set: minMaxDateSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: function () { return self.config._maxDate; },\n set: minMaxDateSetter(\"max\"),\n });\n var minMaxTimeSetter = function (type) { return function (val) {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n }; };\n Object.defineProperty(self.config, \"minTime\", {\n get: function () { return self.config._minTime; },\n set: minMaxTimeSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: function () { return self.config._maxTime; },\n set: minMaxTimeSetter(\"max\"),\n });\n if (userConfig.mode === \"time\") {\n self.config.noCalendar = true;\n self.config.enableTime = true;\n }\n Object.assign(self.config, formats, userConfig);\n for (var i = 0; i < boolOpts.length; i++)\n self.config[boolOpts[i]] =\n self.config[boolOpts[i]] === true ||\n self.config[boolOpts[i]] === \"true\";\n HOOKS.filter(function (hook) { return self.config[hook] !== undefined; }).forEach(function (hook) {\n self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n });\n self.isMobile =\n !self.config.disableMobile &&\n !self.config.inline &&\n self.config.mode === \"single\" &&\n !self.config.disable.length &&\n !self.config.enable &&\n !self.config.weekNumbers &&\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n for (var i = 0; i < self.config.plugins.length; i++) {\n var pluginConf = self.config.plugins[i](self) || {};\n for (var key in pluginConf) {\n if (HOOKS.indexOf(key) > -1) {\n self.config[key] = arrayify(pluginConf[key])\n .map(bindToInstance)\n .concat(self.config[key]);\n }\n else if (typeof userConfig[key] === \"undefined\")\n self.config[key] = pluginConf[key];\n }\n }\n if (!userConfig.altInputClass) {\n self.config.altInputClass =\n getInputElem().className + \" \" + self.config.altInputClass;\n }\n triggerEvent(\"onParseConfig\");\n }\n function getInputElem() {\n return self.config.wrap\n ? element.querySelector(\"[data-input]\")\n : element;\n }\n function setupLocale() {\n if (typeof self.config.locale !== \"object\" &&\n typeof flatpickr.l10ns[self.config.locale] === \"undefined\")\n self.config.errorHandler(new Error(\"flatpickr: invalid locale \" + self.config.locale));\n self.l10n = __assign(__assign({}, flatpickr.l10ns.default), (typeof self.config.locale === \"object\"\n ? self.config.locale\n : self.config.locale !== \"default\"\n ? flatpickr.l10ns[self.config.locale]\n : undefined));\n tokenRegex.D = \"(\" + self.l10n.weekdays.shorthand.join(\"|\") + \")\";\n tokenRegex.l = \"(\" + self.l10n.weekdays.longhand.join(\"|\") + \")\";\n tokenRegex.M = \"(\" + self.l10n.months.shorthand.join(\"|\") + \")\";\n tokenRegex.F = \"(\" + self.l10n.months.longhand.join(\"|\") + \")\";\n tokenRegex.K = \"(\" + self.l10n.amPM[0] + \"|\" + self.l10n.amPM[1] + \"|\" + self.l10n.amPM[0].toLowerCase() + \"|\" + self.l10n.amPM[1].toLowerCase() + \")\";\n var userConfig = __assign(__assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));\n if (userConfig.time_24hr === undefined &&\n flatpickr.defaultConfig.time_24hr === undefined) {\n self.config.time_24hr = self.l10n.time_24hr;\n }\n self.formatDate = createDateFormatter(self);\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n }\n function positionCalendar(customPositionElement) {\n if (typeof self.config.position === \"function\") {\n return void self.config.position(self, customPositionElement);\n }\n if (self.calendarContainer === undefined)\n return;\n triggerEvent(\"onPreCalendarPosition\");\n var positionElement = customPositionElement || self._positionElement;\n var calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, (function (acc, child) { return acc + child.offsetHeight; }), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(\" \"), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === \"above\" ||\n (configPosVertical !== \"below\" &&\n distanceFromBottom < calendarHeight &&\n inputBounds.top > calendarHeight);\n var top = window.pageYOffset +\n inputBounds.top +\n (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n if (self.config.inline)\n return;\n var left = window.pageXOffset + inputBounds.left;\n var isCenter = false;\n var isRight = false;\n if (configPosHorizontal === \"center\") {\n left -= (calendarWidth - inputBounds.width) / 2;\n isCenter = true;\n }\n else if (configPosHorizontal === \"right\") {\n left -= calendarWidth - inputBounds.width;\n isRight = true;\n }\n toggleClass(self.calendarContainer, \"arrowLeft\", !isCenter && !isRight);\n toggleClass(self.calendarContainer, \"arrowCenter\", isCenter);\n toggleClass(self.calendarContainer, \"arrowRight\", isRight);\n var right = window.document.body.offsetWidth -\n (window.pageXOffset + inputBounds.right);\n var rightMost = left + calendarWidth > window.document.body.offsetWidth;\n var centerMost = right + calendarWidth > window.document.body.offsetWidth;\n toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n if (self.config.static)\n return;\n self.calendarContainer.style.top = top + \"px\";\n if (!rightMost) {\n self.calendarContainer.style.left = left + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n else if (!centerMost) {\n self.calendarContainer.style.left = \"auto\";\n self.calendarContainer.style.right = right + \"px\";\n }\n else {\n var doc = getDocumentStyleSheet();\n if (doc === undefined)\n return;\n var bodyWidth = window.document.body.offsetWidth;\n var centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n var centerBefore = \".flatpickr-calendar.centerMost:before\";\n var centerAfter = \".flatpickr-calendar.centerMost:after\";\n var centerIndex = doc.cssRules.length;\n var centerStyle = \"{left:\" + inputBounds.left + \"px;right:auto;}\";\n toggleClass(self.calendarContainer, \"rightMost\", false);\n toggleClass(self.calendarContainer, \"centerMost\", true);\n doc.insertRule(centerBefore + \",\" + centerAfter + centerStyle, centerIndex);\n self.calendarContainer.style.left = centerLeft + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n }\n function getDocumentStyleSheet() {\n var editableSheet = null;\n for (var i = 0; i < document.styleSheets.length; i++) {\n var sheet = document.styleSheets[i];\n if (!sheet.cssRules)\n continue;\n try {\n sheet.cssRules;\n }\n catch (err) {\n continue;\n }\n editableSheet = sheet;\n break;\n }\n return editableSheet != null ? editableSheet : createStyleSheet();\n }\n function createStyleSheet() {\n var style = document.createElement(\"style\");\n document.head.appendChild(style);\n return style.sheet;\n }\n function redraw() {\n if (self.config.noCalendar || self.isMobile)\n return;\n buildMonthSwitch();\n updateNavigationCurrentMonth();\n buildDays();\n }\n function focusAndClose() {\n self._input.focus();\n if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 ||\n navigator.msMaxTouchPoints !== undefined) {\n setTimeout(self.close, 0);\n }\n else {\n self.close();\n }\n }\n function selectDate(e) {\n e.preventDefault();\n e.stopPropagation();\n var isSelectable = function (day) {\n return day.classList &&\n day.classList.contains(\"flatpickr-day\") &&\n !day.classList.contains(\"flatpickr-disabled\") &&\n !day.classList.contains(\"notAllowed\");\n };\n var t = findParent(getEventTarget(e), isSelectable);\n if (t === undefined)\n return;\n var target = t;\n var selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));\n var shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||\n selectedDate.getMonth() >\n self.currentMonth + self.config.showMonths - 1) &&\n self.config.mode !== \"range\";\n self.selectedDateElem = target;\n if (self.config.mode === \"single\")\n self.selectedDates = [selectedDate];\n else if (self.config.mode === \"multiple\") {\n var selectedIndex = isDateSelected(selectedDate);\n if (selectedIndex)\n self.selectedDates.splice(parseInt(selectedIndex), 1);\n else\n self.selectedDates.push(selectedDate);\n }\n else if (self.config.mode === \"range\") {\n if (self.selectedDates.length === 2) {\n self.clear(false, false);\n }\n self.latestSelectedDateObj = selectedDate;\n self.selectedDates.push(selectedDate);\n if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n setHoursFromInputs();\n if (shouldChangeMonth) {\n var isNewYear = self.currentYear !== selectedDate.getFullYear();\n self.currentYear = selectedDate.getFullYear();\n self.currentMonth = selectedDate.getMonth();\n if (isNewYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n triggerEvent(\"onMonthChange\");\n }\n updateNavigationCurrentMonth();\n buildDays();\n updateValue();\n if (!shouldChangeMonth &&\n self.config.mode !== \"range\" &&\n self.config.showMonths === 1)\n focusOnDayElem(target);\n else if (self.selectedDateElem !== undefined &&\n self.hourElement === undefined) {\n self.selectedDateElem && self.selectedDateElem.focus();\n }\n if (self.hourElement !== undefined)\n self.hourElement !== undefined && self.hourElement.focus();\n if (self.config.closeOnSelect) {\n var single = self.config.mode === \"single\" && !self.config.enableTime;\n var range = self.config.mode === \"range\" &&\n self.selectedDates.length === 2 &&\n !self.config.enableTime;\n if (single || range) {\n focusAndClose();\n }\n }\n triggerChange();\n }\n var CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate],\n positionElement: [updatePositionElement],\n clickOpens: [\n function () {\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n else {\n self._input.removeEventListener(\"focus\", self.open);\n self._input.removeEventListener(\"click\", self.open);\n }\n },\n ],\n };\n function set(option, value) {\n if (option !== null && typeof option === \"object\") {\n Object.assign(self.config, option);\n for (var key in option) {\n if (CALLBACKS[key] !== undefined)\n CALLBACKS[key].forEach(function (x) { return x(); });\n }\n }\n else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined)\n CALLBACKS[option].forEach(function (x) { return x(); });\n else if (HOOKS.indexOf(option) > -1)\n self.config[option] = arrayify(value);\n }\n self.redraw();\n updateValue(true);\n }\n function setSelectedDate(inputDate, format) {\n var dates = [];\n if (inputDate instanceof Array)\n dates = inputDate.map(function (d) { return self.parseDate(d, format); });\n else if (inputDate instanceof Date || typeof inputDate === \"number\")\n dates = [self.parseDate(inputDate, format)];\n else if (typeof inputDate === \"string\") {\n switch (self.config.mode) {\n case \"single\":\n case \"time\":\n dates = [self.parseDate(inputDate, format)];\n break;\n case \"multiple\":\n dates = inputDate\n .split(self.config.conjunction)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n case \"range\":\n dates = inputDate\n .split(self.l10n.rangeSeparator)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n default:\n break;\n }\n }\n else\n self.config.errorHandler(new Error(\"Invalid date supplied: \" + JSON.stringify(inputDate)));\n self.selectedDates = (self.config.allowInvalidPreload\n ? dates\n : dates.filter(function (d) { return d instanceof Date && isEnabled(d, false); }));\n if (self.config.mode === \"range\")\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n function setDate(date, triggerChange, format) {\n if (triggerChange === void 0) { triggerChange = false; }\n if (format === void 0) { format = self.config.dateFormat; }\n if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))\n return self.clear(triggerChange);\n setSelectedDate(date, format);\n self.latestSelectedDateObj =\n self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate(undefined, triggerChange);\n setHoursFromDate();\n if (self.selectedDates.length === 0) {\n self.clear(false);\n }\n updateValue(triggerChange);\n if (triggerChange)\n triggerEvent(\"onChange\");\n }\n function parseDateRules(arr) {\n return arr\n .slice()\n .map(function (rule) {\n if (typeof rule === \"string\" ||\n typeof rule === \"number\" ||\n rule instanceof Date) {\n return self.parseDate(rule, undefined, true);\n }\n else if (rule &&\n typeof rule === \"object\" &&\n rule.from &&\n rule.to)\n return {\n from: self.parseDate(rule.from, undefined),\n to: self.parseDate(rule.to, undefined),\n };\n return rule;\n })\n .filter(function (x) { return x; });\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n var preloadedDate = self.config.defaultDate ||\n ((self.input.nodeName === \"INPUT\" ||\n self.input.nodeName === \"TEXTAREA\") &&\n self.input.placeholder &&\n self.input.value === self.input.placeholder\n ? null\n : self.input.value);\n if (preloadedDate)\n setSelectedDate(preloadedDate, self.config.dateFormat);\n self._initialDate =\n self.selectedDates.length > 0\n ? self.selectedDates[0]\n : self.config.minDate &&\n self.config.minDate.getTime() > self.now.getTime()\n ? self.config.minDate\n : self.config.maxDate &&\n self.config.maxDate.getTime() < self.now.getTime()\n ? self.config.maxDate\n : self.now;\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n if (self.selectedDates.length > 0)\n self.latestSelectedDateObj = self.selectedDates[0];\n if (self.config.minTime !== undefined)\n self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n if (self.config.maxTime !== undefined)\n self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n self.minDateHasTime =\n !!self.config.minDate &&\n (self.config.minDate.getHours() > 0 ||\n self.config.minDate.getMinutes() > 0 ||\n self.config.minDate.getSeconds() > 0);\n self.maxDateHasTime =\n !!self.config.maxDate &&\n (self.config.maxDate.getHours() > 0 ||\n self.config.maxDate.getMinutes() > 0 ||\n self.config.maxDate.getSeconds() > 0);\n }\n function setupInputs() {\n self.input = getInputElem();\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n }\n self.input._type = self.input.type;\n self.input.type = \"text\";\n self.input.classList.add(\"flatpickr-input\");\n self._input = self.input;\n if (self.config.altInput) {\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode)\n self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n if (!self.config.allowInput)\n self._input.setAttribute(\"readonly\", \"readonly\");\n updatePositionElement();\n }\n function updatePositionElement() {\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n var inputType = self.config.enableTime\n ? self.config.noCalendar\n ? \"time\"\n : \"datetime-local\"\n : \"date\";\n self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n self.mobileInput.tabIndex = 1;\n self.mobileInput.type = inputType;\n self.mobileInput.disabled = self.input.disabled;\n self.mobileInput.required = self.input.required;\n self.mobileInput.placeholder = self.input.placeholder;\n self.mobileFormatStr =\n inputType === \"datetime-local\"\n ? \"Y-m-d\\\\TH:i:S\"\n : inputType === \"date\"\n ? \"Y-m-d\"\n : \"H:i:S\";\n if (self.selectedDates.length > 0) {\n self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n }\n if (self.config.minDate)\n self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n if (self.config.maxDate)\n self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n if (self.input.getAttribute(\"step\"))\n self.mobileInput.step = String(self.input.getAttribute(\"step\"));\n self.input.type = \"hidden\";\n if (self.altInput !== undefined)\n self.altInput.type = \"hidden\";\n try {\n if (self.input.parentNode)\n self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n }\n catch (_a) { }\n bind(self.mobileInput, \"change\", function (e) {\n self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);\n triggerEvent(\"onChange\");\n triggerEvent(\"onClose\");\n });\n }\n function toggle(e) {\n if (self.isOpen === true)\n return self.close();\n self.open(e);\n }\n function triggerEvent(event, data) {\n if (self.config === undefined)\n return;\n var hooks = self.config[event];\n if (hooks !== undefined && hooks.length > 0) {\n for (var i = 0; hooks[i] && i < hooks.length; i++)\n hooks[i](self.selectedDates, self.input.value, self, data);\n }\n if (event === \"onChange\") {\n self.input.dispatchEvent(createEvent(\"change\"));\n self.input.dispatchEvent(createEvent(\"input\"));\n }\n }\n function createEvent(name) {\n var e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n function isDateSelected(date) {\n for (var i = 0; i < self.selectedDates.length; i++) {\n var selectedDate = self.selectedDates[i];\n if (selectedDate instanceof Date &&\n compareDates(selectedDate, date) === 0)\n return \"\" + i;\n }\n return false;\n }\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2)\n return false;\n return (compareDates(date, self.selectedDates[0]) >= 0 &&\n compareDates(date, self.selectedDates[1]) <= 0);\n }\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav)\n return;\n self.yearElements.forEach(function (yearElement, i) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n self.monthElements[i].textContent =\n monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n }\n else {\n self.monthsDropdownContainer.value = d.getMonth().toString();\n }\n yearElement.value = d.getFullYear().toString();\n });\n self._hidePrevMonthArrow =\n self.config.minDate !== undefined &&\n (self.currentYear === self.config.minDate.getFullYear()\n ? self.currentMonth <= self.config.minDate.getMonth()\n : self.currentYear < self.config.minDate.getFullYear());\n self._hideNextMonthArrow =\n self.config.maxDate !== undefined &&\n (self.currentYear === self.config.maxDate.getFullYear()\n ? self.currentMonth + 1 > self.config.maxDate.getMonth()\n : self.currentYear > self.config.maxDate.getFullYear());\n }\n function getDateStr(specificFormat) {\n var format = specificFormat ||\n (self.config.altInput ? self.config.altFormat : self.config.dateFormat);\n return self.selectedDates\n .map(function (dObj) { return self.formatDate(dObj, format); })\n .filter(function (d, i, arr) {\n return self.config.mode !== \"range\" ||\n self.config.enableTime ||\n arr.indexOf(d) === i;\n })\n .join(self.config.mode !== \"range\"\n ? self.config.conjunction\n : self.l10n.rangeSeparator);\n }\n function updateValue(triggerChange) {\n if (triggerChange === void 0) { triggerChange = true; }\n if (self.mobileInput !== undefined && self.mobileFormatStr) {\n self.mobileInput.value =\n self.latestSelectedDateObj !== undefined\n ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr)\n : \"\";\n }\n self.input.value = getDateStr(self.config.dateFormat);\n if (self.altInput !== undefined) {\n self.altInput.value = getDateStr(self.config.altFormat);\n }\n if (triggerChange !== false)\n triggerEvent(\"onValueUpdate\");\n }\n function onMonthNavClick(e) {\n var eventTarget = getEventTarget(e);\n var isPrevMonth = self.prevMonthNav.contains(eventTarget);\n var isNextMonth = self.nextMonthNav.contains(eventTarget);\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n }\n else if (self.yearElements.indexOf(eventTarget) >= 0) {\n eventTarget.select();\n }\n else if (eventTarget.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n }\n else if (eventTarget.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n function timeWrapper(e) {\n e.preventDefault();\n var isKeyDown = e.type === \"keydown\", eventTarget = getEventTarget(e), input = eventTarget;\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n var min = parseFloat(input.getAttribute(\"min\")), max = parseFloat(input.getAttribute(\"max\")), step = parseFloat(input.getAttribute(\"step\")), curValue = parseInt(input.value, 10), delta = e.delta ||\n (isKeyDown ? (e.which === 38 ? 1 : -1) : 0);\n var newValue = curValue + step * delta;\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n var isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;\n if (newValue < min) {\n newValue =\n max +\n newValue +\n int(!isHourElem) +\n (int(isHourElem) && int(!self.amPM));\n if (isMinuteElem)\n incrementNumInput(undefined, -1, self.hourElement);\n }\n else if (newValue > max) {\n newValue =\n input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n if (isMinuteElem)\n incrementNumInput(undefined, 1, self.hourElement);\n }\n if (self.amPM &&\n isHourElem &&\n (step === 1\n ? newValue + curValue === 23\n : Math.abs(newValue - curValue) > step)) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n input.value = pad(newValue);\n }\n }\n init();\n return self;\n}\nfunction _flatpickr(nodeList, config) {\n var nodes = Array.prototype.slice\n .call(nodeList)\n .filter(function (x) { return x instanceof HTMLElement; });\n var instances = [];\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n try {\n if (node.getAttribute(\"data-fp-omit\") !== null)\n continue;\n if (node._flatpickr !== undefined) {\n node._flatpickr.destroy();\n node._flatpickr = undefined;\n }\n node._flatpickr = FlatpickrInstance(node, config || {});\n instances.push(node._flatpickr);\n }\n catch (e) {\n console.error(e);\n }\n }\n return instances.length === 1 ? instances[0] : instances;\n}\nif (typeof HTMLElement !== \"undefined\" &&\n typeof HTMLCollection !== \"undefined\" &&\n typeof NodeList !== \"undefined\") {\n HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n HTMLElement.prototype.flatpickr = function (config) {\n return _flatpickr([this], config);\n };\n}\nvar flatpickr = function (selector, config) {\n if (typeof selector === \"string\") {\n return _flatpickr(window.document.querySelectorAll(selector), config);\n }\n else if (selector instanceof Node) {\n return _flatpickr([selector], config);\n }\n else {\n return _flatpickr(selector, config);\n }\n};\nflatpickr.defaultConfig = {};\nflatpickr.l10ns = {\n en: __assign({}, English),\n default: __assign({}, English),\n};\nflatpickr.localize = function (l10n) {\n flatpickr.l10ns.default = __assign(__assign({}, flatpickr.l10ns.default), l10n);\n};\nflatpickr.setDefaults = function (config) {\n flatpickr.defaultConfig = __assign(__assign({}, flatpickr.defaultConfig), config);\n};\nflatpickr.parseDate = createDateParser({});\nflatpickr.formatDate = createDateFormatter({});\nflatpickr.compareDates = compareDates;\nif (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n}\nDate.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n};\nif (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n}\nexport default flatpickr;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _flatpickr = _interopRequireDefault(require(\"flatpickr\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar hooks = ['onChange', 'onOpen', 'onClose', 'onMonthChange', 'onYearChange', 'onReady', 'onValueUpdate', 'onDayCreate'];\n\nvar hookPropType = _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].func, _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].func)]);\n\nvar callbacks = ['onCreate', 'onDestroy'];\nvar callbackPropTypes = _propTypes[\"default\"].func;\n\nvar DateTimePicker = /*#__PURE__*/function (_Component) {\n _inherits(DateTimePicker, _Component);\n\n var _super = _createSuper(DateTimePicker);\n\n function DateTimePicker() {\n var _this;\n\n _classCallCheck(this, DateTimePicker);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"createFlatpickrInstance\", function () {\n var options = _objectSpread({\n onClose: function onClose() {\n _this.node.blur && _this.node.blur();\n }\n }, _this.props.options); // Add prop hooks to options\n\n\n options = mergeHooks(options, _this.props);\n _this.flatpickr = (0, _flatpickr[\"default\"])(_this.node, options);\n\n if (_this.props.hasOwnProperty('value')) {\n _this.flatpickr.setDate(_this.props.value, false);\n }\n\n var onCreate = _this.props.onCreate;\n if (onCreate) onCreate(_this.flatpickr);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"destroyFlatpickrInstance\", function () {\n var onDestroy = _this.props.onDestroy;\n if (onDestroy) onDestroy(_this.flatpickr);\n\n _this.flatpickr.destroy();\n\n _this.flatpickr = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleNodeChange\", function (node) {\n _this.node = node;\n\n if (_this.flatpickr) {\n _this.destroyFlatpickrInstance();\n\n _this.createFlatpickrInstance();\n }\n });\n\n return _this;\n }\n\n _createClass(DateTimePicker, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var options = this.props.options;\n var prevOptions = prevProps.options;\n options = mergeHooks(options, this.props); // Add prev ones too so we can compare against them later\n\n prevOptions = mergeHooks(prevOptions, prevProps);\n var optionsKeys = Object.getOwnPropertyNames(options);\n\n for (var index = optionsKeys.length - 1; index >= 0; index--) {\n var key = optionsKeys[index];\n var value = options[key];\n\n if (value !== prevOptions[key]) {\n // Hook handlers must be set as an array\n if (hooks.indexOf(key) !== -1 && !Array.isArray(value)) {\n value = [value];\n }\n\n this.flatpickr.set(key, value);\n }\n }\n\n if (this.props.hasOwnProperty('value') && !(this.props.value && Array.isArray(this.props.value) && prevProps.value && Array.isArray(prevProps.value) && this.props.value.every(function (v, i) {\n prevProps[i] === v;\n })) && this.props.value !== prevProps.value) {\n this.flatpickr.setDate(this.props.value, false);\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.createFlatpickrInstance();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.destroyFlatpickrInstance();\n }\n }, {\n key: \"render\",\n value: function render() {\n // eslint-disable-next-line no-unused-vars\n var _this$props = this.props,\n options = _this$props.options,\n defaultValue = _this$props.defaultValue,\n value = _this$props.value,\n children = _this$props.children,\n render = _this$props.render,\n props = _objectWithoutProperties(_this$props, [\"options\", \"defaultValue\", \"value\", \"children\", \"render\"]); // Don't pass hooks and callbacks to dom node\n\n\n hooks.forEach(function (hook) {\n delete props[hook];\n });\n callbacks.forEach(function (callback) {\n delete props[callback];\n });\n if (render) return render(_objectSpread(_objectSpread({}, props), {}, {\n defaultValue: defaultValue,\n value: value\n }), this.handleNodeChange);\n return options.wrap ? /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({}, props, {\n ref: this.handleNodeChange\n }), children) : /*#__PURE__*/_react[\"default\"].createElement(\"input\", _extends({}, props, {\n defaultValue: defaultValue,\n ref: this.handleNodeChange\n }));\n }\n }]);\n\n return DateTimePicker;\n}(_react.Component);\n\n_defineProperty(DateTimePicker, \"propTypes\", {\n defaultValue: _propTypes[\"default\"].string,\n options: _propTypes[\"default\"].object,\n onChange: hookPropType,\n onOpen: hookPropType,\n onClose: hookPropType,\n onMonthChange: hookPropType,\n onYearChange: hookPropType,\n onReady: hookPropType,\n onValueUpdate: hookPropType,\n onDayCreate: hookPropType,\n onCreate: callbackPropTypes,\n onDestroy: callbackPropTypes,\n value: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].array, _propTypes[\"default\"].object, _propTypes[\"default\"].number]),\n children: _propTypes[\"default\"].node,\n className: _propTypes[\"default\"].string,\n render: _propTypes[\"default\"].func\n});\n\n_defineProperty(DateTimePicker, \"defaultProps\", {\n options: {}\n});\n\nfunction mergeHooks(inputOptions, props) {\n var options = _objectSpread({}, inputOptions);\n\n hooks.forEach(function (hook) {\n if (props.hasOwnProperty(hook)) {\n var _options$hook;\n\n if (options[hook] && !Array.isArray(options[hook])) {\n options[hook] = [options[hook]];\n } else if (!options[hook]) {\n options[hook] = [];\n }\n\n var propHook = Array.isArray(props[hook]) ? props[hook] : [props[hook]];\n\n (_options$hook = options[hook]).push.apply(_options$hook, _toConsumableArray(propHook));\n }\n });\n return options;\n}\n\nvar _default = DateTimePicker;\nexports[\"default\"] = _default;","// utils.ts\n\n/**\n * Creates a dropdown element with a specific className.\n * @param className - The class to add to the dropdown element.\n * @returns The created dropdown element.\n */\nexport const createDropdownElement = (className: string): HTMLDivElement => {\n const dropdown = document.createElement(\"div\");\n dropdown.classList.add(className);\n dropdown.style.display = \"none\"; // Initially hidden\n return dropdown;\n};\n\n/**\n * Filters the dropdown options based on the query string.\n * @param dropdown - The dropdown element to populate.\n * @param query - The query string to filter options by.\n * @param options - Array of string options to display in the dropdown.\n */\nexport const filterDropdownOptions = (\n dropdown: HTMLDivElement,\n query: string,\n options: string[],\n handleTimeOptionClick: (option: string) => void,\n closeDropdown?: () => void\n): void => {\n dropdown.innerHTML = \"\"; // Clear previous options\n\n const filteredOptions = options.filter((option) =>\n option.toLowerCase().includes(query.toLowerCase())\n );\n\n // Populate dropdown with matching options\n if (filteredOptions.length > 0) {\n filteredOptions.forEach((option) => {\n const optionElement = document.createElement(\"span\");\n optionElement.classList.add(\"dropdown-option\");\n optionElement.textContent = option;\n optionElement.addEventListener('click', () => { handleTimeOptionClick(option) })\n dropdown.appendChild(optionElement);\n });\n toggleDropdownVisibility(dropdown, true); // Show the dropdown\n } else {\n if (closeDropdown) {\n closeDropdown();\n }\n toggleDropdownVisibility(dropdown, false); // Hide the dropdown if no match\n }\n};\n\n/**\n * Positions the dropdown relative to the input field.\n * @param dropdown - The dropdown element to position.\n * @param inputElement - The input element to base the dropdown positioning on.\n * @param wrapperElement - The wrapper element to base the dropdown positioning on. This will take precedence over the input element.\n * @param dropdownPosition - The position of the dropdown. 'fixed' or 'absolute'.\n */\nexport const positionDropdownRelativeToInput = (\n dropdown: HTMLDivElement,\n inputElement: HTMLInputElement,\n wrapperElement?: HTMLElement,\n dropdownPosition: 'fixed' | 'absolute' = 'absolute'\n): void => {\n dropdown.style.position = dropdownPosition;\n dropdown.style.left = '0';\n dropdown.style.width = '100%';\n dropdown.style.zIndex = '100';\n\n // Calculate available space below and above\n const wrapperRect = wrapperElement?.getBoundingClientRect() || inputElement.getBoundingClientRect();\n const dropdownHeight = dropdown.offsetHeight;\n const windowHeight = window.innerHeight;\n const spaceBelow = windowHeight - wrapperRect.bottom;\n const spaceAbove = wrapperRect.top;\n\n // Position above if not enough space below and more space above\n if (spaceBelow < dropdownHeight && spaceAbove > dropdownHeight) {\n dropdown.style.bottom = '110%';\n dropdown.style.top = 'auto';\n } else {\n dropdown.style.top = '110%';\n dropdown.style.bottom = 'auto';\n }\n};\n\n/**\n * Formats a Date object into a time string (HH:MM AM/PM).\n * @param date - The Date object to format.\n * @returns The formatted time string (e.g., \"12:00 PM\").\n */\nexport const formatTime = (date: Date): string =>\n date.toLocaleTimeString(\"en-US\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n hour12: true,\n });\n\n/**\n * Toggles the visibility of a dropdown element.\n * @param dropdown - The dropdown element to show or hide.\n * @param isVisible - A boolean indicating whether the dropdown should be visible.\n */\nexport const toggleDropdownVisibility = (\n dropdown: HTMLDivElement,\n isVisible: boolean\n): void => {\n dropdown.style.display = isVisible ? \"flex\" : \"none\";\n};\n\n// Generates the time options based on minute step\nexport const generateTimeOptions = (minuteStep: number): string[] => {\n const times: string[] = [];\n for (let hour = 0; hour < 24; hour++) {\n for (let minute = 0; minute < 60; minute += minuteStep) {\n const date = new Date();\n date.setHours(hour, minute, 0, 0);\n const formattedTime = formatTime(date);\n times.push(formattedTime);\n }\n }\n return times;\n};\n\n/**\n * Parses a time input string and returns a formatted time string.\n * Handles various input formats and edge cases including AM/PM specifications.\n * Hours greater than 24 are handled by taking remainder of 24.\n * \n * @param input - The time input string to parse (can be numeric, time string, or include AM/PM)\n * @returns A formatted time string in \"HH:MM AM/PM\" format\n * \n * @example\n * parseTimeInput(\"1\") => \"1:00 AM\"\n * parseTimeInput(\"abc\") => \"12:00 AM\"\n * parseTimeInput(\"3456\") => \"12:00 AM\"\n * parseTimeInput(\"1:30\") => \"1:30 AM\"\n * parseTimeInput(\"1:30 PM\") => \"1:30 PM\"\n * parseTimeInput(\"13:45\") => \"1:45 PM\"\n */\nexport const parseTimeInput = (input: string): string => {\n // Clean and standardize the input\n const cleanInput = input.trim().toUpperCase();\n if (!cleanInput) return \"12:00 AM\"; // Default to \"12:00 AM\" if input is empty\n\n // Check if the input specifies AM or PM\n const hasAMPM = /\\s*(AM|PM)$/i.test(cleanInput);\n let specifiedPeriod = hasAMPM ? cleanInput.slice(-2) : ''; // Extract AM/PM if present\n const timeString = hasAMPM ? cleanInput.slice(0, -2).trim() : cleanInput; // Remove AM/PM for parsing\n\n // Helper function to format time\n const parseTime = (hours: number, minutes: number): string => {\n // Validate hours and minutes\n if (isNaN(hours) || isNaN(minutes) || hours >= 24 || minutes >= 60) {\n return \"12:00 AM\"; // Return default if invalid\n }\n // Determine AM/PM if not specified\n if (!specifiedPeriod) {\n specifiedPeriod = hours >= 12 ? 'PM' : 'AM';\n }\n // Convert 24-hour format to 12-hour format\n hours = hours % 12 || 12;\n const minuteString = minutes.toString().padStart(2, '0'); // Pad minutes to ensure 2 digits\n return `${hours}:${minuteString} ${specifiedPeriod}`;\n };\n\n // Handle time strings with colon (e.g., \"1:30\")\n if (timeString.includes(':')) {\n const [hoursStr, minutesStr] = timeString.split(':');\n return parseTime(parseInt(hoursStr), parseInt(minutesStr));\n }\n\n // Handle numeric inputs (e.g., \"130\" for \"1:30\")\n const numericInput = timeString.replace(/[^0-9]/g, '');\n if (!numericInput) return \"12:00 AM\"; // Default if no numeric input\n\n // Handle inputs with 3 or more digits (e.g., \"1345\" for \"13:45\")\n if (numericInput.length >= 3) {\n const paddedInput = numericInput.padStart(4, '0'); // Pad to ensure at least 4 digits\n const hours = parseInt(paddedInput.substring(0, 2));\n const minutes = parseInt(paddedInput.substring(2, 4));\n return parseTime(hours, minutes);\n }\n\n // Handle inputs with 1 or 2 digits (e.g., \"1\" for \"1:00\")\n const hours = parseInt(numericInput.substring(0, 2));\n return parseTime(hours, 0);\n};","import React from 'react';\nimport { Plugin } from \"flatpickr/dist/types/options\";\nimport { createRoot } from \"react-dom/client\";\nimport { Icon } from '../../../../atoms';\nimport { CustomTimePickerConfig } from '../DatePickerBase.types';\nimport {\n createDropdownElement,\n filterDropdownOptions,\n generateTimeOptions,\n parseTimeInput,\n positionDropdownRelativeToInput,\n toggleDropdownVisibility\n} from \"./utils\";\n\nconst timeDropdownPlugin = (config: CustomTimePickerConfig): Plugin => {\n const { minuteStep = 30 } = config;\n\n return (flatpickrInstance) => {\n const flatpickrConfig = flatpickrInstance.config;\n let dropdownElement: HTMLDivElement;\n let timeInputField: HTMLInputElement | undefined;\n let wrapperElement: HTMLDivElement;\n let preventClose = false;\n\n const createDropdown = () => {\n dropdownElement = createDropdownElement(\"time-dropdown\");\n dropdownElement.style.position = \"absolute\";\n dropdownElement.style.display = \"none\";\n };\n\n const positionDropdown = () => {\n if (timeInputField && dropdownElement && wrapperElement) {\n positionDropdownRelativeToInput(dropdownElement, timeInputField, wrapperElement, 'fixed');\n }\n };\n\n const closeDropdown = () => {\n flatpickrInstance.calendarContainer.style.display = \"none\";\n toggleDropdownVisibility(dropdownElement!, false);\n };\n\n const handleTimeOptionClick = (time: string) => {\n if (timeInputField) {\n timeInputField.value = time;\n }\n\n const selectedDate = flatpickrInstance.selectedDates[0] || new Date();\n const [hour, minute] = time.split(\":\");\n const isPM = time.includes(\"PM\");\n const adjustedHour = isPM ? (parseInt(hour, 10) % 12) + 12 : parseInt(hour, 10) % 12;\n\n selectedDate.setHours(adjustedHour, parseInt(minute, 10));\n flatpickrInstance.setDate(selectedDate, false);\n timeInputField?.focus();\n closeDropdown();\n };\n\n const handleInputBlur = () => {\n // don't close dropdown if user clicked on the dropdown and didn't select an option\n if (preventClose) {\n preventClose = false;\n return;\n }\n\n // if time input field has a value, set the date\n if (timeInputField && timeInputField.value) {\n const selectedDate = flatpickrInstance.selectedDates[0] || new Date();\n const datePart = flatpickrInstance.formatDate(selectedDate, \"m/d/Y\");\n // parse time input to HH:MM AM/PM format\n const parsedTime = parseTimeInput(timeInputField.value);\n\n if (!parsedTime) {\n closeDropdown();\n return;\n }\n\n // format date and time to HH:MM AM/PM format\n const fullDateTimeString = `${datePart} ${parsedTime}`;\n\n if (fullDateTimeString) {\n try {\n const parsedDate = new Date(fullDateTimeString);\n // set flatpickr config\n flatpickrInstance.config = flatpickrConfig;\n flatpickrInstance.setDate(parsedDate, true);\n // fill input field with formatted time\n timeInputField.value = parsedDate.toLocaleTimeString(undefined, {\n hour: \"numeric\",\n minute: \"numeric\",\n hour12: true\n }).toUpperCase();\n } catch (error) {\n console.error('Error setting date:', error);\n }\n }\n }\n\n closeDropdown();\n };\n\n const handleInputChange = (e: Event) => {\n const input = e.target as HTMLInputElement;\n const query = input.value.trim();\n // open dropdown\n toggleDropdownVisibility(dropdownElement!, true);\n // filter dropdown options\n filterDropdownOptions(dropdownElement!, query, generateTimeOptions(minuteStep), handleTimeOptionClick);\n // position dropdown\n positionDropdown();\n };\n\n const handleInputFocus = () => {\n // open dropdown\n flatpickrInstance.calendarContainer.style.display = \"flex\";\n toggleDropdownVisibility(dropdownElement!, true);\n // generate and filter dropdown options\n filterDropdownOptions(\n dropdownElement!,\n timeInputField?.value.trim() || \"\",\n generateTimeOptions(minuteStep),\n handleTimeOptionClick\n );\n // position dropdown\n positionDropdown();\n };\n\n const handleKeyDown = (e: KeyboardEvent) => {\n // Allow arrow keys, home, end, backspace, delete for cursor movement and editing\n const allowedKeys = ['ArrowLeft', 'ArrowRight', 'Home', 'End', 'Backspace', 'Delete'];\n if (allowedKeys.includes(e.key)) {\n e.stopPropagation(); // Prevent flatpickr from handling these keys\n return;\n }\n };\n\n return {\n onReady() {\n // Hide the original flatpickr input\n if (flatpickrInstance.altInput) {\n flatpickrInstance.altInput.style.display = 'none';\n }\n if (flatpickrInstance.input) {\n flatpickrInstance.input.style.display = 'none';\n }\n\n // custom time picker wrapper\n const wrapper = document.createElement(\"div\");\n wrapper.className = \"custom-time-wrapper\";\n // create dropdown\n createDropdown();\n\n // create custom time picker input wrapper\n const inputWrapper = document.createElement(\"div\");\n inputWrapper.className = \"custom-time-only-input-wrapper\";\n // append dropdown to custom time picker wrapper\n inputWrapper.appendChild(dropdownElement);\n wrapperElement = inputWrapper;\n\n // create custom time picker icon\n const iconContainer = document.createElement(\"div\");\n iconContainer.className = \"custom-time-icon\";\n const iconRoot = createRoot(iconContainer);\n iconRoot.render(<Icon icon=\"Schedule\" style=\"Outlined\" size=\"Small\" />);\n\n // create input field\n const inputField = document.createElement(\"input\");\n inputField.type = \"text\";\n inputField.className = \"custom-time-input\";\n // leave empty if no initial date\n const initialDate = flatpickrInstance.selectedDates[0];\n if (initialDate) {\n inputField.value = initialDate?.toLocaleTimeString(undefined, {\n hour: \"numeric\",\n minute: \"2-digit\",\n hour12: true\n }).toUpperCase() || '';\n }\n inputField.setAttribute(\"autocomplete\", \"off\");\n timeInputField = inputField;\n\n // append icon and input field to input wrapper\n inputWrapper.appendChild(iconContainer);\n inputWrapper.appendChild(inputField);\n // append input wrapper to custom time picker wrapper\n wrapper.appendChild(inputWrapper);\n // append custom time picker wrapper to flatpickr calendar container\n flatpickrInstance.calendarContainer.appendChild(wrapper);\n\n // Event listeners\n inputField.addEventListener(\"input\", handleInputChange);\n inputField.addEventListener(\"focus\", handleInputFocus);\n inputField.addEventListener(\"keydown\", handleKeyDown);\n dropdownElement?.addEventListener(\"mousedown\", () => (preventClose = true));\n inputField.addEventListener(\"blur\", handleInputBlur);\n\n // Window event listeners\n window.addEventListener(\"resize\", positionDropdown);\n window.addEventListener(\"scroll\", positionDropdown, true);\n\n setTimeout(() => {\n timeInputField?.focus();\n }, 200);\n },\n onDestroy() {\n // remove event listeners\n window.removeEventListener(\"resize\", positionDropdown);\n window.removeEventListener(\"scroll\", positionDropdown, true);\n if (timeInputField) {\n timeInputField.removeEventListener(\"input\", handleInputChange);\n timeInputField.removeEventListener(\"focus\", handleInputFocus);\n timeInputField.removeEventListener(\"keydown\", handleKeyDown);\n timeInputField.removeEventListener(\"blur\", handleInputBlur);\n }\n if (dropdownElement) {\n dropdownElement.remove();\n }\n }\n };\n };\n};\n\nexport default timeDropdownPlugin;","import React from 'react';\nimport { Icon } from \"../../../../atoms\";\nimport { Plugin } from \"flatpickr/dist/types/options\";\nimport { createRoot } from \"react-dom/client\";\nimport { CustomTimePickerConfig } from \"../DatePickerBase.types\";\nimport {\n createDropdownElement,\n filterDropdownOptions,\n generateTimeOptions,\n parseTimeInput,\n positionDropdownRelativeToInput,\n toggleDropdownVisibility\n} from \"./utils\";\n\nconst dateTimeDropdownPlugin = (config: CustomTimePickerConfig): Plugin => {\n const { minuteStep = 30 } = config;\n\n return (flatpickrInstance) => {\n let dropdownElement: HTMLDivElement;\n let timeInputField: HTMLInputElement | undefined;\n let wrapperElement: HTMLElement | undefined;\n let preventClose = false;\n\n const createDropdown = () => {\n dropdownElement = createDropdownElement(\"time-dropdown\");\n dropdownElement.style.position = \"absolute\";\n dropdownElement.style.display = \"none\";\n };\n\n const positionDropdown = () => {\n if (timeInputField && dropdownElement) {\n positionDropdownRelativeToInput(dropdownElement, timeInputField, wrapperElement);\n }\n };\n\n const closeDropdown = () => {\n toggleDropdownVisibility(dropdownElement!, false);\n };\n\n const handleTimeOptionClick = (time: string) => {\n // fill the input field with the selected time\n if (timeInputField) {\n timeInputField.value = time;\n }\n\n // set the date to the selected time\n const selectedDate = flatpickrInstance.selectedDates[0] || new Date();\n // split the time into hour and minute\n const [hour, minute] = time.split(\":\");\n // check if the time is in PM\n const isPM = time.includes(\"PM\");\n // adjust the hour to the correct format\n const adjustedHour = isPM ? (parseInt(hour, 10) % 12) + 12 : parseInt(hour, 10) % 12;\n\n // set the date to the selected time\n selectedDate.setHours(adjustedHour, parseInt(minute, 10));\n // set the flatpickr date to the selected time\n flatpickrInstance.setDate(selectedDate, false);\n\n // close the dropdown and focus the input field\n timeInputField?.focus();\n closeDropdown();\n };\n\n const handleInputBlur = () => {\n // don't close dropdown if user clicked on the dropdown and didn't select an option\n if (preventClose) {\n preventClose = false;\n return;\n }\n\n if (timeInputField) {\n const selectedDate = flatpickrInstance.selectedDates[0] || new Date();\n const datePart = flatpickrInstance.formatDate(selectedDate, \"m/d/Y\");\n // parse time input to HH:MM AM/PM format\n const parsedTime = parseTimeInput(timeInputField.value);\n\n // format date and time to HH:MM AM/PM format\n const fullDateTimeString = `${datePart} ${parsedTime}`;\n if (fullDateTimeString) {\n try {\n // parse the date and time to a date object\n const parsedDate = new Date(fullDateTimeString);\n flatpickrInstance.setDate(parsedDate, true);\n // fill input field with formatted time\n timeInputField.value = parsedDate.toLocaleTimeString(undefined, {\n hour: \"numeric\",\n minute: \"numeric\",\n hour12: true\n }).toUpperCase();\n } catch (err) {\n console.error('Error setting date:', err);\n }\n }\n }\n\n closeDropdown();\n };\n\n const handleKeyDown = (e: KeyboardEvent) => {\n // Allow arrow keys, home, end, backspace, delete for cursor movement and editing\n const allowedKeys = ['ArrowLeft', 'ArrowRight', 'Home', 'End', 'Backspace', 'Delete'];\n if (allowedKeys.includes(e.key)) {\n e.stopPropagation(); // Prevent flatpickr from handling these keys\n return;\n }\n };\n\n const handleInputChange = (e: Event) => {\n const input = e.target as HTMLInputElement;\n const query = input.value.trim();\n // open dropdown\n toggleDropdownVisibility(dropdownElement!, true);\n // filter dropdown options\n filterDropdownOptions(dropdownElement!, query, generateTimeOptions(minuteStep), handleTimeOptionClick);\n // position dropdown\n positionDropdown();\n };\n\n const handleInputFocus = () => {\n // open dropdown\n toggleDropdownVisibility(dropdownElement!, true);\n // generate and filter dropdown options\n filterDropdownOptions(\n dropdownElement!,\n timeInputField?.value.trim() || \"\",\n generateTimeOptions(minuteStep),\n handleTimeOptionClick\n );\n // position dropdown\n positionDropdown();\n };\n\n return {\n onReady() {\n // create dropdown and wrapper for the input field and dropdown\n const wrapper = document.createElement(\"div\");\n wrapper.className = \"custom-time-wrapper\";\n\n // create label for the input field\n const label = document.createElement(\"label\");\n label.className = \"custom-time-label\";\n label.innerText = \"Time\";\n\n // create wrapper for the input\n const inputWrapper = document.createElement(\"div\");\n inputWrapper.className = \"custom-time-input-wrapper\";\n wrapperElement = inputWrapper;\n\n // create icon container and render the icon\n const iconContainer = document.createElement(\"div\");\n iconContainer.className = \"custom-time-icon\";\n const iconRoot = createRoot(iconContainer);\n iconRoot.render(<Icon icon=\"Schedule\" style=\"Outlined\" size=\"Small\" />);\n\n // create input field \n const inputField = document.createElement(\"input\");\n inputField.type = \"text\";\n inputField.className = \"custom-time-input\";\n // set the initial value of the input field to the selected time\n const now = new Date();\n now.setHours(0, 0, 0, 0);\n const initialDate = flatpickrInstance.selectedDates[0] || now;\n inputField.value = initialDate.toLocaleTimeString(undefined, {\n hour: \"numeric\",\n minute: \"2-digit\",\n hour12: true\n }).toUpperCase();\n inputField.setAttribute(\"autocomplete\", \"off\");\n // set the time input field to the input field\n timeInputField = inputField;\n\n // append the icon container and input field to the input wrapper\n inputWrapper.appendChild(iconContainer);\n inputWrapper.appendChild(inputField);\n // append the label and input wrapper to the wrapper\n wrapper.appendChild(label);\n wrapper.appendChild(inputWrapper);\n\n // create and append dropdown after wrapper is created\n createDropdown();\n inputWrapper.appendChild(dropdownElement);\n\n // append the wrapper to the calendar container\n flatpickrInstance.calendarContainer.appendChild(wrapper);\n\n // add event listeners\n inputField.addEventListener(\"input\", handleInputChange);\n inputField.addEventListener(\"focus\", handleInputFocus);\n inputField.addEventListener(\"keydown\", handleKeyDown);\n dropdownElement?.addEventListener(\"mousedown\", () => (preventClose = true));\n inputField.addEventListener(\"blur\", handleInputBlur);\n\n // position dropdown on resize and scroll\n window.addEventListener(\"resize\", positionDropdown);\n window.addEventListener(\"scroll\", positionDropdown, true);\n },\n onDestroy() {\n // remove event listeners\n window.removeEventListener(\"resize\", positionDropdown);\n window.removeEventListener(\"scroll\", positionDropdown, true);\n\n if (timeInputField) {\n timeInputField.removeEventListener(\"keydown\", handleKeyDown);\n }\n\n if (dropdownElement) {\n dropdownElement.remove();\n }\n }\n };\n };\n};\n\nexport default dateTimeDropdownPlugin;\n","import { Plugin } from \"flatpickr/dist/types/options\";\nimport { CustomTimePickerConfig } from \"../DatePickerBase.types\";\nimport {\n createDropdownElement,\n filterDropdownOptions,\n generateTimeOptions,\n toggleDropdownVisibility\n} from \"./utils\";\n\nconst timeDropdownPlugin = (config: CustomTimePickerConfig): Plugin => {\n const { minuteStep = 30 } = config;\n\n return (flatpickrInstance) => {\n let dropdown: HTMLDivElement;\n let preventClose = false;\n\n // Create dropdown structure\n const createDropdown = () => {\n dropdown = createDropdownElement(\"time-dropdown\");\n dropdown.style.display = \"none\";\n document.body.appendChild(dropdown);\n populateDropdown('');\n };\n\n // Close dropdown when focus is lost\n const closeDropdown = () => {\n flatpickrInstance.calendarContainer.style.display = \"none\";\n toggleDropdownVisibility(dropdown, false);\n };\n\n const handleTimeOptionClick = (time: string) => {\n const selectedDate = flatpickrInstance.selectedDates.length > 0 ? flatpickrInstance.selectedDates[0] : new Date();\n const [hours, minutes] = time.split(\":\");\n const isPM = time.includes(\"PM\");\n const adjustedHours = isPM\n ? (parseInt(hours, 10) % 12) + 12\n : parseInt(hours, 10) % 12;\n\n selectedDate.setHours(adjustedHours, parseInt(minutes, 10));\n flatpickrInstance.setDate(selectedDate, false); // Update selected date\n closeDropdown();\n flatpickrInstance.close();\n }\n\n // Populate dropdown with time options based on the query\n const populateDropdown = (query: string) => {\n if (!dropdown) return;\n dropdown.innerHTML = \"\"; // Clear previous items\n flatpickrInstance.calendarContainer.style.display = \"flex\";\n // Filter the options based on the query using filterDropdownOptions\n filterDropdownOptions(dropdown, query, generateTimeOptions(minuteStep), handleTimeOptionClick, closeDropdown);\n };\n\n // Input change handler\n const onInputChange = (e: Event) => {\n e.preventDefault(); // Prevent default Flatpickr parsing\n const input = e.target as HTMLInputElement;\n const query = input.value.trim();\n\n // Don't let Flatpickr format the input value\n flatpickrInstance._input.value = query;\n if (flatpickrInstance.altInput) {\n flatpickrInstance.altInput.value = query;\n }\n\n // Populate dropdown based on the query\n populateDropdown(query);\n toggleDropdownVisibility(dropdown, true);\n };\n\n const handleInputBlur = () => {\n if (preventClose) {\n preventClose = false;\n return;\n }\n closeDropdown();\n flatpickrInstance.close();\n }\n\n return {\n onReady() {\n const wrapper = flatpickrInstance.calendarContainer;\n\n // Create dropdown and append it to the calendar container\n createDropdown();\n if (dropdown) {\n wrapper.appendChild(dropdown);\n }\n const inputElement = flatpickrInstance.altInput;\n if (inputElement) {\n inputElement.addEventListener(\"input\", onInputChange);\n inputElement.addEventListener(\"focus\", () => populateDropdown(''));\n // Close dropdown when input loses focus\n dropdown?.addEventListener(\"mousedown\", () => (preventClose = true));\n inputElement.addEventListener(\"blur\", handleInputBlur);\n\n // Prevent autocomplete in the input field\n inputElement.setAttribute(\"autocomplete\", \"off\");\n }\n },\n };\n };\n};\n\nexport default timeDropdownPlugin;\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.default = {}));\n}(this, (function (exports) { 'use strict';\n\n var english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n };\n\n exports.default = english;\n exports.english = english;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","import english from 'flatpickr/dist/l10n/default';\n\nexport const customLocale = {\n weekdays: {\n shorthand: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n longhand: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n },\n months: english.months\n};","import React from 'react';\nimport FlatPickr from 'flatpickr';\nimport 'flatpickr/dist/flatpickr.css';\nimport ReactFlatPickr from 'react-flatpickr';\n\nimport type { CustomLocale } from 'flatpickr/dist/types/locale';\n\nimport type { DatePickerBaseProps } from './DatePickerBase.types';\nimport './Flatpickr.custom.scss';\nimport usePresenter from './DatePickerBase.presenter';\nimport { customLocale } from './DatePickerBase.constants';\n\nFlatPickr.localize(customLocale as CustomLocale);\n\nconst DatePickerBase = (props: DatePickerBaseProps) => {\n const {\n datePickerRef,\n disabled,\n required,\n mode,\n enableTime,\n noCalendar,\n isTimePickerOnly,\n customPlugin,\n handleKeyDown,\n otherProps,\n onDateChange,\n onCloseDatePicker,\n onOpenDatePicker,\n dayVariantProps,\n calendarVariantProps,\n value,\n isInDialog,\n } = usePresenter(props);\n\n const { renderInput } = props;\n\n return (\n <ReactFlatPickr\n ref={datePickerRef}\n disabled={disabled}\n required={required}\n value={value}\n options={{\n mode,\n enableTime,\n noCalendar,\n inline: props.inline,\n allowInput: props.allowInput,\n altInput: isTimePickerOnly,\n altInputClass: 'custom-time-selector-input',\n plugins: customPlugin,\n onKeyDown: handleKeyDown,\n // When inside dialog, keep calendar DOM next to input and avoid absolute positioning\n static: !!isInDialog,\n ...otherProps\n }}\n {...(renderInput ? { render: renderInput } : {})}\n onChange={onDateChange}\n onClose={onCloseDatePicker}\n onOpen={onOpenDatePicker}\n onDayCreate={(_, __, ___, dayElem) => {\n for (const [key, value] of Object.entries(dayVariantProps)) {\n dayElem.setAttribute(key, value);\n }\n }}\n onReady={(_, __, calendarInstance) => {\n // If a className is provided, split it by spaces and add each class to the most outer div of the calendar\n if (props.className) {\n props.className.split(' ').forEach((externalClass) => {\n calendarInstance.calendarContainer.classList.add(externalClass);\n });\n }\n if (calendarInstance.calendarContainer) {\n for (const [key, value] of Object.entries(calendarVariantProps)) {\n calendarInstance.calendarContainer.setAttribute(key, value);\n }\n }\n // Ensure single-click opens when inside dialog: open on input focus/mousedown\n if (isInDialog) {\n const activeInput = (calendarInstance as any).altInput || calendarInstance.input;\n if (activeInput) {\n const onFocusOpen = () => {\n if (!calendarInstance.isOpen) {\n calendarInstance.open();\n }\n };\n const onMouseDownOpen = () => {\n if (!calendarInstance.isOpen) {\n calendarInstance.open();\n }\n };\n activeInput.addEventListener('focus', onFocusOpen);\n activeInput.addEventListener('mousedown', onMouseDownOpen);\n }\n }\n }}\n />\n );\n};\n\nexport default DatePickerBase;\n","import FlatPickr from 'flatpickr';\nimport { Instance } from 'flatpickr/dist/types/instance';\nimport { useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport DatePicker from 'react-flatpickr';\nimport useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\nimport { DatePickerBaseProps } from './DatePickerBase.types';\nimport customTimeSelectorPlugin from './Plugins/customTimeSelector';\nimport dateTimeSelectorPlugin from './Plugins/dateTimeSelector';\nimport timeSelectorPlugin from './Plugins/timeSelector';\n\nconst usePresenter = (props: DatePickerBaseProps) => {\n const {\n value,\n onValueChange,\n disabled,\n required,\n enableRange,\n datePickerRef,\n noCalendar,\n enableTime,\n customTimePickerPlugin,\n customDateTimePickerPlugin,\n useCustomTimeInputForTimePicker,\n handleInputReadOnlyState,\n onClose = () => { },\n onOpen = () => { },\n ...otherProps\n } = props;\n\n const isTimePickerOnly = noCalendar && enableTime;\n const isDateTimePicker = !noCalendar && enableTime;\n const containerRef = useRef<DatePicker>(null);\n const resolvedRef = datePickerRef ?? containerRef;\n\n const [isInDialog, setIsInDialog] = useState(false);\n\n const mode: 'range' | 'single' = enableRange ? 'range' : 'single';\n\n const onDateChange = (dates: Date[]) => {\n onValueChange?.(enableRange ? dates : dates[0]);\n };\n\n const onOpenDatePicker: FlatPickr.Options.Hook = (dates: Date[], dateStr: string) => {\n onOpen(dates, dateStr);\n if (handleInputReadOnlyState) {\n handleInputReadOnlyState(true);\n }\n };\n\n const onCloseDatePicker: FlatPickr.Options.Hook = (dates: Date[], dateStr: string) => {\n onClose(dates, dateStr);\n if (handleInputReadOnlyState) {\n handleInputReadOnlyState(false);\n }\n };\n\n const onInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const inputValue = event.target.value.trim();\n onValueChange?.(inputValue);\n };\n\n const customPlugin = useMemo(() => {\n // If time picker only, use custom time picker plugin if provided, otherwise use default time picker plugin\n if (isTimePickerOnly) {\n if (customTimePickerPlugin) {\n return [customTimePickerPlugin({ minuteStep: 30 })];\n } else if (useCustomTimeInputForTimePicker) { // to use custom time input same as date picker input\n return [customTimeSelectorPlugin({ minuteStep: 30 })];\n } else {\n return [timeSelectorPlugin({ minuteStep: 30 })];\n }\n } else if (enableTime) {\n // If date time picker, use custom date time picker plugin if provided, otherwise use default date time picker plugin\n if (customDateTimePickerPlugin) {\n return [customDateTimePickerPlugin({ minuteStep: 30 })];\n } else {\n return [dateTimeSelectorPlugin({ minuteStep: 30 })];\n }\n }\n return [];\n }, [isTimePickerOnly, enableTime, useCustomTimeInputForTimePicker]);\n\n const handleKeyDown = (\n _selectedDates: Date[],\n _dateStr: string,\n instance: Instance,\n event: KeyboardEvent\n ) => {\n if (isDateTimePicker && event.key === \"Escape\") {\n instance.close(); // Close the calendar\n if (handleInputReadOnlyState) {\n handleInputReadOnlyState(false);\n }\n }\n };\n\n const calendarVariantProps = useBuildVariantProps('date-picker');\n const dayVariantProps = useBuildVariantProps('date-picker-day');\n\n useLayoutEffect(() => {\n if (resolvedRef?.current?.flatpickr?.input) {\n const inputEl = resolvedRef.current.flatpickr.input as HTMLElement;\n const possibleDialog = inputEl.closest('[role=\"dialog\"]');\n if (possibleDialog instanceof HTMLElement) {\n setIsInDialog(true);\n } else {\n setIsInDialog(false);\n }\n }\n }, [resolvedRef]);\n\n return {\n value,\n datePickerRef: resolvedRef,\n disabled,\n required,\n mode,\n enableTime,\n noCalendar,\n isTimePickerOnly,\n customPlugin,\n handleKeyDown,\n onDateChange,\n onCloseDatePicker,\n onOpenDatePicker,\n calendarVariantProps,\n dayVariantProps,\n isInDialog,\n otherProps,\n };\n};\n\nexport default usePresenter;","import React, { createContext, useCallback, useEffect, useRef, useState } from 'react';\nimport type { FormContextValues, FormErrors, RequiredFields, FieldValidationFunction, FormProviderProps, FieldValidators, FormState, FieldValue } from './Form.types';\nimport { mergeRefs } from '../../utils/utils';\nimport { useDebounce } from '../../utils/useDebounce';\nimport { isEqualFormState } from './Form.utils';\n\nconst FormContext = createContext<FormContextValues<FormState> | undefined>(undefined);\n\nexport const FormProvider = <T extends FormState>(props: FormProviderProps<T>) => {\n const { \n formRef,\n formState: defaultFormState = {} as T, \n onFormStateChange, \n formValidator, \n onSubmit, \n validateOnChange,\n autosave = false,\n autosaveDelayMs,\n } = props;\n\n // Create a ref to the form element\n const internalFormRef = useRef<HTMLFormElement>(null);\n\n // State for form values, errors, required fields, and validation functions\n const [initialFormState, setInitialFormState] = useState<T>(defaultFormState);\n const [formState, setFormState] = useState<T>(defaultFormState);\n const [formErrors, setFormErrors] = useState<FormErrors<T>>({});\n const [requiredFields, setRequiredFields] = useState<RequiredFields<T>>({});\n const [fieldValidators, setFieldValidators] = useState<FieldValidators<T>>({});\n const [isPristine, setIsPristine] = useState(true);\n\n useEffect(() => {\n if (!isEqualFormState(initialFormState, defaultFormState)) {\n setFormState(defaultFormState);\n setInitialFormState(defaultFormState);\n setIsPristine(true);\n }\n }, [defaultFormState]);\n\n // Memoized function to update form error for a field using name and error\n const updateFieldError = useCallback((name: keyof T, error: string) => {\n setFormErrors((prevErrors) => ({\n ...prevErrors,\n [name]: error,\n }));\n }, [formErrors]);\n\n // Memoized function to set error for a specific field\n const setFieldError = useCallback((name: keyof T) => {\n return (message: string) => {\n updateFieldError(name, message);\n };\n }, [updateFieldError]);\n\n // Update validation functions for a specific field\n const updateFieldValidators = useCallback((name: keyof T, validate?: FieldValidationFunction) => {\n setFieldValidators((prevValidationFunctions) => ({ ...prevValidationFunctions, [name]: validate }));\n }, []);\n\n // Update required fields\n const updateRequiredFields = useCallback((name: keyof T, required?: boolean) => {\n setRequiredFields((prevRequiredFields) => ({ ...prevRequiredFields, [name]: !!required }));\n }, []);\n\n // Update the value of a form field\n const updateFieldValue = useCallback((name: string, value: FieldValue) => {\n // Clear the error for the field\n setFormErrors((prevErrors) => ({\n ...prevErrors,\n [name]: '',\n }));\n\n // Update the form values\n const updatedState: T = {\n ...formState,\n [name]: value,\n };\n setFormState(updatedState);\n setIsPristine(false);\n onFormStateChange?.(updatedState, updateFieldError);\n\n // Validate the field if validateOnChange is true\n if (validateOnChange) {\n fieldValidators[name]?.(setFieldError(name), value);\n }\n }, [formState, validateOnChange, fieldValidators, onFormStateChange]);\n\n // Validate required fields\n const validateRequiredFields = () => {\n let valid = true;\n Object.entries(requiredFields).forEach(([fieldName, required]) => {\n if (!required) return true;\n if (!formState[fieldName] || (Array.isArray(formState[fieldName]) && formState[fieldName].length === 0)) {\n setFieldError(fieldName)(`${fieldName} is required`);\n valid = false\n }\n });\n return valid;\n };\n\n // Validate each field with a validation function\n const validateEachField = () => {\n const fieldsWithValidateFunction = Object.keys(fieldValidators);\n return fieldsWithValidateFunction.length\n ? fieldsWithValidateFunction.every((fieldName) => {\n const isFieldValidated = fieldValidators[fieldName]?.(setFieldError(fieldName), formState[fieldName]);\n return isFieldValidated === undefined\n ? true // considering field validated if there is no field validator for it\n : isFieldValidated;\n })\n : true;\n };\n\n // Handle form submission\n const handleSubmit: React.FormEventHandler<HTMLFormElement> = (event) => {\n event.preventDefault();\n\n // Validate required fields, individual fields, and the entire form\n const areRequiredFieldsValid = validateRequiredFields();\n const areFieldsValid = validateEachField();\n const isFormValid = formValidator ? formValidator(formState, updateFieldError) : true;\n\n // If any validation fails, return early\n if (!areRequiredFieldsValid || !areFieldsValid || !isFormValid) {\n return;\n }\n\n // Call the onSubmit callback with the form values\n onSubmit?.(formState, updateFieldError);\n };\n\n const handleReset = useCallback(() => {\n // Reset the form state to the initial values\n setFormState(defaultFormState);\n setFormErrors({});\n setIsPristine(true);\n }, [defaultFormState]);\n\n // Autosave functionality\n const performAutosave = useCallback(() => {\n if (!autosave || !onSubmit) return;\n\n // Validate required fields, individual fields, and the entire form\n const areRequiredFieldsValid = validateRequiredFields();\n const areFieldsValid = validateEachField();\n const isFormValid = formValidator ? formValidator(formState, updateFieldError) : true;\n\n // If all validations pass, submit the form\n if (areRequiredFieldsValid && areFieldsValid && isFormValid) {\n onSubmit(formState, updateFieldError);\n setIsPristine(true);\n }\n }, [autosave, onSubmit, formState, formValidator, updateFieldError]);\n\n // Create debounced version of autosave if autosaveDelayMs is provided\n const { debouncedCallback: debouncedAutosave } = useDebounce(performAutosave, autosaveDelayMs || 0);\n\n // Trigger autosave when form state changes\n useEffect(() => {\n if (autosave && !isPristine) {\n if (autosaveDelayMs) {\n debouncedAutosave();\n } else {\n performAutosave();\n }\n }\n }, [formState, isPristine]);\n\n // Create the context value\n const contextValue: FormContextValues = {\n formRef: mergeRefs(formRef, internalFormRef),\n formState,\n updateFieldValue,\n formErrors,\n updateFieldError,\n onFormSubmit: handleSubmit,\n updateFieldValidators,\n updateRequiredFields,\n resetForm: handleReset,\n };\n\n // Provide the form context to the child components\n return (\n <FormContext.Provider value={contextValue}>\n {props.children}\n </FormContext.Provider>\n );\n};\n\nexport default FormContext;","import { FieldValue, FormState } from \"./Form.types\";\n\nexport const isEqualFormState = <T extends FieldValue>(state1: FormState<T>, state2: FormState<T>): boolean => {\n const keys1 = Object.keys(state1);\n const keys2 = Object.keys(state2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n return keys1.every(key => state1[key] === state2[key]);\n};","import React from 'react';\nimport { FieldValue } from '../../organisms';\n\nconst isNativeFormElement = (element: React.ReactElement): boolean => {\n const type = element.type;\n if (typeof type === 'string') {\n return type === 'input' || type === 'textarea';\n }\n return false;\n};\n\nconst isTextComponent = (element: React.ReactElement): boolean => {\n const type = element.type;\n if (typeof type === 'function' && type.name === 'Text') {\n return true;\n }\n return false;\n};\n\nexport const injectPropsToMatchingFields = (\n node: React.ReactNode,\n propsToInject: {\n id: string;\n name: string;\n value: any;\n onValueChange: (value: FieldValue) => void;\n disabled?: boolean;\n invalid?: boolean;\n required?: boolean;\n },\n shouldInjectValueProps: boolean,\n): React.ReactNode => {\n // Handle arrays of children at the top level\n if (React.Children.count(node) > 1 || Array.isArray(node)) {\n return React.Children.map(node, (child) =>\n injectPropsToMatchingFields(child, propsToInject, shouldInjectValueProps)\n );\n }\n\n // Handle null, undefined, or primitive nodes\n if (!React.isValidElement(node)) {\n return node;\n }\n\n const originalOnValueChange = node.props?.onValueChange;\n const originalOnChange = node.props?.onChange;\n\n const updatedOnChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value;\n propsToInject.onValueChange(newValue);\n if (originalOnChange) {\n originalOnChange(e);\n }\n };\n\n const injectedProps: Record<string, any> = {\n id: propsToInject.id,\n disabled: propsToInject.disabled,\n invalid: propsToInject.invalid,\n required: propsToInject.required,\n };\n\n if (shouldInjectValueProps) {\n injectedProps.value = propsToInject.value;\n injectedProps.onValueChange = (value: FieldValue) => {\n propsToInject.onValueChange(value);\n if (originalOnValueChange) {\n originalOnValueChange(value);\n }\n };\n }\n\n if (isTextComponent(node)) {\n const children = node.props.children;\n const newChildren = React.Children.map(children, (child) =>\n injectPropsToMatchingFields(child, propsToInject, shouldInjectValueProps)\n );\n return React.cloneElement(node, {\n ...node.props,\n children: newChildren,\n });\n }\n\n if (isNativeFormElement(node)) {\n return React.cloneElement(node, {\n ...node.props,\n ...injectedProps,\n onChange: shouldInjectValueProps ? updatedOnChange : originalOnChange,\n });\n }\n\n // Always process children if they exist\n if (typeof node.type === 'string' && node.props.children) {\n const children = node.props.children;\n const newChildren = React.Children.map(children, (child) =>\n injectPropsToMatchingFields(child, propsToInject, shouldInjectValueProps)\n );\n\n // For form elements or other components, inject props and include processed children\n return React.cloneElement(node, {\n ...node.props,\n children: newChildren,\n });\n }\n\n return React.cloneElement(node, {\n ...node.props,\n ...injectedProps,\n });\n}\n","import useBuildVariantProps from \"../../../../modules/theme/useBuildVariantProps\";\nimport { ListItemType, RootListProps } from \"../List.types\";\nimport cx from 'classnames';\nimport styles from '../List.module.scss';\n\n/**\n * A root list component that provides layout and styling for list items.\n * \n * @template T - The type of the list items.\n * @param {RootListProps<T>} props - The properties for the root list.\n * @returns {JSX.Element} The rendered root list.\n */\nexport const RootList = <T extends ListItemType>(props: RootListProps<T>) => {\n const {\n align = 'Horizontal',\n wrap,\n className,\n children,\n ...restProps\n } = props;\n\n const variantProps = useBuildVariantProps(\n 'list',\n { align },\n );\n\n return (\n <ul\n {...restProps}\n className={cx(styles.list,\n {\n [styles.wrap]: wrap,\n },\n className,\n )}\n {...variantProps}\n >\n {children}\n </ul>\n )\n}","import cx from 'classnames';\nimport styles from '../List.module.scss';\nimport { ListItemProps, ListItemType } from \"../List.types\";\n\n/**\n * A list item component that renders a single item.\n * \n * @template T - The type of the list item.\n * @param {ListItemProps<T>} props - The properties for the list item.\n * @returns {JSX.Element} The rendered list item.\n */\nexport const RootListItem = <T extends ListItemType>(props: ListItemProps<T>) => {\n const { id, component: Component, item, ...rest } = props;\n const { itemClassName, itemStyle, ...itemProps } = item;\n return (\n <li\n {...rest}\n className={cx(styles.listItem, itemClassName)}\n style={itemStyle}\n >\n <Component {...itemProps} />\n </li>\n );\n}","import React from 'react';\nimport type { ListItemType, ListProps } from '../List.types';\nimport { RootList } from './RootList';\nimport { RootListItem } from './RootListItem';\n\n/**\n * A basic list component that renders items without sorting functionality.\n */\nexport const BasicList = <T extends ListItemType>(props: ListProps<T>) => {\n const { data, component, keyExtractor, ...rest } = props;\n\n return (\n <RootList {...rest}>\n {data?.map((item, index) => {\n const itemId = item.id ?? keyExtractor?.(item, index) ?? index;\n return (\n <RootListItem\n key={itemId}\n id={itemId}\n item={item}\n component={component}\n />\n );\n })}\n </RootList>\n );\n};","import { useMemo, useLayoutEffect, useEffect, useRef, useCallback } from 'react';\n\nfunction useCombinedRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return useMemo(() => node => {\n refs.forEach(ref => ref(node));\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n refs);\n}\n\n// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\nconst canUseDOM = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined';\n\nfunction isWindow(element) {\n const elementString = Object.prototype.toString.call(element);\n return elementString === '[object Window]' || // In Electron context the Window object serializes to [object global]\n elementString === '[object global]';\n}\n\nfunction isNode(node) {\n return 'nodeType' in node;\n}\n\nfunction getWindow(target) {\n var _target$ownerDocument, _target$ownerDocument2;\n\n if (!target) {\n return window;\n }\n\n if (isWindow(target)) {\n return target;\n }\n\n if (!isNode(target)) {\n return window;\n }\n\n return (_target$ownerDocument = (_target$ownerDocument2 = target.ownerDocument) == null ? void 0 : _target$ownerDocument2.defaultView) != null ? _target$ownerDocument : window;\n}\n\nfunction isDocument(node) {\n const {\n Document\n } = getWindow(node);\n return node instanceof Document;\n}\n\nfunction isHTMLElement(node) {\n if (isWindow(node)) {\n return false;\n }\n\n return node instanceof getWindow(node).HTMLElement;\n}\n\nfunction isSVGElement(node) {\n return node instanceof getWindow(node).SVGElement;\n}\n\nfunction getOwnerDocument(target) {\n if (!target) {\n return document;\n }\n\n if (isWindow(target)) {\n return target.document;\n }\n\n if (!isNode(target)) {\n return document;\n }\n\n if (isDocument(target)) {\n return target;\n }\n\n if (isHTMLElement(target) || isSVGElement(target)) {\n return target.ownerDocument;\n }\n\n return document;\n}\n\n/**\r\n * A hook that resolves to useEffect on the server and useLayoutEffect on the client\r\n * @param callback {function} Callback function that is invoked when the dependencies of the hook change\r\n */\n\nconst useIsomorphicLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;\n\nfunction useEvent(handler) {\n const handlerRef = useRef(handler);\n useIsomorphicLayoutEffect(() => {\n handlerRef.current = handler;\n });\n return useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return handlerRef.current == null ? void 0 : handlerRef.current(...args);\n }, []);\n}\n\nfunction useInterval() {\n const intervalRef = useRef(null);\n const set = useCallback((listener, duration) => {\n intervalRef.current = setInterval(listener, duration);\n }, []);\n const clear = useCallback(() => {\n if (intervalRef.current !== null) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n }, []);\n return [set, clear];\n}\n\nfunction useLatestValue(value, dependencies) {\n if (dependencies === void 0) {\n dependencies = [value];\n }\n\n const valueRef = useRef(value);\n useIsomorphicLayoutEffect(() => {\n if (valueRef.current !== value) {\n valueRef.current = value;\n }\n }, dependencies);\n return valueRef;\n}\n\nfunction useLazyMemo(callback, dependencies) {\n const valueRef = useRef();\n return useMemo(() => {\n const newValue = callback(valueRef.current);\n valueRef.current = newValue;\n return newValue;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [...dependencies]);\n}\n\nfunction useNodeRef(onChange) {\n const onChangeHandler = useEvent(onChange);\n const node = useRef(null);\n const setNodeRef = useCallback(element => {\n if (element !== node.current) {\n onChangeHandler == null ? void 0 : onChangeHandler(element, node.current);\n }\n\n node.current = element;\n }, //eslint-disable-next-line\n []);\n return [node, setNodeRef];\n}\n\nfunction usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nlet ids = {};\nfunction useUniqueId(prefix, value) {\n return useMemo(() => {\n if (value) {\n return value;\n }\n\n const id = ids[prefix] == null ? 0 : ids[prefix] + 1;\n ids[prefix] = id;\n return prefix + \"-\" + id;\n }, [prefix, value]);\n}\n\nfunction createAdjustmentFn(modifier) {\n return function (object) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n\n return adjustments.reduce((accumulator, adjustment) => {\n const entries = Object.entries(adjustment);\n\n for (const [key, valueAdjustment] of entries) {\n const value = accumulator[key];\n\n if (value != null) {\n accumulator[key] = value + modifier * valueAdjustment;\n }\n }\n\n return accumulator;\n }, { ...object\n });\n };\n}\n\nconst add = /*#__PURE__*/createAdjustmentFn(1);\nconst subtract = /*#__PURE__*/createAdjustmentFn(-1);\n\nfunction hasViewportRelativeCoordinates(event) {\n return 'clientX' in event && 'clientY' in event;\n}\n\nfunction isKeyboardEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n KeyboardEvent\n } = getWindow(event.target);\n return KeyboardEvent && event instanceof KeyboardEvent;\n}\n\nfunction isTouchEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n TouchEvent\n } = getWindow(event.target);\n return TouchEvent && event instanceof TouchEvent;\n}\n\n/**\r\n * Returns the normalized x and y coordinates for mouse and touch events.\r\n */\n\nfunction getEventCoordinates(event) {\n if (isTouchEvent(event)) {\n if (event.touches && event.touches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.touches[0];\n return {\n x,\n y\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.changedTouches[0];\n return {\n x,\n y\n };\n }\n }\n\n if (hasViewportRelativeCoordinates(event)) {\n return {\n x: event.clientX,\n y: event.clientY\n };\n }\n\n return null;\n}\n\nconst CSS = /*#__PURE__*/Object.freeze({\n Translate: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n x,\n y\n } = transform;\n return \"translate3d(\" + (x ? Math.round(x) : 0) + \"px, \" + (y ? Math.round(y) : 0) + \"px, 0)\";\n }\n\n },\n Scale: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n scaleX,\n scaleY\n } = transform;\n return \"scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\";\n }\n\n },\n Transform: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n return [CSS.Translate.toString(transform), CSS.Scale.toString(transform)].join(' ');\n }\n\n },\n Transition: {\n toString(_ref) {\n let {\n property,\n duration,\n easing\n } = _ref;\n return property + \" \" + duration + \"ms \" + easing;\n }\n\n }\n});\n\nconst SELECTOR = 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]';\nfunction findFirstFocusableNode(element) {\n if (element.matches(SELECTOR)) {\n return element;\n }\n\n return element.querySelector(SELECTOR);\n}\n\nexport { CSS, add, canUseDOM, findFirstFocusableNode, getEventCoordinates, getOwnerDocument, getWindow, hasViewportRelativeCoordinates, isDocument, isHTMLElement, isKeyboardEvent, isNode, isSVGElement, isTouchEvent, isWindow, subtract, useCombinedRefs, useEvent, useInterval, useIsomorphicLayoutEffect, useLatestValue, useLazyMemo, useNodeRef, usePrevious, useUniqueId };\n//# sourceMappingURL=utilities.esm.js.map\n","import { getEventCoordinates } from '@dnd-kit/utilities';\n\nfunction createSnapModifier(gridSize) {\n return _ref => {\n let {\n transform\n } = _ref;\n return { ...transform,\n x: Math.ceil(transform.x / gridSize) * gridSize,\n y: Math.ceil(transform.y / gridSize) * gridSize\n };\n };\n}\n\nconst restrictToHorizontalAxis = _ref => {\n let {\n transform\n } = _ref;\n return { ...transform,\n y: 0\n };\n};\n\nfunction restrictToBoundingRect(transform, rect, boundingRect) {\n const value = { ...transform\n };\n\n if (rect.top + transform.y <= boundingRect.top) {\n value.y = boundingRect.top - rect.top;\n } else if (rect.bottom + transform.y >= boundingRect.top + boundingRect.height) {\n value.y = boundingRect.top + boundingRect.height - rect.bottom;\n }\n\n if (rect.left + transform.x <= boundingRect.left) {\n value.x = boundingRect.left - rect.left;\n } else if (rect.right + transform.x >= boundingRect.left + boundingRect.width) {\n value.x = boundingRect.left + boundingRect.width - rect.right;\n }\n\n return value;\n}\n\nconst restrictToParentElement = _ref => {\n let {\n containerNodeRect,\n draggingNodeRect,\n transform\n } = _ref;\n\n if (!draggingNodeRect || !containerNodeRect) {\n return transform;\n }\n\n return restrictToBoundingRect(transform, draggingNodeRect, containerNodeRect);\n};\n\nconst restrictToFirstScrollableAncestor = _ref => {\n let {\n draggingNodeRect,\n transform,\n scrollableAncestorRects\n } = _ref;\n const firstScrollableAncestorRect = scrollableAncestorRects[0];\n\n if (!draggingNodeRect || !firstScrollableAncestorRect) {\n return transform;\n }\n\n return restrictToBoundingRect(transform, draggingNodeRect, firstScrollableAncestorRect);\n};\n\nconst restrictToVerticalAxis = _ref => {\n let {\n transform\n } = _ref;\n return { ...transform,\n x: 0\n };\n};\n\nconst restrictToWindowEdges = _ref => {\n let {\n transform,\n draggingNodeRect,\n windowRect\n } = _ref;\n\n if (!draggingNodeRect || !windowRect) {\n return transform;\n }\n\n return restrictToBoundingRect(transform, draggingNodeRect, windowRect);\n};\n\nconst snapCenterToCursor = _ref => {\n let {\n activatorEvent,\n draggingNodeRect,\n transform\n } = _ref;\n\n if (draggingNodeRect && activatorEvent) {\n const activatorCoordinates = getEventCoordinates(activatorEvent);\n\n if (!activatorCoordinates) {\n return transform;\n }\n\n const offsetX = activatorCoordinates.x - draggingNodeRect.left;\n const offsetY = activatorCoordinates.y - draggingNodeRect.top;\n return { ...transform,\n x: transform.x + offsetX - draggingNodeRect.width / 2,\n y: transform.y + offsetY - draggingNodeRect.height / 2\n };\n }\n\n return transform;\n};\n\nexport { createSnapModifier, restrictToFirstScrollableAncestor, restrictToHorizontalAxis, restrictToParentElement, restrictToVerticalAxis, restrictToWindowEdges, snapCenterToCursor };\n//# sourceMappingURL=modifiers.esm.js.map\n","import { createContext, useContext } from 'react';\nimport cx from 'classnames';\nimport {\n useSortable,\n} from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\n\nimport styles from '../List.module.scss';\nimport { ListItemProps, ListItemType, SortableItemContextType } from \"../List.types\";\n\nconst SortableItemContext = createContext<SortableItemContextType | undefined>(undefined);\n\n/**\n * A sortable item component that integrates with the dnd-kit library for drag-and-drop functionality.\n * \n * @template T - The type of the list item.\n * @param {ListItemProps<T>} props - The properties for the sortable item.\n * @returns {JSX.Element} The rendered sortable item.\n */\nexport const SortableItem = <T extends ListItemType>(props: ListItemProps<T>) => {\n const { id, component: Component, item, ...rest } = props;\n const { itemClassName, itemStyle, ...itemProps } = item;\n\n const {\n attributes,\n listeners,\n\n setNodeRef,\n transform,\n transition,\n } = useSortable({ id });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n return (\n <SortableItemContext.Provider value={{ id, transform, transition, attributes, listeners }}>\n <li\n {...rest}\n ref={setNodeRef}\n style={style}\n className={cx(styles.listItem, itemClassName)}\n >\n <Component\n {...itemProps}\n />\n </li>\n </SortableItemContext.Provider>\n );\n}\n\nexport const useSortableItem = () => {\n const context = useContext(SortableItemContext);\n if (!context) {\n throw new Error('useSortableItem must be used within a SortableItem');\n }\n return context;\n}\n","import { DndContext, DragEndEvent, DragOverlay, DragStartEvent, UniqueIdentifier, closestCenter } from '@dnd-kit/core';\nimport { restrictToHorizontalAxis, restrictToParentElement, restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport {\n arrayMove,\n horizontalListSortingStrategy,\n SortableContext,\n verticalListSortingStrategy,\n} from '@dnd-kit/sortable';\nimport React, { useState, useEffect } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { SortableListProps, ListItemType, SortableListItemType } from \"../List.types\";\nimport { RootList } from './RootList';\nimport { SortableItem } from './SortableListItem';\n\n/**\n * A sortable list component that allows drag-and-drop reordering of items.\n * \n * @template T - The type of the list items, which must include an `id` property.\n * @param {SortableListProps<T>} props - The properties for the sortable list.\n * @returns {JSX.Element} The rendered sortable list.\n */\nexport const SortableList = <T extends ListItemType>(props: SortableListProps<T>) => {\n const {\n data, \n updateSortOrder,\n component,\n keyExtractor,\n ...rootProps\n } = props;\n\n // Transform data to ensure all items have required IDs\n const [mappedData, setMappedData] = useState<(SortableListItemType)[]>([]);\n\n useEffect(() => {\n const newMappedData = data?.map((item, index) => {\n let itemId = item.id;\n if (itemId === undefined) {\n if (keyExtractor) {\n itemId = keyExtractor(item, index);\n } else {\n itemId = index;\n }\n }\n return {\n ...item,\n id: itemId,\n };\n }) || [];\n setMappedData(newMappedData);\n }, [data, keyExtractor]);\n\n const [activeId, setActiveId] = useState<UniqueIdentifier | null>();\n \n /**\n * Handles the drag start event, setting the active item ID.\n * \n * @param {DragStartEvent} event - The drag start event.\n */\n const handleDragStart = (event: DragStartEvent) => {\n setActiveId(event.active.id);\n };\n\n /**\n * Handles the drag end event, updating the sort order if necessary.\n * \n * @param {DragEndEvent} event - The drag end event.\n */\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event;\n\n if (over && active.id !== over.id) {\n const mappedDataIndex = mappedData.map((item) => item.id);\n const oldIndex = mappedDataIndex.indexOf(active.id);\n const newIndex = mappedDataIndex.indexOf(over.id);\n const movedData = arrayMove(mappedData, oldIndex, newIndex);\n \n \n // Call the callback if provided\n if (updateSortOrder) {\n // unforunately, the type of the updateSortOrder function is not known at this point\n // so we need to cast it to the correct type.\n // the only difference between the `mappedData` and the `data` is that the `mappedData` has a required id property\n const updatedData = updateSortOrder(movedData as T[], oldIndex, newIndex) as SortableListItemType[];\n if (updatedData) {\n setMappedData(updatedData);\n }\n } else {\n setMappedData(movedData);\n }\n }\n\n setActiveId(null);\n }\n const horizontalSort = props.align === 'Horizontal';\n\n return (\n <DndContext\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n modifiers={[horizontalSort ? restrictToHorizontalAxis : restrictToVerticalAxis, restrictToParentElement]}\n >\n <SortableContext\n items={mappedData}\n strategy={horizontalSort ? horizontalListSortingStrategy : verticalListSortingStrategy}\n >\n <RootList {...rootProps}>\n {mappedData.map((item) => (\n <SortableItem\n key={item.id}\n id={item.id}\n item={item}\n component={component}\n />\n ))}\n </RootList>\n </SortableContext>\n \n {createPortal(\n <DragOverlay dropAnimation={null}>\n <div style={{ visibility: activeId ? 'visible' : 'hidden' }}>\n {/** Overlay content here */}\n </div>\n </DragOverlay>,\n document.body,\n )}\n </DndContext>\n )\n}","import type { ListItemType, ListProps } from './List.types';\nimport { BasicList } from './components/BasicList';\nimport { SortableList } from './components/SortableList';\n\n/**\n * A wrapper component that manages the rendering of either a sortable or regular list based on the provided props.\n */\nconst List = <T extends ListItemType>(props: ListProps<T>) => {\n if (props.sortable) {\n return <SortableList {...props} />;\n }\n\n return <BasicList {...props} />;\n}\n\nexport default List;\n","import { ListItemType, RepeaterListProps } from \"./List.types\";\n\n/**\n * A list component that renders a list of items without any parent container.\n * \n * @template T - The type of the list item.\n * @param {RepeaterListProps<T>} props - The properties for the repeater list.\n * @returns {JSX.Element} The rendered repeater list.\n */\nconst RepeaterList = <T extends ListItemType>(props: RepeaterListProps<T>) => {\n const {\n data,\n component: Component,\n } = props;\n\n return (\n <>\n {data?.map((item, index) => (\n <Component key={index} {...item} />\n ))}\n </>\n )\n}\n\nexport default RepeaterList;","import cx from 'classnames';\nimport React, { useCallback } from 'react';\nimport { Modal as ModalComponent } from 'react-overlays';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport styles from './Modal.module.scss';\nimport type { ModalProps } from './Modal.types';\n\n/**\n * Modal component for displaying a dialog window.\n */\nconst Modal = (props: ModalProps) => {\n const {\n size = 'Medium',\n onHide,\n show,\n children,\n header,\n footer,\n backdrop = true,\n renderBackdrop,\n disableBackdropDismiss,\n 'component-variant': componentVariant,\n className,\n Transition,\n } = props;\n\n /**\n * Handles click events on the modal backdrop. Calls onHide if backdrop dismissal is enabled.\n * @returns {void}\n */\n const handleBackdropClick = useCallback(() => {\n if (!disableBackdropDismiss && onHide) {\n onHide();\n }\n }, [disableBackdropDismiss, onHide]);\n\n /**\n * Creates the backdrop element for the modal.\n * @returns {React.ReactElement} The backdrop element\n */\n const createBackdrop = useCallback(() => {\n if (renderBackdrop) {\n return <div onClick={handleBackdropClick}>{renderBackdrop}</div>;\n }\n return <div className={cx(styles.backdrop)} onClick={handleBackdropClick} />;\n }, [renderBackdrop, handleBackdropClick]);\n\n let headerComponent, footerComponent, content;\n\n if (header) {\n headerComponent = <div className={cx(styles.header)}>{header}</div>;\n }\n\n if (footer) {\n footerComponent = <div className={cx(styles.footer)}>{footer}</div>;\n }\n\n if (children) {\n content = <div className={cx(styles.content)}>{children}</div>;\n }\n\n const variantProps = useBuildVariantProps(\n 'modal',\n { size },\n undefined,\n componentVariant,\n );\n\n return (\n <ModalComponent\n className={cx(styles.modal, styles[`modal--${size.toLowerCase()}`], className)}\n onHide={onHide}\n show={show}\n backdrop={backdrop}\n renderBackdrop={createBackdrop}\n container={document.body} // Ensure modal is appended to the document body for accessibility\n transition={Transition}\n {...variantProps}\n >\n <>\n {headerComponent}\n {content}\n {footerComponent}\n </>\n </ModalComponent>\n );\n};\n\nexport default Modal;\n","import React, { createContext, useContext, useState, useCallback, useMemo } from 'react';\nimport type { ModalContextType, ModalProviderProps, ModalInstance, ModalComponentProps } from './ModalContext.types';\n\n/**\n * React context for managing modal state and operations.\n * Provides functions to open and close modals programmatically.\n */\nconst ModalContext = createContext<ModalContextType | undefined>(undefined);\n\n/**\n * Hook to access the modal context.\n * Must be used within a ModalProvider component.\n * \n * @returns The modal context containing openModal and closeModal functions\n * @throws Error if used outside of a ModalProvider\n * \n * @example\n * ```tsx\n * function MyComponent() {\n * const { openModal, closeModal } = useModalContext();\n * \n * const handleOpenModal = () => {\n * openModal('my-modal', MyModalComponent, { title: 'Hello' });\n * };\n * \n * return <button onClick={handleOpenModal}>Open Modal</button>;\n * }\n * ```\n */\nexport const useModalContext = () => {\n const context = useContext(ModalContext);\n if (!context) {\n throw new Error('useModalContext must be used within a ModalProvider');\n }\n return context;\n};\n\n/**\n * Provider component that manages modal state and renders modal instances.\n * Wraps child components with modal context and renders all active modals.\n * \n * @param props - The provider props\n * @param props.children - Child components that will have access to modal context\n * \n * @example\n * ```tsx\n * function App() {\n * return (\n * <ModalProvider>\n * <MyApplication />\n * </ModalProvider>\n * );\n * }\n * ```\n */\nexport const ModalProvider = ({ children }: ModalProviderProps) => {\n const [modals, setModals] = useState<Record<string, ModalInstance>>({});\n\n /**\n * Opens a modal with the given component and props.\n * If a modal with the same ID already exists, it will be replaced.\n */\n const openModal = useCallback(<T extends ModalComponentProps>(\n id: string,\n Component: React.ComponentType<T>,\n props: T\n ) => {\n // create a new modal instance with the given component and props. set show to true and onCancel to close the modal.\n const modalInstance: ModalInstance = {\n id,\n component: <Component \n key={id} \n {...props} \n show={true}\n onCancel={() => {\n props.onCancel?.();\n closeModal(id);\n }}\n />\n };\n\n setModals(prev => ({\n ...prev,\n [id]: modalInstance\n }));\n }, []);\n\n /**\n * Closes and removes a modal by its unique identifier.\n * If the modal doesn't exist, this operation is a no-op.\n */\n const closeModal = useCallback((id: string) => {\n setModals(prev => {\n const { [id]: removed, ...rest } = prev;\n return rest;\n });\n }, []);\n\n const contextValue: ModalContextType = {\n openModal,\n closeModal\n };\n\n const modalComponents = useMemo(\n () => Object.values(modals).map(modal => modal.component),\n [modals]\n );\n\n return (\n <ModalContext.Provider value={contextValue}>\n {children}\n {modalComponents}\n </ModalContext.Provider>\n );\n};","import React from 'react';\nimport cx from 'classnames';\n\nimport styles from './PaginationNumberField.module.scss';\nimport { PaginationNumberFieldProps } from './PaginationNumberField.types';\nimport usePresenter from './PaginationNumberField.presenter';\n\nconst PaginationNumberField = (props: PaginationNumberFieldProps) => {\n const { inputRef, page, onBlur, onPageChanged, keyListener } = usePresenter(props);\n return (\n <div className={cx(styles.root, props.className)}>\n <input\n className={styles.pageNumber}\n ref={inputRef}\n value={page}\n onChange={onPageChanged}\n onKeyUp={keyListener}\n onBlur={onBlur}\n />\n </div>\n );\n};\n\nexport default PaginationNumberField;\n","import { ChangeEventHandler, KeyboardEventHandler, useEffect, useRef, useState } from \"react\";\nimport { PaginationNumberFieldProps } from \"./PaginationNumberField.types\";\n\nconst usePresenter = (props: PaginationNumberFieldProps) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const [page, setPage] = useState(`${props.page}`);\n const [tempPage, setTempPage] = useState(`${props.page}`);\n\n useEffect(() => {\n setPage(`${props.page}`);\n setTempPage(`${props.page}`);\n }, [props.page]);\n\n useEffect(() => {\n if (tempPage === \"\") {\n setPage('');\n return; // Allow empty input without immediate correction\n }\n \n const parsedPage = parseInt(tempPage, 10);\n\n if (isNaN(parsedPage)) {\n setTempPage(`${props.page}`); // Reset if input is invalid\n } else {\n const clampedPage = Math.min(Math.max(parsedPage, 1), props.totalPages || 1);\n setTempPage(`${clampedPage}`);\n setPage(`${clampedPage}`);\n if (props.onPageChanged) {\n props.onPageChanged(clampedPage);\n }\n }\n }, [tempPage, props.totalPages, props.page]);\n\n const onPageChanged: ChangeEventHandler<HTMLInputElement> = (event) => {\n setTempPage(event.target.value); // Allow immediate updates without correction\n // if(event.target.value) {\n // const parsedPage = Math.min(Math.max(parseInt(event.target.value || '0', 10), 1), props.totalPages || 1);\n // if(inputRef.current) {\n // inputRef.current.value = `${parsedPage}`;\n // }\n // setPage(`${parsedPage}`);\n // }\n }\n\n const keyListener: KeyboardEventHandler<HTMLInputElement> = (event) => {\n if (event.code === 'Enter') {\n inputRef.current?.blur();\n }\n }\n\n const onBlur = () => {\n if (props.onPageChanged) {\n props.onPageChanged(parseInt(page, 10));\n }\n }\n\n return {\n inputRef,\n page,\n onPageChanged,\n onBlur,\n keyListener,\n }\n}\n\nexport default usePresenter;","import type { Placement } from 'react-overlays/usePopper';\nimport type { ActionType, OverlayDirectionEnum, OverlayAlignEnum } from './Popover.types';\n\n/**\n * Handles the interaction logic for showing or hiding the popover based on the action type.\n * @param action - The action type ('click' or 'hover') that triggers the popover.\n * @param show - The current visibility state of the popover.\n * @param setShow - The function to update the visibility state of the popover.\n * @param actionType - The type of action currently being performed.\n * @param value - Optional boolean value indicating the hover state (true for hover in, false for hover out).\n * @param disabled - Optional boolean value indicating the disabled state of target component.\n */\nexport const handleInteraction = (\n action: ActionType | undefined,\n show: boolean,\n setShow: React.Dispatch<React.SetStateAction<boolean>>,\n actionType: ActionType,\n value?: boolean,\n disabled?: boolean,\n) => {\n if (action !== actionType || disabled) {\n return;\n }\n\n if (action === 'Click' || action === 'DoubleClick') {\n setShow(!show);\n } else if (action === 'Hover') {\n setShow(value || false);\n }\n\n};\n\n/**\n * Determines the placement of the popover based on direction and alignment.\n * @param direction - The direction of the popover ('top', 'bottom', 'right', 'left').\n * @param alignment - The alignment of the popover ('start', 'end', 'center').\n * @returns The calculated placement string for the popover.\n */\nexport const getPlacement = (\n alignment: OverlayAlignEnum = 'Center', // Default alignment to 'center'\n direction: OverlayDirectionEnum = 'Down', // Default direction to 'down'\n): Placement => {\n const basePlacement = direction === 'Up' ? 'top' : direction === 'Down' ? 'bottom' : direction.toLowerCase();\n return alignment === 'Center' ? basePlacement as Placement : `${basePlacement}-${alignment.toLowerCase()}` as Placement;\n};\n\n/**\n * Gets the width value based on the provided parameters.\n * If `matchTriggerWidth` is `true` and `width` is `'match-trigger'`,\n * it returns the width of the `targetRef` element.\n *\n * @param {string | number | undefined} width - Width value or 'match-trigger'.\n * @param {React.RefObject<HTMLDivElement> | undefined} targetRef - Optional reference to the target element.\n * @param {boolean} matchTriggerWidth - Flag indicating whether to match width with `targetRef`.\n * @returns {string | number | undefined} Calculated width value.\n */\nexport const getWidth = (\n width?: string | number,\n targetRef?: React.RefObject<HTMLDivElement>,\n matchTriggerWidth = false,\n) => {\n \n if (matchTriggerWidth || width === 'match-trigger') {\n return `${targetRef?.current?.getBoundingClientRect().width}px`;\n }\n\n return width;\n};\n\n\n","import cx from 'classnames';\nimport React, { forwardRef, useImperativeHandle } from 'react';\nimport Overlay from 'react-overlays/Overlay';\nimport styles from './Popover.module.scss';\nimport usePresenter from './Popover.presenter';\nimport type { PopoverHandle, PopoverProps } from './Popover.types';\nimport { getWidth } from './Popover.utils';\n\n/**\n * Popover component that displays a floating content element in relation to a target element.\n * It can be triggered via different user actions like 'Click' or 'Hover'.\n */\nconst Popover = forwardRef<PopoverHandle, PopoverProps>((props, ref) => {\n const {\n handleOnHide,\n openPopover,\n containerRef,\n onClickListener,\n onDoubleClickListener,\n targetOnClickListener,\n targetOnDoubleClickListener,\n targetRef,\n onMouseOutListener,\n onMouseOverListener,\n popoverAccessibilityProps,\n targetAccessibilityProps,\n show,\n offset,\n placement,\n contentPosition,\n initialTransformRef,\n hideOnClickAway,\n otherProps\n } = usePresenter(props);\n\n // Expose methods to the parent component\n useImperativeHandle(ref, () => ({\n close: handleOnHide, // Method to close the popover programmatically\n open: openPopover, // (Optional) Method to open the popover programmatically\n }));\n\n return (\n <div\n className={cx(styles.popover, props.className)}\n ref={containerRef}\n onClick={onClickListener}\n onDoubleClick={onDoubleClickListener}\n onMouseOut={onMouseOutListener}\n onMouseOver={onMouseOverListener}\n {...popoverAccessibilityProps}\n {...{\n ...otherProps,\n disabled: props.disabled,\n }}\n >\n {/* Target element that triggers the popover */}\n <div\n className={cx(styles.target,\n {\n [styles.disabled]: props.disabled,\n },\n )}\n onClick={targetOnClickListener}\n onDoubleClick={targetOnDoubleClickListener}\n {...targetAccessibilityProps}\n ref={targetRef}\n >\n {React.isValidElement(props.target)\n ? React.cloneElement(props.target, {\n ...(show ? { active: 'true' } : {}),\n })\n : props.target}\n </div>\n <Overlay\n offset={offset}\n onHide={handleOnHide}\n placement={placement}\n rootClose={hideOnClickAway}\n show={show}\n target={targetRef}\n container={props.container || containerRef}\n flip={props.flip}\n >\n {({ props: { style: { transform, ...restStyle }, ...restProps } }) => {\n // Store the initial transform value if it's not set and contentPosition is fixed\n if (contentPosition === 'fixed' && !initialTransformRef.current && transform) {\n initialTransformRef.current = transform;\n }\n\n return (\n <div\n className={cx(styles.content, props.overlayClassName)}\n {...restProps}\n style={{\n ...restStyle,\n minWidth: getWidth(props.contentProps?.minWidth, targetRef, !props.contentProps?.minWidth),\n width: getWidth(props.contentProps?.width, targetRef),\n position: contentPosition,\n transform: contentPosition === 'fixed'\n ? initialTransformRef.current\n : transform\n }}\n onMouseOut={onMouseOutListener}\n onMouseOver={onMouseOverListener}\n tabIndex={show ? 0 : -1}\n >\n {props.content}\n </div>\n );\n }}\n </Overlay>\n </div>\n );\n});\n\nexport default Popover;\n","import { useEffect, useRef, useState } from 'react';\nimport { getClickAccessibilityProps } from '../../utils/accessibilityUtils';\nimport { PopoverProps } from './Popover.types';\nimport { getPlacement, handleInteraction } from './Popover.utils';\n\nconst usePresenter = (props: PopoverProps) => {\n const {\n target,\n action = 'Click',\n content,\n offset,\n onHide,\n onOpen,\n alignment,\n direction,\n hideOnClickAway = true,\n show: defaultShow = false,\n contentProps,\n disabled,\n keepContentOnItemClick = false,\n flip,\n className,\n container,\n overlayClassName,\n contentPosition = 'absolute',\n ...otherProps\n } = props;\n\n // Refs for the popover container and target elements\n const containerRef = useRef<HTMLDivElement>(null);\n const targetRef = useRef<HTMLDivElement>(null);\n\n // State to manage the visibility of the popover\n const [show, setShow] = useState<boolean>(defaultShow);\n\n // ref to store the initial transform when position is fixed for content\n const initialTransformRef = useRef<string | undefined>();\n\n // Cleanup effect to ensure onHide callback is called when the popover is unmounted\n useEffect(() => {\n if (show && onOpen) {\n onOpen();\n }\n\n return () => {\n // Notify onHide callback if the popover is visible upon unmounting\n if (show && onHide) {\n onHide();\n }\n };\n }, [show, onHide, onOpen]);\n\n // Set initial show state based on defaultShow prop if action is not provided\n useEffect(() => {\n if (defaultShow !== undefined && !action) {\n setShow(defaultShow);\n }\n }, [defaultShow, action]);\n\n // Calculate placement using utility function\n const placement = getPlacement(alignment, direction);\n\n // Handle hide event \n const handleOnHide = () => {\n setShow(false);\n if (onHide) {\n onHide();\n }\n };\n\n const onClickListener = action === 'Click' ? () => !keepContentOnItemClick && handleInteraction(action, show, setShow, 'Click', undefined, disabled) : undefined;\n const onDoubleClickListener = action === 'DoubleClick' ? () => !keepContentOnItemClick && handleInteraction(action, show, setShow, 'DoubleClick', undefined, disabled) : undefined;\n\n const onMouseOutListener = action === 'Hover' ? () => handleInteraction(action, show, setShow, 'Hover', false, disabled) : undefined;\n const onMouseOverListener = action === 'Hover' ? () => handleInteraction(action, show, setShow, 'Hover', true, disabled) : undefined;\n\n const popoverAccessibilityProps = !keepContentOnItemClick ? getClickAccessibilityProps({\n actions: {\n onClick: action === 'Click' ? onClickListener : onDoubleClickListener,\n },\n addIndex: !keepContentOnItemClick,\n }) : {};\n\n const targetOnClickListener = () => keepContentOnItemClick && handleInteraction(action, show, setShow, 'Click', undefined, disabled);\n const targetOnDoubleClickListener = () => keepContentOnItemClick && handleInteraction(action, show, setShow, 'DoubleClick', undefined, disabled);\n\n const targetAccessibilityProps = keepContentOnItemClick ? getClickAccessibilityProps({\n actions: {\n onClick: action === 'Click' ? targetOnClickListener : targetOnDoubleClickListener,\n },\n addIndex: keepContentOnItemClick,\n }) : {};\n\n const openPopover = () => {\n setShow(true);\n };\n\n return {\n show,\n offset,\n placement,\n handleOnHide,\n openPopover,\n containerRef,\n targetRef,\n initialTransformRef,\n action,\n hideOnClickAway,\n defaultShow,\n keepContentOnItemClick,\n contentPosition,\n onClickListener,\n onDoubleClickListener,\n onMouseOutListener,\n onMouseOverListener,\n targetOnClickListener,\n targetOnDoubleClickListener,\n popoverAccessibilityProps,\n targetAccessibilityProps,\n otherProps,\n };\n}\nexport default usePresenter;","import React from 'react';\nimport { RadioButtonProps } from '../../atoms';\n\nexport const injectRadioButtonProps = (\n children: React.ReactElement<RadioButtonProps> | React.ReactElement<RadioButtonProps>[],\n value?: string | number,\n onValueChange?: (value: string | number) => void,\n) => {\n return React.Children.map(children,(child) => {\n const originalOnChange = child.props.onChange;\n return React.cloneElement(child, {\n checked: value !== undefined && child.props.value === value,\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => {\n const isChecked = event.target.checked;\n if (isChecked) {\n onValueChange?.(child.props.value || '');\n }\n originalOnChange?.(event);\n },\n });\n });\n};","import React, { createContext, useContext, useState, useCallback } from 'react';\nimport { FieldValue } from '../../organisms';\nimport { useControlledValue } from '../FormField/useControlledValue';\nimport type { SelectContextType, SelectProviderProps } from './Select.types';\nimport { handleSelectionChange, hasValue } from './Select.utils';\n\n// Initial context value for SelectContext\nconst selectContextInitialValue: SelectContextType = {\n selectedValue: '', // Initial selected value is empty string\n updateSelectedValue: () => { }, // function for updating selected value\n resetSelectedValue: () => { }, // function for resetting selected value\n registerOption: () => { }, // function for registering option labels\n getDisplayLabel: () => undefined, // function for getting display labels\n};\n\n// Create a context instance for Select component\nconst SelectContext = createContext<SelectContextType>(selectContextInitialValue);\n\n/**\n * Custom hook to use the SelectContext values.\n * Throws an error if used outside of a SelectProvider.\n *\n * @throws Error if used outside of SelectProvider.\n * @returns Context values of type SelectContextType.\n */\nexport const useSelectContext = (): SelectContextType => {\n const context = useContext(SelectContext);\n if (!context) {\n throw new Error('useSelectContext must be used within a SelectProvider');\n }\n return context;\n};\n\n/**\n * Provider component for managing state and providing context to Select components.\n * Manages the selected value state and provides methods to update or reset it.\n *\n * @param props - Props for configuring the SelectProvider.\n * @returns JSX element that provides context to its children.\n */\nexport const SelectProvider = ({\n children,\n value = '',\n multiple = false,\n disabled,\n invalid,\n onValueChange,\n closeSelectOptions,\n}: SelectProviderProps) => {\n\n const { value: selectedValue, onValueChange: handleValueChange } = useControlledValue<FieldValue>({ value, onValueChange, defaultValue: '' });\n\n // Store option labels in state to trigger re-renders when options register\n const [optionLabels, setOptionLabels] = useState<Map<string, React.ReactNode>>(new Map());\n\n /**\n * Registers an option's value-label pair.\n */\n const registerOption = useCallback((optionValue: FieldValue, label: React.ReactNode): void => {\n const key = String(optionValue);\n setOptionLabels(prev => {\n const newMap = new Map(prev);\n newMap.set(key, label);\n return newMap;\n });\n }, []);\n\n /**\n * Gets the display label for a value.\n */\n const getDisplayLabel = useCallback((optionValue: FieldValue): React.ReactNode | undefined => {\n if (Array.isArray(optionValue)) {\n if (optionValue.length === 0) {\n return undefined\n };\n\n if (optionValue.length >= 2) {\n return `${optionValue.length} items selected`;\n }\n\n const key = String(optionValue[0]);\n return optionLabels.get(String(key));\n }\n\n const key = String(optionValue);\n return optionLabels.get(key);\n }, [optionLabels]);\n\n /**\n * Updates the selected value based on the new value.\n * Handles multiple selections if enabled.\n *\n * @param newValue - The new value to be selected.\n */\n const updateSelectedValue = (newValue: string | number): void => {\n const currentSelection = handleSelectionChange(newValue, value, multiple);\n handleValueChange(currentSelection);\n if (!multiple && closeSelectOptions) {\n closeSelectOptions();\n }\n };\n\n /**\n * Resets the selected value to default or undefined.\n * Triggers the onValueChanged callback with default or undefined.\n */\n const resetSelectedValue = (): void => {\n const resetValue = value && hasValue(value) ? value : '';\n onValueChange?.(resetValue);\n if (!multiple && closeSelectOptions) {\n closeSelectOptions();\n }\n };\n\n return (\n <SelectContext.Provider\n value={{\n selectedValue: selectedValue ?? '',\n updateSelectedValue,\n resetSelectedValue,\n registerOption,\n getDisplayLabel,\n disabledField: disabled,\n invalidField: invalid,\n }}\n >\n {children}\n </SelectContext.Provider>\n );\n};\n","import React from 'react';\nimport { FieldValue } from '../../organisms/Form/Form.types';\n\n\n/**\n * Utility function to check if a given value has content.\n * - If the value is an array, it returns true if the array has elements, otherwise false.\n * - If the value is not an array, it returns the value itself.\n *\n * @param {FieldValue} value - The value to check. Can be a string, number, string array, or undefined.\n * @returns {boolean | FieldValue} - Returns true if the value is a non-empty array, otherwise returns the value itself.\n */\nexport const hasValue = (value: FieldValue): boolean | FieldValue => {\n // Check if the value is an array\n if (Array.isArray(value)) {\n // Return true if the array has elements, otherwise false\n return value.length > 0;\n }\n // If the value is not an array, return the value itself\n return value;\n};\n\n/**\n * Returns the selected value in an appropriate format.\n *\n * @param selected - The selected value, which can be a string, number, or an array of strings or numbers.\n * @param defaultValue - The default value to return if no selected value is provided. Default is an empty string.\n * @param labelMap - Optional map of values to labels for displaying custom text.\n * @returns The selected value if it exists, formatted as a string or number, or the default value.\n */\nexport const getSelectedValue = (\n selected: FieldValue, \n defaultValue: string = '', \n labelMap?: Map<string, React.ReactNode>\n): string | React.ReactNode | undefined => {\n if (!selected) return defaultValue;\n\n // Return the selected value directly if it is a string or number\n if (typeof selected === 'string' || typeof selected === 'number') {\n const key = String(selected);\n return labelMap?.get(key) || selected;\n }\n\n // If the selected value is an array\n if (Array.isArray(selected) && hasValue(selected)) {\n const [firstItem, ...rest] = selected;\n const key = String(firstItem);\n const firstLabel = labelMap?.get(key) || key;\n return rest.length === 0 ? firstLabel : `${firstLabel} + ${rest.length}`; // Format based on array length\n }\n\n return defaultValue;\n};\n\n/**\n * Utility function to handle changes to the selected value in a Select component.\n * @param newValue The new value to be selected or deselected.\n * @param Values The current selected value(s).\n * @param multiple Flag to indicate if multiple selections are allowed.\n * @returns The updated selected option(s).\n */\nexport const handleSelectionChange = (\n newValue: string | number,\n selectedValue: FieldValue,\n multiple?: boolean,\n defaultValue?: FieldValue,\n hasDefaultOption?: boolean,\n): FieldValue => {\n let currentSelection: FieldValue;\n\n // Check if multiple selections are allowed and the current selection is an array.\n if (multiple) {\n if (Array.isArray(selectedValue)) {\n // If the new value is already in the selection, remove it.\n if (selectedValue.includes(String(newValue))) {\n currentSelection = selectedValue.filter((item) => item !== newValue);\n } else {\n // If the new value is not in the selection, add it.\n currentSelection = [...selectedValue, String(newValue)];\n }\n } else {\n currentSelection = [String(newValue)];\n }\n\n } else {\n // For single selection mode, toggle the selection.\n const isValueUpdated = newValue !== selectedValue;\n const fallBackValue = hasDefaultOption ? (defaultValue || '') : newValue;\n currentSelection = isValueUpdated ? newValue : fallBackValue;\n }\n\n return currentSelection;\n};\n\n/**\n * Utility function to determine if an option is selected.\n * @param optionValue The value of the option to check.\n * @param Values The currently selected value.\n * @returns Whether the option is selected or not.\n */\nexport const checkIsSelected = (optionValue?: string, selectedValue?: FieldValue) => {\n if (selectedValue === undefined) return false;\n if (optionValue && Array.isArray(selectedValue)) {\n return selectedValue.includes(optionValue);\n }\n return optionValue === selectedValue;\n};\n\n","import cx from 'classnames';\nimport React, { cloneElement, forwardRef, useRef, useMemo, useEffect } from 'react';\nimport { Icon } from '../../atoms';\nimport Button from '../../atoms/Button';\nimport Text from '../../atoms/Text';\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport Popover, { PopoverHandle } from '../Popover';\nimport optionStyle from './Option/Option.module.scss';\nimport { SelectProvider } from './Select.Context';\nimport styles from './Select.module.scss';\nimport usePresenter from './Select.presenter';\nimport type { SelectProps, SelectViewProps } from './Select.types';\n\n/**\n * Select component for displaying a dropdown with options.\n * Uses Popover for the dropdown functionality.\n *\n * @param props - Props for configuring the Select component.\n * @returns Element representing the select.\n */\nconst SelectComponent = forwardRef<PopoverHandle, SelectViewProps>((props, ref) => {\n const {\n variantProps,\n isOpen,\n selectedValue,\n resetSelectedValue,\n triggerProps,\n expandIcon,\n SelectedView,\n placeholder,\n leadingIcon,\n disabled,\n hasDefaultOption,\n menuProps,\n popoverOffset,\n onOptionsOpen,\n onOptionsClose,\n displayValue,\n multiple,\n } = usePresenter(props);\n\n const expandIconView = (\n <div className={cx(styles.expandIcon, {\n [styles.collapseIcon]: isOpen,\n })}>\n <ConditionalView condition={expandIcon}>\n {expandIcon}\n </ConditionalView>\n <ConditionalView condition={!expandIcon}>\n <Icon\n icon='ExpandMore'\n style='Filled'\n size='Small'\n />\n </ConditionalView>\n </div>\n );\n\n const selectedComponent = (\n <>\n <ConditionalView condition={Boolean(SelectedView && selectedValue)}>\n {SelectedView && <SelectedView selectedValue={selectedValue} />}\n </ConditionalView>\n <ConditionalView condition={!(SelectedView && selectedValue)}>\n <Text className={cx(styles.title)} weight={'Regular'} type='BodySmall'>\n {displayValue}\n </Text>\n </ConditionalView>\n </>\n );\n\n // Function to render the select trigger\n const selectTrigger = (\n <>\n <Button\n {...triggerProps}\n className={cx(styles.trigger)}\n leadingIcon={leadingIcon}\n trailingIcon={expandIconView}\n disabled={disabled}\n {...variantProps}\n >\n {selectedComponent}\n </Button>\n\n {/* Hidden render of children to register options immediately */}\n <div style={{ display: 'none' }}>\n {props.children}\n </div>\n </>\n );\n\n // Function to render the options\n const options = (\n <ul className={cx(styles.options)} >\n <ConditionalView condition={hasDefaultOption}>\n <li className={cx(optionStyle.option)} onClick={resetSelectedValue}>\n <Text weight={'Regular'} type='BodySmall'>{placeholder}</Text>\n </li>\n </ConditionalView>\n {Array.isArray(props.children) ? (\n props.children.map((child, index) => cloneElement(child, { key: index, closeSelectOptions: onOptionsClose }))\n ) : (\n cloneElement(props.children, { closeSelectOptions: onOptionsClose })\n )}\n </ul>\n );\n\n return (\n <Popover\n ref={ref}\n {...triggerProps}\n className={cx(styles.select, props.className)}\n target={selectTrigger}\n content={options}\n show={isOpen}\n onOpen={onOptionsOpen}\n onHide={onOptionsClose}\n direction='Down'\n alignment='Start'\n action='Click'\n offset={popoverOffset}\n contentProps={menuProps}\n disabled={disabled}\n keepContentOnItemClick={multiple}\n {...variantProps}\n />\n );\n});\n\n/**\n * Select component that wraps SelectComponent with SelectProvider.\n * Provides state management and context to SelectComponent.\n *\n * @param props - Props for configuring the Select component.\n * @returns JSX element that renders the SelectComponent wrapped with SelectProvider.\n */\nconst Select = (props: SelectProps): JSX.Element => {\n const {\n value,\n multiple,\n disabled,\n onValueChange,\n hasDefaultOption,\n invalid,\n ...restProps\n } = props;\n\n const popoverOverRef = useRef<PopoverHandle>(null);\n\n const closeSelectOptions = () => {\n popoverOverRef.current?.close();\n };\n\n return (\n <SelectProvider\n value={value}\n multiple={multiple}\n disabled={disabled}\n invalid={invalid}\n onValueChange={onValueChange}\n hasDefaultOption={hasDefaultOption}\n closeSelectOptions={closeSelectOptions}\n >\n <SelectComponent\n ref={popoverOverRef}\n {...restProps}\n multiple={multiple || false}\n hasDefaultOption={hasDefaultOption}\n />\n </SelectProvider>\n );\n};\n\nexport default Select;\n","import { useEffect, useMemo, useState } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { useSelectContext } from './Select.Context';\nimport { SelectProps } from './Select.types';\n\nconst usePresenter = (props: SelectProps) => {\n const {\n placeholder,\n defaultOpen = false,\n leadingIcon,\n expandIcon,\n state = 'Default',\n menuProps,\n multiple,\n hasDefaultOption,\n className,\n children,\n selectedView: SelectedView,\n popoverOffset = [0, 2],\n ...restProps\n } = props;\n\n const { selectedValue, resetSelectedValue, disabledField, invalidField, getDisplayLabel } = useSelectContext();\n\n const [isOpen, setIsOpen] = useState(defaultOpen);\n\n useEffect(() => {\n setIsOpen(defaultOpen);\n }, [defaultOpen]);\n\n const onOptionsOpen = () => {\n if (!disabledField) {\n setIsOpen(true);\n }\n };\n\n const onOptionsClose = () => {\n setIsOpen(false);\n };\n\n const variantProps = useBuildVariantProps(\n 'select',\n {\n type: multiple ? 'multi-select' : 'single-select',\n },\n {\n disabled: disabledField,\n invalid: invalidField || state === 'Error',\n },\n );\n\n const displayValue = useMemo(() => {\n const label = getDisplayLabel(selectedValue);\n return label || placeholder;\n }, [selectedValue, placeholder, getDisplayLabel]);\n\n return {\n menuProps,\n popoverOffset,\n hasDefaultOption,\n leadingIcon,\n disabled: disabledField,\n placeholder,\n SelectedView,\n expandIcon,\n variantProps,\n isOpen,\n selectedValue,\n resetSelectedValue,\n triggerProps: restProps,\n onOptionsOpen,\n onOptionsClose,\n displayValue,\n multiple,\n };\n};\n\nexport default usePresenter;\n","import { ChipProps } from '../../atoms/Chip/Chip.types';\nimport { CheckboxItemProps } from '../../atoms/CheckboxItem/CheckboxItem.types';\nimport { OptionLike, OptionLikeKey } from './ChipInput.types';\n\n/**\n * Normalizes string array or OptionLike array to OptionLike array\n */\nexport const normalizeToOptionLike = (options: string[] | OptionLike[]): OptionLike[] => {\n if (!options || options.length === 0) return [];\n \n // Check if first item is OptionLike (has key and label properties)\n const firstOption = options[0];\n if (typeof firstOption === 'object' && 'key' in firstOption && 'label' in firstOption) {\n return options as OptionLike[];\n }\n \n // Convert strings to OptionLike\n return (options as string[]).map(option => ({\n key: option,\n label: option,\n }));\n};\n\n/**\n * Normalizes string array or OptionLike array to OptionLikeKey array\n */\nexport const normalizeToOptionLikeKey = (options: string[] | OptionLike[]): OptionLikeKey[] => {\n return normalizeToOptionLike(options).map(option => option.key);\n};\n\n/**\n * Creates chip props for a selected value using OptionLike\n */\nexport const createChipProps = (\n option: OptionLike,\n onRemove: (key: OptionLikeKey) => void,\n className?: string\n): ChipProps => ({\n children: option.label,\n isDismissible: true,\n onClose: () => onRemove(option.key),\n style: 'F',\n size: 'Small',\n type: 'Subdued',\n corner: 'Squared',\n className,\n});\n\n/**\n * Creates checkbox item props for context menu options using OptionLike\n */\nexport const createCheckboxItemProps = (\n option: OptionLike,\n isChecked: boolean,\n onSelect: (key: OptionLikeKey) => void,\n className?: string\n): CheckboxItemProps => ({\n id: String(option.key),\n children: option.label,\n className,\n onValueChange: () => onSelect(option.key),\n checked: isChecked,\n labelAlignment: 'Right',\n});\n\n/**\n * Toggles an option key in the selected keys array\n */\nexport const toggleOptionInArray = (\n selectedKeys: OptionLikeKey[],\n optionKey: OptionLikeKey\n): OptionLikeKey[] => {\n if (!selectedKeys.includes(optionKey)) {\n return [...selectedKeys, optionKey];\n }\n return selectedKeys.filter(key => key !== optionKey);\n};\n\n/**\n * Adds a new OptionLike to available options if it doesn't exist\n */\nexport const addUniqueOption = (\n availableOptions: OptionLike[],\n newOption: OptionLike\n): OptionLike[] => {\n const exists = availableOptions.some(option => option.key === newOption.key);\n if (!exists) {\n return [...availableOptions, newOption];\n }\n return availableOptions;\n};\n\n/**\n * Handles Enter key press for adding new chips\n */\nexport const handleEnterKeyForChip = (\n event: React.KeyboardEvent<HTMLInputElement>,\n inputValue: string,\n onAddChip: (value: string) => void,\n onClearInput: () => void\n): void => {\n if (event.key === \"Enter\") {\n event.preventDefault();\n const trimmedValue = inputValue.trim();\n if (trimmedValue) {\n onAddChip(trimmedValue);\n onClearInput();\n }\n }\n};\n\n/**\n * Finds an OptionLike by its key\n */\nexport const findOptionByKey = (\n options: OptionLike[],\n key: OptionLikeKey\n): OptionLike | undefined => {\n return options.find(option => option.key === key);\n};\n\n/**\n * Converts OptionLikeKey array back to original format (string[] or OptionLike[])\n */\nexport const convertKeysToOriginalFormat = <T extends string[] | OptionLike[]>(\n keys: OptionLikeKey[],\n originalValue: T | undefined,\n availableOptions: OptionLike[]\n): T => {\n // If no original value, default to string[] format\n if (!originalValue || originalValue.length === 0) {\n return keys as T;\n }\n \n // Check if original was OptionLike[]\n const firstItem = originalValue[0];\n if (typeof firstItem === 'object' && 'key' in firstItem && 'label' in firstItem) {\n // Convert back to OptionLike[]\n return keys.map(key => findOptionByKey(availableOptions, key)).filter(Boolean) as T;\n } else {\n // Convert back to string[]\n return keys as T;\n }\n};\n\n/**\n * Filters options by input value for search functionality\n */\nexport const filterOptionsByInput = (options: OptionLike[], inputValue: string): OptionLike[] => {\n if (!inputValue.trim()) return options;\n const searchTerm = inputValue.toLowerCase();\n return options.filter(option => \n option.label.toLowerCase().includes(searchTerm)\n );\n};\n\n/**\n * Creates an optimistic item for async operations\n */\nexport const createOptimisticItem = (value: string): OptionLike => ({\n key: `temp-${Date.now()}`,\n label: value\n});\n\n/**\n * Adds a key to selected keys array\n */\nexport const addKeyToSelection = (\n selectedKeys: OptionLikeKey[],\n keyToAdd: OptionLikeKey\n): OptionLikeKey[] => {\n if (selectedKeys.includes(keyToAdd)) return selectedKeys;\n return [...selectedKeys, keyToAdd];\n};\n\n/**\n * Removes a key from selected keys array\n */\nexport const removeKeyFromSelection = (\n selectedKeys: OptionLikeKey[],\n keyToRemove: OptionLikeKey\n): OptionLikeKey[] => {\n return selectedKeys.filter(key => key !== keyToRemove);\n};\n\n/**\n * Replaces a temporary key with a real key in selected keys array\n */\nexport const replaceKeyInSelection = (\n selectedKeys: OptionLikeKey[],\n oldKey: OptionLikeKey,\n newKey: OptionLikeKey\n): OptionLikeKey[] => {\n return selectedKeys.map(key => key === oldKey ? newKey : key);\n};\n\n/**\n * Handles async add item operation with optimistic updates\n */\nexport const handleAsyncAddItem = async (\n inputValue: string,\n onAddItem: (value: string) => Promise<OptionLike>,\n currentOptions: OptionLike[],\n currentSelectedKeys: OptionLikeKey[],\n setOptions: (options: OptionLike[]) => void,\n setSelectedKeys: (keys: OptionLikeKey[]) => void\n): Promise<void> => {\n const tempOption = createOptimisticItem(inputValue);\n \n // Optimistic updates\n setOptions(addUniqueOption(currentOptions, tempOption));\n setSelectedKeys(addKeyToSelection(currentSelectedKeys, tempOption.key));\n \n try {\n const realOption = await onAddItem(inputValue);\n // Replace temp with real\n setOptions(currentOptions.map(opt => opt.key === tempOption.key ? realOption : opt));\n setSelectedKeys(replaceKeyInSelection(currentSelectedKeys, tempOption.key, realOption.key));\n } catch (error) {\n // Revert optimistic changes\n setOptions(currentOptions.filter(opt => opt.key !== tempOption.key));\n setSelectedKeys(removeKeyFromSelection(currentSelectedKeys, tempOption.key));\n throw error; // Re-throw for caller to handle\n }\n};","import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { useControlledValue } from '../FormField/useControlledValue';\nimport styles from './ChipInput.module.scss';\nimport { ChipInputProps } from './ChipInput.types';\nimport { ChipProps } from '../../atoms/Chip/Chip.types';\nimport { createChipProps, createCheckboxItemProps, toggleOptionInArray, addUniqueOption, handleEnterKeyForChip, normalizeToOptionLike, findOptionByKey, normalizeToOptionLikeKey, convertKeysToOriginalFormat, filterOptionsByInput, createOptimisticItem } from './ChipInput.utils';\nimport { OptionLike, OptionLikeKey } from './ChipInput.types';\n\nconst usePresenter = <T extends string[] | OptionLike[]>(props: ChipInputProps<T>) => {\n const {\n inputValue: controlledInputValue,\n onInputChange,\n options,\n onValueChange,\n value: controlledValues,\n disabled = false,\n invalid = false,\n onAddItem,\n onDeleteItem,\n } = props;\n // Normalizes options by converting strings to OptionLike objects\n const normalizedOptions = useMemo(() => normalizeToOptionLike(options || []), [options]);\n // Normalizes values by converting keys to OptionLike objects\n const normalizedValues = useMemo(() => normalizeToOptionLikeKey(controlledValues ?? []), [controlledValues]);\n \n // Internal state for options\n const [internalOptions, setInternalOptions] = useState<OptionLike[]>(normalizedOptions);\n // Internal state for input value\n const [internalInputValue, setInternalInputValue] = useState<string>('');\n\n // Internal state for selected keys\n const { value: internalSelectedKeys, onValueChange: setInternalSelectedKeys } = useControlledValue<OptionLikeKey[]>({ \n value: normalizedValues, \n onValueChange: (keys) => {\n // Converts keys to original format and calls onValueChange\n if (onValueChange) {\n const originalFormat = convertKeysToOriginalFormat(keys, controlledValues, internalOptions);\n onValueChange(originalFormat);\n }\n }, \n defaultValue: [],\n });\n\n // Update internal options when props.options change\n useEffect(() => {\n setInternalOptions(normalizedOptions);\n }, [normalizedOptions]);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputValue = controlledInputValue ?? internalInputValue;\n \n const handleInputValueChange = useCallback((value: string) => {\n if (onInputChange) {\n onInputChange(value);\n } else {\n setInternalInputValue(value);\n }\n }, [onInputChange]);\n\n // Always filter options based on input value\n const filteredOptions = useMemo(() => {\n return filterOptionsByInput(internalOptions, inputValue);\n }, [internalOptions, inputValue]);\n\n /**\n * Handle option click\n */\n const handleSelect = useCallback((selectedOptionKey: OptionLikeKey) => {\n setInternalSelectedKeys(prev => {\n return toggleOptionInArray(prev || [], selectedOptionKey);\n });\n }, [setInternalSelectedKeys]);\n\n /**\n * Handle add new option with async support\n */\n const handleAddNewOption = useCallback(async (inputValue: string) => {\n // Use onAddItem (async) if available\n if (onAddItem) {\n // Async operation with optimistic update\n const tempOption = createOptimisticItem(inputValue);\n \n // Add temp option to internal options\n setInternalOptions(prev => {\n const updated = addUniqueOption(prev, tempOption);\n return updated;\n });\n \n // Add temp option to internal selected keys\n setInternalSelectedKeys(prev => {\n const updated = prev ? [...prev, tempOption.key] : [tempOption.key];\n return updated;\n });\n \n try {\n const realOption = await onAddItem(inputValue);\n \n // Update internal options with real option\n setInternalOptions(prev => {\n const updated = prev.map(opt => opt.key === tempOption.key ? realOption : opt);\n return updated;\n });\n \n // Update internal selected keys with real option key\n setInternalSelectedKeys(prev => {\n const updated = (prev || []).map(key => key === tempOption.key ? realOption.key : key);\n return updated;\n });\n } catch (error) {\n // Delete temp option if error occurs\n if (onDeleteItem) {\n await onDeleteItem(tempOption.key);\n }\n \n // Remove temp option on error\n setInternalOptions(prev => {\n const updated = prev.filter(opt => opt.key !== tempOption.key);\n return updated;\n });\n \n // Remove temp option from internal selected keys\n setInternalSelectedKeys(prev => {\n const updated = (prev || []).filter(key => key !== tempOption.key);\n return updated;\n });\n }\n } else {\n // Create default OptionLike from input value\n const newOption: OptionLike = { key: inputValue, label: inputValue };\n \n // Add new option to internal options\n setInternalOptions((prev) => {\n const updated = addUniqueOption(prev, newOption);\n return updated;\n });\n \n // Add new option to internal selected keys\n setInternalSelectedKeys(prev => {\n const updated = [...(prev || []), newOption.key];\n return updated;\n });\n }\n }, [onAddItem, onDeleteItem, setInternalOptions, setInternalSelectedKeys]);\n\n /**\n * Enhanced key handler with backspace deletion and enter for adding\n */\n const handleKeyDown = useCallback((event: React.KeyboardEvent<HTMLInputElement>) => {\n // Backspace deletion: remove last chip when input is empty\n if (event.key === 'Backspace' && !inputValue.trim() && internalSelectedKeys?.length) {\n const lastKey = internalSelectedKeys[internalSelectedKeys.length - 1];\n removeChip(lastKey);\n return;\n }\n \n // Enter key: add new item\n handleEnterKeyForChip(\n event,\n inputValue,\n (trimmedValue) => {\n // Check if option already exists\n const existingOption = internalOptions.find(opt => opt.key === trimmedValue || opt.label === trimmedValue);\n let optionKey: OptionLikeKey;\n \n if (existingOption) {\n optionKey = existingOption.key;\n // Add to selected values if not already selected\n setInternalSelectedKeys((prev) => {\n if (prev?.includes(optionKey)) {\n return prev;\n }\n return [...(prev || []), optionKey];\n });\n } else {\n // Add new option. it will be added to internal options and internal selected keys\n handleAddNewOption(trimmedValue);\n }\n },\n () => setInternalInputValue('')\n );\n }, [inputValue, internalOptions, handleAddNewOption, setInternalSelectedKeys, internalSelectedKeys]);\n\n /**\n * Handle removing a selected option\n */\n const removeChip = useCallback((keyToRemove: OptionLikeKey) => {\n setInternalSelectedKeys((prev) => {\n const newKeys = (prev || []).filter(key => key !== keyToRemove);\n return newKeys;\n });\n }, [setInternalSelectedKeys]);\n\n /**\n * Prepare chip data only\n */\n const chips = useMemo(() => {\n if (internalSelectedKeys) {\n return internalSelectedKeys.map((key): ChipProps => {\n const option = findOptionByKey(internalOptions, key);\n if (option) {\n return createChipProps(option, removeChip, styles.chip);\n }\n // Fallback if option not found (shouldn't happen but for safety)\n return createChipProps({ key, label: String(key) }, removeChip, styles.chip);\n });\n }\n return [];\n }, [internalSelectedKeys, internalOptions, removeChip]);\n \n /**\n * This is to focus in the input when chip input is clicked\n */\n const handleChipInputAreaClick = useCallback(() => {\n inputRef.current?.focus();\n }, [inputRef]);\n\n /**\n * Prepare option list for Chip Input Context Menu using filtered options\n */\n const optionList = useMemo(() => {\n if (filteredOptions) {\n return filteredOptions.map((option) => {\n const isChecked = internalSelectedKeys?.includes(option.key) ?? false;\n return createCheckboxItemProps(option, isChecked, handleSelect, styles.checkboxItem);\n });\n }\n return [];\n }, [filteredOptions, internalSelectedKeys, handleSelect]);\n\n /**\n * Prepare variant props for Chip Input\n */\n const variantProps = useBuildVariantProps(\n 'chip-input',\n {},\n {\n disabled,\n invalid,\n },\n );\n\n return {\n handleChipInputAreaClick,\n handleKeyDown,\n inputValue,\n onValueChange: handleInputValueChange,\n chips,\n inputRef,\n optionList,\n variantProps,\n disabled\n };\n};\n\nexport default usePresenter;","import cx from 'classnames';\nimport { forwardRef } from 'react';\n\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport { Input, Icon, IconButton, Button } from '../../atoms';\nimport styles from './Search.module.scss';\nimport usePresenter from './Search.presenter';\nimport type { SearchProps } from './Search.types';\n\n/**\n * Search component with auto and manual search modes\n * \n * @param props - The search component props\n * @param ref - Forward ref to the input element\n * @returns Search component\n */\nconst Search = forwardRef<HTMLInputElement, SearchProps>((props: SearchProps, ref) => {\n const {\n showSubmitButton = true,\n showClearButton = true,\n className,\n } = props;\n\n const {\n controlledValue,\n isSearching,\n searchDisabled,\n handleInputChange,\n handleSubmit,\n handleClear,\n handleKeyDown,\n showClearButton: shouldShowClearButton,\n isAutoStyle,\n isButtonStyle,\n variantProps,\n restProps: inputProps,\n } = usePresenter(props);\n\n return (\n <div \n className={cx(styles.search, className)}\n {...variantProps}\n >\n <Input\n {...inputProps}\n ref={ref}\n className={styles.searchInput}\n value={controlledValue}\n onValueChange={handleInputChange}\n onKeyDown={handleKeyDown}\n leadingIcon={\n <ConditionalView condition={isAutoStyle}>\n <Icon\n className={styles.searchIcon}\n icon=\"Search\"\n style=\"Outlined\"\n size=\"Medium\"\n />\n </ConditionalView>\n }\n trailingIcon={\n <ConditionalView condition={shouldShowClearButton && showClearButton}>\n <IconButton\n className={styles.searchIcon}\n type=\"Ghost\"\n size=\"Small\"\n icon={<Icon icon=\"CloseDelete\" style=\"Outlined\" size=\"Small\" />}\n onClick={handleClear}\n disabled={isSearching}\n aria-label=\"Clear search\"\n />\n </ConditionalView>\n }\n placeholder={props.placeholder || 'Search...'}\n disabled={props.disabled || isSearching}\n />\n <ConditionalView condition={isButtonStyle && showSubmitButton}>\n <Button\n className={styles.searchButton}\n type=\"Ghost\"\n size=\"Small\"\n onClick={handleSubmit}\n disabled={searchDisabled}\n aria-label=\"Search\"\n >\n <Icon icon=\"Search\" style=\"Outlined\" size=\"Small\" />\n </Button>\n </ConditionalView>\n </div>\n );\n});\n\nexport default Search;","import { useCallback, useMemo, useRef, useState } from 'react';\nimport { SearchProps } from './Search.types';\nimport { useControlledValue } from '../FormField/useControlledValue';\nimport { useDebounce } from '../../utils/useDebounce';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\n/**\n * Custom hook that manages the search component logic and state\n * @param props - The search component props\n * @returns Object containing component state and handlers\n */\nconst useSearchPresenter = (props: SearchProps) => {\n // Destructure props with default values\n const {\n style = 'Auto',\n onSearch,\n debounceMs = 300,\n minCharacters = 1,\n loading = false,\n value,\n initialValue,\n onValueChange,\n 'component-variant': componentVariant,\n ...restProps\n } = props;\n\n // Handle controlled/uncontrolled value state\n const { value: controlledValue, onValueChange: handleValueChange } = useControlledValue({\n value,\n onValueChange,\n defaultValue: initialValue || '',\n });\n\n const isAutoStyle = useMemo(() => style === 'Auto', [style]);\n const isButtonStyle = useMemo(() => style === 'Button', [style]);\n\n // Track search loading state internally\n const [isSearching, setIsSearching] = useState(false);\n \n // Keep reference to last search query to prevent duplicate searches\n const lastSearchRef = useRef<string>('');\n\n /**\n * Executes the search callback and manages loading state\n * Prevents duplicate searches by comparing with last search query\n */\n const handleSearch = useCallback(async (query: string) => {\n // Skip if same query was already searched\n if (query === lastSearchRef.current) return;\n \n lastSearchRef.current = query;\n setIsSearching(true);\n \n try {\n await onSearch?.(query);\n } finally {\n setIsSearching(false);\n }\n }, [onSearch]);\n\n // Create debounced version of search for auto mode\n const { debouncedCallback: debouncedSearch, cancel: cancelDebounce } = useDebounce(\n handleSearch,\n debounceMs\n );\n\n /**\n * Handles input value changes and triggers search in auto mode\n * In auto mode: searches are debounced and only trigger when minimum characters are met\n * In manual mode: only updates the input value\n */\n const handleInputChange = useCallback((newValue: string) => {\n handleValueChange(newValue);\n\n // Only trigger search in auto mode\n if (isAutoStyle) {\n if (newValue.length >= minCharacters) {\n debouncedSearch(newValue);\n } else {\n // Cancel pending search if input is too short\n cancelDebounce();\n }\n }\n }, [isAutoStyle, minCharacters, debouncedSearch, cancelDebounce, handleValueChange]);\n\n /**\n * Handles manual search submission (for button clicks)\n * Only executes in manual mode when minimum characters requirement is met\n */\n const handleSubmit = useCallback(() => {\n if (isButtonStyle && controlledValue && controlledValue.length >= minCharacters) {\n handleSearch(controlledValue);\n }\n }, [isButtonStyle, controlledValue, minCharacters, handleSearch]);\n\n /**\n * Clears the search input and cancels any pending searches\n * Resets the last search reference to allow re-searching the same query\n */\n const handleClear = useCallback(() => {\n handleValueChange('');\n lastSearchRef.current = '';\n cancelDebounce();\n }, [handleValueChange, cancelDebounce]);\n\n /**\n * Handles keyboard events on the input\n * In manual mode: triggers search when Enter key is pressed\n */\n const handleKeyDown = useCallback((e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter' && isButtonStyle) {\n e.preventDefault();\n if (controlledValue && controlledValue.length >= minCharacters) {\n handleSearch(controlledValue);\n }\n }\n }, [isButtonStyle, controlledValue, minCharacters, handleSearch]);\n\n\n const variantProps = useBuildVariantProps(\n 'search',\n { \n style,\n type: controlledValue?.length ? 'Filled' : 'Default',\n },\n {\n disabled: props.disabled,\n invalid: props.invalid,\n },\n componentVariant\n );\n\n // Return all the values and handlers needed by the view component\n return {\n // Current input value (controlled by useControlledValue)\n controlledValue,\n // Combined loading state from internal search and external loading prop\n isSearching: isSearching || loading,\n // Disable search when loading or when input is empty\n searchDisabled: isSearching || loading || controlledValue?.length === 0,\n // Event handlers\n handleInputChange,\n handleSubmit,\n handleClear,\n handleKeyDown,\n // UI state flags\n showClearButton: controlledValue?.length,\n isAutoStyle,\n isButtonStyle,\n variantProps,\n // Remaining props to pass to Input component\n restProps,\n };\n};\n\nexport default useSearchPresenter;","export const COMMON_MIME_TYPES = new Map([\n // https://github.com/guzzle/psr7/blob/2d9260799e713f1c475d3c5fdc3d6561ff7441b2/src/MimeType.php\n ['1km', 'application/vnd.1000minds.decision-model+xml'],\n ['3dml', 'text/vnd.in3d.3dml'],\n ['3ds', 'image/x-3ds'],\n ['3g2', 'video/3gpp2'],\n ['3gp', 'video/3gp'],\n ['3gpp', 'video/3gpp'],\n ['3mf', 'model/3mf'],\n ['7z', 'application/x-7z-compressed'],\n ['7zip', 'application/x-7z-compressed'],\n ['123', 'application/vnd.lotus-1-2-3'],\n ['aab', 'application/x-authorware-bin'],\n ['aac', 'audio/x-acc'],\n ['aam', 'application/x-authorware-map'],\n ['aas', 'application/x-authorware-seg'],\n ['abw', 'application/x-abiword'],\n ['ac', 'application/vnd.nokia.n-gage.ac+xml'],\n ['ac3', 'audio/ac3'],\n ['acc', 'application/vnd.americandynamics.acc'],\n ['ace', 'application/x-ace-compressed'],\n ['acu', 'application/vnd.acucobol'],\n ['acutc', 'application/vnd.acucorp'],\n ['adp', 'audio/adpcm'],\n ['aep', 'application/vnd.audiograph'],\n ['afm', 'application/x-font-type1'],\n ['afp', 'application/vnd.ibm.modcap'],\n ['ahead', 'application/vnd.ahead.space'],\n ['ai', 'application/pdf'],\n ['aif', 'audio/x-aiff'],\n ['aifc', 'audio/x-aiff'],\n ['aiff', 'audio/x-aiff'],\n ['air', 'application/vnd.adobe.air-application-installer-package+zip'],\n ['ait', 'application/vnd.dvb.ait'],\n ['ami', 'application/vnd.amiga.ami'],\n ['amr', 'audio/amr'],\n ['apk', 'application/vnd.android.package-archive'],\n ['apng', 'image/apng'],\n ['appcache', 'text/cache-manifest'],\n ['application', 'application/x-ms-application'],\n ['apr', 'application/vnd.lotus-approach'],\n ['arc', 'application/x-freearc'],\n ['arj', 'application/x-arj'],\n ['asc', 'application/pgp-signature'],\n ['asf', 'video/x-ms-asf'],\n ['asm', 'text/x-asm'],\n ['aso', 'application/vnd.accpac.simply.aso'],\n ['asx', 'video/x-ms-asf'],\n ['atc', 'application/vnd.acucorp'],\n ['atom', 'application/atom+xml'],\n ['atomcat', 'application/atomcat+xml'],\n ['atomdeleted', 'application/atomdeleted+xml'],\n ['atomsvc', 'application/atomsvc+xml'],\n ['atx', 'application/vnd.antix.game-component'],\n ['au', 'audio/x-au'],\n ['avi', 'video/x-msvideo'],\n ['avif', 'image/avif'],\n ['aw', 'application/applixware'],\n ['azf', 'application/vnd.airzip.filesecure.azf'],\n ['azs', 'application/vnd.airzip.filesecure.azs'],\n ['azv', 'image/vnd.airzip.accelerator.azv'],\n ['azw', 'application/vnd.amazon.ebook'],\n ['b16', 'image/vnd.pco.b16'],\n ['bat', 'application/x-msdownload'],\n ['bcpio', 'application/x-bcpio'],\n ['bdf', 'application/x-font-bdf'],\n ['bdm', 'application/vnd.syncml.dm+wbxml'],\n ['bdoc', 'application/x-bdoc'],\n ['bed', 'application/vnd.realvnc.bed'],\n ['bh2', 'application/vnd.fujitsu.oasysprs'],\n ['bin', 'application/octet-stream'],\n ['blb', 'application/x-blorb'],\n ['blorb', 'application/x-blorb'],\n ['bmi', 'application/vnd.bmi'],\n ['bmml', 'application/vnd.balsamiq.bmml+xml'],\n ['bmp', 'image/bmp'],\n ['book', 'application/vnd.framemaker'],\n ['box', 'application/vnd.previewsystems.box'],\n ['boz', 'application/x-bzip2'],\n ['bpk', 'application/octet-stream'],\n ['bpmn', 'application/octet-stream'],\n ['bsp', 'model/vnd.valve.source.compiled-map'],\n ['btif', 'image/prs.btif'],\n ['buffer', 'application/octet-stream'],\n ['bz', 'application/x-bzip'],\n ['bz2', 'application/x-bzip2'],\n ['c', 'text/x-c'],\n ['c4d', 'application/vnd.clonk.c4group'],\n ['c4f', 'application/vnd.clonk.c4group'],\n ['c4g', 'application/vnd.clonk.c4group'],\n ['c4p', 'application/vnd.clonk.c4group'],\n ['c4u', 'application/vnd.clonk.c4group'],\n ['c11amc', 'application/vnd.cluetrust.cartomobile-config'],\n ['c11amz', 'application/vnd.cluetrust.cartomobile-config-pkg'],\n ['cab', 'application/vnd.ms-cab-compressed'],\n ['caf', 'audio/x-caf'],\n ['cap', 'application/vnd.tcpdump.pcap'],\n ['car', 'application/vnd.curl.car'],\n ['cat', 'application/vnd.ms-pki.seccat'],\n ['cb7', 'application/x-cbr'],\n ['cba', 'application/x-cbr'],\n ['cbr', 'application/x-cbr'],\n ['cbt', 'application/x-cbr'],\n ['cbz', 'application/x-cbr'],\n ['cc', 'text/x-c'],\n ['cco', 'application/x-cocoa'],\n ['cct', 'application/x-director'],\n ['ccxml', 'application/ccxml+xml'],\n ['cdbcmsg', 'application/vnd.contact.cmsg'],\n ['cda', 'application/x-cdf'],\n ['cdf', 'application/x-netcdf'],\n ['cdfx', 'application/cdfx+xml'],\n ['cdkey', 'application/vnd.mediastation.cdkey'],\n ['cdmia', 'application/cdmi-capability'],\n ['cdmic', 'application/cdmi-container'],\n ['cdmid', 'application/cdmi-domain'],\n ['cdmio', 'application/cdmi-object'],\n ['cdmiq', 'application/cdmi-queue'],\n ['cdr', 'application/cdr'],\n ['cdx', 'chemical/x-cdx'],\n ['cdxml', 'application/vnd.chemdraw+xml'],\n ['cdy', 'application/vnd.cinderella'],\n ['cer', 'application/pkix-cert'],\n ['cfs', 'application/x-cfs-compressed'],\n ['cgm', 'image/cgm'],\n ['chat', 'application/x-chat'],\n ['chm', 'application/vnd.ms-htmlhelp'],\n ['chrt', 'application/vnd.kde.kchart'],\n ['cif', 'chemical/x-cif'],\n ['cii', 'application/vnd.anser-web-certificate-issue-initiation'],\n ['cil', 'application/vnd.ms-artgalry'],\n ['cjs', 'application/node'],\n ['cla', 'application/vnd.claymore'],\n ['class', 'application/octet-stream'],\n ['clkk', 'application/vnd.crick.clicker.keyboard'],\n ['clkp', 'application/vnd.crick.clicker.palette'],\n ['clkt', 'application/vnd.crick.clicker.template'],\n ['clkw', 'application/vnd.crick.clicker.wordbank'],\n ['clkx', 'application/vnd.crick.clicker'],\n ['clp', 'application/x-msclip'],\n ['cmc', 'application/vnd.cosmocaller'],\n ['cmdf', 'chemical/x-cmdf'],\n ['cml', 'chemical/x-cml'],\n ['cmp', 'application/vnd.yellowriver-custom-menu'],\n ['cmx', 'image/x-cmx'],\n ['cod', 'application/vnd.rim.cod'],\n ['coffee', 'text/coffeescript'],\n ['com', 'application/x-msdownload'],\n ['conf', 'text/plain'],\n ['cpio', 'application/x-cpio'],\n ['cpp', 'text/x-c'],\n ['cpt', 'application/mac-compactpro'],\n ['crd', 'application/x-mscardfile'],\n ['crl', 'application/pkix-crl'],\n ['crt', 'application/x-x509-ca-cert'],\n ['crx', 'application/x-chrome-extension'],\n ['cryptonote', 'application/vnd.rig.cryptonote'],\n ['csh', 'application/x-csh'],\n ['csl', 'application/vnd.citationstyles.style+xml'],\n ['csml', 'chemical/x-csml'],\n ['csp', 'application/vnd.commonspace'],\n ['csr', 'application/octet-stream'],\n ['css', 'text/css'],\n ['cst', 'application/x-director'],\n ['csv', 'text/csv'],\n ['cu', 'application/cu-seeme'],\n ['curl', 'text/vnd.curl'],\n ['cww', 'application/prs.cww'],\n ['cxt', 'application/x-director'],\n ['cxx', 'text/x-c'],\n ['dae', 'model/vnd.collada+xml'],\n ['daf', 'application/vnd.mobius.daf'],\n ['dart', 'application/vnd.dart'],\n ['dataless', 'application/vnd.fdsn.seed'],\n ['davmount', 'application/davmount+xml'],\n ['dbf', 'application/vnd.dbf'],\n ['dbk', 'application/docbook+xml'],\n ['dcr', 'application/x-director'],\n ['dcurl', 'text/vnd.curl.dcurl'],\n ['dd2', 'application/vnd.oma.dd2+xml'],\n ['ddd', 'application/vnd.fujixerox.ddd'],\n ['ddf', 'application/vnd.syncml.dmddf+xml'],\n ['dds', 'image/vnd.ms-dds'],\n ['deb', 'application/x-debian-package'],\n ['def', 'text/plain'],\n ['deploy', 'application/octet-stream'],\n ['der', 'application/x-x509-ca-cert'],\n ['dfac', 'application/vnd.dreamfactory'],\n ['dgc', 'application/x-dgc-compressed'],\n ['dic', 'text/x-c'],\n ['dir', 'application/x-director'],\n ['dis', 'application/vnd.mobius.dis'],\n ['disposition-notification', 'message/disposition-notification'],\n ['dist', 'application/octet-stream'],\n ['distz', 'application/octet-stream'],\n ['djv', 'image/vnd.djvu'],\n ['djvu', 'image/vnd.djvu'],\n ['dll', 'application/octet-stream'],\n ['dmg', 'application/x-apple-diskimage'],\n ['dmn', 'application/octet-stream'],\n ['dmp', 'application/vnd.tcpdump.pcap'],\n ['dms', 'application/octet-stream'],\n ['dna', 'application/vnd.dna'],\n ['doc', 'application/msword'],\n ['docm', 'application/vnd.ms-word.template.macroEnabled.12'],\n ['docx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'],\n ['dot', 'application/msword'],\n ['dotm', 'application/vnd.ms-word.template.macroEnabled.12'],\n ['dotx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.template'],\n ['dp', 'application/vnd.osgi.dp'],\n ['dpg', 'application/vnd.dpgraph'],\n ['dra', 'audio/vnd.dra'],\n ['drle', 'image/dicom-rle'],\n ['dsc', 'text/prs.lines.tag'],\n ['dssc', 'application/dssc+der'],\n ['dtb', 'application/x-dtbook+xml'],\n ['dtd', 'application/xml-dtd'],\n ['dts', 'audio/vnd.dts'],\n ['dtshd', 'audio/vnd.dts.hd'],\n ['dump', 'application/octet-stream'],\n ['dvb', 'video/vnd.dvb.file'],\n ['dvi', 'application/x-dvi'],\n ['dwd', 'application/atsc-dwd+xml'],\n ['dwf', 'model/vnd.dwf'],\n ['dwg', 'image/vnd.dwg'],\n ['dxf', 'image/vnd.dxf'],\n ['dxp', 'application/vnd.spotfire.dxp'],\n ['dxr', 'application/x-director'],\n ['ear', 'application/java-archive'],\n ['ecelp4800', 'audio/vnd.nuera.ecelp4800'],\n ['ecelp7470', 'audio/vnd.nuera.ecelp7470'],\n ['ecelp9600', 'audio/vnd.nuera.ecelp9600'],\n ['ecma', 'application/ecmascript'],\n ['edm', 'application/vnd.novadigm.edm'],\n ['edx', 'application/vnd.novadigm.edx'],\n ['efif', 'application/vnd.picsel'],\n ['ei6', 'application/vnd.pg.osasli'],\n ['elc', 'application/octet-stream'],\n ['emf', 'image/emf'],\n ['eml', 'message/rfc822'],\n ['emma', 'application/emma+xml'],\n ['emotionml', 'application/emotionml+xml'],\n ['emz', 'application/x-msmetafile'],\n ['eol', 'audio/vnd.digital-winds'],\n ['eot', 'application/vnd.ms-fontobject'],\n ['eps', 'application/postscript'],\n ['epub', 'application/epub+zip'],\n ['es', 'application/ecmascript'],\n ['es3', 'application/vnd.eszigno3+xml'],\n ['esa', 'application/vnd.osgi.subsystem'],\n ['esf', 'application/vnd.epson.esf'],\n ['et3', 'application/vnd.eszigno3+xml'],\n ['etx', 'text/x-setext'],\n ['eva', 'application/x-eva'],\n ['evy', 'application/x-envoy'],\n ['exe', 'application/octet-stream'],\n ['exi', 'application/exi'],\n ['exp', 'application/express'],\n ['exr', 'image/aces'],\n ['ext', 'application/vnd.novadigm.ext'],\n ['ez', 'application/andrew-inset'],\n ['ez2', 'application/vnd.ezpix-album'],\n ['ez3', 'application/vnd.ezpix-package'],\n ['f', 'text/x-fortran'],\n ['f4v', 'video/mp4'],\n ['f77', 'text/x-fortran'],\n ['f90', 'text/x-fortran'],\n ['fbs', 'image/vnd.fastbidsheet'],\n ['fcdt', 'application/vnd.adobe.formscentral.fcdt'],\n ['fcs', 'application/vnd.isac.fcs'],\n ['fdf', 'application/vnd.fdf'],\n ['fdt', 'application/fdt+xml'],\n ['fe_launch', 'application/vnd.denovo.fcselayout-link'],\n ['fg5', 'application/vnd.fujitsu.oasysgp'],\n ['fgd', 'application/x-director'],\n ['fh', 'image/x-freehand'],\n ['fh4', 'image/x-freehand'],\n ['fh5', 'image/x-freehand'],\n ['fh7', 'image/x-freehand'],\n ['fhc', 'image/x-freehand'],\n ['fig', 'application/x-xfig'],\n ['fits', 'image/fits'],\n ['flac', 'audio/x-flac'],\n ['fli', 'video/x-fli'],\n ['flo', 'application/vnd.micrografx.flo'],\n ['flv', 'video/x-flv'],\n ['flw', 'application/vnd.kde.kivio'],\n ['flx', 'text/vnd.fmi.flexstor'],\n ['fly', 'text/vnd.fly'],\n ['fm', 'application/vnd.framemaker'],\n ['fnc', 'application/vnd.frogans.fnc'],\n ['fo', 'application/vnd.software602.filler.form+xml'],\n ['for', 'text/x-fortran'],\n ['fpx', 'image/vnd.fpx'],\n ['frame', 'application/vnd.framemaker'],\n ['fsc', 'application/vnd.fsc.weblaunch'],\n ['fst', 'image/vnd.fst'],\n ['ftc', 'application/vnd.fluxtime.clip'],\n ['fti', 'application/vnd.anser-web-funds-transfer-initiation'],\n ['fvt', 'video/vnd.fvt'],\n ['fxp', 'application/vnd.adobe.fxp'],\n ['fxpl', 'application/vnd.adobe.fxp'],\n ['fzs', 'application/vnd.fuzzysheet'],\n ['g2w', 'application/vnd.geoplan'],\n ['g3', 'image/g3fax'],\n ['g3w', 'application/vnd.geospace'],\n ['gac', 'application/vnd.groove-account'],\n ['gam', 'application/x-tads'],\n ['gbr', 'application/rpki-ghostbusters'],\n ['gca', 'application/x-gca-compressed'],\n ['gdl', 'model/vnd.gdl'],\n ['gdoc', 'application/vnd.google-apps.document'],\n ['geo', 'application/vnd.dynageo'],\n ['geojson', 'application/geo+json'],\n ['gex', 'application/vnd.geometry-explorer'],\n ['ggb', 'application/vnd.geogebra.file'],\n ['ggt', 'application/vnd.geogebra.tool'],\n ['ghf', 'application/vnd.groove-help'],\n ['gif', 'image/gif'],\n ['gim', 'application/vnd.groove-identity-message'],\n ['glb', 'model/gltf-binary'],\n ['gltf', 'model/gltf+json'],\n ['gml', 'application/gml+xml'],\n ['gmx', 'application/vnd.gmx'],\n ['gnumeric', 'application/x-gnumeric'],\n ['gpg', 'application/gpg-keys'],\n ['gph', 'application/vnd.flographit'],\n ['gpx', 'application/gpx+xml'],\n ['gqf', 'application/vnd.grafeq'],\n ['gqs', 'application/vnd.grafeq'],\n ['gram', 'application/srgs'],\n ['gramps', 'application/x-gramps-xml'],\n ['gre', 'application/vnd.geometry-explorer'],\n ['grv', 'application/vnd.groove-injector'],\n ['grxml', 'application/srgs+xml'],\n ['gsf', 'application/x-font-ghostscript'],\n ['gsheet', 'application/vnd.google-apps.spreadsheet'],\n ['gslides', 'application/vnd.google-apps.presentation'],\n ['gtar', 'application/x-gtar'],\n ['gtm', 'application/vnd.groove-tool-message'],\n ['gtw', 'model/vnd.gtw'],\n ['gv', 'text/vnd.graphviz'],\n ['gxf', 'application/gxf'],\n ['gxt', 'application/vnd.geonext'],\n ['gz', 'application/gzip'],\n ['gzip', 'application/gzip'],\n ['h', 'text/x-c'],\n ['h261', 'video/h261'],\n ['h263', 'video/h263'],\n ['h264', 'video/h264'],\n ['hal', 'application/vnd.hal+xml'],\n ['hbci', 'application/vnd.hbci'],\n ['hbs', 'text/x-handlebars-template'],\n ['hdd', 'application/x-virtualbox-hdd'],\n ['hdf', 'application/x-hdf'],\n ['heic', 'image/heic'],\n ['heics', 'image/heic-sequence'],\n ['heif', 'image/heif'],\n ['heifs', 'image/heif-sequence'],\n ['hej2', 'image/hej2k'],\n ['held', 'application/atsc-held+xml'],\n ['hh', 'text/x-c'],\n ['hjson', 'application/hjson'],\n ['hlp', 'application/winhlp'],\n ['hpgl', 'application/vnd.hp-hpgl'],\n ['hpid', 'application/vnd.hp-hpid'],\n ['hps', 'application/vnd.hp-hps'],\n ['hqx', 'application/mac-binhex40'],\n ['hsj2', 'image/hsj2'],\n ['htc', 'text/x-component'],\n ['htke', 'application/vnd.kenameaapp'],\n ['htm', 'text/html'],\n ['html', 'text/html'],\n ['hvd', 'application/vnd.yamaha.hv-dic'],\n ['hvp', 'application/vnd.yamaha.hv-voice'],\n ['hvs', 'application/vnd.yamaha.hv-script'],\n ['i2g', 'application/vnd.intergeo'],\n ['icc', 'application/vnd.iccprofile'],\n ['ice', 'x-conference/x-cooltalk'],\n ['icm', 'application/vnd.iccprofile'],\n ['ico', 'image/x-icon'],\n ['ics', 'text/calendar'],\n ['ief', 'image/ief'],\n ['ifb', 'text/calendar'],\n ['ifm', 'application/vnd.shana.informed.formdata'],\n ['iges', 'model/iges'],\n ['igl', 'application/vnd.igloader'],\n ['igm', 'application/vnd.insors.igm'],\n ['igs', 'model/iges'],\n ['igx', 'application/vnd.micrografx.igx'],\n ['iif', 'application/vnd.shana.informed.interchange'],\n ['img', 'application/octet-stream'],\n ['imp', 'application/vnd.accpac.simply.imp'],\n ['ims', 'application/vnd.ms-ims'],\n ['in', 'text/plain'],\n ['ini', 'text/plain'],\n ['ink', 'application/inkml+xml'],\n ['inkml', 'application/inkml+xml'],\n ['install', 'application/x-install-instructions'],\n ['iota', 'application/vnd.astraea-software.iota'],\n ['ipfix', 'application/ipfix'],\n ['ipk', 'application/vnd.shana.informed.package'],\n ['irm', 'application/vnd.ibm.rights-management'],\n ['irp', 'application/vnd.irepository.package+xml'],\n ['iso', 'application/x-iso9660-image'],\n ['itp', 'application/vnd.shana.informed.formtemplate'],\n ['its', 'application/its+xml'],\n ['ivp', 'application/vnd.immervision-ivp'],\n ['ivu', 'application/vnd.immervision-ivu'],\n ['jad', 'text/vnd.sun.j2me.app-descriptor'],\n ['jade', 'text/jade'],\n ['jam', 'application/vnd.jam'],\n ['jar', 'application/java-archive'],\n ['jardiff', 'application/x-java-archive-diff'],\n ['java', 'text/x-java-source'],\n ['jhc', 'image/jphc'],\n ['jisp', 'application/vnd.jisp'],\n ['jls', 'image/jls'],\n ['jlt', 'application/vnd.hp-jlyt'],\n ['jng', 'image/x-jng'],\n ['jnlp', 'application/x-java-jnlp-file'],\n ['joda', 'application/vnd.joost.joda-archive'],\n ['jp2', 'image/jp2'],\n ['jpe', 'image/jpeg'],\n ['jpeg', 'image/jpeg'],\n ['jpf', 'image/jpx'],\n ['jpg', 'image/jpeg'],\n ['jpg2', 'image/jp2'],\n ['jpgm', 'video/jpm'],\n ['jpgv', 'video/jpeg'],\n ['jph', 'image/jph'],\n ['jpm', 'video/jpm'],\n ['jpx', 'image/jpx'],\n ['js', 'application/javascript'],\n ['json', 'application/json'],\n ['json5', 'application/json5'],\n ['jsonld', 'application/ld+json'],\n // https://jsonlines.org/\n ['jsonl', 'application/jsonl'],\n ['jsonml', 'application/jsonml+json'],\n ['jsx', 'text/jsx'],\n ['jxr', 'image/jxr'],\n ['jxra', 'image/jxra'],\n ['jxrs', 'image/jxrs'],\n ['jxs', 'image/jxs'],\n ['jxsc', 'image/jxsc'],\n ['jxsi', 'image/jxsi'],\n ['jxss', 'image/jxss'],\n ['kar', 'audio/midi'],\n ['karbon', 'application/vnd.kde.karbon'],\n ['kdb', 'application/octet-stream'],\n ['kdbx', 'application/x-keepass2'],\n ['key', 'application/x-iwork-keynote-sffkey'],\n ['kfo', 'application/vnd.kde.kformula'],\n ['kia', 'application/vnd.kidspiration'],\n ['kml', 'application/vnd.google-earth.kml+xml'],\n ['kmz', 'application/vnd.google-earth.kmz'],\n ['kne', 'application/vnd.kinar'],\n ['knp', 'application/vnd.kinar'],\n ['kon', 'application/vnd.kde.kontour'],\n ['kpr', 'application/vnd.kde.kpresenter'],\n ['kpt', 'application/vnd.kde.kpresenter'],\n ['kpxx', 'application/vnd.ds-keypoint'],\n ['ksp', 'application/vnd.kde.kspread'],\n ['ktr', 'application/vnd.kahootz'],\n ['ktx', 'image/ktx'],\n ['ktx2', 'image/ktx2'],\n ['ktz', 'application/vnd.kahootz'],\n ['kwd', 'application/vnd.kde.kword'],\n ['kwt', 'application/vnd.kde.kword'],\n ['lasxml', 'application/vnd.las.las+xml'],\n ['latex', 'application/x-latex'],\n ['lbd', 'application/vnd.llamagraphics.life-balance.desktop'],\n ['lbe', 'application/vnd.llamagraphics.life-balance.exchange+xml'],\n ['les', 'application/vnd.hhe.lesson-player'],\n ['less', 'text/less'],\n ['lgr', 'application/lgr+xml'],\n ['lha', 'application/octet-stream'],\n ['link66', 'application/vnd.route66.link66+xml'],\n ['list', 'text/plain'],\n ['list3820', 'application/vnd.ibm.modcap'],\n ['listafp', 'application/vnd.ibm.modcap'],\n ['litcoffee', 'text/coffeescript'],\n ['lnk', 'application/x-ms-shortcut'],\n ['log', 'text/plain'],\n ['lostxml', 'application/lost+xml'],\n ['lrf', 'application/octet-stream'],\n ['lrm', 'application/vnd.ms-lrm'],\n ['ltf', 'application/vnd.frogans.ltf'],\n ['lua', 'text/x-lua'],\n ['luac', 'application/x-lua-bytecode'],\n ['lvp', 'audio/vnd.lucent.voice'],\n ['lwp', 'application/vnd.lotus-wordpro'],\n ['lzh', 'application/octet-stream'],\n ['m1v', 'video/mpeg'],\n ['m2a', 'audio/mpeg'],\n ['m2v', 'video/mpeg'],\n ['m3a', 'audio/mpeg'],\n ['m3u', 'text/plain'],\n ['m3u8', 'application/vnd.apple.mpegurl'],\n ['m4a', 'audio/x-m4a'],\n ['m4p', 'application/mp4'],\n ['m4s', 'video/iso.segment'],\n ['m4u', 'application/vnd.mpegurl'],\n ['m4v', 'video/x-m4v'],\n ['m13', 'application/x-msmediaview'],\n ['m14', 'application/x-msmediaview'],\n ['m21', 'application/mp21'],\n ['ma', 'application/mathematica'],\n ['mads', 'application/mads+xml'],\n ['maei', 'application/mmt-aei+xml'],\n ['mag', 'application/vnd.ecowin.chart'],\n ['maker', 'application/vnd.framemaker'],\n ['man', 'text/troff'],\n ['manifest', 'text/cache-manifest'],\n ['map', 'application/json'],\n ['mar', 'application/octet-stream'],\n ['markdown', 'text/markdown'],\n ['mathml', 'application/mathml+xml'],\n ['mb', 'application/mathematica'],\n ['mbk', 'application/vnd.mobius.mbk'],\n ['mbox', 'application/mbox'],\n ['mc1', 'application/vnd.medcalcdata'],\n ['mcd', 'application/vnd.mcd'],\n ['mcurl', 'text/vnd.curl.mcurl'],\n ['md', 'text/markdown'],\n ['mdb', 'application/x-msaccess'],\n ['mdi', 'image/vnd.ms-modi'],\n ['mdx', 'text/mdx'],\n ['me', 'text/troff'],\n ['mesh', 'model/mesh'],\n ['meta4', 'application/metalink4+xml'],\n ['metalink', 'application/metalink+xml'],\n ['mets', 'application/mets+xml'],\n ['mfm', 'application/vnd.mfmp'],\n ['mft', 'application/rpki-manifest'],\n ['mgp', 'application/vnd.osgeo.mapguide.package'],\n ['mgz', 'application/vnd.proteus.magazine'],\n ['mid', 'audio/midi'],\n ['midi', 'audio/midi'],\n ['mie', 'application/x-mie'],\n ['mif', 'application/vnd.mif'],\n ['mime', 'message/rfc822'],\n ['mj2', 'video/mj2'],\n ['mjp2', 'video/mj2'],\n ['mjs', 'application/javascript'],\n ['mk3d', 'video/x-matroska'],\n ['mka', 'audio/x-matroska'],\n ['mkd', 'text/x-markdown'],\n ['mks', 'video/x-matroska'],\n ['mkv', 'video/x-matroska'],\n ['mlp', 'application/vnd.dolby.mlp'],\n ['mmd', 'application/vnd.chipnuts.karaoke-mmd'],\n ['mmf', 'application/vnd.smaf'],\n ['mml', 'text/mathml'],\n ['mmr', 'image/vnd.fujixerox.edmics-mmr'],\n ['mng', 'video/x-mng'],\n ['mny', 'application/x-msmoney'],\n ['mobi', 'application/x-mobipocket-ebook'],\n ['mods', 'application/mods+xml'],\n ['mov', 'video/quicktime'],\n ['movie', 'video/x-sgi-movie'],\n ['mp2', 'audio/mpeg'],\n ['mp2a', 'audio/mpeg'],\n ['mp3', 'audio/mpeg'],\n ['mp4', 'video/mp4'],\n ['mp4a', 'audio/mp4'],\n ['mp4s', 'application/mp4'],\n ['mp4v', 'video/mp4'],\n ['mp21', 'application/mp21'],\n ['mpc', 'application/vnd.mophun.certificate'],\n ['mpd', 'application/dash+xml'],\n ['mpe', 'video/mpeg'],\n ['mpeg', 'video/mpeg'],\n ['mpg', 'video/mpeg'],\n ['mpg4', 'video/mp4'],\n ['mpga', 'audio/mpeg'],\n ['mpkg', 'application/vnd.apple.installer+xml'],\n ['mpm', 'application/vnd.blueice.multipass'],\n ['mpn', 'application/vnd.mophun.application'],\n ['mpp', 'application/vnd.ms-project'],\n ['mpt', 'application/vnd.ms-project'],\n ['mpy', 'application/vnd.ibm.minipay'],\n ['mqy', 'application/vnd.mobius.mqy'],\n ['mrc', 'application/marc'],\n ['mrcx', 'application/marcxml+xml'],\n ['ms', 'text/troff'],\n ['mscml', 'application/mediaservercontrol+xml'],\n ['mseed', 'application/vnd.fdsn.mseed'],\n ['mseq', 'application/vnd.mseq'],\n ['msf', 'application/vnd.epson.msf'],\n ['msg', 'application/vnd.ms-outlook'],\n ['msh', 'model/mesh'],\n ['msi', 'application/x-msdownload'],\n ['msl', 'application/vnd.mobius.msl'],\n ['msm', 'application/octet-stream'],\n ['msp', 'application/octet-stream'],\n ['msty', 'application/vnd.muvee.style'],\n ['mtl', 'model/mtl'],\n ['mts', 'model/vnd.mts'],\n ['mus', 'application/vnd.musician'],\n ['musd', 'application/mmt-usd+xml'],\n ['musicxml', 'application/vnd.recordare.musicxml+xml'],\n ['mvb', 'application/x-msmediaview'],\n ['mvt', 'application/vnd.mapbox-vector-tile'],\n ['mwf', 'application/vnd.mfer'],\n ['mxf', 'application/mxf'],\n ['mxl', 'application/vnd.recordare.musicxml'],\n ['mxmf', 'audio/mobile-xmf'],\n ['mxml', 'application/xv+xml'],\n ['mxs', 'application/vnd.triscape.mxs'],\n ['mxu', 'video/vnd.mpegurl'],\n ['n-gage', 'application/vnd.nokia.n-gage.symbian.install'],\n ['n3', 'text/n3'],\n ['nb', 'application/mathematica'],\n ['nbp', 'application/vnd.wolfram.player'],\n ['nc', 'application/x-netcdf'],\n ['ncx', 'application/x-dtbncx+xml'],\n ['nfo', 'text/x-nfo'],\n ['ngdat', 'application/vnd.nokia.n-gage.data'],\n ['nitf', 'application/vnd.nitf'],\n ['nlu', 'application/vnd.neurolanguage.nlu'],\n ['nml', 'application/vnd.enliven'],\n ['nnd', 'application/vnd.noblenet-directory'],\n ['nns', 'application/vnd.noblenet-sealer'],\n ['nnw', 'application/vnd.noblenet-web'],\n ['npx', 'image/vnd.net-fpx'],\n ['nq', 'application/n-quads'],\n ['nsc', 'application/x-conference'],\n ['nsf', 'application/vnd.lotus-notes'],\n ['nt', 'application/n-triples'],\n ['ntf', 'application/vnd.nitf'],\n ['numbers', 'application/x-iwork-numbers-sffnumbers'],\n ['nzb', 'application/x-nzb'],\n ['oa2', 'application/vnd.fujitsu.oasys2'],\n ['oa3', 'application/vnd.fujitsu.oasys3'],\n ['oas', 'application/vnd.fujitsu.oasys'],\n ['obd', 'application/x-msbinder'],\n ['obgx', 'application/vnd.openblox.game+xml'],\n ['obj', 'model/obj'],\n ['oda', 'application/oda'],\n ['odb', 'application/vnd.oasis.opendocument.database'],\n ['odc', 'application/vnd.oasis.opendocument.chart'],\n ['odf', 'application/vnd.oasis.opendocument.formula'],\n ['odft', 'application/vnd.oasis.opendocument.formula-template'],\n ['odg', 'application/vnd.oasis.opendocument.graphics'],\n ['odi', 'application/vnd.oasis.opendocument.image'],\n ['odm', 'application/vnd.oasis.opendocument.text-master'],\n ['odp', 'application/vnd.oasis.opendocument.presentation'],\n ['ods', 'application/vnd.oasis.opendocument.spreadsheet'],\n ['odt', 'application/vnd.oasis.opendocument.text'],\n ['oga', 'audio/ogg'],\n ['ogex', 'model/vnd.opengex'],\n ['ogg', 'audio/ogg'],\n ['ogv', 'video/ogg'],\n ['ogx', 'application/ogg'],\n ['omdoc', 'application/omdoc+xml'],\n ['onepkg', 'application/onenote'],\n ['onetmp', 'application/onenote'],\n ['onetoc', 'application/onenote'],\n ['onetoc2', 'application/onenote'],\n ['opf', 'application/oebps-package+xml'],\n ['opml', 'text/x-opml'],\n ['oprc', 'application/vnd.palm'],\n ['opus', 'audio/ogg'],\n ['org', 'text/x-org'],\n ['osf', 'application/vnd.yamaha.openscoreformat'],\n ['osfpvg', 'application/vnd.yamaha.openscoreformat.osfpvg+xml'],\n ['osm', 'application/vnd.openstreetmap.data+xml'],\n ['otc', 'application/vnd.oasis.opendocument.chart-template'],\n ['otf', 'font/otf'],\n ['otg', 'application/vnd.oasis.opendocument.graphics-template'],\n ['oth', 'application/vnd.oasis.opendocument.text-web'],\n ['oti', 'application/vnd.oasis.opendocument.image-template'],\n ['otp', 'application/vnd.oasis.opendocument.presentation-template'],\n ['ots', 'application/vnd.oasis.opendocument.spreadsheet-template'],\n ['ott', 'application/vnd.oasis.opendocument.text-template'],\n ['ova', 'application/x-virtualbox-ova'],\n ['ovf', 'application/x-virtualbox-ovf'],\n ['owl', 'application/rdf+xml'],\n ['oxps', 'application/oxps'],\n ['oxt', 'application/vnd.openofficeorg.extension'],\n ['p', 'text/x-pascal'],\n ['p7a', 'application/x-pkcs7-signature'],\n ['p7b', 'application/x-pkcs7-certificates'],\n ['p7c', 'application/pkcs7-mime'],\n ['p7m', 'application/pkcs7-mime'],\n ['p7r', 'application/x-pkcs7-certreqresp'],\n ['p7s', 'application/pkcs7-signature'],\n ['p8', 'application/pkcs8'],\n ['p10', 'application/x-pkcs10'],\n ['p12', 'application/x-pkcs12'],\n ['pac', 'application/x-ns-proxy-autoconfig'],\n ['pages', 'application/x-iwork-pages-sffpages'],\n ['pas', 'text/x-pascal'],\n ['paw', 'application/vnd.pawaafile'],\n ['pbd', 'application/vnd.powerbuilder6'],\n ['pbm', 'image/x-portable-bitmap'],\n ['pcap', 'application/vnd.tcpdump.pcap'],\n ['pcf', 'application/x-font-pcf'],\n ['pcl', 'application/vnd.hp-pcl'],\n ['pclxl', 'application/vnd.hp-pclxl'],\n ['pct', 'image/x-pict'],\n ['pcurl', 'application/vnd.curl.pcurl'],\n ['pcx', 'image/x-pcx'],\n ['pdb', 'application/x-pilot'],\n ['pde', 'text/x-processing'],\n ['pdf', 'application/pdf'],\n ['pem', 'application/x-x509-user-cert'],\n ['pfa', 'application/x-font-type1'],\n ['pfb', 'application/x-font-type1'],\n ['pfm', 'application/x-font-type1'],\n ['pfr', 'application/font-tdpfr'],\n ['pfx', 'application/x-pkcs12'],\n ['pgm', 'image/x-portable-graymap'],\n ['pgn', 'application/x-chess-pgn'],\n ['pgp', 'application/pgp'],\n ['php', 'application/x-httpd-php'],\n ['php3', 'application/x-httpd-php'],\n ['php4', 'application/x-httpd-php'],\n ['phps', 'application/x-httpd-php-source'],\n ['phtml', 'application/x-httpd-php'],\n ['pic', 'image/x-pict'],\n ['pkg', 'application/octet-stream'],\n ['pki', 'application/pkixcmp'],\n ['pkipath', 'application/pkix-pkipath'],\n ['pkpass', 'application/vnd.apple.pkpass'],\n ['pl', 'application/x-perl'],\n ['plb', 'application/vnd.3gpp.pic-bw-large'],\n ['plc', 'application/vnd.mobius.plc'],\n ['plf', 'application/vnd.pocketlearn'],\n ['pls', 'application/pls+xml'],\n ['pm', 'application/x-perl'],\n ['pml', 'application/vnd.ctc-posml'],\n ['png', 'image/png'],\n ['pnm', 'image/x-portable-anymap'],\n ['portpkg', 'application/vnd.macports.portpkg'],\n ['pot', 'application/vnd.ms-powerpoint'],\n ['potm', 'application/vnd.ms-powerpoint.presentation.macroEnabled.12'],\n ['potx', 'application/vnd.openxmlformats-officedocument.presentationml.template'],\n ['ppa', 'application/vnd.ms-powerpoint'],\n ['ppam', 'application/vnd.ms-powerpoint.addin.macroEnabled.12'],\n ['ppd', 'application/vnd.cups-ppd'],\n ['ppm', 'image/x-portable-pixmap'],\n ['pps', 'application/vnd.ms-powerpoint'],\n ['ppsm', 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12'],\n ['ppsx', 'application/vnd.openxmlformats-officedocument.presentationml.slideshow'],\n ['ppt', 'application/powerpoint'],\n ['pptm', 'application/vnd.ms-powerpoint.presentation.macroEnabled.12'],\n ['pptx', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'],\n ['pqa', 'application/vnd.palm'],\n ['prc', 'application/x-pilot'],\n ['pre', 'application/vnd.lotus-freelance'],\n ['prf', 'application/pics-rules'],\n ['provx', 'application/provenance+xml'],\n ['ps', 'application/postscript'],\n ['psb', 'application/vnd.3gpp.pic-bw-small'],\n ['psd', 'application/x-photoshop'],\n ['psf', 'application/x-font-linux-psf'],\n ['pskcxml', 'application/pskc+xml'],\n ['pti', 'image/prs.pti'],\n ['ptid', 'application/vnd.pvi.ptid1'],\n ['pub', 'application/x-mspublisher'],\n ['pvb', 'application/vnd.3gpp.pic-bw-var'],\n ['pwn', 'application/vnd.3m.post-it-notes'],\n ['pya', 'audio/vnd.ms-playready.media.pya'],\n ['pyv', 'video/vnd.ms-playready.media.pyv'],\n ['qam', 'application/vnd.epson.quickanime'],\n ['qbo', 'application/vnd.intu.qbo'],\n ['qfx', 'application/vnd.intu.qfx'],\n ['qps', 'application/vnd.publishare-delta-tree'],\n ['qt', 'video/quicktime'],\n ['qwd', 'application/vnd.quark.quarkxpress'],\n ['qwt', 'application/vnd.quark.quarkxpress'],\n ['qxb', 'application/vnd.quark.quarkxpress'],\n ['qxd', 'application/vnd.quark.quarkxpress'],\n ['qxl', 'application/vnd.quark.quarkxpress'],\n ['qxt', 'application/vnd.quark.quarkxpress'],\n ['ra', 'audio/x-realaudio'],\n ['ram', 'audio/x-pn-realaudio'],\n ['raml', 'application/raml+yaml'],\n ['rapd', 'application/route-apd+xml'],\n ['rar', 'application/x-rar'],\n ['ras', 'image/x-cmu-raster'],\n ['rcprofile', 'application/vnd.ipunplugged.rcprofile'],\n ['rdf', 'application/rdf+xml'],\n ['rdz', 'application/vnd.data-vision.rdz'],\n ['relo', 'application/p2p-overlay+xml'],\n ['rep', 'application/vnd.businessobjects'],\n ['res', 'application/x-dtbresource+xml'],\n ['rgb', 'image/x-rgb'],\n ['rif', 'application/reginfo+xml'],\n ['rip', 'audio/vnd.rip'],\n ['ris', 'application/x-research-info-systems'],\n ['rl', 'application/resource-lists+xml'],\n ['rlc', 'image/vnd.fujixerox.edmics-rlc'],\n ['rld', 'application/resource-lists-diff+xml'],\n ['rm', 'audio/x-pn-realaudio'],\n ['rmi', 'audio/midi'],\n ['rmp', 'audio/x-pn-realaudio-plugin'],\n ['rms', 'application/vnd.jcp.javame.midlet-rms'],\n ['rmvb', 'application/vnd.rn-realmedia-vbr'],\n ['rnc', 'application/relax-ng-compact-syntax'],\n ['rng', 'application/xml'],\n ['roa', 'application/rpki-roa'],\n ['roff', 'text/troff'],\n ['rp9', 'application/vnd.cloanto.rp9'],\n ['rpm', 'audio/x-pn-realaudio-plugin'],\n ['rpss', 'application/vnd.nokia.radio-presets'],\n ['rpst', 'application/vnd.nokia.radio-preset'],\n ['rq', 'application/sparql-query'],\n ['rs', 'application/rls-services+xml'],\n ['rsa', 'application/x-pkcs7'],\n ['rsat', 'application/atsc-rsat+xml'],\n ['rsd', 'application/rsd+xml'],\n ['rsheet', 'application/urc-ressheet+xml'],\n ['rss', 'application/rss+xml'],\n ['rtf', 'text/rtf'],\n ['rtx', 'text/richtext'],\n ['run', 'application/x-makeself'],\n ['rusd', 'application/route-usd+xml'],\n ['rv', 'video/vnd.rn-realvideo'],\n ['s', 'text/x-asm'],\n ['s3m', 'audio/s3m'],\n ['saf', 'application/vnd.yamaha.smaf-audio'],\n ['sass', 'text/x-sass'],\n ['sbml', 'application/sbml+xml'],\n ['sc', 'application/vnd.ibm.secure-container'],\n ['scd', 'application/x-msschedule'],\n ['scm', 'application/vnd.lotus-screencam'],\n ['scq', 'application/scvp-cv-request'],\n ['scs', 'application/scvp-cv-response'],\n ['scss', 'text/x-scss'],\n ['scurl', 'text/vnd.curl.scurl'],\n ['sda', 'application/vnd.stardivision.draw'],\n ['sdc', 'application/vnd.stardivision.calc'],\n ['sdd', 'application/vnd.stardivision.impress'],\n ['sdkd', 'application/vnd.solent.sdkm+xml'],\n ['sdkm', 'application/vnd.solent.sdkm+xml'],\n ['sdp', 'application/sdp'],\n ['sdw', 'application/vnd.stardivision.writer'],\n ['sea', 'application/octet-stream'],\n ['see', 'application/vnd.seemail'],\n ['seed', 'application/vnd.fdsn.seed'],\n ['sema', 'application/vnd.sema'],\n ['semd', 'application/vnd.semd'],\n ['semf', 'application/vnd.semf'],\n ['senmlx', 'application/senml+xml'],\n ['sensmlx', 'application/sensml+xml'],\n ['ser', 'application/java-serialized-object'],\n ['setpay', 'application/set-payment-initiation'],\n ['setreg', 'application/set-registration-initiation'],\n ['sfd-hdstx', 'application/vnd.hydrostatix.sof-data'],\n ['sfs', 'application/vnd.spotfire.sfs'],\n ['sfv', 'text/x-sfv'],\n ['sgi', 'image/sgi'],\n ['sgl', 'application/vnd.stardivision.writer-global'],\n ['sgm', 'text/sgml'],\n ['sgml', 'text/sgml'],\n ['sh', 'application/x-sh'],\n ['shar', 'application/x-shar'],\n ['shex', 'text/shex'],\n ['shf', 'application/shf+xml'],\n ['shtml', 'text/html'],\n ['sid', 'image/x-mrsid-image'],\n ['sieve', 'application/sieve'],\n ['sig', 'application/pgp-signature'],\n ['sil', 'audio/silk'],\n ['silo', 'model/mesh'],\n ['sis', 'application/vnd.symbian.install'],\n ['sisx', 'application/vnd.symbian.install'],\n ['sit', 'application/x-stuffit'],\n ['sitx', 'application/x-stuffitx'],\n ['siv', 'application/sieve'],\n ['skd', 'application/vnd.koan'],\n ['skm', 'application/vnd.koan'],\n ['skp', 'application/vnd.koan'],\n ['skt', 'application/vnd.koan'],\n ['sldm', 'application/vnd.ms-powerpoint.slide.macroenabled.12'],\n ['sldx', 'application/vnd.openxmlformats-officedocument.presentationml.slide'],\n ['slim', 'text/slim'],\n ['slm', 'text/slim'],\n ['sls', 'application/route-s-tsid+xml'],\n ['slt', 'application/vnd.epson.salt'],\n ['sm', 'application/vnd.stepmania.stepchart'],\n ['smf', 'application/vnd.stardivision.math'],\n ['smi', 'application/smil'],\n ['smil', 'application/smil'],\n ['smv', 'video/x-smv'],\n ['smzip', 'application/vnd.stepmania.package'],\n ['snd', 'audio/basic'],\n ['snf', 'application/x-font-snf'],\n ['so', 'application/octet-stream'],\n ['spc', 'application/x-pkcs7-certificates'],\n ['spdx', 'text/spdx'],\n ['spf', 'application/vnd.yamaha.smaf-phrase'],\n ['spl', 'application/x-futuresplash'],\n ['spot', 'text/vnd.in3d.spot'],\n ['spp', 'application/scvp-vp-response'],\n ['spq', 'application/scvp-vp-request'],\n ['spx', 'audio/ogg'],\n ['sql', 'application/x-sql'],\n ['src', 'application/x-wais-source'],\n ['srt', 'application/x-subrip'],\n ['sru', 'application/sru+xml'],\n ['srx', 'application/sparql-results+xml'],\n ['ssdl', 'application/ssdl+xml'],\n ['sse', 'application/vnd.kodak-descriptor'],\n ['ssf', 'application/vnd.epson.ssf'],\n ['ssml', 'application/ssml+xml'],\n ['sst', 'application/octet-stream'],\n ['st', 'application/vnd.sailingtracker.track'],\n ['stc', 'application/vnd.sun.xml.calc.template'],\n ['std', 'application/vnd.sun.xml.draw.template'],\n ['stf', 'application/vnd.wt.stf'],\n ['sti', 'application/vnd.sun.xml.impress.template'],\n ['stk', 'application/hyperstudio'],\n ['stl', 'model/stl'],\n ['stpx', 'model/step+xml'],\n ['stpxz', 'model/step-xml+zip'],\n ['stpz', 'model/step+zip'],\n ['str', 'application/vnd.pg.format'],\n ['stw', 'application/vnd.sun.xml.writer.template'],\n ['styl', 'text/stylus'],\n ['stylus', 'text/stylus'],\n ['sub', 'text/vnd.dvb.subtitle'],\n ['sus', 'application/vnd.sus-calendar'],\n ['susp', 'application/vnd.sus-calendar'],\n ['sv4cpio', 'application/x-sv4cpio'],\n ['sv4crc', 'application/x-sv4crc'],\n ['svc', 'application/vnd.dvb.service'],\n ['svd', 'application/vnd.svd'],\n ['svg', 'image/svg+xml'],\n ['svgz', 'image/svg+xml'],\n ['swa', 'application/x-director'],\n ['swf', 'application/x-shockwave-flash'],\n ['swi', 'application/vnd.aristanetworks.swi'],\n ['swidtag', 'application/swid+xml'],\n ['sxc', 'application/vnd.sun.xml.calc'],\n ['sxd', 'application/vnd.sun.xml.draw'],\n ['sxg', 'application/vnd.sun.xml.writer.global'],\n ['sxi', 'application/vnd.sun.xml.impress'],\n ['sxm', 'application/vnd.sun.xml.math'],\n ['sxw', 'application/vnd.sun.xml.writer'],\n ['t', 'text/troff'],\n ['t3', 'application/x-t3vm-image'],\n ['t38', 'image/t38'],\n ['taglet', 'application/vnd.mynfc'],\n ['tao', 'application/vnd.tao.intent-module-archive'],\n ['tap', 'image/vnd.tencent.tap'],\n ['tar', 'application/x-tar'],\n ['tcap', 'application/vnd.3gpp2.tcap'],\n ['tcl', 'application/x-tcl'],\n ['td', 'application/urc-targetdesc+xml'],\n ['teacher', 'application/vnd.smart.teacher'],\n ['tei', 'application/tei+xml'],\n ['teicorpus', 'application/tei+xml'],\n ['tex', 'application/x-tex'],\n ['texi', 'application/x-texinfo'],\n ['texinfo', 'application/x-texinfo'],\n ['text', 'text/plain'],\n ['tfi', 'application/thraud+xml'],\n ['tfm', 'application/x-tex-tfm'],\n ['tfx', 'image/tiff-fx'],\n ['tga', 'image/x-tga'],\n ['tgz', 'application/x-tar'],\n ['thmx', 'application/vnd.ms-officetheme'],\n ['tif', 'image/tiff'],\n ['tiff', 'image/tiff'],\n ['tk', 'application/x-tcl'],\n ['tmo', 'application/vnd.tmobile-livetv'],\n ['toml', 'application/toml'],\n ['torrent', 'application/x-bittorrent'],\n ['tpl', 'application/vnd.groove-tool-template'],\n ['tpt', 'application/vnd.trid.tpt'],\n ['tr', 'text/troff'],\n ['tra', 'application/vnd.trueapp'],\n ['trig', 'application/trig'],\n ['trm', 'application/x-msterminal'],\n ['ts', 'video/mp2t'],\n ['tsd', 'application/timestamped-data'],\n ['tsv', 'text/tab-separated-values'],\n ['ttc', 'font/collection'],\n ['ttf', 'font/ttf'],\n ['ttl', 'text/turtle'],\n ['ttml', 'application/ttml+xml'],\n ['twd', 'application/vnd.simtech-mindmapper'],\n ['twds', 'application/vnd.simtech-mindmapper'],\n ['txd', 'application/vnd.genomatix.tuxedo'],\n ['txf', 'application/vnd.mobius.txf'],\n ['txt', 'text/plain'],\n ['u8dsn', 'message/global-delivery-status'],\n ['u8hdr', 'message/global-headers'],\n ['u8mdn', 'message/global-disposition-notification'],\n ['u8msg', 'message/global'],\n ['u32', 'application/x-authorware-bin'],\n ['ubj', 'application/ubjson'],\n ['udeb', 'application/x-debian-package'],\n ['ufd', 'application/vnd.ufdl'],\n ['ufdl', 'application/vnd.ufdl'],\n ['ulx', 'application/x-glulx'],\n ['umj', 'application/vnd.umajin'],\n ['unityweb', 'application/vnd.unity'],\n ['uoml', 'application/vnd.uoml+xml'],\n ['uri', 'text/uri-list'],\n ['uris', 'text/uri-list'],\n ['urls', 'text/uri-list'],\n ['usdz', 'model/vnd.usdz+zip'],\n ['ustar', 'application/x-ustar'],\n ['utz', 'application/vnd.uiq.theme'],\n ['uu', 'text/x-uuencode'],\n ['uva', 'audio/vnd.dece.audio'],\n ['uvd', 'application/vnd.dece.data'],\n ['uvf', 'application/vnd.dece.data'],\n ['uvg', 'image/vnd.dece.graphic'],\n ['uvh', 'video/vnd.dece.hd'],\n ['uvi', 'image/vnd.dece.graphic'],\n ['uvm', 'video/vnd.dece.mobile'],\n ['uvp', 'video/vnd.dece.pd'],\n ['uvs', 'video/vnd.dece.sd'],\n ['uvt', 'application/vnd.dece.ttml+xml'],\n ['uvu', 'video/vnd.uvvu.mp4'],\n ['uvv', 'video/vnd.dece.video'],\n ['uvva', 'audio/vnd.dece.audio'],\n ['uvvd', 'application/vnd.dece.data'],\n ['uvvf', 'application/vnd.dece.data'],\n ['uvvg', 'image/vnd.dece.graphic'],\n ['uvvh', 'video/vnd.dece.hd'],\n ['uvvi', 'image/vnd.dece.graphic'],\n ['uvvm', 'video/vnd.dece.mobile'],\n ['uvvp', 'video/vnd.dece.pd'],\n ['uvvs', 'video/vnd.dece.sd'],\n ['uvvt', 'application/vnd.dece.ttml+xml'],\n ['uvvu', 'video/vnd.uvvu.mp4'],\n ['uvvv', 'video/vnd.dece.video'],\n ['uvvx', 'application/vnd.dece.unspecified'],\n ['uvvz', 'application/vnd.dece.zip'],\n ['uvx', 'application/vnd.dece.unspecified'],\n ['uvz', 'application/vnd.dece.zip'],\n ['vbox', 'application/x-virtualbox-vbox'],\n ['vbox-extpack', 'application/x-virtualbox-vbox-extpack'],\n ['vcard', 'text/vcard'],\n ['vcd', 'application/x-cdlink'],\n ['vcf', 'text/x-vcard'],\n ['vcg', 'application/vnd.groove-vcard'],\n ['vcs', 'text/x-vcalendar'],\n ['vcx', 'application/vnd.vcx'],\n ['vdi', 'application/x-virtualbox-vdi'],\n ['vds', 'model/vnd.sap.vds'],\n ['vhd', 'application/x-virtualbox-vhd'],\n ['vis', 'application/vnd.visionary'],\n ['viv', 'video/vnd.vivo'],\n ['vlc', 'application/videolan'],\n ['vmdk', 'application/x-virtualbox-vmdk'],\n ['vob', 'video/x-ms-vob'],\n ['vor', 'application/vnd.stardivision.writer'],\n ['vox', 'application/x-authorware-bin'],\n ['vrml', 'model/vrml'],\n ['vsd', 'application/vnd.visio'],\n ['vsf', 'application/vnd.vsf'],\n ['vss', 'application/vnd.visio'],\n ['vst', 'application/vnd.visio'],\n ['vsw', 'application/vnd.visio'],\n ['vtf', 'image/vnd.valve.source.texture'],\n ['vtt', 'text/vtt'],\n ['vtu', 'model/vnd.vtu'],\n ['vxml', 'application/voicexml+xml'],\n ['w3d', 'application/x-director'],\n ['wad', 'application/x-doom'],\n ['wadl', 'application/vnd.sun.wadl+xml'],\n ['war', 'application/java-archive'],\n ['wasm', 'application/wasm'],\n ['wav', 'audio/x-wav'],\n ['wax', 'audio/x-ms-wax'],\n ['wbmp', 'image/vnd.wap.wbmp'],\n ['wbs', 'application/vnd.criticaltools.wbs+xml'],\n ['wbxml', 'application/wbxml'],\n ['wcm', 'application/vnd.ms-works'],\n ['wdb', 'application/vnd.ms-works'],\n ['wdp', 'image/vnd.ms-photo'],\n ['weba', 'audio/webm'],\n ['webapp', 'application/x-web-app-manifest+json'],\n ['webm', 'video/webm'],\n ['webmanifest', 'application/manifest+json'],\n ['webp', 'image/webp'],\n ['wg', 'application/vnd.pmi.widget'],\n ['wgt', 'application/widget'],\n ['wks', 'application/vnd.ms-works'],\n ['wm', 'video/x-ms-wm'],\n ['wma', 'audio/x-ms-wma'],\n ['wmd', 'application/x-ms-wmd'],\n ['wmf', 'image/wmf'],\n ['wml', 'text/vnd.wap.wml'],\n ['wmlc', 'application/wmlc'],\n ['wmls', 'text/vnd.wap.wmlscript'],\n ['wmlsc', 'application/vnd.wap.wmlscriptc'],\n ['wmv', 'video/x-ms-wmv'],\n ['wmx', 'video/x-ms-wmx'],\n ['wmz', 'application/x-msmetafile'],\n ['woff', 'font/woff'],\n ['woff2', 'font/woff2'],\n ['word', 'application/msword'],\n ['wpd', 'application/vnd.wordperfect'],\n ['wpl', 'application/vnd.ms-wpl'],\n ['wps', 'application/vnd.ms-works'],\n ['wqd', 'application/vnd.wqd'],\n ['wri', 'application/x-mswrite'],\n ['wrl', 'model/vrml'],\n ['wsc', 'message/vnd.wfa.wsc'],\n ['wsdl', 'application/wsdl+xml'],\n ['wspolicy', 'application/wspolicy+xml'],\n ['wtb', 'application/vnd.webturbo'],\n ['wvx', 'video/x-ms-wvx'],\n ['x3d', 'model/x3d+xml'],\n ['x3db', 'model/x3d+fastinfoset'],\n ['x3dbz', 'model/x3d+binary'],\n ['x3dv', 'model/x3d-vrml'],\n ['x3dvz', 'model/x3d+vrml'],\n ['x3dz', 'model/x3d+xml'],\n ['x32', 'application/x-authorware-bin'],\n ['x_b', 'model/vnd.parasolid.transmit.binary'],\n ['x_t', 'model/vnd.parasolid.transmit.text'],\n ['xaml', 'application/xaml+xml'],\n ['xap', 'application/x-silverlight-app'],\n ['xar', 'application/vnd.xara'],\n ['xav', 'application/xcap-att+xml'],\n ['xbap', 'application/x-ms-xbap'],\n ['xbd', 'application/vnd.fujixerox.docuworks.binder'],\n ['xbm', 'image/x-xbitmap'],\n ['xca', 'application/xcap-caps+xml'],\n ['xcs', 'application/calendar+xml'],\n ['xdf', 'application/xcap-diff+xml'],\n ['xdm', 'application/vnd.syncml.dm+xml'],\n ['xdp', 'application/vnd.adobe.xdp+xml'],\n ['xdssc', 'application/dssc+xml'],\n ['xdw', 'application/vnd.fujixerox.docuworks'],\n ['xel', 'application/xcap-el+xml'],\n ['xenc', 'application/xenc+xml'],\n ['xer', 'application/patch-ops-error+xml'],\n ['xfdf', 'application/vnd.adobe.xfdf'],\n ['xfdl', 'application/vnd.xfdl'],\n ['xht', 'application/xhtml+xml'],\n ['xhtml', 'application/xhtml+xml'],\n ['xhvml', 'application/xv+xml'],\n ['xif', 'image/vnd.xiff'],\n ['xl', 'application/excel'],\n ['xla', 'application/vnd.ms-excel'],\n ['xlam', 'application/vnd.ms-excel.addin.macroEnabled.12'],\n ['xlc', 'application/vnd.ms-excel'],\n ['xlf', 'application/xliff+xml'],\n ['xlm', 'application/vnd.ms-excel'],\n ['xls', 'application/vnd.ms-excel'],\n ['xlsb', 'application/vnd.ms-excel.sheet.binary.macroEnabled.12'],\n ['xlsm', 'application/vnd.ms-excel.sheet.macroEnabled.12'],\n ['xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],\n ['xlt', 'application/vnd.ms-excel'],\n ['xltm', 'application/vnd.ms-excel.template.macroEnabled.12'],\n ['xltx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.template'],\n ['xlw', 'application/vnd.ms-excel'],\n ['xm', 'audio/xm'],\n ['xml', 'application/xml'],\n ['xns', 'application/xcap-ns+xml'],\n ['xo', 'application/vnd.olpc-sugar'],\n ['xop', 'application/xop+xml'],\n ['xpi', 'application/x-xpinstall'],\n ['xpl', 'application/xproc+xml'],\n ['xpm', 'image/x-xpixmap'],\n ['xpr', 'application/vnd.is-xpr'],\n ['xps', 'application/vnd.ms-xpsdocument'],\n ['xpw', 'application/vnd.intercon.formnet'],\n ['xpx', 'application/vnd.intercon.formnet'],\n ['xsd', 'application/xml'],\n ['xsl', 'application/xml'],\n ['xslt', 'application/xslt+xml'],\n ['xsm', 'application/vnd.syncml+xml'],\n ['xspf', 'application/xspf+xml'],\n ['xul', 'application/vnd.mozilla.xul+xml'],\n ['xvm', 'application/xv+xml'],\n ['xvml', 'application/xv+xml'],\n ['xwd', 'image/x-xwindowdump'],\n ['xyz', 'chemical/x-xyz'],\n ['xz', 'application/x-xz'],\n ['yaml', 'text/yaml'],\n ['yang', 'application/yang'],\n ['yin', 'application/yin+xml'],\n ['yml', 'text/yaml'],\n ['ymp', 'text/x-suse-ymp'],\n ['z', 'application/x-compress'],\n ['z1', 'application/x-zmachine'],\n ['z2', 'application/x-zmachine'],\n ['z3', 'application/x-zmachine'],\n ['z4', 'application/x-zmachine'],\n ['z5', 'application/x-zmachine'],\n ['z6', 'application/x-zmachine'],\n ['z7', 'application/x-zmachine'],\n ['z8', 'application/x-zmachine'],\n ['zaz', 'application/vnd.zzazz.deck+xml'],\n ['zip', 'application/zip'],\n ['zir', 'application/vnd.zul'],\n ['zirz', 'application/vnd.zul'],\n ['zmm', 'application/vnd.handheld-entertainment+xml'],\n ['zsh', 'text/x-scriptzsh']\n]);\nexport function toFileWithPath(file, path, h) {\n const f = withMimeType(file);\n const { webkitRelativePath } = file;\n const p = typeof path === 'string'\n ? path\n // If <input webkitdirectory> is set,\n // the File will have a {webkitRelativePath} property\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory\n : typeof webkitRelativePath === 'string' && webkitRelativePath.length > 0\n ? webkitRelativePath\n : `./${file.name}`;\n if (typeof f.path !== 'string') { // on electron, path is already set to the absolute path\n setObjProp(f, 'path', p);\n }\n if (h !== undefined) {\n Object.defineProperty(f, 'handle', {\n value: h,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n // Always populate a relative path so that even electron apps have access to a relativePath value\n setObjProp(f, 'relativePath', p);\n return f;\n}\nfunction withMimeType(file) {\n const { name } = file;\n const hasExtension = name && name.lastIndexOf('.') !== -1;\n if (hasExtension && !file.type) {\n const ext = name.split('.')\n .pop().toLowerCase();\n const type = COMMON_MIME_TYPES.get(ext);\n if (type) {\n Object.defineProperty(file, 'type', {\n value: type,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n }\n return file;\n}\nfunction setObjProp(f, key, value) {\n Object.defineProperty(f, key, {\n value,\n writable: false,\n configurable: false,\n enumerable: true\n });\n}\n//# sourceMappingURL=file.js.map","import { __awaiter } from \"tslib\";\nimport { toFileWithPath } from './file';\nconst FILES_TO_IGNORE = [\n // Thumbnail cache files for macOS and Windows\n '.DS_Store', // macOs\n 'Thumbs.db' // Windows\n];\n/**\n * Convert a DragEvent's DataTrasfer object to a list of File objects\n * NOTE: If some of the items are folders,\n * everything will be flattened and placed in the same list but the paths will be kept as a {path} property.\n *\n * EXPERIMENTAL: A list of https://developer.mozilla.org/en-US/docs/Web/API/FileSystemHandle objects can also be passed as an arg\n * and a list of File objects will be returned.\n *\n * @param evt\n */\nexport function fromEvent(evt) {\n return __awaiter(this, void 0, void 0, function* () {\n if (isObject(evt) && isDataTransfer(evt.dataTransfer)) {\n return getDataTransferFiles(evt.dataTransfer, evt.type);\n }\n else if (isChangeEvt(evt)) {\n return getInputFiles(evt);\n }\n else if (Array.isArray(evt) && evt.every(item => 'getFile' in item && typeof item.getFile === 'function')) {\n return getFsHandleFiles(evt);\n }\n return [];\n });\n}\nfunction isDataTransfer(value) {\n return isObject(value);\n}\nfunction isChangeEvt(value) {\n return isObject(value) && isObject(value.target);\n}\nfunction isObject(v) {\n return typeof v === 'object' && v !== null;\n}\nfunction getInputFiles(evt) {\n return fromList(evt.target.files).map(file => toFileWithPath(file));\n}\n// Ee expect each handle to be https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle\nfunction getFsHandleFiles(handles) {\n return __awaiter(this, void 0, void 0, function* () {\n const files = yield Promise.all(handles.map(h => h.getFile()));\n return files.map(file => toFileWithPath(file));\n });\n}\nfunction getDataTransferFiles(dt, type) {\n return __awaiter(this, void 0, void 0, function* () {\n // IE11 does not support dataTransfer.items\n // See https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/items#Browser_compatibility\n if (dt.items) {\n const items = fromList(dt.items)\n .filter(item => item.kind === 'file');\n // According to https://html.spec.whatwg.org/multipage/dnd.html#dndevents,\n // only 'dragstart' and 'drop' has access to the data (source node)\n if (type !== 'drop') {\n return items;\n }\n const files = yield Promise.all(items.map(toFilePromises));\n return noIgnoredFiles(flatten(files));\n }\n return noIgnoredFiles(fromList(dt.files)\n .map(file => toFileWithPath(file)));\n });\n}\nfunction noIgnoredFiles(files) {\n return files.filter(file => FILES_TO_IGNORE.indexOf(file.name) === -1);\n}\n// IE11 does not support Array.from()\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Browser_compatibility\n// https://developer.mozilla.org/en-US/docs/Web/API/FileList\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList\nfunction fromList(items) {\n if (items === null) {\n return [];\n }\n const files = [];\n // tslint:disable: prefer-for-of\n for (let i = 0; i < items.length; i++) {\n const file = items[i];\n files.push(file);\n }\n return files;\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem\nfunction toFilePromises(item) {\n if (typeof item.webkitGetAsEntry !== 'function') {\n return fromDataTransferItem(item);\n }\n const entry = item.webkitGetAsEntry();\n // Safari supports dropping an image node from a different window and can be retrieved using\n // the DataTransferItem.getAsFile() API\n // NOTE: FileSystemEntry.file() throws if trying to get the file\n if (entry && entry.isDirectory) {\n return fromDirEntry(entry);\n }\n return fromDataTransferItem(item, entry);\n}\nfunction flatten(items) {\n return items.reduce((acc, files) => [\n ...acc,\n ...(Array.isArray(files) ? flatten(files) : [files])\n ], []);\n}\nfunction fromDataTransferItem(item, entry) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n // Check if we're in a secure context; due to a bug in Chrome (as far as we know)\n // the browser crashes when calling this API (yet to be confirmed as a consistent behaviour).\n //\n // See:\n // - https://issues.chromium.org/issues/40186242\n // - https://github.com/react-dropzone/react-dropzone/issues/1397\n if (globalThis.isSecureContext && typeof item.getAsFileSystemHandle === 'function') {\n const h = yield item.getAsFileSystemHandle();\n if (h === null) {\n throw new Error(`${item} is not a File`);\n }\n // It seems that the handle can be `undefined` (see https://github.com/react-dropzone/file-selector/issues/120),\n // so we check if it isn't; if it is, the code path continues to the next API (`getAsFile`).\n if (h !== undefined) {\n const file = yield h.getFile();\n file.handle = h;\n return toFileWithPath(file);\n }\n }\n const file = item.getAsFile();\n if (!file) {\n throw new Error(`${item} is not a File`);\n }\n const fwp = toFileWithPath(file, (_a = entry === null || entry === void 0 ? void 0 : entry.fullPath) !== null && _a !== void 0 ? _a : undefined);\n return fwp;\n });\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry\nfunction fromEntry(entry) {\n return __awaiter(this, void 0, void 0, function* () {\n return entry.isDirectory ? fromDirEntry(entry) : fromFileEntry(entry);\n });\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry\nfunction fromDirEntry(entry) {\n const reader = entry.createReader();\n return new Promise((resolve, reject) => {\n const entries = [];\n function readEntries() {\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/createReader\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries\n reader.readEntries((batch) => __awaiter(this, void 0, void 0, function* () {\n if (!batch.length) {\n // Done reading directory\n try {\n const files = yield Promise.all(entries);\n resolve(files);\n }\n catch (err) {\n reject(err);\n }\n }\n else {\n const items = Promise.all(batch.map(fromEntry));\n entries.push(items);\n // Continue reading\n readEntries();\n }\n }), (err) => {\n reject(err);\n });\n }\n readEntries();\n });\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry\nfunction fromFileEntry(entry) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n entry.file((file) => {\n const fwp = toFileWithPath(file, entry.fullPath);\n resolve(fwp);\n }, (err) => {\n reject(err);\n });\n });\n });\n}\n//# sourceMappingURL=file-selector.js.map","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n\n if (acceptedFilesArray.length === 0) {\n return true;\n }\n\n var fileName = file.name || '';\n var mimeType = (file.type || '').toLowerCase();\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim().toLowerCase();\n\n if (validType.charAt(0) === '.') {\n return fileName.toLowerCase().endsWith(validType);\n } else if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n\n return mimeType === validType;\n });\n }\n\n return true;\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport _accepts from \"attr-accept\";\nvar accepts = typeof _accepts === \"function\" ? _accepts : _accepts.default; // Error codes\n\nexport var FILE_INVALID_TYPE = \"file-invalid-type\";\nexport var FILE_TOO_LARGE = \"file-too-large\";\nexport var FILE_TOO_SMALL = \"file-too-small\";\nexport var TOO_MANY_FILES = \"too-many-files\";\nexport var ErrorCode = {\n FileInvalidType: FILE_INVALID_TYPE,\n FileTooLarge: FILE_TOO_LARGE,\n FileTooSmall: FILE_TOO_SMALL,\n TooManyFiles: TOO_MANY_FILES\n};\n/**\n *\n * @param {string} accept\n */\n\nexport var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr() {\n var accept = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var acceptArr = accept.split(\",\");\n var msg = acceptArr.length > 1 ? \"one of \".concat(acceptArr.join(\", \")) : acceptArr[0];\n return {\n code: FILE_INVALID_TYPE,\n message: \"File type must be \".concat(msg)\n };\n};\nexport var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {\n return {\n code: FILE_TOO_LARGE,\n message: \"File is larger than \".concat(maxSize, \" \").concat(maxSize === 1 ? \"byte\" : \"bytes\")\n };\n};\nexport var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {\n return {\n code: FILE_TOO_SMALL,\n message: \"File is smaller than \".concat(minSize, \" \").concat(minSize === 1 ? \"byte\" : \"bytes\")\n };\n};\nexport var TOO_MANY_FILES_REJECTION = {\n code: TOO_MANY_FILES,\n message: \"Too many files\"\n};\n/**\n * Check if file is accepted.\n *\n * Firefox versions prior to 53 return a bogus MIME type for every file drag,\n * so dragovers with that MIME type will always be accepted.\n *\n * @param {File} file\n * @param {string} accept\n * @returns\n */\n\nexport function fileAccepted(file, accept) {\n var isAcceptable = file.type === \"application/x-moz-file\" || accepts(file, accept);\n return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];\n}\nexport function fileMatchSize(file, minSize, maxSize) {\n if (isDefined(file.size)) {\n if (isDefined(minSize) && isDefined(maxSize)) {\n if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];\n } else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n }\n\n return [true, null];\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n/**\n *\n * @param {object} options\n * @param {File[]} options.files\n * @param {string} [options.accept]\n * @param {number} [options.minSize]\n * @param {number} [options.maxSize]\n * @param {boolean} [options.multiple]\n * @param {number} [options.maxFiles]\n * @param {(f: File) => FileError|FileError[]|null} [options.validator]\n * @returns\n */\n\n\nexport function allFilesAccepted(_ref) {\n var files = _ref.files,\n accept = _ref.accept,\n minSize = _ref.minSize,\n maxSize = _ref.maxSize,\n multiple = _ref.multiple,\n maxFiles = _ref.maxFiles,\n validator = _ref.validator;\n\n if (!multiple && files.length > 1 || multiple && maxFiles >= 1 && files.length > maxFiles) {\n return false;\n }\n\n return files.every(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 1),\n accepted = _fileAccepted2[0];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 1),\n sizeMatch = _fileMatchSize2[0];\n\n var customErrors = validator ? validator(file) : null;\n return accepted && sizeMatch && !customErrors;\n });\n} // React's synthetic events has event.isPropagationStopped,\n// but to remain compatibility with other libs (Preact) fall back\n// to check event.cancelBubble\n\nexport function isPropagationStopped(event) {\n if (typeof event.isPropagationStopped === \"function\") {\n return event.isPropagationStopped();\n } else if (typeof event.cancelBubble !== \"undefined\") {\n return event.cancelBubble;\n }\n\n return false;\n}\nexport function isEvtWithFiles(event) {\n if (!event.dataTransfer) {\n return !!event.target && !!event.target.files;\n } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types\n // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file\n\n\n return Array.prototype.some.call(event.dataTransfer.types, function (type) {\n return type === \"Files\" || type === \"application/x-moz-file\";\n });\n}\nexport function isKindFile(item) {\n return _typeof(item) === \"object\" && item !== null && item.kind === \"file\";\n} // allow the entire document to be a drag target\n\nexport function onDocumentDragOver(event) {\n event.preventDefault();\n}\n\nfunction isIe(userAgent) {\n return userAgent.indexOf(\"MSIE\") !== -1 || userAgent.indexOf(\"Trident/\") !== -1;\n}\n\nfunction isEdge(userAgent) {\n return userAgent.indexOf(\"Edge/\") !== -1;\n}\n\nexport function isIeOrEdge() {\n var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;\n return isIe(userAgent) || isEdge(userAgent);\n}\n/**\n * This is intended to be used to compose event handlers\n * They are executed in order until one of them calls `event.isPropagationStopped()`.\n * Note that the check is done on the first invoke too,\n * meaning that if propagation was stopped before invoking the fns,\n * no handlers will be executed.\n *\n * @param {Function} fns the event hanlder functions\n * @return {Function} the event handler to add to an element\n */\n\nexport function composeEventHandlers() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return fns.some(function (fn) {\n if (!isPropagationStopped(event) && fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return isPropagationStopped(event);\n });\n };\n}\n/**\n * canUseFileSystemAccessAPI checks if the [File System Access API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)\n * is supported by the browser.\n * @returns {boolean}\n */\n\nexport function canUseFileSystemAccessAPI() {\n return \"showOpenFilePicker\" in window;\n}\n/**\n * Convert the `{accept}` dropzone prop to the\n * `{types}` option for https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n *\n * @param {AcceptProp} accept\n * @returns {{accept: string[]}[]}\n */\n\nexport function pickerOptionsFromAccept(accept) {\n if (isDefined(accept)) {\n var acceptForPicker = Object.entries(accept).filter(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n mimeType = _ref3[0],\n ext = _ref3[1];\n\n var ok = true;\n\n if (!isMIMEType(mimeType)) {\n console.warn(\"Skipped \\\"\".concat(mimeType, \"\\\" because it is not a valid MIME type. Check https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types for a list of valid MIME types.\"));\n ok = false;\n }\n\n if (!Array.isArray(ext) || !ext.every(isExt)) {\n console.warn(\"Skipped \\\"\".concat(mimeType, \"\\\" because an invalid file extension was provided.\"));\n ok = false;\n }\n\n return ok;\n }).reduce(function (agg, _ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n mimeType = _ref5[0],\n ext = _ref5[1];\n\n return _objectSpread(_objectSpread({}, agg), {}, _defineProperty({}, mimeType, ext));\n }, {});\n return [{\n // description is required due to https://crbug.com/1264708\n description: \"Files\",\n accept: acceptForPicker\n }];\n }\n\n return accept;\n}\n/**\n * Convert the `{accept}` dropzone prop to an array of MIME types/extensions.\n * @param {AcceptProp} accept\n * @returns {string}\n */\n\nexport function acceptPropAsAcceptAttr(accept) {\n if (isDefined(accept)) {\n return Object.entries(accept).reduce(function (a, _ref6) {\n var _ref7 = _slicedToArray(_ref6, 2),\n mimeType = _ref7[0],\n ext = _ref7[1];\n\n return [].concat(_toConsumableArray(a), [mimeType], _toConsumableArray(ext));\n }, []) // Silently discard invalid entries as pickerOptionsFromAccept warns about these\n .filter(function (v) {\n return isMIMEType(v) || isExt(v);\n }).join(\",\");\n }\n\n return undefined;\n}\n/**\n * Check if v is an exception caused by aborting a request (e.g window.showOpenFilePicker()).\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.\n * @param {any} v\n * @returns {boolean} True if v is an abort exception.\n */\n\nexport function isAbort(v) {\n return v instanceof DOMException && (v.name === \"AbortError\" || v.code === v.ABORT_ERR);\n}\n/**\n * Check if v is a security error.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.\n * @param {any} v\n * @returns {boolean} True if v is a security error.\n */\n\nexport function isSecurityError(v) {\n return v instanceof DOMException && (v.name === \"SecurityError\" || v.code === v.SECURITY_ERR);\n}\n/**\n * Check if v is a MIME type string.\n *\n * See accepted format: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers.\n *\n * @param {string} v\n */\n\nexport function isMIMEType(v) {\n return v === \"audio/*\" || v === \"video/*\" || v === \"image/*\" || v === \"text/*\" || v === \"application/*\" || /\\w+\\/[-+.\\w]+/g.test(v);\n}\n/**\n * Check if v is a file extension.\n * @param {string} v\n */\n\nexport function isExt(v) {\n return /^.*\\.[\\w]+$/.test(v);\n}\n/**\n * @typedef {Object.<string, string[]>} AcceptProp\n */\n\n/**\n * @typedef {object} FileError\n * @property {string} message\n * @property {ErrorCode|string} code\n */\n\n/**\n * @typedef {\"file-invalid-type\"|\"file-too-large\"|\"file-too-small\"|\"too-many-files\"} ErrorCode\n */","var _excluded = [\"children\"],\n _excluded2 = [\"open\"],\n _excluded3 = [\"refKey\", \"role\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onClick\", \"onDragEnter\", \"onDragOver\", \"onDragLeave\", \"onDrop\"],\n _excluded4 = [\"refKey\", \"onChange\", \"onClick\"];\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* eslint prefer-template: 0 */\nimport React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { fromEvent } from \"file-selector\";\nimport { acceptPropAsAcceptAttr, allFilesAccepted, composeEventHandlers, fileAccepted, fileMatchSize, canUseFileSystemAccessAPI, isAbort, isEvtWithFiles, isIeOrEdge, isPropagationStopped, isSecurityError, onDocumentDragOver, pickerOptionsFromAccept, TOO_MANY_FILES_REJECTION } from \"./utils/index\";\n/**\n * Convenience wrapper component for the `useDropzone` hook\n *\n * ```jsx\n * <Dropzone>\n * {({getRootProps, getInputProps}) => (\n * <div {...getRootProps()}>\n * <input {...getInputProps()} />\n * <p>Drag 'n' drop some files here, or click to select files</p>\n * </div>\n * )}\n * </Dropzone>\n * ```\n */\n\nvar Dropzone = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n params = _objectWithoutProperties(_ref, _excluded);\n\n var _useDropzone = useDropzone(params),\n open = _useDropzone.open,\n props = _objectWithoutProperties(_useDropzone, _excluded2);\n\n useImperativeHandle(ref, function () {\n return {\n open: open\n };\n }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element\n\n return /*#__PURE__*/React.createElement(Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {\n open: open\n })));\n});\nDropzone.displayName = \"Dropzone\"; // Add default props for react-docgen\n\nvar defaultProps = {\n disabled: false,\n getFilesFromEvent: fromEvent,\n maxSize: Infinity,\n minSize: 0,\n multiple: true,\n maxFiles: 0,\n preventDropOnDocument: true,\n noClick: false,\n noKeyboard: false,\n noDrag: false,\n noDragEventsBubbling: false,\n validator: null,\n useFsAccessApi: false,\n autoFocus: false\n};\nDropzone.defaultProps = defaultProps;\nDropzone.propTypes = {\n /**\n * Render function that exposes the dropzone state and prop getter fns\n *\n * @param {object} params\n * @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render\n * @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render\n * @param {Function} params.open Open the native file selection dialog\n * @param {boolean} params.isFocused Dropzone area is in focus\n * @param {boolean} params.isFileDialogActive File dialog is opened\n * @param {boolean} params.isDragActive Active drag is in progress\n * @param {boolean} params.isDragAccept Dragged files are accepted\n * @param {boolean} params.isDragReject Some dragged files are rejected\n * @param {File[]} params.acceptedFiles Accepted files\n * @param {FileRejection[]} params.fileRejections Rejected files and why they were rejected\n */\n children: PropTypes.func,\n\n /**\n * Set accepted file types.\n * Checkout https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker types option for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all (https://github.com/react-dropzone/react-dropzone/issues/276).\n */\n accept: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.string)),\n\n /**\n * Allow drag 'n' drop (or selection from the file dialog) of multiple files\n */\n multiple: PropTypes.bool,\n\n /**\n * If false, allow dropped items to take over the current browser window\n */\n preventDropOnDocument: PropTypes.bool,\n\n /**\n * If true, disables click to open the native file selection dialog\n */\n noClick: PropTypes.bool,\n\n /**\n * If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n */\n noKeyboard: PropTypes.bool,\n\n /**\n * If true, disables drag 'n' drop\n */\n noDrag: PropTypes.bool,\n\n /**\n * If true, stops drag event propagation to parents\n */\n noDragEventsBubbling: PropTypes.bool,\n\n /**\n * Minimum file size (in bytes)\n */\n minSize: PropTypes.number,\n\n /**\n * Maximum file size (in bytes)\n */\n maxSize: PropTypes.number,\n\n /**\n * Maximum accepted number of files\n * The default value is 0 which means there is no limitation to how many files are accepted.\n */\n maxFiles: PropTypes.number,\n\n /**\n * Enable/disable the dropzone\n */\n disabled: PropTypes.bool,\n\n /**\n * Use this to provide a custom file aggregator\n *\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n getFilesFromEvent: PropTypes.func,\n\n /**\n * Cb for when closing the file dialog with no selection\n */\n onFileDialogCancel: PropTypes.func,\n\n /**\n * Cb for when opening the file dialog\n */\n onFileDialogOpen: PropTypes.func,\n\n /**\n * Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `<input type=\"file\">` click event.\n */\n useFsAccessApi: PropTypes.bool,\n\n /**\n * Set to true to focus the root element on render\n */\n autoFocus: PropTypes.bool,\n\n /**\n * Cb for when the `dragenter` event occurs.\n *\n * @param {DragEvent} event\n */\n onDragEnter: PropTypes.func,\n\n /**\n * Cb for when the `dragleave` event occurs\n *\n * @param {DragEvent} event\n */\n onDragLeave: PropTypes.func,\n\n /**\n * Cb for when the `dragover` event occurs\n *\n * @param {DragEvent} event\n */\n onDragOver: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n *\n * @param {File[]} acceptedFiles\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n onDrop: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are accepted, this callback is not invoked.\n *\n * @param {File[]} files\n * @param {(DragEvent|Event)} event\n */\n onDropAccepted: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are rejected, this callback is not invoked.\n *\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event\n */\n onDropRejected: PropTypes.func,\n\n /**\n * Cb for when there's some error from any of the promises.\n *\n * @param {Error} error\n */\n onError: PropTypes.func,\n\n /**\n * Custom validation function. It must return null if there's no errors.\n * @param {File} file\n * @returns {FileError|FileError[]|null}\n */\n validator: PropTypes.func\n};\nexport default Dropzone;\n/**\n * A function that is invoked for the `dragenter`,\n * `dragover` and `dragleave` events.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dragCb\n * @param {DragEvent} event\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dropCb\n * @param {File[]} acceptedFiles List of accepted files\n * @param {FileRejection[]} fileRejections List of rejected files and why they were rejected\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are files (such as link, text, etc.).\n *\n * @callback dropAcceptedCb\n * @param {File[]} files List of accepted files that meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n *\n * @callback dropRejectedCb\n * @param {File[]} files List of rejected files that do not meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is used aggregate files,\n * in a asynchronous fashion, from drag or input change events.\n *\n * @callback getFilesFromEvent\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n * @returns {(File[]|Promise<File[]>)}\n */\n\n/**\n * An object with the current dropzone state.\n *\n * @typedef {object} DropzoneState\n * @property {boolean} isFocused Dropzone area is in focus\n * @property {boolean} isFileDialogActive File dialog is opened\n * @property {boolean} isDragActive Active drag is in progress\n * @property {boolean} isDragAccept Dragged files are accepted\n * @property {boolean} isDragReject Some dragged files are rejected\n * @property {File[]} acceptedFiles Accepted files\n * @property {FileRejection[]} fileRejections Rejected files and why they were rejected\n */\n\n/**\n * An object with the dropzone methods.\n *\n * @typedef {object} DropzoneMethods\n * @property {Function} getRootProps Returns the props you should apply to the root drop container you render\n * @property {Function} getInputProps Returns the props you should apply to hidden file input you render\n * @property {Function} open Open the native file selection dialog\n */\n\nvar initialState = {\n isFocused: false,\n isFileDialogActive: false,\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false,\n acceptedFiles: [],\n fileRejections: []\n};\n/**\n * A React hook that creates a drag 'n' drop area.\n *\n * ```jsx\n * function MyDropzone(props) {\n * const {getRootProps, getInputProps} = useDropzone({\n * onDrop: acceptedFiles => {\n * // do something with the File objects, e.g. upload to some server\n * }\n * });\n * return (\n * <div {...getRootProps()}>\n * <input {...getInputProps()} />\n * <p>Drag and drop some files here, or click to select files</p>\n * </div>\n * )\n * }\n * ```\n *\n * @function useDropzone\n *\n * @param {object} props\n * @param {import(\"./utils\").AcceptProp} [props.accept] Set accepted file types.\n * Checkout https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker types option for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all (https://github.com/react-dropzone/react-dropzone/issues/276).\n * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files\n * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window\n * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog\n * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop\n * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents\n * @param {number} [props.minSize=0] Minimum file size (in bytes)\n * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)\n * @param {boolean} [props.disabled=false] Enable/disable the dropzone\n * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator\n * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection\n * @param {boolean} [props.useFsAccessApi] Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `<input type=\"file\">` click event.\n * @param {boolean} autoFocus Set to true to auto focus the root element.\n * @param {Function} [props.onFileDialogOpen] Cb for when opening the file dialog\n * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.\n * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs\n * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs\n * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be an object with keys as a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) and the value an array of file extensions (optional).\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n * @param {dropAcceptedCb} [props.onDropAccepted]\n * @param {dropRejectedCb} [props.onDropRejected]\n * @param {(error: Error) => void} [props.onError]\n *\n * @returns {DropzoneState & DropzoneMethods}\n */\n\nexport function useDropzone() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),\n accept = _defaultProps$props.accept,\n disabled = _defaultProps$props.disabled,\n getFilesFromEvent = _defaultProps$props.getFilesFromEvent,\n maxSize = _defaultProps$props.maxSize,\n minSize = _defaultProps$props.minSize,\n multiple = _defaultProps$props.multiple,\n maxFiles = _defaultProps$props.maxFiles,\n onDragEnter = _defaultProps$props.onDragEnter,\n onDragLeave = _defaultProps$props.onDragLeave,\n onDragOver = _defaultProps$props.onDragOver,\n onDrop = _defaultProps$props.onDrop,\n onDropAccepted = _defaultProps$props.onDropAccepted,\n onDropRejected = _defaultProps$props.onDropRejected,\n onFileDialogCancel = _defaultProps$props.onFileDialogCancel,\n onFileDialogOpen = _defaultProps$props.onFileDialogOpen,\n useFsAccessApi = _defaultProps$props.useFsAccessApi,\n autoFocus = _defaultProps$props.autoFocus,\n preventDropOnDocument = _defaultProps$props.preventDropOnDocument,\n noClick = _defaultProps$props.noClick,\n noKeyboard = _defaultProps$props.noKeyboard,\n noDrag = _defaultProps$props.noDrag,\n noDragEventsBubbling = _defaultProps$props.noDragEventsBubbling,\n onError = _defaultProps$props.onError,\n validator = _defaultProps$props.validator;\n\n var acceptAttr = useMemo(function () {\n return acceptPropAsAcceptAttr(accept);\n }, [accept]);\n var pickerTypes = useMemo(function () {\n return pickerOptionsFromAccept(accept);\n }, [accept]);\n var onFileDialogOpenCb = useMemo(function () {\n return typeof onFileDialogOpen === \"function\" ? onFileDialogOpen : noop;\n }, [onFileDialogOpen]);\n var onFileDialogCancelCb = useMemo(function () {\n return typeof onFileDialogCancel === \"function\" ? onFileDialogCancel : noop;\n }, [onFileDialogCancel]);\n /**\n * @constant\n * @type {React.MutableRefObject<HTMLElement>}\n */\n\n var rootRef = useRef(null);\n var inputRef = useRef(null);\n\n var _useReducer = useReducer(reducer, initialState),\n _useReducer2 = _slicedToArray(_useReducer, 2),\n state = _useReducer2[0],\n dispatch = _useReducer2[1];\n\n var isFocused = state.isFocused,\n isFileDialogActive = state.isFileDialogActive;\n var fsAccessApiWorksRef = useRef(typeof window !== \"undefined\" && window.isSecureContext && useFsAccessApi && canUseFileSystemAccessAPI()); // Update file dialog active state when the window is focused on\n\n var onWindowFocus = function onWindowFocus() {\n // Execute the timeout only if the file dialog is opened in the browser\n if (!fsAccessApiWorksRef.current && isFileDialogActive) {\n setTimeout(function () {\n if (inputRef.current) {\n var files = inputRef.current.files;\n\n if (!files.length) {\n dispatch({\n type: \"closeDialog\"\n });\n onFileDialogCancelCb();\n }\n }\n }, 300);\n }\n };\n\n useEffect(function () {\n window.addEventListener(\"focus\", onWindowFocus, false);\n return function () {\n window.removeEventListener(\"focus\", onWindowFocus, false);\n };\n }, [inputRef, isFileDialogActive, onFileDialogCancelCb, fsAccessApiWorksRef]);\n var dragTargetsRef = useRef([]);\n\n var onDocumentDrop = function onDocumentDrop(event) {\n if (rootRef.current && rootRef.current.contains(event.target)) {\n // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n return;\n }\n\n event.preventDefault();\n dragTargetsRef.current = [];\n };\n\n useEffect(function () {\n if (preventDropOnDocument) {\n document.addEventListener(\"dragover\", onDocumentDragOver, false);\n document.addEventListener(\"drop\", onDocumentDrop, false);\n }\n\n return function () {\n if (preventDropOnDocument) {\n document.removeEventListener(\"dragover\", onDocumentDragOver);\n document.removeEventListener(\"drop\", onDocumentDrop);\n }\n };\n }, [rootRef, preventDropOnDocument]); // Auto focus the root when autoFocus is true\n\n useEffect(function () {\n if (!disabled && autoFocus && rootRef.current) {\n rootRef.current.focus();\n }\n\n return function () {};\n }, [rootRef, autoFocus, disabled]);\n var onErrCb = useCallback(function (e) {\n if (onError) {\n onError(e);\n } else {\n // Let the user know something's gone wrong if they haven't provided the onError cb.\n console.error(e);\n }\n }, [onError]);\n var onDragEnterCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n var fileCount = files.length;\n var isDragAccept = fileCount > 0 && allFilesAccepted({\n files: files,\n accept: acceptAttr,\n minSize: minSize,\n maxSize: maxSize,\n multiple: multiple,\n maxFiles: maxFiles,\n validator: validator\n });\n var isDragReject = fileCount > 0 && !isDragAccept;\n dispatch({\n isDragAccept: isDragAccept,\n isDragReject: isDragReject,\n isDragActive: true,\n type: \"setDraggedFiles\"\n });\n\n if (onDragEnter) {\n onDragEnter(event);\n }\n }).catch(function (e) {\n return onErrCb(e);\n });\n }\n }, [getFilesFromEvent, onDragEnter, onErrCb, noDragEventsBubbling, acceptAttr, minSize, maxSize, multiple, maxFiles, validator]);\n var onDragOverCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event);\n var hasFiles = isEvtWithFiles(event);\n\n if (hasFiles && event.dataTransfer) {\n try {\n event.dataTransfer.dropEffect = \"copy\";\n } catch (_unused) {}\n /* eslint-disable-line no-empty */\n\n }\n\n if (hasFiles && onDragOver) {\n onDragOver(event);\n }\n\n return false;\n }, [onDragOver, noDragEventsBubbling]);\n var onDragLeaveCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event); // Only deactivate once the dropzone and all children have been left\n\n var targets = dragTargetsRef.current.filter(function (target) {\n return rootRef.current && rootRef.current.contains(target);\n }); // Make sure to remove a target present multiple times only once\n // (Firefox may fire dragenter/dragleave multiple times on the same element)\n\n var targetIdx = targets.indexOf(event.target);\n\n if (targetIdx !== -1) {\n targets.splice(targetIdx, 1);\n }\n\n dragTargetsRef.current = targets;\n\n if (targets.length > 0) {\n return;\n }\n\n dispatch({\n type: \"setDraggedFiles\",\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false\n });\n\n if (isEvtWithFiles(event) && onDragLeave) {\n onDragLeave(event);\n }\n }, [rootRef, onDragLeave, noDragEventsBubbling]);\n var setFiles = useCallback(function (files, event) {\n var acceptedFiles = [];\n var fileRejections = [];\n files.forEach(function (file) {\n var _fileAccepted = fileAccepted(file, acceptAttr),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 2),\n accepted = _fileAccepted2[0],\n acceptError = _fileAccepted2[1];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),\n sizeMatch = _fileMatchSize2[0],\n sizeError = _fileMatchSize2[1];\n\n var customErrors = validator ? validator(file) : null;\n\n if (accepted && sizeMatch && !customErrors) {\n acceptedFiles.push(file);\n } else {\n var errors = [acceptError, sizeError];\n\n if (customErrors) {\n errors = errors.concat(customErrors);\n }\n\n fileRejections.push({\n file: file,\n errors: errors.filter(function (e) {\n return e;\n })\n });\n }\n });\n\n if (!multiple && acceptedFiles.length > 1 || multiple && maxFiles >= 1 && acceptedFiles.length > maxFiles) {\n // Reject everything and empty accepted files\n acceptedFiles.forEach(function (file) {\n fileRejections.push({\n file: file,\n errors: [TOO_MANY_FILES_REJECTION]\n });\n });\n acceptedFiles.splice(0);\n }\n\n dispatch({\n acceptedFiles: acceptedFiles,\n fileRejections: fileRejections,\n isDragReject: fileRejections.length > 0,\n type: \"setFiles\"\n });\n\n if (onDrop) {\n onDrop(acceptedFiles, fileRejections, event);\n }\n\n if (fileRejections.length > 0 && onDropRejected) {\n onDropRejected(fileRejections, event);\n }\n\n if (acceptedFiles.length > 0 && onDropAccepted) {\n onDropAccepted(acceptedFiles, event);\n }\n }, [dispatch, multiple, acceptAttr, minSize, maxSize, maxFiles, onDrop, onDropAccepted, onDropRejected, validator]);\n var onDropCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [];\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n setFiles(files, event);\n }).catch(function (e) {\n return onErrCb(e);\n });\n }\n\n dispatch({\n type: \"reset\"\n });\n }, [getFilesFromEvent, setFiles, onErrCb, noDragEventsBubbling]); // Fn for opening the file dialog programmatically\n\n var openFileDialog = useCallback(function () {\n // No point to use FS access APIs if context is not secure\n // https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts#feature_detection\n if (fsAccessApiWorksRef.current) {\n dispatch({\n type: \"openDialog\"\n });\n onFileDialogOpenCb(); // https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n\n var opts = {\n multiple: multiple,\n types: pickerTypes\n };\n window.showOpenFilePicker(opts).then(function (handles) {\n return getFilesFromEvent(handles);\n }).then(function (files) {\n setFiles(files, null);\n dispatch({\n type: \"closeDialog\"\n });\n }).catch(function (e) {\n // AbortError means the user canceled\n if (isAbort(e)) {\n onFileDialogCancelCb(e);\n dispatch({\n type: \"closeDialog\"\n });\n } else if (isSecurityError(e)) {\n fsAccessApiWorksRef.current = false; // CORS, so cannot use this API\n // Try using the input\n\n if (inputRef.current) {\n inputRef.current.value = null;\n inputRef.current.click();\n } else {\n onErrCb(new Error(\"Cannot open the file picker because the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API is not supported and no <input> was provided.\"));\n }\n } else {\n onErrCb(e);\n }\n });\n return;\n }\n\n if (inputRef.current) {\n dispatch({\n type: \"openDialog\"\n });\n onFileDialogOpenCb();\n inputRef.current.value = null;\n inputRef.current.click();\n }\n }, [dispatch, onFileDialogOpenCb, onFileDialogCancelCb, useFsAccessApi, setFiles, onErrCb, pickerTypes, multiple]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone\n\n var onKeyDownCb = useCallback(function (event) {\n // Ignore keyboard events bubbling up the DOM tree\n if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {\n return;\n }\n\n if (event.key === \" \" || event.key === \"Enter\" || event.keyCode === 32 || event.keyCode === 13) {\n event.preventDefault();\n openFileDialog();\n }\n }, [rootRef, openFileDialog]); // Update focus state for the dropzone\n\n var onFocusCb = useCallback(function () {\n dispatch({\n type: \"focus\"\n });\n }, []);\n var onBlurCb = useCallback(function () {\n dispatch({\n type: \"blur\"\n });\n }, []); // Cb to open the file dialog when click occurs on the dropzone\n\n var onClickCb = useCallback(function () {\n if (noClick) {\n return;\n } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()\n // to ensure React can handle state changes\n // See: https://github.com/react-dropzone/react-dropzone/issues/450\n\n\n if (isIeOrEdge()) {\n setTimeout(openFileDialog, 0);\n } else {\n openFileDialog();\n }\n }, [noClick, openFileDialog]);\n\n var composeHandler = function composeHandler(fn) {\n return disabled ? null : fn;\n };\n\n var composeKeyboardHandler = function composeKeyboardHandler(fn) {\n return noKeyboard ? null : composeHandler(fn);\n };\n\n var composeDragHandler = function composeDragHandler(fn) {\n return noDrag ? null : composeHandler(fn);\n };\n\n var stopPropagation = function stopPropagation(event) {\n if (noDragEventsBubbling) {\n event.stopPropagation();\n }\n };\n\n var getRootProps = useMemo(function () {\n return function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? \"ref\" : _ref2$refKey,\n role = _ref2.role,\n onKeyDown = _ref2.onKeyDown,\n onFocus = _ref2.onFocus,\n onBlur = _ref2.onBlur,\n onClick = _ref2.onClick,\n onDragEnter = _ref2.onDragEnter,\n onDragOver = _ref2.onDragOver,\n onDragLeave = _ref2.onDragLeave,\n onDrop = _ref2.onDrop,\n rest = _objectWithoutProperties(_ref2, _excluded3);\n\n return _objectSpread(_objectSpread(_defineProperty({\n onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),\n onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),\n onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),\n onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),\n onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),\n onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),\n onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb)),\n role: typeof role === \"string\" && role !== \"\" ? role : \"presentation\"\n }, refKey, rootRef), !disabled && !noKeyboard ? {\n tabIndex: 0\n } : {}), rest);\n };\n }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);\n var onInputElementClick = useCallback(function (event) {\n event.stopPropagation();\n }, []);\n var getInputProps = useMemo(function () {\n return function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? \"ref\" : _ref3$refKey,\n onChange = _ref3.onChange,\n onClick = _ref3.onClick,\n rest = _objectWithoutProperties(_ref3, _excluded4);\n\n var inputProps = _defineProperty({\n accept: acceptAttr,\n multiple: multiple,\n type: \"file\",\n style: {\n border: 0,\n clip: \"rect(0, 0, 0, 0)\",\n clipPath: \"inset(50%)\",\n height: \"1px\",\n margin: \"0 -1px -1px 0\",\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n width: \"1px\",\n whiteSpace: \"nowrap\"\n },\n onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),\n tabIndex: -1\n }, refKey, inputRef);\n\n return _objectSpread(_objectSpread({}, inputProps), rest);\n };\n }, [inputRef, accept, multiple, onDropCb, disabled]);\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: isFocused && !disabled,\n getRootProps: getRootProps,\n getInputProps: getInputProps,\n rootRef: rootRef,\n inputRef: inputRef,\n open: composeHandler(openFileDialog)\n });\n}\n/**\n * @param {DropzoneState} state\n * @param {{type: string} & DropzoneState} action\n * @returns {DropzoneState}\n */\n\nfunction reducer(state, action) {\n /* istanbul ignore next */\n switch (action.type) {\n case \"focus\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: true\n });\n\n case \"blur\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: false\n });\n\n case \"openDialog\":\n return _objectSpread(_objectSpread({}, initialState), {}, {\n isFileDialogActive: true\n });\n\n case \"closeDialog\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: false\n });\n\n case \"setDraggedFiles\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isDragActive: action.isDragActive,\n isDragAccept: action.isDragAccept,\n isDragReject: action.isDragReject\n });\n\n case \"setFiles\":\n return _objectSpread(_objectSpread({}, state), {}, {\n acceptedFiles: action.acceptedFiles,\n fileRejections: action.fileRejections,\n isDragReject: action.isDragReject\n });\n\n case \"reset\":\n return _objectSpread({}, initialState);\n\n default:\n return state;\n }\n}\n\nfunction noop() {}\n\nexport { ErrorCode } from \"./utils\";","import { useCallback, useEffect, useState } from 'react';\nimport { useDropzone } from 'react-dropzone';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { useControlledValue } from '../../molecules/FormField/useControlledValue';\nimport { DropzoneProps, DropzoneStatus } from './Dropzone.types';\n\nconst usePresenter = (props: DropzoneProps) => {\n const {\n empty,\n loading,\n uploaded,\n accept,\n maxSize,\n maxFiles = 1,\n disabled,\n onValueChange,\n onFilesReset,\n id,\n drag,\n } = props;\n\n const { value: files, onValueChange: handleValueChange } = useControlledValue<File[]>({\n onValueChange,\n defaultValue: [],\n });\n\n const [status, setStatus] = useState<DropzoneStatus>('Empty');\n\n const resetFiles = useCallback(() => {\n setStatus('Empty');\n handleValueChange([]);\n onFilesReset?.();\n }, [handleValueChange, onFilesReset]);\n\n const onDrop = useCallback(async (acceptedFiles: File[]) => {\n if (acceptedFiles.length > 0) {\n setStatus('Loading');\n handleValueChange(acceptedFiles);\n setStatus('Uploaded');\n }\n }, [handleValueChange]);\n\n const { getRootProps, getInputProps, open, isDragActive } = useDropzone({\n onDrop,\n multiple: maxFiles > 1,\n accept,\n maxSize,\n maxFiles,\n noClick: true,\n disabled,\n });\n\n const variantProps = useBuildVariantProps(\n 'dropzone',\n {\n status,\n }\n );\n\n return {\n variantProps,\n files,\n getRootProps,\n getInputProps,\n open,\n empty,\n loading,\n uploaded,\n drag,\n status,\n accept,\n resetFiles,\n id,\n isDragActive,\n };\n};\n\nexport default usePresenter;","import cx from 'classnames';\nimport { createContext, useContext } from 'react';\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport styles from './Dropzone.module.scss';\nimport usePresenter from './Dropzone.presenter';\nimport { DropzoneContextType, DropzoneProps } from './Dropzone.types';\n\nconst DropzoneContext = createContext<DropzoneContextType | undefined>(undefined);\n\nconst Dropzone = (props: DropzoneProps) => {\n const {\n status,\n files,\n accept,\n resetFiles,\n variantProps,\n getRootProps,\n getInputProps,\n empty,\n loading,\n uploaded,\n drag,\n open,\n id,\n isDragActive,\n } = usePresenter(props);\n\n return (\n <DropzoneContext.Provider value={{ status, files: files || [], accept: accept || {}, selectFiles: open, resetFiles }}>\n <div\n {...getRootProps()}\n {...variantProps}\n className={cx(styles.dropzone, props.className)}\n >\n <input {...getInputProps()} id={id} />\n <ConditionalView condition={status === 'Empty'}>\n {empty}\n </ConditionalView>\n <ConditionalView condition={status === 'Loading'}>\n {loading}\n </ConditionalView>\n <ConditionalView condition={status === 'Uploaded'}>\n {uploaded}\n </ConditionalView>\n <ConditionalView condition={drag}>\n <div className={cx(\n styles.dropzoneOverlay,\n {\n [styles.visible]: isDragActive,\n }\n )}>\n {drag}\n </div>\n </ConditionalView>\n </div>\n </DropzoneContext.Provider>\n );\n};\n\nexport const useDropzoneContext = () => {\n const context = useContext(DropzoneContext);\n if (!context) {\n throw new Error('useDropzoneContext must be used within a Dropzone');\n }\n return context;\n};\n\nexport default Dropzone;\n","import React from \"react\";\nimport { Icon, IconButton } from \"../../../atoms\";\nimport { useDropzoneContext } from \"../Dropzone\";\nimport { DropzoneClearProps } from \"../Dropzone.types\";\n\nconst DropzoneClear = (props: DropzoneClearProps) => {\n const { resetFiles } = useDropzoneContext();\n const { icon, ...rest } = props;\n return (\n <IconButton \n {...rest} \n icon={icon || <Icon icon=\"CloseDelete\" style=\"Outlined\"/>}\n onClick={resetFiles} \n />\n );\n};\n\nexport default DropzoneClear;\n","import React from \"react\";\nimport { Text } from \"../../../atoms\";\nimport { useDropzoneContext } from \"../Dropzone\";\nimport { DropzoneFilenameProps } from \"../Dropzone.types\";\n\nconst DropzoneFilename = ({ children, fileIndex = 0, ...props }: DropzoneFilenameProps) => {\n const { files } = useDropzoneContext();\n return <Text {...props}>{files[fileIndex]?.name}</Text>;\n};\n\nexport default DropzoneFilename;\n","import React from 'react';\nimport { Text } from '../../../atoms';\nimport { DropzoneSupportedFormatsProps } from '../Dropzone.types';\nimport { useDropzoneContext } from '../Dropzone';\n\nconst DropzoneSupportedFormats = (props: DropzoneSupportedFormatsProps) => {\n const { accept } = useDropzoneContext();\n const supportedFormats = Object.values(accept).reduce((acc, curr) => {\n return acc.concat(curr);\n }, []).join(', ');\n return <Text {...props}>\n Supported formats: {supportedFormats}\n </Text>;\n};\n\nexport default DropzoneSupportedFormats;\n","import React from \"react\";\nimport { useDropzoneContext } from \"../Dropzone\";\nimport { Button } from \"../../../atoms\";\nimport { DropzoneTriggerProps } from \"../Dropzone.types\";\n\nconst DropzoneTrigger = (props: DropzoneTriggerProps) => {\n const { selectFiles } = useDropzoneContext();\n return <Button {...props} onClick={selectFiles} />;\n};\n\nexport default DropzoneTrigger;\n","import { DropzoneDragProps } from '../Dropzone.types';\n\nconst DropzoneDrag = (props: DropzoneDragProps) => {\n return (\n <div {...props} />\n );\n};\n\nexport default DropzoneDrag;\n","import cx from 'classnames';\nimport React, { useContext } from 'react';\n\nimport styles from './Form.module.scss';\nimport type { FormProps } from './Form.types';\nimport FormContext from './FormContext';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\nconst Form = (props: FormProps) => {\n const {\n children, \n className, \n ...otherFormProps\n } = props;\n\n const formContext = useContext(FormContext);\n const { formRef, onFormSubmit, resetForm } = formContext || {};\n const variantProps = useBuildVariantProps(\n 'form',\n );\n return (\n <form \n {...otherFormProps}\n ref={formRef}\n className={cx(styles.form, className)}\n onSubmit={onFormSubmit} \n onReset={(e) => {\n e.preventDefault();\n resetForm?.();\n props.onReset?.(e);\n }}\n {...variantProps}\n >\n {children}\n </form>\n );\n};\n\nexport default Form;","import { useContext } from 'react';\nimport FormContext from './FormContext';\nimport type { FormContextValues, FormState } from './Form.types';\n\n/**\n * Custom hook to access form context values.\n * Provides direct access to all form state management functions and values.\n * \n * @throws {Error} If used outside of a Form component\n * @returns {FormContextValues} Object containing form state and control functions\n * \n * @example\n * ```tsx\n * const MyCustomField = () => {\n * const { \n * formState, \n * formErrors, \n * updateFieldValue,\n * resetForm \n * } = useForm();\n * \n * return (\n * <div>\n * <input \n * value={formState.myField || ''}\n * onChange={(e) => updateFieldValue('myField', e.target.value)}\n * />\n * {formErrors.myField && <span>{formErrors.myField}</span>}\n * </div>\n * );\n * };\n * ```\n */\nexport const useForm = <T extends FormState = FormState>(): FormContextValues<T> => {\n const context = useContext(FormContext);\n \n if (!context) {\n throw new Error('useForm must be used within a Form component. Wrap your component with <Form> to use this hook.');\n }\n \n // Type assertion is safe here because we know the context exists\n // and the generic type T extends FormState\n return context as FormContextValues<T>;\n};\n\n/**\n * Type-safe version of useForm that returns properly typed form context\n * \n * @example\n * ```tsx\n * interface MyFormData {\n * name: string;\n * email: string;\n * age: number;\n * }\n * \n * const MyComponent = () => {\n * const form = useFormTyped<MyFormData>();\n * // form.formState is now typed as MyFormData\n * // form.formErrors is now typed as FormErrors<MyFormData>\n * };\n * ```\n */\nexport const useFormTyped = <T extends FormState>() => useForm<T>();","import React, { createContext, useContext, useEffect, useState } from 'react';\nimport type { TabContextType, TabProviderProps } from './Tabs.types';\n\nconst tabsContextInitialValue: TabContextType = {\n style: 'Filled',\n currentTab: '',\n updateCurrentTab: () => { },\n};\n\nexport const TabContext = createContext<TabContextType>(tabsContextInitialValue);\n\n/**\n * Custom hook to use the TabContext\n * Throws an error if used outside of a TabProvider\n */\nexport const useTab = () => {\n const context = useContext(TabContext);\n if (!context) {\n throw new Error('useTab must be used within a TabProvider');\n }\n return context;\n};\n\n/**\n * Provides context for Tab components\n * Manages the current tab state and providing a method to update\n */\nexport const TabProvider = ({\n children,\n value,\n style = 'Filled',\n onClick,\n}: TabProviderProps) => {\n const [internalCurrentTab, setInternalCurrentTab] = useState<string | number>('');\n\n const updateCurrentTab = (tabValue: string | number) => {\n if (internalCurrentTab !== tabValue) {\n if (value && onClick) {\n onClick(tabValue);\n }\n setInternalCurrentTab(tabValue);\n }\n };\n\n useEffect(() => {\n if (value !== undefined && onClick) {\n setInternalCurrentTab(value);\n }\n }, [value]);\n\n return (\n <TabContext.Provider value={{ style, currentTab: internalCurrentTab, updateCurrentTab }}>\n {children}\n </TabContext.Provider>\n );\n};","import React, { useEffect, useMemo } from 'react';\nimport cx from 'classnames';\nimport styles from './TabItem.module.scss';\nimport type { TabItemProps, TabItemTypeEnum } from './TabItem.types';\nimport { useTab } from '../Tabs.Context';\nimport useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\nimport Button from '../../../atoms/Button';\nimport { ConditionalView } from '../../../utils/ConditionalView';\nimport { WrapTextNodes } from '../../../utils/WrapTextNodes';\nimport { Spinner } from '../../../../library';\n\nconst TabItem = (props: TabItemProps) => {\n const {\n value,\n defaultTab = false,\n onClick,\n children,\n className,\n leadingIcon,\n trailingIcon,\n loading,\n style: currentStyle,\n ...otherProps\n } = props;\n\n const { style: tabsStyle, currentTab, updateCurrentTab } = useTab();\n\n const style = currentStyle ?? tabsStyle;\n const type: TabItemTypeEnum = useMemo(() => (value === currentTab ? 'Selected' : 'Unselected'), [value, currentTab]);\n\n useEffect(() => {\n if (defaultTab && currentTab === '') {\n updateCurrentTab(value);\n }\n }, [defaultTab, value, updateCurrentTab, currentTab]);\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n updateCurrentTab(value);\n if (onClick) {\n onClick(e);\n }\n };\n\n let leadingIconComponent, trailingIconComponent, content, loadingComponent;\n\n // If the button is in loading state replace content with a loading indicator\n if (loading) {\n loadingComponent = (\n <Spinner className={styles.loadingIcon} />\n );\n }\n\n // Render leading icon if it is passed\n if (leadingIcon) {\n leadingIconComponent = <div className={styles.leadingIcon}>\n {leadingIcon}\n </div>;\n }\n\n // Render training icon if it is passed\n if (trailingIcon) {\n trailingIconComponent = <div className={styles.trailingIcon}>\n {trailingIcon}\n </div>;\n }\n\n if (children) {\n content = (\n <WrapTextNodes \n noWrap\n className={styles.text}\n >\n {children}\n </WrapTextNodes>\n )\n }\n\n const variantProps = useBuildVariantProps(\n 'tab-item',\n {\n style,\n type,\n }\n );\n\n return (\n <button\n className={cx(\n styles.tabItem,\n className,\n )}\n onClick={handleClick}\n {...otherProps}\n {...variantProps}\n role=\"tab\"\n aria-selected={type === 'Selected'}\n >\n <div className={styles.contentContainer}>\n {leadingIconComponent}\n {content}\n {trailingIconComponent}\n </div>\n <ConditionalView condition={style === 'Underlined' && type === 'Selected'}>\n <div className={styles.underline} />\n </ConditionalView>\n </button>\n );\n};\nexport default TabItem;\n","import React from 'react';\nimport cx from 'classnames';\nimport styles from './TabContent.module.scss';\nimport type { TabContentProps } from './TabContent.types';\nimport { useTab } from '../Tabs.Context';\n\nconst TabContent = (props: TabContentProps) => {\n const {\n className,\n children,\n value,\n } = props;\n\n const { currentTab } = useTab();\n\n return (\n <div\n className={cx(styles.tabContent, className)}\n style={{\n display: currentTab === value ? 'flex' : 'none',\n }}\n >\n {children}\n </div>\n );\n};\nexport default TabContent;\n","import React, { ReactNode } from 'react';\nimport cx from 'classnames';\nimport styles from './Tabs.module.scss';\nimport type { TabsViewProps } from './Tabs.types';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport TabItem from './TabItem';\nimport TabContent from './TabContent';\n\n/**\n * Recursively walks the tree and collects any wrapper elements\n * that contain components with the given displayName (e.g. 'TabItem').\n * This ensures we preserve layout wrappers (like divs).\n */\nconst getBranchesWithComponent = (\n children: ReactNode,\n matchComponent: React.ComponentType<any>\n): ReactNode[] => {\n const branches: ReactNode[] = [];\n\n React.Children.forEach(children, (child: any) => {\n if (!child) return;\n\n const isMatch = child.type === matchComponent;\n\n if (isMatch) {\n branches.push(child);\n } else if (child.props?.children) {\n const nested = getBranchesWithComponent(\n child.props.children,\n matchComponent\n );\n\n if (nested.length > 0) {\n // Clone the wrapper and keep the matched nested content\n branches.push(\n React.cloneElement(child, { key: child.key }, nested)\n );\n }\n }\n });\n\n return branches;\n};\n\n\nconst Tabs = (props: TabsViewProps) => {\n const {\n className,\n children,\n type = 'Horizontal',\n } = props;\n\n const variantProps = useBuildVariantProps(\n 'tabs-header',\n {\n }\n );\n\n // Filter and separate Tab and TabPanel components\n const tabs = getBranchesWithComponent(children, TabItem);\n const panels = getBranchesWithComponent(children, TabContent);\n\n return (\n <div \n className={cx(styles.tabs, styles[type.toLowerCase()], className)}\n {...variantProps}\n >\n <div className={styles.tabsHeader} role=\"tablist\">\n {tabs}\n </div>\n <div className={styles.tabsContent}>\n {panels}\n </div>\n </div>\n );\n};\nexport default Tabs;\n","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","export default {\n disabled: false\n};","import PropTypes from 'prop-types';\nexport var timeoutsShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n enter: PropTypes.number,\n exit: PropTypes.number,\n appear: PropTypes.number\n}).isRequired]) : null;\nexport var classNamesShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string,\n active: PropTypes.string\n}), PropTypes.shape({\n enter: PropTypes.string,\n enterDone: PropTypes.string,\n enterActive: PropTypes.string,\n exit: PropTypes.string,\n exitDone: PropTypes.string,\n exitActive: PropTypes.string\n})]) : null;","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `<CSSTransition>` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.indexOf(n) >= 0) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import cx from 'classnames';\nimport React, { forwardRef, useRef } from 'react';\nimport { Transition } from 'react-transition-group';\nimport { TransitionCallbacks } from 'react-overlays/cjs/types';\nimport styles from './SlideOutPanel.module.scss';\n\n// Define your props explicitly\ntype FadeTransitionProps = {\n in: boolean;\n appear?: boolean;\n unmountOnExit?: boolean;\n children?: React.ReactElement<any>;\n} & TransitionCallbacks;\n\nexport const FadeTransition = forwardRef<HTMLDivElement, FadeTransitionProps>(\n ({ children, ...props }, ref) => {\n const nodeRef = useRef(null); // Used for nodeRef prop (optional)\n\n return (\n <Transition\n timeout={300}\n {...props}\n nodeRef={nodeRef} // Prevents use of findDOMNode\n >\n {(state) =>\n children\n ? React.cloneElement(children, {\n ref: ref ?? nodeRef,\n className: cx(children.props.className, styles[state]),\n })\n : null\n }\n </Transition>\n );\n }\n);","import React, { createContext, useEffect, useState } from 'react';\nimport type { ThemeContextType, ThemeProviderProps } from './ThemeProvider.types';\nimport '../../resources/themes/base.css';\n// import '../../resources/themes/override.css';\nimport '../../resources/themes/light.css';\nimport '../../resources/themes/dark.css';\n\nconst initialValue: ThemeContextType = {\n theme: 'light',\n updateTheme: () => { },\n};\n\nexport const ThemeContext = createContext<ThemeContextType>(initialValue);\n\nexport const ThemeProvider: React.FC<ThemeProviderProps> = (props: ThemeProviderProps) => {\n const [theme, setTheme] = useState(props.theme || 'light');\n\n useEffect(() => {\n document.documentElement.setAttribute('data-theme', theme);\n }, [theme])\n\n const updateTheme = (newTheme: string) => {\n setTheme(newTheme);\n };\n\n return (\n <ThemeContext.Provider value={{ theme, updateTheme }}>\n {props.children}\n </ThemeContext.Provider>\n );\n};","import React, { createContext, useState, useCallback, useContext } from 'react';\nimport { Notification, NotificationContextValue, NotificationProviderProps, TriggerNotificationPayload } from './types';\nimport NotificationContainer from './NotificationContainer';\nimport { ToastNotificationStyleEnum } from '../../components/atoms/ToastNotification/ToastNotification.types';\n\nexport const NotificationContext = createContext<NotificationContextValue>({} as NotificationContextValue);\n\nexport const NotificationProvider: React.FC<NotificationProviderProps> = ({\n children,\n position = 'top-right',\n offset = { x: 20, y: 20 }\n}) => {\n const [notifications, setNotifications] = useState<Notification[]>([]);\n\n const addNotification = useCallback((message: React.ReactNode, duration: number = 0, style?: ToastNotificationStyleEnum, isDismissable?: boolean, closeIcon?: React.ReactNode, leadingIcon?: React.ReactNode, trailingIcon?: React.ReactNode, isCloseButtonShown: boolean) => {\n const id = Date.now();\n const newNotification = { id, message, style, isDismissable, closeIcon, leadingIcon, trailingIcon, isCloseButtonShown };\n setNotifications((prevNotifications) => [...prevNotifications, newNotification]);\n\n if (duration > 0) {\n setTimeout(() => {\n removeNotification(id);\n }, duration);\n }\n }, []);\n\n const removeNotification = useCallback((id: number) => {\n setNotifications((prevNotifications) => prevNotifications.filter(notification => notification.id !== id));\n }, []);\n\n const clear = useCallback(() => {\n setNotifications([]);\n }, []);\n\n const trigger = useCallback((payload: TriggerNotificationPayload) => {\n const { message, duration, style, isDismissable, closeIcon, leadingIcon, trailingIcon, isCloseButtonShown } = payload;\n addNotification(message, duration, style, isDismissable, closeIcon, leadingIcon, trailingIcon, isCloseButtonShown);\n }, [addNotification]);\n\n return (\n <NotificationContext.Provider value={{\n notifications,\n clear,\n trigger,\n removeNotification,\n }}>\n <NotificationContainer position={position} offset={offset} />\n {children}\n </NotificationContext.Provider>\n );\n};\n\nexport const useNotification = () => {\n const context = useContext(NotificationContext);\n return context;\n};","import React from 'react';\nimport cx from 'classnames';\nimport styles from './ToastNotification.module.scss';\nimport type { ToastNotificationProps } from './ToastNotification.types';\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport IconButton from '../IconButton';\nimport Icon from '../Icon';\n\nconst ToastNotification: React.FC<ToastNotificationProps> = (props) => {\n const {\n className,\n style = 'Neutral',\n leadingIcon,\n trailingIcon,\n closeIcon,\n isDismissable = true,\n isCloseButtonShown = true,\n removeToast,\n duration,\n children,\n ...restProps\n } = props;\n\n let leadingIconComponent, trailingIconComponent, content, closeIconComponent;\n\n if (leadingIcon) {\n leadingIconComponent = <>{leadingIcon}</>;\n }\n\n if (trailingIcon) {\n trailingIconComponent = <>{trailingIcon}</>;\n }\n\n if (isDismissable && isCloseButtonShown) {\n closeIconComponent = (\n <IconButton\n type='Ghost'\n style='Secondary'\n appearance='Default'\n icon={closeIcon || <Icon icon='CloseDelete' style='Outlined' />}\n onClick={removeToast}\n />\n );\n }\n\n if (children) {\n content = (\n <WrapTextNodes className={styles.text}>\n {children}\n </WrapTextNodes>\n );\n }\n\n const variantProps = useBuildVariantProps(\n 'toast-notification',\n { style },\n {}\n );\n\n return (\n <div\n className={cx(styles.toastNotification, className)}\n {...variantProps}\n {...restProps}\n >\n <div className={styles.messageContainer}>\n {leadingIconComponent}\n {content}\n {trailingIconComponent}\n </div>\n {closeIconComponent}\n </div>\n );\n};\n\nexport default ToastNotification;\n","import React, { useMemo } from 'react';\nimport cx from 'classnames';\n\nimport styles from './NotificationContainer.module.scss';\nimport { NotificationContainerProps } from './types';\nimport { useNotification } from './NotificationContext';\nimport ToastNotification from '../../components/atoms/ToastNotification';\n\nconst NotificationContainer: React.FC<NotificationContainerProps> = (props) => {\n const { className, position = 'top-right', offset = { x: 20, y: 20 } } = props;\n const { notifications, removeNotification } = useNotification();\n\n const containerStyle = useMemo(() => {\n const style: React.CSSProperties = {};\n\n if (position.includes('top')) {\n style.top = `${offset.y || 20}px`;\n } else if (position.includes('bottom')) {\n style.bottom = `${offset.y || 20}px`;\n style.flexDirection = 'column-reverse';\n }\n\n if (position.includes('left')) {\n style.left = `${offset.x || 20}px`;\n } else if (position.includes('right')) {\n style.right = `${offset.x || 20}px`;\n } else if (position.includes('center')) {\n style.left = '50%';\n style.transform = 'translateX(-50%)';\n }\n\n return style;\n }, [position, offset]);\n\n const containerClass = cx(\n styles.notificationContainer,\n styles[position],\n className\n );\n\n return (\n <div className={containerClass} style={containerStyle}>\n {notifications?.map(({ id, message, ...rest }) => (\n <ToastNotification\n key={id}\n removeToast={() => removeNotification(id || 0)}\n {...rest}\n >\n {message}\n </ToastNotification>\n ))}\n </div>\n );\n};\n\nexport default NotificationContainer;\n","import cx from 'classnames';\nimport React from \"react\";\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { Icon } from '../../atoms';\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport styles from './Accordion.module.scss';\nimport type { AccordionDetailsProps, AccordionProps, AccordionSummaryProps } from './Accordion.types';\n\nconst AccordionSummary = (props: AccordionSummaryProps) => {\n const { children, className, expandIcon } = props;\n\n const expandCollapseIcon = expandIcon || <Icon icon=\"ChevronRight\" className={styles.icon} style='Outlined' />;\n\n const variantProps = useBuildVariantProps(\n 'accordion-summary',\n {},\n );\n\n return (\n <summary className={cx(styles.summary, className)} {...variantProps}>\n <WrapTextNodes whiteSpaceNoWrap={true} className={styles.summaryText}>{children}</WrapTextNodes>\n <span className={styles.expandIcon}>\n {expandCollapseIcon}\n </span>\n </summary>\n );\n};\n\nconst AccordionDetails = (props: AccordionDetailsProps) => {\n const variantProps = useBuildVariantProps(\n 'accordion-details',\n {},\n );\n\n return (\n <div className={cx(styles.content, props.className)} {...variantProps}>\n <WrapTextNodes whiteSpaceNoWrap={true} className={styles.detailsText}>{props.children}</WrapTextNodes>\n </div>\n );\n};\n\nconst Accordion = (props: AccordionProps) => {\n const {\n name,\n children,\n size = 'Medium',\n className,\n defaultExpanded = false,\n expanded,\n onChange,\n } = props;\n\n const [isOpen, setIsOpen] = React.useState(defaultExpanded);\n\n React.useEffect(() => {\n if (expanded !== undefined) {\n setIsOpen(expanded);\n }\n }, [expanded]);\n\n const handleToggle = (e: React.SyntheticEvent<HTMLDetailsElement>) => {\n const willBeOpen = (e.currentTarget as HTMLDetailsElement).open;\n\n if (expanded !== undefined) {\n // If expanded prop is provided, prevent default behavior\n e.preventDefault();\n } else {\n setIsOpen(willBeOpen);\n }\n\n onChange?.(willBeOpen);\n };\n\n const variantProps = useBuildVariantProps(\n 'accordion',\n {\n size,\n type: isOpen ? 'Expanded' : 'Collapsed',\n },\n );\n\n return (\n <details\n className={cx(styles.root, className)}\n open={expanded || isOpen ? true : undefined}\n onToggle={handleToggle}\n name={name}\n {...variantProps}\n >\n <WrapTextNodes className={styles.text}>{children}</WrapTextNodes>\n </details>\n );\n};\n\nexport { Accordion, AccordionDetails, AccordionSummary };\n\n","import React from 'react';\nimport cx from 'classnames';\nimport { WrapTextNodes } from '../../../utils/WrapTextNodes';\nimport styles from './AccordionGroup.module.scss';\nimport { AccordionGroupProps } from './AccordionGroup.types';\n\nconst AccordionGroup = (props: AccordionGroupProps) => {\n const { name, ...rest } = props;\n return (\n <div className={cx(styles.root, props.className)} {...rest}>\n {React.Children.map(props.children, child => {\n if (typeof child === 'string' || typeof child === 'number') {\n return <WrapTextNodes>{child}</WrapTextNodes>;\n } else {\n return React.isValidElement(child) ? React.cloneElement(child, { ...{ name } }) : child;\n }\n })}\n </div>\n );\n};\n\nexport default AccordionGroup;\n","import React from 'react';\nimport cx from 'classnames';\nimport styles from './ActionCard.module.scss';\nimport type { ActionCardProps } from './ActionCard.types';\nimport { NavLink } from '../../molecules';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\n/**\n * ActionCard component definition.\n */\nconst ActionCard = (props: ActionCardProps) => {\n const {\n disabled,\n className,\n children,\n onClick,\n to,\n ...restProps\n } = props;\n\n const RootElement: React.ElementType = to !== undefined ? NavLink : 'div'\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n // Check if the event's target has its own click event\n if (e.target instanceof HTMLElement && e.target.hasAttribute('onClick')) {\n e.stopPropagation();\n }\n if (onClick && !disabled) {\n onClick(e);\n }\n };\n\n const variantProps = useBuildVariantProps(\n 'action-card',\n );\n\n return (\n <RootElement\n role='button'\n aria-label='Action Card'\n aria-disabled={disabled}\n tabIndex={0}\n {...{...restProps, to}}\n className={cx(\n styles.actionCard,\n {\n [styles.disabled]: disabled,\n },\n className,\n )}\n onClick={handleClick}\n {...variantProps}\n >\n {children}\n </RootElement>\n );\n};\n\nexport default ActionCard;\n","import React from 'react';\nimport cx from 'classnames';\nimport styles from './ActionImage.module.scss';\nimport type { ActionImageProps } from './ActionImage.types';\nimport Image from '../Image';\n\n/**\n * ActionImage component definition.\n */\nconst ActionImage = (props: ActionImageProps) => {\n const {\n disabled,\n className,\n onClick,\n ...restProps\n } = props;\n\n const handleClick = (e: React.MouseEvent<HTMLImageElement, MouseEvent>) => {\n if (onClick && !disabled) {\n onClick(e);\n }\n };\n\n return (\n <div\n role='button'\n aria-label='Action Image'\n aria-disabled={disabled}\n tabIndex={0}\n className={cx(\n styles.actionImage,\n {\n [styles.disabled]: disabled,\n },\n className,\n )}\n onClick={handleClick}\n >\n <Image {...restProps} />\n </div>\n );\n};\n\nexport default ActionImage;\n","import React from 'react';\nimport cx from 'classnames';\nimport { BreadcrumbProps } from './Breadcrumb.types';\nimport styles from './Breadcrumb.module.scss';\nimport useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\nimport { NavLink } from '../../Nav';\n\nconst Breadcrumb = (props: BreadcrumbProps) => {\n const { className, selected, navLinkType, ...restProps } = props;\n\n const variantProps = useBuildVariantProps(\n 'breadcrumb',\n {\n type: selected ? 'selected' : 'Unselected',\n },\n {},\n );\n\n return (\n <NavLink\n className={cx(\n styles.breadcrumb,\n className,\n )}\n type={navLinkType}\n {...restProps}\n {...variantProps}\n />\n );\n};\n\nexport default Breadcrumb;","import React from 'react';\nimport cx from 'classnames';\nimport { BreadcrumbsProps } from './Breadcrumbs.types';\nimport styles from './Breadcrumbs.module.scss';\nimport { Icon } from '../../atoms';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\nconst Breadcrumbs = (props: BreadcrumbsProps) => {\n const { className, children, divider } = props;\n const items = React.Children.toArray(children);\n\n const dividerComponent = divider ||\n <Icon className={styles.divider} icon='ArrowForward' style='Outlined' size='Medium' />;\n\n const variantProps = useBuildVariantProps(\n 'breadcrumbs',\n {},\n {},\n );\n\n return (\n <ol\n className={cx(styles.breadcrumbs, className)}\n {...variantProps}\n >\n {items.map((child, index) => (\n <li key={index} className={styles.breadcrumbItem}>\n {child}\n {index < items.length - 1 && dividerComponent}\n </li>\n ))}\n </ol>\n );\n};\n\nexport default Breadcrumbs;","import React from 'react';\nimport cx from 'classnames';\nimport styles from './ButtonGroup.module.scss';\nimport type { ButtonGroupProps } from './ButtonGroup.types';\nimport { renderButtonItem } from './utils';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\n/**\n * ButtonGroup component definition.\n */\nconst ButtonGroup = (props: ButtonGroupProps) => {\n const { className, children, align = 'Horizontal', type = 'Outlined' } = props;\n const buttonItems = renderButtonItem(children);\n const variantProps = useBuildVariantProps(\n 'button-group',\n { align, type },\n );\n return <ul \n className={cx(\n styles.buttonGroup,\n className,\n )}\n {...variantProps}\n >\n {buttonItems}\n </ul>;\n};\n\nexport default ButtonGroup;\n","import React, { ReactElement, ReactNode } from \"react\";\n\n/**\n * Renders a list of button items.\n *\n * This function takes children elements (which can be a single ReactNode \n * or an array of ReactNodes) and maps them to list items (<li>) \n * with unique keys.\n *\n * @param {ReactNode | ReactNode[]} children - The button items to render.\n * @returns {ReactElement | null} A React fragment containing a list of \n * <li> elements, each wrapping a child.\n */\nexport const renderButtonItem = (children: ReactNode | ReactNode[]) => {\n return (\n <>\n {\n // Use React.Children.map to iterate over children and render them as list item and key\n React.Children.map(children, (child, index): ReactElement | null => {\n return <li key={index}>{child}</li>;\n })\n }\n </>\n );\n}\n","import React from 'react';\nimport cx from 'classnames';\nimport styles from './Card.module.scss';\nimport type { CardProps } from './Card.types';\n\n/**\n * Card component definition.\n */\nconst Card = (props: CardProps) => {\n const { className, children } = props;\n return <div className={cx(styles.card, className)}>{children}</div>;\n};\n\nexport default Card;\n","import cx from 'classnames';\nimport React from 'react';\nimport { CheckboxItem, Input } from \"../../atoms\";\nimport Chip from \"../../atoms/Chip\";\nimport ContextMenu from '../ContextMenu';\nimport RepeaterList from \"../List/RepeaterList\";\nimport Popover from \"../Popover\";\nimport styles from './ChipInput.module.scss';\nimport usePresenter from './ChipInput.presenter';\nimport { ChipInputProps, OptionLike } from \"./ChipInput.types\";\n// import { onEnterKeyPreventFormSubmit } from './ChipInput.utils';\n\nconst ChipInput = <T extends string[] | OptionLike[]>(props: ChipInputProps<T>) => {\n const {\n handleChipInputAreaClick,\n chips,\n handleKeyDown,\n inputValue,\n onValueChange,\n inputRef,\n optionList,\n variantProps,\n disabled,\n } = usePresenter(props);\n\n return (\n <Popover\n className={cx(styles.popover, styles.chipInput)}\n target={\n <div\n className={cx(\n styles.trigger,\n styles.chipList,\n props.className,\n )}\n onClick={handleChipInputAreaClick}\n >\n <RepeaterList\n data={chips}\n component={Chip}\n />\n <Input\n ref={inputRef}\n id={props.id}\n className={cx(styles.input, {\n [styles.disabledInput]: disabled,\n })}\n placeholder={props.placeholder}\n required={props.required}\n invalid={props.invalid}\n onKeyDown={handleKeyDown}\n value={inputValue}\n onValueChange={onValueChange}\n disabled={disabled}\n />\n </div>\n }\n content={\n <ContextMenu\n data={optionList}\n component={CheckboxItem}\n className={styles.contextMenu}\n />\n }\n direction='Down'\n alignment='Start'\n action='Click'\n hideOnClickAway={true}\n keepContentOnItemClick={true}\n offset={[0, 2]}\n disabled={disabled}\n {...variantProps}\n />\n );\n};\n\nexport default ChipInput;\n","import React from 'react';\nimport styles from './DateInput.module.scss';\n\nimport { Icon, IconButton, Input } from '../../../atoms';\n\nimport usePresenter from './DateInput.presenter';\nimport { DateInputProps } from './DateInput.types';\nimport DatePickerBase from '../DatePickerBase';\n\nconst DateInput = (props: DateInputProps) => {\n const {\n invalid,\n isTimePickerOnly,\n onInputBlur,\n inputLeadingIcon,\n readOnly,\n inputVariantProps,\n handleInputReadOnlyState,\n } = usePresenter(props);\n\n const calendarIcon = <IconButton\n size='Small'\n type='Ghost'\n icon={<Icon\n icon='Calendar'\n size='Small'\n style='Outlined'\n />}\n />;\n\n return (\n <DatePickerBase\n {...props}\n renderInput={(_, ref) => {\n return (\n <Input\n ref={ref}\n className={styles.dateInput}\n inputType='Text'\n invalid={invalid}\n onBlur={isTimePickerOnly ? onInputBlur : undefined}\n leadingIcon={props.leadingIcon || inputLeadingIcon}\n trailingIcon={props.trailingIcon || calendarIcon}\n readOnly={readOnly}\n autoComplete='off'\n placeholder={props.placeholder}\n id={props.id}\n {...inputVariantProps}\n />\n );\n }}\n handleInputReadOnlyState={handleInputReadOnlyState}\n />\n );\n};\n\nexport default DateInput;\n","import useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\nimport { DateInputProps } from './DateInput.types';\nimport { Icon } from '../../../atoms';\nimport { useState } from 'react';\n\nconst usePresenter = (props: DateInputProps) => {\n const {\n value,\n onValueChange,\n disabled,\n invalid,\n required,\n noCalendar,\n enableTime,\n } = props;\n\n const [readOnly, setReadOnly] = useState(false);\n const isTimePickerOnly = noCalendar && enableTime;\n\n const onInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const inputValue = event.target.value.trim();\n onValueChange?.(inputValue);\n };\n\n const inputLeadingIcon = isTimePickerOnly && <Icon icon='Schedule' style='Outlined' size='Small' />;\n\n const inputVariantProps = useBuildVariantProps(\n 'date-input',\n {},\n { disabled, required, invalid }\n );\n\n const handleInputReadOnlyState = (value: boolean) => {\n setReadOnly(value);\n };\n\n return {\n invalid,\n onInputBlur,\n inputLeadingIcon,\n readOnly,\n inputVariantProps,\n value,\n isTimePickerOnly,\n handleInputReadOnlyState,\n };\n}\n\nexport default usePresenter;","import React from 'react';\n\nimport { DatePickerProps } from './DatePicker.types';\nimport DatePickerBase from './DatePickerBase';\n\nconst DatePicker = (props: DatePickerProps) => {\n\n return (\n <DatePickerBase\n inline={true}\n {...props}\n />\n );\n};\n\nexport default DatePicker;\n","import { Icon, IconButton } from \"../../../atoms\";\nimport { useSortableItem } from \"./SortableListItem\";\nimport type { SortableTriggerProps } from \"../List.types\";\n\nconst SortableTrigger = (props: SortableTriggerProps) => {\n const { attributes, listeners } = useSortableItem();\n const icon = props.icon || <Icon icon='Drag' style=\"Outlined\" />;\n return <IconButton \n {...props}\n {...attributes}\n {...listeners}\n icon={icon}\n />;\n};\n\nexport default SortableTrigger;","import cx from 'classnames';\nimport { Icon, Spinner, Text } from '../../atoms';\nimport DropzoneClear from '../Dropzone/components/DropzoneClear';\nimport DropzoneDrag from '../Dropzone/components/DropzoneDrag';\nimport DropzoneFilename from '../Dropzone/components/DropzoneFilename';\nimport DropzoneSupportedFormats from '../Dropzone/components/DropzoneSupportedFormats';\nimport DropzoneTrigger from '../Dropzone/components/DropzoneTrigger';\nimport styles from './DropzoneContent.module.scss';\nimport { DropzoneContentProps } from './DropzoneContent.types';\n\nconst DropzoneContent = (props: DropzoneContentProps) => {\n return (\n <div\n className={cx(\n styles.dropzoneContent,\n styles[`type--${props.type}`],\n props.className,\n )}\n >\n <div className={styles.infoTextAndButtonContainer}>\n <Text\n className={styles.infoText}\n type=\"BodySmall\"\n weight=\"Medium\"\n >\n Drag & Drop or\n </Text>\n <DropzoneTrigger\n className={styles.dropzoneFileUploadTriggerChooseFileButton}\n appearance=\"Default\"\n type=\"Outlined\"\n style=\"Secondary\"\n size=\"Medium\"\n >\n Choose File\n </DropzoneTrigger>\n </div>\n <DropzoneDrag className={styles.dropzoneDrag} />\n <Spinner\n className={styles.loaderAnim}\n />\n <DropzoneFilename className={styles.dropzoneFileName} />\n <DropzoneSupportedFormats\n className={styles.dropzoneSupportedFormats}\n />\n <DropzoneClear\n className={styles.dropzoneRemoveUploadButtonDeleteButton}\n appearance=\"Default\"\n type=\"Ghost\"\n style=\"Secondary\"\n size=\"Medium\"\n icon={(\n <Icon\n className={\n styles.dropzoneRemoveUploadButtonDeleteButtoncloseDelete\n }\n style=\"Outlined\"\n size=\"Medium\"\n icon=\"CloseDelete\"\n />\n )}\n />\n </div>\n );\n};\n\nexport default DropzoneContent;\n","import React from 'react';\nimport InternalForm from './Form';\nimport { FormProvider } from './FormContext';\nimport type { FormProps, FormProviderProps, FormState } from './Form.types';\n\nconst Form = <T extends FormState>(props: FormProviderProps<T> & FormProps) => {\n const {\n formRef,\n formState: values, \n onFormStateChange, \n formValidator,\n onSubmit,\n validateOnChange,\n autosave,\n autosaveDelayMs,\n ...otherProps\n } = props;\n\n return (\n <FormProvider \n formRef={formRef}\n formState={values}\n onFormStateChange={onFormStateChange}\n formValidator={formValidator}\n onSubmit={onSubmit}\n validateOnChange={validateOnChange}\n autosave={autosave}\n autosaveDelayMs={autosaveDelayMs}\n >\n <InternalForm {...otherProps} noValidate />\n </FormProvider>\n );\n};\n\nexport default Form;\nexport * from './Form.types';\nexport { useForm, useFormTyped } from './useForm';","import cx from 'classnames';\nimport { Icon, Text } from '../../atoms';\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport styles from './FormField.module.scss';\nimport usePresenter from './FormField.presenter';\nimport { FormFieldProps } from './FormField.types';\n\nconst FormField = (props: FormFieldProps) => {\n const {\n label,\n required,\n infoIcon,\n children,\n messageText,\n fieldId,\n variantProps,\n showMessageContainer,\n showErrorIcon,\n showInfoIcon,\n } = usePresenter(props);\n\n const infoIconView = infoIcon || (\n <Icon className={styles.messageIcon} icon=\"Info\" style=\"Outlined\" size=\"Small\" />\n );\n\n return (\n <div className={cx(styles.formField, props.className)} {...variantProps}>\n <div className={styles.field}>\n <ConditionalView condition={label}>\n <label className={styles.labelContainer} htmlFor={fieldId}>\n <Text\n className={cx(styles.label, { [styles.required]: required })}\n type=\"BodySmall\"\n weight=\"Bold\"\n >\n {label}\n </Text>\n </label>\n </ConditionalView>\n {children}\n </div>\n <ConditionalView condition={showMessageContainer}>\n <div className={styles.messageContainer}>\n <ConditionalView condition={showErrorIcon}>\n <Icon className={styles.messageIcon} icon=\"Info\" style=\"Outlined\" size=\"Small\" />\n </ConditionalView>\n <ConditionalView condition={showInfoIcon}>\n {infoIconView}\n </ConditionalView>\n <Text className={styles.message} type=\"BodySmall\" weight=\"Regular\">\n {messageText}\n </Text>\n </div>\n </ConditionalView>\n </div>\n );\n};\n\nexport default FormField;\n","import { useId, useContext, useEffect, useCallback, useMemo, useRef } from 'react';\nimport FormContext from '../../organisms/Form/FormContext';\nimport { FormFieldProps } from './FormField.types';\nimport { injectPropsToMatchingFields } from './FormField.utils';\nimport { FieldValue } from '../../organisms';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\nconst usePresenter = (props: FormFieldProps) => {\n const {\n name,\n label,\n children,\n message,\n infoIcon,\n required,\n disabled,\n validate,\n invalid,\n id,\n hasMessage,\n } = props;\n\n const generatedId = useId();\n const fieldId = id || generatedId;\n\n const formContext = useContext(FormContext);\n const {\n formState,\n updateFieldValue,\n formErrors,\n updateFieldValidators,\n updateRequiredFields,\n } = formContext || {};\n\n // Capture whether FormContext was available at initial render.\n // Used to determine if we should inject field props — does not update dynamically.\n const hadFormContext = useRef(!!formContext);\n\n const value = useMemo(() => formState?.[name], [formState, name]);\n const error = useMemo(() => formErrors?.[name], [formErrors, name]);\n const isInvalid = useMemo(() => !!error || !!invalid, [error, invalid]);\n\n useEffect(() => {\n updateFieldValidators?.(name, validate);\n return () => updateFieldValidators?.(name, undefined);\n }, [name, validate]);\n\n useEffect(() => {\n updateRequiredFields?.(name, required);\n return () => updateRequiredFields?.(name, undefined);\n }, [name, required]);\n\n const handleChange = useCallback(\n (updatedValue: FieldValue) => {\n updateFieldValue?.(name, updatedValue);\n },\n [name, updateFieldValue]\n );\n\n const messageText = error || message;\n\n const injected = useMemo(() => (\n injectPropsToMatchingFields(children, {\n name,\n value,\n onValueChange: handleChange,\n disabled,\n invalid: isInvalid,\n required,\n id: fieldId,\n }, hadFormContext.current)\n ), [children, name, fieldId, value, handleChange, disabled, isInvalid, required, hadFormContext.current]);\n\n const variantProps = useBuildVariantProps(\n 'form-field',\n {\n type: isInvalid ? 'error' : 'default'\n },\n );\n\n return {\n label,\n required,\n infoIcon,\n children: injected,\n messageText,\n fieldId,\n variantProps,\n showMessageContainer: hasMessage || messageText,\n showErrorIcon: isInvalid && messageText,\n showInfoIcon: !isInvalid && messageText,\n };\n};\n\nexport default usePresenter;\n","import React from 'react';\nimport styles from './Grid.module.scss';\nimport { GridProps } from './Grid.types';\n\nconst Grid = (props: GridProps) => {\n const { \n columns = 1, \n rows,\n children,\n ...rest \n } = props;\n\n return (\n <div \n {...rest}\n className={styles.grid}\n style={{\n display: 'grid',\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n gridTemplateRows: rows ? `repeat(${rows}, 1fr)` : undefined,\n }}\n >\n {children}\n </div>\n );\n};\n\nexport default Grid;","import React, { useMemo } from 'react';\nimport cx from 'classnames';\nimport styles from './GridList.module.scss';\nimport { GridListProps } from './GridList.types'; \nimport { ListItemType } from '../List/List.types';\nimport List from '../List';\n\nconst GridList = <T extends ListItemType>(props: GridListProps<T>) => {\n const { \n className,\n component, \n columns = 1, \n data,\n gap,\n ...rest \n } = props;\n\n // Add gridColumn to each item\n const updatedData = useMemo(() => {\n return data?.map((item): T => ({\n ...item,\n itemClassName: styles.gridListItem,\n }));\n }, [data]);\n\n return (\n <List\n {...rest}\n className={cx(styles.gridList, className)}\n style={{\n display: 'grid',\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n gap: gap,\n }}\n component={component}\n data={updatedData}\n />\n );\n};\n\nexport default GridList;\n","import React, { Children } from 'react';\nimport cx from 'classnames';\nimport styles from './ListItem.module.scss';\nimport { ListItemProps } from \"./ListItem.types\";\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\nconst ListItem = (props: ListItemProps) => {\n const {\n className,\n leadingIcon,\n trailingIcon,\n onClick,\n children,\n disabled,\n ...restProps\n } = props;\n\n let leadingIconComponent, trailingIconComponent, content;\n\n // Render leading icon if it is passed\n if (leadingIcon) {\n leadingIconComponent = <div className={styles.leadingIcon}>\n {leadingIcon}\n </div>;\n }\n\n // Render training icon if it is passed\n if (trailingIcon) {\n trailingIconComponent = <div className={styles.trailingIcon}>\n {trailingIcon}\n </div>;\n }\n\n if (children) {\n content = <div className={styles.content}>\n <WrapTextNodes className={styles.text}>\n {children}\n </WrapTextNodes>\n </div>;\n }\n\n const variantProps = useBuildVariantProps(\n 'list-item',\n {},\n { disabled },\n );\n\n\n return (\n <div\n className={cx(styles.listItem, className)}\n onClick={onClick}\n tabIndex={0}\n {...variantProps}\n {...restProps}\n >\n {leadingIconComponent}\n {content}\n {trailingIconComponent}\n </div>\n );\n};\n\nexport default ListItem;\n","import React from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./ModalFooter.module.scss\";\nimport type { ModalFooterProps } from \"./ModalFooter.types\";\nimport useBuildVariantProps from \"../../../../modules/theme/useBuildVariantProps\";\n\n/**\n * Modal Footer component for displaying footer actions in a modal.\n */\nconst ModalFooter: React.FC<ModalFooterProps> = ({\n type = \"1Button\",\n style = \"NoStroke\",\n primaryButton,\n secondaryButton,\n className,\n ...restProps\n}) => {\n\n let primaryButtonComponent, secondaryButtonComponent;\n\n if (primaryButton) {\n primaryButtonComponent = <>{primaryButton}</>;\n }\n\n if (type === '2Buttons' && secondaryButton) {\n secondaryButtonComponent = <>{secondaryButton}</>;\n }\n const variantProps = useBuildVariantProps(\n 'modal-footer',\n { type, style }\n );\n\n return (\n <div \n className={cx(styles.modalFooter, { \n [styles.oneButton]: type === \"1Button\"\n }, \n className\n )} \n {...variantProps} \n {...restProps}\n >\n {secondaryButtonComponent}\n {primaryButtonComponent}\n </div>\n );\n};\n\nexport default ModalFooter;\n","import React from 'react';\nimport cx from 'classnames';\nimport { Text } from '../../../atoms';\nimport styles from './ModalHeader.module.scss';\nimport type { ModalHeaderProps } from './ModalHeader.types';\nimport useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\n\n/**\n * Modal Header component definition.\n */\nconst ModalHeader = (props: ModalHeaderProps) => {\n const {\n className,\n title,\n iconButton,\n ...restProps\n } = props;\n\n let titleComponent, iconButtonComponent;\n\n // Render icon button if passed\n if (iconButton) {\n iconButtonComponent = (\n <>\n {iconButton}\n </>\n )\n }\n\n const variantProps = useBuildVariantProps('modal-header', {}, {});\n\n return (\n <div className={cx(styles.modalHeader, className)} {...variantProps} {...restProps}>\n <Text\n className={styles.title}\n weight=\"Medium\"\n type=\"BodyMedium\"\n >\n {title}\n </Text>\n {iconButtonComponent}\n </div>\n );\n};\n\nexport default ModalHeader;\n","import React from 'react';\nimport cx from 'classnames';\nimport styles from './Nav.module.scss';\nimport type { NavProps } from './Nav.types';\n\nconst Nav = (props: NavProps) => {\n const {\n className,\n children,\n ...restProps\n } = props;\n return (\n <nav\n {...restProps} \n className={cx(styles.nav, className)}\n >\n <ul className={styles.navItems}>\n {children}\n </ul>\n </nav>\n );\n};\nexport default Nav;\n","import React from 'react';\nimport cx from 'classnames';\nimport styles from './NavItem.module.scss';\nimport type { NavItemProps } from './NavItem.types';\n\nconst NavItem = (props: NavItemProps) => {\n const {\n className,\n children,\n ...restProps\n } = props;\n return (\n <li\n {...restProps} \n className={cx(styles.navItem, className)}\n >\n {children}\n </li>\n );\n};\nexport default NavItem;\n","import cx from 'classnames';\nimport { useEffect } from 'react';\nimport { getClickAccessibilityProps } from '../../../utils/accessibilityUtils';\nimport useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\nimport { Icon } from '../../../atoms';\nimport { WrapTextNodes } from '../../../utils/WrapTextNodes';\nimport { useSelectContext } from '../Select.Context';\nimport { checkIsSelected } from '../Select.utils';\nimport styles from './Option.module.scss';\nimport type { OptionProps } from './Option.types';\n\n/**\n * Functional component representing an option within a select dropdown.\n *\n * @param props - Props for configuring the Option component.\n * @returns Element representing the option.\n */\nconst Option = (props: OptionProps) => {\n const {\n disabled = false,\n leadingIcon,\n trailingIcon,\n value,\n className,\n children,\n closeSelectOptions, // This prop is for internal use, not to be set by the user\n ...restProp\n } = props;\n\n // Accessing Select context to manage selection state\n const { selectedValue, updateSelectedValue, registerOption } = useSelectContext();\n const isSelected = checkIsSelected(String(value), selectedValue);\n\n // Register this option's value-label pair\n useEffect(() => {\n registerOption(value, children);\n }, [value, children, registerOption]);\n\n let leadingIconComponent, trailingIconComponent, content;\n\n // Render leading icon if provided\n if (leadingIcon) {\n leadingIconComponent = <div className={cx(styles.leadingIcon)}>{leadingIcon}</div>;\n }\n\n // Render trailing icon if provided\n const trailingIconView = trailingIcon ?? (\n <Icon\n icon='Check'\n style='Outlined'\n size='Small'\n />\n );\n\n if(isSelected) {\n trailingIconComponent = trailingIconView;\n }\n\n // Render children content if provided\n if (children) {\n content = <div className={cx(styles.content)}>\n <WrapTextNodes whiteSpaceNoWrap={true} className={styles.text}>{children}</WrapTextNodes>\n </div>;\n }\n\n /**\n * Handles click event on the option.\n * Updates the selected value if the option is not disabled.\n */\n const handleClick = () => {\n if (!disabled) {\n updateSelectedValue(value);\n closeSelectOptions?.();\n }\n };\n\n const variantProps = useBuildVariantProps(\n 'select-list-item',\n {\n type: isSelected ? 'selected' : 'unselected',\n },\n {\n disabled,\n }\n );\n\n const accessibilityProps = getClickAccessibilityProps({\n actions: {\n onClick: handleClick,\n },\n addIndex: true,\n role: 'option',\n });\n\n return (\n <li\n {...restProp}\n className={cx(\n styles.option,\n { [styles.selected]: isSelected },\n className\n )}\n onClick={handleClick}\n {...accessibilityProps}\n {...variantProps}\n >\n {leadingIconComponent}\n {content}\n {trailingIconComponent}\n </li>\n );\n};\n\nexport default Option;\n","import React from 'react';\nimport cx from 'classnames';\n\nimport PaginationNumberField from '../PaginationNumberField';\nimport styles from './Pagination.module.scss';\nimport { PaginationProps } from './Pagination.types';\nimport usePresenter from './Pagination.presenter';\nimport { Icon, IconButton, Text } from '../../atoms';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\nconst Pagination = (props: PaginationProps) => {\n const {\n currentPage,\n updateCurrentPage,\n nextPage,\n previousPage,\n totalPages,\n nextPageEnabled,\n previousPageEnabled,\n } = usePresenter(props);\n\n const previousPageIcon = props.previousPageIcon || <Icon icon=\"ChevronLeft\" size=\"Small\" style=\"Outlined\" />;\n const nextPageIcon = props.nextPageIcon || <Icon icon=\"ChevronRight\" size=\"Small\" style=\"Outlined\" />;\n\n const variantProps = useBuildVariantProps(\n \"pagination\",\n {\n style: \"default\",\n },\n {},\n );\n\n return (\n <div className={cx(styles.pagination, props.className)} {...variantProps}>\n <div className={styles.paginationContentContainer}>\n <IconButton\n className={styles.backButton}\n disabled={!previousPageEnabled}\n onClick={previousPage}\n icon={previousPageIcon}\n size=\"Small\"\n style=\"Secondary\"\n type=\"Ghost\"\n />\n <div className={styles.paginationValuesContainer}>\n <PaginationNumberField\n className={styles.paginationNumberField}\n page={currentPage}\n totalPages={totalPages}\n onPageChanged={updateCurrentPage}\n />\n <Text\n className={styles.totalPages}\n type=\"BodySmall\"\n >\n of {totalPages}\n </Text>\n </div>\n <IconButton\n className={styles.forwardButton}\n disabled={!nextPageEnabled}\n onClick={nextPage}\n icon={nextPageIcon}\n size=\"Small\"\n style=\"Secondary\"\n type=\"Ghost\"\n />\n </div>\n </div>\n );\n};\n\nexport default Pagination;\n","import { useEffect, useState } from \"react\";\nimport { PaginationProps } from \"./Pagination.types\";\n\nconst usePresenter = (props: PaginationProps) => {\n const { currentPage = 1, totalPages = 1 , updateCurrentPage } = props;\n const [currentPageState, setCurrentPageState] = useState(currentPage); \n const nextPageEnabled = currentPageState < totalPages;\n const previousPageEnabled = currentPageState > 1;\n\n useEffect(() => {\n setCurrentPageState(currentPage);\n }, [currentPage]); \n\n const nextPage = () => {\n setCurrentPageState(currentPageState + 1);\n if (updateCurrentPage) {\n updateCurrentPage(currentPageState + 1);\n }\n }\n\n const previousPage = () => {\n setCurrentPageState(currentPageState - 1);\n if (updateCurrentPage) {\n updateCurrentPage(currentPageState - 1);\n }\n }\n\n const onPageChanged = (page: number) => {\n setCurrentPageState(page);\n if (updateCurrentPage) {\n updateCurrentPage(page);\n }\n }\n\n return {\n currentPage: currentPageState,\n updateCurrentPage: onPageChanged,\n nextPage,\n previousPage,\n totalPages: totalPages || 1,\n nextPageEnabled,\n previousPageEnabled,\n }\n};\n\nexport default usePresenter;","import React from 'react';\nimport cx from 'classnames';\n\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport Icon from '../Icon';\nimport IconButton from '../IconButton';\nimport Input from '../Input';\nimport styles from './Password.module.scss';\nimport usePresenter from './Password.presenter';\nimport { PasswordProps } from './Password.types';\n\nconst Password = (props: PasswordProps) => {\n const {\n showPassword,\n togglePassword,\n variantProps,\n hideTrailingIcon,\n otherPasswordProps,\n } = usePresenter(props);\n\n const visibilityOffIcon = <Icon className={cx({ [styles.hide]: !showPassword })} icon={'VisibilityOff'} size='Small' />;\n const visibilityOnIcon = <Icon className={cx({ [styles.hide]: showPassword })} icon={'VisibilityOn'} size='Small' />;\n\n return (\n <Input\n {...otherPasswordProps}\n className={cx(styles.password, props.className)}\n inputType={showPassword ? 'Text' : 'Password'}\n trailingIcon={(\n <ConditionalView condition={!hideTrailingIcon}>\n <IconButton\n className={styles.toggle}\n size='Small'\n type='Ghost'\n icon={(\n <>\n {visibilityOffIcon}\n {visibilityOnIcon}\n </>\n )}\n onClick={togglePassword}\n disabled={props.disabled}\n />\n </ConditionalView>\n )}\n {...variantProps}\n />\n );\n\n};\n\nexport default Password;","import { useState } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { PasswordProps } from './Password.types';\n\nconst usePresenter = (props: PasswordProps) => {\n const {\n className,\n hideTrailingIcon,\n ...otherProps\n } = props;\n\n const [showPassword, setShowPassword] = useState(false);\n const togglePassword = () => {\n setShowPassword((prev) => !prev);\n };\n\n // not adding state flags as they will be added to the input component\n const variantProps = useBuildVariantProps(\n 'password',\n );\n\n return {\n showPassword,\n togglePassword,\n variantProps,\n hideTrailingIcon,\n otherPasswordProps: otherProps,\n };\n};\n\nexport default usePresenter;","import React from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./ProgressBar.module.scss\";\nimport { ProgressBarProps } from \"./ProgressBar.types\";\nimport useBuildVariantProps from \"../../../modules/theme/useBuildVariantProps\";\nimport { calculatePercentageValue } from \"./ProgressBar.utils\";\n\nconst ProgressBar: React.FC<ProgressBarProps> = ({\n value,\n min = 0,\n max = 100,\n // orientation = \"Horizontal\",\n showLabel,\n label,\n className,\n}) => {\n // const isVertical = orientation === \"Vertical\";\n const percentage = calculatePercentageValue(value, min, max);\n const variantProps = useBuildVariantProps(\n \"progress-bar\",\n {\n // orientation,\n style: percentage > 0 ? \"Filled\" : \"Empty\",\n },\n {},\n );\n\n return (\n <div\n className={cx(styles.progressBar, className)}\n role=\"progressbar\"\n aria-valuenow={value}\n aria-valuemin={min}\n aria-valuemax={max}\n {...variantProps}\n >\n {/* The progress indicator bar, dynamically setting width/height based on orientation */}\n <div\n className={styles.progressIndicator}\n style={{ width: `${percentage}%` }}\n // style={{\n // width: isVertical ? \"100%\" : `${percentage}%`,\n // height: isVertical ? `${percentage}%` : \"100%\",\n // }}\n />\n\n {/* Show label if enabled, either as a percentage or custom text */}\n {showLabel && (\n <div className={styles.label}>\n {showLabel === \"Percentage\" ? `${Math.round(percentage)}%` : label}\n </div>\n )}\n </div>\n );\n};\n\nexport default ProgressBar;\n","export const calculatePercentageValue = (value: number, min: number, max: number): number => {\n // Ensure the value stays within the min-max range\n const clampedValue = Math.max(min, Math.min(value, max));\n\n // Calculate the percentage representation of the progress\n return ((clampedValue - min) / (max - min)) * 100;\n}","import cx from 'classnames';\nimport styles from './RadioGroup.module.scss';\nimport usePresenter from './RadioGroup.presenter';\nimport type { RadioGroupProps } from './RadioGroup.types';\n\nconst RadioGroup = (props: RadioGroupProps) => {\n const {\n orientation = 'vertical',\n radioButtons,\n variantProps,\n } = usePresenter(props);\n\n return (\n <div\n className={cx(styles.radioGroup, {\n [styles[orientation]]: orientation,\n }, props.className)}\n role=\"radiogroup\"\n {...variantProps}\n >\n {radioButtons}\n </div>\n );\n};\n\nexport default RadioGroup; ","import useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { useControlledValue } from '../FormField/useControlledValue';\nimport { RadioGroupProps } from './RadioGroup.types';\nimport { injectRadioButtonProps } from './RadioGroup.utils';\n\nconst usePresenter = (props: RadioGroupProps) => {\n const {\n children,\n value,\n onValueChange,\n disabled,\n invalid,\n required,\n orientation = 'vertical',\n } = props;\n\n const { value: selectedValue, onValueChange: handleValueChange } = useControlledValue<string | number>({ value, onValueChange, defaultValue: '' });\n\n const variantProps = useBuildVariantProps(\n 'radio-group',\n {\n orientation,\n },\n {\n disabled,\n invalid,\n },\n );\n\n return {\n radioButtons: injectRadioButtonProps(children, selectedValue, handleValueChange),\n orientation,\n variantProps,\n };\n};\n\nexport default usePresenter;","import { ConditionalView } from \"../ConditionalView\";\nimport { RenderStateViewProps } from \"./RenderStateView.types\";\nimport { usePresenter } from \"./usePresenter\";\n\nconst RenderStateView = <T = unknown, P = any>(props: RenderStateViewProps<T, P>) => {\n const { \n data, \n isLoading,\n errorData,\n filled: Filled, \n empty: Empty, \n loading: Loading,\n error: Error,\n ...rest\n } = props;\n const { showError, showLoading, showEmpty, showFilled } = usePresenter(props);\n\n return (\n <>\n <ConditionalView condition={showError}>\n {Error && <Error error={errorData as Error | string} {...rest as any} />}\n </ConditionalView>\n\n <ConditionalView condition={showLoading}>\n {Loading && <Loading {...rest as any} />}\n </ConditionalView>\n\n <ConditionalView condition={showEmpty}>\n {Empty && <Empty {...rest as any} />}\n </ConditionalView>\n\n <ConditionalView condition={showFilled}>\n {Filled && <Filled data={data as T} {...rest as any} />}\n </ConditionalView>\n </>\n );\n};\n\nexport default RenderStateView;\n","import React, { Children } from 'react';\nimport cx from 'classnames';\nimport styles from './SelectListItem.module.scss';\nimport { SelectListItemProps } from \"./SelectListItem.types\";\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\n\nconst SelectListItem = (props: SelectListItemProps) => {\n const {\n className,\n leadingIcon,\n trailingIcon,\n onClick,\n children,\n disabled,\n ...restProps\n } = props;\n\n let leadingIconComponent, trailingIconComponent, content;\n\n // Render leading icon if it is passed\n if (leadingIcon) {\n leadingIconComponent = <div className={styles.leadingIcon}>\n {leadingIcon}\n </div>;\n }\n\n // Render training icon if it is passed\n if (trailingIcon) {\n trailingIconComponent = <div className={styles.trailingIcon}>\n {trailingIcon}\n </div>;\n }\n\n if (children) {\n content = <div className={styles.content}>\n <WrapTextNodes className={styles.text}>\n {children}\n </WrapTextNodes>\n </div>;\n }\n\n const variantProps = useBuildVariantProps(\n 'list-item',\n {},\n { disabled },\n );\n\n\n return (\n <div\n className={cx(styles.listItem, className)}\n onClick={onClick}\n tabIndex={0}\n {...variantProps}\n {...restProps}\n >\n {leadingIconComponent}\n {content}\n {trailingIconComponent}\n </div>\n );\n};\n\nexport default SelectListItem;\n","import classNames from 'classnames';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { Modal } from '../../molecules';\nimport { WrapTextNodes } from '../../utils/WrapTextNodes';\nimport { FadeTransition } from './FadeTransition';\nimport styles from './SlideOutPanel.module.scss';\nimport { SlideOutPanelProps } from './SlideOutPanel.types';\n\nconst SlideOutPanel = (props: SlideOutPanelProps) => {\n const {\n className,\n children,\n direction = 'Right',\n size = 'Medium',\n // Modal props\n backdrop,\n disableBackdropDismiss,\n onHide,\n renderBackdrop,\n show,\n } = props;\n\n const variantProps = useBuildVariantProps(\n 'slide-out-panel',\n { size, direction },\n );\n\n return (\n <Modal\n className={classNames(\n styles.slideOutPanel,\n styles[`slideOutPanel--${size.toLowerCase()}`],\n styles[`slideOutPanel--${direction?.toLowerCase()}`],\n className,\n )}\n backdrop={backdrop}\n disableBackdropDismiss={disableBackdropDismiss}\n onHide={onHide}\n renderBackdrop={renderBackdrop}\n show={show}\n Transition={FadeTransition}\n {...variantProps}\n >\n {children && <WrapTextNodes>{children}</WrapTextNodes>}\n </Modal>\n )\n};\n\nexport default SlideOutPanel","import cx from 'classnames';\nimport { useCallback } from 'react';\nimport { ConditionalView } from '../../utils/ConditionalView';\nimport Text from '../Text';\nimport Tooltip from '../Tooltip';\nimport styles from './Slider.module.scss';\nimport usePresenter from './Slider.presenter';\nimport { SliderProps } from './Slider.types';\n\nconst Slider = (props: SliderProps) => {\n const {\n variantProps,\n sliderRef,\n focusedThumb,\n getPercentage,\n enableRange,\n value,\n showMax,\n max,\n showMin,\n min,\n startDrag,\n showValueOnThumb,\n disabled,\n otherSliderProps,\n } = usePresenter(props);\n\n const toolTipView = useCallback(\n (show: boolean, value: number, index: number) => {\n const sliderThumb = <div\n key={index}\n className={styles.sliderThumb}\n style={{ left: `${getPercentage(value)}%` }}\n onTouchStart={startDrag(index)}\n />;\n\n if (showValueOnThumb && show) {\n return <Tooltip\n isVisible={showValueOnThumb && show}\n action='Follow'\n target={sliderThumb}\n style='Outlined'\n >\n {value}\n </Tooltip>;\n }\n return sliderThumb;\n },\n [showValueOnThumb],\n );\n\n return (\n <div\n className={cx(styles.sliderContainer,\n {\n [styles.disabled]: disabled,\n },\n props.className)}\n {...variantProps}\n {...otherSliderProps}\n >\n <ConditionalView condition={showMin}>\n <Text className={styles.sliderLabel}>{min}</Text>\n </ConditionalView>\n <div\n id={props.id}\n ref={sliderRef}\n className={styles.sliderTrack}\n onMouseDown={startDrag()}\n onTouchStart={startDrag()}\n >\n <div\n className={styles.sliderFill}\n style={\n enableRange\n ? {\n left: `${getPercentage((value as [number, number])[0])}%`,\n right: `${100 - getPercentage((value as [number, number])[1])}%`,\n }\n : {\n left: `0%`,\n right: `${100 - getPercentage(value as number)}%`,\n }\n }\n />\n {enableRange ? (\n (value as [number, number]).map((val, index) =>\n toolTipView(focusedThumb === index, val, index)\n )\n ) : (\n toolTipView(focusedThumb === 0, value as number, 0)\n )}\n </div>\n {showMax && <Text className={styles.sliderLabel}>{max}</Text>}\n </div>\n );\n};\n\nexport default Slider;\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport { useControlledValue } from '../../molecules/FormField/useControlledValue';\nimport { SliderProps } from './Slider.types';\n\nconst usePresenter = (props: SliderProps) => {\n const {\n min = 0,\n max = 100,\n step = 1,\n value: propValue,\n onValueChange,\n showMin,\n showMax,\n showValueOnThumb,\n enableRange = false,\n disabled = false,\n invalid = false,\n required = false,\n className,\n ...otherSliderProps\n } = props;\n\n const { value: sliderValue, onValueChange: handleValueChange } = useControlledValue<number | [number, number]>({ value: propValue, onValueChange, defaultValue: min });\n\n const sliderRef = useRef<HTMLDivElement | null>(null);\n\n const value = useMemo(\n () => enableRange \n ? (sliderValue as [number, number]) || [min, max]\n : (sliderValue as number) || min,\n [enableRange, sliderValue, min, max]\n );\n\n const [dragging, setDragging] = useState<number | null>(null);\n const [focusedThumb, setFocusedThumb] = useState<number | null>(null);\n\n const getPercentage = useCallback(\n (val: number) => ((val - min) / (max - min)) * 100,\n [min, max]\n );\n\n const getClosestThumb = useCallback((clientX: number) => {\n if (!enableRange || !sliderRef.current) return 0;\n const { left, width } = sliderRef.current.getBoundingClientRect();\n const percent = ((clientX - left) / width) * 100;\n\n return Math.abs(getPercentage((value as [number, number])[0]) - percent) <\n Math.abs(getPercentage((value as [number, number])[1]) - percent)\n ? 0\n : 1;\n }, [enableRange, getPercentage, value]);\n\n const updateValueFromPosition = useCallback((clientX: number, index?: number) => {\n if (!sliderRef.current) return;\n const { left, width } = sliderRef.current.getBoundingClientRect();\n let percent = (clientX - left) / width;\n let newValue = Math.round((min + percent * (max - min)) / step) * step;\n newValue = Math.min(max, Math.max(min, newValue));\n\n handleValueChange((prev) => {\n if (enableRange) {\n const newValues = [...(prev as [number, number])] as [number, number];\n newValues[index as number] = newValue;\n newValues.sort((a, b) => a - b);\n return newValues;\n } else {\n return newValue;\n }\n });\n }, [min, max, step, enableRange, handleValueChange]);\n\n const startDrag = useCallback(\n (index?: number) => (e: React.MouseEvent | React.TouchEvent) => {\n if (!disabled) {\n e.stopPropagation();\n const clientX = 'touches' in e ? e.touches[0].clientX : e.clientX;\n const closestIndex = enableRange ? index ?? getClosestThumb(clientX) : 0;\n setDragging(closestIndex);\n setFocusedThumb(closestIndex);\n updateValueFromPosition(clientX, closestIndex);\n }\n },\n [disabled, enableRange, getClosestThumb, updateValueFromPosition]\n );\n\n useEffect(() => {\n const moveDrag = (e: MouseEvent | TouchEvent) => {\n if (dragging !== null) {\n updateValueFromPosition(\n 'touches' in e ? e.touches[0].clientX : e.clientX,\n dragging\n );\n }\n };\n\n const stopDrag = () => {\n setDragging(null);\n setFocusedThumb(null);\n };\n\n window.addEventListener('mousemove', moveDrag);\n window.addEventListener('mouseup', stopDrag);\n window.addEventListener('touchmove', moveDrag);\n window.addEventListener('touchend', stopDrag);\n\n return () => {\n window.removeEventListener('mousemove', moveDrag);\n window.removeEventListener('mouseup', stopDrag);\n window.removeEventListener('touchmove', moveDrag);\n window.removeEventListener('touchend', stopDrag);\n };\n }, [dragging, updateValueFromPosition]);\n\n const variantProps = useBuildVariantProps(\n 'slider',\n {\n },\n {\n disabled,\n },\n );\n\n return {\n min,\n max,\n showMin,\n showMax,\n showValueOnThumb,\n enableRange,\n disabled,\n value,\n dragging,\n focusedThumb,\n sliderRef,\n getPercentage,\n startDrag,\n variantProps,\n otherSliderProps,\n };\n};\n\nexport default usePresenter;","import React from 'react';\nimport cx from 'classnames';\nimport useBuildVariantProps from '../../../modules/theme/useBuildVariantProps';\nimport styles from './Table.module.scss';\nimport type { TableProps } from './Table.types';\n\nconst Table = (props: TableProps) => {\n const {\n className,\n children,\n stickyHeader = false,\n ...otherProps\n } = props;\n\n const tableClassName = cx(\n styles.table,\n {\n [styles.stickyHeader]: stickyHeader,\n },\n className\n );\n\n const variantProps = useBuildVariantProps(\n 'table', {}, {}\n );\n\n return (\n <table className={tableClassName} {...otherProps} {...variantProps}>\n {children}\n </table>\n );\n};\n\nexport default Table;\n","import React from 'react';\nimport cx from 'classnames';\nimport useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\nimport styles from './TableBody.module.scss';\nimport type { TableBodyProps } from './TableBody.types';\n\nconst TableBody = (props: TableBodyProps) => {\n const {\n className,\n children,\n ...otherProps\n } = props;\n\n const variantProps = useBuildVariantProps(\n 'table',\n {},\n {},\n );\n\n return (\n <tbody className={cx(styles.tableBody, className)} { ...otherProps } { ...variantProps }>\n {children}\n </tbody>\n );\n};\nexport default TableBody;\n","import React from 'react';\nimport cx from 'classnames';\nimport useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\nimport { WrapTextNodes } from '../../../utils/WrapTextNodes';\nimport styles from './TableCell.module.scss';\nimport type { TableCellProps } from './TableCell.types';\n\nconst TableCell = (props: TableCellProps) => {\n const {\n className,\n children,\n ...otherProps\n } = props;\n\n const variantProps = useBuildVariantProps(\n 'table-cell',\n {},\n {},\n );\n\n return (\n <td className={cx(styles.tableCell, className)} { ...otherProps } { ...variantProps }>\n <WrapTextNodes className={styles.text}>{children}</WrapTextNodes>\n </td>\n );\n};\nexport default TableCell;\n","import React from 'react';\nimport cx from 'classnames';\nimport useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\nimport styles from './TableHeader.module.scss';\nimport type { TableHeaderProps } from './TableHeader.types';\n\nconst TableHeader = (props: TableHeaderProps) => {\n const {\n className,\n children,\n ...otherProps\n } = props;\n\n const variantProps = useBuildVariantProps(\n 'table',\n {},\n {},\n );\n\n return (\n <thead className={cx(styles.tableHeader, className)} { ...otherProps } { ...variantProps }>\n {children}\n </thead>\n );\n};\nexport default TableHeader;\n","import React from 'react';\nimport cx from 'classnames';\nimport useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\nimport { WrapTextNodes } from '../../../utils/WrapTextNodes';\nimport styles from './TableHeaderCell.module.scss';\nimport type { TableHeaderCellProps } from './TableHeaderCell.types';\n\nconst TableHeaderCell = (props: TableHeaderCellProps) => {\n const {\n className,\n children,\n ...otherProps\n } = props;\n\n const variantProps = useBuildVariantProps(\n 'table-header-cell',\n {},\n {},\n );\n\n return (\n <th className={cx(styles.tableHeaderCell, className)} { ...otherProps } { ...variantProps }>\n <WrapTextNodes className={styles.text}>{children}</WrapTextNodes>\n </th>\n );\n};\nexport default TableHeaderCell;\n","import React from 'react';\nimport cx from 'classnames';\nimport useBuildVariantProps from '../../../../modules/theme/useBuildVariantProps';\nimport styles from './TableRow.module.scss';\nimport type { TableRowProps } from './TableRow.types';\n\nconst TableRow = (props: TableRowProps) => {\n const {\n className,\n children,\n ...otherProps\n } = props;\n\n const variantProps = useBuildVariantProps(\n 'table-row',\n {},\n {},\n );\n\n return (\n <tr className={cx(styles.tableRow, className)} { ...otherProps } { ...variantProps }>\n {children}\n </tr>\n );\n};\nexport default TableRow;\n","import React from 'react';\nimport TabsComponent from './Tabs';\nimport { TabProvider, useTab } from './Tabs.Context';\nimport type { TabsProps } from './Tabs.types';\n\nexport type { TabsProps };\nexport { useTab };\n\n// Wrap the Tabs component with the TabProvider\nconst Tabs = (props: TabsProps) => {\n const {\n value,\n style,\n onClick,\n ...restProps\n } = props;\n return (\n <TabProvider value={value} style={style} onClick={onClick} >\n <TabsComponent {...restProps} style={style}/>\n </TabProvider>\n );\n};\nexport default Tabs;\n","import { useMemo } from 'react';\nimport type { ComponentType, ReactElement } from 'react';\n\n/**\n * A hook that takes a component type and props and returns a memoized React element.\n * This is useful for creating reusable component instances with memoization to prevent\n * unnecessary re-renders when props haven't changed.\n * \n * @template T - The props type for the component\n * @param Component - React component to render\n * @param props - Props to pass to the component\n * @returns Memoized React element\n * \n * @example\n * ```tsx\n * const MyComponent = ({ title, count }) => (\n * <div>\n * <h1>{title}</h1>\n * <p>Count: {count}</p>\n * </div>\n * );\n * \n * function ParentComponent() {\n * const [count, setCount] = useState(0);\n * \n * // This view will only re-render when title or count changes\n * const inflatedView = useInflateView(MyComponent, {\n * title: 'My Title',\n * count: count\n * });\n * \n * return (\n * <div>\n * {inflatedView}\n * <button onClick={() => setCount(c => c + 1)}>\n * Increment\n * </button>\n * </div>\n * );\n * }\n * ```\n */\nexport const useInflateView = <T extends ComponentType<any>>(\n Component: T,\n props: React.ComponentProps<T>\n): ReactElement => {\n return useMemo(\n () => <Component {...props} />,\n [Component, props]\n );\n};\n\nexport default useInflateView;","import { useCallback, useId } from 'react';\nimport { useModalContext } from './ModalContext';\nimport type { ComponentType } from 'react';\nimport type { ModalComponentProps, UseModalReturn } from './ModalContext.types';\n\n/**\n * Custom hook that provides an abstraction layer over the modal context.\n * Takes a component type and returns functions to open/close that specific modal.\n * Uses React's useId hook to generate a unique identifier for the modal instance.\n * \n * @template T - The props type for the modal component (must extend ModalComponentProps)\n * @param Component - React component to use for the modal\n * @returns An object containing openModal, closeModal functions and the modalId\n * \n * @example\n * ```tsx\n * function MyComponent() {\n * const confirmationModal = useModal(ConfirmationModal);\n * \n * const handleDelete = () => {\n * confirmationModal.openModal({\n * title: 'Delete Item',\n * message: 'Are you sure you want to delete this item?',\n * show: true,\n * onConfirm: () => {\n * // perform delete\n * confirmationModal.closeModal();\n * },\n * onCancel: confirmationModal.closeModal\n * });\n * };\n * \n * return <button onClick={handleDelete}>Delete</button>;\n * }\n * ```\n */\nexport const useModal = <T extends ModalComponentProps>(\n Component: ComponentType<T>\n): UseModalReturn<T> => {\n const { openModal: contextOpenModal, closeModal: contextCloseModal } = useModalContext();\n const modalId = useId();\n\n const openModal = useCallback((props: T) => {\n contextOpenModal(modalId, Component, props);\n }, [contextOpenModal, Component, modalId]);\n\n const closeModal = useCallback(() => {\n contextCloseModal(modalId);\n }, [contextCloseModal, modalId]);\n\n return {\n openModal,\n closeModal,\n modalId\n };\n};"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","rejected","result","done","then","__generator","body","f","y","_","label","sent","trys","ops","g","create","Iterator","verb","Symbol","iterator","v","op","TypeError","pop","push","__spreadArray","to","from","pack","ar","l","Array","slice","concat","SuppressedError","nativeBooleanAttributes","useBuildVariantProps","componentName","variants","stateFlags","componentVariantOverride","useMemo","variantString","entries","sort","_a","_b","keyA","keyB","localeCompare","map","input","split","filter","Boolean","join","toLowerCase","stateFlagsStrings","reduce","acc","key","includes","Spinner","className","componentVariant","variantProps","undefined","_jsx","role","cx","styles","children","jsx","fitMap","Fit","Fill","Crop","Image","props","src","fit","fallback","onLoad","onError","_c","showLoading","aspectRatio","_d","alt","otherImageProps","_e","useState","imgSrc","setImgSrc","_f","imgWidth","setImgWidth","_g","imgHeight","setImgHeight","_h","isLoading","setIsLoading","useEffect","naturalAspectRatio","aspectPadding","heightRatio","widthRatio","width","parseInt","height","isNaN","_jsxs","image","imageContainer","aspect","style","paddingTop","content","currentTarget","naturalWidth","naturalHeight","error","loadingIcon","typesMap","Heading1","Heading2","Heading3","Heading4","Heading5","Heading6","BodyLarge","BodyMedium","BodySmall","weightNameMap","Thin","ExtraLight","Light","Regular","Medium","SemiBold","Bold","ExtraBold","Black","ExtraBlack","tansformMap","None","Capitalize","UpperCase","LowerCase","componentTypeMap","Text","type","weight","noWrap","whiteSpaceNoWrap","italic","decoration","transform","_j","ellipsis","as","TextComponent","text","nowrap","underline","strikethrough","WrapTextNodes","textProps","_Fragment","React","Children","child","AlignContentMap","Center","SpaceBetween","Button","leadingIconComponent","trailingIconComponent","loadingComponent","appearance","size","leadingIcon","trailingIcon","loading","disabled","onClick","actionType","alignContent","restProps","button","event","svgCache","pendingRequests","sizeMap","Small","Large","Icon","icon","name","svgContent","setSvgContent","setLoading","setError","isMounted","pendingRequest","svgText","console","err_1","fetchRequest","fetch","response","ok","Error","status","statusText","err_2","useDynamicSVGImport","svg","dangerouslySetInnerHTML","__html","IconButton","otherProps","ConditionalView","condition","isValidElement","useControlledValue","onValueChange","defaultValue","internalValue","setInternalValue","useCallback","newValue","prevValue","resolvedValue","mergeRefs","refs","_i","forEach","ref","refString","toString","current","inputTypeMap","Number","Email","Password","Input","forwardRef","invalid","inputType","required","preProcessInput","otherInputProps","internalInputRef","useRef","handleValueChange","onInputChanged","target","updatedValue","inputRef","usePresenter","onChange","id","TextArea","otherTextAreaProps","textAreaValue","textArea","Breakpoint","Fragment","useCheckboxField","checked","defaultChecked","isChecked","setIsChecked","onCheckboxChanged","Toggle","labelAlignment","onToggleChanged","ToggleButton","handleChange","TOOLTIP_ARROW_CONSTANTS","ARROW_DIMENSIONS_MAP","Top","Bottom","Left","Right","TOOLTIP_VARIANT_MAP","isEmpty","data","isArray","useDebounce","callback","delay","timeoutRef","callbackRef","debouncedCallback","args","clearTimeout","setTimeout","cancel","getClickAccessibilityProps","params","actions","addIndex","elementProps","onKeyDown","preventDefault","log","onEsc","onTab","shiftKey","onArrowNavigation","tabIndex","Tooltip","direction","alignment","action","isVisible","visible","setVisible","top","left","position","setPosition","tooltipRef","targetRef","wrapperRef","arrowOffset","setArrowOffset","updatePosition","tooltipRect","getBoundingClientRect","targetRect","wrapperRect","top_1","followRect","firstElementChild","offset","window","addEventListener","removeEventListener","variantKey","baseVariant","arrowStyle","positions","arrowDimensions","showTooltip","hideTooltip","toggleTooltip","prev","onMouseEnter","onMouseLeave","CustomToggle","offContent","onContent","classNames","toggleWrapper","toggle","Chip","closeIconComponent","closeIcon","isDisabled","onClose","corner","isDismissible","closeIconView","stopPropagation","Checkbox","CheckboxItem","showRightButton","onRightButtonClick","rightButtonIcon","RadioButton","RadioButtonItem","isSelected","setIsSelected","NavContent","NavigateNavLink","navigate","useNavigate","componentVariantProp","textClassName","rest","navLink","NavLink","asButton","some","buildVariantOptions","component","classNameProp","buttonText","linkText","test","href","RouterNavLink","ContextMenu","List","align","HOOKS","defaults","_disable","allowInput","allowInvalidPreload","altFormat","altInput","altInputClass","animate","navigator","userAgent","ariaDateFormat","autoFillDefaultTime","clickOpens","closeOnSelect","conjunction","dateFormat","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enableSeconds","enableTime","errorHandler","err","warn","getWeek","givenDate","date","Date","getTime","setHours","setDate","getDate","getDay","week1","getFullYear","Math","round","hourIncrement","ignoredFocusElements","inline","locale","minuteIncrement","mode","monthSelectorType","nextArrow","noCalendar","now","onDayCreate","onDestroy","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","plugins","positionElement","prevArrow","shorthandCurrentMonth","showMonths","static","time_24hr","weekNumbers","wrap","english","weekdays","shorthand","longhand","months","daysInMonth","firstDayOfWeek","ordinal","nth","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","monthAriaLabel","hourAriaLabel","minuteAriaLabel","pad","number","int","bool","debounce","fn","wait","_this","arrayify","obj","toggleClass","elem","classList","add","remove","createElement","tag","document","textContent","clearNode","node","firstChild","removeChild","findParent","parentNode","createNumberInput","inputClassName","opts","wrapper","numInput","arrowUp","arrowDown","pattern","setAttribute","appendChild","getEventTarget","composedPath","doNothing","monthToStr","monthNumber","revFormat","D","F","dateObj","monthName","setMonth","G","hour","getHours","parseFloat","H","J","day","K","RegExp","M","shortMonth","S","seconds","setSeconds","U","unixSeconds","W","weekNum","weekNumber","Y","year","setFullYear","Z","ISODate","d","h","minutes","setMinutes","j","m","month","u","unixMillSeconds","w","tokenRegex","formats","toISOString","options","getMonth","getSeconds","getMinutes","String","substring","createDateFormatter","config","l10n","isMobile","frmt","overrideLocale","formatDate","c","arr","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","toFixed","format","datestr","trim","parseDate","matched","matchIndex","regexStr","token","isBackSlash","escaped","match","exec","val","compareDates","date1","date2","isBetween","ts","ts1","ts2","min","max","calculateSecondsSinceMidnight","hours","parseSeconds","secondsSinceMidnight","floor","duration","DAY","getDefaultHours","minDate","minHour","minMinutes","minSeconds","maxDate","maxHr","maxMinutes","_loop_1","source","keys","args_1","__spreadArrays","il","r","k","a","jl","DEBOUNCED_CHANGE_MS","FlatpickrInstance","element","instanceConfig","self","defaultOptions","flatpickr","defaultConfig","English","getClosestActiveElement","calendarContainer","getRootNode","activeElement","bindToInstance","bind","setCalendarWidth","requestAnimationFrame","visibility","display","daysContainer","daysWidth","days","offsetWidth","weekWrapper","removeProperty","updateTime","selectedDates","defaultDate","getMilliseconds","latestSelectedDateObj","isKeyDown","eventTarget","getAttribute","curValue","delta","which","isHourElem","hourElement","isMinuteElem","minuteElement","incrementNumInput","abs","timeWrapper","_input","setHoursFromInputs","updateValue","_debouncedChange","secondElement","limitMinHours","minTime","minDateHasTime","limitMaxHours","maxTime","maxDateHasTime","minBound","maxBound","currentTime","setHoursFromDate","onYearInput","changeYear","handler","ev","el","_handlers","triggerChange","triggerEvent","jumpToDate","jumpDate","jumpTo","oldYear","currentYear","oldMonth","currentMonth","message","buildMonthSwitch","redraw","timeIncrement","contains","inputElem","createEvent","dispatchEvent","createDay","_dayNumber","dateIsEnabled","isEnabled","dayElement","$i","todayDateElem","isDateSelected","selectedDateElem","isDateInRange","insertAdjacentHTML","focusOnDayElem","targetNode","focus","onMouseOver","getFirstAvailableDay","startMonth","endMonth","startIndex","endIndex","focusOnDay","dayFocused","isInView","startElem","givenMonth","loopDelta","numMonthDays","changeMonth","getNextAvailableDay","buildMonthDays","firstOfMonth","prevMonthDays","utils","getDaysInMonth","createDocumentFragment","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayNumber","dayIndex","dayNum","dayContainer","buildDays","frag","shouldBuildMonth","monthsDropdownContainer","innerHTML","selected","buildMonth","monthElement","container","monthNavFragment","selectedMonth","yearInput","tabindex","yearElement","getElementsByTagName","buildMonths","monthNav","prevMonthNav","yearElements","monthElements","nextMonthNav","buildWeekdays","weekdayContainer","updateWeekdays","splice","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","updateNavigationCurrentMonth","isCalendarElem","documentClick","isOpen","eventTarget_1","isCalendarElement","lostFocus","path","relatedTarget","isIgnored","timeContainer","close","clear","newYear","newYearNum","isNewYear","dateToCheck","enable","array","parsed","onBlur","isInput","valueChanged","trimEnd","getDateStr","allowKeydown","allowInlineKeydown","keyCode","blur","open","isTimeObj","focusAndClose","selectDate","delta_1","ctrlKey","currentYearElement","elems","pluginElements","x","charAt","cellClass","hoverDate","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","rContainer","querySelectorAll","dayElem","timestamp","outOfRange","onResize","positionCalendar","minMaxDateSetter","inverseDateObj","removeAttribute","getInputElem","querySelector","setupLocale","l10ns","default","JSON","parse","stringify","dataset","customPositionElement","_positionElement","calendarHeight","offsetHeight","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","distanceFromBottom","innerHeight","bottom","showOnTop","pageYOffset","pageXOffset","isCenter","isRight","right","rightMost","centerMost","doc","editableSheet","styleSheets","sheet","cssRules","head","getDocumentStyleSheet","bodyWidth","centerLeft","centerIndex","centerStyle","insertRule","centerBefore","msMaxTouchPoints","selectedDate","shouldChangeMonth","selectedIndex","b","single","range","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","triggerChangeEvent","toInitial","mobileInput","_initialDate","_createElement","destroy","lastChild","insertBefore","_type","click","wasOpen","select","set","option","CALLBACKS","setSelectedDate","updatePositionElement","inputDate","dates","parseDateRules","rule","hooks","initEvent","specificFormat","dObj","mobileFormatStr","onMonthNavClick","isPrevMonth","isNextMonth","boolOpts","userConfig","defineProperty","get","_enable","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","hook","pluginConf","parseConfig","nodeName","placeholder","nextSibling","setupInputs","preloadedDate","setupDates","yr","fragment","__hidePrevMonthArrow","__hideNextMonthArrow","innerContainer","buildWeeks","separator","hourInput","minuteInput","military2ampm","secondInput","title","buildTime","customAppend","appendTo","nodeType","build","evt","setupMobile","debouncedResize","ontouchstart","capture","selText","bindEvents","isSafari","init","_flatpickr","nodeList","nodes","HTMLElement","instances","HTMLCollection","NodeList","selector","Node","en","localize","setDefaults","jQuery","fp_incr","process","env","NODE_ENV","reactIsModule","exports","for","q","z","$$typeof","A","reactIs_production_min","AsyncMode","ConcurrentMode","ContextProvider","Element","ForwardRef","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","require$$0","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","object","$$typeofType","ContextConsumer","Lazy","hasWarnedAboutDeprecatedIsAsyncMode","reactIs_development","isPortal","propIsEnumerable","objectAssign","test1","getOwnPropertyNames","test2","fromCharCode","test3","letter","shouldUseNative","symbols","toObject","ReactPropTypesSecret_1","has","Function","ReactIs","propTypesModule","require$$1","ReactPropTypesSecret","require$$2","require$$3","checkPropTypes","printWarning","loggedTypeFailures","typeSpecs","values","location","getStack","typeSpecName","ex","stack","resetWarningCache","checkPropTypes_1","require$$4","emptyFunctionThatReturnsNull","factoryWithTypeCheckers","throwOnDirectAccess","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","ANONYMOUS","ReactPropTypes","createPrimitiveTypeChecker","bigint","func","string","symbol","any","createChainableTypeChecker","arrayOf","typeChecker","propName","propFullName","PropTypeError","propValue","getPropType","elementType","instanceOf","expectedClass","expectedClassName","constructor","isNode","objectOf","propType","oneOf","expectedValues","is","valuesString","getPreciseType","oneOfType","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","expectedType","shape","shapeTypes","invalidValidatorError","exact","allKeys","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","secret","cacheKey","chainedCheckType","every","iteratorFn","maybeIterable","getIteratorFn","entry","isSymbol","PropTypes","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","getShim","_typeof","_react","__esModule","cache","_getRequireWildcardCache","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","_interopRequireWildcard","_propTypes","_interopRequireDefault","WeakMap","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","o","minLen","_unsupportedIterableToArray","_nonIterableSpread","len","arr2","_extends","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","ownKeys","enumerableOnly","sym","enumerable","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_createClass","Constructor","protoProps","staticProps","descriptor","configurable","writable","_defineProperties","_setPrototypeOf","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","valueOf","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_assertThisInitialized","_possibleConstructorReturn","ReferenceError","getPrototypeOf","hookPropType","callbacks","callbackPropTypes","DateTimePicker","_Component","subClass","superClass","_inherits","_super","instance","_classCallCheck","_len","_key","mergeHooks","onCreate","destroyFlatpickrInstance","createFlatpickrInstance","prevProps","prevOptions","optionsKeys","index","_this$props","render","handleNodeChange","Component","inputOptions","_options$hook","propHook","_default","createDropdownElement","dropdown","filterDropdownOptions","query","handleTimeOptionClick","closeDropdown","filteredOptions","optionElement","toggleDropdownVisibility","positionDropdownRelativeToInput","inputElement","wrapperElement","dropdownPosition","zIndex","dropdownHeight","spaceBelow","spaceAbove","formatTime","toLocaleTimeString","minute","hour12","generateTimeOptions","minuteStep","times","formattedTime","parseTimeInput","cleanInput","toUpperCase","hasAMPM","specifiedPeriod","timeString","parseTime","minuteString","padStart","hoursStr","minutesStr","numericInput","replace","paddedInput","timeDropdownPlugin","flatpickrInstance","dropdownElement","timeInputField","flatpickrConfig","preventClose","positionDropdown","time","adjustedHour","handleInputBlur","datePart","parsedTime","fullDateTimeString","handleInputChange","handleInputFocus","handleKeyDown","inputWrapper","iconContainer","createRoot","inputField","dateTimeDropdownPlugin","innerText","adjustedHours","populateDropdown","onInputChange","factory","FlatPickr","DatePickerBase","enableRange","datePickerRef","customTimePickerPlugin","customDateTimePickerPlugin","useCustomTimeInputForTimePicker","handleInputReadOnlyState","isTimePickerOnly","isDateTimePicker","containerRef","resolvedRef","isInDialog","setIsInDialog","customPlugin","customTimeSelectorPlugin","timeSelectorPlugin","dateTimeSelectorPlugin","calendarVariantProps","dayVariantProps","useLayoutEffect","closest","_selectedDates","_dateStr","onDateChange","onCloseDatePicker","dateStr","onOpenDatePicker","renderInput","ReactFlatPickr","__","___","value_1","calendarInstance","externalClass","value_2","activeInput","FormContext","createContext","FormProvider","formRef","defaultFormState","onFormStateChange","formValidator","onSubmit","validateOnChange","autosave","autosaveDelayMs","internalFormRef","initialFormState","setInitialFormState","formState","setFormState","formErrors","setFormErrors","requiredFields","setRequiredFields","fieldValidators","setFieldValidators","isPristine","setIsPristine","state1","state2","keys1","keys2","updateFieldError","prevErrors","setFieldError","updateFieldValidators","prevValidationFunctions","updateRequiredFields","prevRequiredFields","updateFieldValue","updatedState","validateRequiredFields","valid","fieldName","validateEachField","fieldsWithValidateFunction","isFieldValidated","handleReset","performAutosave","areRequiredFieldsValid","areFieldsValid","isFormValid","debouncedAutosave","contextValue","onFormSubmit","resetForm","Provider","injectPropsToMatchingFields","propsToInject","shouldInjectValueProps","count","originalOnValueChange","originalOnChange","injectedProps","newChildren","cloneElement","isNativeFormElement","RootList","RootListItem","item","itemClassName","itemStyle","itemProps","BasicList","keyExtractor","itemId","CSS","freeze","Translate","Scale","scaleX","scaleY","Transform","Transition","_ref","property","easing","restrictToHorizontalAxis","restrictToParentElement","containerNodeRect","draggingNodeRect","rect","boundingRect","restrictToBoundingRect","restrictToVerticalAxis","SortableItemContext","SortableItem","useSortable","attributes","listeners","setNodeRef","transition","SortableList","updateSortOrder","rootProps","mappedData","setMappedData","newMappedData","activeId","setActiveId","horizontalSort","DndContext","collisionDetection","closestCenter","onDragStart","active","onDragEnd","over","mappedDataIndex","oldIndex","newIndex","movedData","arrayMove","updatedData","modifiers","SortableContext","items","strategy","horizontalListSortingStrategy","verticalListSortingStrategy","createPortal","DragOverlay","dropAnimation","sortable","RepeaterList","Modal","headerComponent","footerComponent","onHide","show","header","footer","backdrop","renderBackdrop","disableBackdropDismiss","handleBackdropClick","createBackdrop","ModalComponent","modal","ModalContext","PaginationNumberField","page","setPage","tempPage","setTempPage","parsedPage","clampedPage","totalPages","onPageChanged","keyListener","code","onKeyUp","handleInteraction","setShow","getWidth","matchTriggerWidth","Popover","hideOnClickAway","defaultShow","contentProps","keepContentOnItemClick","flip","overlayClassName","contentPosition","initialTransformRef","placement","basePlacement","getPlacement","onClickListener","onDoubleClickListener","onMouseOutListener","onMouseOverListener","popoverAccessibilityProps","targetOnClickListener","targetOnDoubleClickListener","targetAccessibilityProps","handleOnHide","openPopover","useImperativeHandle","popover","onDoubleClick","onMouseOut","Overlay","rootClose","restStyle","minWidth","injectRadioButtonProps","selectContextInitialValue","selectedValue","updateSelectedValue","resetSelectedValue","registerOption","getDisplayLabel","SelectContext","useSelectContext","context","useContext","SelectProvider","multiple","closeSelectOptions","Map","optionLabels","setOptionLabels","optionValue","newMap","key_1","currentSelection","hasDefaultOption","handleSelectionChange","resetValue","hasValue","disabledField","invalidField","SelectComponent","defaultOpen","expandIcon","state","menuProps","SelectedView","selectedView","popoverOffset","setIsOpen","displayValue","triggerProps","onOptionsOpen","onOptionsClose","expandIconView","collapseIcon","selectedComponent","selectTrigger","jsxs","trigger","optionStyle","normalizeToOptionLike","firstOption","createChipProps","onRemove","addUniqueOption","availableOptions","newOption","findOptionByKey","find","controlledInputValue","inputValue","controlledValues","onAddItem","onDeleteItem","normalizedOptions","normalizedValues","normalizeToOptionLikeKey","internalOptions","setInternalOptions","internalInputValue","setInternalInputValue","originalFormat","originalValue","firstItem","convertKeysToOriginalFormat","internalSelectedKeys","setInternalSelectedKeys","handleInputValueChange","searchTerm","filterOptionsByInput","handleSelect","selectedOptionKey","optionKey","selectedKeys","handleAddNewOption","tempOption_1","realOption_1","opt","newOption_1","onAddChip","onClearInput","trimmedValue","handleEnterKeyForChip","existingOption","lastKey","removeChip","keyToRemove","chips","handleChipInputAreaClick","optionList","onSelect","createCheckboxItemProps","Search","showSubmitButton","showClearButton","onSearch","debounceMs","minCharacters","initialValue","controlledValue","isAutoStyle","isButtonStyle","isSearching","setIsSearching","lastSearchRef","handleSearch","debouncedSearch","cancelDebounce","handleSubmit","handleClear","searchDisabled","shouldShowClearButton","inputProps","COMMON_MIME_TYPES","toFileWithPath","file","lastIndexOf","ext","withMimeType","webkitRelativePath","setObjProp","FILES_TO_IGNORE","isObject","noIgnoredFiles","files","fromList","toFilePromises","webkitGetAsEntry","fromDataTransferItem","isDirectory","fromDirEntry","flatten","globalThis","isSecureContext","getAsFileSystemHandle","getFile","handle","getAsFile","fullPath","fromEntry","fwp","fromFileEntry","reader","createReader","readEntries","batch","all","acceptedFiles","acceptedFilesArray","fileName","mimeType","baseMimeType","validType","endsWith","_slicedToArray","_arrayWithHoles","_s","_arr","_n","_iterableToArrayLimit","_nonIterableRest","accepts","_accepts","getInvalidTypeRejectionErr","acceptArr","msg","getTooLargeRejectionErr","maxSize","getTooSmallRejectionErr","minSize","TOO_MANY_FILES_REJECTION","fileAccepted","accept","isAcceptable","fileMatchSize","isDefined","isPropagationStopped","cancelBubble","isEvtWithFiles","dataTransfer","types","onDocumentDragOver","composeEventHandlers","fns","_len2","_key2","isMIMEType","isExt","_excluded","_excluded2","_excluded3","_excluded4","Dropzone","_useDropzone","useDropzone","displayName","defaultProps","getFilesFromEvent","dt","kind","getDataTransferFiles","isChangeEvt","getInputFiles","handles","getFsHandleFiles","Infinity","maxFiles","preventDropOnDocument","noClick","noKeyboard","noDrag","noDragEventsBubbling","validator","useFsAccessApi","autoFocus","propTypes","onFileDialogCancel","onFileDialogOpen","onDragEnter","onDragLeave","onDragOver","onDrop","onDropAccepted","onDropRejected","initialState","isFocused","isFileDialogActive","isDragActive","isDragAccept","isDragReject","fileRejections","_defaultProps$props","acceptAttr","_ref6","_ref7","acceptPropAsAcceptAttr","pickerTypes","description","_ref2","_ref3","agg","_ref4","_ref5","pickerOptionsFromAccept","onFileDialogOpenCb","noop","onFileDialogCancelCb","rootRef","_useReducer2","useReducer","reducer","dispatch","fsAccessApiWorksRef","onWindowFocus","dragTargetsRef","onDocumentDrop","onErrCb","onDragEnterCb","persist","fileCount","accepted","sizeMatch","customErrors","allFilesAccepted","catch","onDragOverCb","hasFiles","dropEffect","_unused","onDragLeaveCb","targets","targetIdx","setFiles","_fileAccepted2","acceptError","_fileMatchSize2","sizeError","errors","onDropCb","openFileDialog","showOpenFilePicker","DOMException","ABORT_ERR","SECURITY_ERR","isSecurityError","onKeyDownCb","isEqualNode","onFocusCb","onBlurCb","onClickCb","isIe","isEdge","isIeOrEdge","composeHandler","composeKeyboardHandler","composeDragHandler","getRootProps","_ref2$refKey","refKey","onFocus","onInputElementClick","getInputProps","_ref3$refKey","border","clip","clipPath","margin","overflow","padding","whiteSpace","DropzoneContext","useDropzoneContext","DropzoneClear","resetFiles","DropzoneFilename","fileIndex","DropzoneSupportedFormats","supportedFormats","curr","DropzoneTrigger","selectFiles","DropzoneDrag","Form","otherFormProps","onReset","useForm","TabContext","currentTab","updateCurrentTab","useTab","TabProvider","internalCurrentTab","setInternalCurrentTab","tabValue","TabItem","defaultTab","currentStyle","tabsStyle","tabItem","contentContainer","TabContent","getBranchesWithComponent","matchComponent","branches","nested","Tabs","tabs","panels","tabsHeader","tabsContent","timeoutsShape","enter","exit","appear","enterDone","enterActive","exitDone","exitActive","TransitionGroupContext","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","_React$Component","initialStatus","isMounting","appearStatus","in","unmountOnExit","mountOnEnter","nextCallback","getDerivedStateFromProps","prevState","_proto","componentDidMount","updateStatus","componentDidUpdate","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","timeout","mounting","nodeRef","ReactDOM","findDOMNode","scrollTop","forceReflow","performEnter","performExit","setState","_this2","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","_this3","onExit","onExiting","onExited","nextState","setNextCallback","_this4","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","childProps","only","contextType","ownerDocument","defaultView","pt","FadeTransition","ThemeContext","theme","updateTheme","NotificationContext","useNotification","ToastNotification","isDismissable","isCloseButtonShown","removeToast","NotificationContainer","notifications","removeNotification","containerStyle","flexDirection","containerClass","notificationContainer","defaultExpanded","expanded","onToggle","willBeOpen","expandCollapseIcon","RootElement","hasAttribute","navLinkType","divider","toArray","dividerComponent","buttonItems","renderButtonItem","readOnly","setReadOnly","onInputBlur","inputLeadingIcon","inputVariantProps","calendarIcon","autoComplete","useSortableItem","empty","uploaded","onFilesReset","drag","setStatus","dropzoneContent","infoTextAndButtonContainer","infoText","dropzoneFileUploadTriggerChooseFileButton","dropzoneDrag","loaderAnim","dropzoneFileName","dropzoneSupportedFormats","dropzoneRemoveUploadButtonDeleteButton","dropzoneRemoveUploadButtonDeleteButtoncloseDelete","InternalForm","noValidate","infoIcon","hasMessage","generatedId","useId","fieldId","formContext","hadFormContext","isInvalid","messageText","injected","showMessageContainer","showErrorIcon","showInfoIcon","infoIconView","messageIcon","formField","field","labelContainer","htmlFor","messageContainer","columns","rows","gridTemplateColumns","gridTemplateRows","gap","primaryButtonComponent","secondaryButtonComponent","primaryButton","secondaryButton","iconButtonComponent","iconButton","modals","setModals","openModal","modalInstance","onCancel","closeModal","modalComponents","setNotifications","addNotification","newNotification","prevNotifications","notification","payload","restProp","checkIsSelected","trailingIconView","handleClick","accessibilityProps","currentPage","updateCurrentPage","currentPageState","setCurrentPageState","nextPageEnabled","previousPageEnabled","nextPage","previousPage","previousPageIcon","nextPageIcon","hideTrailingIcon","showPassword","setShowPassword","togglePassword","otherPasswordProps","visibilityOffIcon","visibilityOnIcon","showLabel","percentage","calculatePercentageValue","orientation","radioButtons","radioGroup","errorData","Filled","filled","Empty","Loading","showError","showEmpty","showFilled","parsedBreakpoints","breakpointChild","activeBreakpoint","setActiveBreakpoint","breakpoints","mediaQueries","breakpoint","matchMedia","updateActiveBreakpoint","matchingQuery","matches","fallbackBreakpoint","activeProps","popoverOverRef","slideOutPanel","showMin","showMax","showValueOnThumb","otherSliderProps","sliderValue","sliderRef","dragging","setDragging","_k","focusedThumb","setFocusedThumb","getPercentage","getClosestThumb","clientX","percent","updateValueFromPosition","newValues","startDrag","touches","closestIndex","moveDrag","stopDrag","toolTipView","sliderThumb","onTouchStart","onMouseDown","stickyHeader","tableClassName","TabsComponent","setTheme","documentElement","newTheme","extraProps","useModalContext","contextOpenModal","contextCloseModal","modalId"],"mappings":"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","x_google_ignoreList":[0,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,66,76,77,98,99,100,101,102,116,117,118,119,120,121,122,123]}
|