@uva-glass/component-library 3.30.0 → 3.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Lexical.prod-UwAbgYpF.js → Lexical.prod-B84LhBo3.js} +1196 -1224
- package/dist/Lexical.prod-B84LhBo3.js.map +1 -0
- package/dist/{LexicalClipboard.prod-DHIGjydG.js → LexicalClipboard.prod-DLgWWXys.js} +4 -4
- package/dist/{LexicalClipboard.prod-DHIGjydG.js.map → LexicalClipboard.prod-DLgWWXys.js.map} +1 -1
- package/dist/{LexicalLink.prod-Bsa9J7L-.js → LexicalLink.prod-DoU9RL94.js} +3 -3
- package/dist/{LexicalLink.prod-Bsa9J7L-.js.map → LexicalLink.prod-DoU9RL94.js.map} +1 -1
- package/dist/{LexicalList.prod-jxGuZd4b.js → LexicalList.prod-Cw2TK1jY.js} +4 -4
- package/dist/{LexicalList.prod-jxGuZd4b.js.map → LexicalList.prod-Cw2TK1jY.js.map} +1 -1
- package/dist/{LexicalSelection.prod-xk5MiZnZ.js → LexicalSelection.prod-TB5pn9xc.js} +2 -2
- package/dist/{LexicalSelection.prod-xk5MiZnZ.js.map → LexicalSelection.prod-TB5pn9xc.js.map} +1 -1
- package/dist/{LexicalTable.prod-BSjs04iE.js → LexicalTable.prod-9xjyWB0C.js} +4 -4
- package/dist/{LexicalTable.prod-BSjs04iE.js.map → LexicalTable.prod-9xjyWB0C.js.map} +1 -1
- package/dist/{LexicalUtils.prod-cQutjKA3.js → LexicalUtils.prod-CD3xGFhm.js} +2 -2
- package/dist/{LexicalUtils.prod-cQutjKA3.js.map → LexicalUtils.prod-CD3xGFhm.js.map} +1 -1
- package/dist/Sortable.module--kgnzOjW.js +26 -0
- package/dist/Sortable.module--kgnzOjW.js.map +1 -0
- package/dist/SortableProvider-C2T7b-pm.js +153 -0
- package/dist/SortableProvider-C2T7b-pm.js.map +1 -0
- package/dist/{TablePlugin-NmJsn2fm.js → TablePlugin-Dmy98Epb.js} +86 -91
- package/dist/{TablePlugin-NmJsn2fm.js.map → TablePlugin-Dmy98Epb.js.map} +1 -1
- package/dist/assets/Backdrop.css +1 -1
- package/dist/assets/Button.css +1 -1
- package/dist/assets/ClipboardButton.css +1 -1
- package/dist/assets/ExpandableInfoPanel.css +1 -1
- package/dist/assets/FormInput.css +1 -1
- package/dist/assets/IconButton.css +1 -1
- package/dist/assets/Input.css +1 -1
- package/dist/assets/InputField.css +1 -1
- package/dist/assets/LinkContextMenu.css +1 -1
- package/dist/assets/Notification.css +1 -1
- package/dist/assets/OverlayCloseButton.css +1 -1
- package/dist/assets/OverlayStepBar.css +1 -1
- package/dist/assets/PageOverlay.css +1 -1
- package/dist/assets/Sortable.css +1 -1
- package/dist/assets/VarIndicator.css +1 -1
- package/dist/components/Accordion/Accordion.test.js +3 -3
- package/dist/components/AccordionCard/AccordionCard.test.js +3 -3
- package/dist/components/ActionList/ActionList.test.js +3 -3
- package/dist/components/AppStatusBar/AppStatusBar.test.js +2 -2
- package/dist/components/Attention/Attention.test.js +2 -2
- package/dist/components/Backdrop/Backdrop.test.js +2 -2
- package/dist/components/Buttons/Button.stories.js +1 -1
- package/dist/components/Buttons/Button.test.js +2 -2
- package/dist/components/Buttons/LinkButton.stories.js +1 -1
- package/dist/components/Buttons/LinkButton.test.js +2 -2
- package/dist/components/Buttons/MenuButton.stories.js +5 -5
- package/dist/components/Buttons/MenuButton.test.js +2 -2
- package/dist/components/Card/Card.test.js +2 -2
- package/dist/components/Checkbox/Checkbox.stories.js +1 -1
- package/dist/components/Checkbox/Checkbox.test.js +3 -3
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.stories.js +1 -1
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.test.js +2 -2
- package/dist/components/CheckboxTree/CheckboxTree.js +58 -59
- package/dist/components/CheckboxTree/CheckboxTree.js.map +1 -1
- package/dist/components/CheckboxTree/CheckboxTree.stories.js +58 -59
- package/dist/components/CheckboxTree/CheckboxTree.stories.js.map +1 -1
- package/dist/components/Chip/Chip.stories.js +5 -5
- package/dist/components/ControlsButton/ControlsButton.stories.js +5 -5
- package/dist/components/Drawer/Drawer.stories.js +1 -1
- package/dist/components/FeedbackBar/FeedbackBar.test.js +2 -2
- package/dist/components/FormInput/FormInput.js +3 -3
- package/dist/components/FormInput/FormInput.stories.js +1 -1
- package/dist/components/HorizontalList/HorizontalList.js +7 -7
- package/dist/components/HorizontalList/HorizontalList.js.map +1 -1
- package/dist/components/IconButton/IconButton.stories.js +1 -1
- package/dist/components/InputField/InputField.stories.js +10 -10
- package/dist/components/Label/Label.test.js +2 -2
- package/dist/components/ModalDialog/ModalDialog.stories.js +8 -8
- package/dist/components/MultiSelect/MultiSelect.js +1 -1
- package/dist/components/MultiSelect/MultiSelect.stories.js +8 -8
- package/dist/components/MultiSelect/components/MultiSelectHeader.js +3 -3
- package/dist/components/MultiSelect/index.js +1 -1
- package/dist/components/MultiSelectBox/MultiSelectBox.js +66 -70
- package/dist/components/MultiSelectBox/MultiSelectBox.js.map +1 -1
- package/dist/components/MultiSelectBox/MultiSelectBox.stories.js +1 -1
- package/dist/components/MultiSelectBox/MultiSelectBox.test.js +2 -2
- package/dist/components/Notification/Notification.js +41 -41
- package/dist/components/Notification/Notification.stories.js +6 -6
- package/dist/components/Notification/Notification.test.js +2 -2
- package/dist/components/OverlayCloseButton/OverlayCloseButton.stories.js +4 -4
- package/dist/components/OverlayStepBar/OverlayStepBar.stories.js +19 -20
- package/dist/components/OverlayStepBar/OverlayStepBar.stories.js.map +1 -1
- package/dist/components/PeriodSelector/PeriodSelector.js +33 -33
- package/dist/components/PeriodSelector/PeriodSelector.js.map +1 -1
- package/dist/components/PeriodSelector/PeriodSelector.stories.js +4 -4
- package/dist/components/ProgrammeCard/ProgrammeCard.stories.js +3 -3
- package/dist/components/RadioGroup/RadioGroup.stories.js +1 -1
- package/dist/components/RadioGroup/Radiogroup.test.js +2 -2
- package/dist/components/RadioTabSelector/RadioTabSelector.js +3 -3
- package/dist/components/RadioTabSelector/RadioTabSelector.stories.js +1 -1
- package/dist/components/RteEditor/EditorHeader/EditorHeader.js +3 -3
- package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js +1 -1
- package/dist/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.js +4 -4
- package/dist/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkFrom.js +4 -4
- package/dist/components/RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js +51 -61
- package/dist/components/RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js.map +1 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.js +79 -89
- package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.js.map +1 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/helpers.js +1 -1
- package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js +3 -3
- package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/PasteHandlerPlugin.js +4 -4
- package/dist/components/RteEditor/Plugins/TablePlugin/AddTableFrom.js +3 -3
- package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu.js +19 -19
- package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu.js.map +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/TablePlugin.js +5 -5
- package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js +17 -18
- package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js.map +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/index.js +1 -1
- package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js +31 -32
- package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js.map +1 -1
- package/dist/components/RteEditor/Plugins/index.js +1 -1
- package/dist/components/RteEditor/RteEditor.js +10 -10
- package/dist/components/RteEditor/helpers.js +4 -4
- package/dist/components/SelectListbox/SelectListBox.stories.js +1 -1
- package/dist/components/SelectListbox/components/SelectButton.js +31 -32
- package/dist/components/SelectListbox/components/SelectButton.js.map +1 -1
- package/dist/components/SelectListbox/components/SelectOption.js +29 -30
- package/dist/components/SelectListbox/components/SelectOption.js.map +1 -1
- package/dist/components/Sortable/Sortable.d.ts +6 -1
- package/dist/components/Sortable/Sortable.js +23 -13
- package/dist/components/Sortable/Sortable.js.map +1 -1
- package/dist/components/Sortable/Sortable.stories.js +13 -12
- package/dist/components/Sortable/Sortable.stories.js.map +1 -1
- package/dist/components/Sortable/SortableProvider.d.ts +2 -1
- package/dist/components/Sortable/SortableProvider.js +1 -1
- package/dist/components/Sortable/components/SortableContainer.d.ts +2 -1
- package/dist/components/Sortable/components/SortableContainer.js +2 -2
- package/dist/components/Sortable/components/SortableHandle.js +1 -1
- package/dist/components/Sortable/components/SortableItem.d.ts +3 -1
- package/dist/components/Sortable/components/SortableItem.js +48 -47
- package/dist/components/Sortable/components/SortableItem.js.map +1 -1
- package/dist/components/StatusBadge/StatusBadge.test.js +2 -2
- package/dist/components/TextArea/TextArea.stories.js +1 -1
- package/dist/components/TextArea/TextArea.test.js +3 -3
- package/dist/components/ToggleSwitch/ToggleSwitch.stories.js +1 -1
- package/dist/components/VarIndicator/VarIndicator.stories.js +1 -1
- package/dist/components/VarIndicator/VarIndicator.test.js +3 -3
- package/dist/components/hooks/usePositionedFloaters.js +39 -39
- package/dist/components/hooks/usePositionedFloaters.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/{helpers-DZIm3MiJ.js → helpers-CMG0anwr.js} +4 -4
- package/dist/{helpers-DZIm3MiJ.js.map → helpers-CMG0anwr.js.map} +1 -1
- package/dist/{index-DV47hRzi.js → index-Br0QepD6.js} +8 -10
- package/dist/{index-DV47hRzi.js.map → index-Br0QepD6.js.map} +1 -1
- package/dist/{index-Di9WPZUe.js → index-C2E9FY6V.js} +9149 -9854
- package/dist/index-C2E9FY6V.js.map +1 -0
- package/dist/{index-PaHiqSUg.js → index-Ds1dMTvJ.js} +29 -29
- package/dist/{index-PaHiqSUg.js.map → index-Ds1dMTvJ.js.map} +1 -1
- package/dist/{index-BVAvx58-.js → index-KJPw-7za.js} +2209 -2280
- package/dist/{index-BVAvx58-.js.map → index-KJPw-7za.js.map} +1 -1
- package/dist/{index-DllfJcv4.js → index-nrPtQ1dv.js} +2 -2
- package/dist/{index-DllfJcv4.js.map → index-nrPtQ1dv.js.map} +1 -1
- package/dist/index.js +1 -1
- package/dist/{react.esm-CFMwGdo5.js → react.esm-BKjCIfbB.js} +373 -374
- package/dist/{react.esm-CFMwGdo5.js.map → react.esm-BKjCIfbB.js.map} +1 -1
- package/dist/setupTests.js +6 -9
- package/dist/setupTests.js.map +1 -1
- package/dist/storybook__react.d.js +2056 -2072
- package/dist/storybook__react.d.js.map +1 -1
- package/package.json +16 -16
- package/dist/Lexical.prod-UwAbgYpF.js.map +0 -1
- package/dist/Sortable.module-CekPNg54.js +0 -23
- package/dist/Sortable.module-CekPNg54.js.map +0 -1
- package/dist/SortableProvider-CwX1lFMa.js +0 -152
- package/dist/SortableProvider-CwX1lFMa.js.map +0 -1
- package/dist/index-Di9WPZUe.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
._overlay-step-bar__container_goxua_1{align-items:center;background-color:var(--new-color-grey-200);display:flex;height:2.5rem;justify-content:center;overflow-y:hidden}._overlay-step-bar__step-wrapper_goxua_10{background-color:var(--new-color-grey-200);height:100%;position:relative}._overlay-step-bar__step-wrapper_goxua_10:not(:last-child):after{border-bottom:1.5rem solid transparent;border-left:1rem solid var(--new-color-grey-200);border-top:1.5rem solid transparent;content:"";position:absolute;right:-.25rem;top:-.25rem;z-index:10}._overlay-step-bar__step-wrapper_goxua_10:not(:last-child):before{border-bottom:1.5rem solid transparent;border-left:1rem solid var(--new-color-uva-white);border-top:1.5rem solid transparent;content:"";position:absolute;right:-.5rem;top:-.25rem;z-index:5}._overlay-step-bar__step_goxua_10{align-items:center
|
|
1
|
+
._overlay-step-bar__container_goxua_1{align-items:center;background-color:var(--new-color-grey-200);display:flex;height:2.5rem;justify-content:center;overflow-y:hidden}._overlay-step-bar__step-wrapper_goxua_10{background-color:var(--new-color-grey-200);height:100%;position:relative}._overlay-step-bar__step-wrapper_goxua_10:not(:last-child):after{border-bottom:1.5rem solid transparent;border-left:1rem solid var(--new-color-grey-200);border-top:1.5rem solid transparent;content:"";position:absolute;right:-.25rem;top:-.25rem;z-index:10}._overlay-step-bar__step-wrapper_goxua_10:not(:last-child):before{border-bottom:1.5rem solid transparent;border-left:1rem solid var(--new-color-uva-white);border-top:1.5rem solid transparent;content:"";position:absolute;right:-.5rem;top:-.25rem;z-index:5}._overlay-step-bar__step_goxua_10{align-items:center;appearance:none;background-color:transparent;border:none;color:var(--new-color-grey-700);cursor:pointer;display:flex;font-family:inherit;font-size:var(--font-size-default);height:100%;margin-left:.5rem;padding:0 2rem 0 1.5rem;position:relative;width:calc(100% - .75rem)}._overlay-step-bar__step--label_goxua_55{display:none;text-decoration:none;white-space:nowrap}._overlay-step-bar__step--label-show_goxua_61{display:block}._overlay-step-bar__step--index_goxua_65{margin-right:.5rem}._overlay-step-bar__step--label_goxua_55:hover{text-decoration:underline}._overlay-step-bar__step--active_goxua_73 ._overlay-step-bar__step--label_goxua_55{display:block}._overlay-step-bar__step_goxua_10:hover ._overlay-step-bar__step--index_goxua_65,._overlay-step-bar__step_goxua_10:hover ._overlay-step-bar__step--label_goxua_55{text-decoration:underline}@media (min-width: 70rem){._overlay-step-bar__step--label_goxua_55{display:block}._overlay-step-bar__step_goxua_10:hover ._overlay-step-bar__step--index_goxua_65{text-decoration:none}}._overlay-step-bar__step_goxua_10:focus-visible{outline:.125rem dotted var(--new-color-navy-600);outline-offset:-.25rem;z-index:15}._overlay-step-bar__step--active_goxua_73{color:var(--new-color-uva-black);font-weight:var(--semibold)}._overlay-step-bar__step--active_goxua_73:hover ._overlay-step-bar__step--index_goxua_65,._overlay-step-bar__step--active_goxua_73:hover ._overlay-step-bar__step--label_goxua_55{cursor:default;text-decoration:none}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
._page-overlay__container_x277a_1{
|
|
1
|
+
._page-overlay__container_x277a_1{inset:0;position:fixed;z-index:50}._page-overlay_x277a_1{background:var(--new-color-uva-white);display:flex;flex-direction:column;height:100dvh}._page-overlay--full-screen_x277a_19{width:100vw}._page-overlay--with-gutters_x277a_23{max-width:87.5rem;width:100%}._page-overlay__content_x277a_28{display:flex;flex-direction:column;height:100svh;justify-content:space-between;overflow:hidden;overflow-y:auto;padding:0 1.5rem;width:100%}._page-overlay__content--grey_x277a_39{background-color:var(--new-color-grey-200)}._page-overlay__content--white_x277a_43{background-color:var(--new-color-uva-white)}._page-overlay__children_x277a_47{padding-bottom:1rem}._page-overlay__title-wrapper_x277a_51{position:relative}._page-overlay__title_x277a_51{font-size:var(--font-size-s);line-height:var(--line-height-m);margin:0 1.5rem 0 0;padding:1rem 1.5rem}._page-overlay__buttons-bar_x277a_62{background-color:var(--new-color-uva-white);bottom:0;display:flex;flex-direction:column;gap:.75rem;justify-content:flex-start;margin:0 -1.5rem;padding:.5rem 1rem;position:sticky;right:0}._page-overlay__buttons-bar_x277a_62:before{background:linear-gradient(to top,#0000004d,#0000);bottom:100%;content:"";height:10px;left:0;opacity:0;pointer-events:none;position:absolute;right:0;transition:opacity .4s ease-out}._page-overlay__buttons-bar--shadow_x277a_88:before{opacity:1}._page-overlay__close_x277a_94{height:1.5rem;position:absolute;right:1rem;top:calc(50% - .125rem);transform:translateY(-50%)}@media (min-width: 28rem) and (min-height: 28rem){._page-overlay--with-gutters_x277a_23{margin:0 .75rem}}
|
package/dist/assets/Sortable.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
._sortable__wrapper_v5kts_1{position:relative}._sortable__wrapper--scrollable_v5kts_5{border-bottom:1px solid var(--new-color-grey-300);border-top:1px solid var(--new-color-grey-300);margin-bottom:1rem;max-height:21rem;overflow-y:auto}._sortable__container_v5kts_13{--item-min-height: 3.75rem;counter-reset:container;display:flex;flex-direction:column;gap:1rem;list-style:none;margin:1rem 1rem 1rem 0;padding:0}._sortable__drop-target_v5kts_25{display:flex;gap:1rem;min-height:var(--item-min-height);position:relative}._sortable__drop-target_v5kts_25:before{align-items:center;content:counter(container);counter-increment:container;display:flex;opacity:1;position:relative;transition:opacity .25s}._sortable__drop-target--no-number_v5kts_42:before{content:none}._sortable__drop-target_v5kts_25:after{content:"";display:block;height:1px;left:0;position:absolute;width:100%;z-index:1}._sortable__drop-target_v5kts_25:last-child:after{display:inline}._sortable__sort-item_v5kts_60{align-items:center;border-radius:.5rem;display:flex;gap:1rem;min-height:var(--item-min-height);position:relative;width:100%;z-index:0}._sortable__sort-item--grey-200_v5kts_71{background-color:var(--new-color-grey-200)}._sortable__sort-item--white_v5kts_75{background-color:var(--new-color-uva-white)}._sortable__sort-item_v5kts_60:focus{z-index:2}._sortable__sort-item--ghost_v5kts_83{margin:0 1rem;opacity:.5;padding:.5rem 0;pointer-events:none;position:fixed;-webkit-user-drag:none;visibility:hidden;z-index:2}._sortable__sort-item__handle_v5kts_94{appearance:none;background:none;background-color:var(--new-color-uva-white);border:0;cursor:grab;height:2.625rem;width:2.625rem}._sortable__sort-item__button-container_v5kts_104{align-items:center;background-color:var(--new-color-grey-300);border-left:1px solid var(--new-color-grey-300);border-radius:0 .5rem .5rem 0;display:flex;flex-direction:column;inset:0 0 0 auto;margin-right:1px;overflow:hidden;position:absolute;width:2.625rem;z-index:20}._sortable__sort-item__button-container_v5kts_104[data-touch=false]{display:none}._sortable__sort-item__handle--icon_v5kts_123{align-items:center;display:flex;height:1rem;width:1rem}._sortable__sort-item__handle--up_v5kts_130,._sortable__sort-item__handle--down_v5kts_131{color:#000;display:none;height:100%;right:.5rem}._sortable__sort-item__handle--up_v5kts_130{transform:rotate(180deg)}._sortable__sort-item--dragging_v5kts_142 ._sortable__sort-item__handle_v5kts_94{cursor:grabbing}._sortable__sort-item__contents_v5kts_146{align-items:center;color:var(--new-color-uva-black);display:flex;gap:.5rem;padding:.5rem;width:100%}._sortable__sort-item__contents--handle-right_v5kts_155{padding-left:1rem;padding-right:2.5rem}._sortable__handle_v5kts_160{color:var(--new-color-grey-700);cursor:grab;display:flex}._sortable__handle--right_v5kts_166{position:absolute;right:.5rem}._sortable__sort-item__button-container_v5kts_104[data-touch=true]{gap:1px;justify-content:center}._sortable__sort-item__button-container_v5kts_104[data-touch=true] ._sortable__sort-item__handle--up_v5kts_130,._sortable__sort-item__button-container_v5kts_104[data-touch=true] ._sortable__sort-item__handle--down_v5kts_131{align-items:center;display:flex;justify-content:center}._sortable__visually-hidden_v5kts_185{border:0;clip:rect(0,0,0,0);clip-path:inset(50%);height:1px;margin:0 -1px -1px 0;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--color-active: var(--new-color-forest-700);--color-active-hover: var(--new-color-uva-white);--color-background-active: var(--new-color-forest-100);--color-background-active-hover: var(--new-color-forest-700);--color-background-draft: var(--new-color-sky-100);--color-background-draft-hover: var(--new-color-navy-600);--color-background-submitted: var(--new-color-orange-100);--color-background-submitted-hover: var(--new-color-orange-900);--color-border-active: var(--new-color-forest-700);--color-border-draft: var(--new-color-navy-600);--color-border-submitted: var(--new-color-orange-900);--color-draft: var(--new-color-navy-600);--color-draft-hover: var(--new-color-uva-white);--color-label: var(--new-color-uva-black);--color-submitted: var(--new-color-orange-900);--color-submitted-hover: var(--new-color-uva-white);--border-radius-var-indicator: .25rem}._var-indicator__container_1m025_29{align-items:center
|
|
1
|
+
:root{--color-active: var(--new-color-forest-700);--color-active-hover: var(--new-color-uva-white);--color-background-active: var(--new-color-forest-100);--color-background-active-hover: var(--new-color-forest-700);--color-background-draft: var(--new-color-sky-100);--color-background-draft-hover: var(--new-color-navy-600);--color-background-submitted: var(--new-color-orange-100);--color-background-submitted-hover: var(--new-color-orange-900);--color-border-active: var(--new-color-forest-700);--color-border-draft: var(--new-color-navy-600);--color-border-submitted: var(--new-color-orange-900);--color-draft: var(--new-color-navy-600);--color-draft-hover: var(--new-color-uva-white);--color-label: var(--new-color-uva-black);--color-submitted: var(--new-color-orange-900);--color-submitted-hover: var(--new-color-uva-white);--border-radius-var-indicator: .25rem}._var-indicator__container_1m025_29{align-items:center;appearance:none;border:1px solid;border-radius:var(--border-radius-var-indicator);cursor:pointer;display:inline-flex;font-family:inherit;font-size:var(--font-size-default);font-weight:var(--semibold);gap:.375rem;height:2rem;justify-content:center;line-height:inherit;margin:0;padding:0 .75rem 0 .5rem;white-space:nowrap}._var-indicator__container--draft_1m025_48,._var-indicator__container--rejected_1m025_49{background-color:var(--color-background-draft);border-color:var(--color-border-draft);color:var(--color-draft)}._var-indicator__container--draft_1m025_48:hover,._var-indicator__container--rejected_1m025_49:hover{background-color:var(--color-background-draft-hover);color:var(--color-draft-hover)}._var-indicator__container--submitted_1m025_61{background-color:var(--color-background-submitted);border-color:var(--color-border-submitted);color:var(--color-submitted)}._var-indicator__container--submitted_1m025_61:hover{background-color:var(--color-background-submitted-hover);color:var(--color-submitted-hover)}._var-indicator__container--active_1m025_72{background-color:var(--color-background-active);border-color:var(--color-border-active);color:var(--color-active)}._var-indicator__container--active_1m025_72:hover{background-color:var(--color-background-active-hover);color:var(--color-active-hover)}._var-indicator__label_1m025_83{color:var(--color-label)}._var-indicator__container--submitted_1m025_61:hover ._var-indicator__label_1m025_83,._var-indicator__container--draft_1m025_48:hover ._var-indicator__label_1m025_83,._var-indicator__container--rejected_1m025_49:hover ._var-indicator__label_1m025_83,._var-indicator__container--active_1m025_72:hover ._var-indicator__label_1m025_83{color:var(--color-uva-white)}._var-indicator__step-container_1m025_94{align-items:center;display:inline flex;height:100%;justify-content:flex-start}._var-indicator__step-container_1m025_94 svg{margin:0 -.5rem}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
-
import "../../index-
|
|
3
|
-
import { r as n, s as a } from "../../react.esm-
|
|
4
|
-
import { u as e } from "../../index-
|
|
2
|
+
import "../../index-Br0QepD6.js";
|
|
3
|
+
import { r as n, s as a } from "../../react.esm-BKjCIfbB.js";
|
|
4
|
+
import { u as e } from "../../index-Ds1dMTvJ.js";
|
|
5
5
|
import { Accordion as i } from "./Accordion.js";
|
|
6
6
|
describe("Accordion", () => {
|
|
7
7
|
it("should render", () => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as n } from "react/jsx-runtime";
|
|
2
|
-
import "../../index-
|
|
3
|
-
import { r as c, s as e, f as s, w as d } from "../../react.esm-
|
|
4
|
-
import { u as r } from "../../index-
|
|
2
|
+
import "../../index-Br0QepD6.js";
|
|
3
|
+
import { r as c, s as e, f as s, w as d } from "../../react.esm-BKjCIfbB.js";
|
|
4
|
+
import { u as r } from "../../index-Ds1dMTvJ.js";
|
|
5
5
|
import { AccordionCard as a } from "./AccordionCard.js";
|
|
6
6
|
describe("AccordionCard", () => {
|
|
7
7
|
it("should render", () => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as i } from "react/jsx-runtime";
|
|
2
|
-
import "../../index-
|
|
3
|
-
import { r as n, s as t, w as a } from "../../react.esm-
|
|
4
|
-
import { u as l } from "../../index-
|
|
2
|
+
import "../../index-Br0QepD6.js";
|
|
3
|
+
import { r as n, s as t, w as a } from "../../react.esm-BKjCIfbB.js";
|
|
4
|
+
import { u as l } from "../../index-Ds1dMTvJ.js";
|
|
5
5
|
import { ActionList as o } from "./ActionList.js";
|
|
6
6
|
const T = jest.fn(), c = [
|
|
7
7
|
/* @__PURE__ */ i("button", { type: "button", onClick: T, children: "Test Action 1" }, "1"),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import "../../index-
|
|
3
|
-
import { r, s as t } from "../../react.esm-
|
|
2
|
+
import "../../index-Br0QepD6.js";
|
|
3
|
+
import { r, s as t } from "../../react.esm-BKjCIfbB.js";
|
|
4
4
|
import { AppStatusBar as s } from "./AppStatusBar.js";
|
|
5
5
|
describe("AppStatusBar", () => {
|
|
6
6
|
it("should render", () => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import "../../index-
|
|
3
|
-
import { r as t, s as r } from "../../react.esm-
|
|
2
|
+
import "../../index-Br0QepD6.js";
|
|
3
|
+
import { r as t, s as r } from "../../react.esm-BKjCIfbB.js";
|
|
4
4
|
import { Attention as n } from "./Attention.js";
|
|
5
5
|
describe("Attention", () => {
|
|
6
6
|
it("should render (variant primary)", () => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as r } from "react/jsx-runtime";
|
|
2
|
-
import "../../index-
|
|
3
|
-
import { r as e, s as o } from "../../react.esm-
|
|
2
|
+
import "../../index-Br0QepD6.js";
|
|
3
|
+
import { r as e, s as o } from "../../react.esm-BKjCIfbB.js";
|
|
4
4
|
import { Backdrop as t } from "./Backdrop.js";
|
|
5
5
|
describe("Backdrop", () => {
|
|
6
6
|
it("should render", () => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as t, jsxs as a, Fragment as s } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { l } from "../../index-C2E9FY6V.js";
|
|
3
3
|
import { Button as n } from "./Button.js";
|
|
4
4
|
const c = "<Button variant={variant} onClick={onClictFunction}>{children}</Button>", h = {
|
|
5
5
|
title: "Atoms/Buttons/Button",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import "../../index-
|
|
3
|
-
import { r as n, s as t, f as c } from "../../react.esm-
|
|
2
|
+
import "../../index-Br0QepD6.js";
|
|
3
|
+
import { r as n, s as t, f as c } from "../../react.esm-BKjCIfbB.js";
|
|
4
4
|
import { Button as o } from "./Button.js";
|
|
5
5
|
const s = jest.fn();
|
|
6
6
|
describe("Button", () => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as t, jsxs as a, Fragment as l } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { l as s } from "../../index-C2E9FY6V.js";
|
|
3
3
|
import { BrowserRouter as c } from "react-router";
|
|
4
4
|
import { LinkButton as e } from "./LinkButton.js";
|
|
5
5
|
const d = `
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs as s, jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import "../../index-
|
|
3
|
-
import { r as n, s as t, f as c } from "../../react.esm-
|
|
2
|
+
import "../../index-Br0QepD6.js";
|
|
3
|
+
import { r as n, s as t, f as c } from "../../react.esm-BKjCIfbB.js";
|
|
4
4
|
import { BrowserRouter as u, Routes as a, Route as d } from "react-router";
|
|
5
5
|
import { LinkButton as o } from "./LinkButton.js";
|
|
6
6
|
const r = ({ children: i }) => /* @__PURE__ */ s(u, { children: [
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { jsx as e, jsxs as
|
|
2
|
-
import {
|
|
1
|
+
import { jsx as e, jsxs as l, Fragment as s } from "react/jsx-runtime";
|
|
2
|
+
import { l as c } from "../../index-C2E9FY6V.js";
|
|
3
3
|
import { MenuButton as n } from "./MenuButton.js";
|
|
4
4
|
const d = `
|
|
5
5
|
// Has all LabelHTMLAttributes props available except "className" and "style"
|
|
6
6
|
<MenuButton variant={variant} onClick={onClickFunction} onKeyDown={onKeyDown} onKeyUp={onKeyUp} buttonRef={buttonRef}>{children}</MenuButton>
|
|
7
|
-
`,
|
|
7
|
+
`, b = {
|
|
8
8
|
title: "Atoms/Buttons/MenuButton",
|
|
9
9
|
component: n,
|
|
10
10
|
argTypes: {
|
|
@@ -42,7 +42,7 @@ t.argTypes = {
|
|
|
42
42
|
const i = r.bind({});
|
|
43
43
|
i.args = {
|
|
44
44
|
...o,
|
|
45
|
-
children: /* @__PURE__ */ s
|
|
45
|
+
children: /* @__PURE__ */ l(s, { children: [
|
|
46
46
|
/* @__PURE__ */ e("div", { children: "Child 1" }),
|
|
47
47
|
/* @__PURE__ */ e("div", { children: "Child 2" })
|
|
48
48
|
] })
|
|
@@ -60,6 +60,6 @@ export {
|
|
|
60
60
|
p as MenuButtonExample,
|
|
61
61
|
t as WithIconChildren,
|
|
62
62
|
i as WithMultipleChildren,
|
|
63
|
-
|
|
63
|
+
b as default
|
|
64
64
|
};
|
|
65
65
|
//# sourceMappingURL=MenuButton.stories.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
-
import "../../index-
|
|
3
|
-
import { r as u, s as e, f as c } from "../../react.esm-
|
|
2
|
+
import "../../index-Br0QepD6.js";
|
|
3
|
+
import { r as u, s as e, f as c } from "../../react.esm-BKjCIfbB.js";
|
|
4
4
|
import { createRef as s } from "react";
|
|
5
5
|
import { MenuButton as r } from "./MenuButton.js";
|
|
6
6
|
const n = jest.fn();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import "../../index-
|
|
3
|
-
import { r, s as d } from "../../react.esm-
|
|
2
|
+
import "../../index-Br0QepD6.js";
|
|
3
|
+
import { r, s as d } from "../../react.esm-BKjCIfbB.js";
|
|
4
4
|
import { Card as o } from "./Card.js";
|
|
5
5
|
describe("Card", () => {
|
|
6
6
|
it("should render", () => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs as g, jsx as o } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { l as e } from "../../index-C2E9FY6V.js";
|
|
3
3
|
import { Checkbox as n } from "./Checkbox.js";
|
|
4
4
|
import { FormField as t } from "../FormField/FormField.js";
|
|
5
5
|
import { Label as i } from "../Label/Label.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as c } from "react/jsx-runtime";
|
|
2
|
-
import "../../index-
|
|
3
|
-
import { r as o, s as t } from "../../react.esm-
|
|
4
|
-
import { u as s } from "../../index-
|
|
2
|
+
import "../../index-Br0QepD6.js";
|
|
3
|
+
import { r as o, s as t } from "../../react.esm-BKjCIfbB.js";
|
|
4
|
+
import { u as s } from "../../index-Ds1dMTvJ.js";
|
|
5
5
|
import { Checkbox as r } from "./Checkbox.js";
|
|
6
6
|
describe("Checkbox", () => {
|
|
7
7
|
it("should render", () => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as t } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { l } from "../../index-C2E9FY6V.js";
|
|
3
3
|
import { CheckboxButtonBar as e } from "./CheckboxButtonBar.js";
|
|
4
4
|
const r = "<CheckboxButtonBar checkboxes={} defaultValues={} label={} labelPosition={} required={} notValidatedText={} disableGroup={} onSetValues={} />", d = {
|
|
5
5
|
title: "Molecules/CheckboxButtonBar",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as l } from "react/jsx-runtime";
|
|
2
|
-
import "../../index-
|
|
3
|
-
import { r as c, s as t } from "../../react.esm-
|
|
2
|
+
import "../../index-Br0QepD6.js";
|
|
3
|
+
import { r as c, s as t } from "../../react.esm-BKjCIfbB.js";
|
|
4
4
|
import { CheckboxButtonBar as a } from "./CheckboxButtonBar.js";
|
|
5
5
|
const n = jest.fn(), d = [
|
|
6
6
|
{
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import { jsxs as
|
|
1
|
+
import { jsxs as l, jsx as i } from "react/jsx-runtime";
|
|
2
2
|
import { useRef as G, useState as S, useEffect as E, createRef as q } from "react";
|
|
3
3
|
import { c as j } from "../../clsx-OuTLNxxd.js";
|
|
4
4
|
import { Icon as I } from "../Icon/Icon.js";
|
|
5
5
|
import { Button as L } from "../Buttons/Button.js";
|
|
6
6
|
import "../Buttons/LinkButton.js";
|
|
7
7
|
import "@react-aria/button";
|
|
8
|
-
import { Checkbox as
|
|
9
|
-
import { Label as
|
|
8
|
+
import { Checkbox as B } from "../Checkbox/Checkbox.js";
|
|
9
|
+
import { Label as A } from "../Label/Label.js";
|
|
10
10
|
import "@react-aria/dialog";
|
|
11
11
|
import "@react-aria/focus";
|
|
12
12
|
import "@react-aria/overlays";
|
|
13
13
|
import "../OverlayCloseButton/OverlayCloseButton.js";
|
|
14
|
-
import { FormField as
|
|
14
|
+
import { FormField as C } from "../FormField/FormField.js";
|
|
15
15
|
import "../GridRow/GridRow.js";
|
|
16
16
|
import "../IconButton/IconButton.js";
|
|
17
17
|
import "../Input/Input.js";
|
|
18
18
|
import "../InputField/InputField.js";
|
|
19
19
|
import "react-router";
|
|
20
|
-
import "../../TablePlugin-
|
|
20
|
+
import "../../TablePlugin-Dmy98Epb.js";
|
|
21
21
|
import "../RteEditor/Providers/LanguageProvider.js";
|
|
22
22
|
import "../RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js";
|
|
23
23
|
import "../RteEditor/hooks/components/Flyout.js";
|
|
24
|
-
import "../../index-
|
|
24
|
+
import "../../index-nrPtQ1dv.js";
|
|
25
25
|
import "../SelectListbox/SelectListbox.js";
|
|
26
26
|
import "../SelectListbox/SelectProvider.js";
|
|
27
27
|
import "../Sortable/components/SortableItem.js";
|
|
28
|
-
import "../../SortableProvider-
|
|
28
|
+
import "../../SortableProvider-C2T7b-pm.js";
|
|
29
29
|
import { useResponsive as N } from "../hooks/useResponsive.js";
|
|
30
|
-
import '../../assets/CheckboxTree.css';const
|
|
30
|
+
import '../../assets/CheckboxTree.css';const a = {
|
|
31
31
|
"checkbox-tree__header": "_checkbox-tree__header_l338d_1",
|
|
32
32
|
"checkbox-tree__branch": "_checkbox-tree__branch_l338d_8",
|
|
33
33
|
"checkbox-tree__branch--icon": "_checkbox-tree__branch--icon_l338d_21",
|
|
@@ -43,32 +43,31 @@ import '../../assets/CheckboxTree.css';const s = {
|
|
|
43
43
|
noLabelFrontWeight: p = !1,
|
|
44
44
|
onChange: b
|
|
45
45
|
}) => {
|
|
46
|
-
const
|
|
46
|
+
const c = G({}), [x, m] = S([]), { lessThan: h } = N(), R = (r, e) => {
|
|
47
47
|
if (r.length !== e.length) return !1;
|
|
48
|
-
const t = (o) => o.reduce((_, O) => (_[O] = (_[O] || 0) + 1, _), {}),
|
|
49
|
-
return !Object.keys(
|
|
50
|
-
}, k = (r) => (
|
|
48
|
+
const t = (o) => o.reduce((_, O) => (_[O] = (_[O] || 0) + 1, _), {}), n = t(r), s = t(e);
|
|
49
|
+
return !Object.keys(n).some((o) => n[o] !== s[o]);
|
|
50
|
+
}, k = (r) => (c.current[r] || (c.current[r] = q()), c.current[r]), v = () => {
|
|
51
51
|
const r = [];
|
|
52
|
-
Object.entries(
|
|
53
|
-
const t =
|
|
52
|
+
Object.entries(c.current).forEach(([e]) => {
|
|
53
|
+
const t = c.current[e].current;
|
|
54
54
|
t && t.name.indexOf("Group") === -1 && t.checked && r.push(t.value);
|
|
55
|
-
}),
|
|
56
|
-
},
|
|
55
|
+
}), m(r), b && b(r);
|
|
56
|
+
}, u = (r) => {
|
|
57
57
|
if (r === "") return;
|
|
58
58
|
const e = [];
|
|
59
|
-
Object.entries(
|
|
60
|
-
const o =
|
|
61
|
-
o &&
|
|
59
|
+
Object.entries(c.current).forEach(([s]) => {
|
|
60
|
+
const o = c.current[s].current;
|
|
61
|
+
o && o?.getAttribute("data-groupname") === r && e.push(o.checked);
|
|
62
62
|
});
|
|
63
|
-
const t = e.every(Boolean),
|
|
64
|
-
|
|
63
|
+
const t = e.every(Boolean), n = e.some(Boolean);
|
|
64
|
+
c.current[r].current && (c.current[r].current.checked = t, c.current[r].current.indeterminate = !t && t !== n, c.current[r].current.checked = t && t === n);
|
|
65
65
|
}, g = (r, e) => {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
r.childNodes[0].classList.toggle(s["checkbox-tree__branch--icon--expanded"]), (a = e == null ? void 0 : e.closest("[data-li]")) == null || a.setAttribute(
|
|
66
|
+
const t = e?.querySelector("[data-ul]");
|
|
67
|
+
r.childNodes[0].classList.toggle(a["checkbox-tree__branch--icon--expanded"]), e?.closest("[data-li]")?.setAttribute(
|
|
69
68
|
"aria-expanded",
|
|
70
|
-
|
|
71
|
-
), t && t.classList.toggle(
|
|
69
|
+
e?.closest("[data-li]")?.getAttribute("aria-expanded") === "false" ? "true" : "false"
|
|
70
|
+
), t && t.classList.toggle(a["checkbox-tree__leaves--expanded"]);
|
|
72
71
|
}, $ = (r) => {
|
|
73
72
|
const e = r.target;
|
|
74
73
|
if (!(e.type !== "checkbox" && e.type !== "button")) {
|
|
@@ -78,83 +77,83 @@ import '../../assets/CheckboxTree.css';const s = {
|
|
|
78
77
|
}
|
|
79
78
|
if (e.name.indexOf("Group") !== -1) {
|
|
80
79
|
const t = e.name;
|
|
81
|
-
Object.entries(
|
|
82
|
-
if (
|
|
83
|
-
const
|
|
84
|
-
if (!
|
|
85
|
-
|
|
80
|
+
Object.entries(c.current).forEach(([n]) => {
|
|
81
|
+
if (n.indexOf(`${t}_`) !== -1) {
|
|
82
|
+
const s = c.current[n].current, o = c.current[t].current;
|
|
83
|
+
if (!s || !o) return;
|
|
84
|
+
s.checked = !!o.checked;
|
|
86
85
|
}
|
|
87
|
-
}),
|
|
86
|
+
}), u(t), v();
|
|
88
87
|
return;
|
|
89
88
|
}
|
|
90
|
-
|
|
89
|
+
u(e.getAttribute("data-groupname") || ""), v();
|
|
91
90
|
}
|
|
92
91
|
}, y = (r) => {
|
|
93
92
|
const e = r.target, t = e.closest("[data-li]");
|
|
94
93
|
g(e, t);
|
|
95
94
|
};
|
|
96
95
|
return E(() => {
|
|
97
|
-
d && !R(d,
|
|
98
|
-
const e =
|
|
99
|
-
e && (d
|
|
96
|
+
d && !R(d, x) && Object.entries(c.current).forEach(([r]) => {
|
|
97
|
+
const e = c.current[r].current;
|
|
98
|
+
e && (d?.includes(e.value) ? e.checked = !0 : e.checked = !1, e.name.indexOf("Group") !== -1 && m(d || []));
|
|
100
99
|
});
|
|
101
100
|
}, [d]), E(() => {
|
|
102
|
-
Object.entries(
|
|
103
|
-
const e =
|
|
104
|
-
e && e.name.indexOf("Group") !== -1 &&
|
|
101
|
+
Object.entries(c.current).forEach(([r]) => {
|
|
102
|
+
const e = c.current[r].current;
|
|
103
|
+
e && e.name.indexOf("Group") !== -1 && u(e.name);
|
|
105
104
|
});
|
|
106
|
-
}, [
|
|
107
|
-
f && /* @__PURE__ */ i("span", { className:
|
|
108
|
-
/* @__PURE__ */ i("div", { onClick: $, "data-ul": !0, role: "tree", tabIndex: 0, children: F.map(({ itemName: r, children: e }, t) => /* @__PURE__ */
|
|
105
|
+
}, [x]), /* @__PURE__ */ l("div", { children: [
|
|
106
|
+
f && /* @__PURE__ */ i("span", { className: a["checkbox-tree__header"], children: f }),
|
|
107
|
+
/* @__PURE__ */ i("div", { onClick: $, "data-ul": !0, role: "tree", tabIndex: 0, children: F.map(({ itemName: r, children: e }, t) => /* @__PURE__ */ l(
|
|
109
108
|
"div",
|
|
110
109
|
{
|
|
111
|
-
className:
|
|
110
|
+
className: a["checkbox-tree__branch"],
|
|
112
111
|
"data-li": !0,
|
|
113
112
|
"aria-expanded": h.md ? "false" : "true",
|
|
114
113
|
children: [
|
|
115
|
-
/* @__PURE__ */
|
|
114
|
+
/* @__PURE__ */ l(C, { inline: !0, className: a["checkbox-tree__branch--formfield"], children: [
|
|
116
115
|
/* @__PURE__ */ i(L, { variant: "blank", onClick: y, children: /* @__PURE__ */ i(
|
|
117
116
|
I,
|
|
118
117
|
{
|
|
119
118
|
name: "CheveronRight",
|
|
120
119
|
size: 16,
|
|
121
|
-
className: j(
|
|
122
|
-
[
|
|
120
|
+
className: j(a["checkbox-tree__branch--icon"], {
|
|
121
|
+
[a["checkbox-tree__branch--icon--expanded"]]: !h.md
|
|
123
122
|
})
|
|
124
123
|
}
|
|
125
124
|
) }),
|
|
126
125
|
/* @__PURE__ */ i(
|
|
127
|
-
|
|
126
|
+
B,
|
|
128
127
|
{
|
|
129
128
|
id: r,
|
|
130
129
|
name: `Group${t}`,
|
|
131
|
-
disabled: e.every((
|
|
130
|
+
disabled: e.every((n) => n.disabled),
|
|
132
131
|
ref: k(`Group${t}`)
|
|
133
132
|
}
|
|
134
133
|
),
|
|
135
|
-
/* @__PURE__ */ i(
|
|
134
|
+
/* @__PURE__ */ i(A, { htmlFor: r, noFontWeight: p, children: r })
|
|
136
135
|
] }),
|
|
137
136
|
/* @__PURE__ */ i(
|
|
138
137
|
"div",
|
|
139
138
|
{
|
|
140
|
-
className: j(
|
|
141
|
-
[
|
|
139
|
+
className: j(a["checkbox-tree__leaves"], {
|
|
140
|
+
[a["checkbox-tree__leaves--expanded"]]: !h.md
|
|
142
141
|
}),
|
|
143
142
|
"data-ul": !0,
|
|
144
|
-
children: e.map(({ itemName:
|
|
143
|
+
children: e.map(({ itemName: n, itemValue: s, disabled: o }) => /* @__PURE__ */ i("div", { className: a["checkbox-tree__leaf"], "data-li": !0, children: /* @__PURE__ */ l(C, { inline: !0, className: a["checkbox-tree__branch--formfield"], children: [
|
|
145
144
|
/* @__PURE__ */ i(
|
|
146
|
-
|
|
145
|
+
B,
|
|
147
146
|
{
|
|
148
|
-
id:
|
|
149
|
-
name:
|
|
150
|
-
value:
|
|
147
|
+
id: n,
|
|
148
|
+
name: n,
|
|
149
|
+
value: s,
|
|
151
150
|
disabled: o,
|
|
152
151
|
"data-groupname": `Group${t}`,
|
|
153
|
-
ref: k(`Group${t}_${
|
|
152
|
+
ref: k(`Group${t}_${n}`)
|
|
154
153
|
}
|
|
155
154
|
),
|
|
156
|
-
/* @__PURE__ */ i(
|
|
157
|
-
] }) },
|
|
155
|
+
/* @__PURE__ */ i(A, { htmlFor: n, noFontWeight: p, children: n })
|
|
156
|
+
] }) }, n))
|
|
158
157
|
}
|
|
159
158
|
)
|
|
160
159
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxTree.js","sources":["../../../src/components/CheckboxTree/CheckboxTree.tsx"],"sourcesContent":["import { createRef, useEffect, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\n\nimport type { MouseEventHandler, RefObject } from 'react';\n\nimport styles from './CheckboxTree.module.css';\n\nimport { Button, Checkbox, FormField, Icon, Label } from 'components';\nimport { useResponsive } from 'components/hooks/useResponsive';\n\n// TODO: Currently the checkbox tree shows odd behavior when a disabled checkbox is checked.\n// When deselecting the parent checkbox, the disabled checkbox is deselected, and will never\n// be checked again. We'll leave this for now, until we run into a real world\n// example where this is necessary.\n\nexport type CheckboxLeaf = {\n itemName: string;\n itemValue: string;\n disabled?: boolean;\n};\n\nexport type CheckboxBranch = {\n itemName: string;\n children: CheckboxLeaf[];\n};\n\nexport interface CheckboxTreeProps {\n /** The title of the component. */\n title?: string;\n /** Array of checkbox groups with a label and array of children (itemName, itemValue and disabled boolean). */\n checkboxTree: CheckboxBranch[];\n /** Array of selected values. */\n selectedValues?: string[];\n /** `true` if the font-weight needs to be unset; otherwise, `false`. The default is `false`. */\n noLabelFrontWeight?: boolean;\n /** Returns array of selected values. */\n onChange?: (value: string[]) => void;\n}\n\n/** Represents a component to render a tree of checkboxes. */\nexport const CheckboxTree = ({\n title,\n checkboxTree,\n selectedValues,\n noLabelFrontWeight = false,\n onChange,\n}: CheckboxTreeProps) => {\n const checkboxRefs = useRef<Record<string, RefObject<HTMLInputElement | null>>>({});\n const [values, setValues] = useState<string[]>([]);\n const { lessThan } = useResponsive();\n\n const valuesAreEqual = (values1: string[], values2: string[]): boolean => {\n if (values1.length !== values2.length) return false;\n\n const countElements = (list: string[]) =>\n list.reduce((acc: Record<string, number>, val) => {\n acc[val] = (acc[val] || 0) + 1;\n return acc;\n }, {});\n\n const numberOfValues1 = countElements(values1);\n const numberOfValues2 = countElements(values2);\n\n return !Object.keys(numberOfValues1).some((key) => numberOfValues1[key] !== numberOfValues2[key]);\n };\n\n const createRefForKey = (key: string) => {\n if (!checkboxRefs.current[key]) {\n checkboxRefs.current[key] = createRef();\n }\n return checkboxRefs.current[key];\n };\n\n const setValue = () => {\n const newValues: string[] = [];\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (chkBox && chkBox.name.indexOf('Group') === -1 && chkBox.checked) {\n newValues.push(chkBox.value);\n }\n });\n setValues(newValues);\n if (onChange) onChange(newValues);\n };\n\n const setCheckboxesState = (checkGroupName: string) => {\n if (checkGroupName === '') return;\n\n const groupStatus: boolean[] = [];\n\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (chkBox?.getAttribute('data-groupname') === checkGroupName) {\n groupStatus.push(chkBox.checked);\n }\n });\n\n const every = groupStatus.every(Boolean);\n const some = groupStatus.some(Boolean);\n\n if (checkboxRefs.current[checkGroupName].current) {\n checkboxRefs.current[checkGroupName].current.checked = every;\n checkboxRefs.current[checkGroupName].current.indeterminate = !every && every !== some;\n checkboxRefs.current[checkGroupName].current.checked = every && every === some;\n }\n };\n\n const setExpandedAttributes = (trigger: HTMLButtonElement, container: Element | null) => {\n const children = container?.querySelector('[data-ul]');\n\n (trigger.childNodes[0] as Element).classList.toggle(styles['checkbox-tree__branch--icon--expanded']);\n container\n ?.closest('[data-li]')\n ?.setAttribute(\n 'aria-expanded',\n container?.closest('[data-li]')?.getAttribute('aria-expanded') === 'false' ? 'true' : 'false'\n );\n\n if (children) {\n children.classList.toggle(styles['checkbox-tree__leaves--expanded']);\n }\n };\n\n const handleChange: MouseEventHandler<HTMLDivElement> = (event) => {\n const check = event.target as HTMLInputElement;\n\n if (check.type !== 'checkbox' && check.type !== 'button') return;\n\n if (\n lessThan.md &&\n check.name.indexOf('Group') !== -1 &&\n check.parentNode &&\n (check.parentNode.parentNode as HTMLElement).getAttribute('aria-expanded') === 'false'\n ) {\n event.preventDefault();\n setExpandedAttributes(check.parentNode as HTMLButtonElement, check.parentNode.parentNode as HTMLElement);\n return;\n }\n\n if (check.name.indexOf('Group') !== -1) {\n const childPrefix = check.name;\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n if (key.indexOf(`${childPrefix}_`) !== -1) {\n const chkBox = checkboxRefs.current[key].current;\n const parentCheckbox = checkboxRefs.current[childPrefix].current;\n if (!chkBox || !parentCheckbox) return;\n chkBox.checked = parentCheckbox.checked ? true : false;\n }\n });\n setCheckboxesState(childPrefix);\n setValue();\n return;\n }\n setCheckboxesState(check.getAttribute('data-groupname') || '');\n setValue();\n };\n\n const handleExpanded: MouseEventHandler<HTMLButtonElement> = (event) => {\n const target = event.target as HTMLButtonElement;\n const parent = target.closest('[data-li]');\n setExpandedAttributes(target, parent);\n };\n\n useEffect(() => {\n if (selectedValues && !valuesAreEqual(selectedValues, values)) {\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (selectedValues?.includes(chkBox.value)) {\n chkBox.checked = true;\n } else {\n chkBox.checked = false;\n }\n if (chkBox.name.indexOf('Group') !== -1) {\n setValues(selectedValues || []);\n }\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedValues]);\n\n useEffect(() => {\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (chkBox.name.indexOf('Group') !== -1) {\n setCheckboxesState(chkBox.name);\n }\n });\n }, [values]);\n\n return (\n <div>\n {title && <span className={styles['checkbox-tree__header']}>{title}</span>}\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\n <div onClick={handleChange} data-ul role=\"tree\" tabIndex={0}>\n {checkboxTree.map(({ itemName, children }, index) => (\n <div\n key={itemName}\n className={styles['checkbox-tree__branch']}\n data-li\n aria-expanded={lessThan.md ? 'false' : 'true'}\n >\n <FormField inline className={styles['checkbox-tree__branch--formfield']}>\n <Button variant=\"blank\" onClick={handleExpanded}>\n <Icon\n name=\"CheveronRight\"\n size={16}\n className={clsx(styles['checkbox-tree__branch--icon'], {\n [styles['checkbox-tree__branch--icon--expanded']]: !lessThan.md,\n })}\n />\n </Button>\n <Checkbox\n id={itemName}\n name={`Group${index}`}\n disabled={children.every((checkbox) => checkbox.disabled)}\n ref={createRefForKey(`Group${index}`)}\n />\n <Label htmlFor={itemName} noFontWeight={noLabelFrontWeight}>\n {itemName}\n </Label>\n </FormField>\n <div\n className={clsx(styles['checkbox-tree__leaves'], {\n [styles['checkbox-tree__leaves--expanded']]: !lessThan.md,\n })}\n data-ul\n >\n {children.map(({ itemName, itemValue, disabled }) => (\n <div key={itemName} className={styles['checkbox-tree__leaf']} data-li>\n <FormField inline className={styles['checkbox-tree__branch--formfield']}>\n <Checkbox\n id={itemName}\n name={itemName}\n value={itemValue}\n disabled={disabled}\n data-groupname={`Group${index}`}\n ref={createRefForKey(`Group${index}_${itemName}`)}\n />\n <Label htmlFor={itemName} noFontWeight={noLabelFrontWeight}>\n {itemName}\n </Label>\n </FormField>\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n};\n"],"names":["CheckboxTree","title","checkboxTree","selectedValues","noLabelFrontWeight","onChange","checkboxRefs","useRef","values","setValues","useState","lessThan","useResponsive","valuesAreEqual","values1","values2","countElements","list","acc","val","numberOfValues1","numberOfValues2","key","createRefForKey","createRef","setValue","newValues","chkBox","setCheckboxesState","checkGroupName","groupStatus","every","some","setExpandedAttributes","trigger","container","children","styles","_b","_a","handleChange","event","check","childPrefix","parentCheckbox","handleExpanded","target","parent","useEffect","itemName","index","jsxs","FormField","jsx","Button","Icon","clsx","Checkbox","checkbox","Label","itemValue","disabled"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CheckboxTree.js","sources":["../../../src/components/CheckboxTree/CheckboxTree.tsx"],"sourcesContent":["import { createRef, useEffect, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\n\nimport type { MouseEventHandler, RefObject } from 'react';\n\nimport styles from './CheckboxTree.module.css';\n\nimport { Button, Checkbox, FormField, Icon, Label } from 'components';\nimport { useResponsive } from 'components/hooks/useResponsive';\n\n// TODO: Currently the checkbox tree shows odd behavior when a disabled checkbox is checked.\n// When deselecting the parent checkbox, the disabled checkbox is deselected, and will never\n// be checked again. We'll leave this for now, until we run into a real world\n// example where this is necessary.\n\nexport type CheckboxLeaf = {\n itemName: string;\n itemValue: string;\n disabled?: boolean;\n};\n\nexport type CheckboxBranch = {\n itemName: string;\n children: CheckboxLeaf[];\n};\n\nexport interface CheckboxTreeProps {\n /** The title of the component. */\n title?: string;\n /** Array of checkbox groups with a label and array of children (itemName, itemValue and disabled boolean). */\n checkboxTree: CheckboxBranch[];\n /** Array of selected values. */\n selectedValues?: string[];\n /** `true` if the font-weight needs to be unset; otherwise, `false`. The default is `false`. */\n noLabelFrontWeight?: boolean;\n /** Returns array of selected values. */\n onChange?: (value: string[]) => void;\n}\n\n/** Represents a component to render a tree of checkboxes. */\nexport const CheckboxTree = ({\n title,\n checkboxTree,\n selectedValues,\n noLabelFrontWeight = false,\n onChange,\n}: CheckboxTreeProps) => {\n const checkboxRefs = useRef<Record<string, RefObject<HTMLInputElement | null>>>({});\n const [values, setValues] = useState<string[]>([]);\n const { lessThan } = useResponsive();\n\n const valuesAreEqual = (values1: string[], values2: string[]): boolean => {\n if (values1.length !== values2.length) return false;\n\n const countElements = (list: string[]) =>\n list.reduce((acc: Record<string, number>, val) => {\n acc[val] = (acc[val] || 0) + 1;\n return acc;\n }, {});\n\n const numberOfValues1 = countElements(values1);\n const numberOfValues2 = countElements(values2);\n\n return !Object.keys(numberOfValues1).some((key) => numberOfValues1[key] !== numberOfValues2[key]);\n };\n\n const createRefForKey = (key: string) => {\n if (!checkboxRefs.current[key]) {\n checkboxRefs.current[key] = createRef();\n }\n return checkboxRefs.current[key];\n };\n\n const setValue = () => {\n const newValues: string[] = [];\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (chkBox && chkBox.name.indexOf('Group') === -1 && chkBox.checked) {\n newValues.push(chkBox.value);\n }\n });\n setValues(newValues);\n if (onChange) onChange(newValues);\n };\n\n const setCheckboxesState = (checkGroupName: string) => {\n if (checkGroupName === '') return;\n\n const groupStatus: boolean[] = [];\n\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (chkBox?.getAttribute('data-groupname') === checkGroupName) {\n groupStatus.push(chkBox.checked);\n }\n });\n\n const every = groupStatus.every(Boolean);\n const some = groupStatus.some(Boolean);\n\n if (checkboxRefs.current[checkGroupName].current) {\n checkboxRefs.current[checkGroupName].current.checked = every;\n checkboxRefs.current[checkGroupName].current.indeterminate = !every && every !== some;\n checkboxRefs.current[checkGroupName].current.checked = every && every === some;\n }\n };\n\n const setExpandedAttributes = (trigger: HTMLButtonElement, container: Element | null) => {\n const children = container?.querySelector('[data-ul]');\n\n (trigger.childNodes[0] as Element).classList.toggle(styles['checkbox-tree__branch--icon--expanded']);\n container\n ?.closest('[data-li]')\n ?.setAttribute(\n 'aria-expanded',\n container?.closest('[data-li]')?.getAttribute('aria-expanded') === 'false' ? 'true' : 'false'\n );\n\n if (children) {\n children.classList.toggle(styles['checkbox-tree__leaves--expanded']);\n }\n };\n\n const handleChange: MouseEventHandler<HTMLDivElement> = (event) => {\n const check = event.target as HTMLInputElement;\n\n if (check.type !== 'checkbox' && check.type !== 'button') return;\n\n if (\n lessThan.md &&\n check.name.indexOf('Group') !== -1 &&\n check.parentNode &&\n (check.parentNode.parentNode as HTMLElement).getAttribute('aria-expanded') === 'false'\n ) {\n event.preventDefault();\n setExpandedAttributes(check.parentNode as HTMLButtonElement, check.parentNode.parentNode as HTMLElement);\n return;\n }\n\n if (check.name.indexOf('Group') !== -1) {\n const childPrefix = check.name;\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n if (key.indexOf(`${childPrefix}_`) !== -1) {\n const chkBox = checkboxRefs.current[key].current;\n const parentCheckbox = checkboxRefs.current[childPrefix].current;\n if (!chkBox || !parentCheckbox) return;\n chkBox.checked = parentCheckbox.checked ? true : false;\n }\n });\n setCheckboxesState(childPrefix);\n setValue();\n return;\n }\n setCheckboxesState(check.getAttribute('data-groupname') || '');\n setValue();\n };\n\n const handleExpanded: MouseEventHandler<HTMLButtonElement> = (event) => {\n const target = event.target as HTMLButtonElement;\n const parent = target.closest('[data-li]');\n setExpandedAttributes(target, parent);\n };\n\n useEffect(() => {\n if (selectedValues && !valuesAreEqual(selectedValues, values)) {\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (selectedValues?.includes(chkBox.value)) {\n chkBox.checked = true;\n } else {\n chkBox.checked = false;\n }\n if (chkBox.name.indexOf('Group') !== -1) {\n setValues(selectedValues || []);\n }\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedValues]);\n\n useEffect(() => {\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (chkBox.name.indexOf('Group') !== -1) {\n setCheckboxesState(chkBox.name);\n }\n });\n }, [values]);\n\n return (\n <div>\n {title && <span className={styles['checkbox-tree__header']}>{title}</span>}\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\n <div onClick={handleChange} data-ul role=\"tree\" tabIndex={0}>\n {checkboxTree.map(({ itemName, children }, index) => (\n <div\n key={itemName}\n className={styles['checkbox-tree__branch']}\n data-li\n aria-expanded={lessThan.md ? 'false' : 'true'}\n >\n <FormField inline className={styles['checkbox-tree__branch--formfield']}>\n <Button variant=\"blank\" onClick={handleExpanded}>\n <Icon\n name=\"CheveronRight\"\n size={16}\n className={clsx(styles['checkbox-tree__branch--icon'], {\n [styles['checkbox-tree__branch--icon--expanded']]: !lessThan.md,\n })}\n />\n </Button>\n <Checkbox\n id={itemName}\n name={`Group${index}`}\n disabled={children.every((checkbox) => checkbox.disabled)}\n ref={createRefForKey(`Group${index}`)}\n />\n <Label htmlFor={itemName} noFontWeight={noLabelFrontWeight}>\n {itemName}\n </Label>\n </FormField>\n <div\n className={clsx(styles['checkbox-tree__leaves'], {\n [styles['checkbox-tree__leaves--expanded']]: !lessThan.md,\n })}\n data-ul\n >\n {children.map(({ itemName, itemValue, disabled }) => (\n <div key={itemName} className={styles['checkbox-tree__leaf']} data-li>\n <FormField inline className={styles['checkbox-tree__branch--formfield']}>\n <Checkbox\n id={itemName}\n name={itemName}\n value={itemValue}\n disabled={disabled}\n data-groupname={`Group${index}`}\n ref={createRefForKey(`Group${index}_${itemName}`)}\n />\n <Label htmlFor={itemName} noFontWeight={noLabelFrontWeight}>\n {itemName}\n </Label>\n </FormField>\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n};\n"],"names":["CheckboxTree","title","checkboxTree","selectedValues","noLabelFrontWeight","onChange","checkboxRefs","useRef","values","setValues","useState","lessThan","useResponsive","valuesAreEqual","values1","values2","countElements","list","acc","val","numberOfValues1","numberOfValues2","key","createRefForKey","createRef","setValue","newValues","chkBox","setCheckboxesState","checkGroupName","groupStatus","every","some","setExpandedAttributes","trigger","container","children","styles","handleChange","event","check","childPrefix","parentCheckbox","handleExpanded","target","parent","useEffect","itemName","index","jsxs","FormField","jsx","Button","Icon","clsx","Checkbox","checkbox","Label","itemValue","disabled"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCaA,KAAe,CAAC;AAAA,EAC3B,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,oBAAAC,IAAqB;AAAA,EACrB,UAAAC;AACF,MAAyB;AACvB,QAAMC,IAAeC,EAA2D,EAAE,GAC5E,CAACC,GAAQC,CAAS,IAAIC,EAAmB,CAAA,CAAE,GAC3C,EAAE,UAAAC,EAAA,IAAaC,EAAA,GAEfC,IAAiB,CAACC,GAAmBC,MAA+B;AACxE,QAAID,EAAQ,WAAWC,EAAQ,OAAQ,QAAO;AAE9C,UAAMC,IAAgB,CAACC,MACrBA,EAAK,OAAO,CAACC,GAA6BC,OACxCD,EAAIC,CAAG,KAAKD,EAAIC,CAAG,KAAK,KAAK,GACtBD,IACN,EAAE,GAEDE,IAAkBJ,EAAcF,CAAO,GACvCO,IAAkBL,EAAcD,CAAO;AAE7C,WAAO,CAAC,OAAO,KAAKK,CAAe,EAAE,KAAK,CAACE,MAAQF,EAAgBE,CAAG,MAAMD,EAAgBC,CAAG,CAAC;AAAA,EAAA,GAG5FC,IAAkB,CAACD,OAClBhB,EAAa,QAAQgB,CAAG,MAC3BhB,EAAa,QAAQgB,CAAG,IAAIE,EAAA,IAEvBlB,EAAa,QAAQgB,CAAG,IAG3BG,IAAW,MAAM;AACrB,UAAMC,IAAsB,CAAA;AAC5B,WAAO,QAAQpB,EAAa,OAAO,EAAE,QAAQ,CAAC,CAACgB,CAAG,MAAM;AACtD,YAAMK,IAASrB,EAAa,QAAQgB,CAAG,EAAE;AACzC,MAAIK,KAAUA,EAAO,KAAK,QAAQ,OAAO,MAAM,MAAMA,EAAO,WAC1DD,EAAU,KAAKC,EAAO,KAAK;AAAA,IAC7B,CACD,GACDlB,EAAUiB,CAAS,GACfrB,OAAmBqB,CAAS;AAAA,EAAA,GAG5BE,IAAqB,CAACC,MAA2B;AACrD,QAAIA,MAAmB,GAAI;AAE3B,UAAMC,IAAyB,CAAA;AAE/B,WAAO,QAAQxB,EAAa,OAAO,EAAE,QAAQ,CAAC,CAACgB,CAAG,MAAM;AACtD,YAAMK,IAASrB,EAAa,QAAQgB,CAAG,EAAE;AACzC,MAAKK,KACDA,GAAQ,aAAa,gBAAgB,MAAME,KAC7CC,EAAY,KAAKH,EAAO,OAAO;AAAA,IACjC,CACD;AAED,UAAMI,IAAQD,EAAY,MAAM,OAAO,GACjCE,IAAOF,EAAY,KAAK,OAAO;AAErC,IAAIxB,EAAa,QAAQuB,CAAc,EAAE,YACvCvB,EAAa,QAAQuB,CAAc,EAAE,QAAQ,UAAUE,GACvDzB,EAAa,QAAQuB,CAAc,EAAE,QAAQ,gBAAgB,CAACE,KAASA,MAAUC,GACjF1B,EAAa,QAAQuB,CAAc,EAAE,QAAQ,UAAUE,KAASA,MAAUC;AAAA,EAC5E,GAGIC,IAAwB,CAACC,GAA4BC,MAA8B;AACvF,UAAMC,IAAWD,GAAW,cAAc,WAAW;AAEpD,IAAAD,EAAQ,WAAW,CAAC,EAAc,UAAU,OAAOG,EAAO,uCAAuC,CAAC,GACnGF,GACI,QAAQ,WAAW,GACnB;AAAA,MACA;AAAA,MACAA,GAAW,QAAQ,WAAW,GAAG,aAAa,eAAe,MAAM,UAAU,SAAS;AAAA,IAAA,GAGtFC,KACFA,EAAS,UAAU,OAAOC,EAAO,iCAAiC,CAAC;AAAA,EACrE,GAGIC,IAAkD,CAACC,MAAU;AACjE,UAAMC,IAAQD,EAAM;AAEpB,QAAI,EAAAC,EAAM,SAAS,cAAcA,EAAM,SAAS,WAEhD;AAAA,UACE7B,EAAS,MACT6B,EAAM,KAAK,QAAQ,OAAO,MAAM,MAChCA,EAAM,cACLA,EAAM,WAAW,WAA2B,aAAa,eAAe,MAAM,SAC/E;AACA,QAAAD,EAAM,eAAA,GACNN,EAAsBO,EAAM,YAAiCA,EAAM,WAAW,UAAyB;AACvG;AAAA,MAAA;AAGF,UAAIA,EAAM,KAAK,QAAQ,OAAO,MAAM,IAAI;AACtC,cAAMC,IAAcD,EAAM;AAC1B,eAAO,QAAQlC,EAAa,OAAO,EAAE,QAAQ,CAAC,CAACgB,CAAG,MAAM;AACtD,cAAIA,EAAI,QAAQ,GAAGmB,CAAW,GAAG,MAAM,IAAI;AACzC,kBAAMd,IAASrB,EAAa,QAAQgB,CAAG,EAAE,SACnCoB,IAAiBpC,EAAa,QAAQmC,CAAW,EAAE;AACzD,gBAAI,CAACd,KAAU,CAACe,EAAgB;AAChC,YAAAf,EAAO,UAAU,EAAAe,EAAe;AAAA,UAAiB;AAAA,QACnD,CACD,GACDd,EAAmBa,CAAW,GAC9BhB,EAAA;AACA;AAAA,MAAA;AAEF,MAAAG,EAAmBY,EAAM,aAAa,gBAAgB,KAAK,EAAE,GAC7Df,EAAA;AAAA;AAAA,EAAS,GAGLkB,IAAuD,CAACJ,MAAU;AACtE,UAAMK,IAASL,EAAM,QACfM,IAASD,EAAO,QAAQ,WAAW;AACzC,IAAAX,EAAsBW,GAAQC,CAAM;AAAA,EAAA;AAGtC,SAAAC,EAAU,MAAM;AACd,IAAI3C,KAAkB,CAACU,EAAeV,GAAgBK,CAAM,KAC1D,OAAO,QAAQF,EAAa,OAAO,EAAE,QAAQ,CAAC,CAACgB,CAAG,MAAM;AACtD,YAAMK,IAASrB,EAAa,QAAQgB,CAAG,EAAE;AACzC,MAAKK,MACDxB,GAAgB,SAASwB,EAAO,KAAK,IACvCA,EAAO,UAAU,KAEjBA,EAAO,UAAU,IAEfA,EAAO,KAAK,QAAQ,OAAO,MAAM,MACnClB,EAAUN,KAAkB,EAAE;AAAA,IAChC,CACD;AAAA,EACH,GAEC,CAACA,CAAc,CAAC,GAEnB2C,EAAU,MAAM;AACd,WAAO,QAAQxC,EAAa,OAAO,EAAE,QAAQ,CAAC,CAACgB,CAAG,MAAM;AACtD,YAAMK,IAASrB,EAAa,QAAQgB,CAAG,EAAE;AACzC,MAAKK,KACDA,EAAO,KAAK,QAAQ,OAAO,MAAM,MACnCC,EAAmBD,EAAO,IAAI;AAAA,IAChC,CACD;AAAA,EAAA,GACA,CAACnB,CAAM,CAAC,qBAGR,OAAA,EACE,UAAA;AAAA,IAAAP,uBAAU,QAAA,EAAK,WAAWoC,EAAO,uBAAuB,GAAI,UAAApC,GAAM;AAAA,sBAElE,OAAA,EAAI,SAASqC,GAAc,WAAO,IAAC,MAAK,QAAO,UAAU,GACvD,YAAa,IAAI,CAAC,EAAE,UAAAS,GAAU,UAAAX,EAAA,GAAYY,MACzC,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,WAAWZ,EAAO,uBAAuB;AAAA,QACzC,WAAO;AAAA,QACP,iBAAe1B,EAAS,KAAK,UAAU;AAAA,QAEvC,UAAA;AAAA,UAAA,gBAAAsC,EAACC,KAAU,QAAM,IAAC,WAAWb,EAAO,kCAAkC,GACpE,UAAA;AAAA,YAAA,gBAAAc,EAACC,GAAA,EAAO,SAAQ,SAAQ,SAAST,GAC/B,UAAA,gBAAAQ;AAAA,cAACE;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,MAAM;AAAA,gBACN,WAAWC,EAAKjB,EAAO,6BAA6B,GAAG;AAAA,kBACrD,CAACA,EAAO,uCAAuC,CAAC,GAAG,CAAC1B,EAAS;AAAA,gBAAA,CAC9D;AAAA,cAAA;AAAA,YAAA,GAEL;AAAA,YACA,gBAAAwC;AAAA,cAACI;AAAA,cAAA;AAAA,gBACC,IAAIR;AAAA,gBACJ,MAAM,QAAQC,CAAK;AAAA,gBACnB,UAAUZ,EAAS,MAAM,CAACoB,MAAaA,EAAS,QAAQ;AAAA,gBACxD,KAAKjC,EAAgB,QAAQyB,CAAK,EAAE;AAAA,cAAA;AAAA,YAAA;AAAA,8BAErCS,GAAA,EAAM,SAASV,GAAU,cAAc3C,GACrC,UAAA2C,EAAA,CACH;AAAA,UAAA,GACF;AAAA,UACA,gBAAAI;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWG,EAAKjB,EAAO,uBAAuB,GAAG;AAAA,gBAC/C,CAACA,EAAO,iCAAiC,CAAC,GAAG,CAAC1B,EAAS;AAAA,cAAA,CACxD;AAAA,cACD,WAAO;AAAA,cAEN,UAAAyB,EAAS,IAAI,CAAC,EAAE,UAAAW,GAAU,WAAAW,GAAW,UAAAC,EAAA,MACpC,gBAAAR,EAAC,OAAA,EAAmB,WAAWd,EAAO,qBAAqB,GAAG,WAAO,IACnE,UAAA,gBAAAY,EAACC,GAAA,EAAU,QAAM,IAAC,WAAWb,EAAO,kCAAkC,GACpE,UAAA;AAAA,gBAAA,gBAAAc;AAAA,kBAACI;AAAA,kBAAA;AAAA,oBACC,IAAIR;AAAAA,oBACJ,MAAMA;AAAAA,oBACN,OAAOW;AAAA,oBACP,UAAAC;AAAA,oBACA,kBAAgB,QAAQX,CAAK;AAAA,oBAC7B,KAAKzB,EAAgB,QAAQyB,CAAK,IAAID,CAAQ,EAAE;AAAA,kBAAA;AAAA,gBAAA;AAAA,kCAEjDU,GAAA,EAAM,SAASV,GAAU,cAAc3C,GACrC,UAAA2C,EAAAA,CACH;AAAA,cAAA,EAAA,CACF,EAAA,GAbQA,CAcV,CACD;AAAA,YAAA;AAAA,UAAA;AAAA,QACH;AAAA,MAAA;AAAA,MAhDKA;AAAA,IAAA,CAkDR,EAAA,CACH;AAAA,EAAA,GACF;AAEJ;"}
|