@koobiq/components 21.0.0 → 21.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/badge/_badge-theme.scss +31 -0
- package/breadcrumbs/breadcrumbs.scss +5 -1
- package/checkbox/_checkbox-theme.scss +0 -17
- package/checkbox/checkbox-tokens.scss +0 -4
- package/code-block/_code-block-theme.scss +7 -6
- package/code-block/code-block-tokens.scss +8 -4
- package/code-block/code-block.scss +54 -32
- package/content-panel/content-panel-header.scss +2 -3
- package/content-panel/content-panel.scss +3 -0
- package/core/selection/pseudo-checkbox/pseudo-checkbox-tokens.scss +0 -2
- package/fesm2022/koobiq-components-accordion.mjs +4 -4
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +10 -2
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +2 -2
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +2 -2
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +18 -8
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +78 -10
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +106 -394
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-content-panel.mjs +4 -4
- package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +300 -37
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +151 -60
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-divider.mjs +3 -3
- package/fesm2022/koobiq-components-divider.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +3 -3
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +17 -8
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +124 -41
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-flag.mjs +3 -3
- package/fesm2022/koobiq-components-flag.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +90 -27
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +38 -17
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +19 -2
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +76 -17
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +1 -1
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +3 -3
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +86 -25
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +4 -4
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +116 -38
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +86 -7
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +41 -19
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-search-expandable.mjs +29 -17
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +49 -12
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +198 -186
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter.mjs +49 -25
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +30 -11
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +1 -1
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +28 -11
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-time-range.mjs +2 -2
- package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +71 -16
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +2 -2
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +2 -2
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +25 -9
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +90 -17
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +27 -7
- package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +24 -9
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +288 -109
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/file-upload/_file-upload-theme.scss +0 -12
- package/file-upload/file-upload-tokens.scss +0 -1
- package/file-upload/file-upload.scss +0 -1
- package/filter-bar/_filter-bar-theme.scss +7 -8
- package/filter-bar/filter-bar.scss +0 -1
- package/filter-bar/pipes/base-pipe.scss +36 -2
- package/filter-bar/pipes/pipe-multi-tree-select.scss +27 -0
- package/form-field/_fieldset-theme.scss +2 -7
- package/form-field/_form-field-theme.scss +9 -22
- package/form-field/_hint-theme.scss +20 -0
- package/form-field/fieldset-tokens.scss +0 -1
- package/form-field/fieldset.scss +0 -3
- package/form-field/form-field-tokens.scss +1 -1
- package/form-field/form-field.scss +9 -0
- package/form-field/hint-tokens.scss +3 -0
- package/modal/modal.scss +2 -0
- package/navbar/_navbar-item_vertical.scss +48 -2
- package/navbar/_navbar-theme.scss +11 -3
- package/navbar/navbar-item.scss +17 -0
- package/navbar/navbar-tokens.scss +3 -0
- package/package.json +4 -4
- package/popover/popover.scss +1 -1
- package/radio/_radio-theme.scss +0 -30
- package/radio/radio-tokens.scss +0 -2
- package/schematics/collection.json +94 -89
- package/schematics/migrations/accordion-state-saving-default/{index.js → index.cjs} +5 -4
- package/schematics/migrations/actions-panel-overlay-container/{index.js → index.cjs} +5 -4
- package/schematics/migrations/alert-signals/{index.js → index.cjs} +14 -13
- package/schematics/migrations/angular-animations-removal/index.cjs +21 -0
- package/schematics/migrations/app-switcher-signals/{index.js → index.cjs} +7 -6
- package/schematics/migrations/autocomplete-panel-width-auto/{index.js → index.cjs} +6 -5
- package/schematics/migrations/autocomplete-signals/{index.js → index.cjs} +7 -6
- package/schematics/migrations/badge-signals/{index.js → index.cjs} +7 -6
- package/schematics/migrations/button-state-and-styles/{index.js → index.cjs} +7 -6
- package/schematics/migrations/button-supported-colors/{index.js → index.cjs} +7 -6
- package/schematics/migrations/button-toggle-signals-and-aria/{index.js → index.cjs} +7 -6
- package/schematics/migrations/button-truncation/{index.js → index.cjs} +7 -6
- package/schematics/migrations/checkbox-signals/{index.js → index.cjs} +9 -8
- package/schematics/migrations/clamped-text-disclosure/{index.js → index.cjs} +5 -4
- package/schematics/migrations/code-block-highlight-js-core/README.md +53 -0
- package/schematics/migrations/code-block-highlight-js-core/data.cjs +64 -0
- package/schematics/migrations/code-block-highlight-js-core/index.cjs +319 -0
- package/schematics/migrations/code-block-highlight-js-core/schema.json +20 -0
- package/schematics/migrations/code-block-signals/{index.js → index.cjs} +7 -6
- package/schematics/migrations/color-signals/index.cjs +20 -0
- package/schematics/migrations/core-mixins-removal/index.cjs +18 -0
- package/schematics/migrations/css-selectors/{index.js → index.cjs} +4 -3
- package/schematics/migrations/datepicker-signals/index.cjs +18 -0
- package/schematics/migrations/deprecated-icons/README.md +21 -5
- package/schematics/migrations/deprecated-icons/{index.js → index.cjs} +15 -28
- package/schematics/migrations/deprecated-icons/schema.json +1 -1
- package/schematics/migrations/design-tokens-v4/{index.js → index.cjs} +3 -2
- package/schematics/migrations/divider-signals-and-aria/{index.js → index.cjs} +5 -4
- package/schematics/migrations/dl-attribute-coercion/{index.js → index.cjs} +7 -6
- package/schematics/migrations/dl-standalone-names/{index.js → index.cjs} +11 -10
- package/schematics/migrations/dropdown-demote-overlay/{index.js → index.cjs} +7 -6
- package/schematics/migrations/dropdown-signals/index.cjs +20 -0
- package/schematics/migrations/empty-state-error-color/{index.js → index.cjs} +5 -4
- package/schematics/migrations/empty-state-size-attr/{index.js → index.cjs} +6 -5
- package/schematics/migrations/file-upload-cva-and-primitives/{index.js → index.cjs} +5 -4
- package/schematics/migrations/file-upload-deprecated-outputs/{index.js → index.cjs} +5 -4
- package/schematics/migrations/filter-bar-rename-action/{index.js → index.cjs} +5 -4
- package/schematics/migrations/filter-bar-signals/{index.js → index.cjs} +16 -15
- package/schematics/migrations/filter-bar-state-saving-default/{index.js → index.cjs} +5 -4
- package/schematics/migrations/flag-inner-html/{index.js → index.cjs} +5 -4
- package/schematics/migrations/form-field-signals/{index.js → index.cjs} +18 -17
- package/schematics/migrations/icon-semantics-and-api/{data.js → data.cjs} +4 -4
- package/schematics/migrations/icon-semantics-and-api/{index.js → index.cjs} +6 -5
- package/schematics/migrations/icons-replacement/README.md +16 -2
- package/schematics/migrations/icons-replacement/{index.js → index.cjs} +21 -18
- package/schematics/migrations/icons-replacement/schema.json +12 -3
- package/schematics/migrations/inline-edit-a11y-and-types/{index.js → index.cjs} +5 -4
- package/schematics/migrations/input-number-surface/{index.js → index.cjs} +5 -4
- package/schematics/migrations/input-signals/index.cjs +18 -0
- package/schematics/migrations/link-deprecated-path/{index.js → index.cjs} +4 -3
- package/schematics/migrations/link-signals/{index.js → index.cjs} +5 -4
- package/schematics/migrations/list-signals/index.cjs +18 -0
- package/schematics/migrations/list-tree-multiple-input/{index.js → index.cjs} +7 -6
- package/schematics/migrations/loader-overlay-signals/{index.js → index.cjs} +7 -6
- package/schematics/migrations/loader-overlay-size-attr/{index.js → index.cjs} +6 -5
- package/schematics/migrations/locale-configuration-providers/{index.js → index.cjs} +5 -4
- package/schematics/migrations/mandatory-peer-dependencies/{index.js → index.cjs} +3 -2
- package/schematics/migrations/markdown-signals/{index.js → index.cjs} +7 -6
- package/schematics/migrations/modal-dialog-semantics/{index.js → index.cjs} +5 -4
- package/schematics/migrations/modal-signals/index.cjs +20 -0
- package/schematics/migrations/navbar-signals-and-aria/{index.js → index.cjs} +7 -6
- package/schematics/migrations/new-icons-pack/README.md +37 -25
- package/schematics/migrations/new-icons-pack/{index.js → index.cjs} +29 -38
- package/schematics/migrations/new-icons-pack/replacement.json +2 -14
- package/schematics/migrations/new-icons-pack/schema.json +3 -3
- package/schematics/migrations/notification-center-signals/{index.js → index.cjs} +5 -4
- package/schematics/migrations/option-signals/index.cjs +20 -0
- package/schematics/migrations/popover-leave-delay/{index.js → index.cjs} +5 -4
- package/schematics/migrations/progress-bar-percentage-and-aria/{index.js → index.cjs} +5 -4
- package/schematics/migrations/progress-spinner-signals/{index.js → index.cjs} +7 -6
- package/schematics/migrations/query-list-signals/index.cjs +18 -0
- package/schematics/migrations/radio-signals-and-aria/{index.js → index.cjs} +9 -8
- package/schematics/migrations/read-state-dwell-handlers/{index.js → index.cjs} +5 -4
- package/schematics/migrations/scrollbar-deprecated-path/{index.js → index.cjs} +4 -3
- package/schematics/migrations/select-signal-inputs/{index.js → index.cjs} +5 -4
- package/schematics/migrations/sidepanel-non-modal-behavior/{index.js → index.cjs} +5 -4
- package/schematics/migrations/signal-inputs-subclasses/index.cjs +18 -0
- package/schematics/migrations/split-button-optional-disabled/{index.js → index.cjs} +5 -4
- package/schematics/migrations/splitter-deprecated-path/{index.js → index.cjs} +4 -3
- package/schematics/migrations/state-saving-default/{index.js → index.cjs} +5 -4
- package/schematics/migrations/table-cell-content/{index.js → index.cjs} +5 -4
- package/schematics/migrations/tabs-signals-and-aria/{index.js → index.cjs} +5 -4
- package/schematics/migrations/tag-list-cleaner/{index.js → index.cjs} +7 -6
- package/schematics/migrations/tag-slots/{index.js → index.cjs} +6 -5
- package/schematics/migrations/tags-signals/{index.js → index.cjs} +7 -6
- package/schematics/migrations/textarea-signals/{index.js → index.cjs} +7 -6
- package/schematics/migrations/time-range-title-for/{index.js → index.cjs} +5 -4
- package/schematics/migrations/timepicker-signals/{index.js → index.cjs} +7 -6
- package/schematics/migrations/timezone-grouping-utils/{index.js → index.cjs} +5 -4
- package/schematics/migrations/title-encapsulation/{index.js → index.cjs} +5 -4
- package/schematics/migrations/toast-stack-and-defaults/{index.js → index.cjs} +5 -4
- package/schematics/migrations/tooltip-pointer-events-and-types/{index.js → index.cjs} +5 -4
- package/schematics/migrations/top-bar-container-selectors/{index.js → index.cjs} +5 -4
- package/schematics/migrations/tree-select-signals/{index.js → index.cjs} +5 -4
- package/schematics/migrations/tree-signals/{index.js → index.cjs} +5 -4
- package/schematics/migrations/tree-state-saving-default/{index.js → index.cjs} +5 -4
- package/schematics/migrations/username-pipe-injection/{index.js → index.cjs} +5 -4
- package/schematics/migrations/v20-upgrade/{data.js → data.cjs} +7 -7
- package/schematics/migrations/v20-upgrade/index.cjs +19 -0
- package/schematics/migrations/v21-upgrade/{data.js → data.cjs} +22 -22
- package/schematics/migrations/v21-upgrade/{index.js → index.cjs} +11 -10
- package/schematics/migrations/zoneless-change-detection/index.cjs +21 -0
- package/schematics/migrations.json +87 -82
- package/schematics/ng-add/{index.js → index.cjs} +15 -289
- package/schematics/utils/{angular-parsing.js → angular-parsing.cjs} +2 -2
- package/schematics/utils/custom-data.cjs +64 -0
- package/schematics/utils/{deprecated-path-migration.js → deprecated-path-migration.cjs} +4 -3
- package/schematics/utils/html-config.cjs +148 -0
- package/schematics/utils/{icon-migration.js → icon-migration.cjs} +11 -5
- package/schematics/utils/list-item-pattern.cjs +16 -0
- package/schematics/utils/{messages.js → messages.cjs} +4 -0
- package/schematics/utils/package-config.cjs +99 -0
- package/schematics/utils/project-files.cjs +25 -0
- package/schematics/utils/replacement-driver.cjs +337 -0
- package/schematics/utils/safe-rule.cjs +23 -0
- package/schematics/utils/signal-members-migration.cjs +779 -0
- package/schematics/utils/tag-patterns.cjs +21 -0
- package/schematics/utils/template-ref-access.cjs +155 -0
- package/schematics/utils/{typescript.js → typescript.cjs} +1 -1
- package/schematics/utils/warn-only-migration.cjs +52 -0
- package/schematics/utils/workspace-styles.cjs +123 -0
- package/select/select.scss +7 -0
- package/tabs/_tabs-common.scss +23 -0
- package/textarea/textarea-tokens.scss +4 -1
- package/toast/toast.component.scss +1 -0
- package/toggle/_toggle-theme.scss +0 -17
- package/tooltip/tooltip.scss +1 -1
- package/top-bar/top-bar-tokens.scss +1 -0
- package/top-bar/top-bar.scss +10 -0
- package/types/koobiq-components-accordion.d.ts +25 -0
- package/types/koobiq-components-button-toggle.d.ts +6 -0
- package/types/koobiq-components-checkbox.d.ts +30 -0
- package/types/koobiq-components-clamped-text.d.ts +16 -3
- package/types/koobiq-components-code-block.d.ts +55 -14
- package/types/koobiq-components-core.d.ts +226 -13
- package/types/koobiq-components-datepicker.d.ts +28 -1
- package/types/koobiq-components-divider.d.ts +28 -10
- package/types/koobiq-components-dropdown.d.ts +19 -0
- package/types/koobiq-components-filter-bar.d.ts +79 -6
- package/types/koobiq-components-flag.d.ts +18 -0
- package/types/koobiq-components-form-field.d.ts +87 -6
- package/types/koobiq-components-icon.d.ts +15 -0
- package/types/koobiq-components-inline-edit.d.ts +8 -1
- package/types/koobiq-components-input.d.ts +22 -3
- package/types/koobiq-components-list.d.ts +6 -0
- package/types/koobiq-components-modal.d.ts +7 -0
- package/types/koobiq-components-navbar.d.ts +71 -7
- package/types/koobiq-components-notification-center.d.ts +13 -0
- package/types/koobiq-components-overflow-items.d.ts +26 -2
- package/types/koobiq-components-popover.d.ts +38 -3
- package/types/koobiq-components-radio.d.ts +30 -0
- package/types/koobiq-components-search-expandable.d.ts +10 -0
- package/types/koobiq-components-select.d.ts +36 -4
- package/types/koobiq-components-sidepanel.d.ts +52 -1
- package/types/koobiq-components-splitter.d.ts +13 -4
- package/types/koobiq-components-tabs.d.ts +4 -0
- package/types/koobiq-components-tags.d.ts +6 -0
- package/types/koobiq-components-textarea.d.ts +9 -2
- package/types/koobiq-components-timepicker.d.ts +15 -0
- package/types/koobiq-components-toggle.d.ts +30 -0
- package/types/koobiq-components-tooltip.d.ts +55 -10
- package/types/koobiq-components-top-bar.d.ts +11 -3
- package/types/koobiq-components-tree-select.d.ts +23 -8
- package/types/koobiq-components-tree.d.ts +144 -60
- package/schematics/migrations/angular-animations-removal/index.js +0 -20
- package/schematics/migrations/color-signals/index.js +0 -19
- package/schematics/migrations/core-mixins-removal/index.js +0 -17
- package/schematics/migrations/datepicker-signals/index.js +0 -17
- package/schematics/migrations/dropdown-signals/index.js +0 -19
- package/schematics/migrations/input-signals/index.js +0 -17
- package/schematics/migrations/list-signals/index.js +0 -17
- package/schematics/migrations/modal-signals/index.js +0 -19
- package/schematics/migrations/option-signals/index.js +0 -19
- package/schematics/migrations/query-list-signals/index.js +0 -17
- package/schematics/migrations/signal-inputs-subclasses/index.js +0 -17
- package/schematics/migrations/v20-upgrade/index.js +0 -18
- package/schematics/migrations/zoneless-change-detection/index.js +0 -20
- package/schematics/utils/package-config.js +0 -13
- /package/schematics/migrations/accordion-state-saving-default/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/actions-panel-overlay-container/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/alert-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/angular-animations-removal/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/app-switcher-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/autocomplete-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/badge-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/button-state-and-styles/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/button-supported-colors/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/button-toggle-signals-and-aria/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/button-truncation/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/checkbox-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/clamped-text-disclosure/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/code-block-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/color-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/core-mixins-removal/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/css-selectors/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/datepicker-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/deprecated-icons/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/divider-signals-and-aria/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/dl-attribute-coercion/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/dl-standalone-names/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/dropdown-demote-overlay/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/dropdown-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/empty-state-error-color/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/file-upload-cva-and-primitives/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/file-upload-deprecated-outputs/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/filter-bar-rename-action/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/filter-bar-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/filter-bar-state-saving-default/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/flag-inner-html/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/form-field-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/icons-replacement/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/inline-edit-a11y-and-types/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/input-number-surface/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/input-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/link-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/list-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/list-tree-multiple-input/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/loader-overlay-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/locale-configuration-providers/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/markdown-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/modal-dialog-semantics/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/modal-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/navbar-signals-and-aria/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/new-icons-pack/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/notification-center-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/option-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/popover-leave-delay/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/progress-bar-percentage-and-aria/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/progress-spinner-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/query-list-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/radio-signals-and-aria/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/read-state-dwell-handlers/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/select-signal-inputs/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/sidepanel-non-modal-behavior/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/signal-inputs-subclasses/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/split-button-optional-disabled/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/state-saving-default/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/table-cell-content/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/tabs-signals-and-aria/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/tag-list-cleaner/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/tags-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/textarea-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/time-range-title-for/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/timepicker-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/timezone-grouping-utils/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/title-encapsulation/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/toast-stack-and-defaults/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/tooltip-pointer-events-and-types/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/top-bar-container-selectors/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/tree-select-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/tree-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/tree-state-saving-default/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/username-pipe-injection/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/zoneless-change-detection/{data.js → data.cjs} +0 -0
- /package/schematics/utils/{ast.js → ast.cjs} +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, inject, ElementRef, ChangeDetectorRef, Injector, signal, viewChild, computed, afterNextRender, ViewEncapsulation, ChangeDetectionStrategy, Component, untracked,
|
|
2
|
+
import { InjectionToken, inject, ElementRef, ChangeDetectorRef, Injector, signal, viewChild, computed, afterNextRender, ViewEncapsulation, ChangeDetectionStrategy, Component, untracked, isDevMode, TemplateRef, Injectable, Renderer2, input, Directive, booleanAttribute, effect, NgModule } from '@angular/core';
|
|
3
3
|
import { CdkTrapFocus, ConfigurableFocusTrapFactory, FocusTrapFactory, A11yModule } from '@angular/cdk/a11y';
|
|
4
4
|
import { BasePortalOutlet, CdkPortalOutlet, TemplatePortal, ComponentPortal, PortalModule } from '@angular/cdk/portal';
|
|
5
5
|
import * as i1 from '@koobiq/components/core';
|
|
6
|
-
import { kbqAnimationsDisabled, kbqAfterAnimations, ESCAPE, isHtmlElement,
|
|
6
|
+
import { kbqAnimationsDisabled, kbqAfterAnimations, ESCAPE, isHtmlElement, KBQ_STATE_STORE, KbqStateSavingService, KbqLocaleOverridesDirective, KBQ_A11Y_LOCALE_CONFIGURATION, KbqOverflowShadowContainer } from '@koobiq/components/core';
|
|
7
7
|
import { Subject, merge } from 'rxjs';
|
|
8
8
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
9
9
|
import * as i2 from '@koobiq/components/button';
|
|
@@ -46,7 +46,7 @@ class KbqSidepanelConfig {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
/** @
|
|
49
|
+
/** @docs-private */
|
|
50
50
|
var KbqSidepanelAnimationState;
|
|
51
51
|
(function (KbqSidepanelAnimationState) {
|
|
52
52
|
KbqSidepanelAnimationState["Void"] = "void";
|
|
@@ -106,13 +106,13 @@ class KbqSidepanelContainerComponent extends BasePortalOutlet {
|
|
|
106
106
|
/**
|
|
107
107
|
* The state of the sidepanel: on screen, closing, or stacked under another one.
|
|
108
108
|
*
|
|
109
|
-
* @
|
|
109
|
+
* @docs-private
|
|
110
110
|
*/
|
|
111
111
|
this.animationState = signal(KbqSidepanelAnimationState.Void, ...(ngDevMode ? [{ debugName: "animationState" }] : /* istanbul ignore next */ []));
|
|
112
112
|
/**
|
|
113
113
|
* Reports each state transition starting and ending.
|
|
114
114
|
*
|
|
115
|
-
* @
|
|
115
|
+
* @docs-private
|
|
116
116
|
*/
|
|
117
117
|
this.animationStateChanged = new Subject();
|
|
118
118
|
/** Transition events held until the render that applies the state, in the order they happened. */
|
|
@@ -122,7 +122,7 @@ class KbqSidepanelContainerComponent extends BasePortalOutlet {
|
|
|
122
122
|
/**
|
|
123
123
|
* Transform of the panel in its current state.
|
|
124
124
|
*
|
|
125
|
-
* @
|
|
125
|
+
* @docs-private
|
|
126
126
|
*/
|
|
127
127
|
this.stateTransform = computed(() => {
|
|
128
128
|
const transforms = kbqSidepanelTransformAnimation[this.position];
|
|
@@ -144,7 +144,7 @@ class KbqSidepanelContainerComponent extends BasePortalOutlet {
|
|
|
144
144
|
/**
|
|
145
145
|
* Opacity of the panel in its current state.
|
|
146
146
|
*
|
|
147
|
-
* @
|
|
147
|
+
* @docs-private
|
|
148
148
|
*/
|
|
149
149
|
this.stateOpacity = computed(() => {
|
|
150
150
|
switch (this.animationState()) {
|
|
@@ -236,7 +236,7 @@ class KbqSidepanelContainerComponent extends BasePortalOutlet {
|
|
|
236
236
|
return;
|
|
237
237
|
this.setAnimationState(KbqSidepanelAnimationState.Hidden);
|
|
238
238
|
}
|
|
239
|
-
/** @
|
|
239
|
+
/** @docs-private */
|
|
240
240
|
setAnimationState(state) {
|
|
241
241
|
if (this.destroyed)
|
|
242
242
|
return;
|
|
@@ -447,184 +447,6 @@ class KbqSidepanelRef {
|
|
|
447
447
|
}
|
|
448
448
|
}
|
|
449
449
|
|
|
450
|
-
/**
|
|
451
|
-
* Button that will close the current sidepanel.
|
|
452
|
-
*/
|
|
453
|
-
class KbqSidepanelClose {
|
|
454
|
-
constructor() {
|
|
455
|
-
// `CdkPortalOutlet.attachTemplatePortal()` forwards the portal injector to the embedded view, so the
|
|
456
|
-
// ref is reachable from a `<ng-template>` sidepanel as well as from a component one.
|
|
457
|
-
this.sidepanelRef = inject(KbqSidepanelRef);
|
|
458
|
-
this.elementRef = inject(ElementRef);
|
|
459
|
-
this.renderer = inject(Renderer2);
|
|
460
|
-
/** Value handed to `KbqSidepanelRef.close()`, under the hyphenated spelling of the selector. */
|
|
461
|
-
this.sidepanelResult = input(undefined, { ...(ngDevMode ? { debugName: "sidepanelResult" } : /* istanbul ignore next */ {}), alias: 'kbq-sidepanel-close' });
|
|
462
|
-
/** The same value, under the camel-case spelling. */
|
|
463
|
-
this.kbqSidepanelClose = input(...(ngDevMode ? [undefined, { debugName: "kbqSidepanelClose" }] : /* istanbul ignore next */ []));
|
|
464
|
-
afterNextRender(() => {
|
|
465
|
-
// A button with no type submits the form it sits in, so closing a sidepanel from inside a form would
|
|
466
|
-
// submit it too. A type the author set is left alone. The element carries its static attributes by
|
|
467
|
-
// the time a directive is constructed, so this needs no lifecycle hook.
|
|
468
|
-
if (!this.elementRef.nativeElement.hasAttribute('type')) {
|
|
469
|
-
this.renderer.setAttribute(this.elementRef.nativeElement, 'type', 'button');
|
|
470
|
-
}
|
|
471
|
-
});
|
|
472
|
-
}
|
|
473
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSidepanelClose, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
474
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.25", type: KbqSidepanelClose, isStandalone: true, selector: "button[kbq-sidepanel-close], button[kbqSidepanelClose]", inputs: { sidepanelResult: { classPropertyName: "sidepanelResult", publicName: "kbq-sidepanel-close", isSignal: true, isRequired: false, transformFunction: null }, kbqSidepanelClose: { classPropertyName: "kbqSidepanelClose", publicName: "kbqSidepanelClose", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "sidepanelRef.close(kbqSidepanelClose() ?? sidepanelResult())" }, classAttribute: "kbq-sidepanel-close" }, ngImport: i0 }); }
|
|
475
|
-
}
|
|
476
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSidepanelClose, decorators: [{
|
|
477
|
-
type: Directive,
|
|
478
|
-
args: [{
|
|
479
|
-
selector: 'button[kbq-sidepanel-close], button[kbqSidepanelClose]',
|
|
480
|
-
host: {
|
|
481
|
-
class: 'kbq-sidepanel-close',
|
|
482
|
-
// The camel-case spelling wins when a template binds both, as it did before.
|
|
483
|
-
'(click)': 'sidepanelRef.close(kbqSidepanelClose() ?? sidepanelResult())'
|
|
484
|
-
}
|
|
485
|
-
}]
|
|
486
|
-
}], ctorParameters: () => [], propDecorators: { sidepanelResult: [{ type: i0.Input, args: [{ isSignal: true, alias: "kbq-sidepanel-close", required: false }] }], kbqSidepanelClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "kbqSidepanelClose", required: false }] }] } });
|
|
487
|
-
/**
|
|
488
|
-
* Header of a sidepanel.
|
|
489
|
-
*/
|
|
490
|
-
class KbqSidepanelHeader {
|
|
491
|
-
constructor() {
|
|
492
|
-
/** Accessible name for the icon-only close button. */
|
|
493
|
-
this.a11yLocaleConfiguration = inject(KbqLocaleOverridesDirective, { self: true }).read('a11y', KBQ_A11Y_LOCALE_CONFIGURATION);
|
|
494
|
-
/** Add button for close sidepanel. Default false */
|
|
495
|
-
this.closeable = input(false, { ...(ngDevMode ? { debugName: "closeable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
496
|
-
/** Enables text truncation. Default true */
|
|
497
|
-
this.truncateText = input(true, { ...(ngDevMode ? { debugName: "truncateText" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
498
|
-
/** @docs-private */
|
|
499
|
-
this.sidepanelRef = inject(KbqSidepanelRef);
|
|
500
|
-
/** Id of the title element, which is what names the sidepanel to assistive technology. */
|
|
501
|
-
this.titleId = `${this.sidepanelRef.id}-title`;
|
|
502
|
-
this.sidepanelRef.containerInstance.setAriaLabelledBy(this.titleId);
|
|
503
|
-
}
|
|
504
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSidepanelHeader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
505
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.25", type: KbqSidepanelHeader, isStandalone: true, selector: "kbq-sidepanel-header", inputs: { closeable: { classPropertyName: "closeable", publicName: "closeable", isSignal: true, isRequired: false, transformFunction: null }, truncateText: { classPropertyName: "truncateText", publicName: "truncateText", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.kbq-sidepanel-header_truncate-text": "truncateText()", "style.box-shadow": "sidepanelRef.bodyOverflow().top ? \"var(--kbq-shadow-overflow-normal-bottom)\" : null" }, classAttribute: "kbq-sidepanel-header" }, hostDirectives: [{ directive: i1.KbqLocaleOverridesDirective, inputs: ["kbqLocaleOverrides", "localeOverrides"] }], ngImport: i0, template: `
|
|
506
|
-
<div class="kbq-sidepanel-title" kbq-title [attr.id]="titleId">
|
|
507
|
-
<ng-content />
|
|
508
|
-
</div>
|
|
509
|
-
|
|
510
|
-
@if (closeable()) {
|
|
511
|
-
<button
|
|
512
|
-
kbq-button
|
|
513
|
-
kbq-sidepanel-close
|
|
514
|
-
type="button"
|
|
515
|
-
[attr.aria-label]="a11yLocaleConfiguration().close"
|
|
516
|
-
[color]="'contrast'"
|
|
517
|
-
[kbqStyle]="'transparent'"
|
|
518
|
-
>
|
|
519
|
-
<i kbq-icon="kbq-xmark_16" [color]="'contrast'"></i>
|
|
520
|
-
</button>
|
|
521
|
-
}
|
|
522
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i2.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i2.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: KbqSidepanelClose, selector: "button[kbq-sidepanel-close], button[kbqSidepanelClose]", inputs: ["kbq-sidepanel-close", "kbqSidepanelClose"] }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["aria-hidden", "iconSize", "autoColor", "kbq-icon"] }, { kind: "directive", type: KbqTitleDirective, selector: "[kbq-title]", inputs: ["kbq-title", "ignoreTooltipPointerEvents"], exportAs: ["kbqTitle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
523
|
-
}
|
|
524
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSidepanelHeader, decorators: [{
|
|
525
|
-
type: Component,
|
|
526
|
-
args: [{
|
|
527
|
-
selector: 'kbq-sidepanel-header',
|
|
528
|
-
imports: [
|
|
529
|
-
KbqButtonModule,
|
|
530
|
-
KbqSidepanelClose,
|
|
531
|
-
KbqIconModule,
|
|
532
|
-
KbqTitleDirective
|
|
533
|
-
],
|
|
534
|
-
template: `
|
|
535
|
-
<div class="kbq-sidepanel-title" kbq-title [attr.id]="titleId">
|
|
536
|
-
<ng-content />
|
|
537
|
-
</div>
|
|
538
|
-
|
|
539
|
-
@if (closeable()) {
|
|
540
|
-
<button
|
|
541
|
-
kbq-button
|
|
542
|
-
kbq-sidepanel-close
|
|
543
|
-
type="button"
|
|
544
|
-
[attr.aria-label]="a11yLocaleConfiguration().close"
|
|
545
|
-
[color]="'contrast'"
|
|
546
|
-
[kbqStyle]="'transparent'"
|
|
547
|
-
>
|
|
548
|
-
<i kbq-icon="kbq-xmark_16" [color]="'contrast'"></i>
|
|
549
|
-
</button>
|
|
550
|
-
}
|
|
551
|
-
`,
|
|
552
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
553
|
-
host: {
|
|
554
|
-
class: 'kbq-sidepanel-header',
|
|
555
|
-
'[class.kbq-sidepanel-header_truncate-text]': 'truncateText()',
|
|
556
|
-
'[style.box-shadow]': 'sidepanelRef.bodyOverflow().top ? "var(--kbq-shadow-overflow-normal-bottom)" : null'
|
|
557
|
-
},
|
|
558
|
-
hostDirectives: [
|
|
559
|
-
{ directive: KbqLocaleOverridesDirective, inputs: ['kbqLocaleOverrides: localeOverrides'] }
|
|
560
|
-
]
|
|
561
|
-
}]
|
|
562
|
-
}], ctorParameters: () => [], propDecorators: { closeable: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeable", required: false }] }], truncateText: [{ type: i0.Input, args: [{ isSignal: true, alias: "truncateText", required: false }] }] } });
|
|
563
|
-
/**
|
|
564
|
-
* Scrollable content container of a sidepanel.
|
|
565
|
-
*/
|
|
566
|
-
class KbqSidepanelBody {
|
|
567
|
-
constructor() {
|
|
568
|
-
this.sidepanelRef = inject(KbqSidepanelRef);
|
|
569
|
-
this.overflowContainer = inject(KbqOverflowShadowContainer);
|
|
570
|
-
this.scrollbarViewport = inject(KbqScrollbarViewport);
|
|
571
|
-
effect(() => this.sidepanelRef.bodyOverflow.set(this.overflowContainer.overflow()));
|
|
572
|
-
this.sidepanelRef
|
|
573
|
-
.afterOpened()
|
|
574
|
-
.pipe(takeUntilDestroyed())
|
|
575
|
-
.subscribe(() => this.scrollbarViewport.flashScrollIndicators());
|
|
576
|
-
}
|
|
577
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSidepanelBody, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
578
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.25", type: KbqSidepanelBody, isStandalone: true, selector: "kbq-sidepanel-body, [kbq-sidepanel-body], kbqSidepanelBody", host: { classAttribute: "kbq-sidepanel-body" }, hostDirectives: [{ directive: i1.KbqOverflowShadowContainer }, { directive: i4.KbqScrollbarViewport }], ngImport: i0 }); }
|
|
579
|
-
}
|
|
580
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSidepanelBody, decorators: [{
|
|
581
|
-
type: Directive,
|
|
582
|
-
args: [{
|
|
583
|
-
selector: 'kbq-sidepanel-body, [kbq-sidepanel-body], kbqSidepanelBody',
|
|
584
|
-
host: {
|
|
585
|
-
class: 'kbq-sidepanel-body'
|
|
586
|
-
},
|
|
587
|
-
hostDirectives: [KbqOverflowShadowContainer, KbqScrollbarViewport]
|
|
588
|
-
}]
|
|
589
|
-
}], ctorParameters: () => [] });
|
|
590
|
-
/**
|
|
591
|
-
* Footer of a sidepanel.
|
|
592
|
-
*/
|
|
593
|
-
class KbqSidepanelFooter {
|
|
594
|
-
constructor() {
|
|
595
|
-
/** @docs-private */
|
|
596
|
-
this.sidepanelRef = inject(KbqSidepanelRef);
|
|
597
|
-
}
|
|
598
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSidepanelFooter, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
599
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.25", type: KbqSidepanelFooter, isStandalone: true, selector: "kbq-sidepanel-footer, [kbq-sidepanel-footer], kbqSidepanelFooter", host: { properties: { "style.box-shadow": "sidepanelRef.bodyOverflow().bottom ? \"var(--kbq-shadow-overflow-normal-top)\" : null" }, classAttribute: "kbq-sidepanel-footer" }, ngImport: i0 }); }
|
|
600
|
-
}
|
|
601
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSidepanelFooter, decorators: [{
|
|
602
|
-
type: Directive,
|
|
603
|
-
args: [{
|
|
604
|
-
selector: 'kbq-sidepanel-footer, [kbq-sidepanel-footer], kbqSidepanelFooter',
|
|
605
|
-
host: {
|
|
606
|
-
class: 'kbq-sidepanel-footer',
|
|
607
|
-
'[style.box-shadow]': 'sidepanelRef.bodyOverflow().bottom ? "var(--kbq-shadow-overflow-normal-top)" : null'
|
|
608
|
-
}
|
|
609
|
-
}]
|
|
610
|
-
}] });
|
|
611
|
-
/**
|
|
612
|
-
* Actions block of a sidepanel footer.
|
|
613
|
-
*/
|
|
614
|
-
class KbqSidepanelActions {
|
|
615
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSidepanelActions, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
616
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.25", type: KbqSidepanelActions, isStandalone: true, selector: "kbq-sidepanel-actions, [kbq-sidepanel-actions], kbqSidepanelActions", host: { classAttribute: "kbq-sidepanel-actions" }, ngImport: i0 }); }
|
|
617
|
-
}
|
|
618
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSidepanelActions, decorators: [{
|
|
619
|
-
type: Directive,
|
|
620
|
-
args: [{
|
|
621
|
-
selector: 'kbq-sidepanel-actions, [kbq-sidepanel-actions], kbqSidepanelActions',
|
|
622
|
-
host: {
|
|
623
|
-
class: 'kbq-sidepanel-actions'
|
|
624
|
-
}
|
|
625
|
-
}]
|
|
626
|
-
}] });
|
|
627
|
-
|
|
628
450
|
/** Injection token that can be used to specify default sidepanel options. */
|
|
629
451
|
const KBQ_SIDEPANEL_DEFAULT_OPTIONS = new InjectionToken('kbq-sidepanel-default-options');
|
|
630
452
|
/**
|
|
@@ -1064,6 +886,196 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImpo
|
|
|
1064
886
|
args: [{ providedIn: 'root' }]
|
|
1065
887
|
}] });
|
|
1066
888
|
|
|
889
|
+
/**
|
|
890
|
+
* Button that will close the current sidepanel.
|
|
891
|
+
*/
|
|
892
|
+
class KbqSidepanelClose {
|
|
893
|
+
/**
|
|
894
|
+
* Sidepanel the button closes: the one it is rendered in. A button rendered outside any sidepanel, such as
|
|
895
|
+
* an item of a dropdown opened from one, closes the sidepanel its template is declared in.
|
|
896
|
+
*/
|
|
897
|
+
get sidepanelRef() {
|
|
898
|
+
const container = this.elementRef.nativeElement.closest('.kbq-sidepanel-container');
|
|
899
|
+
const renderedIn = container && this.sidepanelService.openedSidepanels.find(({ id }) => id === container.id);
|
|
900
|
+
const sidepanelRef = renderedIn ?? this.declaredSidepanelRef;
|
|
901
|
+
if (!sidepanelRef) {
|
|
902
|
+
throw Error('kbqSidepanelClose: the button is neither rendered nor declared inside a sidepanel.');
|
|
903
|
+
}
|
|
904
|
+
return sidepanelRef;
|
|
905
|
+
}
|
|
906
|
+
constructor() {
|
|
907
|
+
this.declaredSidepanelRef = inject(KbqSidepanelRef, { optional: true });
|
|
908
|
+
this.sidepanelService = inject(KbqSidepanelService);
|
|
909
|
+
this.elementRef = inject(ElementRef);
|
|
910
|
+
this.renderer = inject(Renderer2);
|
|
911
|
+
/** Value handed to `KbqSidepanelRef.close()`, under the hyphenated spelling of the selector. */
|
|
912
|
+
this.sidepanelResult = input(undefined, { ...(ngDevMode ? { debugName: "sidepanelResult" } : /* istanbul ignore next */ {}), alias: 'kbq-sidepanel-close' });
|
|
913
|
+
/** The same value, under the camel-case spelling. */
|
|
914
|
+
this.kbqSidepanelClose = input(...(ngDevMode ? [undefined, { debugName: "kbqSidepanelClose" }] : /* istanbul ignore next */ []));
|
|
915
|
+
afterNextRender(() => {
|
|
916
|
+
// A button with no type submits the form it sits in, so closing a sidepanel from inside a form would
|
|
917
|
+
// submit it too. A type the author set is left alone. The element carries its static attributes by
|
|
918
|
+
// the time a directive is constructed, so this needs no lifecycle hook.
|
|
919
|
+
if (!this.elementRef.nativeElement.hasAttribute('type')) {
|
|
920
|
+
this.renderer.setAttribute(this.elementRef.nativeElement, 'type', 'button');
|
|
921
|
+
}
|
|
922
|
+
});
|
|
923
|
+
}
|
|
924
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSidepanelClose, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
925
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.25", type: KbqSidepanelClose, isStandalone: true, selector: "button[kbq-sidepanel-close], button[kbqSidepanelClose]", inputs: { sidepanelResult: { classPropertyName: "sidepanelResult", publicName: "kbq-sidepanel-close", isSignal: true, isRequired: false, transformFunction: null }, kbqSidepanelClose: { classPropertyName: "kbqSidepanelClose", publicName: "kbqSidepanelClose", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "sidepanelRef.close(kbqSidepanelClose() ?? sidepanelResult())" }, classAttribute: "kbq-sidepanel-close" }, ngImport: i0 }); }
|
|
926
|
+
}
|
|
927
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSidepanelClose, decorators: [{
|
|
928
|
+
type: Directive,
|
|
929
|
+
args: [{
|
|
930
|
+
selector: 'button[kbq-sidepanel-close], button[kbqSidepanelClose]',
|
|
931
|
+
host: {
|
|
932
|
+
class: 'kbq-sidepanel-close',
|
|
933
|
+
// The camel-case spelling wins when a template binds both, as it did before.
|
|
934
|
+
'(click)': 'sidepanelRef.close(kbqSidepanelClose() ?? sidepanelResult())'
|
|
935
|
+
}
|
|
936
|
+
}]
|
|
937
|
+
}], ctorParameters: () => [], propDecorators: { sidepanelResult: [{ type: i0.Input, args: [{ isSignal: true, alias: "kbq-sidepanel-close", required: false }] }], kbqSidepanelClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "kbqSidepanelClose", required: false }] }] } });
|
|
938
|
+
/**
|
|
939
|
+
* Header of a sidepanel.
|
|
940
|
+
*/
|
|
941
|
+
class KbqSidepanelHeader {
|
|
942
|
+
constructor() {
|
|
943
|
+
/** Accessible name for the icon-only close button. */
|
|
944
|
+
this.a11yLocaleConfiguration = inject(KbqLocaleOverridesDirective, { self: true }).read('a11y', KBQ_A11Y_LOCALE_CONFIGURATION);
|
|
945
|
+
/** Add button for close sidepanel. Default false */
|
|
946
|
+
this.closeable = input(false, { ...(ngDevMode ? { debugName: "closeable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
947
|
+
/** Enables text truncation. Default true */
|
|
948
|
+
this.truncateText = input(true, { ...(ngDevMode ? { debugName: "truncateText" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
949
|
+
/** @docs-private */
|
|
950
|
+
this.sidepanelRef = inject(KbqSidepanelRef);
|
|
951
|
+
/** Id of the title element, which is what names the sidepanel to assistive technology. */
|
|
952
|
+
this.titleId = `${this.sidepanelRef.id}-title`;
|
|
953
|
+
this.sidepanelRef.containerInstance.setAriaLabelledBy(this.titleId);
|
|
954
|
+
}
|
|
955
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSidepanelHeader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
956
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.25", type: KbqSidepanelHeader, isStandalone: true, selector: "kbq-sidepanel-header", inputs: { closeable: { classPropertyName: "closeable", publicName: "closeable", isSignal: true, isRequired: false, transformFunction: null }, truncateText: { classPropertyName: "truncateText", publicName: "truncateText", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.kbq-sidepanel-header_truncate-text": "truncateText()", "style.box-shadow": "sidepanelRef.bodyOverflow().top ? \"var(--kbq-shadow-overflow-normal-bottom)\" : null" }, classAttribute: "kbq-sidepanel-header" }, hostDirectives: [{ directive: i1.KbqLocaleOverridesDirective, inputs: ["kbqLocaleOverrides", "localeOverrides"] }], ngImport: i0, template: `
|
|
957
|
+
<div class="kbq-sidepanel-title" kbq-title [attr.id]="titleId">
|
|
958
|
+
<ng-content />
|
|
959
|
+
</div>
|
|
960
|
+
|
|
961
|
+
@if (closeable()) {
|
|
962
|
+
<button
|
|
963
|
+
kbq-button
|
|
964
|
+
kbq-sidepanel-close
|
|
965
|
+
type="button"
|
|
966
|
+
[attr.aria-label]="a11yLocaleConfiguration().close"
|
|
967
|
+
[color]="'contrast'"
|
|
968
|
+
[kbqStyle]="'transparent'"
|
|
969
|
+
>
|
|
970
|
+
<i kbq-icon="kbq-xmark_16" [color]="'contrast'"></i>
|
|
971
|
+
</button>
|
|
972
|
+
}
|
|
973
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i2.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i2.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: KbqSidepanelClose, selector: "button[kbq-sidepanel-close], button[kbqSidepanelClose]", inputs: ["kbq-sidepanel-close", "kbqSidepanelClose"] }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["aria-hidden", "iconSize", "autoColor", "kbq-icon"] }, { kind: "directive", type: KbqTitleDirective, selector: "[kbq-title]", inputs: ["kbq-title", "ignoreTooltipPointerEvents"], exportAs: ["kbqTitle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
974
|
+
}
|
|
975
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSidepanelHeader, decorators: [{
|
|
976
|
+
type: Component,
|
|
977
|
+
args: [{
|
|
978
|
+
selector: 'kbq-sidepanel-header',
|
|
979
|
+
imports: [
|
|
980
|
+
KbqButtonModule,
|
|
981
|
+
KbqSidepanelClose,
|
|
982
|
+
KbqIconModule,
|
|
983
|
+
KbqTitleDirective
|
|
984
|
+
],
|
|
985
|
+
template: `
|
|
986
|
+
<div class="kbq-sidepanel-title" kbq-title [attr.id]="titleId">
|
|
987
|
+
<ng-content />
|
|
988
|
+
</div>
|
|
989
|
+
|
|
990
|
+
@if (closeable()) {
|
|
991
|
+
<button
|
|
992
|
+
kbq-button
|
|
993
|
+
kbq-sidepanel-close
|
|
994
|
+
type="button"
|
|
995
|
+
[attr.aria-label]="a11yLocaleConfiguration().close"
|
|
996
|
+
[color]="'contrast'"
|
|
997
|
+
[kbqStyle]="'transparent'"
|
|
998
|
+
>
|
|
999
|
+
<i kbq-icon="kbq-xmark_16" [color]="'contrast'"></i>
|
|
1000
|
+
</button>
|
|
1001
|
+
}
|
|
1002
|
+
`,
|
|
1003
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1004
|
+
host: {
|
|
1005
|
+
class: 'kbq-sidepanel-header',
|
|
1006
|
+
'[class.kbq-sidepanel-header_truncate-text]': 'truncateText()',
|
|
1007
|
+
'[style.box-shadow]': 'sidepanelRef.bodyOverflow().top ? "var(--kbq-shadow-overflow-normal-bottom)" : null'
|
|
1008
|
+
},
|
|
1009
|
+
hostDirectives: [
|
|
1010
|
+
{ directive: KbqLocaleOverridesDirective, inputs: ['kbqLocaleOverrides: localeOverrides'] }
|
|
1011
|
+
]
|
|
1012
|
+
}]
|
|
1013
|
+
}], ctorParameters: () => [], propDecorators: { closeable: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeable", required: false }] }], truncateText: [{ type: i0.Input, args: [{ isSignal: true, alias: "truncateText", required: false }] }] } });
|
|
1014
|
+
/**
|
|
1015
|
+
* Scrollable content container of a sidepanel.
|
|
1016
|
+
*/
|
|
1017
|
+
class KbqSidepanelBody {
|
|
1018
|
+
constructor() {
|
|
1019
|
+
this.sidepanelRef = inject(KbqSidepanelRef);
|
|
1020
|
+
this.overflowContainer = inject(KbqOverflowShadowContainer);
|
|
1021
|
+
this.scrollbarViewport = inject(KbqScrollbarViewport);
|
|
1022
|
+
effect(() => this.sidepanelRef.bodyOverflow.set(this.overflowContainer.overflow()));
|
|
1023
|
+
this.sidepanelRef
|
|
1024
|
+
.afterOpened()
|
|
1025
|
+
.pipe(takeUntilDestroyed())
|
|
1026
|
+
.subscribe(() => this.scrollbarViewport.flashScrollIndicators());
|
|
1027
|
+
}
|
|
1028
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSidepanelBody, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1029
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.25", type: KbqSidepanelBody, isStandalone: true, selector: "kbq-sidepanel-body, [kbq-sidepanel-body], kbqSidepanelBody", host: { classAttribute: "kbq-sidepanel-body" }, hostDirectives: [{ directive: i1.KbqOverflowShadowContainer }, { directive: i4.KbqScrollbarViewport }], ngImport: i0 }); }
|
|
1030
|
+
}
|
|
1031
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSidepanelBody, decorators: [{
|
|
1032
|
+
type: Directive,
|
|
1033
|
+
args: [{
|
|
1034
|
+
selector: 'kbq-sidepanel-body, [kbq-sidepanel-body], kbqSidepanelBody',
|
|
1035
|
+
host: {
|
|
1036
|
+
class: 'kbq-sidepanel-body'
|
|
1037
|
+
},
|
|
1038
|
+
hostDirectives: [KbqOverflowShadowContainer, KbqScrollbarViewport]
|
|
1039
|
+
}]
|
|
1040
|
+
}], ctorParameters: () => [] });
|
|
1041
|
+
/**
|
|
1042
|
+
* Footer of a sidepanel.
|
|
1043
|
+
*/
|
|
1044
|
+
class KbqSidepanelFooter {
|
|
1045
|
+
constructor() {
|
|
1046
|
+
/** @docs-private */
|
|
1047
|
+
this.sidepanelRef = inject(KbqSidepanelRef);
|
|
1048
|
+
}
|
|
1049
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSidepanelFooter, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1050
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.25", type: KbqSidepanelFooter, isStandalone: true, selector: "kbq-sidepanel-footer, [kbq-sidepanel-footer], kbqSidepanelFooter", host: { properties: { "style.box-shadow": "sidepanelRef.bodyOverflow().bottom ? \"var(--kbq-shadow-overflow-normal-top)\" : null" }, classAttribute: "kbq-sidepanel-footer" }, ngImport: i0 }); }
|
|
1051
|
+
}
|
|
1052
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSidepanelFooter, decorators: [{
|
|
1053
|
+
type: Directive,
|
|
1054
|
+
args: [{
|
|
1055
|
+
selector: 'kbq-sidepanel-footer, [kbq-sidepanel-footer], kbqSidepanelFooter',
|
|
1056
|
+
host: {
|
|
1057
|
+
class: 'kbq-sidepanel-footer',
|
|
1058
|
+
'[style.box-shadow]': 'sidepanelRef.bodyOverflow().bottom ? "var(--kbq-shadow-overflow-normal-top)" : null'
|
|
1059
|
+
}
|
|
1060
|
+
}]
|
|
1061
|
+
}] });
|
|
1062
|
+
/**
|
|
1063
|
+
* Actions block of a sidepanel footer.
|
|
1064
|
+
*/
|
|
1065
|
+
class KbqSidepanelActions {
|
|
1066
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSidepanelActions, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1067
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.25", type: KbqSidepanelActions, isStandalone: true, selector: "kbq-sidepanel-actions, [kbq-sidepanel-actions], kbqSidepanelActions", host: { classAttribute: "kbq-sidepanel-actions" }, ngImport: i0 }); }
|
|
1068
|
+
}
|
|
1069
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSidepanelActions, decorators: [{
|
|
1070
|
+
type: Directive,
|
|
1071
|
+
args: [{
|
|
1072
|
+
selector: 'kbq-sidepanel-actions, [kbq-sidepanel-actions], kbqSidepanelActions',
|
|
1073
|
+
host: {
|
|
1074
|
+
class: 'kbq-sidepanel-actions'
|
|
1075
|
+
}
|
|
1076
|
+
}]
|
|
1077
|
+
}] });
|
|
1078
|
+
|
|
1067
1079
|
class KbqSidepanelModule {
|
|
1068
1080
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSidepanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1069
1081
|
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.25", ngImport: i0, type: KbqSidepanelModule, imports: [OverlayModule,
|