@daffodil/design 0.74.0 → 0.75.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/accordion/accordion/accordion/accordion.component.d.ts +3 -19
- package/article/README.md +19 -13
- package/article/examples/article-blockquote/article-blockquote.component.d.ts +1 -1
- package/article/examples/article-code-block/article-code-block.component.d.ts +1 -1
- package/article/examples/article-code-inline/article-code-inline.component.d.ts +1 -1
- package/article/examples/article-headings/article-headings.component.d.ts +1 -1
- package/article/examples/article-hr/article-hr.component.d.ts +1 -1
- package/article/examples/article-link/article-link.component.d.ts +1 -1
- package/article/examples/article-meta/article-meta.component.d.ts +1 -1
- package/article/examples/article-ol/article-ol.component.d.ts +1 -1
- package/article/examples/article-table/article-table.component.d.ts +1 -1
- package/article/examples/article-ul/article-ul.component.d.ts +1 -1
- package/article/examples/public_api.d.ts +0 -1
- package/button/button/button-sizable.directive.d.ts +10 -0
- package/button/button/button.component.d.ts +17 -27
- package/button/examples/basic-button/basic-button.component.d.ts +1 -1
- package/button/examples/flat-button/flat-button.component.d.ts +1 -1
- package/button/examples/icon-button/icon-button.component.d.ts +1 -1
- package/button/examples/public_api.d.ts +0 -8
- package/button/examples/raised-button/raised-button.component.d.ts +1 -1
- package/button/examples/sizeable-button/sizeable-button.component.d.ts +1 -1
- package/button/examples/statusable-button/statusable-button.component.d.ts +1 -1
- package/button/examples/stroked-button/stroked-button.component.d.ts +1 -1
- package/button/examples/underline-button/underline-button.component.d.ts +1 -1
- package/button/public_api.d.ts +1 -0
- package/callout/callout/callout.component.d.ts +6 -38
- package/callout/examples/callout-text-alignment/callout-text-alignment.component.d.ts +1 -1
- package/callout/examples/callout-theming/callout-theming.component.d.ts +1 -1
- package/callout/examples/callout-with-grid/callout-with-grid.component.d.ts +1 -1
- package/callout/examples/compact-callout/compact-callout.component.d.ts +1 -1
- package/callout/examples/public_api.d.ts +0 -4
- package/card/card/card.component.d.ts +3 -21
- package/card/examples/basic-card/basic-card.component.d.ts +1 -1
- package/card/examples/card-orientation/card-orientation.component.d.ts +1 -1
- package/card/examples/card-theming/card-theming.component.d.ts +1 -1
- package/card/examples/linkable-card/linkable-card.component.d.ts +1 -1
- package/card/examples/public_api.d.ts +0 -6
- package/card/examples/raised-card/raised-card.component.d.ts +1 -1
- package/card/examples/stroked-card/stroked-card.component.d.ts +1 -1
- package/checkbox/examples/basic-checkbox/basic-checkbox.component.d.ts +1 -1
- package/checkbox/examples/checkbox-set/checkbox-set.component.d.ts +1 -1
- package/checkbox/examples/examples.d.ts +0 -2
- package/checkbox/examples/public_api.d.ts +0 -1
- package/container/container/container.component.d.ts +3 -22
- package/container/examples/container-sizes/container-sizes.component.d.ts +1 -1
- package/container/examples/public_api.d.ts +0 -1
- package/core/article-encapsulated/article-encapsulated.directive.d.ts +19 -0
- package/core/article-encapsulated/public_api.d.ts +1 -1
- package/core/breakpoints/noop.service.d.ts +13 -0
- package/core/breakpoints/provider.d.ts +6 -0
- package/core/breakpoints/public_api.d.ts +3 -0
- package/core/colorable/colorable.d.ts +36 -2
- package/core/colorable/colorable.directive.d.ts +55 -0
- package/core/colorable/public_api.d.ts +1 -1
- package/core/compactable/compactable.directive.d.ts +25 -0
- package/core/compactable/public_api.d.ts +1 -1
- package/core/manage-container-layout/manage-container-layout.directive.d.ts +29 -0
- package/core/manage-container-layout/public_api.d.ts +1 -1
- package/core/public_api.d.ts +1 -1
- package/core/sizable/public_api.d.ts +1 -1
- package/core/sizable/sizable.d.ts +4 -2
- package/core/sizable/sizable.directive.d.ts +38 -0
- package/core/skeletonable/public_api.d.ts +1 -1
- package/core/skeletonable/skeletonable.d.ts +0 -1
- package/core/skeletonable/skeletonable.directive.d.ts +17 -0
- package/core/statusable/public_api.d.ts +1 -1
- package/core/statusable/statusable.d.ts +16 -0
- package/core/statusable/statusable.directive.d.ts +38 -0
- package/core/text-alignable/public_api.d.ts +1 -1
- package/core/text-alignable/text-alignable.d.ts +1 -2
- package/core/text-alignable/text-alignable.directive.d.ts +42 -0
- package/esm2022/accordion/accordion/accordion/accordion.component.mjs +11 -23
- package/esm2022/article/examples/article-blockquote/article-blockquote.component.mjs +4 -3
- package/esm2022/article/examples/article-code-block/article-code-block.component.mjs +4 -3
- package/esm2022/article/examples/article-code-inline/article-code-inline.component.mjs +4 -3
- package/esm2022/article/examples/article-headings/article-headings.component.mjs +3 -3
- package/esm2022/article/examples/article-hr/article-hr.component.mjs +4 -3
- package/esm2022/article/examples/article-link/article-link.component.mjs +4 -3
- package/esm2022/article/examples/article-meta/article-meta.component.mjs +4 -3
- package/esm2022/article/examples/article-ol/article-ol.component.mjs +4 -3
- package/esm2022/article/examples/article-table/article-table.component.mjs +4 -3
- package/esm2022/article/examples/article-ul/article-ul.component.mjs +4 -3
- package/esm2022/article/examples/public_api.mjs +1 -2
- package/esm2022/button/button/button-sizable.directive.mjs +14 -0
- package/esm2022/button/button/button.component.mjs +32 -10
- package/esm2022/button/examples/basic-button/basic-button.component.mjs +10 -4
- package/esm2022/button/examples/flat-button/flat-button.component.mjs +10 -4
- package/esm2022/button/examples/icon-button/icon-button.component.mjs +5 -4
- package/esm2022/button/examples/public_api.mjs +1 -9
- package/esm2022/button/examples/raised-button/raised-button.component.mjs +10 -4
- package/esm2022/button/examples/sizeable-button/sizeable-button.component.mjs +5 -4
- package/esm2022/button/examples/statusable-button/statusable-button.component.mjs +5 -4
- package/esm2022/button/examples/stroked-button/stroked-button.component.mjs +10 -4
- package/esm2022/button/examples/underline-button/underline-button.component.mjs +10 -4
- package/esm2022/button/public_api.mjs +2 -1
- package/esm2022/callout/callout/callout.component.mjs +28 -22
- package/esm2022/callout/examples/callout-text-alignment/callout-text-alignment.component.mjs +20 -10
- package/esm2022/callout/examples/callout-theming/callout-theming.component.mjs +17 -9
- package/esm2022/callout/examples/callout-with-grid/callout-with-grid.component.mjs +12 -4
- package/esm2022/callout/examples/compact-callout/compact-callout.component.mjs +12 -4
- package/esm2022/callout/examples/public_api.mjs +1 -5
- package/esm2022/card/card/card.component.mjs +12 -16
- package/esm2022/card/examples/basic-card/basic-card.component.mjs +12 -4
- package/esm2022/card/examples/card-orientation/card-orientation.component.mjs +20 -10
- package/esm2022/card/examples/card-theming/card-theming.component.mjs +11 -6
- package/esm2022/card/examples/linkable-card/linkable-card.component.mjs +15 -8
- package/esm2022/card/examples/public_api.mjs +1 -7
- package/esm2022/card/examples/raised-card/raised-card.component.mjs +15 -8
- package/esm2022/card/examples/stroked-card/stroked-card.component.mjs +15 -8
- package/esm2022/checkbox/examples/basic-checkbox/basic-checkbox.component.mjs +12 -6
- package/esm2022/checkbox/examples/checkbox-set/checkbox-set.component.mjs +12 -7
- package/esm2022/checkbox/examples/examples.mjs +1 -7
- package/esm2022/checkbox/examples/public_api.mjs +1 -2
- package/esm2022/container/container/container.component.mjs +15 -22
- package/esm2022/container/examples/container-sizes/container-sizes.component.mjs +11 -6
- package/esm2022/container/examples/public_api.mjs +1 -2
- package/esm2022/core/article-encapsulated/article-encapsulated.directive.mjs +33 -0
- package/esm2022/core/article-encapsulated/public_api.mjs +2 -2
- package/esm2022/core/breakpoints/noop.service.mjs +25 -0
- package/esm2022/core/breakpoints/provider.mjs +13 -0
- package/esm2022/core/breakpoints/public_api.mjs +4 -0
- package/esm2022/core/colorable/colorable.directive.mjs +77 -0
- package/esm2022/core/colorable/colorable.mjs +37 -2
- package/esm2022/core/colorable/public_api.mjs +2 -2
- package/esm2022/core/compactable/compactable.directive.mjs +41 -0
- package/esm2022/core/compactable/public_api.mjs +2 -2
- package/esm2022/core/manage-container-layout/manage-container-layout.directive.mjs +43 -0
- package/esm2022/core/manage-container-layout/public_api.mjs +2 -2
- package/esm2022/core/public_api.mjs +2 -2
- package/esm2022/core/sizable/public_api.mjs +2 -2
- package/esm2022/core/sizable/sizable.directive.mjs +53 -0
- package/esm2022/core/sizable/sizable.mjs +2 -3
- package/esm2022/core/skeletonable/public_api.mjs +2 -2
- package/esm2022/core/skeletonable/skeletonable.directive.mjs +33 -0
- package/esm2022/core/skeletonable/skeletonable.mjs +1 -1
- package/esm2022/core/statusable/public_api.mjs +2 -2
- package/esm2022/core/statusable/statusable.directive.mjs +50 -0
- package/esm2022/core/statusable/statusable.mjs +4 -1
- package/esm2022/core/text-alignable/public_api.mjs +2 -2
- package/esm2022/core/text-alignable/text-alignable.directive.mjs +53 -0
- package/esm2022/core/text-alignable/text-alignable.mjs +1 -1
- package/esm2022/hero/examples/compact-hero/compact-hero.component.mjs +10 -4
- package/esm2022/hero/examples/hero-text-alignment/hero-text-alignment.component.mjs +20 -10
- package/esm2022/hero/examples/hero-theming/hero-theming.component.mjs +15 -8
- package/esm2022/hero/examples/hero-with-grid/hero-with-grid.component.mjs +12 -4
- package/esm2022/hero/examples/public_api.mjs +1 -5
- package/esm2022/hero/hero/hero.component.mjs +28 -22
- package/esm2022/image/examples/basic-image/basic-image.component.mjs +4 -3
- package/esm2022/image/examples/load-image/load-image.component.mjs +6 -5
- package/esm2022/image/examples/public_api.mjs +4 -7
- package/esm2022/image/examples/skeleton-image/skeleton-image.component.mjs +4 -3
- package/esm2022/image/image/image.component.mjs +14 -23
- package/esm2022/input/examples/basic-input/basic-input.component.mjs +4 -3
- package/esm2022/input/examples/examples.mjs +5 -9
- package/esm2022/input/examples/input-disabled/input-disabled.component.mjs +4 -3
- package/esm2022/input/examples/input-error/input-error.component.mjs +9 -4
- package/esm2022/input/examples/input-with-form-field/input-with-form-field.component.mjs +4 -3
- package/esm2022/link-set/link-set/link-set.component.mjs +12 -22
- package/esm2022/list/examples/basic-list/basic-list.component.mjs +4 -3
- package/esm2022/list/examples/icon-list/icon-list.component.mjs +10 -4
- package/esm2022/list/examples/multiline-list/multiline-list.component.mjs +4 -3
- package/esm2022/list/examples/nav-list/nav-list.component.mjs +10 -4
- package/esm2022/list/examples/public_api.mjs +1 -2
- package/esm2022/list/list/list.component.mjs +12 -21
- package/esm2022/loading-icon/examples/examples.mjs +1 -3
- package/esm2022/loading-icon/examples/loading-icon-color/loading-icon-color.component.mjs +12 -7
- package/esm2022/loading-icon/examples/loading-icon-diameter/loading-icon-diameter.component.mjs +4 -3
- package/esm2022/loading-icon/loading-icon/loading-icon.component.mjs +21 -28
- package/esm2022/media-gallery/examples/basic-media-gallery/basic-media-gallery.component.mjs +7 -5
- package/esm2022/media-gallery/examples/mismatched-sizes-media-gallery/mismatched-sizes-media-gallery.component.mjs +7 -5
- package/esm2022/media-gallery/examples/public_api.mjs +1 -4
- package/esm2022/media-gallery/examples/skeleton-media-gallery/skeleton-media-gallery.component.mjs +7 -5
- package/esm2022/media-gallery/media-gallery/media-gallery.component.mjs +17 -23
- package/esm2022/menu/examples/basic-menu/basic-menu.component.mjs +5 -3
- package/esm2022/menu/examples/basic-menu/menu-content/menu-content.component.mjs +5 -4
- package/esm2022/menu/examples/public_api.mjs +2 -3
- package/esm2022/modal/examples/basic-modal/basic-modal.component.mjs +5 -4
- package/esm2022/modal/examples/basic-modal/modal-content.component.mjs +5 -3
- package/esm2022/modal/examples/public_api.mjs +2 -3
- package/esm2022/modal/modal/modal.component.mjs +42 -6
- package/esm2022/modal/modal-actions/modal-actions.component.mjs +15 -5
- package/esm2022/modal/modal-close/modal-close.directive.mjs +47 -0
- package/esm2022/modal/modal-content/modal-content.component.mjs +15 -5
- package/esm2022/modal/modal-header/modal-header.component.mjs +16 -4
- package/esm2022/modal/modal-title/modal-title.directive.mjs +33 -6
- package/esm2022/modal/modal.module.mjs +18 -5
- package/esm2022/modal/public_api.mjs +2 -1
- package/esm2022/modal/service/modal.service.mjs +3 -2
- package/esm2022/navbar/examples/basic-navbar/basic-navbar.component.mjs +5 -3
- package/esm2022/navbar/examples/contained-navbar/contained-navbar.component.mjs +12 -5
- package/esm2022/navbar/examples/navbar-theming/navbar-theming.component.mjs +15 -8
- package/esm2022/navbar/examples/public_api.mjs +1 -5
- package/esm2022/navbar/examples/raised-navbar/raised-navbar.component.mjs +5 -3
- package/esm2022/navbar/navbar/navbar.component.mjs +22 -28
- package/esm2022/notification/examples/default-notification/default-notification.component.mjs +16 -8
- package/esm2022/notification/examples/dismissible-notification/dismissible-notification.component.mjs +14 -7
- package/esm2022/notification/examples/notification-orientations/notification-orientations.component.mjs +15 -6
- package/esm2022/notification/examples/notification-status/notification-status.component.mjs +19 -9
- package/esm2022/notification/examples/notification-with-actions/notification-with-actions.component.mjs +14 -8
- package/esm2022/notification/examples/public_api.mjs +6 -11
- package/esm2022/notification/notification/notification.component.mjs +31 -36
- package/esm2022/paginator/examples/basic-paginator/basic-paginator.component.mjs +6 -3
- package/esm2022/paginator/examples/link-paginator/link-paginator.component.mjs +8 -4
- package/esm2022/paginator/examples/public_api.mjs +1 -2
- package/esm2022/paginator/paginator/paginator.component.mjs +1 -1
- package/esm2022/progress-bar/examples/progress-bar-default/progress-bar-default.component.mjs +4 -3
- package/esm2022/progress-bar/examples/progress-bar-indeterminate/progress-bar-indeterminate.component.mjs +4 -3
- package/esm2022/progress-bar/examples/progress-bar-themes/progress-bar-themes.component.mjs +5 -4
- package/esm2022/progress-bar/examples/public_api.mjs +4 -7
- package/esm2022/progress-bar/progress-bar.component.mjs +18 -23
- package/esm2022/public_api.mjs +1 -3
- package/esm2022/quantity-field/examples/basic-quantity-field/basic-quantity-field.component.mjs +11 -6
- package/esm2022/quantity-field/examples/custom-range-quantity-field/custom-range-quantity-field.component.mjs +11 -6
- package/esm2022/quantity-field/examples/disabled-quantity-field/disabled-quantity-field.component.mjs +11 -6
- package/esm2022/quantity-field/examples/public_api.mjs +1 -5
- package/esm2022/quantity-field/examples/select-max-quantity-field/select-max-quantity-field.component.mjs +11 -6
- package/esm2022/radio/examples/basic-radio/basic-radio.component.mjs +5 -4
- package/esm2022/radio/examples/examples.mjs +1 -5
- package/esm2022/radio/examples/public_api.mjs +1 -2
- package/esm2022/sidebar/examples/basic-sidebar/basic-sidebar.component.mjs +4 -3
- package/esm2022/sidebar/examples/over-and-under-sidebars/over-and-under-sidebars.component.mjs +15 -8
- package/esm2022/sidebar/examples/public_api.mjs +5 -9
- package/esm2022/sidebar/examples/side-fixed-sidebar/side-fixed-sidebar.component.mjs +5 -3
- package/esm2022/sidebar/examples/sidebar-with-sticky-content/sidebar-with-sticky-content.component.mjs +4 -3
- package/esm2022/toast/examples/default-toast/default-toast.component.mjs +4 -3
- package/esm2022/toast/examples/public_api.mjs +5 -9
- package/esm2022/toast/examples/toast-positions/toast-positions.component.mjs +22 -5
- package/esm2022/toast/examples/toast-status/toast-status.component.mjs +5 -4
- package/esm2022/toast/examples/toast-with-custom-duration/toast-with-custom-duration.component.mjs +4 -3
- package/esm2022/toast/toast/toast-template.component.mjs +2 -2
- package/esm2022/toast/toast/toast.component.mjs +16 -22
- package/esm2022/tree/examples/basic-tree/basic-tree.component.mjs +6 -5
- package/esm2022/tree/examples/public_api.mjs +1 -2
- package/esm2022/tree/tree/tree.component.mjs +13 -23
- package/fesm2022/daffodil-design-accordion.mjs +9 -21
- package/fesm2022/daffodil-design-accordion.mjs.map +1 -1
- package/fesm2022/daffodil-design-article-examples.mjs +22 -43
- package/fesm2022/daffodil-design-article-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-button-examples.mjs +41 -205
- package/fesm2022/daffodil-design-button-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-button.mjs +42 -11
- package/fesm2022/daffodil-design-button.mjs.map +1 -1
- package/fesm2022/daffodil-design-callout-examples.mjs +29 -130
- package/fesm2022/daffodil-design-callout-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-callout.mjs +25 -20
- package/fesm2022/daffodil-design-callout.mjs.map +1 -1
- package/fesm2022/daffodil-design-card-examples.mjs +39 -209
- package/fesm2022/daffodil-design-card-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-card.mjs +11 -15
- package/fesm2022/daffodil-design-card.mjs.map +1 -1
- package/fesm2022/daffodil-design-checkbox-examples.mjs +14 -64
- package/fesm2022/daffodil-design-checkbox-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-container-examples.mjs +9 -32
- package/fesm2022/daffodil-design-container-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-container.mjs +13 -20
- package/fesm2022/daffodil-design-container.mjs.map +1 -1
- package/fesm2022/daffodil-design-hero-examples.mjs +27 -136
- package/fesm2022/daffodil-design-hero-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-hero.mjs +25 -20
- package/fesm2022/daffodil-design-hero.mjs.map +1 -1
- package/fesm2022/daffodil-design-image-examples.mjs +11 -75
- package/fesm2022/daffodil-design-image-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-image.mjs +12 -21
- package/fesm2022/daffodil-design-image.mjs.map +1 -1
- package/fesm2022/daffodil-design-input-examples.mjs +15 -94
- package/fesm2022/daffodil-design-input-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-link-set.mjs +10 -20
- package/fesm2022/daffodil-design-link-set.mjs.map +1 -1
- package/fesm2022/daffodil-design-list-examples.mjs +20 -140
- package/fesm2022/daffodil-design-list-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-list.mjs +12 -21
- package/fesm2022/daffodil-design-list.mjs.map +1 -1
- package/fesm2022/daffodil-design-loading-icon-examples.mjs +10 -53
- package/fesm2022/daffodil-design-loading-icon-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-loading-icon.mjs +19 -26
- package/fesm2022/daffodil-design-loading-icon.mjs.map +1 -1
- package/fesm2022/daffodil-design-media-gallery-examples.mjs +10 -82
- package/fesm2022/daffodil-design-media-gallery-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-media-gallery.mjs +14 -20
- package/fesm2022/daffodil-design-media-gallery.mjs.map +1 -1
- package/fesm2022/daffodil-design-menu-examples.mjs +10 -39
- package/fesm2022/daffodil-design-menu-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-modal-examples.mjs +8 -33
- package/fesm2022/daffodil-design-modal-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-modal.mjs +169 -23
- package/fesm2022/daffodil-design-modal.mjs.map +1 -1
- package/fesm2022/daffodil-design-navbar-examples.mjs +20 -113
- package/fesm2022/daffodil-design-navbar-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-navbar.mjs +20 -26
- package/fesm2022/daffodil-design-navbar.mjs.map +1 -1
- package/fesm2022/daffodil-design-notification-examples.mjs +41 -164
- package/fesm2022/daffodil-design-notification-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-notification.mjs +29 -34
- package/fesm2022/daffodil-design-notification.mjs.map +1 -1
- package/fesm2022/daffodil-design-paginator-examples.mjs +12 -28
- package/fesm2022/daffodil-design-paginator-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-paginator.mjs.map +1 -1
- package/fesm2022/daffodil-design-progress-bar-examples.mjs +10 -73
- package/fesm2022/daffodil-design-progress-bar-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-progress-bar.mjs +16 -21
- package/fesm2022/daffodil-design-progress-bar.mjs.map +1 -1
- package/fesm2022/daffodil-design-quantity-field-examples.mjs +25 -126
- package/fesm2022/daffodil-design-quantity-field-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-radio-examples.mjs +4 -31
- package/fesm2022/daffodil-design-radio-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-sidebar-examples.mjs +22 -130
- package/fesm2022/daffodil-design-sidebar-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-toast-examples.mjs +20 -142
- package/fesm2022/daffodil-design-toast-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-toast.mjs +15 -21
- package/fesm2022/daffodil-design-toast.mjs.map +1 -1
- package/fesm2022/daffodil-design-tree-examples.mjs +6 -34
- package/fesm2022/daffodil-design-tree-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-tree.mjs +11 -21
- package/fesm2022/daffodil-design-tree.mjs.map +1 -1
- package/fesm2022/daffodil-design.mjs +404 -199
- package/fesm2022/daffodil-design.mjs.map +1 -1
- package/hero/examples/compact-hero/compact-hero.component.d.ts +1 -1
- package/hero/examples/hero-text-alignment/hero-text-alignment.component.d.ts +1 -1
- package/hero/examples/hero-theming/hero-theming.component.d.ts +1 -1
- package/hero/examples/hero-with-grid/hero-with-grid.component.d.ts +1 -1
- package/hero/examples/public_api.d.ts +0 -4
- package/hero/hero/hero.component.d.ts +6 -38
- package/image/examples/basic-image/basic-image.component.d.ts +1 -1
- package/image/examples/load-image/load-image.component.d.ts +1 -1
- package/image/examples/public_api.d.ts +2 -2
- package/image/examples/skeleton-image/skeleton-image.component.d.ts +1 -1
- package/image/image/image.component.d.ts +5 -22
- package/input/examples/basic-input/basic-input.component.d.ts +1 -1
- package/input/examples/examples.d.ts +2 -2
- package/input/examples/input-disabled/input-disabled.component.d.ts +1 -1
- package/input/examples/input-error/input-error.component.d.ts +1 -1
- package/input/examples/input-with-form-field/input-with-form-field.component.d.ts +1 -1
- package/link-set/link-set/link-set.component.d.ts +3 -22
- package/list/examples/basic-list/basic-list.component.d.ts +1 -1
- package/list/examples/icon-list/icon-list.component.d.ts +1 -1
- package/list/examples/multiline-list/multiline-list.component.d.ts +1 -1
- package/list/examples/nav-list/nav-list.component.d.ts +1 -1
- package/list/examples/public_api.d.ts +0 -1
- package/list/list/list.component.d.ts +5 -18
- package/loading-icon/examples/examples.d.ts +0 -2
- package/loading-icon/examples/loading-icon-color/loading-icon-color.component.d.ts +1 -1
- package/loading-icon/examples/loading-icon-diameter/loading-icon-diameter.component.d.ts +1 -1
- package/loading-icon/loading-icon/loading-icon.component.d.ts +3 -22
- package/media-gallery/examples/basic-media-gallery/basic-media-gallery.component.d.ts +1 -1
- package/media-gallery/examples/mismatched-sizes-media-gallery/mismatched-sizes-media-gallery.component.d.ts +1 -1
- package/media-gallery/examples/public_api.d.ts +0 -3
- package/media-gallery/examples/skeleton-media-gallery/skeleton-media-gallery.component.d.ts +1 -1
- package/media-gallery/media-gallery/media-gallery.component.d.ts +5 -25
- package/menu/examples/basic-menu/basic-menu.component.d.ts +1 -1
- package/menu/examples/basic-menu/menu-content/menu-content.component.d.ts +1 -1
- package/menu/examples/public_api.d.ts +2 -2
- package/modal/README.md +22 -37
- package/modal/examples/basic-modal/basic-modal.component.d.ts +1 -1
- package/modal/examples/basic-modal/modal-content.component.d.ts +1 -1
- package/modal/examples/public_api.d.ts +2 -2
- package/modal/modal/modal.component.d.ts +17 -1
- package/modal/modal-actions/modal-actions.component.d.ts +1 -0
- package/modal/modal-close/modal-close.directive.d.ts +24 -0
- package/modal/modal-content/modal-content.component.d.ts +1 -0
- package/modal/modal-header/modal-header.component.d.ts +6 -1
- package/modal/modal-title/modal-title.directive.d.ts +12 -1
- package/modal/modal.module.d.ts +7 -4
- package/modal/public_api.d.ts +1 -0
- package/navbar/examples/basic-navbar/basic-navbar.component.d.ts +1 -1
- package/navbar/examples/contained-navbar/contained-navbar.component.d.ts +1 -1
- package/navbar/examples/navbar-theming/navbar-theming.component.d.ts +1 -1
- package/navbar/examples/public_api.d.ts +0 -4
- package/navbar/examples/raised-navbar/raised-navbar.component.d.ts +1 -1
- package/navbar/navbar/navbar.component.d.ts +3 -25
- package/notification/examples/default-notification/default-notification.component.d.ts +1 -1
- package/notification/examples/dismissible-notification/dismissible-notification.component.d.ts +1 -1
- package/notification/examples/notification-orientations/notification-orientations.component.d.ts +1 -1
- package/notification/examples/notification-status/notification-status.component.d.ts +1 -1
- package/notification/examples/notification-with-actions/notification-with-actions.component.d.ts +1 -1
- package/notification/examples/public_api.d.ts +6 -2
- package/notification/notification/notification.component.d.ts +7 -25
- package/notification/src/notification-theme.scss +1 -1
- package/package.json +1 -1
- package/paginator/examples/basic-paginator/basic-paginator.component.d.ts +1 -1
- package/paginator/examples/link-paginator/link-paginator.component.d.ts +1 -1
- package/paginator/examples/public_api.d.ts +0 -1
- package/progress-bar/examples/progress-bar-default/progress-bar-default.component.d.ts +1 -1
- package/progress-bar/examples/progress-bar-indeterminate/progress-bar-indeterminate.component.d.ts +1 -1
- package/progress-bar/examples/progress-bar-themes/progress-bar-themes.component.d.ts +1 -1
- package/progress-bar/examples/public_api.d.ts +2 -2
- package/progress-bar/progress-bar.component.d.ts +7 -22
- package/public_api.d.ts +0 -1
- package/quantity-field/examples/basic-quantity-field/basic-quantity-field.component.d.ts +1 -1
- package/quantity-field/examples/custom-range-quantity-field/custom-range-quantity-field.component.d.ts +1 -1
- package/quantity-field/examples/disabled-quantity-field/disabled-quantity-field.component.d.ts +1 -1
- package/quantity-field/examples/public_api.d.ts +0 -4
- package/quantity-field/examples/select-max-quantity-field/select-max-quantity-field.component.d.ts +1 -1
- package/radio/examples/basic-radio/basic-radio.component.d.ts +1 -1
- package/radio/examples/examples.d.ts +0 -2
- package/radio/examples/public_api.d.ts +0 -1
- package/scss/state/skeleton/_mixins.scss +1 -1
- package/sidebar/examples/basic-sidebar/basic-sidebar.component.d.ts +1 -1
- package/sidebar/examples/over-and-under-sidebars/over-and-under-sidebars.component.d.ts +1 -1
- package/sidebar/examples/public_api.d.ts +2 -2
- package/sidebar/examples/side-fixed-sidebar/side-fixed-sidebar.component.d.ts +1 -1
- package/sidebar/examples/sidebar-with-sticky-content/sidebar-with-sticky-content.component.d.ts +1 -1
- package/toast/examples/default-toast/default-toast.component.d.ts +1 -1
- package/toast/examples/public_api.d.ts +5 -2
- package/toast/examples/toast-positions/toast-positions.component.d.ts +1 -1
- package/toast/examples/toast-status/toast-status.component.d.ts +1 -1
- package/toast/examples/toast-with-custom-duration/toast-with-custom-duration.component.d.ts +1 -1
- package/toast/toast/toast.component.d.ts +7 -25
- package/tree/examples/basic-tree/basic-tree.component.d.ts +1 -1
- package/tree/examples/public_api.d.ts +0 -1
- package/tree/tree/tree.component.d.ts +5 -19
- package/article/examples/article-examples.module.d.ts +0 -18
- package/button/examples/basic-button/basic-button.module.d.ts +0 -9
- package/button/examples/flat-button/flat-button.module.d.ts +0 -9
- package/button/examples/icon-button/icon-button.module.d.ts +0 -9
- package/button/examples/raised-button/raised-button.module.d.ts +0 -9
- package/button/examples/sizeable-button/sizeable-button.module.d.ts +0 -9
- package/button/examples/statusable-button/statusable-button.module.d.ts +0 -9
- package/button/examples/stroked-button/stroked-button.module.d.ts +0 -9
- package/button/examples/underline-button/underline-button.module.d.ts +0 -9
- package/callout/examples/callout-text-alignment/callout-text-alignment.module.d.ts +0 -13
- package/callout/examples/callout-theming/callout-theming.module.d.ts +0 -12
- package/callout/examples/callout-with-grid/callout-with-grid.module.d.ts +0 -13
- package/callout/examples/compact-callout/compact-callout.module.d.ts +0 -12
- package/card/examples/basic-card/basic-card.module.d.ts +0 -12
- package/card/examples/card-orientation/card-orientation.module.d.ts +0 -13
- package/card/examples/card-theming/card-theming.module.d.ts +0 -11
- package/card/examples/linkable-card/linkable-card.module.d.ts +0 -13
- package/card/examples/raised-card/raised-card.module.d.ts +0 -12
- package/card/examples/stroked-card/stroked-card.module.d.ts +0 -13
- package/checkbox/examples/basic-checkbox/basic-checkbox.module.d.ts +0 -10
- package/checkbox/examples/checkbox-set/checkbox-set.module.d.ts +0 -10
- package/container/examples/container-sizes/container-sizes.module.d.ts +0 -10
- package/core/article-encapsulated/article-encapsulated-mixin.d.ts +0 -15
- package/core/colorable/color-in-palette.d.ts +0 -1
- package/core/colorable/colorable-enum.d.ts +0 -10
- package/core/colorable/colorable-mixin.d.ts +0 -23
- package/core/compactable/compactable-mixin.d.ts +0 -14
- package/core/manage-container-layout/manage-container-layout-mixin.d.ts +0 -17
- package/core/sizable/sizable-mixin.d.ts +0 -15
- package/core/skeletonable/skeletonable-mixin.d.ts +0 -15
- package/core/statusable/statusable-mixin.d.ts +0 -16
- package/core/text-alignable/text-alignable-mixin.d.ts +0 -19
- package/esm2022/article/examples/article-examples.module.mjs +0 -35
- package/esm2022/button/examples/basic-button/basic-button.module.mjs +0 -28
- package/esm2022/button/examples/flat-button/flat-button.module.mjs +0 -28
- package/esm2022/button/examples/icon-button/icon-button.module.mjs +0 -28
- package/esm2022/button/examples/raised-button/raised-button.module.mjs +0 -28
- package/esm2022/button/examples/sizeable-button/sizeable-button.module.mjs +0 -28
- package/esm2022/button/examples/statusable-button/statusable-button.module.mjs +0 -28
- package/esm2022/button/examples/stroked-button/stroked-button.module.mjs +0 -28
- package/esm2022/button/examples/underline-button/underline-button.module.mjs +0 -28
- package/esm2022/callout/examples/callout-text-alignment/callout-text-alignment.module.mjs +0 -41
- package/esm2022/callout/examples/callout-theming/callout-theming.module.mjs +0 -37
- package/esm2022/callout/examples/callout-with-grid/callout-with-grid.module.mjs +0 -41
- package/esm2022/callout/examples/compact-callout/compact-callout.module.mjs +0 -37
- package/esm2022/card/examples/basic-card/basic-card.module.mjs +0 -40
- package/esm2022/card/examples/card-orientation/card-orientation.module.mjs +0 -44
- package/esm2022/card/examples/card-theming/card-theming.module.mjs +0 -36
- package/esm2022/card/examples/linkable-card/linkable-card.module.mjs +0 -44
- package/esm2022/card/examples/raised-card/raised-card.module.mjs +0 -40
- package/esm2022/card/examples/stroked-card/stroked-card.module.mjs +0 -44
- package/esm2022/checkbox/examples/basic-checkbox/basic-checkbox.module.mjs +0 -33
- package/esm2022/checkbox/examples/checkbox-set/checkbox-set.module.mjs +0 -33
- package/esm2022/container/examples/container-sizes/container-sizes.module.mjs +0 -32
- package/esm2022/core/article-encapsulated/article-encapsulated-mixin.mjs +0 -12
- package/esm2022/core/colorable/color-in-palette.mjs +0 -5
- package/esm2022/core/colorable/colorable-enum.mjs +0 -12
- package/esm2022/core/colorable/colorable-mixin.mjs +0 -42
- package/esm2022/core/compactable/compactable-mixin.mjs +0 -26
- package/esm2022/core/manage-container-layout/manage-container-layout-mixin.mjs +0 -14
- package/esm2022/core/sizable/sizable-mixin.mjs +0 -31
- package/esm2022/core/skeletonable/skeletonable-mixin.mjs +0 -26
- package/esm2022/core/statusable/statusable-mixin.mjs +0 -32
- package/esm2022/core/text-alignable/text-alignable-mixin.mjs +0 -35
- package/esm2022/examples/examples.mjs +0 -2
- package/esm2022/examples/public_api.mjs +0 -2
- package/esm2022/hero/examples/compact-hero/compact-hero.module.mjs +0 -40
- package/esm2022/hero/examples/hero-text-alignment/hero-text-alignment.module.mjs +0 -41
- package/esm2022/hero/examples/hero-theming/hero-theming.module.mjs +0 -40
- package/esm2022/hero/examples/hero-with-grid/hero-with-grid.module.mjs +0 -41
- package/esm2022/image/examples/basic-image/basic-image.module.mjs +0 -24
- package/esm2022/image/examples/load-image/load-image.module.mjs +0 -28
- package/esm2022/image/examples/skeleton-image/skeleton-image.module.mjs +0 -24
- package/esm2022/input/examples/basic-input/basic-input.module.mjs +0 -24
- package/esm2022/input/examples/input-disabled/input-disabled.module.mjs +0 -24
- package/esm2022/input/examples/input-error/input-error.module.mjs +0 -28
- package/esm2022/input/examples/input-with-form-field/input-with-form-field.module.mjs +0 -24
- package/esm2022/list/examples/basic-list/basic-list.module.mjs +0 -28
- package/esm2022/list/examples/icon-list/icon-list.module.mjs +0 -32
- package/esm2022/list/examples/list-examples.module.mjs +0 -33
- package/esm2022/list/examples/multiline-list/multiline-list.module.mjs +0 -32
- package/esm2022/list/examples/nav-list/nav-list.module.mjs +0 -32
- package/esm2022/loading-icon/examples/loading-icon-color/loading-icon-color.module.mjs +0 -32
- package/esm2022/loading-icon/examples/loading-icon-diameter/loading-icon-diameter.module.mjs +0 -24
- package/esm2022/media-gallery/examples/basic-media-gallery/basic-media-gallery.module.mjs +0 -29
- package/esm2022/media-gallery/examples/mismatched-sizes-media-gallery/mismatched-sizes-media-gallery.module.mjs +0 -29
- package/esm2022/media-gallery/examples/skeleton-media-gallery/skeleton-media-gallery.module.mjs +0 -29
- package/esm2022/menu/examples/basic-menu/basic-menu.module.mjs +0 -35
- package/esm2022/modal/examples/basic-modal/basic-modal.module.mjs +0 -31
- package/esm2022/navbar/examples/basic-navbar/basic-navbar.module.mjs +0 -33
- package/esm2022/navbar/examples/contained-navbar/contained-navbar.module.mjs +0 -33
- package/esm2022/navbar/examples/navbar-theming/navbar-theming.module.mjs +0 -33
- package/esm2022/navbar/examples/raised-navbar/raised-navbar.module.mjs +0 -29
- package/esm2022/notification/examples/default-notification/default-notification.module.mjs +0 -36
- package/esm2022/notification/examples/dismissible-notification/dismissible-notification.module.mjs +0 -36
- package/esm2022/notification/examples/notification-orientations/notification-orientations.module.mjs +0 -40
- package/esm2022/notification/examples/notification-status/notification-status.module.mjs +0 -40
- package/esm2022/notification/examples/notification-with-actions/notification-with-actions.module.mjs +0 -36
- package/esm2022/paginator/examples/paginator-examples.module.mjs +0 -27
- package/esm2022/progress-bar/examples/progress-bar-default/progress-bar-default.module.mjs +0 -24
- package/esm2022/progress-bar/examples/progress-bar-indeterminate/progress-bar-indeterminate.module.mjs +0 -24
- package/esm2022/progress-bar/examples/progress-bar-themes/progress-bar-themes.module.mjs +0 -28
- package/esm2022/quantity-field/examples/basic-quantity-field/basic-quantity-field.module.mjs +0 -35
- package/esm2022/quantity-field/examples/custom-range-quantity-field/custom-range-quantity-field.module.mjs +0 -35
- package/esm2022/quantity-field/examples/disabled-quantity-field/disabled-quantity-field.module.mjs +0 -35
- package/esm2022/quantity-field/examples/select-max-quantity-field/select-max-quantity-field.module.mjs +0 -35
- package/esm2022/radio/examples/basic-radio/basic-radio.module.mjs +0 -29
- package/esm2022/sidebar/examples/basic-sidebar/basic-sidebar.module.mjs +0 -32
- package/esm2022/sidebar/examples/over-and-under-sidebars/over-and-under-sidebars.module.mjs +0 -44
- package/esm2022/sidebar/examples/side-fixed-sidebar/side-fixed-sidebar.module.mjs +0 -32
- package/esm2022/sidebar/examples/sidebar-with-sticky-content/sidebar-with-sticky-content.module.mjs +0 -28
- package/esm2022/toast/examples/default-toast/default-toast.module.mjs +0 -36
- package/esm2022/toast/examples/toast-positions/toast-positions.module.mjs +0 -57
- package/esm2022/toast/examples/toast-status/toast-status.module.mjs +0 -40
- package/esm2022/toast/examples/toast-with-custom-duration/toast-with-custom-duration.module.mjs +0 -32
- package/esm2022/tree/examples/basic-tree/basic-tree.module.mjs +0 -32
- package/examples/examples.d.ts +0 -12
- package/examples/public_api.d.ts +0 -1
- package/hero/examples/compact-hero/compact-hero.module.d.ts +0 -12
- package/hero/examples/hero-text-alignment/hero-text-alignment.module.d.ts +0 -13
- package/hero/examples/hero-theming/hero-theming.module.d.ts +0 -12
- package/hero/examples/hero-with-grid/hero-with-grid.module.d.ts +0 -13
- package/image/examples/basic-image/basic-image.module.d.ts +0 -8
- package/image/examples/load-image/load-image.module.d.ts +0 -9
- package/image/examples/skeleton-image/skeleton-image.module.d.ts +0 -8
- package/input/examples/basic-input/basic-input.module.d.ts +0 -8
- package/input/examples/input-disabled/input-disabled.module.d.ts +0 -8
- package/input/examples/input-error/input-error.module.d.ts +0 -9
- package/input/examples/input-with-form-field/input-with-form-field.module.d.ts +0 -8
- package/list/examples/basic-list/basic-list.module.d.ts +0 -9
- package/list/examples/icon-list/icon-list.module.d.ts +0 -10
- package/list/examples/list-examples.module.d.ts +0 -11
- package/list/examples/multiline-list/multiline-list.module.d.ts +0 -10
- package/list/examples/nav-list/nav-list.module.d.ts +0 -10
- package/loading-icon/examples/loading-icon-color/loading-icon-color.module.d.ts +0 -10
- package/loading-icon/examples/loading-icon-diameter/loading-icon-diameter.module.d.ts +0 -8
- package/media-gallery/examples/basic-media-gallery/basic-media-gallery.module.d.ts +0 -9
- package/media-gallery/examples/mismatched-sizes-media-gallery/mismatched-sizes-media-gallery.module.d.ts +0 -9
- package/media-gallery/examples/skeleton-media-gallery/skeleton-media-gallery.module.d.ts +0 -9
- package/menu/examples/basic-menu/basic-menu.module.d.ts +0 -11
- package/modal/examples/basic-modal/basic-modal.module.d.ts +0 -10
- package/navbar/examples/basic-navbar/basic-navbar.module.d.ts +0 -11
- package/navbar/examples/contained-navbar/contained-navbar.module.d.ts +0 -11
- package/navbar/examples/navbar-theming/navbar-theming.module.d.ts +0 -11
- package/navbar/examples/raised-navbar/raised-navbar.module.d.ts +0 -10
- package/notification/examples/default-notification/default-notification.module.d.ts +0 -11
- package/notification/examples/dismissible-notification/dismissible-notification.module.d.ts +0 -11
- package/notification/examples/notification-orientations/notification-orientations.module.d.ts +0 -12
- package/notification/examples/notification-status/notification-status.module.d.ts +0 -12
- package/notification/examples/notification-with-actions/notification-with-actions.module.d.ts +0 -11
- package/paginator/examples/paginator-examples.module.d.ts +0 -10
- package/progress-bar/examples/progress-bar-default/progress-bar-default.module.d.ts +0 -8
- package/progress-bar/examples/progress-bar-indeterminate/progress-bar-indeterminate.module.d.ts +0 -8
- package/progress-bar/examples/progress-bar-themes/progress-bar-themes.module.d.ts +0 -9
- package/quantity-field/examples/basic-quantity-field/basic-quantity-field.module.d.ts +0 -10
- package/quantity-field/examples/custom-range-quantity-field/custom-range-quantity-field.module.d.ts +0 -10
- package/quantity-field/examples/disabled-quantity-field/disabled-quantity-field.module.d.ts +0 -10
- package/quantity-field/examples/select-max-quantity-field/select-max-quantity-field.module.d.ts +0 -10
- package/radio/examples/basic-radio/basic-radio.module.d.ts +0 -9
- package/sidebar/examples/basic-sidebar/basic-sidebar.module.d.ts +0 -10
- package/sidebar/examples/over-and-under-sidebars/over-and-under-sidebars.module.d.ts +0 -13
- package/sidebar/examples/side-fixed-sidebar/side-fixed-sidebar.module.d.ts +0 -10
- package/sidebar/examples/sidebar-with-sticky-content/sidebar-with-sticky-content.module.d.ts +0 -9
- package/toast/examples/default-toast/default-toast.module.d.ts +0 -11
- package/toast/examples/toast-positions/toast-positions.module.d.ts +0 -12
- package/toast/examples/toast-status/toast-status.module.d.ts +0 -12
- package/toast/examples/toast-with-custom-duration/toast-with-custom-duration.module.d.ts +0 -10
- package/tree/examples/basic-tree/basic-tree.module.d.ts +0 -10
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"daffodil-design-tree.mjs","sources":["../../../libs/design/tree/src/tree/tree-notifier.service.ts","../../../libs/design/tree/src/utils/flatten-tree.ts","../../../libs/design/tree/src/utils/traverse-tree.ts","../../../libs/design/tree/src/utils/hydrate-tree.ts","../../../libs/design/tree/src/tree/tree.component.ts","../../../libs/design/tree/src/tree/tree.component.html","../../../libs/design/tree/src/tree-item/tree-item.directive.ts","../../../libs/design/tree/src/tree.module.ts","../../../libs/design/tree/src/utils/transform-in-place.ts","../../../libs/design/tree/src/utils/transform.ts","../../../libs/design/tree/src/daffodil-design-tree.ts"],"sourcesContent":["import {\n Inject,\n OnDestroy,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * This service is used by tree-items to notify their parent\n * that the tree has to be re-computed.\n *\n * This service is a multiton associated with each tree instance.\n * It follows the same lifecycle has the tree it is associated with.\n */\n@Inject({})\nexport class DaffTreeNotifierService implements OnDestroy {\n\n /**\n * @docs-private\n */\n private _notice: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n\n /**\n * An observable that emits when the tree needs to be re-computed.\n */\n notice$ = this._notice.asObservable();\n\n /**\n * `notify` can be called to trigger a re-computation of the tree\n * if data has changed unexpectedly and a re-render did not occur.\n *\n * This should be used sparingly. Instead, prefer updating `data` on the tree\n * itself for performance reasons.\n */\n notify() {\n this._notice.next(true);\n }\n\n /**\n * Cleanup when the tree is destroyed.\n *\n * @docs-private\n */\n ngOnDestroy(): void {\n this._notice.complete();\n }\n}\n","import { DaffTreeUi } from '../interfaces/tree-ui';\n\n/**\n * A flattened node of a tree. This is used when translating the tree data\n * structure into an array.\n */\nexport interface DaffTreeFlatNode {\n id: number | string;\n title: string;\n url: string;\n level: number;\n hasChildren: boolean;\n data: unknown;\n visible: boolean;\n _treeRef: DaffTreeUi<unknown>;\n}\n\n/**\n * Flatten a DaffTreeUi<unknown> into an array, removing elements from the array\n * below nodes in the tree that are not open.\n */\nexport const flattenTree = (daffUiTree: DaffTreeUi<unknown>, removeNodes: boolean = false): DaffTreeFlatNode[] => {\n const tree: DaffTreeFlatNode[] = [];\n if(!daffUiTree) {\n return [];\n }\n\n let items = [\n {\n ...daffUiTree,\n level: 0,\n data: undefined,\n open: true,\n _treeRef: daffUiTree,\n },\n ];\n\n\n while(items) {\n const el = items.pop();\n if(!el) {\n break;\n }\n\n items = [\n ...items,\n ...el.items.map((i) => ({\n ...i,\n level:\n el.level + 1,\n _treeRef: i,\n })).reverse(),\n ];\n\n if(!removeNodes && el._treeRef.parent) {\n tree.push({\n id: el.id,\n title: el.title,\n level: el.level,\n url : el.url,\n visible: el._treeRef.parent?.open,\n hasChildren: el.items.length > 0,\n data: undefined,\n _treeRef: el._treeRef,\n });\n } else if(removeNodes && el._treeRef.parent?.open) {\n tree.push({\n id: el.id,\n title: el.title,\n level: el.level,\n url : el.url,\n visible: el._treeRef.parent?.open,\n hasChildren: el.items.length > 0,\n data: undefined,\n _treeRef: el._treeRef,\n });\n }\n }\n\n return tree;\n};\n","import { RecursiveTreeKeyOfType } from '../interfaces/recursive-key';\n\n/**\n * Traverse the tree, pre-order, right-to-left\n */\nexport const traverse = <T extends Record<any, any>, V extends Record<any, any> = T>(\n tree: T,\n visit: (tree: T) => V,\n key: RecursiveTreeKeyOfType<T>,\n): V => {\n let stack = [\n tree,\n ];\n\n while(stack) {\n const el = stack.pop();\n if(!el) {\n break;\n }\n\n visit(el);\n\n stack = [\n ...stack,\n ...<T[]><unknown>el[key],\n ];\n }\n\n return tree;\n};\n","import { traverse } from './traverse-tree';\nimport { DaffTreeData } from '../interfaces/tree-data';\nimport { DaffTreeUi } from '../interfaces/tree-ui';\n\nexport const daffDataTreeToUiTree = <T>(data: DaffTreeData<T>, parent: DaffTreeUi<T>, open: boolean = false): DaffTreeUi<T> => ({\n id: data.id ?? data.title,\n title: data.title,\n url: data.url,\n data: data.data,\n open,\n parent,\n items: [],\n});\n\n/**\n * This function translates the original data given to us by the client\n * to the internal representation of the tree used by the {@link DaffTreeComponent}\n */\nexport const hydrateTree = <T>(data: DaffTreeData<T>): DaffTreeUi<T> => {\n const tree = daffDataTreeToUiTree(data, undefined, true);\n\n let treeStack = [\n tree,\n ];\n\n traverse(data, (el) => {\n const treeEl = treeStack.pop();\n treeEl.items = el.items.map((i) => daffDataTreeToUiTree(i, treeEl, false));\n treeStack = [\n ...treeStack,\n ...treeEl.items,\n ];\n return el;\n }, 'items');\n\n return tree;\n};\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { daffArticleEncapsulatedMixin } from '@daffodil/design';\n\nimport { DaffTreeNotifierService } from './tree-notifier.service';\nimport { DaffTreeData } from '../interfaces/tree-data';\nimport { DaffTreeRenderMode } from '../interfaces/tree-render-mode';\nimport { DaffTreeUi } from '../interfaces/tree-ui';\nimport {\n DaffTreeFlatNode,\n flattenTree,\n} from '../utils/flatten-tree';\nimport { hydrateTree } from '../utils/hydrate-tree';\n\n/**\n * An _elementRef and an instance of renderer2 are needed for the list mixins\n */\nclass DaffTreeBase {\n constructor(public _elementRef: ElementRef, public _renderer: Renderer2) {}\n}\n\nconst _daffTreeBase = daffArticleEncapsulatedMixin((DaffTreeBase));\n\n/**\n * The `DaffTreeComponent` allows you to render tree structures as interactable ui.\n *\n * They can be used like:\n *\n * ```html\n * <ul daff-tree [tree]=\"tree\">\n * <ng-template #daffTreeItemWithChildrenTpl let-node>\n * <button daffTreeItem [node]=\"node\">{{ node.title }} </button>\n * </ng-template>\n *\n * <ng-template #daffTreeItemTpl let-node>\n * <a daffTreeItem [node]=\"node\" [routerLink]=\"node.url\">{{ node.title }}</a>\n * </ng-template>\n * </ul>\n * ```\n *\n * where `tree` is a {@link DaffTreeData}.\n *\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'ul[daff-tree]',\n templateUrl: './tree.component.html',\n styleUrls: ['./tree.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n DaffTreeNotifierService,\n ],\n})\nexport class DaffTreeComponent extends _daffTreeBase implements OnInit, OnChanges {\n\n /**\n * The css class of the daff-tree.\n *\n * @docs-private\n */\n @HostBinding('class.daff-tree') class = true;\n\n /**\n * The rendering mode for nodes in the tree.\n *\n * Default value is 'in-dom', which means nodes are present in the DOM.\n *\n * Generally, `not-in-dom` is faster as there are less DOM elements to render,\n * but there may be use-cases (like SEO) where having the tree in the DOM\n * is relevant.\n */\n @Input() renderMode: DaffTreeRenderMode;\n\n /**\n * The internal tree element.\n */\n private _tree: DaffTreeUi<unknown> = undefined;\n\n /**\n * The flattened tree data. You can iterate through this if you want to inspect\n * the resulting array structure we computed to render the tree.\n */\n public flatTree: DaffTreeFlatNode[] = [];\n\n /**\n * The tree data you would like to render.\n */\n @Input() tree: DaffTreeData<unknown>;\n\n /**\n * The template used to render tree-nodes that themselves have children.\n *\n * @docs-private\n */\n @ContentChild('daffTreeItemWithChildrenTpl', { static: true })\n withChildrenTemplate: TemplateRef<any>;\n\n /**\n * The template used to render tree-nodes that have no children.\n *\n * @docs-private\n */\n @ContentChild('daffTreeItemTpl', { static: true }) treeItemTemplate: TemplateRef<any>;\n\n constructor(\n private notifier: DaffTreeNotifierService,\n private elementRef: ElementRef,\n private renderer: Renderer2,\n ) {\n super(elementRef, renderer);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if(!changes.tree.currentValue) {\n this._tree = undefined;\n this.flatTree = [];\n return;\n }\n\n if(changes.renderMode && !changes.tree) {\n this.flatTree = flattenTree(this._tree, changes.renderMode.currentValue === 'not-in-dom');\n } else if(changes.renderMode || changes.tree) {\n this._tree = hydrateTree(changes.tree?.currentValue ?? this.tree);\n this.flatTree = flattenTree(this._tree, (changes.renderMode?.currentValue ?? this.renderMode) === 'not-in-dom');\n }\n }\n\n /**\n * The track-by function used to reduce tree-item re-renders\n */\n trackByTreeElement(index: number, el: any): any {\n return el.title;\n }\n\n /**\n * @docs-private\n */\n ngOnInit(): void {\n this.notifier.notice$.subscribe(() => {\n this.flatTree = flattenTree(this._tree, this.renderMode === 'not-in-dom');\n });\n }\n}\n","<ng-container *ngFor=\"let node of flatTree; trackBy: trackByTreeElement\">\n\t<ng-container>\n\t\t<li [attr.aria-level]=\"node.level\" [class.hidden]=\"!node.visible\">\n\t\t\t<ng-container\n\t\t\t\t*ngTemplateOutlet=\"node.hasChildren ? withChildrenTemplate : treeItemTemplate; context: { $implicit: node }\">\n\t\t\t</ng-container>\n\t\t</li>\n\t</ng-container>\n</ng-container>","import { DOCUMENT } from '@angular/common';\nimport {\n Directive,\n HostBinding,\n HostListener,\n Inject,\n Input,\n} from '@angular/core';\n\nimport { DaffTreeNotifierService } from '../tree/tree-notifier.service';\nimport { DaffTreeFlatNode } from '../utils/flatten-tree';\n\n/**\n * The `DaffTreeItemDirective` allows you to demarcate the elements which are\n * tree-children that interact with the parent tree.\n *\n * They can be used like:\n *\n * ```html\n * <ul daff-tree [tree]=\"tree\">\n * <ng-template #daffTreeItemWithChildrenTpl let-node>\n * <button daffTreeItem [node]=\"node\">{{ node.title }} </button>\n * </ng-template>\n *\n * <ng-template #daffTreeItemTpl let-node>\n * <a daffTreeItem [node]=\"node\" [routerLink]=\"node.url\">{{ node.title }}</a>\n * </ng-template>\n * </ul>\n * ```\n *\n * where `tree` is a {@link DaffTreeData} and `daff-tree` is a {@link DaffTreeComponent}.\n *\n */\n@Directive({\n selector: '[daffTreeItem]',\n})\nexport class DaffTreeItemDirective {\n\n /**\n * The css class of the daff-tree.\n *\n * @docs-private\n */\n @HostBinding('class.daff-tree-item') class = true;\n\n /**\n * The css class of a DaffTreeItemDirective that has children.\n *\n * @docs-private\n */\n @HostBinding('class.daff-tree-item__parent') classParent = false;\n\n /**\n * The html `id` of the tree item. This is derived from the {@link DaffTreeData}.\n *\n * @docs-private\n */\n @HostBinding('attr.id') id;\n\n /**\n * Accessibility property, notifying users about whether\n * or not the tree item is open.\n *\n * @docs-private\n */\n @HostBinding('attr.aria-expanded') ariaExpanded: string;\n\n /**\n * A css variable indicating the depth of the tree.\n * You can use this to style your templates if you want to\n * use different designs at different depths.\n */\n @HostBinding('style.--depth') depth: number;\n\n /**\n * The CSS class indicating whether or not the tree is `selected`.\n */\n @HostBinding('class.selected') get selectedClass() {\n return this.selected;\n };\n\n /**\n * The CSS class indicating whether or not the tree is `open`.\n */\n @HostBinding('class.open') openClass = false;\n\n /**\n * The {@link DaffTreeFlatNode} associated with this specific tree item.\n *\n * @docs-private\n */\n private _node: DaffTreeFlatNode;\n\n /**\n * The {@link DaffTreeFlatNode} associated with this specific tree item.\n */\n @Input()\n get node() {\n return this._node;\n };\n set node(val: DaffTreeFlatNode) {\n this._node = val;\n this.id = 'tree-' + this._node.id;\n this.depth = this._node.level;\n this.classParent = this._node.hasChildren;\n this.openClass = this._node._treeRef.open;\n\n if(this._node.hasChildren) {\n this.ariaExpanded = this._node._treeRef.open ? 'true' : 'false';\n }\n }\n\n /**\n * Whether or not the tree item is the currently active item.\n * Note that there is no requirement there there only be one active item at a time.\n */\n @Input() selected = false;\n\n constructor(\n @Inject(DOCUMENT) private document: any,\n private treeNotifier: DaffTreeNotifierService,\n ) {}\n\n /**\n * @docs-private\n */\n @HostListener('keydown.escape')\n onEscape() {\n this.toggleParent(this.node);\n }\n\n /**\n * @docs-private\n */\n @HostListener('click')\n onClick() {\n if(this.node.hasChildren) {\n this.toggleTree(this.node);\n }\n this.treeNotifier.notify();\n }\n\n /**\n * Toggle the open state of the tree's parent.\n */\n toggleParent(node: DaffTreeFlatNode) {\n if(node._treeRef?.parent.parent === undefined) {\n return;\n }\n node._treeRef.parent.open = !node._treeRef.parent.open;\n (<Document>this.document).getElementById('tree-' + node._treeRef.parent.id).focus();\n }\n\n /**\n * Toggle the open state of this specific subtree tree.\n */\n toggleTree(node: DaffTreeFlatNode) {\n if(node._treeRef.open === false) {\n node._treeRef.open = true;\n } else {\n node._treeRef.open = false;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DaffTreeComponent } from './tree/tree.component';\nimport { DaffTreeItemDirective } from './tree-item/tree-item.directive';\n\n@NgModule({\n declarations: [\n DaffTreeComponent,\n DaffTreeItemDirective,\n ],\n imports: [\n CommonModule,\n ],\n exports: [\n DaffTreeComponent,\n DaffTreeItemDirective,\n ],\n})\nexport class DaffTreeModule { }\n","import { traverse } from './traverse-tree';\nimport { RecursiveTreeKeyOfType } from '../interfaces/recursive-key';\nimport { DaffTreeData } from '../interfaces/tree-data';\n\n/**\n * Transform a tree-like structure in-place into a {@link DaffTreeData}.\n *\n * This will mutate the original object, hydrating with additional properties.\n *\n * @param tree - The data structure representing tree-like data.\n * @param transformFn - A user-supplied function that will transform the user\n * type into a {@link DaffTreeData}\n * @param key - The property of the your tree that indicates which\n * key contains the \"children\" of your tree structure.\n *\n */\nexport const daffTransformTreeInPlace = <\n // eslint-disable-next-line @typescript-eslint/ban-types\n T extends Record<any,any>,\n>(\n tree: T,\n transformFn: (type: T) => T & DaffTreeData<unknown>,\n key: RecursiveTreeKeyOfType<T>,\n): DaffTreeData<unknown> => traverse<T, T & DaffTreeData<unknown>>(\n tree,\n (el) => {\n const r = Object.assign(el, transformFn(el));\n r.items = el[key];\n el = r;\n return <T & DaffTreeData<unknown>>el;\n },\n // This type is confusing. I don't understand why it has to be here,\n // the associated error message is incomprehensible.\n <T[string] extends T[] ? string : never>key,\n);\n","import { RecursiveTreeKeyOfType } from '../interfaces/recursive-key';\nimport { DaffTreeData } from '../interfaces/tree-data';\n\n/**\n * Transform a tree-like structure into a {@link DaffTreeData}.\n *\n * @param tree - The data structure representing tree-like data.\n * @param transformFn - A user-supplied function that will transform the user\n * type into a {@link DaffTreeData}\n * @param key - The property of the your tree that indicates which\n * key contains the \"children\" of your tree structure.\n *\n */\nexport const daffTransformTree = <\n // eslint-disable-next-line @typescript-eslint/ban-types\n T extends Record<any,any>,\n V\n>(\n tree: T,\n transformFn: (type: T) => DaffTreeData<V>,\n key: RecursiveTreeKeyOfType<T>,\n): DaffTreeData<V> => {\n\n const transformedTree: DaffTreeData<V> = transformFn(tree);\n\n const queue: { node: T; parent: DaffTreeData<V> }[] = [{ node: tree, parent: transformedTree }];\n\n while (queue.length > 0) {\n const { node, parent } = queue.shift();\n\n const childItems = node[key];\n for (const child of <T[]>childItems) {\n const transformedChild: DaffTreeData<V> = transformFn(child);\n parent.items.push(transformedChild);\n queue.push({ node: child, parent: transformedChild });\n }\n }\n\n return transformedTree;\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffTreeNotifierService"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"daffodil-design-tree.mjs","sources":["../../../libs/design/tree/src/tree/tree-notifier.service.ts","../../../libs/design/tree/src/utils/flatten-tree.ts","../../../libs/design/tree/src/utils/traverse-tree.ts","../../../libs/design/tree/src/utils/hydrate-tree.ts","../../../libs/design/tree/src/tree/tree.component.ts","../../../libs/design/tree/src/tree/tree.component.html","../../../libs/design/tree/src/tree-item/tree-item.directive.ts","../../../libs/design/tree/src/tree.module.ts","../../../libs/design/tree/src/utils/transform-in-place.ts","../../../libs/design/tree/src/utils/transform.ts","../../../libs/design/tree/src/daffodil-design-tree.ts"],"sourcesContent":["import {\n Inject,\n OnDestroy,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * This service is used by tree-items to notify their parent\n * that the tree has to be re-computed.\n *\n * This service is a multiton associated with each tree instance.\n * It follows the same lifecycle has the tree it is associated with.\n */\n@Inject({})\nexport class DaffTreeNotifierService implements OnDestroy {\n\n /**\n * @docs-private\n */\n private _notice: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n\n /**\n * An observable that emits when the tree needs to be re-computed.\n */\n notice$ = this._notice.asObservable();\n\n /**\n * `notify` can be called to trigger a re-computation of the tree\n * if data has changed unexpectedly and a re-render did not occur.\n *\n * This should be used sparingly. Instead, prefer updating `data` on the tree\n * itself for performance reasons.\n */\n notify() {\n this._notice.next(true);\n }\n\n /**\n * Cleanup when the tree is destroyed.\n *\n * @docs-private\n */\n ngOnDestroy(): void {\n this._notice.complete();\n }\n}\n","import { DaffTreeUi } from '../interfaces/tree-ui';\n\n/**\n * A flattened node of a tree. This is used when translating the tree data\n * structure into an array.\n */\nexport interface DaffTreeFlatNode {\n id: number | string;\n title: string;\n url: string;\n level: number;\n hasChildren: boolean;\n data: unknown;\n visible: boolean;\n _treeRef: DaffTreeUi<unknown>;\n}\n\n/**\n * Flatten a DaffTreeUi<unknown> into an array, removing elements from the array\n * below nodes in the tree that are not open.\n */\nexport const flattenTree = (daffUiTree: DaffTreeUi<unknown>, removeNodes: boolean = false): DaffTreeFlatNode[] => {\n const tree: DaffTreeFlatNode[] = [];\n if(!daffUiTree) {\n return [];\n }\n\n let items = [\n {\n ...daffUiTree,\n level: 0,\n data: undefined,\n open: true,\n _treeRef: daffUiTree,\n },\n ];\n\n\n while(items) {\n const el = items.pop();\n if(!el) {\n break;\n }\n\n items = [\n ...items,\n ...el.items.map((i) => ({\n ...i,\n level:\n el.level + 1,\n _treeRef: i,\n })).reverse(),\n ];\n\n if(!removeNodes && el._treeRef.parent) {\n tree.push({\n id: el.id,\n title: el.title,\n level: el.level,\n url : el.url,\n visible: el._treeRef.parent?.open,\n hasChildren: el.items.length > 0,\n data: undefined,\n _treeRef: el._treeRef,\n });\n } else if(removeNodes && el._treeRef.parent?.open) {\n tree.push({\n id: el.id,\n title: el.title,\n level: el.level,\n url : el.url,\n visible: el._treeRef.parent?.open,\n hasChildren: el.items.length > 0,\n data: undefined,\n _treeRef: el._treeRef,\n });\n }\n }\n\n return tree;\n};\n","import { RecursiveTreeKeyOfType } from '../interfaces/recursive-key';\n\n/**\n * Traverse the tree, pre-order, right-to-left\n */\nexport const traverse = <T extends Record<any, any>, V extends Record<any, any> = T>(\n tree: T,\n visit: (tree: T) => V,\n key: RecursiveTreeKeyOfType<T>,\n): V => {\n let stack = [\n tree,\n ];\n\n while(stack) {\n const el = stack.pop();\n if(!el) {\n break;\n }\n\n visit(el);\n\n stack = [\n ...stack,\n ...<T[]><unknown>el[key],\n ];\n }\n\n return tree;\n};\n","import { traverse } from './traverse-tree';\nimport { DaffTreeData } from '../interfaces/tree-data';\nimport { DaffTreeUi } from '../interfaces/tree-ui';\n\nexport const daffDataTreeToUiTree = <T>(data: DaffTreeData<T>, parent: DaffTreeUi<T>, open: boolean = false): DaffTreeUi<T> => ({\n id: data.id ?? data.title,\n title: data.title,\n url: data.url,\n data: data.data,\n open,\n parent,\n items: [],\n});\n\n/**\n * This function translates the original data given to us by the client\n * to the internal representation of the tree used by the {@link DaffTreeComponent}\n */\nexport const hydrateTree = <T>(data: DaffTreeData<T>): DaffTreeUi<T> => {\n const tree = daffDataTreeToUiTree(data, undefined, true);\n\n let treeStack = [\n tree,\n ];\n\n traverse(data, (el) => {\n const treeEl = treeStack.pop();\n treeEl.items = el.items.map((i) => daffDataTreeToUiTree(i, treeEl, false));\n treeStack = [\n ...treeStack,\n ...treeEl.items,\n ];\n return el;\n }, 'items');\n\n return tree;\n};\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { DaffArticleEncapsulatedDirective } from '@daffodil/design';\n\nimport { DaffTreeNotifierService } from './tree-notifier.service';\nimport { DaffTreeData } from '../interfaces/tree-data';\nimport { DaffTreeRenderMode } from '../interfaces/tree-render-mode';\nimport { DaffTreeUi } from '../interfaces/tree-ui';\nimport {\n DaffTreeFlatNode,\n flattenTree,\n} from '../utils/flatten-tree';\nimport { hydrateTree } from '../utils/hydrate-tree';\n\n/**\n * The `DaffTreeComponent` allows you to render tree structures as interactable ui.\n *\n * They can be used like:\n *\n * ```html\n * <ul daff-tree [tree]=\"tree\">\n * <ng-template #daffTreeItemWithChildrenTpl let-node>\n * <button daffTreeItem [node]=\"node\">{{ node.title }} </button>\n * </ng-template>\n *\n * <ng-template #daffTreeItemTpl let-node>\n * <a daffTreeItem [node]=\"node\" [routerLink]=\"node.url\">{{ node.title }}</a>\n * </ng-template>\n * </ul>\n * ```\n *\n * where `tree` is a {@link DaffTreeData}.\n *\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'ul[daff-tree]',\n templateUrl: './tree.component.html',\n styleUrls: ['./tree.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n DaffTreeNotifierService,\n ],\n hostDirectives: [{\n directive: DaffArticleEncapsulatedDirective,\n }],\n})\nexport class DaffTreeComponent implements OnInit, OnChanges {\n\n /**\n * The css class of the daff-tree.\n *\n * @docs-private\n */\n @HostBinding('class.daff-tree') class = true;\n\n /**\n * The rendering mode for nodes in the tree.\n *\n * Default value is 'in-dom', which means nodes are present in the DOM.\n *\n * Generally, `not-in-dom` is faster as there are less DOM elements to render,\n * but there may be use-cases (like SEO) where having the tree in the DOM\n * is relevant.\n */\n @Input() renderMode: DaffTreeRenderMode;\n\n /**\n * The internal tree element.\n */\n private _tree: DaffTreeUi<unknown> = undefined;\n\n /**\n * The flattened tree data. You can iterate through this if you want to inspect\n * the resulting array structure we computed to render the tree.\n */\n public flatTree: DaffTreeFlatNode[] = [];\n\n /**\n * The tree data you would like to render.\n */\n @Input() tree: DaffTreeData<unknown>;\n\n /**\n * The template used to render tree-nodes that themselves have children.\n *\n * @docs-private\n */\n @ContentChild('daffTreeItemWithChildrenTpl', { static: true })\n withChildrenTemplate: TemplateRef<any>;\n\n /**\n * The template used to render tree-nodes that have no children.\n *\n * @docs-private\n */\n @ContentChild('daffTreeItemTpl', { static: true }) treeItemTemplate: TemplateRef<any>;\n\n constructor(private notifier: DaffTreeNotifierService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if(!changes.tree.currentValue) {\n this._tree = undefined;\n this.flatTree = [];\n return;\n }\n\n if(changes.renderMode && !changes.tree) {\n this.flatTree = flattenTree(this._tree, changes.renderMode.currentValue === 'not-in-dom');\n } else if(changes.renderMode || changes.tree) {\n this._tree = hydrateTree(changes.tree?.currentValue ?? this.tree);\n this.flatTree = flattenTree(this._tree, (changes.renderMode?.currentValue ?? this.renderMode) === 'not-in-dom');\n }\n }\n\n /**\n * The track-by function used to reduce tree-item re-renders\n */\n trackByTreeElement(index: number, el: any): any {\n return el.title;\n }\n\n /**\n * @docs-private\n */\n ngOnInit(): void {\n this.notifier.notice$.subscribe(() => {\n this.flatTree = flattenTree(this._tree, this.renderMode === 'not-in-dom');\n });\n }\n}\n","<ng-container *ngFor=\"let node of flatTree; trackBy: trackByTreeElement\">\n\t<ng-container>\n\t\t<li [attr.aria-level]=\"node.level\" [class.hidden]=\"!node.visible\">\n\t\t\t<ng-container\n\t\t\t\t*ngTemplateOutlet=\"node.hasChildren ? withChildrenTemplate : treeItemTemplate; context: { $implicit: node }\">\n\t\t\t</ng-container>\n\t\t</li>\n\t</ng-container>\n</ng-container>","import { DOCUMENT } from '@angular/common';\nimport {\n Directive,\n HostBinding,\n HostListener,\n Inject,\n Input,\n} from '@angular/core';\n\nimport { DaffTreeNotifierService } from '../tree/tree-notifier.service';\nimport { DaffTreeFlatNode } from '../utils/flatten-tree';\n\n/**\n * The `DaffTreeItemDirective` allows you to demarcate the elements which are\n * tree-children that interact with the parent tree.\n *\n * They can be used like:\n *\n * ```html\n * <ul daff-tree [tree]=\"tree\">\n * <ng-template #daffTreeItemWithChildrenTpl let-node>\n * <button daffTreeItem [node]=\"node\">{{ node.title }} </button>\n * </ng-template>\n *\n * <ng-template #daffTreeItemTpl let-node>\n * <a daffTreeItem [node]=\"node\" [routerLink]=\"node.url\">{{ node.title }}</a>\n * </ng-template>\n * </ul>\n * ```\n *\n * where `tree` is a {@link DaffTreeData} and `daff-tree` is a {@link DaffTreeComponent}.\n *\n */\n@Directive({\n selector: '[daffTreeItem]',\n})\nexport class DaffTreeItemDirective {\n\n /**\n * The css class of the daff-tree.\n *\n * @docs-private\n */\n @HostBinding('class.daff-tree-item') class = true;\n\n /**\n * The css class of a DaffTreeItemDirective that has children.\n *\n * @docs-private\n */\n @HostBinding('class.daff-tree-item__parent') classParent = false;\n\n /**\n * The html `id` of the tree item. This is derived from the {@link DaffTreeData}.\n *\n * @docs-private\n */\n @HostBinding('attr.id') id;\n\n /**\n * Accessibility property, notifying users about whether\n * or not the tree item is open.\n *\n * @docs-private\n */\n @HostBinding('attr.aria-expanded') ariaExpanded: string;\n\n /**\n * A css variable indicating the depth of the tree.\n * You can use this to style your templates if you want to\n * use different designs at different depths.\n */\n @HostBinding('style.--depth') depth: number;\n\n /**\n * The CSS class indicating whether or not the tree is `selected`.\n */\n @HostBinding('class.selected') get selectedClass() {\n return this.selected;\n };\n\n /**\n * The CSS class indicating whether or not the tree is `open`.\n */\n @HostBinding('class.open') openClass = false;\n\n /**\n * The {@link DaffTreeFlatNode} associated with this specific tree item.\n *\n * @docs-private\n */\n private _node: DaffTreeFlatNode;\n\n /**\n * The {@link DaffTreeFlatNode} associated with this specific tree item.\n */\n @Input()\n get node() {\n return this._node;\n };\n set node(val: DaffTreeFlatNode) {\n this._node = val;\n this.id = 'tree-' + this._node.id;\n this.depth = this._node.level;\n this.classParent = this._node.hasChildren;\n this.openClass = this._node._treeRef.open;\n\n if(this._node.hasChildren) {\n this.ariaExpanded = this._node._treeRef.open ? 'true' : 'false';\n }\n }\n\n /**\n * Whether or not the tree item is the currently active item.\n * Note that there is no requirement there there only be one active item at a time.\n */\n @Input() selected = false;\n\n constructor(\n @Inject(DOCUMENT) private document: any,\n private treeNotifier: DaffTreeNotifierService,\n ) {}\n\n /**\n * @docs-private\n */\n @HostListener('keydown.escape')\n onEscape() {\n this.toggleParent(this.node);\n }\n\n /**\n * @docs-private\n */\n @HostListener('click')\n onClick() {\n if(this.node.hasChildren) {\n this.toggleTree(this.node);\n }\n this.treeNotifier.notify();\n }\n\n /**\n * Toggle the open state of the tree's parent.\n */\n toggleParent(node: DaffTreeFlatNode) {\n if(node._treeRef?.parent.parent === undefined) {\n return;\n }\n node._treeRef.parent.open = !node._treeRef.parent.open;\n (<Document>this.document).getElementById('tree-' + node._treeRef.parent.id).focus();\n }\n\n /**\n * Toggle the open state of this specific subtree tree.\n */\n toggleTree(node: DaffTreeFlatNode) {\n if(node._treeRef.open === false) {\n node._treeRef.open = true;\n } else {\n node._treeRef.open = false;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DaffTreeComponent } from './tree/tree.component';\nimport { DaffTreeItemDirective } from './tree-item/tree-item.directive';\n\n@NgModule({\n declarations: [\n DaffTreeComponent,\n DaffTreeItemDirective,\n ],\n imports: [\n CommonModule,\n ],\n exports: [\n DaffTreeComponent,\n DaffTreeItemDirective,\n ],\n})\nexport class DaffTreeModule { }\n","import { traverse } from './traverse-tree';\nimport { RecursiveTreeKeyOfType } from '../interfaces/recursive-key';\nimport { DaffTreeData } from '../interfaces/tree-data';\n\n/**\n * Transform a tree-like structure in-place into a {@link DaffTreeData}.\n *\n * This will mutate the original object, hydrating with additional properties.\n *\n * @param tree - The data structure representing tree-like data.\n * @param transformFn - A user-supplied function that will transform the user\n * type into a {@link DaffTreeData}\n * @param key - The property of the your tree that indicates which\n * key contains the \"children\" of your tree structure.\n *\n */\nexport const daffTransformTreeInPlace = <\n // eslint-disable-next-line @typescript-eslint/ban-types\n T extends Record<any,any>,\n>(\n tree: T,\n transformFn: (type: T) => T & DaffTreeData<unknown>,\n key: RecursiveTreeKeyOfType<T>,\n): DaffTreeData<unknown> => traverse<T, T & DaffTreeData<unknown>>(\n tree,\n (el) => {\n const r = Object.assign(el, transformFn(el));\n r.items = el[key];\n el = r;\n return <T & DaffTreeData<unknown>>el;\n },\n // This type is confusing. I don't understand why it has to be here,\n // the associated error message is incomprehensible.\n <T[string] extends T[] ? string : never>key,\n);\n","import { RecursiveTreeKeyOfType } from '../interfaces/recursive-key';\nimport { DaffTreeData } from '../interfaces/tree-data';\n\n/**\n * Transform a tree-like structure into a {@link DaffTreeData}.\n *\n * @param tree - The data structure representing tree-like data.\n * @param transformFn - A user-supplied function that will transform the user\n * type into a {@link DaffTreeData}\n * @param key - The property of the your tree that indicates which\n * key contains the \"children\" of your tree structure.\n *\n */\nexport const daffTransformTree = <\n // eslint-disable-next-line @typescript-eslint/ban-types\n T extends Record<any,any>,\n V\n>(\n tree: T,\n transformFn: (type: T) => DaffTreeData<V>,\n key: RecursiveTreeKeyOfType<T>,\n): DaffTreeData<V> => {\n\n const transformedTree: DaffTreeData<V> = transformFn(tree);\n\n const queue: { node: T; parent: DaffTreeData<V> }[] = [{ node: tree, parent: transformedTree }];\n\n while (queue.length > 0) {\n const { node, parent } = queue.shift();\n\n const childItems = node[key];\n for (const child of <T[]>childItems) {\n const transformedChild: DaffTreeData<V> = transformFn(child);\n parent.items.push(transformedChild);\n queue.push({ node: child, parent: transformedChild });\n }\n }\n\n return transformedTree;\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffTreeNotifierService"],"mappings":";;;;;;;;;AAMA;;;;;;AAMG;AAEI,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB,CAAA;AAA7B,IAAA,WAAA,GAAA;AAEL;;AAEG;AACK,QAAA,IAAA,CAAA,OAAO,GAA6B,IAAI,eAAe,CAAU,IAAI,CAAC,CAAC;AAE/E;;AAEG;AACH,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;KAqBvC;AAnBC;;;;;;AAMG;IACH,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACzB;AAED;;;;AAIG;IACH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;KACzB;CACF,CAAA;AA/BY,uBAAuB,GAAA,UAAA,CAAA;IADnC,MAAM,CAAC,EAAE,CAAC;AACE,CAAA,EAAA,uBAAuB,CA+BnC;;AC5BD;;;AAGG;AACI,MAAM,WAAW,GAAG,CAAC,UAA+B,EAAE,WAAA,GAAuB,KAAK,KAAwB;IAC/G,MAAM,IAAI,GAAuB,EAAE,CAAC;IACpC,IAAG,CAAC,UAAU,EAAE;AACd,QAAA,OAAO,EAAE,CAAC;AACX,KAAA;AAED,IAAA,IAAI,KAAK,GAAG;AACV,QAAA;AACE,YAAA,GAAG,UAAU;AACb,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,QAAQ,EAAE,UAAU;AACrB,SAAA;KACF,CAAC;AAGF,IAAA,OAAM,KAAK,EAAE;AACX,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QACvB,IAAG,CAAC,EAAE,EAAE;YACN,MAAM;AACP,SAAA;AAED,QAAA,KAAK,GAAG;AACN,YAAA,GAAG,KAAK;YACR,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AACtB,gBAAA,GAAG,CAAC;AACJ,gBAAA,KAAK,EACL,EAAE,CAAC,KAAK,GAAG,CAAC;AACZ,gBAAA,QAAQ,EAAE,CAAC;aACZ,CAAC,CAAC,CAAC,OAAO,EAAE;SACd,CAAC;QAEF,IAAG,CAAC,WAAW,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE;YACrC,IAAI,CAAC,IAAI,CAAC;gBACR,EAAE,EAAE,EAAE,CAAC,EAAE;gBACT,KAAK,EAAE,EAAE,CAAC,KAAK;gBACf,KAAK,EAAE,EAAE,CAAC,KAAK;gBACf,GAAG,EAAG,EAAE,CAAC,GAAG;AACZ,gBAAA,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI;AACjC,gBAAA,WAAW,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;AAChC,gBAAA,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,EAAE,CAAC,QAAQ;AACtB,aAAA,CAAC,CAAC;AACJ,SAAA;aAAM,IAAG,WAAW,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE;YACjD,IAAI,CAAC,IAAI,CAAC;gBACR,EAAE,EAAE,EAAE,CAAC,EAAE;gBACT,KAAK,EAAE,EAAE,CAAC,KAAK;gBACf,KAAK,EAAE,EAAE,CAAC,KAAK;gBACf,GAAG,EAAG,EAAE,CAAC,GAAG;AACZ,gBAAA,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI;AACjC,gBAAA,WAAW,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;AAChC,gBAAA,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,EAAE,CAAC,QAAQ;AACtB,aAAA,CAAC,CAAC;AACJ,SAAA;AACF,KAAA;AAED,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;;AC9ED;;AAEG;AACI,MAAM,QAAQ,GAAG,CACtB,IAAO,EACP,KAAqB,EACrB,GAA8B,KACzB;AACL,IAAA,IAAI,KAAK,GAAG;QACV,IAAI;KACL,CAAC;AAEF,IAAA,OAAM,KAAK,EAAE;AACX,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QACvB,IAAG,CAAC,EAAE,EAAE;YACN,MAAM;AACP,SAAA;QAED,KAAK,CAAC,EAAE,CAAC,CAAC;AAEV,QAAA,KAAK,GAAG;AACN,YAAA,GAAG,KAAK;YACR,GAAiB,EAAE,CAAC,GAAG,CAAC;SACzB,CAAC;AACH,KAAA;AAED,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;;ACzBM,MAAM,oBAAoB,GAAG,CAAI,IAAqB,EAAE,MAAqB,EAAE,IAAgB,GAAA,KAAK,MAAqB;AAC9H,IAAA,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK;IACzB,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,GAAG,EAAE,IAAI,CAAC,GAAG;IACb,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,IAAI;IACJ,MAAM;AACN,IAAA,KAAK,EAAE,EAAE;AACV,CAAA,CAAC,CAAC;AAEH;;;AAGG;AACI,MAAM,WAAW,GAAG,CAAI,IAAqB,KAAmB;IACrE,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAEzD,IAAA,IAAI,SAAS,GAAG;QACd,IAAI;KACL,CAAC;AAEF,IAAA,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,KAAI;AACpB,QAAA,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5E,QAAA,SAAS,GAAG;AACV,YAAA,GAAG,SAAS;YACZ,GAAG,MAAM,CAAC,KAAK;SAChB,CAAC;AACF,QAAA,OAAO,EAAE,CAAC;KACX,EAAE,OAAO,CAAC,CAAC;AAEZ,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;;ACXD;;;;;;;;;;;;;;;;;;;AAmBG;MAeU,iBAAiB,CAAA;AAmD5B,IAAA,WAAA,CAAoB,QAAiC,EAAA;QAAjC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAyB;AAjDrD;;;;AAIG;QAC6B,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC;AAa7C;;AAEG;QACK,IAAK,CAAA,KAAA,GAAwB,SAAS,CAAC;AAE/C;;;AAGG;QACI,IAAQ,CAAA,QAAA,GAAuB,EAAE,CAAC;KAsBgB;AAEzD,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE;AAC7B,YAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;AACvB,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,OAAO;AACR,SAAA;QAED,IAAG,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AACtC,YAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC;AAC3F,SAAA;AAAM,aAAA,IAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,EAAE;AAC5C,YAAA,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;YAClE,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,IAAI,IAAI,CAAC,UAAU,MAAM,YAAY,CAAC,CAAC;AACjH,SAAA;KACF;AAED;;AAEG;IACH,kBAAkB,CAAC,KAAa,EAAE,EAAO,EAAA;QACvC,OAAO,EAAE,CAAC,KAAK,CAAC;KACjB;AAED;;AAEG;IACH,QAAQ,GAAA;QACN,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;AACnC,YAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,KAAK,YAAY,CAAC,CAAC;AAC5E,SAAC,CAAC,CAAC;KACJ;kIAlFU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAPjB,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACT,uBAAuB;AACxB,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,6BAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,gCAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtDH,+XAQe,EAAA,MAAA,EAAA,CAAA,ojCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FDmDF,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAd7B,SAAS;+BAEE,eAAe,EAAA,aAAA,EAGV,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;wBACT,uBAAuB;AACxB,qBAAA,EAAA,cAAA,EACe,CAAC;AACf,4BAAA,SAAS,EAAE,gCAAgC;yBAC5C,CAAC,EAAA,QAAA,EAAA,+XAAA,EAAA,MAAA,EAAA,CAAA,ojCAAA,CAAA,EAAA,CAAA;yFAS8B,KAAK,EAAA,CAAA;sBAApC,WAAW;uBAAC,iBAAiB,CAAA;gBAWrB,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAgBG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAQJ,oBAAoB,EAAA,CAAA;sBADrB,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,6BAA6B,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAQV,gBAAgB,EAAA,CAAA;sBAAlE,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;AEhGnD;;;;;;;;;;;;;;;;;;;;AAoBG;MAIU,qBAAqB,CAAA;AAsChC;;AAEG;AACH,IAAA,IAAmC,aAAa,GAAA;QAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;;AAcD;;AAEG;AACH,IAAA,IACI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;;IACD,IAAI,IAAI,CAAC,GAAqB,EAAA;AAC5B,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;AAE1C,QAAA,IAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;AACzB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;AACjE,SAAA;KACF;IAQD,WAC4B,CAAA,QAAa,EAC/B,YAAqC,EAAA;QADnB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAK;QAC/B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAyB;AAlF/C;;;;AAIG;QACkC,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC;AAElD;;;;AAIG;QAC0C,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AA+BjE;;AAEG;QACwB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AA4B7C;;;AAGG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KAKtB;AAEJ;;AAEG;IAEH,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;AAED;;AAEG;IAEH,OAAO,GAAA;AACL,QAAA,IAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;KAC5B;AAED;;AAEG;AACH,IAAA,YAAY,CAAC,IAAsB,EAAA;QACjC,IAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7C,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5C,QAAA,IAAI,CAAC,QAAS,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;KACrF;AAED;;AAEG;AACH,IAAA,UAAU,CAAC,IAAsB,EAAA;AAC/B,QAAA,IAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,EAAE;AAC/B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;AAC3B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;AAC5B,SAAA;KACF;AA9HU,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBAmFtB,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;sHAnFP,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,8BAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC3B,iBAAA,CAAA;;0BAoFI,MAAM;2BAAC,QAAQ,CAAA;4EA5EmB,KAAK,EAAA,CAAA;sBAAzC,WAAW;uBAAC,sBAAsB,CAAA;gBAOU,WAAW,EAAA,CAAA;sBAAvD,WAAW;uBAAC,8BAA8B,CAAA;gBAOnB,EAAE,EAAA,CAAA;sBAAzB,WAAW;uBAAC,SAAS,CAAA;gBAQa,YAAY,EAAA,CAAA;sBAA9C,WAAW;uBAAC,oBAAoB,CAAA;gBAOH,KAAK,EAAA,CAAA;sBAAlC,WAAW;uBAAC,eAAe,CAAA;gBAKO,aAAa,EAAA,CAAA;sBAA/C,WAAW;uBAAC,gBAAgB,CAAA;gBAOF,SAAS,EAAA,CAAA;sBAAnC,WAAW;uBAAC,YAAY,CAAA;gBAarB,IAAI,EAAA,CAAA;sBADP,KAAK;gBAoBG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAWN,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,gBAAgB,CAAA;gBAS9B,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,CAAA;;;MCnHV,cAAc,CAAA;kIAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAd,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,iBAXvB,iBAAiB;YACjB,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAGrB,YAAY,CAAA,EAAA,OAAA,EAAA,CAGZ,iBAAiB;YACjB,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGZ,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAPvB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAOH,cAAc,EAAA,UAAA,EAAA,CAAA;kBAb1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,iBAAiB;wBACjB,qBAAqB;AACtB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,iBAAiB;wBACjB,qBAAqB;AACtB,qBAAA;AACF,iBAAA,CAAA;;;ACdD;;;;;;;;;;;AAWG;MACU,wBAAwB,GAAG,CAItC,IAAO,EACP,WAAmD,EACnD,GAA8B,KACJ,QAAQ,CAClC,IAAI,EACJ,CAAC,EAAE,KAAI;AACL,IAAA,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7C,IAAA,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAClB,EAAE,GAAG,CAAC,CAAC;AACP,IAAA,OAAkC,EAAE,CAAC;AACvC,CAAC;AACC;AACA;AACwC,GAAG;;AC9B/C;;;;;;;;;AASG;AACU,MAAA,iBAAiB,GAAG,CAK/B,IAAO,EACP,WAAyC,EACzC,GAA8B,KACX;AAEnB,IAAA,MAAM,eAAe,GAAoB,WAAW,CAAC,IAAI,CAAC,CAAC;AAE3D,IAAA,MAAM,KAAK,GAA2C,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;AAEhG,IAAA,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;AAEvC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAA,KAAK,MAAM,KAAK,IAAS,UAAU,EAAE;AACnC,YAAA,MAAM,gBAAgB,GAAoB,WAAW,CAAC,KAAK,CAAC,CAAC;AAC7D,YAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACpC,YAAA,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;AACvD,SAAA;AACF,KAAA;AAED,IAAA,OAAO,eAAe,CAAC;AACzB;;ACvCA;;AAEG;;;;"}
|