@apia/components 1.0.4 → 2.0.1
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/components/IconsList/Icon.js +42 -0
- package/dist/components/IconsList/Icon.js.map +1 -0
- package/dist/components/IconsList/IconWrapper.js +24 -0
- package/dist/components/IconsList/IconWrapper.js.map +1 -0
- package/dist/components/IconsList/KeyHandler.js +147 -0
- package/dist/components/IconsList/KeyHandler.js.map +1 -0
- package/dist/components/IconsList/context.js +14 -0
- package/dist/components/IconsList/context.js.map +1 -0
- package/dist/components/IconsList/index.d.ts +12 -0
- package/dist/components/IconsList/index.d.ts.map +1 -0
- package/dist/components/IconsList/index.js +119 -0
- package/dist/components/IconsList/index.js.map +1 -0
- package/dist/components/IconsList/renderers/DefaultIconRenderer.d.ts +7 -0
- package/dist/components/IconsList/renderers/DefaultIconRenderer.d.ts.map +1 -0
- package/dist/components/IconsList/renderers/DefaultIconRenderer.js +30 -0
- package/dist/components/IconsList/renderers/DefaultIconRenderer.js.map +1 -0
- package/dist/components/IconsList/store/context.js +9 -0
- package/dist/components/IconsList/store/context.js.map +1 -0
- package/dist/components/IconsList/store/distinctors.js +42 -0
- package/dist/components/IconsList/store/distinctors.js.map +1 -0
- package/dist/components/IconsList/store/keysMaker.js +8 -0
- package/dist/components/IconsList/store/keysMaker.js.map +1 -0
- package/dist/components/IconsList/store/operations.js +138 -0
- package/dist/components/IconsList/store/operations.js.map +1 -0
- package/dist/components/IconsList/store/state.js +9 -0
- package/dist/components/IconsList/store/state.js.map +1 -0
- package/dist/components/IconsList/store/useStore.js +52 -0
- package/dist/components/IconsList/store/useStore.js.map +1 -0
- package/dist/components/IconsList/styles.js +48 -0
- package/dist/components/IconsList/styles.js.map +1 -0
- package/dist/components/IconsList/types.d.ts +98 -0
- package/dist/components/IconsList/types.d.ts.map +1 -0
- package/dist/components/IconsList/util.js +46 -0
- package/dist/components/IconsList/util.js.map +1 -0
- package/dist/components/ListBox/Combobox.js +52 -0
- package/dist/components/ListBox/Combobox.js.map +1 -0
- package/dist/components/ListBox/ListboxContext.d.ts +35 -0
- package/dist/components/ListBox/ListboxContext.d.ts.map +1 -0
- package/dist/components/ListBox/ListboxContext.js +6 -0
- package/dist/components/ListBox/ListboxContext.js.map +1 -0
- package/dist/components/ListBox/ListboxItem.d.ts +17 -0
- package/dist/components/ListBox/ListboxItem.d.ts.map +1 -0
- package/dist/components/ListBox/ListboxItem.js +67 -0
- package/dist/components/ListBox/ListboxItem.js.map +1 -0
- package/dist/components/ListBox/ListboxKeyhandler.js +154 -0
- package/dist/components/ListBox/ListboxKeyhandler.js.map +1 -0
- package/dist/components/ListBox/common.d.ts +46 -0
- package/dist/components/ListBox/common.d.ts.map +1 -0
- package/dist/components/ListBox/common.js +118 -0
- package/dist/components/ListBox/common.js.map +1 -0
- package/dist/components/ListBox/index.d.ts +21 -0
- package/dist/components/ListBox/index.d.ts.map +1 -0
- package/dist/components/ListBox/index.js +71 -0
- package/dist/components/ListBox/index.js.map +1 -0
- package/dist/components/ListBox/listbox.js +46 -0
- package/dist/components/ListBox/listbox.js.map +1 -0
- package/dist/components/ListBox/operations.js +330 -0
- package/dist/components/ListBox/operations.js.map +1 -0
- package/dist/components/ListBox/useIndexedChildren.js +25 -0
- package/dist/components/ListBox/useIndexedChildren.js.map +1 -0
- package/dist/components/ListBox/useListboxAutofocus.js +48 -0
- package/dist/components/ListBox/useListboxAutofocus.js.map +1 -0
- package/dist/components/ListBox/useListboxContextValue.js +8 -0
- package/dist/components/ListBox/useListboxContextValue.js.map +1 -0
- package/dist/components/ListBox/useShoutSelectionChange.js +26 -0
- package/dist/components/ListBox/useShoutSelectionChange.js.map +1 -0
- package/dist/components/ListBox/useStore.js +36 -0
- package/dist/components/ListBox/useStore.js.map +1 -0
- package/dist/components/ListBox/useUpdateRowCount.js +19 -0
- package/dist/components/ListBox/useUpdateRowCount.js.map +1 -0
- package/dist/components/SortableList/SortableListHandler.js +161 -0
- package/dist/components/SortableList/SortableListHandler.js.map +1 -0
- package/dist/components/SortableList/SortableListItem.d.ts +14 -0
- package/dist/components/SortableList/SortableListItem.d.ts.map +1 -0
- package/dist/components/SortableList/SortableListItem.js +24 -0
- package/dist/components/SortableList/SortableListItem.js.map +1 -0
- package/dist/components/SortableList/index.d.ts +21 -0
- package/dist/components/SortableList/index.d.ts.map +1 -0
- package/dist/components/SortableList/index.js +53 -0
- package/dist/components/SortableList/index.js.map +1 -0
- package/dist/components/Toolbar/ToolbarController.d.ts +24 -0
- package/dist/components/Toolbar/ToolbarController.d.ts.map +1 -0
- package/dist/components/Toolbar/ToolbarController.js +50 -0
- package/dist/components/Toolbar/ToolbarController.js.map +1 -0
- package/dist/components/Toolbar/ToolbarIconButton.d.ts +7 -0
- package/dist/components/Toolbar/ToolbarIconButton.d.ts.map +1 -0
- package/dist/components/Toolbar/ToolbarIconButton.js +110 -0
- package/dist/components/Toolbar/ToolbarIconButton.js.map +1 -0
- package/dist/components/Toolbar/ToolbarInput.d.ts +7 -0
- package/dist/components/Toolbar/ToolbarInput.d.ts.map +1 -0
- package/dist/components/Toolbar/ToolbarInput.js +13 -0
- package/dist/components/Toolbar/ToolbarInput.js.map +1 -0
- package/dist/components/Toolbar/ToolbarSelect.d.ts +7 -0
- package/dist/components/Toolbar/ToolbarSelect.d.ts.map +1 -0
- package/dist/components/Toolbar/ToolbarSelect.js +17 -0
- package/dist/components/Toolbar/ToolbarSelect.js.map +1 -0
- package/dist/components/Toolbar/ToolbarSeparator.d.ts +6 -0
- package/dist/components/Toolbar/ToolbarSeparator.d.ts.map +1 -0
- package/dist/components/Toolbar/ToolbarSeparator.js +9 -0
- package/dist/components/Toolbar/ToolbarSeparator.js.map +1 -0
- package/dist/components/Toolbar/ToolbarTextButton.d.ts +9 -0
- package/dist/components/Toolbar/ToolbarTextButton.d.ts.map +1 -0
- package/dist/components/Toolbar/ToolbarTextButton.js +18 -0
- package/dist/components/Toolbar/ToolbarTextButton.js.map +1 -0
- package/dist/components/Toolbar/index.d.ts +17 -0
- package/dist/components/Toolbar/index.d.ts.map +1 -0
- package/dist/components/Toolbar/index.js +26 -0
- package/dist/components/Toolbar/index.js.map +1 -0
- package/dist/components/Toolbar/styles.js +84 -0
- package/dist/components/Toolbar/styles.js.map +1 -0
- package/dist/components/Toolbar/types.d.ts +40 -0
- package/dist/components/Toolbar/types.d.ts.map +1 -0
- package/dist/components/accordion/Accordion.d.ts +20 -0
- package/dist/components/accordion/Accordion.d.ts.map +1 -0
- package/dist/components/accordion/Accordion.js +60 -0
- package/dist/components/accordion/Accordion.js.map +1 -0
- package/dist/components/accordion/AccordionItem.d.ts +19 -0
- package/dist/components/accordion/AccordionItem.d.ts.map +1 -0
- package/dist/components/accordion/AccordionItem.js +22 -0
- package/dist/components/accordion/AccordionItem.js.map +1 -0
- package/dist/components/accordion/AccordionItemButton.d.ts +10 -0
- package/dist/components/accordion/AccordionItemButton.d.ts.map +1 -0
- package/dist/components/accordion/AccordionItemButton.js +8 -0
- package/dist/components/accordion/AccordionItemButton.js.map +1 -0
- package/dist/components/accordion/AccordionItemContent.d.ts +7 -0
- package/dist/components/accordion/AccordionItemContent.d.ts.map +1 -0
- package/dist/components/accordion/AccordionItemContent.js +50 -0
- package/dist/components/accordion/AccordionItemContent.js.map +1 -0
- package/dist/components/accordion/KeyHandler.js +77 -0
- package/dist/components/accordion/KeyHandler.js.map +1 -0
- package/dist/components/accordion/context.d.ts +10 -0
- package/dist/components/accordion/context.d.ts.map +1 -0
- package/dist/components/accordion/context.js +13 -0
- package/dist/components/accordion/context.js.map +1 -0
- package/dist/components/accordion/defaultElements/Checkbox.js +22 -0
- package/dist/components/accordion/defaultElements/Checkbox.js.map +1 -0
- package/dist/components/accordion/defaultElements/DefaultAccordionItemButton.d.ts +40 -0
- package/dist/components/accordion/defaultElements/DefaultAccordionItemButton.d.ts.map +1 -0
- package/dist/components/accordion/defaultElements/DefaultAccordionItemButton.js +79 -0
- package/dist/components/accordion/defaultElements/DefaultAccordionItemButton.js.map +1 -0
- package/dist/components/accordion/defaultElements/useIsChecked.js +25 -0
- package/dist/components/accordion/defaultElements/useIsChecked.js.map +1 -0
- package/dist/components/accordion/handler.d.ts +40 -0
- package/dist/components/accordion/handler.d.ts.map +1 -0
- package/dist/components/accordion/handler.js +118 -0
- package/dist/components/accordion/handler.js.map +1 -0
- package/dist/components/accordion/index.d.ts +8 -0
- package/dist/components/accordion/index.d.ts.map +1 -0
- package/dist/components/accordion/types.d.ts +11 -0
- package/dist/components/accordion/types.d.ts.map +1 -0
- package/dist/components/apia/ApiaDateFilter.js +57 -0
- package/dist/components/apia/ApiaDateFilter.js.map +1 -0
- package/dist/components/apia/ApiaFilter.d.ts +13 -0
- package/dist/components/apia/ApiaFilter.d.ts.map +1 -0
- package/dist/components/apia/ApiaFilter.js +128 -0
- package/dist/components/apia/ApiaFilter.js.map +1 -0
- package/dist/components/buttons/useOtherTagButton.d.ts +28 -0
- package/dist/components/buttons/useOtherTagButton.d.ts.map +1 -0
- package/dist/components/buttons/useOtherTagButton.js +38 -0
- package/dist/components/buttons/useOtherTagButton.js.map +1 -0
- package/dist/components/collapsiblePanel/index.d.ts +7 -0
- package/dist/components/collapsiblePanel/index.d.ts.map +1 -0
- package/dist/components/collapsiblePanel/index.js +130 -0
- package/dist/components/collapsiblePanel/index.js.map +1 -0
- package/dist/components/collapsiblePanel/styles.js +4 -0
- package/dist/components/collapsiblePanel/styles.js.map +1 -0
- package/dist/components/collapsiblePanel/types.d.ts +23 -0
- package/dist/components/collapsiblePanel/types.d.ts.map +1 -0
- package/dist/components/dialogs/AlertModal.d.ts +11 -0
- package/dist/components/dialogs/AlertModal.d.ts.map +1 -0
- package/dist/components/dialogs/AlertModal.js +42 -0
- package/dist/components/dialogs/AlertModal.js.map +1 -0
- package/dist/components/dialogs/ConfirmModal.d.ts +25 -0
- package/dist/components/dialogs/ConfirmModal.d.ts.map +1 -0
- package/dist/components/dialogs/ConfirmModal.js +45 -0
- package/dist/components/dialogs/ConfirmModal.js.map +1 -0
- package/dist/components/forms/Captcha.d.ts +12 -0
- package/dist/components/forms/Captcha.d.ts.map +1 -0
- package/dist/components/forms/Captcha.js +66 -0
- package/dist/components/forms/Captcha.js.map +1 -0
- package/dist/components/forms/Checkbox.d.ts +21 -0
- package/dist/components/forms/Checkbox.d.ts.map +1 -0
- package/dist/components/forms/Checkbox.js +124 -0
- package/dist/components/forms/Checkbox.js.map +1 -0
- package/dist/components/forms/DateInput.d.ts +44 -0
- package/dist/components/forms/DateInput.d.ts.map +1 -0
- package/dist/components/forms/DateInput.js +246 -0
- package/dist/components/forms/DateInput.js.map +1 -0
- package/dist/components/forms/FieldErrorMessage.d.ts +10 -0
- package/dist/components/forms/FieldErrorMessage.d.ts.map +1 -0
- package/dist/components/forms/FieldErrorMessage.js +34 -0
- package/dist/components/forms/FieldErrorMessage.js.map +1 -0
- package/dist/components/forms/FieldLabel.d.ts +40 -0
- package/dist/components/forms/FieldLabel.d.ts.map +1 -0
- package/dist/components/forms/FieldLabel.js +66 -0
- package/dist/components/forms/FieldLabel.js.map +1 -0
- package/dist/components/forms/IconInput.d.ts +28 -0
- package/dist/components/forms/IconInput.d.ts.map +1 -0
- package/dist/components/forms/IconInput.js +80 -0
- package/dist/components/forms/IconInput.js.map +1 -0
- package/dist/components/forms/NumberInput.d.ts +37 -0
- package/dist/components/forms/NumberInput.d.ts.map +1 -0
- package/dist/components/forms/NumberInput.js +149 -0
- package/dist/components/forms/NumberInput.js.map +1 -0
- package/dist/components/forms/RequiredMark.d.ts +14 -0
- package/dist/components/forms/RequiredMark.d.ts.map +1 -0
- package/dist/components/forms/RequiredMark.js +13 -0
- package/dist/components/forms/RequiredMark.js.map +1 -0
- package/dist/components/forms/buttons/BaseButton.d.ts +24 -0
- package/dist/components/forms/buttons/BaseButton.d.ts.map +1 -0
- package/dist/components/forms/buttons/BaseButton.js +58 -0
- package/dist/components/forms/buttons/BaseButton.js.map +1 -0
- package/dist/components/forms/buttons/IconButton.d.ts +37 -0
- package/dist/components/forms/buttons/IconButton.d.ts.map +1 -0
- package/dist/components/forms/buttons/IconButton.js +79 -0
- package/dist/components/forms/buttons/IconButton.js.map +1 -0
- package/dist/components/forms/buttons/SimpleButton.d.ts +21 -0
- package/dist/components/forms/buttons/SimpleButton.d.ts.map +1 -0
- package/dist/components/forms/buttons/SimpleButton.js +94 -0
- package/dist/components/forms/buttons/SimpleButton.js.map +1 -0
- package/dist/components/forms/util/style.d.ts +7 -0
- package/dist/components/forms/util/style.d.ts.map +1 -0
- package/dist/components/forms/util/style.js +17 -0
- package/dist/components/forms/util/style.js.map +1 -0
- package/dist/components/importComponent.d.ts +11 -0
- package/dist/components/importComponent.d.ts.map +1 -0
- package/dist/components/importComponent.js +25 -0
- package/dist/components/importComponent.js.map +1 -0
- package/dist/components/loaders/LinearLoader.d.ts +6 -0
- package/dist/components/loaders/LinearLoader.d.ts.map +1 -0
- package/dist/components/loaders/LinearLoader.js +33 -0
- package/dist/components/loaders/LinearLoader.js.map +1 -0
- package/dist/components/loaders/LoaderSpinner.d.ts +10 -0
- package/dist/components/loaders/LoaderSpinner.d.ts.map +1 -0
- package/dist/components/loaders/LoaderSpinner.js +26 -0
- package/dist/components/loaders/LoaderSpinner.js.map +1 -0
- package/dist/components/loaders/ProgressBar.d.ts +11 -0
- package/dist/components/loaders/ProgressBar.d.ts.map +1 -0
- package/dist/components/loaders/ProgressBar.js +39 -0
- package/dist/components/loaders/ProgressBar.js.map +1 -0
- package/dist/components/modals/CalendarModal.d.ts +13 -0
- package/dist/components/modals/CalendarModal.d.ts.map +1 -0
- package/dist/components/modals/CalendarModal.js +43 -0
- package/dist/components/modals/CalendarModal.js.map +1 -0
- package/dist/components/modals/Modal.d.ts +160 -0
- package/dist/components/modals/Modal.d.ts.map +1 -0
- package/dist/components/modals/Modal.js +17 -0
- package/dist/components/modals/Modal.js.map +1 -0
- package/dist/components/modals/ModalContext.d.ts +9 -0
- package/dist/components/modals/ModalContext.d.ts.map +1 -0
- package/dist/components/modals/ModalContext.js +12 -0
- package/dist/components/modals/ModalContext.js.map +1 -0
- package/dist/components/modals/Overlay.d.ts +21 -0
- package/dist/components/modals/Overlay.d.ts.map +1 -0
- package/dist/components/modals/Overlay.js +75 -0
- package/dist/components/modals/Overlay.js.map +1 -0
- package/dist/components/modals/StaticModal.js +175 -0
- package/dist/components/modals/StaticModal.js.map +1 -0
- package/dist/components/modals/WindowModal.js +214 -0
- package/dist/components/modals/WindowModal.js.map +1 -0
- package/dist/components/modals/hooks/useEscapeKey.js +32 -0
- package/dist/components/modals/hooks/useEscapeKey.js.map +1 -0
- package/dist/components/modals/hooks/useInitialFocus.js +37 -0
- package/dist/components/modals/hooks/useInitialFocus.js.map +1 -0
- package/dist/components/modals/hooks/useModal.d.ts +97 -0
- package/dist/components/modals/hooks/useModal.d.ts.map +1 -0
- package/dist/components/modals/hooks/useModal.js +73 -0
- package/dist/components/modals/hooks/useModal.js.map +1 -0
- package/dist/components/modals/hooks/useStyleState.js +44 -0
- package/dist/components/modals/hooks/useStyleState.js.map +1 -0
- package/dist/components/modals/layout/Confirm.d.ts +7 -0
- package/dist/components/modals/layout/Confirm.d.ts.map +1 -0
- package/dist/components/modals/layout/Confirm.js +96 -0
- package/dist/components/modals/layout/Confirm.js.map +1 -0
- package/dist/components/modals/layout/DialogButtonBar.d.ts +10 -0
- package/dist/components/modals/layout/DialogButtonBar.d.ts.map +1 -0
- package/dist/components/modals/layout/DialogButtonBar.js +19 -0
- package/dist/components/modals/layout/DialogButtonBar.js.map +1 -0
- package/dist/components/modals/layout/DialogHeader.d.ts +18 -0
- package/dist/components/modals/layout/DialogHeader.d.ts.map +1 -0
- package/dist/components/modals/layout/DialogHeader.js +117 -0
- package/dist/components/modals/layout/DialogHeader.js.map +1 -0
- package/dist/components/responsive/AutoEllipsis.d.ts +21 -0
- package/dist/components/responsive/AutoEllipsis.d.ts.map +1 -0
- package/dist/components/responsive/AutoEllipsis.js +128 -0
- package/dist/components/responsive/AutoEllipsis.js.map +1 -0
- package/dist/components/responsive/makeResponsiveComponent.d.ts +38 -0
- package/dist/components/responsive/makeResponsiveComponent.d.ts.map +1 -0
- package/dist/components/responsive/makeResponsiveComponent.js +88 -0
- package/dist/components/responsive/makeResponsiveComponent.js.map +1 -0
- package/dist/components/types.d.ts +5 -0
- package/dist/components/types.d.ts.map +1 -0
- package/dist/components/waiAriaHelpers/typeAhead.d.ts +44 -0
- package/dist/components/waiAriaHelpers/typeAhead.d.ts.map +1 -0
- package/dist/components/waiAriaHelpers/typeAhead.js +75 -0
- package/dist/components/waiAriaHelpers/typeAhead.js.map +1 -0
- package/dist/globalFocus.js +95 -0
- package/dist/globalFocus.js.map +1 -0
- package/dist/hooks/useBodyScrollLock.js +106 -0
- package/dist/hooks/useBodyScrollLock.js.map +1 -0
- package/dist/index.d.ts +69 -1531
- package/dist/index.js +59 -7898
- package/dist/index.js.map +1 -1
- package/dist/objects/ApiaUtil/dialogs/ApiaUtilDialogs.d.ts +18 -0
- package/dist/objects/ApiaUtil/dialogs/ApiaUtilDialogs.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/dialogs/ApiaUtilDialogs.js +116 -0
- package/dist/objects/ApiaUtil/dialogs/ApiaUtilDialogs.js.map +1 -0
- package/dist/objects/ApiaUtil/index.d.ts +27 -0
- package/dist/objects/ApiaUtil/index.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/index.js +76 -0
- package/dist/objects/ApiaUtil/index.js.map +1 -0
- package/dist/objects/ApiaUtil/menu/ApiaUtilMenu.d.ts +24 -0
- package/dist/objects/ApiaUtil/menu/ApiaUtilMenu.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/menu/ApiaUtilMenu.js +110 -0
- package/dist/objects/ApiaUtil/menu/ApiaUtilMenu.js.map +1 -0
- package/dist/objects/ApiaUtil/modals/ApiaUtilModals.d.ts +17 -0
- package/dist/objects/ApiaUtil/modals/ApiaUtilModals.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/modals/ApiaUtilModals.js +111 -0
- package/dist/objects/ApiaUtil/modals/ApiaUtilModals.js.map +1 -0
- package/dist/objects/ApiaUtil/modals/OpenModal.d.ts +8 -0
- package/dist/objects/ApiaUtil/modals/OpenModal.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/modals/OpenModal.js +19 -0
- package/dist/objects/ApiaUtil/modals/OpenModal.js.map +1 -0
- package/dist/objects/ApiaUtil/mouse/ApiaUtilMouse.d.ts +19 -0
- package/dist/objects/ApiaUtil/mouse/ApiaUtilMouse.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/mouse/ApiaUtilMouse.js +26 -0
- package/dist/objects/ApiaUtil/mouse/ApiaUtilMouse.js.map +1 -0
- package/dist/objects/ApiaUtil/notifications/ApiaUtilNotifications.d.ts +14 -0
- package/dist/objects/ApiaUtil/notifications/ApiaUtilNotifications.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/notifications/ApiaUtilNotifications.js +33 -0
- package/dist/objects/ApiaUtil/notifications/ApiaUtilNotifications.js.map +1 -0
- package/dist/objects/ApiaUtil/parsers/ApiaUtilParsers.d.ts +23 -0
- package/dist/objects/ApiaUtil/parsers/ApiaUtilParsers.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/parsers/ApiaUtilParsers.js +79 -0
- package/dist/objects/ApiaUtil/parsers/ApiaUtilParsers.js.map +1 -0
- package/dist/objects/ApiaUtil/tabs/ApiaUtilCurrentTab.d.ts +33 -0
- package/dist/objects/ApiaUtil/tabs/ApiaUtilCurrentTab.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/tabs/ApiaUtilCurrentTab.js +50 -0
- package/dist/objects/ApiaUtil/tabs/ApiaUtilCurrentTab.js.map +1 -0
- package/dist/objects/ApiaUtil/tabs/ApiaUtilTabsController.d.ts +20 -0
- package/dist/objects/ApiaUtil/tabs/ApiaUtilTabsController.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/tabs/ApiaUtilTabsController.js +37 -0
- package/dist/objects/ApiaUtil/tabs/ApiaUtilTabsController.js.map +1 -0
- package/dist/objects/ApiaUtil/tabs/util.js +17 -0
- package/dist/objects/ApiaUtil/tabs/util.js.map +1 -0
- package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltip.d.ts +11 -0
- package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltip.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltip.js +17 -0
- package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltip.js.map +1 -0
- package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltips.d.ts +22 -0
- package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltips.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltips.js +104 -0
- package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltips.js.map +1 -0
- package/dist/objects/ApiaUtil/tooltips/AutomaticTooltip.d.ts +13 -0
- package/dist/objects/ApiaUtil/tooltips/AutomaticTooltip.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/tooltips/AutomaticTooltip.js +79 -0
- package/dist/objects/ApiaUtil/tooltips/AutomaticTooltip.js.map +1 -0
- package/dist/objects/ApiaUtil/tooltips/tooltip/Tooltip.js +62 -0
- package/dist/objects/ApiaUtil/tooltips/tooltip/Tooltip.js.map +1 -0
- package/dist/objects/ApiaUtil/tooltips/tooltip/types.d.ts +117 -0
- package/dist/objects/ApiaUtil/tooltips/tooltip/types.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/tooltips/tooltip/util.js +273 -0
- package/dist/objects/ApiaUtil/tooltips/tooltip/util.js.map +1 -0
- package/dist/objects/ScreenLocker/index.d.ts +37 -0
- package/dist/objects/ScreenLocker/index.d.ts.map +1 -0
- package/dist/objects/ScreenLocker/index.js +92 -0
- package/dist/objects/ScreenLocker/index.js.map +1 -0
- package/dist/tabs/Content.d.ts +7 -0
- package/dist/tabs/Content.d.ts.map +1 -0
- package/dist/tabs/Content.js +52 -0
- package/dist/tabs/Content.js.map +1 -0
- package/dist/tabs/ContextMenu.js +77 -0
- package/dist/tabs/ContextMenu.js.map +1 -0
- package/dist/tabs/Item.js +64 -0
- package/dist/tabs/Item.js.map +1 -0
- package/dist/tabs/Tabs.d.ts +8 -0
- package/dist/tabs/Tabs.d.ts.map +1 -0
- package/dist/tabs/Tabs.js +78 -0
- package/dist/tabs/Tabs.js.map +1 -0
- package/dist/tabs/TabsList.d.ts +8 -0
- package/dist/tabs/TabsList.d.ts.map +1 -0
- package/dist/tabs/TabsList.js +138 -0
- package/dist/tabs/TabsList.js.map +1 -0
- package/dist/tabs/renderers/DefaultTabsLabelRenderer.d.ts +6 -0
- package/dist/tabs/renderers/DefaultTabsLabelRenderer.d.ts.map +1 -0
- package/dist/tabs/renderers/DefaultTabsLabelRenderer.js +71 -0
- package/dist/tabs/renderers/DefaultTabsLabelRenderer.js.map +1 -0
- package/dist/tabs/tabsController.d.ts +41 -0
- package/dist/tabs/tabsController.d.ts.map +1 -0
- package/dist/tabs/tabsController.js +303 -0
- package/dist/tabs/tabsController.js.map +1 -0
- package/dist/tabs/types.d.ts +115 -0
- package/dist/tabs/types.d.ts.map +1 -0
- package/dist/tabs/useTabsList.js +20 -0
- package/dist/tabs/useTabsList.js.map +1 -0
- package/dist/tabs/util.js +11 -0
- package/dist/tabs/util.js.map +1 -0
- package/package.json +29 -39
- package/LICENSE.md +0 -21
- package/README.md +0 -3
- package/cleanDist.json +0 -3
- package/entries.json +0 -1
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { MouseEvent, KeyboardEvent, ReactNode } from 'react';
|
|
3
|
+
import { TIconName } from '@apia/icons';
|
|
4
|
+
import { ISimpleButton } from '../../forms/buttons/SimpleButton.js';
|
|
5
|
+
import '../../forms/DateInput.js';
|
|
6
|
+
import '../../forms/NumberInput.js';
|
|
7
|
+
|
|
8
|
+
interface IAccordionItemButton {
|
|
9
|
+
ariaLabel: string;
|
|
10
|
+
/**
|
|
11
|
+
* Si checked !== undefined => se mostrará un checkbox.
|
|
12
|
+
*/
|
|
13
|
+
checked?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Solamente se utiliza en conjunto con el checkbox y permite evitar que el
|
|
16
|
+
* usuario pueda marcar o desmarcar el checkbox.
|
|
17
|
+
*/
|
|
18
|
+
className?: string;
|
|
19
|
+
disableSelection?: boolean;
|
|
20
|
+
domButtonProps?: ISimpleButton;
|
|
21
|
+
label: string;
|
|
22
|
+
/**
|
|
23
|
+
* Evento que se dispara cuando el usuario hace click en el checkbox o
|
|
24
|
+
* presiona espacio sobre el botón del acordeón.
|
|
25
|
+
*/
|
|
26
|
+
onChange?: (checked: boolean) => unknown;
|
|
27
|
+
onClick?: (ev: MouseEvent) => unknown;
|
|
28
|
+
onUserPressEnter?: (ev: KeyboardEvent) => unknown;
|
|
29
|
+
rightButtons?: ReactNode;
|
|
30
|
+
rightIcons?: TIconName[] | TIconName;
|
|
31
|
+
tabIndex?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Si no se pasa title se usará ariaLabel.
|
|
34
|
+
*/
|
|
35
|
+
title?: string;
|
|
36
|
+
}
|
|
37
|
+
declare const DefaultAccordionItemButton: (props: IAccordionItemButton) => React.JSX.Element;
|
|
38
|
+
|
|
39
|
+
export { DefaultAccordionItemButton, type IAccordionItemButton };
|
|
40
|
+
//# sourceMappingURL=DefaultAccordionItemButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultAccordionItemButton.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { jsxs, jsx } from '@apia/theme/jsx-runtime';
|
|
2
|
+
import { Box } from '@apia/theme';
|
|
3
|
+
import { Icon } from '@apia/icons';
|
|
4
|
+
import { useAccordionContext } from '../context.js';
|
|
5
|
+
import { Checkbox } from './Checkbox.js';
|
|
6
|
+
import { useIsChecked } from './useIsChecked.js';
|
|
7
|
+
import { useCallback } from 'react';
|
|
8
|
+
import { AutoEllipsis } from '../../responsive/AutoEllipsis.js';
|
|
9
|
+
import { SimpleButton } from '../../forms/buttons/SimpleButton.js';
|
|
10
|
+
|
|
11
|
+
const DefaultAccordionItemButton = (props) => {
|
|
12
|
+
const handler = useAccordionContext();
|
|
13
|
+
const { isExpanded } = handler.hooks.useItemStateSelector((props2) => props2);
|
|
14
|
+
const id = handler.hooks.useItemId();
|
|
15
|
+
const [isChecked, setIsChecked] = useIsChecked(props);
|
|
16
|
+
const handleClick = useCallback(
|
|
17
|
+
(ev) => {
|
|
18
|
+
props.onClick?.(ev);
|
|
19
|
+
if (!ev.isDefaultPrevented())
|
|
20
|
+
handler.udpateItem(id, (current) => ({
|
|
21
|
+
isExpanded: !current.isExpanded
|
|
22
|
+
}));
|
|
23
|
+
},
|
|
24
|
+
[handler, id, props]
|
|
25
|
+
);
|
|
26
|
+
const handleKeyDown = useCallback(
|
|
27
|
+
(ev) => {
|
|
28
|
+
if (ev.code === "Enter") {
|
|
29
|
+
props.onUserPressEnter?.(ev);
|
|
30
|
+
if (!ev.isDefaultPrevented() && props.rightButtons)
|
|
31
|
+
handler.udpateItem(id, (current) => ({
|
|
32
|
+
isExpanded: !current.isExpanded
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
[handler, id, props]
|
|
37
|
+
);
|
|
38
|
+
return /* @__PURE__ */ jsxs(
|
|
39
|
+
SimpleButton,
|
|
40
|
+
{
|
|
41
|
+
...props.domButtonProps,
|
|
42
|
+
className: `accordion__item__button ${props.className ?? ""} ${props.domButtonProps?.className ?? ""}`,
|
|
43
|
+
onClick: handleClick,
|
|
44
|
+
onKeyDown: handleKeyDown,
|
|
45
|
+
"aria-expanded": isExpanded,
|
|
46
|
+
"aria-controls": `accordion__${handler.id}__${id}`,
|
|
47
|
+
title: props.title,
|
|
48
|
+
"aria-label": props.ariaLabel,
|
|
49
|
+
tabIndex: props.tabIndex,
|
|
50
|
+
children: [
|
|
51
|
+
/* @__PURE__ */ jsxs(Box, { className: "accordion__item__button__leftGroup", children: [
|
|
52
|
+
props.checked !== void 0 && /* @__PURE__ */ jsx(
|
|
53
|
+
Checkbox,
|
|
54
|
+
{
|
|
55
|
+
checked: isChecked,
|
|
56
|
+
disabled: props.disableSelection,
|
|
57
|
+
onChange: setIsChecked
|
|
58
|
+
}
|
|
59
|
+
),
|
|
60
|
+
/* @__PURE__ */ jsx(Box, { as: "h3", className: "accordion__item__button__label", children: /* @__PURE__ */ jsx(AutoEllipsis, { overrideStyles: () => ({ textAlign: "left" }), children: props.label ?? props.title ?? props.ariaLabel }) })
|
|
61
|
+
] }),
|
|
62
|
+
/* @__PURE__ */ jsxs(Box, { className: "accordion__item__button__rightGroup", children: [
|
|
63
|
+
props.rightButtons,
|
|
64
|
+
/* @__PURE__ */ jsx(
|
|
65
|
+
Icon,
|
|
66
|
+
{
|
|
67
|
+
name: isExpanded ? "ArrowUpThin" : "ArrowDownThin",
|
|
68
|
+
title: props.title ?? props.ariaLabel,
|
|
69
|
+
size: 23
|
|
70
|
+
}
|
|
71
|
+
)
|
|
72
|
+
] })
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
);
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export { DefaultAccordionItemButton };
|
|
79
|
+
//# sourceMappingURL=DefaultAccordionItemButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultAccordionItemButton.js","sources":["../../../../src/components/accordion/defaultElements/DefaultAccordionItemButton.tsx"],"sourcesContent":["import { Box } from '@apia/theme';\nimport { Icon, type TIconName } from '@apia/icons';\nimport { useAccordionContext } from '../context';\nimport { ISimpleButton, SimpleButton } from '../../forms';\nimport { Checkbox } from './Checkbox';\nimport { useIsChecked } from './useIsChecked';\nimport { KeyboardEvent, MouseEvent, ReactNode, useCallback } from 'react';\nimport { AutoEllipsis } from '../../responsive';\n\nexport interface IAccordionItemButton {\n ariaLabel: string;\n /**\n * Si checked !== undefined => se mostrará un checkbox.\n */\n checked?: boolean;\n /**\n * Solamente se utiliza en conjunto con el checkbox y permite evitar que el\n * usuario pueda marcar o desmarcar el checkbox.\n */\n className?: string;\n disableSelection?: boolean;\n domButtonProps?: ISimpleButton;\n label: string;\n /**\n * Evento que se dispara cuando el usuario hace click en el checkbox o\n * presiona espacio sobre el botón del acordeón.\n */\n onChange?: (checked: boolean) => unknown;\n onClick?: (ev: MouseEvent) => unknown;\n onUserPressEnter?: (ev: KeyboardEvent) => unknown;\n rightButtons?: ReactNode;\n rightIcons?: TIconName[] | TIconName;\n tabIndex?: number;\n /**\n * Si no se pasa title se usará ariaLabel.\n */\n title?: string;\n}\n\nexport const DefaultAccordionItemButton = (props: IAccordionItemButton) => {\n const handler = useAccordionContext();\n const { isExpanded } = handler.hooks.useItemStateSelector((props) => props);\n const id = handler.hooks.useItemId();\n const [isChecked, setIsChecked] = useIsChecked(props);\n const handleClick = useCallback(\n (ev: MouseEvent) => {\n props.onClick?.(ev);\n if (!ev.isDefaultPrevented())\n handler.udpateItem(id, (current) => ({\n isExpanded: !current.isExpanded,\n }));\n },\n [handler, id, props],\n );\n const handleKeyDown = useCallback(\n (ev: KeyboardEvent) => {\n if (ev.code === 'Enter') {\n props.onUserPressEnter?.(ev);\n if (!ev.isDefaultPrevented() && props.rightButtons)\n handler.udpateItem(id, (current) => ({\n isExpanded: !current.isExpanded,\n }));\n }\n },\n [handler, id, props],\n );\n\n return (\n <SimpleButton\n {...props.domButtonProps}\n className={`accordion__item__button ${props.className ?? ''} ${\n props.domButtonProps?.className ?? ''\n }`}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n aria-expanded={isExpanded}\n aria-controls={`accordion__${handler.id}__${id}`}\n title={props.title}\n aria-label={props.ariaLabel}\n tabIndex={props.tabIndex}\n >\n <Box className=\"accordion__item__button__leftGroup\">\n {props.checked !== undefined && (\n <Checkbox\n checked={isChecked}\n disabled={props.disableSelection}\n onChange={setIsChecked}\n />\n )}\n <Box as=\"h3\" className=\"accordion__item__button__label\">\n <AutoEllipsis overrideStyles={() => ({ textAlign: 'left' })}>\n {props.label ?? props.title ?? props.ariaLabel}\n </AutoEllipsis>\n </Box>\n </Box>\n <Box className=\"accordion__item__button__rightGroup\">\n {props.rightButtons}\n <Icon\n name={isExpanded ? 'ArrowUpThin' : 'ArrowDownThin'}\n title={props.title ?? props.ariaLabel}\n size={23}\n />\n </Box>\n </SimpleButton>\n );\n};\n"],"names":["props"],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { useRef } from 'react';
|
|
2
|
+
import { useAccordionContext } from '../context.js';
|
|
3
|
+
|
|
4
|
+
function useIsChecked(props) {
|
|
5
|
+
const handler = useAccordionContext();
|
|
6
|
+
const isChecked = handler.hooks.useItemStateSelector(
|
|
7
|
+
(current) => current.isChecked
|
|
8
|
+
);
|
|
9
|
+
const id = handler.hooks.useItemId();
|
|
10
|
+
const previousPropsChecked = useRef(props.checked);
|
|
11
|
+
if (previousPropsChecked.current !== props.checked && props.checked !== void 0) {
|
|
12
|
+
previousPropsChecked.current = props.checked;
|
|
13
|
+
handler.udpateItem(id, { isChecked: props.checked });
|
|
14
|
+
}
|
|
15
|
+
return [
|
|
16
|
+
isChecked,
|
|
17
|
+
(isChecked2) => {
|
|
18
|
+
handler.udpateItem(id, { isChecked: isChecked2 });
|
|
19
|
+
props.onChange?.(isChecked2);
|
|
20
|
+
}
|
|
21
|
+
];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { useIsChecked };
|
|
25
|
+
//# sourceMappingURL=useIsChecked.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIsChecked.js","sources":["../../../../src/components/accordion/defaultElements/useIsChecked.ts"],"sourcesContent":["import { useRef } from 'react';\nimport { useAccordionContext } from '../context';\nimport { IAccordionItemButton } from './DefaultAccordionItemButton';\n\nexport function useIsChecked(\n props: IAccordionItemButton,\n): [boolean, (isChecked: boolean) => void] {\n const handler = useAccordionContext();\n const isChecked = handler.hooks.useItemStateSelector(\n (current) => current.isChecked,\n );\n const id = handler.hooks.useItemId();\n\n const previousPropsChecked = useRef(props.checked);\n if (\n previousPropsChecked.current !== props.checked &&\n props.checked !== undefined\n ) {\n previousPropsChecked.current = props.checked;\n handler.udpateItem(id, { isChecked: props.checked });\n }\n\n return [\n isChecked,\n (isChecked) => {\n handler.udpateItem(id, { isChecked });\n props.onChange?.(isChecked);\n },\n ];\n}\n"],"names":["isChecked"],"mappings":";;;AAIO,SAAS,aACd,KACyC,EAAA;AACzC,EAAA,MAAM,UAAU,mBAAoB,EAAA,CAAA;AACpC,EAAM,MAAA,SAAA,GAAY,QAAQ,KAAM,CAAA,oBAAA;AAAA,IAC9B,CAAC,YAAY,OAAQ,CAAA,SAAA;AAAA,GACvB,CAAA;AACA,EAAM,MAAA,EAAA,GAAK,OAAQ,CAAA,KAAA,CAAM,SAAU,EAAA,CAAA;AAEnC,EAAM,MAAA,oBAAA,GAAuB,MAAO,CAAA,KAAA,CAAM,OAAO,CAAA,CAAA;AACjD,EAAA,IACE,qBAAqB,OAAY,KAAA,KAAA,CAAM,OACvC,IAAA,KAAA,CAAM,YAAY,KAClB,CAAA,EAAA;AACA,IAAA,oBAAA,CAAqB,UAAU,KAAM,CAAA,OAAA,CAAA;AACrC,IAAA,OAAA,CAAQ,WAAW,EAAI,EAAA,EAAE,SAAW,EAAA,KAAA,CAAM,SAAS,CAAA,CAAA;AAAA,GACrD;AAEA,EAAO,OAAA;AAAA,IACL,SAAA;AAAA,IACA,CAACA,UAAc,KAAA;AACb,MAAA,OAAA,CAAQ,UAAW,CAAA,EAAA,EAAI,EAAE,SAAA,EAAAA,YAAW,CAAA,CAAA;AACpC,MAAA,KAAA,CAAM,WAAWA,UAAS,CAAA,CAAA;AAAA,KAC5B;AAAA,GACF,CAAA;AACF;;;;"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
import { TId } from '@apia/util';
|
|
4
|
+
import { TItemState, TItemStateListener, TPropsListener } from './types.js';
|
|
5
|
+
import { IAccordionProps } from './Accordion.js';
|
|
6
|
+
|
|
7
|
+
type TSelectionComparator<T> = (prev: T, next: T) => boolean;
|
|
8
|
+
type TItemUpdater = Partial<TItemState> | ((currentProps: TItemState) => Partial<TItemState>);
|
|
9
|
+
declare class AccordionHandler {
|
|
10
|
+
id: string;
|
|
11
|
+
props: IAccordionProps;
|
|
12
|
+
itemsState: Record<TId, TItemState>;
|
|
13
|
+
itemsStateListeners: Record<TId, TItemStateListener[]>;
|
|
14
|
+
propsListeners: TPropsListener[];
|
|
15
|
+
constructor(id: string, props: IAccordionProps);
|
|
16
|
+
registerItem(itemId: TId, initialState: TItemState): void;
|
|
17
|
+
toggleItem(itemId: TId, isExpanded: boolean): void;
|
|
18
|
+
unregisterItem(itemId: TId): void;
|
|
19
|
+
/**
|
|
20
|
+
* Permite actualizar parcialmente el estado de un item
|
|
21
|
+
*/
|
|
22
|
+
udpateItem(itemId: TId, updater: TItemUpdater): void;
|
|
23
|
+
updateProps(props: IAccordionProps): void;
|
|
24
|
+
hooks: {
|
|
25
|
+
useAccordionContextProvider: () => ({ children }: {
|
|
26
|
+
children: ReactNode;
|
|
27
|
+
}) => React.JSX.Element;
|
|
28
|
+
useItemContextProvider: (itemId: TId) => ({ children }: {
|
|
29
|
+
children: ReactNode;
|
|
30
|
+
}) => React.JSX.Element;
|
|
31
|
+
useItemId: () => TId;
|
|
32
|
+
useItemStateSelector: <T>(selector: (props: TItemState) => T, comparator?: TSelectionComparator<T>) => T;
|
|
33
|
+
useItemStateUpdate: (cb: TItemStateListener) => void;
|
|
34
|
+
usePropsSelector: <T_1>(selector: (props: IAccordionProps) => T_1, comparator?: TSelectionComparator<T_1>) => T_1;
|
|
35
|
+
usePropsUpdate: (cb: TPropsListener) => void;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export { AccordionHandler };
|
|
40
|
+
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { jsx } from '@apia/theme/jsx-runtime';
|
|
2
|
+
import { useMemo, useContext, useEffect, useState } from 'react';
|
|
3
|
+
import { AccordionContext, AccordionItemContext } from './context.js';
|
|
4
|
+
import { shallowEqual } from '@apia/store';
|
|
5
|
+
|
|
6
|
+
var __defProp = Object.defineProperty;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __publicField = (obj, key, value) => {
|
|
9
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
10
|
+
return value;
|
|
11
|
+
};
|
|
12
|
+
function makeItemStateSelectorHook(handler) {
|
|
13
|
+
return function useItemStateSelector(selector, comparator = shallowEqual) {
|
|
14
|
+
const id = handler.hooks.useItemId();
|
|
15
|
+
const [state, setState] = useState(selector(handler.itemsState[id]));
|
|
16
|
+
handler.hooks.useItemStateUpdate((props) => {
|
|
17
|
+
const newState = selector(props);
|
|
18
|
+
if (!comparator(state, newState)) {
|
|
19
|
+
setState(newState);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
return state;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function makePropsSelectorHook(handler) {
|
|
26
|
+
return function usePropsSelector(selector, comparator = shallowEqual) {
|
|
27
|
+
const [state, setState] = useState(selector(handler.props));
|
|
28
|
+
handler.hooks.usePropsUpdate((props) => {
|
|
29
|
+
const newState = selector(props);
|
|
30
|
+
if (!comparator(state, newState)) {
|
|
31
|
+
setState(newState);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return state;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
class AccordionHandler {
|
|
38
|
+
constructor(id, props) {
|
|
39
|
+
this.id = id;
|
|
40
|
+
this.props = props;
|
|
41
|
+
__publicField(this, "itemsState", {});
|
|
42
|
+
__publicField(this, "itemsStateListeners", {});
|
|
43
|
+
__publicField(this, "propsListeners", []);
|
|
44
|
+
__publicField(this, "hooks", {
|
|
45
|
+
useAccordionContextProvider: () => {
|
|
46
|
+
const Provider = useMemo(
|
|
47
|
+
() => ({ children }) => /* @__PURE__ */ jsx(AccordionContext.Provider, { value: this, children }),
|
|
48
|
+
[]
|
|
49
|
+
);
|
|
50
|
+
return Provider;
|
|
51
|
+
},
|
|
52
|
+
useItemContextProvider: (itemId) => {
|
|
53
|
+
const Provider = useMemo(
|
|
54
|
+
() => ({ children }) => /* @__PURE__ */ jsx(AccordionItemContext.Provider, { value: itemId, children }),
|
|
55
|
+
[itemId]
|
|
56
|
+
);
|
|
57
|
+
return Provider;
|
|
58
|
+
},
|
|
59
|
+
useItemId: () => {
|
|
60
|
+
const id = useContext(AccordionItemContext);
|
|
61
|
+
if (id === null)
|
|
62
|
+
throw new Error("There is no AccordionItemContext");
|
|
63
|
+
return id;
|
|
64
|
+
},
|
|
65
|
+
useItemStateSelector: makeItemStateSelectorHook(this),
|
|
66
|
+
useItemStateUpdate: (cb) => {
|
|
67
|
+
const itemId = this.hooks.useItemId();
|
|
68
|
+
useEffect(() => {
|
|
69
|
+
if (!this.itemsStateListeners[itemId])
|
|
70
|
+
this.itemsStateListeners[itemId] = [];
|
|
71
|
+
this.itemsStateListeners[itemId].push(cb);
|
|
72
|
+
return () => {
|
|
73
|
+
this.itemsStateListeners[itemId] = this.itemsStateListeners[itemId].filter((current) => current != cb);
|
|
74
|
+
};
|
|
75
|
+
}, [cb, itemId]);
|
|
76
|
+
},
|
|
77
|
+
usePropsSelector: makePropsSelectorHook(this),
|
|
78
|
+
usePropsUpdate: (cb) => {
|
|
79
|
+
useEffect(() => {
|
|
80
|
+
this.propsListeners.push(cb);
|
|
81
|
+
return () => {
|
|
82
|
+
this.propsListeners = this.propsListeners.filter(
|
|
83
|
+
(current) => current !== cb
|
|
84
|
+
);
|
|
85
|
+
};
|
|
86
|
+
}, [cb]);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
registerItem(itemId, initialState) {
|
|
91
|
+
if (!this.itemsState[itemId])
|
|
92
|
+
this.itemsState[itemId] = initialState;
|
|
93
|
+
}
|
|
94
|
+
toggleItem(itemId, isExpanded) {
|
|
95
|
+
this.itemsState[itemId].isExpanded = isExpanded;
|
|
96
|
+
}
|
|
97
|
+
unregisterItem(itemId) {
|
|
98
|
+
delete this.itemsState[itemId];
|
|
99
|
+
delete this.itemsStateListeners[itemId];
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Permite actualizar parcialmente el estado de un item
|
|
103
|
+
*/
|
|
104
|
+
udpateItem(itemId, updater) {
|
|
105
|
+
const newProps = updater instanceof Function ? updater(this.itemsState[itemId]) : updater;
|
|
106
|
+
Object.assign(this.itemsState[itemId], newProps);
|
|
107
|
+
this.itemsStateListeners[itemId].forEach(
|
|
108
|
+
(current) => current(this.itemsState[itemId])
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
updateProps(props) {
|
|
112
|
+
this.props = props;
|
|
113
|
+
this.propsListeners.forEach((current) => current(props));
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export { AccordionHandler };
|
|
118
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","sources":["../../../src/components/accordion/handler.tsx"],"sourcesContent":["import { TId } from '@apia/util';\nimport { ReactNode, useContext, useEffect, useMemo, useState } from 'react';\nimport { AccordionContext, AccordionItemContext } from './context';\nimport { TItemState, TItemStateListener, TPropsListener } from './types';\nimport { shallowEqual } from '@apia/store';\nimport { IAccordionProps } from './Accordion';\n\ntype TSelectionComparator<T> = (prev: T, next: T) => boolean;\n\ntype TItemUpdater =\n | Partial<TItemState>\n | ((currentProps: TItemState) => Partial<TItemState>);\n\nfunction makeItemStateSelectorHook(handler: AccordionHandler) {\n return function useItemStateSelector<T>(\n selector: (props: TItemState) => T,\n comparator: TSelectionComparator<T> = shallowEqual,\n ) {\n const id = handler.hooks.useItemId();\n const [state, setState] = useState<T>(selector(handler.itemsState[id]));\n\n handler.hooks.useItemStateUpdate((props) => {\n const newState = selector(props);\n if (!comparator(state, newState)) {\n setState(newState);\n }\n });\n\n return state;\n };\n}\n\nfunction makePropsSelectorHook(handler: AccordionHandler) {\n return function usePropsSelector<T>(\n selector: (props: IAccordionProps) => T,\n comparator: TSelectionComparator<T> = shallowEqual,\n ) {\n const [state, setState] = useState<T>(selector(handler.props));\n\n handler.hooks.usePropsUpdate((props) => {\n const newState = selector(props);\n if (!comparator(state, newState)) {\n setState(newState);\n }\n });\n\n return state;\n };\n}\n\nexport class AccordionHandler {\n itemsState: Record<TId, TItemState> = {};\n itemsStateListeners: Record<TId, TItemStateListener[]> = {};\n\n propsListeners: TPropsListener[] = [];\n\n constructor(public id: string, public props: IAccordionProps) {}\n\n registerItem(itemId: TId, initialState: TItemState) {\n if (!this.itemsState[itemId]) this.itemsState[itemId] = initialState;\n }\n\n toggleItem(itemId: TId, isExpanded: boolean) {\n this.itemsState[itemId].isExpanded = isExpanded;\n }\n\n unregisterItem(itemId: TId) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.itemsState[itemId];\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.itemsStateListeners[itemId];\n }\n\n /**\n * Permite actualizar parcialmente el estado de un item\n */\n udpateItem(itemId: TId, updater: TItemUpdater) {\n const newProps =\n updater instanceof Function ? updater(this.itemsState[itemId]) : updater;\n\n Object.assign(this.itemsState[itemId], newProps);\n this.itemsStateListeners[itemId].forEach((current) =>\n current(this.itemsState[itemId]),\n );\n }\n\n updateProps(props: IAccordionProps) {\n this.props = props;\n this.propsListeners.forEach((current) => current(props));\n }\n\n hooks = {\n useAccordionContextProvider: () => {\n const Provider = useMemo(\n () =>\n ({ children }: { children: ReactNode }) =>\n (\n <AccordionContext.Provider value={this}>\n {children}\n </AccordionContext.Provider>\n ),\n [],\n );\n return Provider;\n },\n useItemContextProvider: (itemId: TId) => {\n const Provider = useMemo(\n () =>\n ({ children }: { children: ReactNode }) =>\n (\n <AccordionItemContext.Provider value={itemId}>\n {children}\n </AccordionItemContext.Provider>\n ),\n [itemId],\n );\n return Provider;\n },\n useItemId: () => {\n const id = useContext(AccordionItemContext);\n if (id === null) throw new Error('There is no AccordionItemContext');\n return id;\n },\n useItemStateSelector: makeItemStateSelectorHook(this),\n useItemStateUpdate: (cb: TItemStateListener) => {\n const itemId = this.hooks.useItemId();\n useEffect(() => {\n if (!this.itemsStateListeners[itemId])\n this.itemsStateListeners[itemId] = [];\n this.itemsStateListeners[itemId].push(cb);\n\n return () => {\n this.itemsStateListeners[itemId] = this.itemsStateListeners[\n itemId\n ].filter((current) => current != cb);\n };\n }, [cb, itemId]);\n },\n usePropsSelector: makePropsSelectorHook(this),\n usePropsUpdate: (cb: TPropsListener) => {\n useEffect(() => {\n this.propsListeners.push(cb);\n return () => {\n this.propsListeners = this.propsListeners.filter(\n (current) => current !== cb,\n );\n };\n }, [cb]);\n },\n };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IAccordionProps } from './Accordion.js';
|
|
2
|
+
|
|
3
|
+
type TItemState = {
|
|
4
|
+
isChecked: boolean;
|
|
5
|
+
isExpanded: boolean;
|
|
6
|
+
};
|
|
7
|
+
type TItemStateListener = (state: TItemState) => unknown;
|
|
8
|
+
type TPropsListener = (props: IAccordionProps) => unknown;
|
|
9
|
+
|
|
10
|
+
export type { TItemState, TItemStateListener, TPropsListener };
|
|
11
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { jsx } from '@apia/theme/jsx-runtime';
|
|
2
|
+
import { useUpdateEffect } from 'ahooks';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { DateInput } from '../forms/DateInput.js';
|
|
5
|
+
import { getFieldErrorStyles } from '../forms/util/style.js';
|
|
6
|
+
|
|
7
|
+
const NoMemoApiaDateFilter = ({ filter, onChange, onBlur, onPressEnter }, ref) => {
|
|
8
|
+
const [value, setValue] = React.useState(String(filter.currentValue));
|
|
9
|
+
const [lastDispatchedValue, setLastDispatchedValue] = React.useState(
|
|
10
|
+
String(filter.currentValue)
|
|
11
|
+
);
|
|
12
|
+
const handleClick = React.useCallback((ev) => {
|
|
13
|
+
ev.stopPropagation();
|
|
14
|
+
}, []);
|
|
15
|
+
useUpdateEffect(() => {
|
|
16
|
+
setValue(filter.currentValue);
|
|
17
|
+
}, [filter.currentValue]);
|
|
18
|
+
return /* @__PURE__ */ jsx(
|
|
19
|
+
DateInput,
|
|
20
|
+
{
|
|
21
|
+
value,
|
|
22
|
+
sx: getFieldErrorStyles(!filter.error),
|
|
23
|
+
"aria-label": filter.toolTip,
|
|
24
|
+
ref,
|
|
25
|
+
placeholder: filter.placeholder,
|
|
26
|
+
onChange: (ev) => {
|
|
27
|
+
if (onChange) {
|
|
28
|
+
const result = onChange(String(ev));
|
|
29
|
+
if (result === true) {
|
|
30
|
+
setValue(ev);
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
return false;
|
|
36
|
+
},
|
|
37
|
+
onClick: handleClick,
|
|
38
|
+
onBlur: () => {
|
|
39
|
+
if (value !== lastDispatchedValue && onBlur) {
|
|
40
|
+
setLastDispatchedValue(value);
|
|
41
|
+
setValue(value);
|
|
42
|
+
onBlur(value);
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
onKeyDown: (ev) => {
|
|
46
|
+
if (ev.key.toLowerCase() === "enter" && onPressEnter) {
|
|
47
|
+
setLastDispatchedValue(value);
|
|
48
|
+
onPressEnter(value);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
};
|
|
54
|
+
const ApiaDateFilter = React.forwardRef(NoMemoApiaDateFilter);
|
|
55
|
+
|
|
56
|
+
export { ApiaDateFilter };
|
|
57
|
+
//# sourceMappingURL=ApiaDateFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiaDateFilter.js","sources":["../../../src/components/apia/ApiaDateFilter.tsx"],"sourcesContent":["import { useUpdateEffect } from 'ahooks';\nimport * as React from 'react';\nimport { IApiaFilter } from './ApiaFilter';\nimport { DateInput, getFieldErrorStyles } from '../forms';\n\nconst NoMemoApiaDateFilter = (\n { filter, onChange, onBlur, onPressEnter }: IApiaFilter,\n ref: React.Ref<HTMLInputElement | HTMLSelectElement>,\n) => {\n const [value, setValue] = React.useState<string>(String(filter.currentValue));\n const [lastDispatchedValue, setLastDispatchedValue] = React.useState<string>(\n String(filter.currentValue),\n );\n\n const handleClick = React.useCallback((ev: React.MouseEvent) => {\n ev.stopPropagation();\n }, []);\n\n useUpdateEffect(() => {\n setValue(filter.currentValue as string);\n }, [filter.currentValue]);\n\n return (\n <DateInput\n value={value}\n sx={getFieldErrorStyles(!filter.error)}\n aria-label={filter.toolTip}\n ref={ref as React.Ref<HTMLInputElement>}\n placeholder={filter.placeholder}\n onChange={(ev) => {\n if (onChange) {\n const result = onChange(String(ev));\n if (result === true) {\n setValue(ev);\n return true;\n }\n return result as string | false | void;\n }\n return false;\n }}\n onClick={handleClick}\n onBlur={() => {\n if (value !== lastDispatchedValue && onBlur) {\n setLastDispatchedValue(value);\n setValue(value);\n onBlur(value);\n }\n }}\n onKeyDown={(ev) => {\n if (ev.key.toLowerCase() === 'enter' && onPressEnter) {\n setLastDispatchedValue(value);\n onPressEnter(value);\n }\n }}\n />\n );\n};\n\nexport const ApiaDateFilter = React.forwardRef(NoMemoApiaDateFilter);\n"],"names":[],"mappings":";;;;;;AAKA,MAAM,oBAAA,GAAuB,CAC3B,EAAE,MAAA,EAAQ,UAAU,MAAQ,EAAA,YAAA,IAC5B,GACG,KAAA;AACH,EAAM,MAAA,CAAC,OAAO,QAAQ,CAAA,GAAI,MAAM,QAAiB,CAAA,MAAA,CAAO,MAAO,CAAA,YAAY,CAAC,CAAA,CAAA;AAC5E,EAAA,MAAM,CAAC,mBAAA,EAAqB,sBAAsB,CAAA,GAAI,KAAM,CAAA,QAAA;AAAA,IAC1D,MAAA,CAAO,OAAO,YAAY,CAAA;AAAA,GAC5B,CAAA;AAEA,EAAA,MAAM,WAAc,GAAA,KAAA,CAAM,WAAY,CAAA,CAAC,EAAyB,KAAA;AAC9D,IAAA,EAAA,CAAG,eAAgB,EAAA,CAAA;AAAA,GACrB,EAAG,EAAE,CAAA,CAAA;AAEL,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAA,QAAA,CAAS,OAAO,YAAsB,CAAA,CAAA;AAAA,GACrC,EAAA,CAAC,MAAO,CAAA,YAAY,CAAC,CAAA,CAAA;AAExB,EACE,uBAAA,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,EAAI,EAAA,mBAAA,CAAoB,CAAC,MAAA,CAAO,KAAK,CAAA;AAAA,MACrC,cAAY,MAAO,CAAA,OAAA;AAAA,MACnB,GAAA;AAAA,MACA,aAAa,MAAO,CAAA,WAAA;AAAA,MACpB,QAAA,EAAU,CAAC,EAAO,KAAA;AAChB,QAAA,IAAI,QAAU,EAAA;AACZ,UAAA,MAAM,MAAS,GAAA,QAAA,CAAS,MAAO,CAAA,EAAE,CAAC,CAAA,CAAA;AAClC,UAAA,IAAI,WAAW,IAAM,EAAA;AACnB,YAAA,QAAA,CAAS,EAAE,CAAA,CAAA;AACX,YAAO,OAAA,IAAA,CAAA;AAAA,WACT;AACA,UAAO,OAAA,MAAA,CAAA;AAAA,SACT;AACA,QAAO,OAAA,KAAA,CAAA;AAAA,OACT;AAAA,MACA,OAAS,EAAA,WAAA;AAAA,MACT,QAAQ,MAAM;AACZ,QAAI,IAAA,KAAA,KAAU,uBAAuB,MAAQ,EAAA;AAC3C,UAAA,sBAAA,CAAuB,KAAK,CAAA,CAAA;AAC5B,UAAA,QAAA,CAAS,KAAK,CAAA,CAAA;AACd,UAAA,MAAA,CAAO,KAAK,CAAA,CAAA;AAAA,SACd;AAAA,OACF;AAAA,MACA,SAAA,EAAW,CAAC,EAAO,KAAA;AACjB,QAAA,IAAI,EAAG,CAAA,GAAA,CAAI,WAAY,EAAA,KAAM,WAAW,YAAc,EAAA;AACpD,UAAA,sBAAA,CAAuB,KAAK,CAAA,CAAA;AAC5B,UAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAAA,SACpB;AAAA,OACF;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ,CAAA,CAAA;AAEa,MAAA,cAAA,GAAiB,KAAM,CAAA,UAAA,CAAW,oBAAoB;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TApiaFilter, TApiaFilterValue } from '@apia/util';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
|
|
4
|
+
interface IApiaFilter {
|
|
5
|
+
filter: TApiaFilter;
|
|
6
|
+
onBlur?: (ev: TApiaFilterValue) => void;
|
|
7
|
+
onChange?: (ev: TApiaFilterValue) => void | boolean | string | Promise<boolean | string>;
|
|
8
|
+
onPressEnter?: (ev: TApiaFilterValue) => void;
|
|
9
|
+
}
|
|
10
|
+
declare const ApiaFilter: React.MemoExoticComponent<React.ForwardRefExoticComponent<IApiaFilter & React.RefAttributes<HTMLInputElement | HTMLSelectElement>>>;
|
|
11
|
+
|
|
12
|
+
export { ApiaFilter, type IApiaFilter };
|
|
13
|
+
//# sourceMappingURL=ApiaFilter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiaFilter.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { jsx } from '@apia/theme/jsx-runtime';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { getVariant, Select, Input } from '@apia/theme';
|
|
4
|
+
import { ApiaDateFilter } from './ApiaDateFilter.js';
|
|
5
|
+
import { NumberInput } from '../forms/NumberInput.js';
|
|
6
|
+
import { getFieldErrorStyles } from '../forms/util/style.js';
|
|
7
|
+
|
|
8
|
+
const NoMemoApiaFilter = ({ filter, onChange, onBlur, onPressEnter }, ref) => {
|
|
9
|
+
const [value, setValue] = React.useState(
|
|
10
|
+
filter.currentValue ?? ""
|
|
11
|
+
);
|
|
12
|
+
const handleClick = React.useCallback((ev) => {
|
|
13
|
+
ev.stopPropagation();
|
|
14
|
+
}, []);
|
|
15
|
+
const [lastEmittedValue, setLastEmittedValue] = React.useState(filter.currentValue);
|
|
16
|
+
const filterCurrentValue = filter?.currentValue;
|
|
17
|
+
React.useEffect(() => {
|
|
18
|
+
if (filterCurrentValue === "") {
|
|
19
|
+
setValue(String(filterCurrentValue));
|
|
20
|
+
setLastEmittedValue(String(filterCurrentValue));
|
|
21
|
+
}
|
|
22
|
+
}, [filter?.deleteFiltersTimestamp]);
|
|
23
|
+
if (filter) {
|
|
24
|
+
const handleChange = (ev) => {
|
|
25
|
+
if (onChange && onChange(String(ev.target.value)) !== false || !onChange)
|
|
26
|
+
setValue(String(ev.target.value));
|
|
27
|
+
};
|
|
28
|
+
const handleNumberChange = (ev) => {
|
|
29
|
+
if (onChange && onChange(String(ev.value)) !== false || !onChange)
|
|
30
|
+
setValue(String(ev.value));
|
|
31
|
+
};
|
|
32
|
+
const handleBlur = (ev) => {
|
|
33
|
+
if (onBlur && lastEmittedValue !== value) {
|
|
34
|
+
setLastEmittedValue(value);
|
|
35
|
+
onBlur(ev.target.value);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const sortedOptions = filter.sortCombo ? [...filter.options ?? []].sort((a, b) => a.label > b.label ? 1 : -1) : filter.options;
|
|
39
|
+
const options = sortedOptions?.map((option) => {
|
|
40
|
+
return /* @__PURE__ */ jsx("option", { value: option.value, children: option.label }, option.value ?? option.label ?? " ");
|
|
41
|
+
});
|
|
42
|
+
if (filter.type === "date" || filter.type === "D")
|
|
43
|
+
return /* @__PURE__ */ jsx(
|
|
44
|
+
ApiaDateFilter,
|
|
45
|
+
{
|
|
46
|
+
filter,
|
|
47
|
+
onChange,
|
|
48
|
+
onBlur,
|
|
49
|
+
onPressEnter,
|
|
50
|
+
ref
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
if (filter.type === "apiaNumber") {
|
|
54
|
+
return /* @__PURE__ */ jsx(
|
|
55
|
+
NumberInput,
|
|
56
|
+
{
|
|
57
|
+
"aria-readonly": filter.readonly,
|
|
58
|
+
readOnly: filter.readonly,
|
|
59
|
+
value,
|
|
60
|
+
placeholder: filter.placeholder,
|
|
61
|
+
onChange: handleNumberChange,
|
|
62
|
+
onKeyDown: (ev) => {
|
|
63
|
+
if (ev.key.toLowerCase() === "enter") {
|
|
64
|
+
handleBlur(ev);
|
|
65
|
+
if (onPressEnter)
|
|
66
|
+
onPressEnter(ev.target.value);
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
onClick: handleClick,
|
|
70
|
+
...getVariant("input"),
|
|
71
|
+
className: `filter ${filter.error ? "requiredFilter__Border" : ""}`,
|
|
72
|
+
title: filter.title ?? filter.toolTip ?? String(filter.id),
|
|
73
|
+
ref,
|
|
74
|
+
"aria-label": filter.title ?? filter.toolTip ?? String(filter.id),
|
|
75
|
+
name: filter.id
|
|
76
|
+
}
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
return filter.options ? /* @__PURE__ */ jsx(
|
|
80
|
+
Select,
|
|
81
|
+
{
|
|
82
|
+
"aria-readonly": filter.readonly,
|
|
83
|
+
disabled: filter.readonly,
|
|
84
|
+
onChange: handleChange,
|
|
85
|
+
onBlur: handleBlur,
|
|
86
|
+
value,
|
|
87
|
+
className: `"filter" ${filter.error ? "requiredFilter__Border" : ""}`,
|
|
88
|
+
title: filter.title ?? filter.toolTip ?? String(filter.id),
|
|
89
|
+
ref,
|
|
90
|
+
"aria-label": filter.title ?? filter.toolTip ?? String(filter.id),
|
|
91
|
+
onClick: handleClick,
|
|
92
|
+
sx: getFieldErrorStyles(!filter.error),
|
|
93
|
+
name: filter.id,
|
|
94
|
+
children: options
|
|
95
|
+
}
|
|
96
|
+
) : /* @__PURE__ */ jsx(
|
|
97
|
+
Input,
|
|
98
|
+
{
|
|
99
|
+
"aria-readonly": filter.readonly,
|
|
100
|
+
readOnly: filter.readonly,
|
|
101
|
+
value,
|
|
102
|
+
type: (filter.type === "N" ? "number" : filter.type) ?? "text",
|
|
103
|
+
placeholder: filter.placeholder,
|
|
104
|
+
onChange: handleChange,
|
|
105
|
+
onBlur: handleBlur,
|
|
106
|
+
onKeyDown: (ev) => {
|
|
107
|
+
if (ev.key.toLowerCase() === "enter") {
|
|
108
|
+
handleBlur(ev);
|
|
109
|
+
if (onPressEnter)
|
|
110
|
+
onPressEnter(ev.target.value);
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
onClick: handleClick,
|
|
114
|
+
...getVariant("input"),
|
|
115
|
+
className: `filter ${filter.error ? "requiredFilter__Border" : ""}`,
|
|
116
|
+
title: filter.title ?? filter.toolTip ?? String(filter.id),
|
|
117
|
+
ref,
|
|
118
|
+
"aria-label": filter.title ?? filter.toolTip ?? String(filter.id),
|
|
119
|
+
name: filter.id
|
|
120
|
+
}
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
return null;
|
|
124
|
+
};
|
|
125
|
+
const ApiaFilter = React.memo(React.forwardRef(NoMemoApiaFilter));
|
|
126
|
+
|
|
127
|
+
export { ApiaFilter };
|
|
128
|
+
//# sourceMappingURL=ApiaFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiaFilter.js","sources":["../../../src/components/apia/ApiaFilter.tsx"],"sourcesContent":["import { TApiaFilter, TApiaFilterValue } from '@apia/util';\nimport { ForwardedRef } from 'react';\nimport * as React from 'react';\nimport { Input, Select } from '@apia/theme';\nimport { getVariant } from '@apia/theme';\nimport {\n TNumberInputChangeEvent,\n NumberInput,\n getFieldErrorStyles,\n} from '../forms';\nimport { ApiaDateFilter } from './ApiaDateFilter';\n\nexport interface IApiaFilter {\n filter: TApiaFilter;\n onBlur?: (ev: TApiaFilterValue) => void;\n onChange?: (\n ev: TApiaFilterValue,\n ) => void | boolean | string | Promise<boolean | string>;\n onPressEnter?: (ev: TApiaFilterValue) => void;\n}\n\nconst NoMemoApiaFilter = (\n { filter, onChange, onBlur, onPressEnter }: IApiaFilter,\n ref: React.Ref<HTMLInputElement | HTMLSelectElement>,\n) => {\n const [value, setValue] = React.useState<TApiaFilterValue>(\n filter.currentValue ?? '',\n );\n\n const handleClick = React.useCallback((ev: React.MouseEvent) => {\n ev.stopPropagation();\n }, []);\n\n const [lastEmittedValue, setLastEmittedValue] =\n React.useState<TApiaFilterValue>(filter.currentValue);\n\n const filterCurrentValue = filter?.currentValue;\n React.useEffect(() => {\n if (filterCurrentValue === '') {\n setValue(String(filterCurrentValue));\n setLastEmittedValue(String(filterCurrentValue));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [filter?.deleteFiltersTimestamp]);\n\n if (filter) {\n const handleChange = (\n ev: React.ChangeEvent<HTMLInputElement | HTMLSelectElement>,\n ) => {\n if (\n (onChange && onChange(String(ev.target.value)) !== false) ||\n !onChange\n )\n setValue(String(ev.target.value));\n };\n const handleNumberChange = (ev: TNumberInputChangeEvent) => {\n if ((onChange && onChange(String(ev.value)) !== false) || !onChange)\n setValue(String(ev.value));\n };\n const handleBlur = (\n ev:\n | React.ChangeEvent<HTMLInputElement | HTMLSelectElement>\n | React.KeyboardEvent,\n ) => {\n if (onBlur && lastEmittedValue !== value) {\n setLastEmittedValue(value);\n onBlur((ev.target as HTMLInputElement).value);\n }\n };\n\n const sortedOptions = filter.sortCombo\n ? [...(filter.options ?? [])].sort((a, b) => (a.label > b.label ? 1 : -1))\n : filter.options;\n const options = sortedOptions?.map((option) => {\n return (\n <option value={option.value} key={option.value ?? option.label ?? ' '}>\n {option.label}\n </option>\n );\n });\n\n if (filter.type === 'date' || filter.type === 'D')\n return (\n <ApiaDateFilter\n filter={filter}\n onChange={onChange}\n onBlur={onBlur}\n onPressEnter={onPressEnter}\n ref={ref}\n />\n );\n\n if (filter.type === 'apiaNumber') {\n return (\n <NumberInput\n aria-readonly={filter.readonly}\n readOnly={filter.readonly}\n value={value as string}\n placeholder={filter.placeholder}\n onChange={handleNumberChange}\n onKeyDown={(ev) => {\n if (ev.key.toLowerCase() === 'enter') {\n handleBlur(ev);\n if (onPressEnter)\n onPressEnter((ev.target as HTMLInputElement).value);\n }\n }}\n onClick={handleClick}\n {...getVariant('input')}\n className={`filter ${filter.error ? 'requiredFilter__Border' : ''}`}\n title={filter.title ?? filter.toolTip ?? String(filter.id)}\n ref={ref as ForwardedRef<HTMLInputElement>}\n aria-label={filter.title ?? filter.toolTip ?? String(filter.id)}\n name={filter.id as string}\n />\n );\n }\n\n return filter.options ? (\n <Select\n aria-readonly={filter.readonly}\n disabled={filter.readonly}\n onChange={handleChange}\n onBlur={handleBlur}\n value={value}\n className={`\"filter\" ${filter.error ? 'requiredFilter__Border' : ''}`}\n title={filter.title ?? filter.toolTip ?? String(filter.id)}\n ref={ref as ForwardedRef<HTMLSelectElement>}\n aria-label={filter.title ?? filter.toolTip ?? String(filter.id)}\n onClick={handleClick}\n sx={getFieldErrorStyles(!filter.error)}\n name={filter.id as string}\n >\n {options}\n </Select>\n ) : (\n <Input\n aria-readonly={filter.readonly}\n readOnly={filter.readonly}\n value={value}\n type={(filter.type === 'N' ? 'number' : filter.type) ?? 'text'}\n placeholder={filter.placeholder}\n onChange={handleChange}\n onBlur={handleBlur}\n onKeyDown={(ev) => {\n if (ev.key.toLowerCase() === 'enter') {\n handleBlur(ev);\n if (onPressEnter)\n onPressEnter((ev.target as HTMLInputElement).value);\n }\n }}\n onClick={handleClick}\n {...getVariant('input')}\n className={`filter ${filter.error ? 'requiredFilter__Border' : ''}`}\n title={filter.title ?? filter.toolTip ?? String(filter.id)}\n ref={ref as ForwardedRef<HTMLInputElement>}\n aria-label={filter.title ?? filter.toolTip ?? String(filter.id)}\n name={filter.id as string}\n />\n );\n }\n return null;\n};\n\nexport const ApiaFilter = React.memo(React.forwardRef(NoMemoApiaFilter));\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Este hook está pensado para crear un botón utilizando un tag cualquiera.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
*
|
|
8
|
+
* const buttonProps = useOtherTagButton(React.useMemo(()=>({
|
|
9
|
+
* onClick(ev) { console.log(ev.target) },
|
|
10
|
+
* onKeyDown(ev) { console.log(ev.code) }
|
|
11
|
+
* }),[])
|
|
12
|
+
*
|
|
13
|
+
* return <div {...buttonProps}>Esto es un botón</div>
|
|
14
|
+
*/
|
|
15
|
+
declare function useOtherTagButton(props?: Partial<{
|
|
16
|
+
className?: string;
|
|
17
|
+
onClick: React__default.MouseEventHandler;
|
|
18
|
+
onKeyDown: React__default.KeyboardEventHandler;
|
|
19
|
+
}>): {
|
|
20
|
+
className: string;
|
|
21
|
+
onClick: (ev: React__default.MouseEvent) => void;
|
|
22
|
+
onKeyDown: (ev: React__default.KeyboardEvent) => void;
|
|
23
|
+
role: string;
|
|
24
|
+
tabIndex: number;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export { useOtherTagButton };
|
|
28
|
+
//# sourceMappingURL=useOtherTagButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOtherTagButton.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|