@odx/angular 5.7.4 → 6.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/CHANGELOG.md +17 -0
- package/animations/lib/expand.d.ts +44 -0
- package/animations/lib/fade.d.ts +70 -0
- package/animations/lib/slide.d.ts +21 -0
- package/animations/lib/wait-for-child-animations.d.ts +38 -0
- package/breakpoints/lib/breakpoints.config.d.ts +38 -0
- package/breakpoints/lib/breakpoints.service.d.ts +43 -0
- package/breakpoints/lib/directives/match-breakpoints.directive.d.ts +36 -0
- package/breakpoints/lib/helpers/configure-breakpoint.d.ts +19 -0
- package/cdk/a11y/lib/directives/interactive.directive.d.ts +32 -0
- package/cdk/a11y/lib/directives/list-focus-manager-option.directive.d.ts +22 -0
- package/cdk/a11y/lib/directives/list-focus-manager.directive.d.ts +17 -0
- package/cdk/active-indicator/lib/active-indicator.directive.d.ts +63 -0
- package/cdk/autocomplete-control/lib/autocomplete-control.d.ts +53 -0
- package/cdk/checkbox-control/lib/checkbox-control.directive.d.ts +3 -0
- package/cdk/connected-overlay/lib/connected-overlay.service.d.ts +44 -0
- package/cdk/connected-overlay/lib/helpers/compute-overlay-position.d.ts +10 -0
- package/cdk/connected-overlay/lib/models/connected-overlay-ref.d.ts +49 -0
- package/cdk/custom-form-control/lib/custom-form-control.d.ts +108 -0
- package/cdk/custom-form-control/lib/input-control.directive.d.ts +75 -0
- package/cdk/dynamic-view/lib/dynamic-view.directive.d.ts +25 -0
- package/cdk/dynamic-view/lib/dynamic-view.service.d.ts +30 -0
- package/cdk/dynamic-view/lib/helpers/create-projectable-nodes.d.ts +22 -0
- package/cdk/dynamic-view/lib/helpers/is-dynamic-text-content.d.ts +22 -0
- package/cdk/dynamic-view/lib/helpers/is-dynamic-view.d.ts +22 -0
- package/cdk/dynamic-view/lib/models/dynamic-component-ref.d.ts +39 -0
- package/cdk/dynamic-view/lib/models/dynamic-template-ref.d.ts +36 -0
- package/cdk/event-plugins/lib/event-plugins.config.d.ts +35 -0
- package/cdk/event-plugins/lib/models/event-plugin.d.ts +57 -0
- package/cdk/event-plugins/lib/plugins/debounce-event-plugin.d.ts +32 -0
- package/cdk/event-plugins/lib/plugins/defer-event-plugin.d.ts +24 -0
- package/cdk/expandable/lib/directives/expandable-container.directive.d.ts +41 -0
- package/cdk/expandable/lib/directives/expandable-item.directive.d.ts +47 -0
- package/cdk/option-control/lib/option-control.d.ts +47 -0
- package/cdk/radio-group-control/lib/radio-control.directive.d.ts +8 -0
- package/cdk/radio-group-control/lib/radio-group-control.directive.d.ts +11 -0
- package/components/accordion/lib/accordion.component.d.ts +8 -0
- package/components/accordion/lib/components/accordion-item/accordion-item.component.d.ts +37 -1
- package/components/accordion/lib/directives/accordion-item-title.d.ts +3 -0
- package/components/action-group/action-group.component.d.ts +6 -0
- package/components/area-header/area-header.component.d.ts +8 -0
- package/components/area-header/directives/area-header-content.directive.d.ts +3 -0
- package/components/area-header/directives/area-header-subtitle.directive.d.ts +3 -0
- package/components/autocomplete/lib/autocomplete.component.d.ts +17 -0
- package/components/avatar/lib/avatar.component.d.ts +8 -0
- package/components/badge/lib/badge.component.d.ts +10 -0
- package/components/badge/lib/badge.directive.d.ts +15 -0
- package/components/bar/lib/bar.component.d.ts +7 -0
- package/components/bar/lib/directives/bar-button.directive.d.ts +3 -0
- package/components/bar/lib/directives/bar-label.directive.d.ts +3 -0
- package/components/breadcrumbs/lib/breadcrumbs.component.d.ts +3 -0
- package/components/button/lib/button.component.d.ts +10 -0
- package/components/button-group/lib/button-group.component.d.ts +15 -0
- package/components/calendar/lib/calendar.component.d.ts +48 -0
- package/components/calendar/lib/calendar.config.d.ts +41 -93
- package/components/calendar/lib/calendar.service.d.ts +48 -0
- package/components/calendar/lib/components/calendar-header/calendar-header.component.d.ts +24 -0
- package/components/calendar/lib/components/calendar-month/calendar-month.component.d.ts +6 -0
- package/components/calendar/lib/components/calendar-year/calendar-year.component.d.ts +6 -0
- package/components/calendar/lib/components/calendar-years/calendar-years.component.d.ts +6 -0
- package/components/calendar/lib/daterange.service.d.ts +16 -0
- package/components/calendar/lib/directives/calendar-cell.directive.d.ts +37 -9
- package/components/calendar/lib/directives/calendar-view.directive.d.ts +41 -9
- package/components/calendar/lib/pipes/date-label.pipe.d.ts +12 -21
- package/components/calendar/lib/services/calendar-month.service.d.ts +1 -0
- package/components/calendar/lib/services/calendar-year.service.d.ts +1 -0
- package/components/calendar/lib/services/calendar-years.service.d.ts +1 -0
- package/components/calendar/lib/utils/check-cell-in-range.d.ts +1 -0
- package/components/calendar/lib/utils/check-identical-date.d.ts +1 -0
- package/components/calendar/lib/utils/get-A11y-label.d.ts +2 -2
- package/components/calendar/lib/utils/is-date-disabled.d.ts +1 -0
- package/components/calendar/lib/utils/parse-date.d.ts +1 -0
- package/components/calendar/lib/utils/validate-daterange.d.ts +1 -0
- package/components/calendar/lib/utils/validate-max-date.d.ts +1 -0
- package/components/calendar/lib/utils/validate-min-date.d.ts +1 -0
- package/components/calendar/lib/utils/validate-next-date-set.d.ts +1 -0
- package/components/calendar/lib/utils/validate-previous-date-set.d.ts +1 -0
- package/components/checkbox/lib/checkbox.component.d.ts +32 -0
- package/components/checkbox/lib/checkbox.validator.d.ts +23 -0
- package/components/chip/lib/components/chip/chip.component.d.ts +14 -0
- package/components/chip/lib/components/chip-list/chip-list.component.d.ts +3 -0
- package/components/chip/lib/components/chip-list-row/chip-list-row.component.d.ts +3 -0
- package/components/circular-progress/lib/circular-progress.component.d.ts +20 -0
- package/components/content-box/lib/content-box.component.d.ts +3 -0
- package/components/content-box/lib/directives/content-box-footer.directive.d.ts +3 -0
- package/components/content-box/lib/directives/content-box-header.directive.d.ts +3 -0
- package/components/datepicker/lib/datepicker.component.d.ts +47 -0
- package/components/datepicker/lib/datepicker.config.d.ts +19 -0
- package/components/datepicker/lib/directives/datepicker-input-control.directive.d.ts +30 -0
- package/components/datepicker/lib/utils/get-datepicker-input-pattern.d.ts +2 -0
- package/components/datepicker/lib/utils/get-datepicker-input-value-as-date.d.ts +1 -0
- package/components/daterangepicker/lib/daterangepicker.component.d.ts +89 -0
- package/components/daterangepicker/lib/daterangepicker.config.d.ts +19 -0
- package/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.d.ts +30 -0
- package/components/daterangepicker/lib/range.validator.d.ts +15 -0
- package/components/daterangepicker/lib/required.validator.d.ts +6 -0
- package/components/daterangepicker/lib/utils/get-daterangepicker-input-pattern.d.ts +2 -0
- package/components/daterangepicker/lib/utils/get-daterangepicker-input-value-as-date.d.ts +1 -0
- package/components/dropdown/lib/dropdown.component.d.ts +16 -0
- package/components/dropdown/lib/dropdown.directive.d.ts +67 -0
- package/components/dropdown/lib/helpers/close-current-dropdown.d.ts +5 -0
- package/components/error-page/lib/error-page.component.d.ts +7 -0
- package/components/error-page/lib/error-page.config.d.ts +18 -0
- package/components/footer/lib/footer.component.d.ts +9 -6
- package/components/footer/lib/footer.config.d.ts +2 -0
- package/components/form-field/lib/components/form-field-info/form-field-info.component.d.ts +13 -0
- package/components/form-field/lib/components/form-group/form-group.component.d.ts +16 -0
- package/components/form-field/lib/directives/form-field-control.directive.d.ts +5 -0
- package/components/form-field/lib/directives/form-field-error.directive.d.ts +6 -0
- package/components/form-field/lib/directives/form-field-hint.directive.d.ts +3 -0
- package/components/form-field/lib/directives/form-field-label.directive.d.ts +3 -0
- package/components/form-field/lib/directives/form.directive.d.ts +13 -0
- package/components/form-field/lib/form-field.component.d.ts +20 -0
- package/components/form-field/lib/form-field.service.d.ts +42 -0
- package/components/form-field/lib/services/form-field-error.service.d.ts +24 -0
- package/components/header/lib/directives/header-avatar.directive.d.ts +4 -0
- package/components/header/lib/directives/header-title.directive.d.ts +3 -0
- package/components/header/lib/header.component.d.ts +3 -0
- package/components/header-navigation/lib/directives/header-navigation-link.directive.d.ts +3 -0
- package/components/header-navigation/lib/header-navigation.component.d.ts +6 -0
- package/components/icon/lib/helpers/unpack-icon-identifier.d.ts +14 -0
- package/components/icon/lib/icon.component.d.ts +24 -0
- package/components/icon/lib/icon.config.d.ts +26 -0
- package/components/inline-message/lib/inline-message.component.d.ts +13 -0
- package/components/link/link.directive.d.ts +3 -0
- package/components/list/lib/components/expandable-list-item/expandable-list-item.component.d.ts +6 -0
- package/components/list/lib/components/list-item/list-item.component.d.ts +17 -1
- package/components/list/lib/list.component.d.ts +5 -0
- package/components/loading-spinner/lib/loading-spinner.component.d.ts +8 -0
- package/components/loading-spinner/lib/loading-spinner.directive.d.ts +22 -0
- package/components/logo/logo.directive.d.ts +15 -0
- package/components/main-menu/lib/directives/main-menu-button.directive.d.ts +5 -1
- package/components/main-menu/lib/directives/main-menu-close.directive.d.ts +3 -0
- package/components/main-menu/lib/directives/main-menu-item.directive.d.ts +16 -0
- package/components/main-menu/lib/helpers/create-main-menu-links.d.ts +1 -0
- package/components/main-menu/lib/main-menu.component.d.ts +42 -0
- package/components/main-menu/lib/main-menu.config.d.ts +31 -0
- package/components/main-menu/lib/main-menu.service.d.ts +28 -0
- package/components/mainfilter-group/lib/mainfilter-group.component.d.ts +4 -0
- package/components/menu/lib/directives/menu-item.directive.d.ts +6 -0
- package/components/menu/lib/menu.component.d.ts +13 -1
- package/components/menu/lib/menu.directive.d.ts +31 -0
- package/components/modal/lib/components/basic-modal/basic-modal.component.d.ts +14 -0
- package/components/modal/lib/components/modal-footer/modal-footer.component.d.ts +3 -0
- package/components/modal/lib/components/modal-header/modal-header.component.d.ts +9 -0
- package/components/modal/lib/components/modal-hero/modal-hero.component.d.ts +21 -0
- package/components/modal/lib/directives/modal-close.directive.d.ts +25 -1
- package/components/modal/lib/directives/modal-content.directive.d.ts +3 -0
- package/components/modal/lib/directives/modal-dismiss.directive.d.ts +18 -1
- package/components/modal/lib/helpers/inject-modal-ref.d.ts +21 -0
- package/components/modal/lib/helpers/provide-modal-ref.d.ts +9 -0
- package/components/modal/lib/modal.component.d.ts +25 -0
- package/components/modal/lib/modal.config.d.ts +33 -0
- package/components/modal/lib/modal.directive.d.ts +29 -0
- package/components/modal/lib/modal.service.d.ts +54 -0
- package/components/modal/lib/models/modal-ref.d.ts +34 -0
- package/components/navigation-back/lib/navigation-back.component.d.ts +3 -0
- package/components/notification/lib/components/notification-center/notification-center.component.d.ts +0 -2
- package/components/notification/lib/directives/notification-center.directive.d.ts +18 -4
- package/components/notification/lib/helpers/get-notifications-by-tag.d.ts +1 -0
- package/components/notification/lib/helpers/sort-notifications.d.ts +1 -0
- package/components/notification/lib/helpers/to-notification-collection.d.ts +1 -0
- package/components/notification/lib/models/notification-feature.d.ts +15 -0
- package/components/notification/lib/notification.config.d.ts +54 -0
- package/components/notification/lib/notification.logger.d.ts +1 -0
- package/components/notification/lib/notification.service.d.ts +55 -0
- package/components/notification/lib/notification.tokens.d.ts +3 -0
- package/components/notification/lib/services/notification-center.service.d.ts +9 -0
- package/components/paginator/lib/paginator.component.d.ts +89 -0
- package/components/paginator/lib/paginator.config.d.ts +24 -2
- package/components/progress/lib/progress.component.d.ts +15 -0
- package/components/radio-group/lib/radio-group.component.d.ts +11 -0
- package/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.d.ts +19 -0
- package/components/rail-navigation/lib/rail-navigation.component.d.ts +26 -0
- package/components/rich-list/lib/components/rich-list-content/rich-list-content.component.d.ts +4 -0
- package/components/rich-list/lib/components/rich-list-header/rich-list-header.component.d.ts +4 -0
- package/components/rich-list/lib/components/rich-list-item/rich-list-item.component.d.ts +9 -1
- package/components/rich-list/lib/rich-list.component.d.ts +9 -2
- package/components/select/lib/components/select-option/select-option.component.d.ts +39 -2
- package/components/select/lib/directives/select-input-control.directive.d.ts +11 -0
- package/components/select/lib/pipes/select-search-filter.pipe.d.ts +10 -0
- package/components/select/lib/select.component.d.ts +59 -0
- package/components/slider/lib/slider.directive.d.ts +19 -0
- package/components/spinbox/lib/spinbox.component.d.ts +16 -0
- package/components/switch/lib/switch.component.d.ts +10 -0
- package/components/switch/lib/switch.validator.d.ts +12 -0
- package/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.d.ts +28 -0
- package/components/tab-bar/lib/tab-bar.component.d.ts +69 -0
- package/components/table/lib/components/check-cell/check-cell.component.d.ts +18 -0
- package/components/table/lib/components/header-title/header-title.component.d.ts +33 -1
- package/components/table/lib/directives/table-cell.directive.d.ts +4 -0
- package/components/table/lib/directives/table-row.directive.d.ts +4 -0
- package/components/table/lib/table.component.d.ts +36 -0
- package/components/timepicker/lib/timepicker.component.d.ts +11 -2
- package/components/timepicker/lib/utils/generate-time-stamps.d.ts +2 -1
- package/components/timepicker/lib/utils/ngx-mask-helper.d.ts +2 -2
- package/components/toast/lib/toast.config.d.ts +26 -0
- package/components/toast/lib/toast.service.d.ts +35 -0
- package/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.d.ts +11 -0
- package/components/toggle-button-group/lib/toggle-button-group.component.d.ts +12 -0
- package/components/tooltip/lib/tooltip.component.d.ts +20 -0
- package/components/tooltip/lib/tooltip.directive.d.ts +35 -0
- package/components/wizard/lib/components/wizard-step/wizard-step.component.d.ts +34 -0
- package/components/wizard/lib/wizard.component.d.ts +20 -0
- package/esm2022/animations/lib/expand.mjs +45 -1
- package/esm2022/animations/lib/fade.mjs +71 -1
- package/esm2022/animations/lib/slide.mjs +22 -1
- package/esm2022/animations/lib/wait-for-child-animations.mjs +39 -1
- package/esm2022/breakpoints/lib/breakpoints.config.mjs +39 -1
- package/esm2022/breakpoints/lib/breakpoints.service.mjs +44 -1
- package/esm2022/breakpoints/lib/directives/match-breakpoints.directive.mjs +37 -1
- package/esm2022/breakpoints/lib/helpers/configure-breakpoint.mjs +20 -1
- package/esm2022/cdk/a11y/lib/directives/interactive.directive.mjs +33 -1
- package/esm2022/cdk/a11y/lib/directives/list-focus-manager-option.directive.mjs +23 -1
- package/esm2022/cdk/a11y/lib/directives/list-focus-manager.directive.mjs +18 -1
- package/esm2022/cdk/active-indicator/lib/active-indicator.directive.mjs +64 -1
- package/esm2022/cdk/autocomplete-control/lib/autocomplete-control.mjs +39 -1
- package/esm2022/cdk/checkbox-control/lib/checkbox-control.directive.mjs +4 -1
- package/esm2022/cdk/connected-overlay/lib/connected-overlay.service.mjs +45 -1
- package/esm2022/cdk/connected-overlay/lib/helpers/compute-overlay-position.mjs +11 -1
- package/esm2022/cdk/connected-overlay/lib/models/connected-overlay-ref.mjs +50 -1
- package/esm2022/cdk/custom-form-control/lib/custom-form-control.mjs +109 -3
- package/esm2022/cdk/custom-form-control/lib/input-control.directive.mjs +76 -1
- package/esm2022/cdk/dynamic-view/lib/dynamic-view.directive.mjs +18 -1
- package/esm2022/cdk/dynamic-view/lib/dynamic-view.service.mjs +31 -1
- package/esm2022/cdk/dynamic-view/lib/helpers/create-projectable-nodes.mjs +23 -1
- package/esm2022/cdk/dynamic-view/lib/helpers/is-dynamic-text-content.mjs +23 -1
- package/esm2022/cdk/dynamic-view/lib/helpers/is-dynamic-view.mjs +23 -1
- package/esm2022/cdk/dynamic-view/lib/models/dynamic-component-ref.mjs +40 -1
- package/esm2022/cdk/dynamic-view/lib/models/dynamic-template-ref.mjs +37 -1
- package/esm2022/cdk/event-plugins/lib/event-plugins.config.mjs +36 -1
- package/esm2022/cdk/event-plugins/lib/models/event-plugin.mjs +45 -1
- package/esm2022/cdk/event-plugins/lib/plugins/debounce-event-plugin.mjs +33 -1
- package/esm2022/cdk/event-plugins/lib/plugins/defer-event-plugin.mjs +25 -1
- package/esm2022/cdk/expandable/lib/directives/expandable-container.directive.mjs +42 -1
- package/esm2022/cdk/expandable/lib/directives/expandable-item.directive.mjs +48 -1
- package/esm2022/cdk/option-control/lib/option-control.mjs +48 -1
- package/esm2022/cdk/radio-group-control/lib/radio-control.directive.mjs +9 -1
- package/esm2022/cdk/radio-group-control/lib/radio-group-control.directive.mjs +12 -1
- package/esm2022/components/accordion/lib/accordion.component.mjs +9 -1
- package/esm2022/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +31 -1
- package/esm2022/components/accordion/lib/directives/accordion-item-title.mjs +4 -1
- package/esm2022/components/action-group/action-group.component.mjs +7 -1
- package/esm2022/components/area-header/area-header.component.mjs +9 -1
- package/esm2022/components/area-header/directives/area-header-content.directive.mjs +4 -1
- package/esm2022/components/area-header/directives/area-header-subtitle.directive.mjs +4 -1
- package/esm2022/components/autocomplete/lib/autocomplete.component.mjs +18 -1
- package/esm2022/components/avatar/lib/avatar.component.mjs +9 -1
- package/esm2022/components/badge/lib/badge.component.mjs +11 -1
- package/esm2022/components/badge/lib/badge.directive.mjs +16 -1
- package/esm2022/components/bar/lib/bar.component.mjs +8 -1
- package/esm2022/components/bar/lib/directives/bar-button.directive.mjs +4 -1
- package/esm2022/components/bar/lib/directives/bar-label.directive.mjs +4 -1
- package/esm2022/components/breadcrumbs/lib/breadcrumbs.component.mjs +4 -1
- package/esm2022/components/button/lib/button.component.mjs +11 -1
- package/esm2022/components/button-group/lib/button-group.component.mjs +16 -1
- package/esm2022/components/calendar/lib/calendar.component.mjs +35 -1
- package/esm2022/components/calendar/lib/calendar.config.mjs +18 -12
- package/esm2022/components/calendar/lib/calendar.service.mjs +49 -1
- package/esm2022/components/calendar/lib/components/calendar-header/calendar-header.component.mjs +19 -1
- package/esm2022/components/calendar/lib/components/calendar-month/calendar-month.component.mjs +9 -3
- package/esm2022/components/calendar/lib/components/calendar-year/calendar-year.component.mjs +9 -3
- package/esm2022/components/calendar/lib/components/calendar-years/calendar-years.component.mjs +9 -3
- package/esm2022/components/calendar/lib/daterange.service.mjs +17 -1
- package/esm2022/components/calendar/lib/directives/calendar-cell.directive.mjs +27 -2
- package/esm2022/components/calendar/lib/directives/calendar-view.directive.mjs +39 -1
- package/esm2022/components/calendar/lib/pipes/date-label.pipe.mjs +27 -9
- package/esm2022/components/calendar/lib/services/calendar-month.service.mjs +2 -1
- package/esm2022/components/calendar/lib/services/calendar-year.service.mjs +2 -1
- package/esm2022/components/calendar/lib/services/calendar-years.service.mjs +2 -1
- package/esm2022/components/calendar/lib/utils/check-cell-in-range.mjs +2 -1
- package/esm2022/components/calendar/lib/utils/check-identical-date.mjs +2 -1
- package/esm2022/components/calendar/lib/utils/get-A11y-label.mjs +11 -8
- package/esm2022/components/calendar/lib/utils/is-date-disabled.mjs +2 -1
- package/esm2022/components/calendar/lib/utils/parse-date.mjs +2 -1
- package/esm2022/components/calendar/lib/utils/validate-daterange.mjs +2 -1
- package/esm2022/components/calendar/lib/utils/validate-max-date.mjs +2 -1
- package/esm2022/components/calendar/lib/utils/validate-min-date.mjs +2 -1
- package/esm2022/components/calendar/lib/utils/validate-next-date-set.mjs +2 -1
- package/esm2022/components/calendar/lib/utils/validate-previous-date-set.mjs +2 -1
- package/esm2022/components/checkbox/lib/checkbox.component.mjs +33 -1
- package/esm2022/components/checkbox/lib/checkbox.validator.mjs +24 -1
- package/esm2022/components/chip/lib/components/chip/chip.component.mjs +15 -1
- package/esm2022/components/chip/lib/components/chip-list/chip-list.component.mjs +4 -1
- package/esm2022/components/chip/lib/components/chip-list-row/chip-list-row.component.mjs +4 -1
- package/esm2022/components/circular-progress/lib/circular-progress.component.mjs +21 -1
- package/esm2022/components/content-box/lib/content-box.component.mjs +4 -1
- package/esm2022/components/content-box/lib/directives/content-box-footer.directive.mjs +4 -1
- package/esm2022/components/content-box/lib/directives/content-box-header.directive.mjs +4 -1
- package/esm2022/components/datepicker/lib/datepicker.component.mjs +33 -1
- package/esm2022/components/datepicker/lib/datepicker.config.mjs +20 -1
- package/esm2022/components/datepicker/lib/directives/datepicker-input-control.directive.mjs +31 -1
- package/esm2022/components/datepicker/lib/utils/get-datepicker-input-pattern.mjs +3 -1
- package/esm2022/components/datepicker/lib/utils/get-datepicker-input-value-as-date.mjs +2 -1
- package/esm2022/components/daterangepicker/lib/daterangepicker.component.mjs +65 -1
- package/esm2022/components/daterangepicker/lib/daterangepicker.config.mjs +20 -1
- package/esm2022/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.mjs +31 -1
- package/esm2022/components/daterangepicker/lib/range.validator.mjs +16 -1
- package/esm2022/components/daterangepicker/lib/required.validator.mjs +15 -1
- package/esm2022/components/daterangepicker/lib/utils/get-daterangepicker-input-pattern.mjs +3 -1
- package/esm2022/components/daterangepicker/lib/utils/get-daterangepicker-input-value-as-date.mjs +2 -1
- package/esm2022/components/dropdown/lib/dropdown.component.mjs +8 -1
- package/esm2022/components/dropdown/lib/dropdown.directive.mjs +55 -1
- package/esm2022/components/dropdown/lib/helpers/close-current-dropdown.mjs +6 -1
- package/esm2022/components/error-page/lib/error-page.component.mjs +8 -1
- package/esm2022/components/error-page/lib/error-page.config.mjs +9 -1
- package/esm2022/components/footer/lib/footer.component.mjs +10 -7
- package/esm2022/components/footer/lib/footer.config.mjs +3 -1
- package/esm2022/components/form-field/lib/components/form-field-info/form-field-info.component.mjs +14 -1
- package/esm2022/components/form-field/lib/components/form-group/form-group.component.mjs +13 -1
- package/esm2022/components/form-field/lib/directives/form-field-control.directive.mjs +6 -1
- package/esm2022/components/form-field/lib/directives/form-field-error.directive.mjs +4 -1
- package/esm2022/components/form-field/lib/directives/form-field-hint.directive.mjs +4 -1
- package/esm2022/components/form-field/lib/directives/form-field-label.directive.mjs +4 -1
- package/esm2022/components/form-field/lib/directives/form.directive.mjs +14 -1
- package/esm2022/components/form-field/lib/form-field.component.mjs +14 -1
- package/esm2022/components/form-field/lib/form-field.service.mjs +43 -1
- package/esm2022/components/form-field/lib/services/form-field-error.service.mjs +25 -1
- package/esm2022/components/header/lib/directives/header-avatar.directive.mjs +5 -1
- package/esm2022/components/header/lib/directives/header-title.directive.mjs +4 -1
- package/esm2022/components/header/lib/header.component.mjs +4 -1
- package/esm2022/components/header-navigation/lib/directives/header-navigation-link.directive.mjs +4 -1
- package/esm2022/components/header-navigation/lib/header-navigation.component.mjs +4 -1
- package/esm2022/components/icon/lib/helpers/unpack-icon-identifier.mjs +15 -1
- package/esm2022/components/icon/lib/icon.component.mjs +25 -1
- package/esm2022/components/icon/lib/icon.config.mjs +20 -1
- package/esm2022/components/inline-message/lib/inline-message.component.mjs +14 -1
- package/esm2022/components/link/link.directive.mjs +4 -1
- package/esm2022/components/list/lib/components/expandable-list-item/expandable-list-item.component.mjs +7 -1
- package/esm2022/components/list/lib/components/list-item/list-item.component.mjs +18 -2
- package/esm2022/components/list/lib/list.component.mjs +6 -1
- package/esm2022/components/loading-spinner/lib/loading-spinner.component.mjs +10 -2
- package/esm2022/components/loading-spinner/lib/loading-spinner.directive.mjs +23 -1
- package/esm2022/components/logo/logo.directive.mjs +16 -1
- package/esm2022/components/main-menu/lib/directives/main-menu-button.directive.mjs +5 -1
- package/esm2022/components/main-menu/lib/directives/main-menu-close.directive.mjs +4 -1
- package/esm2022/components/main-menu/lib/directives/main-menu-item.directive.mjs +17 -1
- package/esm2022/components/main-menu/lib/helpers/create-main-menu-links.mjs +2 -1
- package/esm2022/components/main-menu/lib/main-menu.component.mjs +37 -1
- package/esm2022/components/main-menu/lib/main-menu.config.mjs +32 -1
- package/esm2022/components/main-menu/lib/main-menu.service.mjs +29 -1
- package/esm2022/components/mainfilter-group/lib/mainfilter-group.component.mjs +5 -1
- package/esm2022/components/menu/lib/directives/menu-item.directive.mjs +7 -1
- package/esm2022/components/menu/lib/menu.component.mjs +13 -1
- package/esm2022/components/menu/lib/menu.directive.mjs +19 -1
- package/esm2022/components/modal/lib/components/basic-modal/basic-modal.component.mjs +15 -1
- package/esm2022/components/modal/lib/components/modal-footer/modal-footer.component.mjs +4 -1
- package/esm2022/components/modal/lib/components/modal-header/modal-header.component.mjs +4 -1
- package/esm2022/components/modal/lib/components/modal-hero/modal-hero.component.mjs +12 -1
- package/esm2022/components/modal/lib/directives/modal-close.directive.mjs +25 -1
- package/esm2022/components/modal/lib/directives/modal-content.directive.mjs +4 -1
- package/esm2022/components/modal/lib/directives/modal-dismiss.directive.mjs +18 -1
- package/esm2022/components/modal/lib/helpers/inject-modal-ref.mjs +22 -1
- package/esm2022/components/modal/lib/helpers/provide-modal-ref.mjs +10 -1
- package/esm2022/components/modal/lib/modal.component.mjs +21 -2
- package/esm2022/components/modal/lib/modal.config.mjs +34 -1
- package/esm2022/components/modal/lib/modal.directive.mjs +25 -1
- package/esm2022/components/modal/lib/modal.service.mjs +39 -1
- package/esm2022/components/modal/lib/models/modal-ref.mjs +34 -1
- package/esm2022/components/navigation-back/lib/navigation-back.component.mjs +4 -1
- package/esm2022/components/notification/lib/components/notification-center/notification-center.component.mjs +1 -3
- package/esm2022/components/notification/lib/directives/notification-center.directive.mjs +19 -5
- package/esm2022/components/notification/lib/helpers/get-notifications-by-tag.mjs +2 -1
- package/esm2022/components/notification/lib/helpers/sort-notifications.mjs +2 -1
- package/esm2022/components/notification/lib/helpers/to-notification-collection.mjs +2 -1
- package/esm2022/components/notification/lib/models/notification-feature.mjs +16 -1
- package/esm2022/components/notification/lib/notification.config.mjs +45 -1
- package/esm2022/components/notification/lib/notification.logger.mjs +2 -1
- package/esm2022/components/notification/lib/notification.service.mjs +56 -1
- package/esm2022/components/notification/lib/notification.tokens.mjs +4 -1
- package/esm2022/components/notification/lib/services/notification-center.service.mjs +10 -1
- package/esm2022/components/paginator/lib/paginator.component.mjs +90 -1
- package/esm2022/components/paginator/lib/paginator.config.mjs +29 -1
- package/esm2022/components/progress/lib/progress.component.mjs +16 -1
- package/esm2022/components/radio-group/lib/radio-group.component.mjs +13 -2
- package/esm2022/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.mjs +17 -1
- package/esm2022/components/rail-navigation/lib/rail-navigation.component.mjs +27 -1
- package/esm2022/components/rich-list/lib/components/rich-list-content/rich-list-content.component.mjs +5 -1
- package/esm2022/components/rich-list/lib/components/rich-list-header/rich-list-header.component.mjs +5 -1
- package/esm2022/components/rich-list/lib/components/rich-list-item/rich-list-item.component.mjs +10 -2
- package/esm2022/components/rich-list/lib/rich-list.component.mjs +10 -3
- package/esm2022/components/select/lib/components/select-option/select-option.component.mjs +47 -6
- package/esm2022/components/select/lib/directives/select-input-control.directive.mjs +12 -2
- package/esm2022/components/select/lib/pipes/select-search-filter.pipe.mjs +11 -1
- package/esm2022/components/select/lib/select.component.mjs +56 -2
- package/esm2022/components/slider/lib/slider.directive.mjs +20 -1
- package/esm2022/components/spinbox/lib/spinbox.component.mjs +17 -1
- package/esm2022/components/switch/lib/switch.component.mjs +11 -1
- package/esm2022/components/switch/lib/switch.validator.mjs +13 -1
- package/esm2022/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.mjs +29 -1
- package/esm2022/components/tab-bar/lib/tab-bar.component.mjs +70 -1
- package/esm2022/components/table/lib/components/check-cell/check-cell.component.mjs +19 -1
- package/esm2022/components/table/lib/components/header-title/header-title.component.mjs +30 -2
- package/esm2022/components/table/lib/directives/table-cell.directive.mjs +5 -1
- package/esm2022/components/table/lib/directives/table-row.directive.mjs +5 -1
- package/esm2022/components/table/lib/table.component.mjs +30 -1
- package/esm2022/components/timepicker/lib/timepicker.component.mjs +15 -6
- package/esm2022/components/timepicker/lib/utils/generate-time-stamps.mjs +5 -3
- package/esm2022/components/timepicker/lib/utils/ngx-mask-helper.mjs +3 -3
- package/esm2022/components/toast/lib/toast.config.mjs +27 -1
- package/esm2022/components/toast/lib/toast.service.mjs +36 -1
- package/esm2022/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.mjs +12 -1
- package/esm2022/components/toggle-button-group/lib/toggle-button-group.component.mjs +14 -2
- package/esm2022/components/tooltip/lib/tooltip.component.mjs +18 -1
- package/esm2022/components/tooltip/lib/tooltip.directive.mjs +36 -1
- package/esm2022/components/wizard/lib/components/wizard-step/wizard-step.component.mjs +35 -1
- package/esm2022/components/wizard/lib/wizard.component.mjs +21 -1
- package/esm2022/internal/lib/helpers/fast-equals.mjs +3 -0
- package/esm2022/internal/lib/helpers/index.mjs +2 -1
- package/esm2022/internal/translate/lib/translate.config.mjs +32 -1
- package/esm2022/internal/translate/lib/translate.service.mjs +30 -1
- package/esm2022/lib/controllers/controller.mjs +26 -1
- package/esm2022/lib/controllers/disabled.controller.mjs +60 -1
- package/esm2022/lib/controllers/readonly.controller.mjs +57 -1
- package/esm2022/lib/directives/click-outside.directive.mjs +30 -1
- package/esm2022/lib/directives/delegate-focus.directive.mjs +15 -1
- package/esm2022/lib/services/window-ref.mjs +67 -1
- package/esm2022/lib/tokens/identity-matcher.mjs +25 -1
- package/esm2022/lib/tokens/string-search-handler.mjs +25 -1
- package/esm2022/lib/tokens/stringify.mjs +26 -1
- package/esm2022/localization/lib/features/with-http-language-header.mjs +54 -1
- package/esm2022/localization/lib/features/with-http-language-query-param.mjs +52 -1
- package/esm2022/localization/lib/loaders/browser-language-loader.mjs +33 -1
- package/esm2022/localization/lib/localization.config.mjs +73 -5
- package/esm2022/localization/lib/localization.logger.mjs +3 -0
- package/esm2022/localization/lib/localization.service.mjs +59 -29
- package/esm2022/rxjs/index.mjs +2 -2
- package/esm2022/rxjs/lib/delay-until.mjs +23 -1
- package/esm2022/rxjs/lib/from-element-mutation.mjs +22 -1
- package/esm2022/rxjs/lib/from-element-resize.mjs +25 -1
- package/esm2022/rxjs/lib/from-events.mjs +25 -1
- package/esm2022/rxjs/lib/from-query-list.mjs +24 -0
- package/esm2022/sdk/lib/application-environment.mjs +51 -1
- package/esm2022/theming/lib/helpers/prefers-dark-theme.mjs +19 -1
- package/esm2022/theming/lib/helpers/resolve-theme.mjs +26 -1
- package/esm2022/theming/lib/helpers/theme-storage.mjs +43 -1
- package/esm2022/theming/lib/theming.config.mjs +34 -1
- package/esm2022/theming/lib/theming.service.mjs +32 -1
- package/esm2022/utils/lib/decorators/pure.mjs +52 -1
- package/esm2022/utils/lib/helpers/angular.mjs +37 -1
- package/esm2022/utils/lib/helpers/array.mjs +5 -1
- package/esm2022/utils/lib/helpers/build-url.mjs +21 -1
- package/esm2022/utils/lib/helpers/build-website-url.mjs +3 -2
- package/esm2022/utils/lib/helpers/cache-storage-client.mjs +52 -1
- package/esm2022/utils/lib/helpers/coercion.mjs +18 -1
- package/esm2022/utils/lib/helpers/debounce.mjs +28 -1
- package/esm2022/utils/lib/helpers/defer-fn.mjs +21 -1
- package/esm2022/utils/lib/helpers/dom.mjs +71 -1
- package/esm2022/utils/lib/helpers/get-axis.mjs +21 -1
- package/esm2022/utils/lib/helpers/get-language-code.mjs +18 -1
- package/esm2022/utils/lib/helpers/get-opposite-side.mjs +22 -1
- package/esm2022/utils/lib/helpers/get-side.mjs +18 -1
- package/esm2022/utils/lib/helpers/get-unique-id.mjs +34 -1
- package/esm2022/utils/lib/helpers/match-url.mjs +41 -1
- package/esm2022/utils/lib/helpers/ng-changes.mjs +30 -1
- package/esm2022/utils/lib/helpers/provide-config.mjs +57 -1
- package/esm2022/utils/lib/helpers/queue.mjs +84 -1
- package/esm2022/utils/lib/helpers/type-guards.mjs +58 -1
- package/esm2022/utils/lib/helpers/until-destroyed.mjs +39 -1
- package/fesm2022/odx-angular-animations.mjs +173 -0
- package/fesm2022/odx-angular-animations.mjs.map +1 -1
- package/fesm2022/odx-angular-breakpoints.mjs +136 -0
- package/fesm2022/odx-angular-breakpoints.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-a11y.mjs +71 -0
- package/fesm2022/odx-angular-cdk-a11y.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-active-indicator.mjs +63 -0
- package/fesm2022/odx-angular-cdk-active-indicator.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-autocomplete-control.mjs +38 -0
- package/fesm2022/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-checkbox-control.mjs +3 -0
- package/fesm2022/odx-angular-cdk-checkbox-control.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-connected-overlay.mjs +103 -0
- package/fesm2022/odx-angular-cdk-connected-overlay.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-custom-form-control.mjs +183 -2
- package/fesm2022/odx-angular-cdk-custom-form-control.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-dynamic-view.mjs +188 -0
- package/fesm2022/odx-angular-cdk-dynamic-view.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-event-plugins.mjs +135 -0
- package/fesm2022/odx-angular-cdk-event-plugins.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-expandable.mjs +88 -0
- package/fesm2022/odx-angular-cdk-expandable.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-option-control.mjs +47 -0
- package/fesm2022/odx-angular-cdk-option-control.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-radio-group-control.mjs +19 -0
- package/fesm2022/odx-angular-cdk-radio-group-control.mjs.map +1 -1
- package/fesm2022/odx-angular-components-accordion.mjs +41 -0
- package/fesm2022/odx-angular-components-accordion.mjs.map +1 -1
- package/fesm2022/odx-angular-components-action-group.mjs +6 -0
- package/fesm2022/odx-angular-components-action-group.mjs.map +1 -1
- package/fesm2022/odx-angular-components-area-header.mjs +14 -0
- package/fesm2022/odx-angular-components-area-header.mjs.map +1 -1
- package/fesm2022/odx-angular-components-autocomplete.mjs +17 -0
- package/fesm2022/odx-angular-components-autocomplete.mjs.map +1 -1
- package/fesm2022/odx-angular-components-avatar.mjs +8 -0
- package/fesm2022/odx-angular-components-avatar.mjs.map +1 -1
- package/fesm2022/odx-angular-components-badge.mjs +25 -0
- package/fesm2022/odx-angular-components-badge.mjs.map +1 -1
- package/fesm2022/odx-angular-components-bar.mjs +13 -0
- package/fesm2022/odx-angular-components-bar.mjs.map +1 -1
- package/fesm2022/odx-angular-components-breadcrumbs.mjs +3 -0
- package/fesm2022/odx-angular-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/odx-angular-components-button-group.mjs +15 -0
- package/fesm2022/odx-angular-components-button-group.mjs.map +1 -1
- package/fesm2022/odx-angular-components-button.mjs +10 -0
- package/fesm2022/odx-angular-components-button.mjs.map +1 -1
- package/fesm2022/odx-angular-components-calendar.mjs +270 -33
- package/fesm2022/odx-angular-components-calendar.mjs.map +1 -1
- package/fesm2022/odx-angular-components-checkbox.mjs +55 -0
- package/fesm2022/odx-angular-components-checkbox.mjs.map +1 -1
- package/fesm2022/odx-angular-components-chip.mjs +20 -0
- package/fesm2022/odx-angular-components-chip.mjs.map +1 -1
- package/fesm2022/odx-angular-components-circular-progress.mjs +20 -0
- package/fesm2022/odx-angular-components-circular-progress.mjs.map +1 -1
- package/fesm2022/odx-angular-components-content-box.mjs +9 -0
- package/fesm2022/odx-angular-components-content-box.mjs.map +1 -1
- package/fesm2022/odx-angular-components-datepicker.mjs +84 -0
- package/fesm2022/odx-angular-components-datepicker.mjs.map +1 -1
- package/fesm2022/odx-angular-components-daterangepicker.mjs +145 -0
- package/fesm2022/odx-angular-components-daterangepicker.mjs.map +1 -1
- package/fesm2022/odx-angular-components-dropdown.mjs +66 -0
- package/fesm2022/odx-angular-components-dropdown.mjs.map +1 -1
- package/fesm2022/odx-angular-components-error-page.mjs +15 -0
- package/fesm2022/odx-angular-components-error-page.mjs.map +1 -1
- package/fesm2022/odx-angular-components-footer.mjs +11 -6
- package/fesm2022/odx-angular-components-footer.mjs.map +1 -1
- package/fesm2022/odx-angular-components-form-field.mjs +131 -0
- package/fesm2022/odx-angular-components-form-field.mjs.map +1 -1
- package/fesm2022/odx-angular-components-header-navigation.mjs +6 -0
- package/fesm2022/odx-angular-components-header-navigation.mjs.map +1 -1
- package/fesm2022/odx-angular-components-header.mjs +10 -0
- package/fesm2022/odx-angular-components-header.mjs.map +1 -1
- package/fesm2022/odx-angular-components-icon.mjs +57 -0
- package/fesm2022/odx-angular-components-icon.mjs.map +1 -1
- package/fesm2022/odx-angular-components-inline-message.mjs +13 -0
- package/fesm2022/odx-angular-components-inline-message.mjs.map +1 -1
- package/fesm2022/odx-angular-components-link.mjs +3 -0
- package/fesm2022/odx-angular-components-link.mjs.map +1 -1
- package/fesm2022/odx-angular-components-list.mjs +28 -1
- package/fesm2022/odx-angular-components-list.mjs.map +1 -1
- package/fesm2022/odx-angular-components-loading-spinner.mjs +30 -0
- package/fesm2022/odx-angular-components-loading-spinner.mjs.map +1 -1
- package/fesm2022/odx-angular-components-logo.mjs +15 -0
- package/fesm2022/odx-angular-components-logo.mjs.map +1 -1
- package/fesm2022/odx-angular-components-main-menu.mjs +119 -0
- package/fesm2022/odx-angular-components-main-menu.mjs.map +1 -1
- package/fesm2022/odx-angular-components-mainfilter-group.mjs +4 -0
- package/fesm2022/odx-angular-components-mainfilter-group.mjs.map +1 -1
- package/fesm2022/odx-angular-components-menu.mjs +36 -0
- package/fesm2022/odx-angular-components-menu.mjs.map +1 -1
- package/fesm2022/odx-angular-components-modal.mjs +252 -0
- package/fesm2022/odx-angular-components-modal.mjs.map +1 -1
- package/fesm2022/odx-angular-components-navigation-back.mjs +3 -0
- package/fesm2022/odx-angular-components-navigation-back.mjs.map +1 -1
- package/fesm2022/odx-angular-components-notification.mjs +148 -6
- package/fesm2022/odx-angular-components-notification.mjs.map +1 -1
- package/fesm2022/odx-angular-components-paginator.mjs +117 -0
- package/fesm2022/odx-angular-components-paginator.mjs.map +1 -1
- package/fesm2022/odx-angular-components-progress.mjs +15 -0
- package/fesm2022/odx-angular-components-progress.mjs.map +1 -1
- package/fesm2022/odx-angular-components-radio-group.mjs +11 -0
- package/fesm2022/odx-angular-components-radio-group.mjs.map +1 -1
- package/fesm2022/odx-angular-components-rail-navigation.mjs +42 -0
- package/fesm2022/odx-angular-components-rail-navigation.mjs.map +1 -1
- package/fesm2022/odx-angular-components-rich-list.mjs +26 -3
- package/fesm2022/odx-angular-components-rich-list.mjs.map +1 -1
- package/fesm2022/odx-angular-components-select.mjs +122 -7
- package/fesm2022/odx-angular-components-select.mjs.map +1 -1
- package/fesm2022/odx-angular-components-slider.mjs +19 -0
- package/fesm2022/odx-angular-components-slider.mjs.map +1 -1
- package/fesm2022/odx-angular-components-spinbox.mjs +16 -0
- package/fesm2022/odx-angular-components-spinbox.mjs.map +1 -1
- package/fesm2022/odx-angular-components-switch.mjs +22 -0
- package/fesm2022/odx-angular-components-switch.mjs.map +1 -1
- package/fesm2022/odx-angular-components-tab-bar.mjs +97 -0
- package/fesm2022/odx-angular-components-tab-bar.mjs.map +1 -1
- package/fesm2022/odx-angular-components-table.mjs +84 -1
- package/fesm2022/odx-angular-components-table.mjs.map +1 -1
- package/fesm2022/odx-angular-components-timepicker.mjs +20 -9
- package/fesm2022/odx-angular-components-timepicker.mjs.map +1 -1
- package/fesm2022/odx-angular-components-toast.mjs +61 -0
- package/fesm2022/odx-angular-components-toast.mjs.map +1 -1
- package/fesm2022/odx-angular-components-toggle-button-group.mjs +23 -0
- package/fesm2022/odx-angular-components-toggle-button-group.mjs.map +1 -1
- package/fesm2022/odx-angular-components-tooltip.mjs +52 -0
- package/fesm2022/odx-angular-components-tooltip.mjs.map +1 -1
- package/fesm2022/odx-angular-components-wizard.mjs +54 -0
- package/fesm2022/odx-angular-components-wizard.mjs.map +1 -1
- package/fesm2022/odx-angular-internal-translate.mjs +60 -0
- package/fesm2022/odx-angular-internal-translate.mjs.map +1 -1
- package/fesm2022/odx-angular-internal.mjs +4 -1
- package/fesm2022/odx-angular-internal.mjs.map +1 -1
- package/fesm2022/odx-angular-localization.mjs +269 -32
- package/fesm2022/odx-angular-localization.mjs.map +1 -1
- package/fesm2022/odx-angular-rxjs.mjs +115 -5
- package/fesm2022/odx-angular-rxjs.mjs.map +1 -1
- package/fesm2022/odx-angular-sdk.mjs +50 -0
- package/fesm2022/odx-angular-sdk.mjs.map +1 -1
- package/fesm2022/odx-angular-theming.mjs +149 -0
- package/fesm2022/odx-angular-theming.mjs.map +1 -1
- package/fesm2022/odx-angular-utils.mjs +709 -1
- package/fesm2022/odx-angular-utils.mjs.map +1 -1
- package/fesm2022/odx-angular.mjs +322 -0
- package/fesm2022/odx-angular.mjs.map +1 -1
- package/internal/lib/helpers/fast-equals.d.ts +1 -0
- package/internal/lib/helpers/index.d.ts +1 -0
- package/internal/translate/lib/translate.config.d.ts +31 -0
- package/internal/translate/lib/translate.service.d.ts +29 -0
- package/lib/controllers/controller.d.ts +25 -0
- package/lib/controllers/disabled.controller.d.ts +59 -0
- package/lib/controllers/readonly.controller.d.ts +56 -0
- package/lib/directives/click-outside.directive.d.ts +29 -0
- package/lib/directives/delegate-focus.directive.d.ts +14 -0
- package/lib/services/window-ref.d.ts +66 -0
- package/lib/tokens/identity-matcher.d.ts +41 -0
- package/lib/tokens/string-search-handler.d.ts +39 -0
- package/lib/tokens/stringify.d.ts +42 -0
- package/localization/lib/features/with-http-language-header.d.ts +63 -0
- package/localization/lib/features/with-http-language-query-param.d.ts +61 -0
- package/localization/lib/loaders/browser-language-loader.d.ts +32 -0
- package/localization/lib/localization.config.d.ts +81 -2
- package/localization/lib/localization.logger.d.ts +3 -0
- package/localization/lib/localization.service.d.ts +42 -7
- package/package.json +8 -7
- package/rxjs/index.d.ts +1 -1
- package/rxjs/lib/delay-until.d.ts +22 -0
- package/rxjs/lib/from-element-mutation.d.ts +21 -0
- package/rxjs/lib/from-element-resize.d.ts +24 -0
- package/rxjs/lib/from-events.d.ts +24 -0
- package/rxjs/lib/from-query-list.d.ts +22 -0
- package/sdk/lib/application-environment.d.ts +59 -0
- package/theming/lib/helpers/prefers-dark-theme.d.ts +18 -0
- package/theming/lib/helpers/resolve-theme.d.ts +25 -0
- package/theming/lib/helpers/theme-storage.d.ts +42 -0
- package/theming/lib/theming.config.d.ts +46 -0
- package/theming/lib/theming.service.d.ts +31 -0
- package/utils/lib/decorators/pure.d.ts +51 -0
- package/utils/lib/helpers/angular.d.ts +36 -0
- package/utils/lib/helpers/array.d.ts +4 -0
- package/utils/lib/helpers/build-url.d.ts +20 -0
- package/utils/lib/helpers/build-website-url.d.ts +2 -1
- package/utils/lib/helpers/cache-storage-client.d.ts +51 -0
- package/utils/lib/helpers/coercion.d.ts +17 -0
- package/utils/lib/helpers/debounce.d.ts +27 -0
- package/utils/lib/helpers/defer-fn.d.ts +20 -0
- package/utils/lib/helpers/dom.d.ts +70 -0
- package/utils/lib/helpers/get-axis.d.ts +20 -0
- package/utils/lib/helpers/get-language-code.d.ts +17 -0
- package/utils/lib/helpers/get-opposite-side.d.ts +21 -0
- package/utils/lib/helpers/get-side.d.ts +17 -0
- package/utils/lib/helpers/get-unique-id.d.ts +33 -0
- package/utils/lib/helpers/match-url.d.ts +40 -0
- package/utils/lib/helpers/ng-changes.d.ts +52 -0
- package/utils/lib/helpers/provide-config.d.ts +56 -0
- package/utils/lib/helpers/queue.d.ts +83 -0
- package/utils/lib/helpers/type-guards.d.ts +57 -0
- package/utils/lib/helpers/until-destroyed.d.ts +38 -0
- package/esm2022/rxjs/lib/form-query-list.mjs +0 -5
- package/rxjs/lib/form-query-list.d.ts +0 -3
|
@@ -1,21 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The HTTP 'Etag' header, used for web cache validation.
|
|
3
|
+
*/
|
|
1
4
|
export const HTTP_ETAG_HEADER = 'Etag';
|
|
5
|
+
/**
|
|
6
|
+
* The HTTP 'If-None-Match' header, used in conditional requests to compare against the ETag.
|
|
7
|
+
*/
|
|
2
8
|
export const HTTP_IF_NONE_MATCH_HEADER = 'If-None-Match';
|
|
9
|
+
/**
|
|
10
|
+
* The HTTP 'Cache-Control' header, used to specify directives for caching mechanisms in requests and responses.
|
|
11
|
+
*/
|
|
3
12
|
export const HTTP_CACHE_CONTROL_HEADER = 'Cache-Control';
|
|
13
|
+
/**
|
|
14
|
+
* A client for managing cache storage for web applications. It simplifies interactions with the Cache Storage API,
|
|
15
|
+
* allowing for the caching, retrieval, and deletion of request responses. This class uses HTTP caching headers to
|
|
16
|
+
* optimize network requests and cache management.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* // Creating an instance of CacheStorageClient
|
|
21
|
+
* const cacheClient = new CacheStorageClient('my-cache');
|
|
22
|
+
*
|
|
23
|
+
* // Requesting and caching data
|
|
24
|
+
* cacheClient.request('https://api.example.com/data').then(data => {
|
|
25
|
+
* console.log(data);
|
|
26
|
+
* });
|
|
27
|
+
*
|
|
28
|
+
* // Deleting a specific cache entry
|
|
29
|
+
* cacheClient.delete('https://api.example.com/data');
|
|
30
|
+
*
|
|
31
|
+
* // Clearing all cache entries
|
|
32
|
+
* cacheClient.deleteAll();
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
4
35
|
export class CacheStorageClient {
|
|
5
36
|
constructor(cacheKey, cacheStorage = window.caches) {
|
|
6
37
|
this.cacheKey = cacheKey;
|
|
7
38
|
this.cacheStorage = cacheStorage;
|
|
8
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Deletes a specific cache entry.
|
|
42
|
+
*
|
|
43
|
+
* @param {RequestInfo | URL} request - The request or URL to delete from the cache.
|
|
44
|
+
* @returns {Promise<boolean>} A promise that resolves to a boolean indicating whether the deletion was successful.
|
|
45
|
+
*/
|
|
9
46
|
async delete(request) {
|
|
10
47
|
const cache = await this.getCache();
|
|
11
48
|
return cache.delete(request);
|
|
12
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Deletes all entries from the cache.
|
|
52
|
+
*
|
|
53
|
+
* @returns {Promise<void>} A promise that resolves when all entries have been deleted.
|
|
54
|
+
*/
|
|
13
55
|
async deleteAll() {
|
|
14
56
|
const cache = await this.getCache();
|
|
15
57
|
for (const key of await cache.keys()) {
|
|
16
58
|
await cache.delete(key);
|
|
17
59
|
}
|
|
18
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Performs a request, caching the response if applicable. If a response is cached for the request and still valid,
|
|
63
|
+
* it returns the cached response instead of making a new network request.
|
|
64
|
+
*
|
|
65
|
+
* @template T - The expected response data type.
|
|
66
|
+
* @param {RequestInfo | URL} requestInfo - The request information or URL to fetch and cache.
|
|
67
|
+
* @param {(response: Response) => boolean} [shouldDelete=({ status }) => status >= 400 && status < 500] - An optional function to determine if the cache entry should be deleted based on the response.
|
|
68
|
+
* @returns {Promise<T | null>} A promise that resolves to the response data, or null if the request fails.
|
|
69
|
+
*/
|
|
19
70
|
async request(requestInfo, shouldDelete = ({ status }) => status >= 400 && status < 500) {
|
|
20
71
|
const cache = await this.getCache();
|
|
21
72
|
const request = await this.prepareRequest(cache, requestInfo);
|
|
@@ -50,4 +101,4 @@ export class CacheStorageClient {
|
|
|
50
101
|
return cache.match(request).then((res) => res ?? null);
|
|
51
102
|
}
|
|
52
103
|
}
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtc3RvcmFnZS1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2NhY2hlLXN0b3JhZ2UtY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDO0FBRXZDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsZUFBZSxDQUFDO0FBRXpEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsZUFBZSxDQUFDO0FBRXpEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQ21CLFFBQWdCLEVBQ2hCLGVBQWUsTUFBTSxDQUFDLE1BQU07UUFENUIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7SUFDNUMsQ0FBQztJQUVKOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUEwQjtRQUM1QyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVwQyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsU0FBUztRQUNwQixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNwQyxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3BDLE1BQU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLEtBQUssQ0FBQyxPQUFPLENBQUksV0FBOEIsRUFBRSxlQUFlLENBQUMsRUFBRSxNQUFNLEVBQVksRUFBRSxFQUFFLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxNQUFNLEdBQUcsR0FBRztRQUM1SCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNwQyxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzlELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEQsSUFBSSxRQUFRLElBQUksWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDeEMsTUFBTSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzdCO1FBQ0QsT0FBTyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFUyxLQUFLLENBQUMsUUFBUTtRQUN0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRVMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFZLEVBQUUsV0FBOEI7UUFDekUsTUFBTSxjQUFjLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sSUFBSSxHQUFHLGNBQWMsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLElBQUksSUFBSSxDQUFDO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksSUFBSSxFQUFFO1lBQ1IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDdEQ7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRVMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFZLEVBQUUsT0FBZ0I7UUFDeEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hELE1BQU0sWUFBWSxHQUFHLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDdkUsSUFBSSxZQUFZLEtBQUssVUFBVSxFQUFFO1lBQy9CLE1BQU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUU1QixPQUFPLFFBQVEsQ0FBQztTQUNqQjtRQUNELElBQUksUUFBUSxFQUFFLEVBQUUsRUFBRTtZQUNoQixNQUFNLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN0RDtRQUVELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBIVFRQICdFdGFnJyBoZWFkZXIsIHVzZWQgZm9yIHdlYiBjYWNoZSB2YWxpZGF0aW9uLlxuICovXG5leHBvcnQgY29uc3QgSFRUUF9FVEFHX0hFQURFUiA9ICdFdGFnJztcblxuLyoqXG4gKiBUaGUgSFRUUCAnSWYtTm9uZS1NYXRjaCcgaGVhZGVyLCB1c2VkIGluIGNvbmRpdGlvbmFsIHJlcXVlc3RzIHRvIGNvbXBhcmUgYWdhaW5zdCB0aGUgRVRhZy5cbiAqL1xuZXhwb3J0IGNvbnN0IEhUVFBfSUZfTk9ORV9NQVRDSF9IRUFERVIgPSAnSWYtTm9uZS1NYXRjaCc7XG5cbi8qKlxuICogVGhlIEhUVFAgJ0NhY2hlLUNvbnRyb2wnIGhlYWRlciwgdXNlZCB0byBzcGVjaWZ5IGRpcmVjdGl2ZXMgZm9yIGNhY2hpbmcgbWVjaGFuaXNtcyBpbiByZXF1ZXN0cyBhbmQgcmVzcG9uc2VzLlxuICovXG5leHBvcnQgY29uc3QgSFRUUF9DQUNIRV9DT05UUk9MX0hFQURFUiA9ICdDYWNoZS1Db250cm9sJztcblxuLyoqXG4gKiBBIGNsaWVudCBmb3IgbWFuYWdpbmcgY2FjaGUgc3RvcmFnZSBmb3Igd2ViIGFwcGxpY2F0aW9ucy4gSXQgc2ltcGxpZmllcyBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgQ2FjaGUgU3RvcmFnZSBBUEksXG4gKiBhbGxvd2luZyBmb3IgdGhlIGNhY2hpbmcsIHJldHJpZXZhbCwgYW5kIGRlbGV0aW9uIG9mIHJlcXVlc3QgcmVzcG9uc2VzLiBUaGlzIGNsYXNzIHVzZXMgSFRUUCBjYWNoaW5nIGhlYWRlcnMgdG9cbiAqIG9wdGltaXplIG5ldHdvcmsgcmVxdWVzdHMgYW5kIGNhY2hlIG1hbmFnZW1lbnQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiAvLyBDcmVhdGluZyBhbiBpbnN0YW5jZSBvZiBDYWNoZVN0b3JhZ2VDbGllbnRcbiAqIGNvbnN0IGNhY2hlQ2xpZW50ID0gbmV3IENhY2hlU3RvcmFnZUNsaWVudCgnbXktY2FjaGUnKTtcbiAqXG4gKiAvLyBSZXF1ZXN0aW5nIGFuZCBjYWNoaW5nIGRhdGFcbiAqIGNhY2hlQ2xpZW50LnJlcXVlc3QoJ2h0dHBzOi8vYXBpLmV4YW1wbGUuY29tL2RhdGEnKS50aGVuKGRhdGEgPT4ge1xuICogICBjb25zb2xlLmxvZyhkYXRhKTtcbiAqIH0pO1xuICpcbiAqIC8vIERlbGV0aW5nIGEgc3BlY2lmaWMgY2FjaGUgZW50cnlcbiAqIGNhY2hlQ2xpZW50LmRlbGV0ZSgnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vZGF0YScpO1xuICpcbiAqIC8vIENsZWFyaW5nIGFsbCBjYWNoZSBlbnRyaWVzXG4gKiBjYWNoZUNsaWVudC5kZWxldGVBbGwoKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgQ2FjaGVTdG9yYWdlQ2xpZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYWNoZUtleTogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FjaGVTdG9yYWdlID0gd2luZG93LmNhY2hlcyxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBEZWxldGVzIGEgc3BlY2lmaWMgY2FjaGUgZW50cnkuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVxdWVzdEluZm8gfCBVUkx9IHJlcXVlc3QgLSBUaGUgcmVxdWVzdCBvciBVUkwgdG8gZGVsZXRlIGZyb20gdGhlIGNhY2hlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZGVsZXRpb24gd2FzIHN1Y2Nlc3NmdWwuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGVsZXRlKHJlcXVlc3Q6IFJlcXVlc3RJbmZvIHwgVVJMKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgY2FjaGUgPSBhd2FpdCB0aGlzLmdldENhY2hlKCk7XG5cbiAgICByZXR1cm4gY2FjaGUuZGVsZXRlKHJlcXVlc3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZXMgYWxsIGVudHJpZXMgZnJvbSB0aGUgY2FjaGUuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGFsbCBlbnRyaWVzIGhhdmUgYmVlbiBkZWxldGVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGRlbGV0ZUFsbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjYWNoZSA9IGF3YWl0IHRoaXMuZ2V0Q2FjaGUoKTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBhd2FpdCBjYWNoZS5rZXlzKCkpIHtcbiAgICAgIGF3YWl0IGNhY2hlLmRlbGV0ZShrZXkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtcyBhIHJlcXVlc3QsIGNhY2hpbmcgdGhlIHJlc3BvbnNlIGlmIGFwcGxpY2FibGUuIElmIGEgcmVzcG9uc2UgaXMgY2FjaGVkIGZvciB0aGUgcmVxdWVzdCBhbmQgc3RpbGwgdmFsaWQsXG4gICAqIGl0IHJldHVybnMgdGhlIGNhY2hlZCByZXNwb25zZSBpbnN0ZWFkIG9mIG1ha2luZyBhIG5ldyBuZXR3b3JrIHJlcXVlc3QuXG4gICAqXG4gICAqIEB0ZW1wbGF0ZSBUIC0gVGhlIGV4cGVjdGVkIHJlc3BvbnNlIGRhdGEgdHlwZS5cbiAgICogQHBhcmFtIHtSZXF1ZXN0SW5mbyB8IFVSTH0gcmVxdWVzdEluZm8gLSBUaGUgcmVxdWVzdCBpbmZvcm1hdGlvbiBvciBVUkwgdG8gZmV0Y2ggYW5kIGNhY2hlLlxuICAgKiBAcGFyYW0geyhyZXNwb25zZTogUmVzcG9uc2UpID0+IGJvb2xlYW59IFtzaG91bGREZWxldGU9KHsgc3RhdHVzIH0pID0+IHN0YXR1cyA+PSA0MDAgJiYgc3RhdHVzIDwgNTAwXSAtIEFuIG9wdGlvbmFsIGZ1bmN0aW9uIHRvIGRldGVybWluZSBpZiB0aGUgY2FjaGUgZW50cnkgc2hvdWxkIGJlIGRlbGV0ZWQgYmFzZWQgb24gdGhlIHJlc3BvbnNlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUIHwgbnVsbD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSByZXNwb25zZSBkYXRhLCBvciBudWxsIGlmIHRoZSByZXF1ZXN0IGZhaWxzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlcXVlc3Q8VD4ocmVxdWVzdEluZm86IFJlcXVlc3RJbmZvIHwgVVJMLCBzaG91bGREZWxldGUgPSAoeyBzdGF0dXMgfTogUmVzcG9uc2UpID0+IHN0YXR1cyA+PSA0MDAgJiYgc3RhdHVzIDwgNTAwKTogUHJvbWlzZTxUIHwgbnVsbD4ge1xuICAgIGNvbnN0IGNhY2hlID0gYXdhaXQgdGhpcy5nZXRDYWNoZSgpO1xuICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCB0aGlzLnByZXBhcmVSZXF1ZXN0KGNhY2hlLCByZXF1ZXN0SW5mbyk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnNlbmRSZXF1ZXN0KGNhY2hlLCByZXF1ZXN0KTtcbiAgICBpZiAocmVzcG9uc2UgJiYgc2hvdWxkRGVsZXRlPy4ocmVzcG9uc2UpKSB7XG4gICAgICBhd2FpdCBjYWNoZS5kZWxldGUocmVxdWVzdCk7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZT8uanNvbigpID8/IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZ2V0Q2FjaGUoKTogUHJvbWlzZTxDYWNoZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlU3RvcmFnZS5vcGVuKHRoaXMuY2FjaGVLZXkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHByZXBhcmVSZXF1ZXN0KGNhY2hlOiBDYWNoZSwgcmVxdWVzdEluZm86IFJlcXVlc3RJbmZvIHwgVVJMKTogUHJvbWlzZTxSZXF1ZXN0PiB7XG4gICAgY29uc3QgY2FjaGVkUmVzcG9uc2UgPSBhd2FpdCBjYWNoZS5tYXRjaChyZXF1ZXN0SW5mbyk7XG4gICAgY29uc3QgZXRhZyA9IGNhY2hlZFJlc3BvbnNlPy5oZWFkZXJzPy5nZXQoSFRUUF9FVEFHX0hFQURFUikgPz8gbnVsbDtcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFJlcXVlc3QocmVxdWVzdEluZm8pO1xuICAgIGlmIChldGFnKSB7XG4gICAgICByZXF1ZXN0LmhlYWRlcnMuc2V0KEhUVFBfSUZfTk9ORV9NQVRDSF9IRUFERVIsIGV0YWcpO1xuICAgIH1cblxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHNlbmRSZXF1ZXN0KGNhY2hlOiBDYWNoZSwgcmVxdWVzdDogUmVxdWVzdCk6IFByb21pc2U8UmVzcG9uc2UgfCBudWxsPiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChyZXF1ZXN0KS5jYXRjaCgoKSA9PiBudWxsKTtcbiAgICBjb25zdCBjYWNoZUNvbnRyb2wgPSByZXNwb25zZT8uaGVhZGVycz8uZ2V0KEhUVFBfQ0FDSEVfQ09OVFJPTF9IRUFERVIpO1xuICAgIGlmIChjYWNoZUNvbnRyb2wgPT09ICduby1jYWNoZScpIHtcbiAgICAgIGF3YWl0IGNhY2hlLmRlbGV0ZShyZXF1ZXN0KTtcblxuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cbiAgICBpZiAocmVzcG9uc2U/Lm9rKSB7XG4gICAgICBhd2FpdCBjYWNoZS5wdXQocmVxdWVzdCwgcmVzcG9uc2UpLmNhdGNoKCgpID0+IG51bGwpO1xuICAgIH1cblxuICAgIHJldHVybiBjYWNoZS5tYXRjaChyZXF1ZXN0KS50aGVuKChyZXMpID0+IHJlcyA/PyBudWxsKTtcbiAgfVxufVxuIl19
|
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
import { coerceArray } from '@angular/cdk/coercion';
|
|
2
|
+
/**
|
|
3
|
+
* Coerces a value to an array. If the value is already an array, it is returned directly.
|
|
4
|
+
* If the value is not an array, it is wrapped in an array. This utility is useful for
|
|
5
|
+
* handling values that can be either single values or arrays, ensuring consistent array handling.
|
|
6
|
+
*
|
|
7
|
+
* @param {string | string[]} value - The value to coerce to an array. Can be a single string or an array of strings.
|
|
8
|
+
* @returns {string[]} The coerced value as an array of strings.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* // Coercing a single string to an array
|
|
13
|
+
* console.log(arrayAttribute('singleValue')); // Outputs: ['singleValue']
|
|
14
|
+
*
|
|
15
|
+
* // Returning an array directly
|
|
16
|
+
* console.log(arrayAttribute(['value1', 'value2'])); // Outputs: ['value1', 'value2']
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
2
19
|
export function arrayAttribute(value) {
|
|
3
20
|
return coerceArray(value);
|
|
4
21
|
}
|
|
5
22
|
export { coerceArray, coerceCssPixelValue, coerceElement, coerceStringArray } from '@angular/cdk/coercion';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lcmNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2NvZXJjaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRDs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsS0FBd0I7SUFDckQsT0FBTyxXQUFXLENBQVMsS0FBSyxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUVELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VBcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbi8qKlxuICogQ29lcmNlcyBhIHZhbHVlIHRvIGFuIGFycmF5LiBJZiB0aGUgdmFsdWUgaXMgYWxyZWFkeSBhbiBhcnJheSwgaXQgaXMgcmV0dXJuZWQgZGlyZWN0bHkuXG4gKiBJZiB0aGUgdmFsdWUgaXMgbm90IGFuIGFycmF5LCBpdCBpcyB3cmFwcGVkIGluIGFuIGFycmF5LiBUaGlzIHV0aWxpdHkgaXMgdXNlZnVsIGZvclxuICogaGFuZGxpbmcgdmFsdWVzIHRoYXQgY2FuIGJlIGVpdGhlciBzaW5nbGUgdmFsdWVzIG9yIGFycmF5cywgZW5zdXJpbmcgY29uc2lzdGVudCBhcnJheSBoYW5kbGluZy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZyB8IHN0cmluZ1tdfSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjb2VyY2UgdG8gYW4gYXJyYXkuIENhbiBiZSBhIHNpbmdsZSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAqIEByZXR1cm5zIHtzdHJpbmdbXX0gVGhlIGNvZXJjZWQgdmFsdWUgYXMgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIENvZXJjaW5nIGEgc2luZ2xlIHN0cmluZyB0byBhbiBhcnJheVxuICogY29uc29sZS5sb2coYXJyYXlBdHRyaWJ1dGUoJ3NpbmdsZVZhbHVlJykpOyAvLyBPdXRwdXRzOiBbJ3NpbmdsZVZhbHVlJ11cbiAqXG4gKiAvLyBSZXR1cm5pbmcgYW4gYXJyYXkgZGlyZWN0bHlcbiAqIGNvbnNvbGUubG9nKGFycmF5QXR0cmlidXRlKFsndmFsdWUxJywgJ3ZhbHVlMiddKSk7IC8vIE91dHB1dHM6IFsndmFsdWUxJywgJ3ZhbHVlMiddXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFycmF5QXR0cmlidXRlKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIGNvZXJjZUFycmF5PHN0cmluZz4odmFsdWUpO1xufVxuXG5leHBvcnQgeyBjb2VyY2VBcnJheSwgY29lcmNlQ3NzUGl4ZWxWYWx1ZSwgY29lcmNlRWxlbWVudCwgY29lcmNlU3RyaW5nQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuIl19
|
|
@@ -1,3 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a debounced function that delays invoking the provided function until after `delay` milliseconds
|
|
3
|
+
* have elapsed since the last time the debounced function was invoked. Optionally, the function can be
|
|
4
|
+
* triggered immediately on the first call, then debounced for subsequent calls.
|
|
5
|
+
*
|
|
6
|
+
* @template Args - A tuple representing the types of arguments the `func` accepts.
|
|
7
|
+
* @param {(...args: Args) => void} func - The function to debounce.
|
|
8
|
+
* @param {number} delay - The number of milliseconds to delay.
|
|
9
|
+
* @param {boolean} [immediate=false] - Whether to trigger the function immediately on the first call,
|
|
10
|
+
* and then debounce subsequent calls.
|
|
11
|
+
* @returns {(...args: Args) => void} A new, debounced function.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* // Example usage with a window resize event
|
|
16
|
+
* const handleResize = debounce(() => {
|
|
17
|
+
* console.log('Window resized');
|
|
18
|
+
* }, 250);
|
|
19
|
+
* window.addEventListener('resize', handleResize);
|
|
20
|
+
*
|
|
21
|
+
* // Example using immediate invocation
|
|
22
|
+
* const processKeyPress = debounce((event) => {
|
|
23
|
+
* console.log('Key pressed:', event.key);
|
|
24
|
+
* }, 200, true);
|
|
25
|
+
* document.addEventListener('keypress', processKeyPress);
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
1
28
|
export function debounce(func, delay, immediate = false) {
|
|
2
29
|
let timeout = null;
|
|
3
30
|
return function (...args) {
|
|
@@ -18,4 +45,4 @@ export function debounce(func, delay, immediate = false) {
|
|
|
18
45
|
}
|
|
19
46
|
};
|
|
20
47
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVib3VuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2RlYm91bmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQXlCLElBQTZCLEVBQUUsS0FBYSxFQUFFLFNBQVMsR0FBRyxLQUFLO0lBQzlHLElBQUksT0FBTyxHQUFrQixJQUFJLENBQUM7SUFFbEMsT0FBTyxVQUF5QixHQUFHLElBQVU7UUFDM0MsNERBQTREO1FBQzVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQztRQUNyQixNQUFNLGVBQWUsR0FBRyxTQUFTLElBQUksT0FBTyxLQUFLLElBQUksQ0FBQztRQUN0RCxJQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7WUFDcEIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3ZCO1FBQ0QsT0FBTyxHQUFHLFVBQVUsQ0FBQztZQUNuQixPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ2YsSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDM0I7UUFDSCxDQUFDLEVBQUUsS0FBSyxDQUFzQixDQUFDO1FBQy9CLElBQUksZUFBZSxFQUFFO1lBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ3JlYXRlcyBhIGRlYm91bmNlZCBmdW5jdGlvbiB0aGF0IGRlbGF5cyBpbnZva2luZyB0aGUgcHJvdmlkZWQgZnVuY3Rpb24gdW50aWwgYWZ0ZXIgYGRlbGF5YCBtaWxsaXNlY29uZHNcbiAqIGhhdmUgZWxhcHNlZCBzaW5jZSB0aGUgbGFzdCB0aW1lIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gd2FzIGludm9rZWQuIE9wdGlvbmFsbHksIHRoZSBmdW5jdGlvbiBjYW4gYmVcbiAqIHRyaWdnZXJlZCBpbW1lZGlhdGVseSBvbiB0aGUgZmlyc3QgY2FsbCwgdGhlbiBkZWJvdW5jZWQgZm9yIHN1YnNlcXVlbnQgY2FsbHMuXG4gKlxuICogQHRlbXBsYXRlIEFyZ3MgLSBBIHR1cGxlIHJlcHJlc2VudGluZyB0aGUgdHlwZXMgb2YgYXJndW1lbnRzIHRoZSBgZnVuY2AgYWNjZXB0cy5cbiAqIEBwYXJhbSB7KC4uLmFyZ3M6IEFyZ3MpID0+IHZvaWR9IGZ1bmMgLSBUaGUgZnVuY3Rpb24gdG8gZGVib3VuY2UuXG4gKiBAcGFyYW0ge251bWJlcn0gZGVsYXkgLSBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBkZWxheS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2ltbWVkaWF0ZT1mYWxzZV0gLSBXaGV0aGVyIHRvIHRyaWdnZXIgdGhlIGZ1bmN0aW9uIGltbWVkaWF0ZWx5IG9uIHRoZSBmaXJzdCBjYWxsLFxuICogYW5kIHRoZW4gZGVib3VuY2Ugc3Vic2VxdWVudCBjYWxscy5cbiAqIEByZXR1cm5zIHsoLi4uYXJnczogQXJncykgPT4gdm9pZH0gQSBuZXcsIGRlYm91bmNlZCBmdW5jdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIEV4YW1wbGUgdXNhZ2Ugd2l0aCBhIHdpbmRvdyByZXNpemUgZXZlbnRcbiAqIGNvbnN0IGhhbmRsZVJlc2l6ZSA9IGRlYm91bmNlKCgpID0+IHtcbiAqICAgY29uc29sZS5sb2coJ1dpbmRvdyByZXNpemVkJyk7XG4gKiB9LCAyNTApO1xuICogd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGhhbmRsZVJlc2l6ZSk7XG4gKlxuICogLy8gRXhhbXBsZSB1c2luZyBpbW1lZGlhdGUgaW52b2NhdGlvblxuICogY29uc3QgcHJvY2Vzc0tleVByZXNzID0gZGVib3VuY2UoKGV2ZW50KSA9PiB7XG4gKiAgIGNvbnNvbGUubG9nKCdLZXkgcHJlc3NlZDonLCBldmVudC5rZXkpO1xuICogfSwgMjAwLCB0cnVlKTtcbiAqIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXByZXNzJywgcHJvY2Vzc0tleVByZXNzKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVib3VuY2U8QXJncyBleHRlbmRzIHVua25vd25bXT4oZnVuYzogKC4uLmFyZ3M6IEFyZ3MpID0+IHZvaWQsIGRlbGF5OiBudW1iZXIsIGltbWVkaWF0ZSA9IGZhbHNlKTogKC4uLmFyZ3M6IEFyZ3MpID0+IHZvaWQge1xuICBsZXQgdGltZW91dDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uICh0aGlzOiB1bmtub3duLCAuLi5hcmdzOiBBcmdzKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXM7XG4gICAgY29uc3QgY2FsbEltbWVkaWF0ZWx5ID0gaW1tZWRpYXRlICYmIHRpbWVvdXQgPT09IG51bGw7XG4gICAgaWYgKHRpbWVvdXQgIT09IG51bGwpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICB9XG4gICAgdGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgdGltZW91dCA9IG51bGw7XG4gICAgICBpZiAoIWNhbGxJbW1lZGlhdGVseSkge1xuICAgICAgICBmdW5jLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xuICAgICAgfVxuICAgIH0sIGRlbGF5KSBhcyB1bmtub3duIGFzIG51bWJlcjtcbiAgICBpZiAoY2FsbEltbWVkaWF0ZWx5KSB7XG4gICAgICBmdW5jLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,4 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defers the execution of a function until the current call stack is clear.
|
|
3
|
+
* This is achieved by using `setTimeout` with a delay of `0`, effectively placing the function
|
|
4
|
+
* at the end of the event queue and allowing the browser to complete any pending tasks before execution.
|
|
5
|
+
*
|
|
6
|
+
* @param {() => void} fn - The function to be deferred.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* // Deferring a simple function
|
|
11
|
+
* deferFn(() => console.log('This will be logged after the current execution context completes.'));
|
|
12
|
+
*
|
|
13
|
+
* // Using deferFn to update the UI after a synchronous operation
|
|
14
|
+
* function updateUI() {
|
|
15
|
+
* // UI update logic here
|
|
16
|
+
* }
|
|
17
|
+
* // Assume we're inside a synchronous block of code that updates data
|
|
18
|
+
* deferFn(updateUI); // Ensures UI is updated after data changes are fully applied
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
1
21
|
export function deferFn(fn) {
|
|
2
22
|
setTimeout(fn, 0);
|
|
3
23
|
}
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmZXItZm4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2RlZmVyLWZuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxFQUFjO0lBQ3BDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGVmZXJzIHRoZSBleGVjdXRpb24gb2YgYSBmdW5jdGlvbiB1bnRpbCB0aGUgY3VycmVudCBjYWxsIHN0YWNrIGlzIGNsZWFyLlxuICogVGhpcyBpcyBhY2hpZXZlZCBieSB1c2luZyBgc2V0VGltZW91dGAgd2l0aCBhIGRlbGF5IG9mIGAwYCwgZWZmZWN0aXZlbHkgcGxhY2luZyB0aGUgZnVuY3Rpb25cbiAqIGF0IHRoZSBlbmQgb2YgdGhlIGV2ZW50IHF1ZXVlIGFuZCBhbGxvd2luZyB0aGUgYnJvd3NlciB0byBjb21wbGV0ZSBhbnkgcGVuZGluZyB0YXNrcyBiZWZvcmUgZXhlY3V0aW9uLlxuICpcbiAqIEBwYXJhbSB7KCkgPT4gdm9pZH0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gYmUgZGVmZXJyZWQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiAvLyBEZWZlcnJpbmcgYSBzaW1wbGUgZnVuY3Rpb25cbiAqIGRlZmVyRm4oKCkgPT4gY29uc29sZS5sb2coJ1RoaXMgd2lsbCBiZSBsb2dnZWQgYWZ0ZXIgdGhlIGN1cnJlbnQgZXhlY3V0aW9uIGNvbnRleHQgY29tcGxldGVzLicpKTtcbiAqXG4gKiAvLyBVc2luZyBkZWZlckZuIHRvIHVwZGF0ZSB0aGUgVUkgYWZ0ZXIgYSBzeW5jaHJvbm91cyBvcGVyYXRpb25cbiAqIGZ1bmN0aW9uIHVwZGF0ZVVJKCkge1xuICogICAvLyBVSSB1cGRhdGUgbG9naWMgaGVyZVxuICogfVxuICogLy8gQXNzdW1lIHdlJ3JlIGluc2lkZSBhIHN5bmNocm9ub3VzIGJsb2NrIG9mIGNvZGUgdGhhdCB1cGRhdGVzIGRhdGFcbiAqIGRlZmVyRm4odXBkYXRlVUkpOyAvLyBFbnN1cmVzIFVJIGlzIHVwZGF0ZWQgYWZ0ZXIgZGF0YSBjaGFuZ2VzIGFyZSBmdWxseSBhcHBsaWVkXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmVyRm4oZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgc2V0VGltZW91dChmbiwgMCk7XG59XG4iXX0=
|
|
@@ -1,19 +1,56 @@
|
|
|
1
1
|
import { isNumber, isString } from './type-guards';
|
|
2
|
+
/**
|
|
3
|
+
* Applies a set of CSS styles to an HTML element.
|
|
4
|
+
*
|
|
5
|
+
* @param {HTMLElement} element - The element to apply styles to.
|
|
6
|
+
* @param {Partial<CSSStyleDeclaration | Record<keyof CSSStyleDeclaration, string | null>>} styles - An object containing CSS properties and values to apply.
|
|
7
|
+
*/
|
|
2
8
|
export function applyStyles(element, styles) {
|
|
3
9
|
Object.assign(element.style, styles);
|
|
4
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* Converts a boolean value to a corresponding attribute string.
|
|
13
|
+
*
|
|
14
|
+
* @param {boolean} state - The boolean state to convert.
|
|
15
|
+
* @returns {string} 'true' if the state is true; otherwise, 'false'.
|
|
16
|
+
*/
|
|
5
17
|
export function booleanToAttributeString(state) {
|
|
6
18
|
return booleanToOptionalAttributeString(state) ?? 'false';
|
|
7
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Converts a boolean value to 'true' or null, useful for setting attributes based on boolean conditions.
|
|
22
|
+
*
|
|
23
|
+
* @param {boolean} state - The boolean state to convert.
|
|
24
|
+
* @returns {string | null} 'true' if the state is true; otherwise, null.
|
|
25
|
+
*/
|
|
8
26
|
export function booleanToOptionalAttributeString(state) {
|
|
9
27
|
return state ? 'true' : null;
|
|
10
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Converts a numeric value to a pixel string, appending 'px' to the number.
|
|
31
|
+
*
|
|
32
|
+
* @param {unknown} value - The value to convert to pixels.
|
|
33
|
+
* @returns {`${number}px`} The value in pixels, or '0px' if the input is not a number.
|
|
34
|
+
*/
|
|
11
35
|
export function px(value) {
|
|
12
36
|
return isNumber(value) ? `${value}px` : '0px';
|
|
13
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Generates a CSS translate3d string for given x and y values.
|
|
40
|
+
*
|
|
41
|
+
* @param {string | 0} x - The translation value along the x-axis.
|
|
42
|
+
* @param {string | 0} y - The translation value along the y-axis.
|
|
43
|
+
* @returns {`translate3d(${string | 0}, ${string | 0}, 0)`} The CSS translate3d value.
|
|
44
|
+
*/
|
|
14
45
|
export function cssTranslate(x, y) {
|
|
15
46
|
return `translate3d(${x}, ${y}, 0)`;
|
|
16
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Disables or re-enables CSS transitions on an element.
|
|
50
|
+
*
|
|
51
|
+
* @param {HTMLElement} element - The element to modify.
|
|
52
|
+
* @param {boolean} disabled - Whether to disable CSS transitions.
|
|
53
|
+
*/
|
|
17
54
|
export function disableCSSTransitions(element, disabled) {
|
|
18
55
|
if (disabled) {
|
|
19
56
|
applyStyles(element, { transition: 'none' });
|
|
@@ -23,9 +60,21 @@ export function disableCSSTransitions(element, disabled) {
|
|
|
23
60
|
applyStyles(element, { transition: null });
|
|
24
61
|
}
|
|
25
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Forces the browser to reflow the layout, useful for triggering CSS transitions or animations.
|
|
65
|
+
*
|
|
66
|
+
* @param {HTMLElement} element - The element to force a reflow on.
|
|
67
|
+
*/
|
|
26
68
|
export function forceLayoutReflow(element) {
|
|
27
69
|
element.offsetHeight;
|
|
28
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Sets an attribute on an HTML element, converting the value to a string if necessary.
|
|
73
|
+
*
|
|
74
|
+
* @param {HTMLElement} element - The element to set the attribute on.
|
|
75
|
+
* @param {string} attribute - The name of the attribute to set.
|
|
76
|
+
* @param {unknown} value - The value of the attribute; will be converted to a string if it's not null or undefined.
|
|
77
|
+
*/
|
|
29
78
|
export function setAttribute(element, attribute, value) {
|
|
30
79
|
if (isString(value) || isNumber(value)) {
|
|
31
80
|
element.setAttribute(attribute, value.toString());
|
|
@@ -34,6 +83,12 @@ export function setAttribute(element, attribute, value) {
|
|
|
34
83
|
element.toggleAttribute(attribute, !!value);
|
|
35
84
|
}
|
|
36
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Creates a ResizeObserver instance safely, falling back to a dummy if the API is not supported.
|
|
88
|
+
*
|
|
89
|
+
* @param {ResizeObserverCallback} callback - The callback to execute when an observed element's size changes.
|
|
90
|
+
* @returns {ResizeObserver} A ResizeObserver instance or a dummy object with no-op methods if unsupported.
|
|
91
|
+
*/
|
|
37
92
|
export function createResizeObserver(callback) {
|
|
38
93
|
try {
|
|
39
94
|
return new ResizeObserver(callback);
|
|
@@ -42,6 +97,13 @@ export function createResizeObserver(callback) {
|
|
|
42
97
|
return { observe: () => void 0, disconnect: () => void 0, unobserve: () => void 0 };
|
|
43
98
|
}
|
|
44
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* Creates a MutationObserver instance safely, falling back to a dummy if the API is not supported.
|
|
102
|
+
*
|
|
103
|
+
* @param {Subscriber<MutationRecord>} observer - The RxJS Subscriber to emit next values to.
|
|
104
|
+
* @param {(mutations: MutationRecord[]) => boolean} callback - The callback that determines whether to notify the observer based on mutations.
|
|
105
|
+
* @returns {MutationObserver} A MutationObserver instance or a dummy object with no-op methods if unsupported.
|
|
106
|
+
*/
|
|
45
107
|
export function createMutationObserver(observer, callback) {
|
|
46
108
|
try {
|
|
47
109
|
return new MutationObserver((mutations) => {
|
|
@@ -54,6 +116,14 @@ export function createMutationObserver(observer, callback) {
|
|
|
54
116
|
return { disconnect: () => void 0, observe: () => void 0, takeRecords: () => [] };
|
|
55
117
|
}
|
|
56
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* Checks whether one element contains another in the DOM tree.
|
|
121
|
+
*
|
|
122
|
+
* @param {Element | null} parent - The parent element.
|
|
123
|
+
* @param {Element | null} other - The element to check for containment.
|
|
124
|
+
* @param {boolean} [inclusive=true] - Whether to consider an element as containing itself.
|
|
125
|
+
* @returns {boolean} True if the parent contains the other element; false otherwise.
|
|
126
|
+
*/
|
|
57
127
|
export function containsElement(parent, other, inclusive = true) {
|
|
58
128
|
if (!parent || !other)
|
|
59
129
|
return false;
|
|
@@ -61,4 +131,4 @@ export function containsElement(parent, other, inclusive = true) {
|
|
|
61
131
|
return false;
|
|
62
132
|
return parent.contains(other);
|
|
63
133
|
}
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3V0aWxzL3NyYy9saWIvaGVscGVycy9kb20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxPQUFvQixFQUFFLE1BQXVGO0lBQ3ZJLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLEtBQWM7SUFDckQsT0FBTyxnQ0FBZ0MsQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUM7QUFDNUQsQ0FBQztBQUVELE1BQU0sVUFBVSxnQ0FBZ0MsQ0FBQyxLQUFjO0lBQzdELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxVQUFVLEVBQUUsQ0FBQyxLQUFjO0lBQy9CLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDaEQsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsQ0FBYSxFQUFFLENBQWE7SUFDdkQsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFDLE9BQW9CLEVBQUUsUUFBaUI7SUFDM0UsSUFBSSxRQUFRLEVBQUU7UUFDWixXQUFXLENBQUMsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7S0FDOUM7U0FBTTtRQUNMLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLFdBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUM1QztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsT0FBb0I7SUFDcEQsT0FBTyxDQUFDLFlBQVksQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFvQixFQUFFLFNBQWlCLEVBQUUsS0FBZTtJQUNuRixJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDdEMsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7S0FDbkQ7U0FBTTtRQUNMLE9BQU8sQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM3QztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsUUFBZ0M7SUFDbkUsSUFBSTtRQUNGLE9BQU8sSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDckM7SUFBQyxNQUFNO1FBQ04sT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7S0FDckY7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLFFBQW9DLEVBQUUsUUFBa0Q7SUFDN0gsSUFBSTtRQUNGLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3hDLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUN2QixRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzdCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO0tBQ25GO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsTUFBdUIsRUFBRSxLQUFzQixFQUFFLFNBQVMsR0FBRyxJQUFJO0lBQy9GLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDcEMsSUFBSSxDQUFDLFNBQVMsSUFBSSxNQUFNLEtBQUssS0FBSztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQ2pELE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3Vic2NyaWJlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaXNOdW1iZXIsIGlzU3RyaW5nIH0gZnJvbSAnLi90eXBlLWd1YXJkcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVN0eWxlcyhlbGVtZW50OiBIVE1MRWxlbWVudCwgc3R5bGVzOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24gfCBSZWNvcmQ8a2V5b2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiwgc3RyaW5nIHwgbnVsbD4+KTogdm9pZCB7XG4gIE9iamVjdC5hc3NpZ24oZWxlbWVudC5zdHlsZSwgc3R5bGVzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJvb2xlYW5Ub0F0dHJpYnV0ZVN0cmluZyhzdGF0ZTogYm9vbGVhbik6IHN0cmluZyB7XG4gIHJldHVybiBib29sZWFuVG9PcHRpb25hbEF0dHJpYnV0ZVN0cmluZyhzdGF0ZSkgPz8gJ2ZhbHNlJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJvb2xlYW5Ub09wdGlvbmFsQXR0cmlidXRlU3RyaW5nKHN0YXRlOiBib29sZWFuKTogc3RyaW5nIHwgbnVsbCB7XG4gIHJldHVybiBzdGF0ZSA/ICd0cnVlJyA6IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBweCh2YWx1ZTogdW5rbm93bik6IGAke251bWJlcn1weGAge1xuICByZXR1cm4gaXNOdW1iZXIodmFsdWUpID8gYCR7dmFsdWV9cHhgIDogJzBweCc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjc3NUcmFuc2xhdGUoeDogc3RyaW5nIHwgMCwgeTogc3RyaW5nIHwgMCk6IGB0cmFuc2xhdGUzZCgke3N0cmluZyB8IDB9LCAke3N0cmluZyB8IDB9LCAwKWAge1xuICByZXR1cm4gYHRyYW5zbGF0ZTNkKCR7eH0sICR7eX0sIDApYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpc2FibGVDU1NUcmFuc2l0aW9ucyhlbGVtZW50OiBIVE1MRWxlbWVudCwgZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgaWYgKGRpc2FibGVkKSB7XG4gICAgYXBwbHlTdHlsZXMoZWxlbWVudCwgeyB0cmFuc2l0aW9uOiAnbm9uZScgfSk7XG4gIH0gZWxzZSB7XG4gICAgZm9yY2VMYXlvdXRSZWZsb3coZWxlbWVudCk7XG4gICAgYXBwbHlTdHlsZXMoZWxlbWVudCwgeyB0cmFuc2l0aW9uOiBudWxsIH0pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JjZUxheW91dFJlZmxvdyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICBlbGVtZW50Lm9mZnNldEhlaWdodDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEF0dHJpYnV0ZShlbGVtZW50OiBIVE1MRWxlbWVudCwgYXR0cmlidXRlOiBzdHJpbmcsIHZhbHVlPzogdW5rbm93bikge1xuICBpZiAoaXNTdHJpbmcodmFsdWUpIHx8IGlzTnVtYmVyKHZhbHVlKSkge1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUudG9TdHJpbmcoKSk7XG4gIH0gZWxzZSB7XG4gICAgZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoYXR0cmlidXRlLCAhIXZhbHVlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVzaXplT2JzZXJ2ZXIoY2FsbGJhY2s6IFJlc2l6ZU9ic2VydmVyQ2FsbGJhY2spOiBSZXNpemVPYnNlcnZlciB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIG5ldyBSZXNpemVPYnNlcnZlcihjYWxsYmFjayk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB7IG9ic2VydmU6ICgpID0+IHZvaWQgMCwgZGlzY29ubmVjdDogKCkgPT4gdm9pZCAwLCB1bm9ic2VydmU6ICgpID0+IHZvaWQgMCB9O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNdXRhdGlvbk9ic2VydmVyKG9ic2VydmVyOiBTdWJzY3JpYmVyPE11dGF0aW9uUmVjb3JkPiwgY2FsbGJhY2s6IChtdXRhdGlvbnM6IE11dGF0aW9uUmVjb3JkW10pID0+IGJvb2xlYW4pOiBNdXRhdGlvbk9ic2VydmVyIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuICAgICAgaWYgKGNhbGxiYWNrKG11dGF0aW9ucykpIHtcbiAgICAgICAgb2JzZXJ2ZXIubmV4dChtdXRhdGlvbnNbMF0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiB7IGRpc2Nvbm5lY3Q6ICgpID0+IHZvaWQgMCwgb2JzZXJ2ZTogKCkgPT4gdm9pZCAwLCB0YWtlUmVjb3JkczogKCkgPT4gW10gfTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGFpbnNFbGVtZW50KHBhcmVudD86IEVsZW1lbnQgfCBudWxsLCBvdGhlcj86IEVsZW1lbnQgfCBudWxsLCBpbmNsdXNpdmUgPSB0cnVlKTogYm9vbGVhbiB7XG4gIGlmICghcGFyZW50IHx8ICFvdGhlcikgcmV0dXJuIGZhbHNlO1xuICBpZiAoIWluY2x1c2l2ZSAmJiBwYXJlbnQgPT09IG90aGVyKSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiBwYXJlbnQuY29udGFpbnMob3RoZXIpO1xufVxuIl19
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3V0aWxzL3NyYy9saWIvaGVscGVycy9kb20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLE9BQW9CLEVBQUUsTUFBdUY7SUFDdkksTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxLQUFjO0lBQ3JELE9BQU8sZ0NBQWdDLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDO0FBQzVELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxnQ0FBZ0MsQ0FBQyxLQUFjO0lBQzdELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMvQixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsRUFBRSxDQUFDLEtBQWM7SUFDL0IsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNoRCxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxDQUFhLEVBQUUsQ0FBYTtJQUN2RCxPQUFPLGVBQWUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0FBQ3RDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxPQUFvQixFQUFFLFFBQWlCO0lBQzNFLElBQUksUUFBUSxFQUFFO1FBQ1osV0FBVyxDQUFDLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0tBQzlDO1NBQU07UUFDTCxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixXQUFXLENBQUMsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7S0FDNUM7QUFDSCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxPQUFvQjtJQUNwRCxPQUFPLENBQUMsWUFBWSxDQUFDO0FBQ3ZCLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLE9BQW9CLEVBQUUsU0FBaUIsRUFBRSxLQUFlO0lBQ25GLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN0QyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztLQUNuRDtTQUFNO1FBQ0wsT0FBTyxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzdDO0FBQ0gsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFDLFFBQWdDO0lBQ25FLElBQUk7UUFDRixPQUFPLElBQUksY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQ3JDO0lBQUMsTUFBTTtRQUNOLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0tBQ3JGO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxRQUFvQyxFQUFFLFFBQWtEO0lBQzdILElBQUk7UUFDRixPQUFPLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUN4QyxJQUFJLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDdkIsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM3QjtRQUNILENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztLQUNuRjtBQUNILENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUF1QixFQUFFLEtBQXNCLEVBQUUsU0FBUyxHQUFHLElBQUk7SUFDL0YsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUNwQyxJQUFJLENBQUMsU0FBUyxJQUFJLE1BQU0sS0FBSyxLQUFLO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDakQsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJzY3JpYmVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpc051bWJlciwgaXNTdHJpbmcgfSBmcm9tICcuL3R5cGUtZ3VhcmRzJztcblxuLyoqXG4gKiBBcHBsaWVzIGEgc2V0IG9mIENTUyBzdHlsZXMgdG8gYW4gSFRNTCBlbGVtZW50LlxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnQgLSBUaGUgZWxlbWVudCB0byBhcHBseSBzdHlsZXMgdG8uXG4gKiBAcGFyYW0ge1BhcnRpYWw8Q1NTU3R5bGVEZWNsYXJhdGlvbiB8IFJlY29yZDxrZXlvZiBDU1NTdHlsZURlY2xhcmF0aW9uLCBzdHJpbmcgfCBudWxsPj59IHN0eWxlcyAtIEFuIG9iamVjdCBjb250YWluaW5nIENTUyBwcm9wZXJ0aWVzIGFuZCB2YWx1ZXMgdG8gYXBwbHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVN0eWxlcyhlbGVtZW50OiBIVE1MRWxlbWVudCwgc3R5bGVzOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24gfCBSZWNvcmQ8a2V5b2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiwgc3RyaW5nIHwgbnVsbD4+KTogdm9pZCB7XG4gIE9iamVjdC5hc3NpZ24oZWxlbWVudC5zdHlsZSwgc3R5bGVzKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGJvb2xlYW4gdmFsdWUgdG8gYSBjb3JyZXNwb25kaW5nIGF0dHJpYnV0ZSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtib29sZWFufSBzdGF0ZSAtIFRoZSBib29sZWFuIHN0YXRlIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAndHJ1ZScgaWYgdGhlIHN0YXRlIGlzIHRydWU7IG90aGVyd2lzZSwgJ2ZhbHNlJy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJvb2xlYW5Ub0F0dHJpYnV0ZVN0cmluZyhzdGF0ZTogYm9vbGVhbik6IHN0cmluZyB7XG4gIHJldHVybiBib29sZWFuVG9PcHRpb25hbEF0dHJpYnV0ZVN0cmluZyhzdGF0ZSkgPz8gJ2ZhbHNlJztcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGJvb2xlYW4gdmFsdWUgdG8gJ3RydWUnIG9yIG51bGwsIHVzZWZ1bCBmb3Igc2V0dGluZyBhdHRyaWJ1dGVzIGJhc2VkIG9uIGJvb2xlYW4gY29uZGl0aW9ucy5cbiAqXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHN0YXRlIC0gVGhlIGJvb2xlYW4gc3RhdGUgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtzdHJpbmcgfCBudWxsfSAndHJ1ZScgaWYgdGhlIHN0YXRlIGlzIHRydWU7IG90aGVyd2lzZSwgbnVsbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJvb2xlYW5Ub09wdGlvbmFsQXR0cmlidXRlU3RyaW5nKHN0YXRlOiBib29sZWFuKTogc3RyaW5nIHwgbnVsbCB7XG4gIHJldHVybiBzdGF0ZSA/ICd0cnVlJyA6IG51bGw7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBudW1lcmljIHZhbHVlIHRvIGEgcGl4ZWwgc3RyaW5nLCBhcHBlbmRpbmcgJ3B4JyB0byB0aGUgbnVtYmVyLlxuICpcbiAqIEBwYXJhbSB7dW5rbm93bn0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY29udmVydCB0byBwaXhlbHMuXG4gKiBAcmV0dXJucyB7YCR7bnVtYmVyfXB4YH0gVGhlIHZhbHVlIGluIHBpeGVscywgb3IgJzBweCcgaWYgdGhlIGlucHV0IGlzIG5vdCBhIG51bWJlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHB4KHZhbHVlOiB1bmtub3duKTogYCR7bnVtYmVyfXB4YCB7XG4gIHJldHVybiBpc051bWJlcih2YWx1ZSkgPyBgJHt2YWx1ZX1weGAgOiAnMHB4Jztcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgYSBDU1MgdHJhbnNsYXRlM2Qgc3RyaW5nIGZvciBnaXZlbiB4IGFuZCB5IHZhbHVlcy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZyB8IDB9IHggLSBUaGUgdHJhbnNsYXRpb24gdmFsdWUgYWxvbmcgdGhlIHgtYXhpcy5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgMH0geSAtIFRoZSB0cmFuc2xhdGlvbiB2YWx1ZSBhbG9uZyB0aGUgeS1heGlzLlxuICogQHJldHVybnMge2B0cmFuc2xhdGUzZCgke3N0cmluZyB8IDB9LCAke3N0cmluZyB8IDB9LCAwKWB9IFRoZSBDU1MgdHJhbnNsYXRlM2QgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjc3NUcmFuc2xhdGUoeDogc3RyaW5nIHwgMCwgeTogc3RyaW5nIHwgMCk6IGB0cmFuc2xhdGUzZCgke3N0cmluZyB8IDB9LCAke3N0cmluZyB8IDB9LCAwKWAge1xuICByZXR1cm4gYHRyYW5zbGF0ZTNkKCR7eH0sICR7eX0sIDApYDtcbn1cblxuLyoqXG4gKiBEaXNhYmxlcyBvciByZS1lbmFibGVzIENTUyB0cmFuc2l0aW9ucyBvbiBhbiBlbGVtZW50LlxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnQgLSBUaGUgZWxlbWVudCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGRpc2FibGVkIC0gV2hldGhlciB0byBkaXNhYmxlIENTUyB0cmFuc2l0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpc2FibGVDU1NUcmFuc2l0aW9ucyhlbGVtZW50OiBIVE1MRWxlbWVudCwgZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgaWYgKGRpc2FibGVkKSB7XG4gICAgYXBwbHlTdHlsZXMoZWxlbWVudCwgeyB0cmFuc2l0aW9uOiAnbm9uZScgfSk7XG4gIH0gZWxzZSB7XG4gICAgZm9yY2VMYXlvdXRSZWZsb3coZWxlbWVudCk7XG4gICAgYXBwbHlTdHlsZXMoZWxlbWVudCwgeyB0cmFuc2l0aW9uOiBudWxsIH0pO1xuICB9XG59XG5cbi8qKlxuICogRm9yY2VzIHRoZSBicm93c2VyIHRvIHJlZmxvdyB0aGUgbGF5b3V0LCB1c2VmdWwgZm9yIHRyaWdnZXJpbmcgQ1NTIHRyYW5zaXRpb25zIG9yIGFuaW1hdGlvbnMuXG4gKlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWxlbWVudCAtIFRoZSBlbGVtZW50IHRvIGZvcmNlIGEgcmVmbG93IG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9yY2VMYXlvdXRSZWZsb3coZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgZWxlbWVudC5vZmZzZXRIZWlnaHQ7XG59XG5cbi8qKlxuICogU2V0cyBhbiBhdHRyaWJ1dGUgb24gYW4gSFRNTCBlbGVtZW50LCBjb252ZXJ0aW5nIHRoZSB2YWx1ZSB0byBhIHN0cmluZyBpZiBuZWNlc3NhcnkuXG4gKlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWxlbWVudCAtIFRoZSBlbGVtZW50IHRvIHNldCB0aGUgYXR0cmlidXRlIG9uLlxuICogQHBhcmFtIHtzdHJpbmd9IGF0dHJpYnV0ZSAtIFRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUgdG8gc2V0LlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlOyB3aWxsIGJlIGNvbnZlcnRlZCB0byBhIHN0cmluZyBpZiBpdCdzIG5vdCBudWxsIG9yIHVuZGVmaW5lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldEF0dHJpYnV0ZShlbGVtZW50OiBIVE1MRWxlbWVudCwgYXR0cmlidXRlOiBzdHJpbmcsIHZhbHVlPzogdW5rbm93bikge1xuICBpZiAoaXNTdHJpbmcodmFsdWUpIHx8IGlzTnVtYmVyKHZhbHVlKSkge1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUudG9TdHJpbmcoKSk7XG4gIH0gZWxzZSB7XG4gICAgZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoYXR0cmlidXRlLCAhIXZhbHVlKTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBSZXNpemVPYnNlcnZlciBpbnN0YW5jZSBzYWZlbHksIGZhbGxpbmcgYmFjayB0byBhIGR1bW15IGlmIHRoZSBBUEkgaXMgbm90IHN1cHBvcnRlZC5cbiAqXG4gKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2t9IGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIHRvIGV4ZWN1dGUgd2hlbiBhbiBvYnNlcnZlZCBlbGVtZW50J3Mgc2l6ZSBjaGFuZ2VzLlxuICogQHJldHVybnMge1Jlc2l6ZU9ic2VydmVyfSBBIFJlc2l6ZU9ic2VydmVyIGluc3RhbmNlIG9yIGEgZHVtbXkgb2JqZWN0IHdpdGggbm8tb3AgbWV0aG9kcyBpZiB1bnN1cHBvcnRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlc2l6ZU9ic2VydmVyKGNhbGxiYWNrOiBSZXNpemVPYnNlcnZlckNhbGxiYWNrKTogUmVzaXplT2JzZXJ2ZXIge1xuICB0cnkge1xuICAgIHJldHVybiBuZXcgUmVzaXplT2JzZXJ2ZXIoY2FsbGJhY2spO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4geyBvYnNlcnZlOiAoKSA9PiB2b2lkIDAsIGRpc2Nvbm5lY3Q6ICgpID0+IHZvaWQgMCwgdW5vYnNlcnZlOiAoKSA9PiB2b2lkIDAgfTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBNdXRhdGlvbk9ic2VydmVyIGluc3RhbmNlIHNhZmVseSwgZmFsbGluZyBiYWNrIHRvIGEgZHVtbXkgaWYgdGhlIEFQSSBpcyBub3Qgc3VwcG9ydGVkLlxuICpcbiAqIEBwYXJhbSB7U3Vic2NyaWJlcjxNdXRhdGlvblJlY29yZD59IG9ic2VydmVyIC0gVGhlIFJ4SlMgU3Vic2NyaWJlciB0byBlbWl0IG5leHQgdmFsdWVzIHRvLlxuICogQHBhcmFtIHsobXV0YXRpb25zOiBNdXRhdGlvblJlY29yZFtdKSA9PiBib29sZWFufSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayB0aGF0IGRldGVybWluZXMgd2hldGhlciB0byBub3RpZnkgdGhlIG9ic2VydmVyIGJhc2VkIG9uIG11dGF0aW9ucy5cbiAqIEByZXR1cm5zIHtNdXRhdGlvbk9ic2VydmVyfSBBIE11dGF0aW9uT2JzZXJ2ZXIgaW5zdGFuY2Ugb3IgYSBkdW1teSBvYmplY3Qgd2l0aCBuby1vcCBtZXRob2RzIGlmIHVuc3VwcG9ydGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTXV0YXRpb25PYnNlcnZlcihvYnNlcnZlcjogU3Vic2NyaWJlcjxNdXRhdGlvblJlY29yZD4sIGNhbGxiYWNrOiAobXV0YXRpb25zOiBNdXRhdGlvblJlY29yZFtdKSA9PiBib29sZWFuKTogTXV0YXRpb25PYnNlcnZlciB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcbiAgICAgIGlmIChjYWxsYmFjayhtdXRhdGlvbnMpKSB7XG4gICAgICAgIG9ic2VydmVyLm5leHQobXV0YXRpb25zWzBdKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4geyBkaXNjb25uZWN0OiAoKSA9PiB2b2lkIDAsIG9ic2VydmU6ICgpID0+IHZvaWQgMCwgdGFrZVJlY29yZHM6ICgpID0+IFtdIH07XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBvbmUgZWxlbWVudCBjb250YWlucyBhbm90aGVyIGluIHRoZSBET00gdHJlZS5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnQgfCBudWxsfSBwYXJlbnQgLSBUaGUgcGFyZW50IGVsZW1lbnQuXG4gKiBAcGFyYW0ge0VsZW1lbnQgfCBudWxsfSBvdGhlciAtIFRoZSBlbGVtZW50IHRvIGNoZWNrIGZvciBjb250YWlubWVudC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2luY2x1c2l2ZT10cnVlXSAtIFdoZXRoZXIgdG8gY29uc2lkZXIgYW4gZWxlbWVudCBhcyBjb250YWluaW5nIGl0c2VsZi5cbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHRoZSBwYXJlbnQgY29udGFpbnMgdGhlIG90aGVyIGVsZW1lbnQ7IGZhbHNlIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnRhaW5zRWxlbWVudChwYXJlbnQ/OiBFbGVtZW50IHwgbnVsbCwgb3RoZXI/OiBFbGVtZW50IHwgbnVsbCwgaW5jbHVzaXZlID0gdHJ1ZSk6IGJvb2xlYW4ge1xuICBpZiAoIXBhcmVudCB8fCAhb3RoZXIpIHJldHVybiBmYWxzZTtcbiAgaWYgKCFpbmNsdXNpdmUgJiYgcGFyZW50ID09PSBvdGhlcikgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gcGFyZW50LmNvbnRhaW5zKG90aGVyKTtcbn1cbiJdfQ==
|
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
import { Axis, Side } from '../types';
|
|
2
2
|
import { getSide } from './get-side';
|
|
3
|
+
/**
|
|
4
|
+
* Determines the axis associated with a given position. The function first extracts the side from the position,
|
|
5
|
+
* then evaluates whether that side corresponds to the X-axis (left or right) or the Y-axis (top or bottom).
|
|
6
|
+
*
|
|
7
|
+
* @param {Position} position - The position string, which includes a side (top, bottom, left, right) and possibly an alignment.
|
|
8
|
+
* @returns {Axis} The axis (X or Y) associated with the given position's side.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* // Determining the axis for different positions
|
|
13
|
+
* console.log(getAxis('top-left')); // Outputs: 'Y'
|
|
14
|
+
* console.log(getAxis('right')); // Outputs: 'X'
|
|
15
|
+
*
|
|
16
|
+
* // Using getAxis in UI element positioning logic
|
|
17
|
+
* const elementPosition = 'bottom';
|
|
18
|
+
* const axis = getAxis(elementPosition);
|
|
19
|
+
* // Assuming a function that adjusts UI elements based on the axis
|
|
20
|
+
* adjustElementAlongAxis(axis);
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
3
23
|
export function getAxis(position) {
|
|
4
24
|
const side = getSide(position);
|
|
5
25
|
switch (side) {
|
|
@@ -11,4 +31,4 @@ export function getAxis(position) {
|
|
|
11
31
|
return Axis.X;
|
|
12
32
|
}
|
|
13
33
|
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWF4aXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2dldC1heGlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQVksSUFBSSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFckM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFDLFFBQWtCO0lBQ3hDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUUvQixRQUFRLElBQUksRUFBRTtRQUNaLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNkLEtBQUssSUFBSSxDQUFDLE1BQU07WUFDZCxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEIsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2YsS0FBSyxJQUFJLENBQUMsS0FBSztZQUNiLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQztLQUNqQjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBeGlzLCBQb3NpdGlvbiwgU2lkZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGdldFNpZGUgfSBmcm9tICcuL2dldC1zaWRlJztcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHRoZSBheGlzIGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIHBvc2l0aW9uLiBUaGUgZnVuY3Rpb24gZmlyc3QgZXh0cmFjdHMgdGhlIHNpZGUgZnJvbSB0aGUgcG9zaXRpb24sXG4gKiB0aGVuIGV2YWx1YXRlcyB3aGV0aGVyIHRoYXQgc2lkZSBjb3JyZXNwb25kcyB0byB0aGUgWC1heGlzIChsZWZ0IG9yIHJpZ2h0KSBvciB0aGUgWS1heGlzICh0b3Agb3IgYm90dG9tKS5cbiAqXG4gKiBAcGFyYW0ge1Bvc2l0aW9ufSBwb3NpdGlvbiAtIFRoZSBwb3NpdGlvbiBzdHJpbmcsIHdoaWNoIGluY2x1ZGVzIGEgc2lkZSAodG9wLCBib3R0b20sIGxlZnQsIHJpZ2h0KSBhbmQgcG9zc2libHkgYW4gYWxpZ25tZW50LlxuICogQHJldHVybnMge0F4aXN9IFRoZSBheGlzIChYIG9yIFkpIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gcG9zaXRpb24ncyBzaWRlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogLy8gRGV0ZXJtaW5pbmcgdGhlIGF4aXMgZm9yIGRpZmZlcmVudCBwb3NpdGlvbnNcbiAqIGNvbnNvbGUubG9nKGdldEF4aXMoJ3RvcC1sZWZ0JykpOyAvLyBPdXRwdXRzOiAnWSdcbiAqIGNvbnNvbGUubG9nKGdldEF4aXMoJ3JpZ2h0JykpOyAgICAvLyBPdXRwdXRzOiAnWCdcbiAqXG4gKiAvLyBVc2luZyBnZXRBeGlzIGluIFVJIGVsZW1lbnQgcG9zaXRpb25pbmcgbG9naWNcbiAqIGNvbnN0IGVsZW1lbnRQb3NpdGlvbiA9ICdib3R0b20nO1xuICogY29uc3QgYXhpcyA9IGdldEF4aXMoZWxlbWVudFBvc2l0aW9uKTtcbiAqIC8vIEFzc3VtaW5nIGEgZnVuY3Rpb24gdGhhdCBhZGp1c3RzIFVJIGVsZW1lbnRzIGJhc2VkIG9uIHRoZSBheGlzXG4gKiBhZGp1c3RFbGVtZW50QWxvbmdBeGlzKGF4aXMpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBeGlzKHBvc2l0aW9uOiBQb3NpdGlvbik6IEF4aXMge1xuICBjb25zdCBzaWRlID0gZ2V0U2lkZShwb3NpdGlvbik7XG5cbiAgc3dpdGNoIChzaWRlKSB7XG4gICAgY2FzZSBTaWRlLlRPUDpcbiAgICBjYXNlIFNpZGUuQk9UVE9NOlxuICAgICAgcmV0dXJuIEF4aXMuWTtcbiAgICBjYXNlIFNpZGUuTEVGVDpcbiAgICBjYXNlIFNpZGUuUklHSFQ6XG4gICAgICByZXR1cm4gQXhpcy5YO1xuICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extracts the language code from a language string that may include both a language and a region code.
|
|
3
|
+
* The function supports language strings formatted with either a hyphen (`-`) or an underscore (`_`) as the separator.
|
|
4
|
+
*
|
|
5
|
+
* @param {string} language - The complete language string, potentially including both language and region codes.
|
|
6
|
+
* @returns {string} The extracted language code, converted to lower case.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* // Extracting language code from a language-region string
|
|
11
|
+
* console.log(getLanguageCode('en-US')); // Outputs: 'en'
|
|
12
|
+
* console.log(getLanguageCode('zh_CN')); // Outputs: 'zh'
|
|
13
|
+
*
|
|
14
|
+
* // Handling language codes without region codes
|
|
15
|
+
* console.log(getLanguageCode('fr')); // Outputs: 'fr'
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
1
18
|
export function getLanguageCode(language) {
|
|
2
19
|
const [languageCode] = language.split(/-|_/);
|
|
3
20
|
return languageCode?.toLowerCase();
|
|
4
21
|
}
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWxhbmd1YWdlLWNvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2dldC1sYW5ndWFnZS1jb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxRQUFnQjtJQUM5QyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU3QyxPQUFPLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFeHRyYWN0cyB0aGUgbGFuZ3VhZ2UgY29kZSBmcm9tIGEgbGFuZ3VhZ2Ugc3RyaW5nIHRoYXQgbWF5IGluY2x1ZGUgYm90aCBhIGxhbmd1YWdlIGFuZCBhIHJlZ2lvbiBjb2RlLlxuICogVGhlIGZ1bmN0aW9uIHN1cHBvcnRzIGxhbmd1YWdlIHN0cmluZ3MgZm9ybWF0dGVkIHdpdGggZWl0aGVyIGEgaHlwaGVuIChgLWApIG9yIGFuIHVuZGVyc2NvcmUgKGBfYCkgYXMgdGhlIHNlcGFyYXRvci5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbGFuZ3VhZ2UgLSBUaGUgY29tcGxldGUgbGFuZ3VhZ2Ugc3RyaW5nLCBwb3RlbnRpYWxseSBpbmNsdWRpbmcgYm90aCBsYW5ndWFnZSBhbmQgcmVnaW9uIGNvZGVzLlxuICogQHJldHVybnMge3N0cmluZ30gVGhlIGV4dHJhY3RlZCBsYW5ndWFnZSBjb2RlLCBjb252ZXJ0ZWQgdG8gbG93ZXIgY2FzZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIEV4dHJhY3RpbmcgbGFuZ3VhZ2UgY29kZSBmcm9tIGEgbGFuZ3VhZ2UtcmVnaW9uIHN0cmluZ1xuICogY29uc29sZS5sb2coZ2V0TGFuZ3VhZ2VDb2RlKCdlbi1VUycpKTsgLy8gT3V0cHV0czogJ2VuJ1xuICogY29uc29sZS5sb2coZ2V0TGFuZ3VhZ2VDb2RlKCd6aF9DTicpKTsgLy8gT3V0cHV0czogJ3poJ1xuICpcbiAqIC8vIEhhbmRsaW5nIGxhbmd1YWdlIGNvZGVzIHdpdGhvdXQgcmVnaW9uIGNvZGVzXG4gKiBjb25zb2xlLmxvZyhnZXRMYW5ndWFnZUNvZGUoJ2ZyJykpOyAgICAvLyBPdXRwdXRzOiAnZnInXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExhbmd1YWdlQ29kZShsYW5ndWFnZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgW2xhbmd1YWdlQ29kZV0gPSBsYW5ndWFnZS5zcGxpdCgvLXxfLyk7XG5cbiAgcmV0dXJuIGxhbmd1YWdlQ29kZT8udG9Mb3dlckNhc2UoKTtcbn1cbiJdfQ==
|
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
import { Side } from '../types';
|
|
2
2
|
import { getSide } from './get-side';
|
|
3
|
+
/**
|
|
4
|
+
* Determines the opposite side for a given position. This function is useful for scenarios
|
|
5
|
+
* where you need to dynamically calculate the positioning or alignment opposite to the current one,
|
|
6
|
+
* such as inverting tooltips, popovers, or any UI elements that adjust based on available viewport space.
|
|
7
|
+
*
|
|
8
|
+
* @param {Position} position - The position string, which includes a side and possibly an alignment.
|
|
9
|
+
* @returns {Side} The opposite side relative to the provided position's side.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* // Getting the opposite side of a given position
|
|
14
|
+
* console.log(getOppositeSide('top-left')); // Outputs: 'bottom'
|
|
15
|
+
* console.log(getOppositeSide('right')); // Outputs: 'left'
|
|
16
|
+
*
|
|
17
|
+
* // Using getOppositeSide to adjust UI elements
|
|
18
|
+
* const currentSide = 'left';
|
|
19
|
+
* const newPosition = getOppositeSide(currentSide);
|
|
20
|
+
* // Assuming an element's position or orientation needs to be dynamically updated
|
|
21
|
+
* updateElementPosition(newPosition);
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
3
24
|
export function getOppositeSide(position) {
|
|
4
25
|
switch (getSide(position)) {
|
|
5
26
|
case Side.TOP:
|
|
@@ -12,4 +33,4 @@ export function getOppositeSide(position) {
|
|
|
12
33
|
return Side.RIGHT;
|
|
13
34
|
}
|
|
14
35
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LW9wcG9zaXRlLXNpZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2dldC1vcHBvc2l0ZS1zaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBWSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLFFBQWtCO0lBQ2hELFFBQVEsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3pCLEtBQUssSUFBSSxDQUFDLEdBQUc7WUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckIsS0FBSyxJQUFJLENBQUMsS0FBSztZQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztRQUNuQixLQUFLLElBQUksQ0FBQyxNQUFNO1lBQ2QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ2xCLEtBQUssSUFBSSxDQUFDLElBQUk7WUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDckI7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9zaXRpb24sIFNpZGUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRTaWRlIH0gZnJvbSAnLi9nZXQtc2lkZSc7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB0aGUgb3Bwb3NpdGUgc2lkZSBmb3IgYSBnaXZlbiBwb3NpdGlvbi4gVGhpcyBmdW5jdGlvbiBpcyB1c2VmdWwgZm9yIHNjZW5hcmlvc1xuICogd2hlcmUgeW91IG5lZWQgdG8gZHluYW1pY2FsbHkgY2FsY3VsYXRlIHRoZSBwb3NpdGlvbmluZyBvciBhbGlnbm1lbnQgb3Bwb3NpdGUgdG8gdGhlIGN1cnJlbnQgb25lLFxuICogc3VjaCBhcyBpbnZlcnRpbmcgdG9vbHRpcHMsIHBvcG92ZXJzLCBvciBhbnkgVUkgZWxlbWVudHMgdGhhdCBhZGp1c3QgYmFzZWQgb24gYXZhaWxhYmxlIHZpZXdwb3J0IHNwYWNlLlxuICpcbiAqIEBwYXJhbSB7UG9zaXRpb259IHBvc2l0aW9uIC0gVGhlIHBvc2l0aW9uIHN0cmluZywgd2hpY2ggaW5jbHVkZXMgYSBzaWRlIGFuZCBwb3NzaWJseSBhbiBhbGlnbm1lbnQuXG4gKiBAcmV0dXJucyB7U2lkZX0gVGhlIG9wcG9zaXRlIHNpZGUgcmVsYXRpdmUgdG8gdGhlIHByb3ZpZGVkIHBvc2l0aW9uJ3Mgc2lkZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIEdldHRpbmcgdGhlIG9wcG9zaXRlIHNpZGUgb2YgYSBnaXZlbiBwb3NpdGlvblxuICogY29uc29sZS5sb2coZ2V0T3Bwb3NpdGVTaWRlKCd0b3AtbGVmdCcpKTsgLy8gT3V0cHV0czogJ2JvdHRvbSdcbiAqIGNvbnNvbGUubG9nKGdldE9wcG9zaXRlU2lkZSgncmlnaHQnKSk7ICAgIC8vIE91dHB1dHM6ICdsZWZ0J1xuICpcbiAqIC8vIFVzaW5nIGdldE9wcG9zaXRlU2lkZSB0byBhZGp1c3QgVUkgZWxlbWVudHNcbiAqIGNvbnN0IGN1cnJlbnRTaWRlID0gJ2xlZnQnO1xuICogY29uc3QgbmV3UG9zaXRpb24gPSBnZXRPcHBvc2l0ZVNpZGUoY3VycmVudFNpZGUpO1xuICogLy8gQXNzdW1pbmcgYW4gZWxlbWVudCdzIHBvc2l0aW9uIG9yIG9yaWVudGF0aW9uIG5lZWRzIHRvIGJlIGR5bmFtaWNhbGx5IHVwZGF0ZWRcbiAqIHVwZGF0ZUVsZW1lbnRQb3NpdGlvbihuZXdQb3NpdGlvbik7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE9wcG9zaXRlU2lkZShwb3NpdGlvbjogUG9zaXRpb24pOiBTaWRlIHtcbiAgc3dpdGNoIChnZXRTaWRlKHBvc2l0aW9uKSkge1xuICAgIGNhc2UgU2lkZS5UT1A6XG4gICAgICByZXR1cm4gU2lkZS5CT1RUT007XG4gICAgY2FzZSBTaWRlLlJJR0hUOlxuICAgICAgcmV0dXJuIFNpZGUuTEVGVDtcbiAgICBjYXNlIFNpZGUuQk9UVE9NOlxuICAgICAgcmV0dXJuIFNpZGUuVE9QO1xuICAgIGNhc2UgU2lkZS5MRUZUOlxuICAgICAgcmV0dXJuIFNpZGUuUklHSFQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extracts the side part from a position string. The position format generally combines
|
|
3
|
+
* a side (e.g., "top", "bottom", "left", "right") with an optional alignment
|
|
4
|
+
* (e.g., "left", "center", "right" for vertical positions or "top", "middle", "bottom" for horizontal positions).
|
|
5
|
+
*
|
|
6
|
+
* @param {Position} position - The position string from which to extract the side.
|
|
7
|
+
* @returns {Side} The side part of the position, indicating the general placement direction.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* // Extracting the side from a position with alignment
|
|
12
|
+
* console.log(getSide('top-left')); // Outputs: 'top'
|
|
13
|
+
*
|
|
14
|
+
* // Extracting the side from a simple position
|
|
15
|
+
* console.log(getSide('bottom')); // Outputs: 'bottom'
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
1
18
|
export function getSide(position) {
|
|
2
19
|
return position.split('-')[0];
|
|
3
20
|
}
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXNpZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2dldC1zaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxRQUFrQjtJQUN4QyxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFTLENBQUM7QUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvc2l0aW9uLCBTaWRlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBzaWRlIHBhcnQgZnJvbSBhIHBvc2l0aW9uIHN0cmluZy4gVGhlIHBvc2l0aW9uIGZvcm1hdCBnZW5lcmFsbHkgY29tYmluZXNcbiAqIGEgc2lkZSAoZS5nLiwgXCJ0b3BcIiwgXCJib3R0b21cIiwgXCJsZWZ0XCIsIFwicmlnaHRcIikgd2l0aCBhbiBvcHRpb25hbCBhbGlnbm1lbnRcbiAqIChlLmcuLCBcImxlZnRcIiwgXCJjZW50ZXJcIiwgXCJyaWdodFwiIGZvciB2ZXJ0aWNhbCBwb3NpdGlvbnMgb3IgXCJ0b3BcIiwgXCJtaWRkbGVcIiwgXCJib3R0b21cIiBmb3IgaG9yaXpvbnRhbCBwb3NpdGlvbnMpLlxuICpcbiAqIEBwYXJhbSB7UG9zaXRpb259IHBvc2l0aW9uIC0gVGhlIHBvc2l0aW9uIHN0cmluZyBmcm9tIHdoaWNoIHRvIGV4dHJhY3QgdGhlIHNpZGUuXG4gKiBAcmV0dXJucyB7U2lkZX0gVGhlIHNpZGUgcGFydCBvZiB0aGUgcG9zaXRpb24sIGluZGljYXRpbmcgdGhlIGdlbmVyYWwgcGxhY2VtZW50IGRpcmVjdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIEV4dHJhY3RpbmcgdGhlIHNpZGUgZnJvbSBhIHBvc2l0aW9uIHdpdGggYWxpZ25tZW50XG4gKiBjb25zb2xlLmxvZyhnZXRTaWRlKCd0b3AtbGVmdCcpKTsgLy8gT3V0cHV0czogJ3RvcCdcbiAqXG4gKiAvLyBFeHRyYWN0aW5nIHRoZSBzaWRlIGZyb20gYSBzaW1wbGUgcG9zaXRpb25cbiAqIGNvbnNvbGUubG9nKGdldFNpZGUoJ2JvdHRvbScpKTsgLy8gT3V0cHV0czogJ2JvdHRvbSdcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2lkZShwb3NpdGlvbjogUG9zaXRpb24pOiBTaWRlIHtcbiAgcmV0dXJuIHBvc2l0aW9uLnNwbGl0KCctJylbMF0gYXMgU2lkZTtcbn1cbiJdfQ==
|
|
@@ -1,9 +1,42 @@
|
|
|
1
1
|
let uniqueIdCache = {};
|
|
2
|
+
/**
|
|
3
|
+
* Generates a unique identifier for a given key. If the key has previously been used,
|
|
4
|
+
* the function increments a counter associated with that key to ensure uniqueness.
|
|
5
|
+
* The generated ID is in the format of `${key}-${counter}`.
|
|
6
|
+
*
|
|
7
|
+
* @param {string} key - The key for which to generate a unique identifier.
|
|
8
|
+
* @returns {string} A unique identifier string based on the provided key.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const id1 = getUniqueId('component');
|
|
13
|
+
* console.log(id1); // Outputs: "component-1"
|
|
14
|
+
*
|
|
15
|
+
* const id2 = getUniqueId('component');
|
|
16
|
+
* console.log(id2); // Outputs: "component-2"
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
2
19
|
export function getUniqueId(key) {
|
|
3
20
|
uniqueIdCache[key] = (uniqueIdCache[key] ?? 0) + 1;
|
|
4
21
|
return `${key}-${uniqueIdCache[key]}`;
|
|
5
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Clears the cache used by `getUniqueId` to generate unique identifiers. This function
|
|
25
|
+
* resets all counters associated with each key, effectively restarting the generation
|
|
26
|
+
* of unique IDs from their initial state.
|
|
27
|
+
*
|
|
28
|
+
* This can be useful in scenarios such as testing or when starting a new session that
|
|
29
|
+
* requires resetting the state of unique ID generation.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```ts
|
|
33
|
+
* getUniqueId('component'); // Returns "component-1"
|
|
34
|
+
* getUniqueId('component'); // Returns "component-2"
|
|
35
|
+
* clearUniqueIdCache();
|
|
36
|
+
* getUniqueId('component'); // Returns "component-1" after cache reset
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
6
39
|
export function clearUniqueIdCache() {
|
|
7
40
|
uniqueIdCache = {};
|
|
8
41
|
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXVuaXF1ZS1pZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci91dGlscy9zcmMvbGliL2hlbHBlcnMvZ2V0LXVuaXF1ZS1pZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFJLGFBQWEsR0FBOEIsRUFBRSxDQUFDO0FBRWxEOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxHQUFXO0lBQ3JDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFbkQsT0FBTyxHQUFHLEdBQUcsSUFBSSxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztBQUN4QyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQjtJQUNoQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0FBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgdW5pcXVlSWRDYWNoZTogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuXG4vKipcbiAqIEdlbmVyYXRlcyBhIHVuaXF1ZSBpZGVudGlmaWVyIGZvciBhIGdpdmVuIGtleS4gSWYgdGhlIGtleSBoYXMgcHJldmlvdXNseSBiZWVuIHVzZWQsXG4gKiB0aGUgZnVuY3Rpb24gaW5jcmVtZW50cyBhIGNvdW50ZXIgYXNzb2NpYXRlZCB3aXRoIHRoYXQga2V5IHRvIGVuc3VyZSB1bmlxdWVuZXNzLlxuICogVGhlIGdlbmVyYXRlZCBJRCBpcyBpbiB0aGUgZm9ybWF0IG9mIGAke2tleX0tJHtjb3VudGVyfWAuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBrZXkgZm9yIHdoaWNoIHRvIGdlbmVyYXRlIGEgdW5pcXVlIGlkZW50aWZpZXIuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBBIHVuaXF1ZSBpZGVudGlmaWVyIHN0cmluZyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQga2V5LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogY29uc3QgaWQxID0gZ2V0VW5pcXVlSWQoJ2NvbXBvbmVudCcpO1xuICogY29uc29sZS5sb2coaWQxKTsgLy8gT3V0cHV0czogXCJjb21wb25lbnQtMVwiXG4gKlxuICogY29uc3QgaWQyID0gZ2V0VW5pcXVlSWQoJ2NvbXBvbmVudCcpO1xuICogY29uc29sZS5sb2coaWQyKTsgLy8gT3V0cHV0czogXCJjb21wb25lbnQtMlwiXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFVuaXF1ZUlkKGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgdW5pcXVlSWRDYWNoZVtrZXldID0gKHVuaXF1ZUlkQ2FjaGVba2V5XSA/PyAwKSArIDE7XG5cbiAgcmV0dXJuIGAke2tleX0tJHt1bmlxdWVJZENhY2hlW2tleV19YDtcbn1cblxuLyoqXG4gKiBDbGVhcnMgdGhlIGNhY2hlIHVzZWQgYnkgYGdldFVuaXF1ZUlkYCB0byBnZW5lcmF0ZSB1bmlxdWUgaWRlbnRpZmllcnMuIFRoaXMgZnVuY3Rpb25cbiAqIHJlc2V0cyBhbGwgY291bnRlcnMgYXNzb2NpYXRlZCB3aXRoIGVhY2gga2V5LCBlZmZlY3RpdmVseSByZXN0YXJ0aW5nIHRoZSBnZW5lcmF0aW9uXG4gKiBvZiB1bmlxdWUgSURzIGZyb20gdGhlaXIgaW5pdGlhbCBzdGF0ZS5cbiAqXG4gKiBUaGlzIGNhbiBiZSB1c2VmdWwgaW4gc2NlbmFyaW9zIHN1Y2ggYXMgdGVzdGluZyBvciB3aGVuIHN0YXJ0aW5nIGEgbmV3IHNlc3Npb24gdGhhdFxuICogcmVxdWlyZXMgcmVzZXR0aW5nIHRoZSBzdGF0ZSBvZiB1bmlxdWUgSUQgZ2VuZXJhdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGdldFVuaXF1ZUlkKCdjb21wb25lbnQnKTsgLy8gUmV0dXJucyBcImNvbXBvbmVudC0xXCJcbiAqIGdldFVuaXF1ZUlkKCdjb21wb25lbnQnKTsgLy8gUmV0dXJucyBcImNvbXBvbmVudC0yXCJcbiAqIGNsZWFyVW5pcXVlSWRDYWNoZSgpO1xuICogZ2V0VW5pcXVlSWQoJ2NvbXBvbmVudCcpOyAvLyBSZXR1cm5zIFwiY29tcG9uZW50LTFcIiBhZnRlciBjYWNoZSByZXNldFxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhclVuaXF1ZUlkQ2FjaGUoKTogdm9pZCB7XG4gIHVuaXF1ZUlkQ2FjaGUgPSB7fTtcbn1cbiJdfQ==
|
|
@@ -1,8 +1,48 @@
|
|
|
1
1
|
import { isString } from './type-guards';
|
|
2
|
+
/**
|
|
3
|
+
* Checks if a given value is a valid URL matcher, which can be either a string or a regular expression.
|
|
4
|
+
* This function serves as a type guard to facilitate URL matching operations by verifying the type of the filter.
|
|
5
|
+
*
|
|
6
|
+
* @param {unknown} value - The value to check for being a valid URL matcher.
|
|
7
|
+
* @returns {value is string | RegExp} `true` if the value is a string or RegExp, indicating it can be used for URL matching; otherwise, `false`.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* // Checking a string URL matcher
|
|
12
|
+
* console.log(isUrlMatcher('https://example.com')); // true
|
|
13
|
+
*
|
|
14
|
+
* // Checking a RegExp URL matcher
|
|
15
|
+
* console.log(isUrlMatcher(/https:\/\/example\.com/)); // true
|
|
16
|
+
*
|
|
17
|
+
* // Checking a non-matcher value
|
|
18
|
+
* console.log(isUrlMatcher(123)); // false
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
2
21
|
export function isUrlMatcher(value) {
|
|
3
22
|
return isString(value) || value instanceof RegExp;
|
|
4
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Determines if a given URL matches a specified filter, which can be either a string or a regular expression.
|
|
26
|
+
* For string filters, the function checks if the URL starts with the filter value. For RegExp filters,
|
|
27
|
+
* it checks if the URL matches the regular expression pattern.
|
|
28
|
+
*
|
|
29
|
+
* @param {string} url - The URL to be checked against the filter.
|
|
30
|
+
* @param {string | RegExp} filter - The filter used to match the URL, which can be a prefix string or a RegExp pattern.
|
|
31
|
+
* @returns {boolean} `true` if the URL matches the filter; otherwise, `false`.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* // Matching a URL with a string filter
|
|
36
|
+
* console.log(matchUrl('https://example.com/page', 'https://example.com')); // true
|
|
37
|
+
*
|
|
38
|
+
* // Matching a URL with a RegExp filter
|
|
39
|
+
* console.log(matchUrl('https://example.com/page', /example\.com\/page/)); // true
|
|
40
|
+
*
|
|
41
|
+
* // A non-matching example
|
|
42
|
+
* console.log(matchUrl('https://example.com/page', 'https://another.com')); // false
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
5
45
|
export function matchUrl(url, filter) {
|
|
6
46
|
return isString(filter) ? url.startsWith(filter) : !!url.match(filter);
|
|
7
47
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtdXJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3V0aWxzL3NyYy9saWIvaGVscGVycy9tYXRjaC11cmwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFjO0lBQ3pDLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssWUFBWSxNQUFNLENBQUM7QUFDcEQsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBVyxFQUFFLE1BQXVCO0lBQzNELE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN6RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICcuL3R5cGUtZ3VhcmRzJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBnaXZlbiB2YWx1ZSBpcyBhIHZhbGlkIFVSTCBtYXRjaGVyLCB3aGljaCBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIG9yIGEgcmVndWxhciBleHByZXNzaW9uLlxuICogVGhpcyBmdW5jdGlvbiBzZXJ2ZXMgYXMgYSB0eXBlIGd1YXJkIHRvIGZhY2lsaXRhdGUgVVJMIG1hdGNoaW5nIG9wZXJhdGlvbnMgYnkgdmVyaWZ5aW5nIHRoZSB0eXBlIG9mIHRoZSBmaWx0ZXIuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjaGVjayBmb3IgYmVpbmcgYSB2YWxpZCBVUkwgbWF0Y2hlci5cbiAqIEByZXR1cm5zIHt2YWx1ZSBpcyBzdHJpbmcgfCBSZWdFeHB9IGB0cnVlYCBpZiB0aGUgdmFsdWUgaXMgYSBzdHJpbmcgb3IgUmVnRXhwLCBpbmRpY2F0aW5nIGl0IGNhbiBiZSB1c2VkIGZvciBVUkwgbWF0Y2hpbmc7IG90aGVyd2lzZSwgYGZhbHNlYC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIENoZWNraW5nIGEgc3RyaW5nIFVSTCBtYXRjaGVyXG4gKiBjb25zb2xlLmxvZyhpc1VybE1hdGNoZXIoJ2h0dHBzOi8vZXhhbXBsZS5jb20nKSk7IC8vIHRydWVcbiAqXG4gKiAvLyBDaGVja2luZyBhIFJlZ0V4cCBVUkwgbWF0Y2hlclxuICogY29uc29sZS5sb2coaXNVcmxNYXRjaGVyKC9odHRwczpcXC9cXC9leGFtcGxlXFwuY29tLykpOyAvLyB0cnVlXG4gKlxuICogLy8gQ2hlY2tpbmcgYSBub24tbWF0Y2hlciB2YWx1ZVxuICogY29uc29sZS5sb2coaXNVcmxNYXRjaGVyKDEyMykpOyAvLyBmYWxzZVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1VybE1hdGNoZXIodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBzdHJpbmcgfCBSZWdFeHAge1xuICByZXR1cm4gaXNTdHJpbmcodmFsdWUpIHx8IHZhbHVlIGluc3RhbmNlb2YgUmVnRXhwO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgaWYgYSBnaXZlbiBVUkwgbWF0Y2hlcyBhIHNwZWNpZmllZCBmaWx0ZXIsIHdoaWNoIGNhbiBiZSBlaXRoZXIgYSBzdHJpbmcgb3IgYSByZWd1bGFyIGV4cHJlc3Npb24uXG4gKiBGb3Igc3RyaW5nIGZpbHRlcnMsIHRoZSBmdW5jdGlvbiBjaGVja3MgaWYgdGhlIFVSTCBzdGFydHMgd2l0aCB0aGUgZmlsdGVyIHZhbHVlLiBGb3IgUmVnRXhwIGZpbHRlcnMsXG4gKiBpdCBjaGVja3MgaWYgdGhlIFVSTCBtYXRjaGVzIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybi5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gVGhlIFVSTCB0byBiZSBjaGVja2VkIGFnYWluc3QgdGhlIGZpbHRlci5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgUmVnRXhwfSBmaWx0ZXIgLSBUaGUgZmlsdGVyIHVzZWQgdG8gbWF0Y2ggdGhlIFVSTCwgd2hpY2ggY2FuIGJlIGEgcHJlZml4IHN0cmluZyBvciBhIFJlZ0V4cCBwYXR0ZXJuLlxuICogQHJldHVybnMge2Jvb2xlYW59IGB0cnVlYCBpZiB0aGUgVVJMIG1hdGNoZXMgdGhlIGZpbHRlcjsgb3RoZXJ3aXNlLCBgZmFsc2VgLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogLy8gTWF0Y2hpbmcgYSBVUkwgd2l0aCBhIHN0cmluZyBmaWx0ZXJcbiAqIGNvbnNvbGUubG9nKG1hdGNoVXJsKCdodHRwczovL2V4YW1wbGUuY29tL3BhZ2UnLCAnaHR0cHM6Ly9leGFtcGxlLmNvbScpKTsgLy8gdHJ1ZVxuICpcbiAqIC8vIE1hdGNoaW5nIGEgVVJMIHdpdGggYSBSZWdFeHAgZmlsdGVyXG4gKiBjb25zb2xlLmxvZyhtYXRjaFVybCgnaHR0cHM6Ly9leGFtcGxlLmNvbS9wYWdlJywgL2V4YW1wbGVcXC5jb21cXC9wYWdlLykpOyAvLyB0cnVlXG4gKlxuICogLy8gQSBub24tbWF0Y2hpbmcgZXhhbXBsZVxuICogY29uc29sZS5sb2cobWF0Y2hVcmwoJ2h0dHBzOi8vZXhhbXBsZS5jb20vcGFnZScsICdodHRwczovL2Fub3RoZXIuY29tJykpOyAvLyBmYWxzZVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaFVybCh1cmw6IHN0cmluZywgZmlsdGVyOiBzdHJpbmcgfCBSZWdFeHApOiBib29sZWFuIHtcbiAgcmV0dXJuIGlzU3RyaW5nKGZpbHRlcikgPyB1cmwuc3RhcnRzV2l0aChmaWx0ZXIpIDogISF1cmwubWF0Y2goZmlsdGVyKTtcbn1cbiJdfQ==
|