@ng-atomic/components 18.2.0 → 18.4.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/atoms/smart-menu-button/smart-menu-button.atom.d.ts +3 -3
- package/components.module.d.ts +6 -1
- package/esm2022/atoms/icon/icon.atom.mjs +2 -2
- package/esm2022/atoms/smart-menu-button/smart-menu-button.atom.mjs +77 -114
- package/esm2022/components.module.mjs +7 -3
- package/esm2022/extras/editor/editor.component.mjs +78 -46
- package/esm2022/frames/app/app.frame.mjs +130 -70
- package/esm2022/frames/auto-layout/auto-layout.frame.mjs +29 -7
- package/esm2022/frames/columns/columns.frame.mjs +2 -2
- package/esm2022/frames/divider/divider.frame.mjs +2 -2
- package/esm2022/frames/drawer/drawer.frame.mjs +2 -2
- package/esm2022/frames/entrance/entrance.frame.mjs +2 -2
- package/esm2022/frames/fab/fab.frame.mjs +2 -2
- package/esm2022/frames/frames.module.mjs +3 -3
- package/esm2022/frames/line-up/line-up.animations.mjs +3 -7
- package/esm2022/frames/line-up/line-up.frame.mjs +2 -2
- package/esm2022/frames/loading/loading.frame.mjs +2 -2
- package/esm2022/frames/progress-bar/index.mjs +2 -0
- package/esm2022/frames/progress-bar/ng-atomic-components-frames-progress-bar.mjs +5 -0
- package/esm2022/frames/progress-bar/progress-bar.frame.mjs +53 -0
- package/esm2022/frames/router-outlet/router-outlet.frame.mjs +96 -41
- package/esm2022/frames/scroll/scroll.frame.mjs +32 -14
- package/esm2022/frames/scroll-v2/index.mjs +2 -2
- package/esm2022/frames/side-app/index.mjs +2 -0
- package/esm2022/frames/side-app/ng-atomic-components-frames-side-app.mjs +5 -0
- package/esm2022/frames/side-app/side-app.frame.mjs +74 -0
- package/esm2022/frames/side-nav/side-nav.frame.mjs +27 -21
- package/esm2022/frames/smart-menu/smart-menu.frame.mjs +2 -2
- package/esm2022/frames/tabs/tabs.frame.mjs +13 -7
- package/esm2022/frames/vertical-hide/vertical-hide.frame.mjs +11 -18
- package/esm2022/molecules/action-input-field/action-input-field.molecule.mjs +2 -2
- package/esm2022/molecules/actions-column/actions-column.molecule.mjs +13 -7
- package/esm2022/molecules/checkbox-column/checkbox-column.molecule.mjs +48 -21
- package/esm2022/molecules/date-input-field/date-input-field.molecule.mjs +2 -2
- package/esm2022/molecules/date-range-input-field/date-range-input-field.molecule.mjs +2 -2
- package/esm2022/molecules/file-input-field/file-input-field.molecule.mjs +2 -2
- package/esm2022/molecules/grid-item/grid-item.molecule.mjs +2 -2
- package/esm2022/molecules/list-item/index.mjs +2 -0
- package/esm2022/molecules/list-item/list-item.molecule.mjs +198 -0
- package/esm2022/molecules/list-item/ng-atomic-components-molecules-list-item.mjs +5 -0
- package/esm2022/molecules/loading-box/loading-box.molecule.mjs +2 -2
- package/esm2022/molecules/molecules.module.mjs +4 -1
- package/esm2022/molecules/navigation-list-item/navigation-list-item.molecule.mjs +2 -2
- package/esm2022/molecules/select-input-field/select-input-field.molecule.mjs +9 -5
- package/esm2022/molecules/smart-column/smart-column.molecule.mjs +129 -43
- package/esm2022/molecules/tree-column/tree-column.molecule.mjs +37 -25
- package/esm2022/organisms/action-buttons-section/action-buttons-section.organism.mjs +2 -2
- package/esm2022/organisms/action-input-section/action-input-section.organism.mjs +2 -2
- package/esm2022/organisms/agreement-input-section/agreement-input-section.organism.mjs +3 -3
- package/esm2022/organisms/card-input-section/card-input-section.organism.mjs +2 -2
- package/esm2022/organisms/cvc-and-exp-input-section/cvc-and-exp-input-section.organism.mjs +2 -2
- package/esm2022/organisms/date-input-section/date-input-section.organism.mjs +4 -4
- package/esm2022/organisms/date-range-input-section/date-range-input-section.organism.mjs +4 -4
- package/esm2022/organisms/definition-list/definition-list.organism.mjs +2 -2
- package/esm2022/organisms/file-input-section/file-input-section.organism.mjs +2 -2
- package/esm2022/organisms/filters-section/filters-section.organism.mjs +5 -5
- package/esm2022/organisms/graphql-editor/graphql-editor.organism.mjs +1 -1
- package/esm2022/organisms/grid-cards-section/grid-cards-section.organism.mjs +2 -2
- package/esm2022/organisms/heading/heading.organism.mjs +2 -2
- package/esm2022/{sheets/actions → organisms/list}/index.mjs +2 -2
- package/esm2022/organisms/list/list.organism.mjs +161 -0
- package/esm2022/{sheets/actions/ng-atomic-components-sheets-actions.mjs → organisms/list/ng-atomic-components-organisms-list.mjs} +1 -1
- package/esm2022/organisms/menu-footer/menu-footer.organism.mjs +2 -2
- package/esm2022/organisms/menu-header/menu-header.organism.mjs +2 -2
- package/esm2022/organisms/mermaid-section/mermaid-section.organism.mjs +39 -33
- package/esm2022/organisms/messages-section/messages-section.organism.mjs +2 -2
- package/esm2022/organisms/navigation-list/navigation-list.organism.mjs +2 -2
- package/esm2022/organisms/navigator/navigator.organism.mjs +49 -19
- package/esm2022/organisms/number-input-section/number-input-section.organism.mjs +2 -2
- package/esm2022/organisms/organisms.module.mjs +5 -5
- package/esm2022/organisms/paginator/paginator.organism.mjs +2 -2
- package/esm2022/organisms/password-input-section/password-input-section.organism.mjs +2 -2
- package/esm2022/organisms/select-input-section/select-input-section.organism.mjs +4 -4
- package/esm2022/organisms/selection-list/selection-list.organism.mjs +1 -1
- package/esm2022/organisms/slider-input-section/slider-input-section.organism.mjs +4 -4
- package/esm2022/organisms/social-login-section/social-login-section.organism.mjs +2 -2
- package/esm2022/organisms/table/index.mjs +2 -1
- package/esm2022/organisms/table/table.helpers.mjs +4 -4
- package/esm2022/organisms/table/table.organism.mjs +152 -141
- package/esm2022/organisms/text-input-section/text-input-section.organism.mjs +4 -4
- package/esm2022/organisms/textarea-section/textarea-section.organism.mjs +2 -2
- package/esm2022/organisms/thread-messages-section/thread-messages-section.organism.mjs +2 -2
- package/esm2022/organisms/tree-list/index.mjs +2 -0
- package/esm2022/organisms/tree-list/ng-atomic-components-organisms-tree-list.mjs +5 -0
- package/esm2022/organisms/tree-list/tree-list.organism.mjs +125 -0
- package/esm2022/pages/_index/index.page.mjs +169 -62
- package/esm2022/pages/columns/columns.page.mjs +10 -9
- package/esm2022/pages/form/form.page.mjs +27 -12
- package/esm2022/pages/terms/terms.page.mjs +2 -2
- package/esm2022/templates/_index/index.template.mjs +276 -155
- package/esm2022/templates/background/background.template.mjs +2 -2
- package/esm2022/templates/code-editor/code-editor.template.mjs +52 -15
- package/esm2022/templates/columns/columns.template.mjs +6 -4
- package/esm2022/templates/entrance/entrance.template.mjs +12 -11
- package/esm2022/templates/form/form.builder.mjs +93 -71
- package/esm2022/templates/form/form.template.mjs +47 -28
- package/esm2022/templates/icon-button-menu/icon-button-menu.template.mjs +69 -16
- package/esm2022/templates/menu/menu.template.mjs +2 -2
- package/esm2022/templates/messages/messages.template.mjs +71 -65
- package/esm2022/templates/selection/selection.template.mjs +2 -2
- package/esm2022/templates/settings/settings.template.mjs +2 -2
- package/extras/editor/editor.component.d.ts +19 -10
- package/fesm2022/ng-atomic-components-atoms-icon.mjs +2 -2
- package/fesm2022/ng-atomic-components-atoms-smart-menu-button.mjs +76 -113
- package/fesm2022/ng-atomic-components-atoms-smart-menu-button.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-extras-editor.mjs +79 -47
- package/fesm2022/ng-atomic-components-extras-editor.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-app.mjs +129 -69
- package/fesm2022/ng-atomic-components-frames-app.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-auto-layout.mjs +29 -7
- package/fesm2022/ng-atomic-components-frames-auto-layout.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-columns.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-divider.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-drawer.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-entrance.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-fab.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-line-up.mjs +4 -8
- package/fesm2022/ng-atomic-components-frames-line-up.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-loading.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-progress-bar.mjs +60 -0
- package/fesm2022/ng-atomic-components-frames-progress-bar.mjs.map +1 -0
- package/fesm2022/ng-atomic-components-frames-router-outlet.mjs +96 -41
- package/fesm2022/ng-atomic-components-frames-router-outlet.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-scroll-v2.mjs +1 -48
- package/fesm2022/ng-atomic-components-frames-scroll-v2.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-scroll.mjs +31 -13
- package/fesm2022/ng-atomic-components-frames-scroll.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-side-app.mjs +81 -0
- package/fesm2022/ng-atomic-components-frames-side-app.mjs.map +1 -0
- package/fesm2022/ng-atomic-components-frames-side-nav.mjs +26 -20
- package/fesm2022/ng-atomic-components-frames-side-nav.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-smart-menu.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-tabs.mjs +12 -6
- package/fesm2022/ng-atomic-components-frames-tabs.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-vertical-hide.mjs +10 -17
- package/fesm2022/ng-atomic-components-frames-vertical-hide.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-molecules-action-input-field.mjs +1 -1
- package/fesm2022/ng-atomic-components-molecules-action-input-field.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-molecules-actions-column.mjs +12 -6
- package/fesm2022/ng-atomic-components-molecules-actions-column.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-molecules-checkbox-column.mjs +47 -21
- package/fesm2022/ng-atomic-components-molecules-checkbox-column.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-molecules-date-input-field.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-date-range-input-field.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-file-input-field.mjs +1 -1
- package/fesm2022/ng-atomic-components-molecules-file-input-field.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-molecules-grid-item.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-list-item.mjs +203 -0
- package/fesm2022/ng-atomic-components-molecules-list-item.mjs.map +1 -0
- package/fesm2022/ng-atomic-components-molecules-loading-box.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-navigation-list-item.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-select-input-field.mjs +8 -4
- package/fesm2022/ng-atomic-components-molecules-select-input-field.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-molecules-smart-column.mjs +128 -43
- package/fesm2022/ng-atomic-components-molecules-smart-column.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-molecules-tree-column.mjs +36 -24
- package/fesm2022/ng-atomic-components-molecules-tree-column.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-molecules.mjs +3 -0
- package/fesm2022/ng-atomic-components-molecules.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-action-buttons-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-action-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-agreement-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-agreement-input-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-card-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-cvc-and-exp-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-date-input-section.mjs +3 -3
- package/fesm2022/ng-atomic-components-organisms-date-input-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-date-range-input-section.mjs +3 -3
- package/fesm2022/ng-atomic-components-organisms-date-range-input-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-definition-list.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-file-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-filters-section.mjs +4 -4
- package/fesm2022/ng-atomic-components-organisms-filters-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-graphql-editor.mjs +1 -1
- package/fesm2022/ng-atomic-components-organisms-graphql-editor.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-grid-cards-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-heading.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-list.mjs +166 -0
- package/fesm2022/ng-atomic-components-organisms-list.mjs.map +1 -0
- package/fesm2022/ng-atomic-components-organisms-menu-footer.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-menu-header.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-mermaid-section.mjs +38 -32
- package/fesm2022/ng-atomic-components-organisms-mermaid-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-messages-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-navigation-list.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-navigator.mjs +48 -18
- package/fesm2022/ng-atomic-components-organisms-navigator.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-number-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-number-input-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-paginator.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-password-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-password-input-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-select-input-section.mjs +3 -3
- package/fesm2022/ng-atomic-components-organisms-select-input-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-selection-list.mjs +1 -1
- package/fesm2022/ng-atomic-components-organisms-selection-list.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-slider-input-section.mjs +3 -3
- package/fesm2022/ng-atomic-components-organisms-slider-input-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-social-login-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-table.mjs +156 -145
- package/fesm2022/ng-atomic-components-organisms-table.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-text-input-section.mjs +3 -3
- package/fesm2022/ng-atomic-components-organisms-text-input-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-textarea-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-textarea-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-thread-messages-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-tree-list.mjs +132 -0
- package/fesm2022/ng-atomic-components-organisms-tree-list.mjs.map +1 -0
- package/fesm2022/ng-atomic-components-organisms.mjs +4 -4
- package/fesm2022/ng-atomic-components-organisms.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-pages-_index.mjs +168 -62
- package/fesm2022/ng-atomic-components-pages-_index.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-pages-columns.mjs +9 -8
- package/fesm2022/ng-atomic-components-pages-columns.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-pages-form.mjs +26 -11
- package/fesm2022/ng-atomic-components-pages-form.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-pages-terms.mjs +1 -1
- package/fesm2022/ng-atomic-components-pages-terms.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-_index.mjs +276 -155
- package/fesm2022/ng-atomic-components-templates-_index.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-background.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-code-editor.mjs +51 -14
- package/fesm2022/ng-atomic-components-templates-code-editor.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-columns.mjs +5 -3
- package/fesm2022/ng-atomic-components-templates-columns.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-entrance.mjs +11 -10
- package/fesm2022/ng-atomic-components-templates-entrance.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-form.mjs +139 -99
- package/fesm2022/ng-atomic-components-templates-form.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-icon-button-menu.mjs +68 -15
- package/fesm2022/ng-atomic-components-templates-icon-button-menu.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-menu.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-messages.mjs +71 -65
- package/fesm2022/ng-atomic-components-templates-messages.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-selection.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-settings.mjs +2 -2
- package/fesm2022/ng-atomic-components.mjs +7 -3
- package/fesm2022/ng-atomic-components.mjs.map +1 -1
- package/frames/app/app.frame.d.ts +13 -1
- package/frames/auto-layout/auto-layout.frame.d.ts +7 -1
- package/frames/progress-bar/index.d.ts +1 -0
- package/frames/progress-bar/progress-bar.frame.d.ts +14 -0
- package/frames/router-outlet/router-outlet.frame.d.ts +20 -9
- package/frames/scroll/scroll.frame.d.ts +5 -1
- package/frames/scroll-v2/index.d.ts +1 -1
- package/frames/side-app/index.d.ts +1 -0
- package/frames/side-app/side-app.frame.d.ts +20 -0
- package/frames/side-nav/side-nav.frame.d.ts +6 -2
- package/frames/tabs/tabs.frame.d.ts +2 -1
- package/frames/vertical-hide/vertical-hide.frame.d.ts +2 -2
- package/molecules/actions-column/actions-column.molecule.d.ts +3 -2
- package/molecules/checkbox-column/checkbox-column.molecule.d.ts +12 -4
- package/molecules/list-item/index.d.ts +1 -0
- package/molecules/list-item/list-item.molecule.d.ts +50 -0
- package/molecules/molecules.module.d.ts +3 -0
- package/molecules/smart-column/smart-column.molecule.d.ts +34 -9
- package/molecules/tree-column/tree-column.molecule.d.ts +6 -2
- package/organisms/list/index.d.ts +1 -0
- package/organisms/{smart-list/smart-list.organism.d.ts → list/list.organism.d.ts} +11 -11
- package/organisms/mermaid-section/mermaid-section.organism.d.ts +10 -10
- package/organisms/navigator/navigator.organism.d.ts +8 -6
- package/organisms/organisms.module.d.ts +1 -1
- package/organisms/table/index.d.ts +1 -0
- package/organisms/table/table.helpers.d.ts +1 -1
- package/organisms/table/table.organism.d.ts +32 -1
- package/organisms/tree-list/index.d.ts +1 -0
- package/organisms/tree-list/tree-list.organism.d.ts +33 -0
- package/package.json +37 -25
- package/pages/_index/index.page.d.ts +72 -43
- package/pages/columns/columns.page.d.ts +5 -2
- package/pages/form/form.page.d.ts +11 -2
- package/templates/_index/index.template.d.ts +40 -11
- package/templates/code-editor/code-editor.template.d.ts +6 -3
- package/templates/entrance/entrance.template.d.ts +1 -1
- package/templates/form/form.builder.d.ts +10 -3
- package/templates/form/form.template.d.ts +2 -1
- package/templates/icon-button-menu/icon-button-menu.template.d.ts +3 -2
- package/templates/messages/messages.template.d.ts +21 -17
- package/esm2022/frames/scroll-v2/scroll.frame.mjs +0 -46
- package/esm2022/organisms/smart-list/index.mjs +0 -2
- package/esm2022/organisms/smart-list/ng-atomic-components-organisms-smart-list.mjs +0 -5
- package/esm2022/organisms/smart-list/smart-list.organism.mjs +0 -218
- package/esm2022/sheets/actions/actions.sheet.mjs +0 -45
- package/esm2022/sheets/index.mjs +0 -3
- package/esm2022/sheets/ng-atomic-components-sheets.mjs +0 -5
- package/esm2022/sheets/sheets.module.mjs +0 -25
- package/esm2022/sheets/sheets.service.mjs +0 -20
- package/fesm2022/ng-atomic-components-organisms-smart-list.mjs +0 -223
- package/fesm2022/ng-atomic-components-organisms-smart-list.mjs.map +0 -1
- package/fesm2022/ng-atomic-components-sheets-actions.mjs +0 -52
- package/fesm2022/ng-atomic-components-sheets-actions.mjs.map +0 -1
- package/fesm2022/ng-atomic-components-sheets.mjs +0 -48
- package/fesm2022/ng-atomic-components-sheets.mjs.map +0 -1
- package/frames/scroll-v2/scroll.frame.d.ts +0 -9
- package/organisms/smart-list/index.d.ts +0 -1
- package/sheets/actions/actions.sheet.d.ts +0 -9
- package/sheets/actions/index.d.ts +0 -1
- package/sheets/index.d.ts +0 -2
- package/sheets/sheets.module.d.ts +0 -11
- package/sheets/sheets.service.d.ts +0 -10
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Directive, inject, input, viewChild } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Directive, EventEmitter, inject, InjectionToken, input, Output, runInInjectionContext, signal, viewChild } from '@angular/core';
|
|
2
2
|
import { NgTemplateOutlet } from '@angular/common';
|
|
3
3
|
import { OverlayFrame } from '@ng-atomic/components/frames/overlay';
|
|
4
4
|
import { LineUpFrame } from '@ng-atomic/components/frames/line-up';
|
|
5
5
|
import { PRIMARY_OUTLET, RouterOutlet } from '@angular/router';
|
|
6
6
|
import { makeConfig } from '@ng-atomic/common/services/ui';
|
|
7
7
|
import { InjectableComponent, NgAtomicComponent, _computed } from '@ng-atomic/core';
|
|
8
|
-
import { combineLatest, map, of, startWith } from 'rxjs';
|
|
9
|
-
import {
|
|
8
|
+
import { combineLatest, delay, distinctUntilChanged, map, of, startWith, switchMap } from 'rxjs';
|
|
9
|
+
import { toObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
|
-
function isBlankRoute(outlet) {
|
|
12
|
-
return !!(outlet?.activatedRouteData) && !(outlet.activatedRouteData?.['isBlank']);
|
|
13
|
-
}
|
|
14
11
|
export class RouterOutletFrameStore extends InjectableComponent {
|
|
15
12
|
constructor() {
|
|
16
13
|
super(...arguments);
|
|
@@ -18,6 +15,7 @@ export class RouterOutletFrameStore extends InjectableComponent {
|
|
|
18
15
|
this.frame = input(_computed(() => this.config().frame));
|
|
19
16
|
this.name = input(_computed(() => this.config().name, { equal: (a, b) => a === b }));
|
|
20
17
|
this.isActivated = input(_computed(() => this.config().isActivated));
|
|
18
|
+
this.skip = input(false);
|
|
21
19
|
}
|
|
22
20
|
static { this.Config = makeConfig(() => {
|
|
23
21
|
const getFrame = (breakpoint) => {
|
|
@@ -30,24 +28,24 @@ export class RouterOutletFrameStore extends InjectableComponent {
|
|
|
30
28
|
return ({
|
|
31
29
|
frame: getFrame(context.breakpoint),
|
|
32
30
|
name: PRIMARY_OUTLET,
|
|
33
|
-
isActivated: (outlet) =>
|
|
31
|
+
isActivated: (outlet) => !!outlet.isActivated,
|
|
34
32
|
});
|
|
35
33
|
};
|
|
36
34
|
}, ['components', 'frames', 'router-outlet']); }
|
|
37
|
-
static
|
|
38
|
-
return RouterOutletFrameStore.Config.provide(() => {
|
|
39
|
-
return (config) => ({ ...config, isActivated: (outlet) => !!outlet.isActivated });
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
static { this.provideSideAppConfig = () => {
|
|
35
|
+
static { this.provideSideAppConfig = (name = PRIMARY_OUTLET) => {
|
|
43
36
|
return RouterOutletFrameStore.Config.provide(() => (config) => ({
|
|
44
37
|
...config,
|
|
45
|
-
name
|
|
38
|
+
name,
|
|
46
39
|
frame: 'overlay',
|
|
47
40
|
}));
|
|
48
41
|
}; }
|
|
42
|
+
static provideDefault() {
|
|
43
|
+
return [
|
|
44
|
+
RouterOutletFrameStore.Config.provide(),
|
|
45
|
+
];
|
|
46
|
+
}
|
|
49
47
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RouterOutletFrameStore, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
50
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.2", type: RouterOutletFrameStore, isStandalone: true, selector: "frames-router-outlet", inputs: { frame: { classPropertyName: "frame", publicName: "frame", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, isActivated: { classPropertyName: "isActivated", publicName: "isActivated", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
|
|
48
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.2", type: RouterOutletFrameStore, isStandalone: true, selector: "frames-router-outlet", inputs: { frame: { classPropertyName: "frame", publicName: "frame", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, isActivated: { classPropertyName: "isActivated", publicName: "isActivated", isSignal: true, isRequired: false, transformFunction: null }, skip: { classPropertyName: "skip", publicName: "skip", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
|
|
51
49
|
}
|
|
52
50
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RouterOutletFrameStore, decorators: [{
|
|
53
51
|
type: Directive,
|
|
@@ -55,38 +53,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
55
53
|
}] });
|
|
56
54
|
export class RouterOutletFrame extends NgAtomicComponent {
|
|
57
55
|
constructor() {
|
|
58
|
-
super(
|
|
56
|
+
super();
|
|
59
57
|
this.store = inject(RouterOutletFrameStore);
|
|
58
|
+
this.events = new EventEmitter();
|
|
60
59
|
this.outlet = viewChild(RouterOutlet);
|
|
61
|
-
this.
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
60
|
+
this.outlet$ = toObservable(this.outlet);
|
|
61
|
+
this.activatedEvents$ = this.outlet$.pipe(switchMap((outlet) => outlet.activateEvents));
|
|
62
|
+
this.hasNext$ = this.outlet$.pipe(switchMap((outlet) => combineLatest([
|
|
63
|
+
this.activatedEvents$.pipe(startWith(null)),
|
|
64
|
+
outlet.deactivateEvents.pipe(startWith(null)),
|
|
65
|
+
]).pipe(map(() => this.store.isActivated()(outlet)), distinctUntilChanged())));
|
|
66
|
+
this.hasNext = toSignal(this.hasNext$);
|
|
67
|
+
this.parent = inject(RouterOutletFrame, { optional: true, skipSelf: true });
|
|
68
|
+
this.events.subscribe((event) => {
|
|
69
|
+
if (this.store.skip()) {
|
|
70
|
+
this.parent.events.emit(event);
|
|
71
|
+
}
|
|
69
72
|
});
|
|
70
73
|
}
|
|
71
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RouterOutletFrame, deps:
|
|
72
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.2", type: RouterOutletFrame, isStandalone: true, selector: "frames-router-outlet", viewQueries: [{ propertyName: "outlet", first: true, predicate: RouterOutlet, descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: RouterOutletFrameStore, inputs: ["frame", "frame", "name", "name"] }], ngImport: i0, template: `
|
|
74
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RouterOutletFrame, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
75
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.2", type: RouterOutletFrame, isStandalone: true, selector: "frames-router-outlet", outputs: { events: "events" }, viewQueries: [{ propertyName: "outlet", first: true, predicate: RouterOutlet, descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: RouterOutletFrameStore, inputs: ["frame", "frame", "name", "name", "skip", "skip"] }], ngImport: i0, template: `
|
|
73
76
|
@switch (store.frame()) {
|
|
74
77
|
@case ('lineup') {
|
|
75
|
-
<frames-line-up [hasNext]="
|
|
76
|
-
|
|
78
|
+
<frames-line-up [hasNext]="hasNext()" [scope]="store.name()">
|
|
79
|
+
@if (!store.skip()) {
|
|
80
|
+
<ng-container *ngTemplateOutlet="main" main/>
|
|
81
|
+
}
|
|
77
82
|
<ng-container *ngTemplateOutlet="next" next/>
|
|
78
83
|
</frames-line-up>
|
|
79
84
|
}
|
|
80
85
|
@default {
|
|
81
|
-
<frames-overlay [hasNext]="
|
|
82
|
-
|
|
86
|
+
<frames-overlay [hasNext]="hasNext()">
|
|
87
|
+
@if (!store.skip()) {
|
|
88
|
+
<ng-container *ngTemplateOutlet="main" main/>
|
|
89
|
+
}
|
|
83
90
|
<ng-container *ngTemplateOutlet="next" next/>
|
|
84
91
|
</frames-overlay>
|
|
85
92
|
}
|
|
86
93
|
}
|
|
87
|
-
<ng-template #main><ng-content main
|
|
94
|
+
<ng-template #main><ng-content main/></ng-template>
|
|
88
95
|
<ng-template #next><router-outlet [name]="store.name()"/></ng-template>
|
|
89
|
-
`, isInline: true, styles: [":host{display:contents;--primary-color: #ccc;--primary-color-SCOPED-IN-router-outlet-
|
|
96
|
+
`, isInline: true, styles: [":host{display:contents;--primary-color: #ccc;--primary-color-SCOPED-IN-router-outlet-4kuO: var(--primary-color);--on-primary-color: #ccc;--on-primary-color-SCOPED-IN-router-outlet-4kuO: var(--on-primary-color);--surface-color: #ccc;--surface-color-SCOPED-IN-router-outlet-4kuO: var(--surface-color);--background-color: #ccc;--background-color-SCOPED-IN-router-outlet-4kuO: var(--background-color)}:host *{--primary-color: var(--primary-color-SCOPED-IN-router-outlet-4kuO);--on-primary-color: var(--on-primary-color-SCOPED-IN-router-outlet-4kuO);--surface-color: var(--surface-color-SCOPED-IN-router-outlet-4kuO);--background-color: var(--background-color-SCOPED-IN-router-outlet-4kuO)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: OverlayFrame, selector: "frames-overlay" }, { kind: "component", type: LineUpFrame, selector: "frames-line-up" }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
90
97
|
}
|
|
91
98
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RouterOutletFrame, decorators: [{
|
|
92
99
|
type: Component,
|
|
@@ -98,25 +105,73 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
98
105
|
], template: `
|
|
99
106
|
@switch (store.frame()) {
|
|
100
107
|
@case ('lineup') {
|
|
101
|
-
<frames-line-up [hasNext]="
|
|
102
|
-
|
|
108
|
+
<frames-line-up [hasNext]="hasNext()" [scope]="store.name()">
|
|
109
|
+
@if (!store.skip()) {
|
|
110
|
+
<ng-container *ngTemplateOutlet="main" main/>
|
|
111
|
+
}
|
|
103
112
|
<ng-container *ngTemplateOutlet="next" next/>
|
|
104
113
|
</frames-line-up>
|
|
105
114
|
}
|
|
106
115
|
@default {
|
|
107
|
-
<frames-overlay [hasNext]="
|
|
108
|
-
|
|
116
|
+
<frames-overlay [hasNext]="hasNext()">
|
|
117
|
+
@if (!store.skip()) {
|
|
118
|
+
<ng-container *ngTemplateOutlet="main" main/>
|
|
119
|
+
}
|
|
109
120
|
<ng-container *ngTemplateOutlet="next" next/>
|
|
110
121
|
</frames-overlay>
|
|
111
122
|
}
|
|
112
123
|
}
|
|
113
|
-
<ng-template #main><ng-content main
|
|
124
|
+
<ng-template #main><ng-content main/></ng-template>
|
|
114
125
|
<ng-template #next><router-outlet [name]="store.name()"/></ng-template>
|
|
115
126
|
`, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [
|
|
116
127
|
{
|
|
117
128
|
directive: RouterOutletFrameStore,
|
|
118
|
-
inputs: ['frame', 'name'],
|
|
129
|
+
inputs: ['frame', 'name', 'skip'],
|
|
119
130
|
},
|
|
120
|
-
], styles: [":host{display:contents;--primary-color: #ccc;--primary-color-SCOPED-IN-router-outlet-
|
|
121
|
-
}]
|
|
122
|
-
|
|
131
|
+
], styles: [":host{display:contents;--primary-color: #ccc;--primary-color-SCOPED-IN-router-outlet-4kuO: var(--primary-color);--on-primary-color: #ccc;--on-primary-color-SCOPED-IN-router-outlet-4kuO: var(--on-primary-color);--surface-color: #ccc;--surface-color-SCOPED-IN-router-outlet-4kuO: var(--surface-color);--background-color: #ccc;--background-color-SCOPED-IN-router-outlet-4kuO: var(--background-color)}:host *{--primary-color: var(--primary-color-SCOPED-IN-router-outlet-4kuO);--on-primary-color: var(--on-primary-color-SCOPED-IN-router-outlet-4kuO);--surface-color: var(--surface-color-SCOPED-IN-router-outlet-4kuO);--background-color: var(--background-color-SCOPED-IN-router-outlet-4kuO)}\n"] }]
|
|
132
|
+
}], ctorParameters: () => [], propDecorators: { events: [{
|
|
133
|
+
type: Output
|
|
134
|
+
}] } });
|
|
135
|
+
function InjectableSignal(name, defaultValue = null) {
|
|
136
|
+
return new InjectionToken(name, {
|
|
137
|
+
providedIn: 'root',
|
|
138
|
+
factory: () => signal(defaultValue),
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
const CURRENT_ROUTER_OUTLET = InjectableSignal('CURRENT_ROUTER_OUTLET', null);
|
|
142
|
+
export const canDeactivateFn = (component) => {
|
|
143
|
+
const current = inject(CURRENT_ROUTER_OUTLET);
|
|
144
|
+
const frame = component?.__injector ? runInInjectionContext(component?.__injector, () => {
|
|
145
|
+
return inject(RouterOutletFrame, { optional: true });
|
|
146
|
+
}) : null;
|
|
147
|
+
if (frame) {
|
|
148
|
+
current.set(frame);
|
|
149
|
+
frame.events.emit('deactivated');
|
|
150
|
+
}
|
|
151
|
+
// MEMO(NozomuMiyamoto): RouterOutletFrameの幅を変更するアニメーションの最適化のために遅延させている。
|
|
152
|
+
return of(true).pipe(delay(0));
|
|
153
|
+
};
|
|
154
|
+
export const canActivateFn = () => {
|
|
155
|
+
const current = inject(CURRENT_ROUTER_OUTLET);
|
|
156
|
+
if (current()) {
|
|
157
|
+
current().events.emit('activated');
|
|
158
|
+
}
|
|
159
|
+
// MEMO(NozomuMiyamoto): RouterOutletFrameの幅を変更するアニメーションの最適化のために遅延させている。
|
|
160
|
+
return of(true).pipe(delay(0));
|
|
161
|
+
};
|
|
162
|
+
export function ngAtomicRoutes(routes) {
|
|
163
|
+
return routes.map(route => {
|
|
164
|
+
return {
|
|
165
|
+
...route,
|
|
166
|
+
canActivate: [canActivateFn, ...(route.canActivate || [])],
|
|
167
|
+
canDeactivate: [canDeactivateFn, ...(route.canDeactivate || [])],
|
|
168
|
+
data: { preload: true, ...route.data },
|
|
169
|
+
// loadChildren: route?.loadChildren ? async () => {
|
|
170
|
+
// const module = await route?.loadChildren();
|
|
171
|
+
// const routes: Routes = module['default'] || module['routes'] || [];
|
|
172
|
+
// return ngAtomicRoutes(routes);
|
|
173
|
+
// } : undefined,
|
|
174
|
+
};
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLW91dGxldC5mcmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tcG9uZW50cy9zcmMvbGliL2ZyYW1lcy9yb3V0ZXItb3V0bGV0L3JvdXRlci1vdXRsZXQuZnJhbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBYyxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxxQkFBcUIsRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUNqTixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBa0MsY0FBYyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRXZHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFPLE1BQU0sTUFBTSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBR3BFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxtQkFBbUI7SUFEL0Q7O1FBZ0NXLFdBQU0sR0FBRyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEQs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LEdBQWtCLEdBQUcsRUFBRTtJQUNoRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUM5QyxJQUFJLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDZixPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDQSx3RUFBd0U7SUFDekUsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQy9CLENBQUMsQ0FBQTtBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsTUFBYztJQUMzQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDeEIsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLFdBQVcsRUFBRSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUMxRCxhQUFhLEVBQUUsQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLENBQUM7WUFDaEUsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDdEMsb0RBQW9EO1lBQ3BELGdEQUFnRDtZQUNoRCx3RUFBd0U7WUFDeEUsbUNBQW1DO1lBQ25DLGlCQUFpQjtTQUNsQixDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIGlucHV0LCBPdXRwdXQsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCwgU2lnbmFsLCBzaWduYWwsIHZpZXdDaGlsZCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgT3ZlcmxheUZyYW1lIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL2ZyYW1lcy9vdmVybGF5JztcbmltcG9ydCB7IExpbmVVcEZyYW1lIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL2ZyYW1lcy9saW5lLXVwJztcbmltcG9ydCB7IENhbkFjdGl2YXRlRm4sIENhbkRlYWN0aXZhdGVGbiwgUFJJTUFSWV9PVVRMRVQsIFJvdXRlck91dGxldCwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEJyZWFrcG9pbnQgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy9icmVha3BvaW50JztcbmltcG9ydCB7IG1ha2VDb25maWcgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy91aSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlQ29tcG9uZW50LCBOZ0F0b21pY0NvbXBvbmVudCwgX2NvbXB1dGVkIH0gZnJvbSAnQG5nLWF0b21pYy9jb3JlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGRlbGF5LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBvZiwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQERpcmVjdGl2ZSh7c3RhbmRhbG9uZTogdHJ1ZSwgc2VsZWN0b3I6ICdmcmFtZXMtcm91dGVyLW91dGxldCd9KVxuZXhwb3J0IGNsYXNzIFJvdXRlck91dGxldEZyYW1lU3RvcmUgZXh0ZW5kcyBJbmplY3RhYmxlQ29tcG9uZW50IHtcbiAgc3RhdGljIHJlYWRvbmx5IENvbmZpZyA9IG1ha2VDb25maWcoKCkgPT4ge1xuICAgIGNvbnN0IGdldEZyYW1lID0gKGJyZWFrcG9pbnQ6IEJyZWFrcG9pbnQpID0+IHtcbiAgICAgIHN3aXRjaChicmVha3BvaW50KSB7XG4gICAgICAgIGNhc2UgJ3hTbWFsbCc6IHJldHVybiAnb3ZlcmxheScgYXMgJ2xpbmV1cCcgfCAnb3ZlcmxheSc7XG4gICAgICAgIGRlZmF1bHQ6IHJldHVybiAnbGluZXVwJyBhcyAnbGluZXVwJyB8ICdvdmVybGF5JztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIChjb250ZXh0KSA9PiB7XG4gICAgICByZXR1cm4gKHtcbiAgICAgICAgZnJhbWU6IGdldEZyYW1lKGNvbnRleHQuYnJlYWtwb2ludCksXG4gICAgICAgIG5hbWU6IFBSSU1BUllfT1VUTEVUIGFzIHN0cmluZyxcbiAgICAgICAgaXNBY3RpdmF0ZWQ6IChvdXRsZXQ6IFJvdXRlck91dGxldCkgPT4gISFvdXRsZXQuaXNBY3RpdmF0ZWQsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFsnY29tcG9uZW50cycsICdmcmFtZXMnLCAncm91dGVyLW91dGxldCddKTtcblxuICBzdGF0aWMgcHJvdmlkZVNpZGVBcHBDb25maWcgPSAobmFtZTogc3RyaW5nID0gUFJJTUFSWV9PVVRMRVQpID0+IHtcbiAgICByZXR1cm4gUm91dGVyT3V0bGV0RnJhbWVTdG9yZS5Db25maWcucHJvdmlkZSgoKSA9PiAoY29uZmlnKSA9PiAoe1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgbmFtZSxcbiAgICAgIGZyYW1lOiAnb3ZlcmxheScsXG4gICAgfSkpO1xuICB9XG5cbiAgc3RhdGljIHByb3ZpZGVEZWZhdWx0KCkge1xuICAgIHJldHVybiBbXG4gICAgICBSb3V0ZXJPdXRsZXRGcmFtZVN0b3JlLkNvbmZpZy5wcm92aWRlKCksXG4gICAgXVxuICB9XG5cbiAgcmVhZG9ubHkgY29uZmlnID0gUm91dGVyT3V0bGV0RnJhbWVTdG9yZS5Db25maWcuaW5qZWN0KCk7XG4gIHJlYWRvbmx5IGZyYW1lID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkuZnJhbWUpKTtcbiAgcmVhZG9ubHkgbmFtZSA9IGlucHV0KF9jb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLm5hbWUsIHsgZXF1YWw6IChhLCBiKSA9PiBhID09PSBiIH0pKTtcbiAgcmVhZG9ubHkgaXNBY3RpdmF0ZWQgPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS5pc0FjdGl2YXRlZCkpO1xuICByZWFkb25seSBza2lwID0gaW5wdXQoZmFsc2UpO1xufSBcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnJhbWVzLXJvdXRlci1vdXRsZXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBPdmVybGF5RnJhbWUsXG4gICAgTGluZVVwRnJhbWUsXG4gICAgUm91dGVyT3V0bGV0LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBzd2l0Y2ggKHN0b3JlLmZyYW1lKCkpIHtcbiAgICAgIEBjYXNlICgnbGluZXVwJykge1xuICAgICAgICA8ZnJhbWVzLWxpbmUtdXAgW2hhc05leHRdPVwiaGFzTmV4dCgpXCIgW3Njb3BlXT1cInN0b3JlLm5hbWUoKVwiPlxuICAgICAgICAgIEBpZiAoIXN0b3JlLnNraXAoKSkge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1haW5cIiBtYWluLz5cbiAgICAgICAgICB9XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5leHRcIiBuZXh0Lz5cbiAgICAgICAgPC9mcmFtZXMtbGluZS11cD5cbiAgICAgIH1cbiAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgPGZyYW1lcy1vdmVybGF5IFtoYXNOZXh0XT1cImhhc05leHQoKVwiPlxuICAgICAgICAgIEBpZiAoIXN0b3JlLnNraXAoKSkge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1haW5cIiBtYWluLz5cbiAgICAgICAgICB9XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5leHRcIiBuZXh0Lz5cbiAgICAgICAgPC9mcmFtZXMtb3ZlcmxheT5cbiAgICAgIH1cbiAgICB9XG4gICAgPG5nLXRlbXBsYXRlICNtYWluPjxuZy1jb250ZW50IG1haW4vPjwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNuZXh0Pjxyb3V0ZXItb3V0bGV0IFtuYW1lXT1cInN0b3JlLm5hbWUoKVwiLz48L25nLXRlbXBsYXRlPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9yb3V0ZXItb3V0bGV0LmZyYW1lLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3REaXJlY3RpdmVzOiBbXG4gICAge1xuICAgICAgZGlyZWN0aXZlOiBSb3V0ZXJPdXRsZXRGcmFtZVN0b3JlLFxuICAgICAgaW5wdXRzOiBbJ2ZyYW1lJywgJ25hbWUnLCAnc2tpcCddLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFJvdXRlck91dGxldEZyYW1lIGV4dGVuZHMgTmdBdG9taWNDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgc3RvcmUgPSBpbmplY3QoUm91dGVyT3V0bGV0RnJhbWVTdG9yZSk7XG4gIEBPdXRwdXQoKSByZWFkb25seSBldmVudHMgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgb3V0bGV0ID0gdmlld0NoaWxkKFJvdXRlck91dGxldCk7XG4gIHJlYWRvbmx5IG91dGxldCQgPSB0b09ic2VydmFibGUodGhpcy5vdXRsZXQpO1xuICByZWFkb25seSBhY3RpdmF0ZWRFdmVudHMkID0gdGhpcy5vdXRsZXQkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChvdXRsZXQpID0+IG91dGxldC5hY3RpdmF0ZUV2ZW50cyksXG4gICk7XG4gIHJlYWRvbmx5IGhhc05leHQkID0gdGhpcy5vdXRsZXQkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChvdXRsZXQpID0+IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5hY3RpdmF0ZWRFdmVudHMkLnBpcGUoc3RhcnRXaXRoKG51bGwpKSwgXG4gICAgICBvdXRsZXQuZGVhY3RpdmF0ZUV2ZW50cy5waXBlKHN0YXJ0V2l0aChudWxsKSksXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoKSA9PiB0aGlzLnN0b3JlLmlzQWN0aXZhdGVkKCkob3V0bGV0KSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICkpLFxuICApO1xuICByZWFkb25seSBoYXNOZXh0ID0gdG9TaWduYWwodGhpcy5oYXNOZXh0JCk7XG4gIHJlYWRvbmx5IHBhcmVudCA9IGluamVjdChSb3V0ZXJPdXRsZXRGcmFtZSwgeyBvcHRpb25hbDogdHJ1ZSwgc2tpcFNlbGY6IHRydWUgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICBpZiAodGhpcy5zdG9yZS5za2lwKCkpIHtcbiAgICAgICAgdGhpcy5wYXJlbnQuZXZlbnRzLmVtaXQoZXZlbnQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIEluamVjdGFibGVTaWduYWw8VD4obmFtZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IFQgPSBudWxsKTogSW5qZWN0aW9uVG9rZW48V3JpdGFibGVTaWduYWw8VD4+IHtcbiAgcmV0dXJuIG5ldyBJbmplY3Rpb25Ub2tlbjxTaWduYWw8VD4+KG5hbWUsIHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogKCkgPT4gc2lnbmFsKGRlZmF1bHRWYWx1ZSksXG4gIH0pO1xufVxuXG5jb25zdCBDVVJSRU5UX1JPVVRFUl9PVVRMRVQgPSBJbmplY3RhYmxlU2lnbmFsPFJvdXRlck91dGxldEZyYW1lPignQ1VSUkVOVF9ST1VURVJfT1VUTEVUJywgbnVsbCk7XG5cbmV4cG9ydCBjb25zdCBjYW5EZWFjdGl2YXRlRm46IENhbkRlYWN0aXZhdGVGbjxOZ0F0b21pY0NvbXBvbmVudCB8IHVuZGVmaW5lZD4gPSAoY29tcG9uZW50KSA9PiB7XG5cdGNvbnN0IGN1cnJlbnQgPSBpbmplY3QoQ1VSUkVOVF9ST1VURVJfT1VUTEVUKTtcblx0Y29uc3QgZnJhbWUgPSBjb21wb25lbnQ/Ll9faW5qZWN0b3IgPyBydW5JbkluamVjdGlvbkNvbnRleHQoY29tcG9uZW50Py5fX2luamVjdG9yLCAoKSA9PiB7XG4gICAgcmV0dXJuIGluamVjdChSb3V0ZXJPdXRsZXRGcmFtZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgfSkgOiBudWxsO1xuXHRpZiAoZnJhbWUpIHtcblx0XHRjdXJyZW50LnNldChmcmFtZSk7XG5cdFx0ZnJhbWUuZXZlbnRzLmVtaXQoJ2RlYWN0aXZhdGVkJyk7XG5cdH1cbiAgLy8gTUVNTyhOb3pvbXVNaXlhbW90byk6IFJvdXRlck91dGxldEZyYW1l44Gu5bmF44KS5aSJ5pu044GZ44KL44Ki44OL44Oh44O844K344On44Oz44Gu5pyA6YGp5YyW44Gu44Gf44KB44Gr6YGF5bu244GV44Gb44Gm44GE44KL44CCXG4gIHJldHVybiBvZih0cnVlKS5waXBlKGRlbGF5KDApKTtcbn1cblxuZXhwb3J0IGNvbnN0IGNhbkFjdGl2YXRlRm46IENhbkFjdGl2YXRlRm4gPSAoKSA9PiB7XG5cdGNvbnN0IGN1cnJlbnQgPSBpbmplY3QoQ1VSUkVOVF9ST1VURVJfT1VUTEVUKTtcblx0aWYgKGN1cnJlbnQoKSkge1xuXHRcdGN1cnJlbnQoKS5ldmVudHMuZW1pdCgnYWN0aXZhdGVkJyk7XG5cdH1cbiAgLy8gTUVNTyhOb3pvbXVNaXlhbW90byk6IFJvdXRlck91dGxldEZyYW1l44Gu5bmF44KS5aSJ5pu044GZ44KL44Ki44OL44Oh44O844K344On44Oz44Gu5pyA6YGp5YyW44Gu44Gf44KB44Gr6YGF5bu244GV44Gb44Gm44GE44KL44CCXG5cdHJldHVybiBvZih0cnVlKS5waXBlKGRlbGF5KDApKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbmdBdG9taWNSb3V0ZXMocm91dGVzOiBSb3V0ZXMpOiBSb3V0ZXMge1xuICByZXR1cm4gcm91dGVzLm1hcChyb3V0ZSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnJvdXRlLFxuICAgICAgY2FuQWN0aXZhdGU6IFtjYW5BY3RpdmF0ZUZuLCAuLi4ocm91dGUuY2FuQWN0aXZhdGUgfHwgW10pXSxcbiAgICAgIGNhbkRlYWN0aXZhdGU6IFtjYW5EZWFjdGl2YXRlRm4sIC4uLihyb3V0ZS5jYW5EZWFjdGl2YXRlIHx8IFtdKV0sXG4gICAgICBkYXRhOiB7IHByZWxvYWQ6IHRydWUsIC4uLnJvdXRlLmRhdGEgfSxcbiAgICAgIC8vIGxvYWRDaGlsZHJlbjogcm91dGU/LmxvYWRDaGlsZHJlbiA/IGFzeW5jICgpID0+IHtcbiAgICAgIC8vICAgY29uc3QgbW9kdWxlID0gYXdhaXQgcm91dGU/LmxvYWRDaGlsZHJlbigpO1xuICAgICAgLy8gICBjb25zdCByb3V0ZXM6IFJvdXRlcyA9IG1vZHVsZVsnZGVmYXVsdCddIHx8IG1vZHVsZVsncm91dGVzJ10gfHwgW107XG4gICAgICAvLyAgIHJldHVybiBuZ0F0b21pY1JvdXRlcyhyb3V0ZXMpO1xuICAgICAgLy8gfSA6IHVuZGVmaW5lZCxcbiAgICB9XG4gIH0pXG59Il19
|
|
@@ -1,28 +1,46 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, ElementRef, ViewChild } from '@angular/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class ScrollFrame {
|
|
5
|
+
isScrollBottom() {
|
|
6
|
+
const contents = this.contents.nativeElement;
|
|
7
|
+
return contents.scrollHeight - contents.scrollTop === contents.clientHeight;
|
|
8
|
+
}
|
|
9
|
+
scrollToBottom() {
|
|
10
|
+
this.contents.nativeElement.scrollTop = this.contents.nativeElement.scrollHeight;
|
|
11
|
+
}
|
|
5
12
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: ScrollFrame, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: ScrollFrame, isStandalone: true, selector: "frames-scroll", ngImport: i0, template: `
|
|
7
|
-
<div class="
|
|
8
|
-
<ng-content select=[
|
|
13
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: ScrollFrame, isStandalone: true, selector: "frames-scroll", viewQueries: [{ propertyName: "contents", first: true, predicate: ["contents"], descendants: true, static: true }], ngImport: i0, template: `
|
|
14
|
+
<div class="top">
|
|
15
|
+
<ng-content select=[top]></ng-content>
|
|
9
16
|
</div>
|
|
10
|
-
<div class="contents">
|
|
11
|
-
<ng-content
|
|
17
|
+
<div class="contents" #contents>
|
|
18
|
+
<ng-content></ng-content>
|
|
19
|
+
<!-- <ng-content select=[contents]></ng-content> -->
|
|
12
20
|
</div>
|
|
13
|
-
|
|
21
|
+
<div class="bottom">
|
|
22
|
+
<ng-content select=[bottom]></ng-content>
|
|
23
|
+
</div>
|
|
24
|
+
`, isInline: true, styles: [":host{--height: 100%;--height-SCOPED-IN-scroll-9d2A: var(--height);--top-height: 56px;--top-height-SCOPED-IN-scroll-9d2A: var(--top-height);--bottom-height: 56px;--bottom-height-SCOPED-IN-scroll-9d2A: var(--bottom-height);--contents-gap: 16px;--contents-gap-SCOPED-IN-scroll-9d2A: var(--contents-gap)}:host{display:flex;width:100%;flex-direction:column;justify-content:space-between;height:var(--height-SCOPED-IN-scroll-9d2A);overflow:hidden}:host .top{height:fit-content;transition:.5s height;touch-action:none}:host .contents{display:flex;flex:auto;flex-direction:column;gap:var(--contents-gap-SCOPED-IN-scroll-9d2A);transition:.5s height;overflow:scroll;box-sizing:border-box;-webkit-overflow-scrolling:touch}:host .contents::-webkit-scrollbar{display:none}:host .bottom{height:fit-content}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14
25
|
}
|
|
15
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: ScrollFrame, decorators: [{
|
|
16
27
|
type: Component,
|
|
17
28
|
args: [{ selector: 'frames-scroll', standalone: true, imports: [
|
|
18
29
|
CommonModule,
|
|
19
30
|
], template: `
|
|
20
|
-
<div class="
|
|
21
|
-
<ng-content select=[
|
|
31
|
+
<div class="top">
|
|
32
|
+
<ng-content select=[top]></ng-content>
|
|
33
|
+
</div>
|
|
34
|
+
<div class="contents" #contents>
|
|
35
|
+
<ng-content></ng-content>
|
|
36
|
+
<!-- <ng-content select=[contents]></ng-content> -->
|
|
22
37
|
</div>
|
|
23
|
-
<div class="
|
|
24
|
-
<ng-content select=[
|
|
38
|
+
<div class="bottom">
|
|
39
|
+
<ng-content select=[bottom]></ng-content>
|
|
25
40
|
</div>
|
|
26
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{--height: 100%;--height-SCOPED-IN-scroll-
|
|
27
|
-
}]
|
|
28
|
-
|
|
41
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{--height: 100%;--height-SCOPED-IN-scroll-9d2A: var(--height);--top-height: 56px;--top-height-SCOPED-IN-scroll-9d2A: var(--top-height);--bottom-height: 56px;--bottom-height-SCOPED-IN-scroll-9d2A: var(--bottom-height);--contents-gap: 16px;--contents-gap-SCOPED-IN-scroll-9d2A: var(--contents-gap)}:host{display:flex;width:100%;flex-direction:column;justify-content:space-between;height:var(--height-SCOPED-IN-scroll-9d2A);overflow:hidden}:host .top{height:fit-content;transition:.5s height;touch-action:none}:host .contents{display:flex;flex:auto;flex-direction:column;gap:var(--contents-gap-SCOPED-IN-scroll-9d2A);transition:.5s height;overflow:scroll;box-sizing:border-box;-webkit-overflow-scrolling:touch}:host .contents::-webkit-scrollbar{display:none}:host .bottom{height:fit-content}\n"] }]
|
|
42
|
+
}], propDecorators: { contents: [{
|
|
43
|
+
type: ViewChild,
|
|
44
|
+
args: ['contents', { static: true }]
|
|
45
|
+
}] } });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLmZyYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21wb25lbnRzL3NyYy9saWIvZnJhbWVzL3Njcm9sbC9zY3JvbGwuZnJhbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUF1QjFGLE1BQU0sT0FBTyxXQUFXO0lBS3RCLGNBQWM7UUFDWixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztRQUM3QyxPQUFPLFFBQVEsQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLFNBQVMsS0FBSyxRQUFRLENBQUMsWUFBWSxDQUFDO0lBQzlFLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztJQUNuRixDQUFDOzhHQVpVLFdBQVc7a0dBQVgsV0FBVyw2TEFmWjs7Ozs7Ozs7Ozs7R0FXVCxvMkJBYkMsWUFBWTs7MkZBaUJILFdBQVc7a0JBckJ2QixTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTtxQkFDYixZQUNTOzs7Ozs7Ozs7OztHQVdULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUtyQyxRQUFRO3NCQURqQixTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZyYW1lcy1zY3JvbGwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICA8ZGl2IGNsYXNzPVwidG9wXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVt0b3BdPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb250ZW50c1wiICNjb250ZW50cz5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPCEtLSA8bmctY29udGVudCBzZWxlY3Q9W2NvbnRlbnRzXT48L25nLWNvbnRlbnQ+IC0tPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImJvdHRvbVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1bYm90dG9tXT48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9zY3JvbGwuZnJhbWUuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2Nyb2xsRnJhbWUge1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnRzJywge3N0YXRpYzogdHJ1ZX0pXG4gIHByb3RlY3RlZCBjb250ZW50czogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgaXNTY3JvbGxCb3R0b20oKSB7XG4gICAgY29uc3QgY29udGVudHMgPSB0aGlzLmNvbnRlbnRzLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcmV0dXJuIGNvbnRlbnRzLnNjcm9sbEhlaWdodCAtIGNvbnRlbnRzLnNjcm9sbFRvcCA9PT0gY29udGVudHMuY2xpZW50SGVpZ2h0O1xuICB9XG5cbiAgc2Nyb2xsVG9Cb3R0b20oKSB7XG4gICAgdGhpcy5jb250ZW50cy5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9IHRoaXMuY29udGVudHMubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from '
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export * from '@ng-atomic/components/frames/scroll';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbXBvbmVudHMvc3JjL2xpYi9mcmFtZXMvc2Nyb2xsLXYyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvZnJhbWVzL3Njcm9sbCc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './side-app.frame';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbXBvbmVudHMvc3JjL2xpYi9mcmFtZXMvc2lkZS1hcHAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2lkZS1hcHAuZnJhbWUnO1xuXG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbXBvbmVudHMtZnJhbWVzLXNpZGUtYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21wb25lbnRzL3NyYy9saWIvZnJhbWVzL3NpZGUtYXBwL25nLWF0b21pYy1jb21wb25lbnRzLWZyYW1lcy1zaWRlLWFwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { Component, Directive, inject, input } from "@angular/core";
|
|
2
|
+
import { PRIMARY_OUTLET, RouterOutlet } from "@angular/router";
|
|
3
|
+
import { InjectableComponent, NgAtomicComponent, provideEffect } from "@ng-atomic/core";
|
|
4
|
+
import { RouterOutletFrameStore } from "@ng-atomic/components/frames/router-outlet";
|
|
5
|
+
import { ColumnsPageStore } from "@ng-atomic/components/pages/columns";
|
|
6
|
+
import { FormPageStore } from "@ng-atomic/components/pages/form";
|
|
7
|
+
import { IndexPageStore } from "@ng-atomic/components/pages/_index";
|
|
8
|
+
import { AppService } from "@ng-atomic/common/services/app";
|
|
9
|
+
import { merge } from "lodash-es";
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export class SideAppFrameStore extends InjectableComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.name = input();
|
|
15
|
+
}
|
|
16
|
+
static route(route) {
|
|
17
|
+
return merge({
|
|
18
|
+
outlet: 'side',
|
|
19
|
+
component: SideAppFrame,
|
|
20
|
+
path: '',
|
|
21
|
+
providers: [
|
|
22
|
+
SideAppFrameStore.provideDefault(),
|
|
23
|
+
]
|
|
24
|
+
}, route);
|
|
25
|
+
}
|
|
26
|
+
static provideDefault() {
|
|
27
|
+
return [
|
|
28
|
+
RouterOutletFrameStore.provideSideAppConfig(PRIMARY_OUTLET),
|
|
29
|
+
provideEffect([
|
|
30
|
+
ColumnsPageStore.ActionId.CLOSE,
|
|
31
|
+
FormPageStore.ActionId.CLOSE,
|
|
32
|
+
IndexPageStore.ActionId.CLOSE,
|
|
33
|
+
], () => {
|
|
34
|
+
const app = inject(AppService);
|
|
35
|
+
return () => {
|
|
36
|
+
app.sideApp.collapse();
|
|
37
|
+
};
|
|
38
|
+
}),
|
|
39
|
+
];
|
|
40
|
+
}
|
|
41
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SideAppFrameStore, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
42
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.2", type: SideAppFrameStore, isStandalone: true, selector: "frames-side-app", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
|
|
43
|
+
}
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SideAppFrameStore, decorators: [{
|
|
45
|
+
type: Directive,
|
|
46
|
+
args: [{ standalone: true, selector: 'frames-side-app' }]
|
|
47
|
+
}] });
|
|
48
|
+
export class SideAppFrame extends NgAtomicComponent {
|
|
49
|
+
constructor() {
|
|
50
|
+
super(...arguments);
|
|
51
|
+
this.store = inject(SideAppFrameStore);
|
|
52
|
+
}
|
|
53
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SideAppFrame, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
54
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: SideAppFrame, isStandalone: true, selector: "frames-side-app", providers: [], usesInheritance: true, hostDirectives: [{ directive: SideAppFrameStore, inputs: ["name", "name"] }], ngImport: i0, template: `<router-outlet />`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
|
|
55
|
+
}
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SideAppFrame, decorators: [{
|
|
57
|
+
type: Component,
|
|
58
|
+
args: [{
|
|
59
|
+
standalone: true,
|
|
60
|
+
imports: [
|
|
61
|
+
RouterOutlet,
|
|
62
|
+
],
|
|
63
|
+
selector: 'frames-side-app',
|
|
64
|
+
template: `<router-outlet />`,
|
|
65
|
+
providers: [],
|
|
66
|
+
hostDirectives: [
|
|
67
|
+
{
|
|
68
|
+
directive: SideAppFrameStore,
|
|
69
|
+
inputs: ['name'],
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
}]
|
|
73
|
+
}] });
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1hcHAuZnJhbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbXBvbmVudHMvc3JjL2xpYi9mcmFtZXMvc2lkZS1hcHAvc2lkZS1hcHAuZnJhbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFTLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUdsQyxNQUFNLE9BQU8saUJBQWtCLFNBQVEsbUJBQW1CO0lBRDFEOztRQTZCVyxTQUFJLEdBQUcsS0FBSyxFQUFVLENBQUM7S0FDakM7SUE1QkMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFZO1FBQ3ZCLE9BQU8sS0FBSyxDQUFDO1lBQ1gsTUFBTSxFQUFFLE1BQU07WUFDZCxTQUFTLEVBQUUsWUFBWTtZQUN2QixJQUFJLEVBQUUsRUFBRTtZQUNSLFNBQVMsRUFBRTtnQkFDVCxpQkFBaUIsQ0FBQyxjQUFjLEVBQUU7YUFDbkM7U0FDRixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjO1FBQ25CLE9BQU87WUFDTCxzQkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUM7WUFDM0QsYUFBYSxDQUFDO2dCQUNaLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxLQUFLO2dCQUMvQixhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUs7Z0JBQzVCLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSzthQUM5QixFQUFFLEdBQUcsRUFBRTtnQkFDTixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQy9CLE9BQU8sR0FBRyxFQUFFO29CQUNWLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQztZQUNKLENBQUMsQ0FBQztTQUNILENBQUE7SUFDSCxDQUFDOzhHQTFCVSxpQkFBaUI7a0dBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsU0FBUzttQkFBQyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFDOztBQWdEMUQsTUFBTSxPQUFPLFlBQWEsU0FBUSxpQkFBaUI7SUFoQm5EOztRQWlCWSxVQUFLLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FDN0M7OEdBRlksWUFBWTtrR0FBWixZQUFZLDhEQVRaLEVBQ1YsdURBdkNVLGlCQUFpQix1REFxQ2xCLG1CQUFtQiw0REFIM0IsWUFBWTs7MkZBYUgsWUFBWTtrQkFoQnhCLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO29CQUNELFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFNBQVMsRUFBRSxFQUNWO29CQUNELGNBQWMsRUFBRTt3QkFDZDs0QkFDRSxTQUFTLEVBQUUsaUJBQWlCOzRCQUM1QixNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUM7eUJBQ2pCO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBEaXJlY3RpdmUsIGluamVjdCwgaW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgUFJJTUFSWV9PVVRMRVQsIFJvdXRlLCBSb3V0ZXJPdXRsZXQgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlQ29tcG9uZW50LCBOZ0F0b21pY0NvbXBvbmVudCwgcHJvdmlkZUVmZmVjdCB9IGZyb20gXCJAbmctYXRvbWljL2NvcmVcIjtcbmltcG9ydCB7IFJvdXRlck91dGxldEZyYW1lU3RvcmUgfSBmcm9tIFwiQG5nLWF0b21pYy9jb21wb25lbnRzL2ZyYW1lcy9yb3V0ZXItb3V0bGV0XCI7XG5pbXBvcnQgeyBDb2x1bW5zUGFnZVN0b3JlIH0gZnJvbSBcIkBuZy1hdG9taWMvY29tcG9uZW50cy9wYWdlcy9jb2x1bW5zXCI7XG5pbXBvcnQgeyBGb3JtUGFnZVN0b3JlIH0gZnJvbSBcIkBuZy1hdG9taWMvY29tcG9uZW50cy9wYWdlcy9mb3JtXCI7XG5pbXBvcnQgeyBJbmRleFBhZ2VTdG9yZSB9IGZyb20gXCJAbmctYXRvbWljL2NvbXBvbmVudHMvcGFnZXMvX2luZGV4XCI7XG5pbXBvcnQgeyBBcHBTZXJ2aWNlIH0gZnJvbSBcIkBuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL2FwcFwiO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbkBEaXJlY3RpdmUoe3N0YW5kYWxvbmU6IHRydWUsIHNlbGVjdG9yOiAnZnJhbWVzLXNpZGUtYXBwJ30pXG5leHBvcnQgY2xhc3MgU2lkZUFwcEZyYW1lU3RvcmUgZXh0ZW5kcyBJbmplY3RhYmxlQ29tcG9uZW50IHtcbiAgc3RhdGljIHJvdXRlKHJvdXRlOiBSb3V0ZSkge1xuICAgIHJldHVybiBtZXJnZSh7XG4gICAgICBvdXRsZXQ6ICdzaWRlJyxcbiAgICAgIGNvbXBvbmVudDogU2lkZUFwcEZyYW1lLFxuICAgICAgcGF0aDogJycsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgU2lkZUFwcEZyYW1lU3RvcmUucHJvdmlkZURlZmF1bHQoKSxcbiAgICAgIF1cbiAgICB9LCByb3V0ZSk7XG4gIH1cblxuICBzdGF0aWMgcHJvdmlkZURlZmF1bHQoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIFJvdXRlck91dGxldEZyYW1lU3RvcmUucHJvdmlkZVNpZGVBcHBDb25maWcoUFJJTUFSWV9PVVRMRVQpLFxuICAgICAgcHJvdmlkZUVmZmVjdChbXG4gICAgICAgIENvbHVtbnNQYWdlU3RvcmUuQWN0aW9uSWQuQ0xPU0UsXG4gICAgICAgIEZvcm1QYWdlU3RvcmUuQWN0aW9uSWQuQ0xPU0UsXG4gICAgICAgIEluZGV4UGFnZVN0b3JlLkFjdGlvbklkLkNMT1NFLFxuICAgICAgXSwgKCkgPT4ge1xuICAgICAgICBjb25zdCBhcHAgPSBpbmplY3QoQXBwU2VydmljZSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgYXBwLnNpZGVBcHAuY29sbGFwc2UoKTtcbiAgICAgICAgfTtcbiAgICAgIH0pLFxuICAgIF1cbiAgfVxuXG4gIHJlYWRvbmx5IG5hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG59XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgUm91dGVyT3V0bGV0LFxuICBdLFxuICBzZWxlY3RvcjogJ2ZyYW1lcy1zaWRlLWFwcCcsXG4gIHRlbXBsYXRlOiBgPHJvdXRlci1vdXRsZXQgLz5gLFxuICBwcm92aWRlcnM6IFtcbiAgXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICB7XG4gICAgICBkaXJlY3RpdmU6IFNpZGVBcHBGcmFtZVN0b3JlLFxuICAgICAgaW5wdXRzOiBbJ25hbWUnXSxcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2lkZUFwcEZyYW1lIGV4dGVuZHMgTmdBdG9taWNDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgc3RvcmUgPSBpbmplY3QoU2lkZUFwcEZyYW1lU3RvcmUpO1xufVxuIl19
|