@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,30 +1,30 @@
|
|
|
1
1
|
var IndexTemplateStore_1;
|
|
2
2
|
import { __decorate, __metadata } from "tslib";
|
|
3
3
|
import { ChangeDetectionStrategy, Component, Directive, PLATFORM_ID, inject, input, viewChild } from '@angular/core';
|
|
4
|
-
import { isPlatformServer } from '@angular/common';
|
|
4
|
+
import { isPlatformServer, NgTemplateOutlet } from '@angular/common';
|
|
5
5
|
import { AutoLayoutFrame } from '@ng-atomic/components/frames/auto-layout';
|
|
6
6
|
import { ScrollFrame } from '@ng-atomic/components/frames/scroll';
|
|
7
7
|
import { HeaderMoleculeStore } from '@ng-atomic/components/molecules/header';
|
|
8
8
|
import { TableOrganism, TableOrganismStore, injectIndexForm } from '@ng-atomic/components/organisms/table';
|
|
9
|
-
import {
|
|
9
|
+
import { ListOrganism } from '@ng-atomic/components/organisms/list';
|
|
10
10
|
import { NavigatorOrganismStore } from '@ng-atomic/components/organisms/navigator';
|
|
11
11
|
import { InjectableComponent, TokenizedType, _computed, computeFake } from '@ng-atomic/core';
|
|
12
|
-
import { FiltersSectionOrganism } from '@ng-atomic/components/organisms/filters-section';
|
|
13
12
|
import { DividerFrame } from '@ng-atomic/components/frames/divider';
|
|
14
13
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
15
|
-
import { SelectionListOrganism } from '@ng-atomic/components/organisms/selection-list';
|
|
16
14
|
import { Effect, NgAtomicComponent } from '@ng-atomic/core';
|
|
17
15
|
import { QueryResolverService } from '@ng-atomic/common/services/query-resolver';
|
|
18
16
|
import { NavActionId, call, injectNavStartActions, makeConfig } from '@ng-atomic/common/services/ui';
|
|
19
17
|
import { IndexPipe } from '@ng-atomic/common/pipes/index';
|
|
20
18
|
import { IndexLengthPipe } from '@ng-atomic/common/pipes/index-length';
|
|
21
|
-
import { SortByPipe } from '@ng-atomic/common/pipes/sort-by';
|
|
22
19
|
import { GridCardsSectionOrganism } from '@ng-atomic/components/organisms/grid-cards-section';
|
|
23
20
|
import { injectModelName } from '@ng-atomic/common/pipes/domain';
|
|
24
|
-
import {
|
|
21
|
+
import { FormControl } from '@angular/forms';
|
|
25
22
|
import { computedRawValue } from '@ng-atomic/common/utils';
|
|
26
23
|
import { toObservable } from '@angular/core/rxjs-interop';
|
|
27
24
|
import { FlatTreeControl } from '@angular/cdk/tree';
|
|
25
|
+
import { TreeListOrganism, TreeListOrganismStore } from '@ng-atomic/components/organisms/tree-list';
|
|
26
|
+
import { TextInputFieldMolecule } from '@ng-atomic/components/molecules/text-input-field';
|
|
27
|
+
import { VerticalHideFrame } from '@ng-atomic/components/frames/vertical-hide';
|
|
28
28
|
import * as i0 from "@angular/core";
|
|
29
29
|
export var ActionId;
|
|
30
30
|
(function (ActionId) {
|
|
@@ -47,6 +47,14 @@ export function getType(context) {
|
|
|
47
47
|
default: return 'table';
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
+
export function convertToItemsMap(items) {
|
|
51
|
+
return {
|
|
52
|
+
'default': {
|
|
53
|
+
items: items,
|
|
54
|
+
itemsLength: items?.length,
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
}
|
|
50
58
|
let IndexTemplateStore = class IndexTemplateStore extends InjectableComponent {
|
|
51
59
|
constructor() {
|
|
52
60
|
super(...arguments);
|
|
@@ -60,8 +68,12 @@ let IndexTemplateStore = class IndexTemplateStore extends InjectableComponent {
|
|
|
60
68
|
this.tableTreeControl = input(_computed(() => this.config().tableTreeControl));
|
|
61
69
|
this.itemActions = input(_computed(() => this.config().itemActions));
|
|
62
70
|
this.title = input(_computed(() => this.config().title));
|
|
71
|
+
this.titleControl = input(_computed(() => this.config().titleControl));
|
|
72
|
+
this.titleEditable = input(_computed(() => this.config().titleEditable));
|
|
63
73
|
this.description = input(_computed(() => this.config().description));
|
|
64
74
|
this.items = input(_computed(() => this.config().items));
|
|
75
|
+
this.itemsMap = input(_computed(() => convertToItemsMap(this.items())));
|
|
76
|
+
this.itemsMapKeys = input(_computed(() => Object.keys(this.itemsMap() ?? {})));
|
|
65
77
|
this.itemsLength = input(_computed(() => this.config().itemsLength));
|
|
66
78
|
this.navStartActions = input(_computed(() => this.config().navStartActions));
|
|
67
79
|
this.navEndActions = input(_computed(() => this.config().navEndActions));
|
|
@@ -72,6 +84,7 @@ let IndexTemplateStore = class IndexTemplateStore extends InjectableComponent {
|
|
|
72
84
|
this.selection = input(_computed(() => this.config().selection));
|
|
73
85
|
this.highlight = input(_computed(() => this.config().highlight));
|
|
74
86
|
this.queryLabel = input(_computed(() => this.config().queryLabel));
|
|
87
|
+
this.navMode = input(_computed(() => 'expanded'));
|
|
75
88
|
this.form$ = toObservable(computeFake(this.form));
|
|
76
89
|
this.formValue = computedRawValue(() => call(this.form()));
|
|
77
90
|
this.pipes = { index: inject(IndexPipe), indexLength: inject(IndexLengthPipe) };
|
|
@@ -90,9 +103,19 @@ let IndexTemplateStore = class IndexTemplateStore extends InjectableComponent {
|
|
|
90
103
|
default: return 'var(--page-width-lv2)';
|
|
91
104
|
}
|
|
92
105
|
}
|
|
106
|
+
function getType(context) {
|
|
107
|
+
switch (context.breakpoint) {
|
|
108
|
+
case 'xSmall': return 'list';
|
|
109
|
+
case 'small':
|
|
110
|
+
case 'medium':
|
|
111
|
+
case 'large':
|
|
112
|
+
case 'xLarge':
|
|
113
|
+
default: return 'table';
|
|
114
|
+
}
|
|
115
|
+
}
|
|
93
116
|
const form = injectIndexForm();
|
|
94
117
|
const navStartActions = injectNavStartActions();
|
|
95
|
-
return () => ({
|
|
118
|
+
return (context) => ({
|
|
96
119
|
form,
|
|
97
120
|
toggleActions: [
|
|
98
121
|
{ id: ActionId.TOGGLE_TYPE, icon: 'grid_view', payload: 'grid' },
|
|
@@ -102,17 +125,19 @@ let IndexTemplateStore = class IndexTemplateStore extends InjectableComponent {
|
|
|
102
125
|
gridToolbarActions: [],
|
|
103
126
|
tableChildrenKey: null,
|
|
104
127
|
tableIsHidden: (item) => false,
|
|
105
|
-
tableTreeControl: new FlatTreeControl(n => n.level, n => n.isExpandable),
|
|
128
|
+
tableTreeControl: new FlatTreeControl(n => n.level, n => n.isExpandable, { trackBy: (n) => n.id }),
|
|
106
129
|
itemActions: (item) => [{ id: ActionId.DETAIL, icon: 'open_in_new', payload: item }],
|
|
107
130
|
items: [],
|
|
108
131
|
itemsLength: 0,
|
|
109
132
|
title: `${modelName()}一覧`,
|
|
133
|
+
titleControl: new FormControl(`${modelName()}一覧`),
|
|
134
|
+
titleEditable: false,
|
|
110
135
|
description: ``,
|
|
111
136
|
navStartActions: navStartActions(),
|
|
112
137
|
navEndActions: [],
|
|
113
138
|
groupedBy: null,
|
|
114
139
|
groupKeys: [],
|
|
115
|
-
type:
|
|
140
|
+
type: getType(context),
|
|
116
141
|
pageSizeOptions: [5, 10, 25, 100],
|
|
117
142
|
selection: new SelectionModel(true, []),
|
|
118
143
|
highlight: new SelectionModel(true, []),
|
|
@@ -128,7 +153,7 @@ let IndexTemplateStore = class IndexTemplateStore extends InjectableComponent {
|
|
|
128
153
|
});
|
|
129
154
|
}
|
|
130
155
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: IndexTemplateStore, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
131
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.2", type: IndexTemplateStore, isStandalone: true, selector: "templates-index", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, gridToolbarActions: { classPropertyName: "gridToolbarActions", publicName: "gridToolbarActions", isSignal: true, isRequired: false, transformFunction: null }, toggleActions: { classPropertyName: "toggleActions", publicName: "toggleActions", isSignal: true, isRequired: false, transformFunction: null }, tableChildrenKey: { classPropertyName: "tableChildrenKey", publicName: "tableChildrenKey", isSignal: true, isRequired: false, transformFunction: null }, tableIsHidden: { classPropertyName: "tableIsHidden", publicName: "tableIsHidden", isSignal: true, isRequired: false, transformFunction: null }, tableTreeControl: { classPropertyName: "tableTreeControl", publicName: "tableTreeControl", isSignal: true, isRequired: false, transformFunction: null }, itemActions: { classPropertyName: "itemActions", publicName: "itemActions", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, itemsLength: { classPropertyName: "itemsLength", publicName: "itemsLength", isSignal: true, isRequired: false, transformFunction: null }, navStartActions: { classPropertyName: "navStartActions", publicName: "navStartActions", isSignal: true, isRequired: false, transformFunction: null }, navEndActions: { classPropertyName: "navEndActions", publicName: "navEndActions", isSignal: true, isRequired: false, transformFunction: null }, groupedBy: { classPropertyName: "groupedBy", publicName: "groupedBy", isSignal: true, isRequired: false, transformFunction: null }, groupKeys: { classPropertyName: "groupKeys", publicName: "groupKeys", isSignal: true, isRequired: false, transformFunction: null }, pageSizeOptions: { classPropertyName: "pageSizeOptions", publicName: "pageSizeOptions", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null }, highlight: { classPropertyName: "highlight", publicName: "highlight", isSignal: true, isRequired: false, transformFunction: null }, queryLabel: { classPropertyName: "queryLabel", publicName: "queryLabel", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
156
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.2", type: IndexTemplateStore, isStandalone: true, selector: "templates-index", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, gridToolbarActions: { classPropertyName: "gridToolbarActions", publicName: "gridToolbarActions", isSignal: true, isRequired: false, transformFunction: null }, toggleActions: { classPropertyName: "toggleActions", publicName: "toggleActions", isSignal: true, isRequired: false, transformFunction: null }, tableChildrenKey: { classPropertyName: "tableChildrenKey", publicName: "tableChildrenKey", isSignal: true, isRequired: false, transformFunction: null }, tableIsHidden: { classPropertyName: "tableIsHidden", publicName: "tableIsHidden", isSignal: true, isRequired: false, transformFunction: null }, tableTreeControl: { classPropertyName: "tableTreeControl", publicName: "tableTreeControl", isSignal: true, isRequired: false, transformFunction: null }, itemActions: { classPropertyName: "itemActions", publicName: "itemActions", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, titleControl: { classPropertyName: "titleControl", publicName: "titleControl", isSignal: true, isRequired: false, transformFunction: null }, titleEditable: { classPropertyName: "titleEditable", publicName: "titleEditable", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, itemsMap: { classPropertyName: "itemsMap", publicName: "itemsMap", isSignal: true, isRequired: false, transformFunction: null }, itemsMapKeys: { classPropertyName: "itemsMapKeys", publicName: "itemsMapKeys", isSignal: true, isRequired: false, transformFunction: null }, itemsLength: { classPropertyName: "itemsLength", publicName: "itemsLength", isSignal: true, isRequired: false, transformFunction: null }, navStartActions: { classPropertyName: "navStartActions", publicName: "navStartActions", isSignal: true, isRequired: false, transformFunction: null }, navEndActions: { classPropertyName: "navEndActions", publicName: "navEndActions", isSignal: true, isRequired: false, transformFunction: null }, groupedBy: { classPropertyName: "groupedBy", publicName: "groupedBy", isSignal: true, isRequired: false, transformFunction: null }, groupKeys: { classPropertyName: "groupKeys", publicName: "groupKeys", isSignal: true, isRequired: false, transformFunction: null }, pageSizeOptions: { classPropertyName: "pageSizeOptions", publicName: "pageSizeOptions", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null }, highlight: { classPropertyName: "highlight", publicName: "highlight", isSignal: true, isRequired: false, transformFunction: null }, queryLabel: { classPropertyName: "queryLabel", publicName: "queryLabel", isSignal: true, isRequired: false, transformFunction: null }, navMode: { classPropertyName: "navMode", publicName: "navMode", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
132
157
|
IndexPipe,
|
|
133
158
|
IndexLengthPipe,
|
|
134
159
|
], usesInheritance: true, ngImport: i0 }); }
|
|
@@ -177,84 +202,129 @@ export class IndexTemplate extends NgAtomicComponent {
|
|
|
177
202
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: IndexTemplate, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
178
203
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.2", type: IndexTemplate, isStandalone: true, selector: "templates-index", host: { classAttribute: "template" }, providers: [
|
|
179
204
|
QueryResolverService,
|
|
180
|
-
], viewQueries: [{ propertyName: "dividerFrame", first: true, predicate: DividerFrame, descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: IndexTemplateStore, inputs: ["gridToolbarActions", "gridToolbarActions", "tableChildrenKey", "tableChildrenKey", "tableIsHidden", "tableIsHidden", "tableTreeControl", "tableTreeControl", "form", "form", "title", "title", "description", "description", "items", "items", "itemsLength", "itemsLength", "itemActions", "itemActions", "navStartActions", "navStartActions", "navEndActions", "navEndActions", "groupedBy", "groupedBy", "groupKeys", "groupKeys", "selection", "selection", "pageSizeOptions", "pageSizeOptions", "type", "type", "highlight", "highlight", "queryLabel", "queryLabel"] }], ngImport: i0, template: `
|
|
205
|
+
], viewQueries: [{ propertyName: "dividerFrame", first: true, predicate: DividerFrame, descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: IndexTemplateStore, inputs: ["gridToolbarActions", "gridToolbarActions", "tableChildrenKey", "tableChildrenKey", "tableIsHidden", "tableIsHidden", "tableTreeControl", "tableTreeControl", "form", "form", "title", "title", "titleControl", "titleControl", "titleEditable", "titleEditable", "description", "description", "items", "items", "itemsMap", "itemsMap", "itemsLength", "itemsLength", "itemActions", "itemActions", "navStartActions", "navStartActions", "navEndActions", "navEndActions", "navMode", "navMode", "groupedBy", "groupedBy", "groupKeys", "groupKeys", "selection", "selection", "pageSizeOptions", "pageSizeOptions", "type", "type", "highlight", "highlight", "queryLabel", "queryLabel"] }], ngImport: i0, template: `
|
|
181
206
|
<frames-scroll>
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
207
|
+
<frames-vertical-hide [mode]="store.navMode()" top>
|
|
208
|
+
<organisms-navigator injectable
|
|
209
|
+
[startActions]="store.navStartActions()"
|
|
210
|
+
[endActions]="store.navEndActions()"
|
|
211
|
+
(action)="dispatch($event)"
|
|
212
|
+
top
|
|
213
|
+
>
|
|
214
|
+
@if (store.titleEditable()) {
|
|
215
|
+
<molecules-text-input-field
|
|
216
|
+
[label]="'title'"
|
|
217
|
+
[placeholder]="'title'"
|
|
218
|
+
[control]="store.titleControl()"
|
|
219
|
+
[appearance]="'fill'"
|
|
220
|
+
/>
|
|
221
|
+
} @else {
|
|
222
|
+
<molecules-header injectable [title]="store.title()" [description]="store.description()"/>
|
|
223
|
+
}
|
|
224
|
+
</organisms-navigator>
|
|
225
|
+
<div class="dashboard">
|
|
226
|
+
<ng-content first select="[navDashboard]" />
|
|
227
|
+
</div>
|
|
228
|
+
</frames-vertical-hide>
|
|
229
|
+
<frames-auto-layout [type]="'vertical'" contents>
|
|
230
|
+
@defer {
|
|
231
|
+
<frames-divider>
|
|
232
|
+
<ng-content first select="[dashboard]" />
|
|
233
|
+
<div style="display: flex; flex-direction: column; width: 100%; height: 100%;" second>
|
|
234
|
+
@if (store.gridToolbarActions() || true) {
|
|
235
|
+
@defer {
|
|
236
|
+
<organisms-grid-toolbar injectable
|
|
237
|
+
[actions]="store.gridToolbarActions()"
|
|
238
|
+
(action)="dispatch($event)"
|
|
239
|
+
/>
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
@if (store.form().get(['query'])) {
|
|
243
|
+
<organisms-chips-input-section
|
|
244
|
+
[control]="store.form().get(['query'])"
|
|
245
|
+
[label]="store.queryLabel()"
|
|
246
|
+
/>
|
|
247
|
+
}
|
|
248
|
+
@if (store.itemsMapKeys().length > 1) {
|
|
249
|
+
@defer {
|
|
250
|
+
<frames-tabs [labels]="store.itemsMapKeys()">
|
|
251
|
+
@for (key of store.itemsMapKeys(); track key;) {
|
|
252
|
+
<ng-template #tab>
|
|
253
|
+
<ng-container *ngTemplateOutlet="items; context: {map: store.itemsMap()[key]}"/>
|
|
254
|
+
</ng-template>
|
|
255
|
+
}
|
|
256
|
+
</frames-tabs>
|
|
257
|
+
}
|
|
258
|
+
} @else if(store.itemsMapKeys().length === 1) {
|
|
259
|
+
<ng-container *ngTemplateOutlet="items; context: {map: store.itemsMap()[store.itemsMapKeys()[0]]}"/>
|
|
260
|
+
} @else {
|
|
261
|
+
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
</div>
|
|
265
|
+
</frames-divider>
|
|
266
|
+
}
|
|
267
|
+
</frames-auto-layout>
|
|
268
|
+
</frames-scroll>
|
|
269
|
+
|
|
270
|
+
<ng-template #items let-map="map">
|
|
271
|
+
<!-- <div>
|
|
272
|
+
json: {{ map | json }}
|
|
273
|
+
</div> -->
|
|
274
|
+
@switch(map?.type ?? store.type()) {
|
|
275
|
+
@case('list') {
|
|
276
|
+
@if (map.childrenKey) {
|
|
277
|
+
<organisms-tree-list
|
|
278
|
+
[items]="map?.items ?? []"
|
|
279
|
+
[childrenKey]="map?.childrenKey ?? store.childrenKey()"
|
|
280
|
+
[treeControl]="map?.treeControl ?? store.tableTreeControl()"
|
|
281
|
+
(action)="dispatch($event)"
|
|
282
|
+
/>
|
|
283
|
+
} @else {
|
|
284
|
+
<organisms-list
|
|
285
|
+
[items]="map?.items ?? []"
|
|
286
|
+
[itemActions]="map?.itemActions ?? store.itemActions()"
|
|
287
|
+
[groupedBy]="map?.groupedBy ?? store.groupedBy()"
|
|
288
|
+
[groupKeys]="map?.groupKeys ?? store.groupKeys()"
|
|
198
289
|
(action)="dispatch($event)"
|
|
199
290
|
/>
|
|
200
291
|
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
292
|
+
}
|
|
293
|
+
@case ('grid') {
|
|
294
|
+
@defer {
|
|
295
|
+
<organisms-grid-cards-section
|
|
296
|
+
[items]="map?.items ?? []"
|
|
297
|
+
(action)="dispatch($event)"
|
|
298
|
+
contents
|
|
299
|
+
/>
|
|
209
300
|
}
|
|
210
|
-
|
|
301
|
+
}
|
|
302
|
+
@default {
|
|
303
|
+
<organisms-table injectable
|
|
304
|
+
[items]="map?.items ?? []"
|
|
305
|
+
[itemActions]="map?.itemActions ?? store.itemActions()"
|
|
306
|
+
[selection]="map?.selection ?? store.selection()"
|
|
307
|
+
[form]="map?.form ?? store.form()"
|
|
308
|
+
[childrenKey]="map?.childrenKey ?? store.tableChildrenKey()"
|
|
309
|
+
[highlight]="map?.highlight ?? store.highlight()"
|
|
310
|
+
[isHidden]="map?.tableIsHidden ?? store.tableIsHidden()"
|
|
311
|
+
[treeControl]="map?.treeControl ?? store.tableTreeControl()"
|
|
312
|
+
(action)="dispatch($event)"
|
|
313
|
+
/>
|
|
314
|
+
@if (map?.form?.get(['page']) ?? store.form().get(['page'])) {
|
|
211
315
|
@defer {
|
|
212
|
-
<
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
<organisms-grid-toolbar injectable
|
|
218
|
-
[actions]="store.gridToolbarActions()"
|
|
219
|
-
(action)="dispatch($event)"
|
|
220
|
-
/>
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
@if (store.form().get(['query'])) {
|
|
224
|
-
<organisms-chips-input-section
|
|
225
|
-
[control]="store.form().get(['query'])"
|
|
226
|
-
[label]="store.queryLabel()"
|
|
227
|
-
/>
|
|
228
|
-
}
|
|
229
|
-
<organisms-table injectable
|
|
230
|
-
[items]="store.items()"
|
|
231
|
-
[itemActions]="store.itemActions()"
|
|
232
|
-
[selection]="store.selection()"
|
|
233
|
-
[form]="store.form()"
|
|
234
|
-
[childrenKey]="store.tableChildrenKey()"
|
|
235
|
-
[highlight]="store.highlight()"
|
|
236
|
-
[isHidden]="store.tableIsHidden()"
|
|
237
|
-
[treeControl]="store.tableTreeControl()"
|
|
238
|
-
(action)="dispatch($event)"
|
|
239
|
-
/>
|
|
240
|
-
@if (store.form().get(['page'])) {
|
|
241
|
-
@defer {
|
|
242
|
-
<organisms-paginator injectable
|
|
243
|
-
[form]="store.form().get(['page'])"
|
|
244
|
-
[itemLength]="store.itemsLength()"
|
|
245
|
-
[pageSizeOptions]="store.pageSizeOptions()"
|
|
246
|
-
/>
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
</div>
|
|
250
|
-
</frames-divider>
|
|
316
|
+
<organisms-paginator injectable
|
|
317
|
+
[form]="map?.form?.get(['page']) ?? store.form().get(['page'])"
|
|
318
|
+
[itemLength]="map?.itemsLength ?? store.itemsLength()"
|
|
319
|
+
[pageSizeOptions]="map?.pageSizeOptions ?? store.pageSizeOptions()"
|
|
320
|
+
/>
|
|
251
321
|
}
|
|
252
322
|
}
|
|
253
323
|
}
|
|
254
|
-
|
|
255
|
-
</
|
|
256
|
-
`, isInline: true, styles: [":host{width:100%;height:100%;background:#fff;display:block;--navigator-height: 56px;--navigator-height-SCOPED-IN-index-
|
|
257
|
-
|
|
324
|
+
}
|
|
325
|
+
</ng-template>
|
|
326
|
+
`, isInline: true, styles: [":host{width:100%;height:100%;background:#fff;display:block;--navigator-height: 56px;--navigator-height-SCOPED-IN-index-xSSh: var(--navigator-height);--primary-color: #404040;--primary-color-SCOPED-IN-index-xSSh: var(--primary-color);--on-primary-color: #f0f0f0;--on-primary-color-SCOPED-IN-index-xSSh: var(--on-primary-color);--secondary-color: #f0f0f0;--secondary-color-SCOPED-IN-index-xSSh: var(--secondary-color);--surface-color: #f0f0f0;--surface-color-SCOPED-IN-index-xSSh: var(--surface-color);--on-surface-color: #000;--on-surface-color-SCOPED-IN-index-xSSh: var(--on-surface-color);--background-color: #f0f0f0;--background-color-SCOPED-IN-index-xSSh: var(--background-color);--on-background-color: #000;--on-background-color-SCOPED-IN-index-xSSh: var(--on-background-color);--navigator-background-color: var(--primary-color-SCOPED-IN-index-xSSh);--navigator-background-color-SCOPED-IN-index-xSSh: var(--navigator-background-color);--navigator-on-background-color: var(--on-primary-color-SCOPED-IN-index-xSSh);--navigator-on-background-color-SCOPED-IN-index-xSSh: var(--navigator-on-background-color);--table-background-color: var(--background-color-SCOPED-IN-index-xSSh);--table-background-color-SCOPED-IN-index-xSSh: var(--table-background-color);--table-on-background-color: var(--on-background-color-SCOPED-IN-index-xSSh);--table-on-background-color-SCOPED-IN-index-xSSh: var(--table-on-background-color);--first-content-height: 0px;--first-content-height-SCOPED-IN-index-xSSh: var(--first-content-height);--min-first-content-height: 0px;--min-first-content-height-SCOPED-IN-index-xSSh: var(--min-first-content-height);--max-first-content-height: calc(100% - 80px) ;--max-first-content-height-SCOPED-IN-index-xSSh: var(--max-first-content-height)}:host{background-color:var(--background-color-SCOPED-IN-index-xSSh);color:var(--on-background-color-SCOPED-IN-index-xSSh);transition:background-color .5s ease-in-out}:host frames-auto-layout{--gap: 0;--vertical-padding: 0}:host frames-divider{--first-content-height: var(--first-content-height-SCOPED-IN-index-xSSh);--min-first-content-height: var(--min-first-content-height-SCOPED-IN-index-xSSh)}:host organisms-table{--background-color: var(--table-background-color-SCOPED-IN-index-xSSh);--on-background-color: var(--table-on-background-color-SCOPED-IN-index-xSSh)}:host *{--primary-color: var(--primary-color-SCOPED-IN-index-xSSh);--on-primary-color: var(--on-primary-color-SCOPED-IN-index-xSSh);--surface-color: var(--surface-color-SCOPED-IN-index-xSSh);--on-surface-color: var(--on-surface-color-SCOPED-IN-index-xSSh);--background-color: var(--background-color-SCOPED-IN-index-xSSh);--on-background-color: var(--on-background-color-SCOPED-IN-index-xSSh)}:host organisms-navigator{--background-color: var(--navigator-background-color-SCOPED-IN-index-xSSh);--on-background-color: var(--navigator-on-background-color-SCOPED-IN-index-xSSh)}\n"], dependencies: [{ kind: "component", type: AutoLayoutFrame, selector: "frames-auto-layout" }, { kind: "component", type: ScrollFrame, selector: "frames-scroll" }, { kind: "directive", type: TableOrganismStore, selector: "organisms-table", inputs: ["draggable", "form", "itemActions", "selection", "highlight", "childrenKey", "items", "treeControl", "isHidden"] }, { kind: "component", type: ListOrganism, selector: "organisms-list" }, { kind: "component", type: TreeListOrganism, selector: "organisms-tree-list" }, { kind: "directive", type: NavigatorOrganismStore, selector: "organisms-navigator", inputs: ["startActions", "resolvedStartActions", "endActions", "resolvedEndActions", "title"] }, { kind: "directive", type: HeaderMoleculeStore, selector: "molecules-header", inputs: ["title", "description"] }, { kind: "component", type: TextInputFieldMolecule, selector: "molecules-text-input-field" }, { kind: "component", type: VerticalHideFrame, selector: "frames-vertical-hide", inputs: ["mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, deferBlockDependencies: [() => [import("@ng-atomic/components/organisms/chips-input-section").then(m => m.ChipsInputSectionOrganism), DividerFrame,
|
|
327
|
+
NgTemplateOutlet], () => [import("@ng-atomic/components/organisms/grid-toolbar").then(m => m.GridToolbarOrganismStore)], () => [NgTemplateOutlet, import("@ng-atomic/components/frames/tabs").then(m => m.TabsFrame)], () => [GridCardsSectionOrganism], () => [import("@ng-atomic/components/organisms/paginator").then(m => m.PaginatorOrganismStore)]] }); }
|
|
258
328
|
}
|
|
259
329
|
__decorate([
|
|
260
330
|
Effect(TableOrganism.ActionId.HEADER_CLICK),
|
|
@@ -270,14 +340,15 @@ __decorate([
|
|
|
270
340
|
], IndexTemplate.prototype, "onCheckboxClickItem", null);
|
|
271
341
|
__decorate([
|
|
272
342
|
Effect(GridCardsSectionOrganism.ActionId.ITEM_CLICK),
|
|
273
|
-
Effect(
|
|
343
|
+
Effect(ListOrganism.ActionId.CLICK_ITEM),
|
|
344
|
+
Effect(TreeListOrganismStore.ActionId.CLICK_ITEM),
|
|
274
345
|
__metadata("design:type", Function),
|
|
275
346
|
__metadata("design:paramtypes", [Object]),
|
|
276
347
|
__metadata("design:returntype", void 0)
|
|
277
348
|
], IndexTemplate.prototype, "onItemClicked", null);
|
|
278
349
|
__decorate([
|
|
279
350
|
Effect(GridCardsSectionOrganism.ActionId.ITEM_MENU_CLICK),
|
|
280
|
-
Effect(
|
|
351
|
+
Effect(ListOrganism.ActionId.ITEM_BUTTON_CLICK),
|
|
281
352
|
__metadata("design:type", Function),
|
|
282
353
|
__metadata("design:paramtypes", [Object]),
|
|
283
354
|
__metadata("design:returntype", void 0)
|
|
@@ -294,10 +365,9 @@ __decorate([
|
|
|
294
365
|
__metadata("design:paramtypes", []),
|
|
295
366
|
__metadata("design:returntype", void 0)
|
|
296
367
|
], IndexTemplate.prototype, "back", null);
|
|
297
|
-
i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "18.1.2", ngImport: i0, type: IndexTemplate, resolveDeferredDeps: () => [import("@ng-atomic/components/organisms/chips-input-section").then(m => m.ChipsInputSectionOrganism), import("@ng-atomic/components/organisms/grid-toolbar").then(m => m.GridToolbarOrganismStore), import("@ng-atomic/components/organisms/paginator").then(m => m.PaginatorOrganismStore)], resolveMetadata: (ChipsInputSectionOrganism, GridToolbarOrganismStore, PaginatorOrganismStore) => ({ decorators: [{
|
|
368
|
+
i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "18.1.2", ngImport: i0, type: IndexTemplate, resolveDeferredDeps: () => [import("@ng-atomic/components/organisms/chips-input-section").then(m => m.ChipsInputSectionOrganism), import("@ng-atomic/components/organisms/grid-toolbar").then(m => m.GridToolbarOrganismStore), import("@ng-atomic/components/frames/tabs").then(m => m.TabsFrame), import("@ng-atomic/components/organisms/paginator").then(m => m.PaginatorOrganismStore)], resolveMetadata: (ChipsInputSectionOrganism, GridToolbarOrganismStore, TabsFrame, PaginatorOrganismStore) => ({ decorators: [{
|
|
298
369
|
type: Component,
|
|
299
370
|
args: [{ standalone: true, imports: [
|
|
300
|
-
DataAccessorPipe,
|
|
301
371
|
AutoLayoutFrame,
|
|
302
372
|
ChipsInputSectionOrganism,
|
|
303
373
|
ScrollFrame,
|
|
@@ -305,89 +375,136 @@ i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "18.1.2", ng
|
|
|
305
375
|
GridToolbarOrganismStore,
|
|
306
376
|
PaginatorOrganismStore,
|
|
307
377
|
TableOrganismStore,
|
|
308
|
-
|
|
378
|
+
ListOrganism,
|
|
379
|
+
TreeListOrganism,
|
|
309
380
|
GridCardsSectionOrganism,
|
|
310
|
-
SelectionListOrganism,
|
|
311
381
|
NavigatorOrganismStore,
|
|
312
|
-
FiltersSectionOrganism,
|
|
313
382
|
HeaderMoleculeStore,
|
|
314
|
-
|
|
383
|
+
NgTemplateOutlet,
|
|
384
|
+
TabsFrame,
|
|
385
|
+
TextInputFieldMolecule,
|
|
386
|
+
VerticalHideFrame,
|
|
315
387
|
], selector: 'templates-index', template: `
|
|
316
388
|
<frames-scroll>
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
389
|
+
<frames-vertical-hide [mode]="store.navMode()" top>
|
|
390
|
+
<organisms-navigator injectable
|
|
391
|
+
[startActions]="store.navStartActions()"
|
|
392
|
+
[endActions]="store.navEndActions()"
|
|
393
|
+
(action)="dispatch($event)"
|
|
394
|
+
top
|
|
395
|
+
>
|
|
396
|
+
@if (store.titleEditable()) {
|
|
397
|
+
<molecules-text-input-field
|
|
398
|
+
[label]="'title'"
|
|
399
|
+
[placeholder]="'title'"
|
|
400
|
+
[control]="store.titleControl()"
|
|
401
|
+
[appearance]="'fill'"
|
|
402
|
+
/>
|
|
403
|
+
} @else {
|
|
404
|
+
<molecules-header injectable [title]="store.title()" [description]="store.description()"/>
|
|
405
|
+
}
|
|
406
|
+
</organisms-navigator>
|
|
407
|
+
<div class="dashboard">
|
|
408
|
+
<ng-content first select="[navDashboard]" />
|
|
409
|
+
</div>
|
|
410
|
+
</frames-vertical-hide>
|
|
411
|
+
<frames-auto-layout [type]="'vertical'" contents>
|
|
412
|
+
@defer {
|
|
413
|
+
<frames-divider>
|
|
414
|
+
<ng-content first select="[dashboard]" />
|
|
415
|
+
<div style="display: flex; flex-direction: column; width: 100%; height: 100%;" second>
|
|
416
|
+
@if (store.gridToolbarActions() || true) {
|
|
417
|
+
@defer {
|
|
418
|
+
<organisms-grid-toolbar injectable
|
|
419
|
+
[actions]="store.gridToolbarActions()"
|
|
420
|
+
(action)="dispatch($event)"
|
|
421
|
+
/>
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
@if (store.form().get(['query'])) {
|
|
425
|
+
<organisms-chips-input-section
|
|
426
|
+
[control]="store.form().get(['query'])"
|
|
427
|
+
[label]="store.queryLabel()"
|
|
428
|
+
/>
|
|
429
|
+
}
|
|
430
|
+
@if (store.itemsMapKeys().length > 1) {
|
|
431
|
+
@defer {
|
|
432
|
+
<frames-tabs [labels]="store.itemsMapKeys()">
|
|
433
|
+
@for (key of store.itemsMapKeys(); track key;) {
|
|
434
|
+
<ng-template #tab>
|
|
435
|
+
<ng-container *ngTemplateOutlet="items; context: {map: store.itemsMap()[key]}"/>
|
|
436
|
+
</ng-template>
|
|
437
|
+
}
|
|
438
|
+
</frames-tabs>
|
|
439
|
+
}
|
|
440
|
+
} @else if(store.itemsMapKeys().length === 1) {
|
|
441
|
+
<ng-container *ngTemplateOutlet="items; context: {map: store.itemsMap()[store.itemsMapKeys()[0]]}"/>
|
|
442
|
+
} @else {
|
|
443
|
+
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
</div>
|
|
447
|
+
</frames-divider>
|
|
448
|
+
}
|
|
449
|
+
</frames-auto-layout>
|
|
450
|
+
</frames-scroll>
|
|
451
|
+
|
|
452
|
+
<ng-template #items let-map="map">
|
|
453
|
+
<!-- <div>
|
|
454
|
+
json: {{ map | json }}
|
|
455
|
+
</div> -->
|
|
456
|
+
@switch(map?.type ?? store.type()) {
|
|
457
|
+
@case('list') {
|
|
458
|
+
@if (map.childrenKey) {
|
|
459
|
+
<organisms-tree-list
|
|
460
|
+
[items]="map?.items ?? []"
|
|
461
|
+
[childrenKey]="map?.childrenKey ?? store.childrenKey()"
|
|
462
|
+
[treeControl]="map?.treeControl ?? store.tableTreeControl()"
|
|
463
|
+
(action)="dispatch($event)"
|
|
464
|
+
/>
|
|
465
|
+
} @else {
|
|
466
|
+
<organisms-list
|
|
467
|
+
[items]="map?.items ?? []"
|
|
468
|
+
[itemActions]="map?.itemActions ?? store.itemActions()"
|
|
469
|
+
[groupedBy]="map?.groupedBy ?? store.groupedBy()"
|
|
470
|
+
[groupKeys]="map?.groupKeys ?? store.groupKeys()"
|
|
333
471
|
(action)="dispatch($event)"
|
|
334
472
|
/>
|
|
335
473
|
}
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
474
|
+
}
|
|
475
|
+
@case ('grid') {
|
|
476
|
+
@defer {
|
|
477
|
+
<organisms-grid-cards-section
|
|
478
|
+
[items]="map?.items ?? []"
|
|
479
|
+
(action)="dispatch($event)"
|
|
480
|
+
contents
|
|
481
|
+
/>
|
|
344
482
|
}
|
|
345
|
-
|
|
483
|
+
}
|
|
484
|
+
@default {
|
|
485
|
+
<organisms-table injectable
|
|
486
|
+
[items]="map?.items ?? []"
|
|
487
|
+
[itemActions]="map?.itemActions ?? store.itemActions()"
|
|
488
|
+
[selection]="map?.selection ?? store.selection()"
|
|
489
|
+
[form]="map?.form ?? store.form()"
|
|
490
|
+
[childrenKey]="map?.childrenKey ?? store.tableChildrenKey()"
|
|
491
|
+
[highlight]="map?.highlight ?? store.highlight()"
|
|
492
|
+
[isHidden]="map?.tableIsHidden ?? store.tableIsHidden()"
|
|
493
|
+
[treeControl]="map?.treeControl ?? store.tableTreeControl()"
|
|
494
|
+
(action)="dispatch($event)"
|
|
495
|
+
/>
|
|
496
|
+
@if (map?.form?.get(['page']) ?? store.form().get(['page'])) {
|
|
346
497
|
@defer {
|
|
347
|
-
<
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
<organisms-grid-toolbar injectable
|
|
353
|
-
[actions]="store.gridToolbarActions()"
|
|
354
|
-
(action)="dispatch($event)"
|
|
355
|
-
/>
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
@if (store.form().get(['query'])) {
|
|
359
|
-
<organisms-chips-input-section
|
|
360
|
-
[control]="store.form().get(['query'])"
|
|
361
|
-
[label]="store.queryLabel()"
|
|
362
|
-
/>
|
|
363
|
-
}
|
|
364
|
-
<organisms-table injectable
|
|
365
|
-
[items]="store.items()"
|
|
366
|
-
[itemActions]="store.itemActions()"
|
|
367
|
-
[selection]="store.selection()"
|
|
368
|
-
[form]="store.form()"
|
|
369
|
-
[childrenKey]="store.tableChildrenKey()"
|
|
370
|
-
[highlight]="store.highlight()"
|
|
371
|
-
[isHidden]="store.tableIsHidden()"
|
|
372
|
-
[treeControl]="store.tableTreeControl()"
|
|
373
|
-
(action)="dispatch($event)"
|
|
374
|
-
/>
|
|
375
|
-
@if (store.form().get(['page'])) {
|
|
376
|
-
@defer {
|
|
377
|
-
<organisms-paginator injectable
|
|
378
|
-
[form]="store.form().get(['page'])"
|
|
379
|
-
[itemLength]="store.itemsLength()"
|
|
380
|
-
[pageSizeOptions]="store.pageSizeOptions()"
|
|
381
|
-
/>
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
</div>
|
|
385
|
-
</frames-divider>
|
|
498
|
+
<organisms-paginator injectable
|
|
499
|
+
[form]="map?.form?.get(['page']) ?? store.form().get(['page'])"
|
|
500
|
+
[itemLength]="map?.itemsLength ?? store.itemsLength()"
|
|
501
|
+
[pageSizeOptions]="map?.pageSizeOptions ?? store.pageSizeOptions()"
|
|
502
|
+
/>
|
|
386
503
|
}
|
|
387
504
|
}
|
|
388
505
|
}
|
|
389
|
-
|
|
390
|
-
</
|
|
506
|
+
}
|
|
507
|
+
</ng-template>
|
|
391
508
|
`, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'template' }, hostDirectives: [
|
|
392
509
|
{
|
|
393
510
|
directive: IndexTemplateStore,
|
|
@@ -398,12 +515,16 @@ i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "18.1.2", ng
|
|
|
398
515
|
'tableTreeControl',
|
|
399
516
|
'form',
|
|
400
517
|
'title',
|
|
518
|
+
'titleControl',
|
|
519
|
+
'titleEditable',
|
|
401
520
|
'description',
|
|
402
521
|
'items',
|
|
522
|
+
'itemsMap',
|
|
403
523
|
'itemsLength',
|
|
404
524
|
'itemActions',
|
|
405
525
|
'navStartActions',
|
|
406
526
|
'navEndActions',
|
|
527
|
+
'navMode',
|
|
407
528
|
'groupedBy',
|
|
408
529
|
'groupKeys',
|
|
409
530
|
'selection',
|
|
@@ -416,6 +537,6 @@ i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "18.1.2", ng
|
|
|
416
537
|
}
|
|
417
538
|
], providers: [
|
|
418
539
|
QueryResolverService,
|
|
419
|
-
], styles: [":host{width:100%;height:100%;background:#fff;display:block;--navigator-height: 56px;--navigator-height-SCOPED-IN-index-
|
|
540
|
+
], styles: [":host{width:100%;height:100%;background:#fff;display:block;--navigator-height: 56px;--navigator-height-SCOPED-IN-index-xSSh: var(--navigator-height);--primary-color: #404040;--primary-color-SCOPED-IN-index-xSSh: var(--primary-color);--on-primary-color: #f0f0f0;--on-primary-color-SCOPED-IN-index-xSSh: var(--on-primary-color);--secondary-color: #f0f0f0;--secondary-color-SCOPED-IN-index-xSSh: var(--secondary-color);--surface-color: #f0f0f0;--surface-color-SCOPED-IN-index-xSSh: var(--surface-color);--on-surface-color: #000;--on-surface-color-SCOPED-IN-index-xSSh: var(--on-surface-color);--background-color: #f0f0f0;--background-color-SCOPED-IN-index-xSSh: var(--background-color);--on-background-color: #000;--on-background-color-SCOPED-IN-index-xSSh: var(--on-background-color);--navigator-background-color: var(--primary-color-SCOPED-IN-index-xSSh);--navigator-background-color-SCOPED-IN-index-xSSh: var(--navigator-background-color);--navigator-on-background-color: var(--on-primary-color-SCOPED-IN-index-xSSh);--navigator-on-background-color-SCOPED-IN-index-xSSh: var(--navigator-on-background-color);--table-background-color: var(--background-color-SCOPED-IN-index-xSSh);--table-background-color-SCOPED-IN-index-xSSh: var(--table-background-color);--table-on-background-color: var(--on-background-color-SCOPED-IN-index-xSSh);--table-on-background-color-SCOPED-IN-index-xSSh: var(--table-on-background-color);--first-content-height: 0px;--first-content-height-SCOPED-IN-index-xSSh: var(--first-content-height);--min-first-content-height: 0px;--min-first-content-height-SCOPED-IN-index-xSSh: var(--min-first-content-height);--max-first-content-height: calc(100% - 80px) ;--max-first-content-height-SCOPED-IN-index-xSSh: var(--max-first-content-height)}:host{background-color:var(--background-color-SCOPED-IN-index-xSSh);color:var(--on-background-color-SCOPED-IN-index-xSSh);transition:background-color .5s ease-in-out}:host frames-auto-layout{--gap: 0;--vertical-padding: 0}:host frames-divider{--first-content-height: var(--first-content-height-SCOPED-IN-index-xSSh);--min-first-content-height: var(--min-first-content-height-SCOPED-IN-index-xSSh)}:host organisms-table{--background-color: var(--table-background-color-SCOPED-IN-index-xSSh);--on-background-color: var(--table-on-background-color-SCOPED-IN-index-xSSh)}:host *{--primary-color: var(--primary-color-SCOPED-IN-index-xSSh);--on-primary-color: var(--on-primary-color-SCOPED-IN-index-xSSh);--surface-color: var(--surface-color-SCOPED-IN-index-xSSh);--on-surface-color: var(--on-surface-color-SCOPED-IN-index-xSSh);--background-color: var(--background-color-SCOPED-IN-index-xSSh);--on-background-color: var(--on-background-color-SCOPED-IN-index-xSSh)}:host organisms-navigator{--background-color: var(--navigator-background-color-SCOPED-IN-index-xSSh);--on-background-color: var(--navigator-on-background-color-SCOPED-IN-index-xSSh)}\n"] }]
|
|
420
541
|
}], ctorParameters: null, propDecorators: { onTableHeaderClick: [], onCheckboxClickItem: [], onItemClicked: [], onItemButtonClicked: [], onHeaderCheckboxClick: [], back: [] } }) });
|
|
421
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbXBvbmVudHMvc3JjL2xpYi90ZW1wbGF0ZXMvX2luZGV4L2luZGV4LnRlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUVuRixPQUFPLEVBQW1CLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDekYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN2RixPQUFPLEVBQUUsTUFBTSxFQUFF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NEJBQ3RCLGtCQUFrQjs0QkFDbEIsaUJBQWlCOzRCQUNqQix3QkFBd0I7NEJBQ3hCLHFCQUFxQjs0QkFDckIsc0JBQXNCOzRCQUN0QixzQkFBc0I7NEJBQ3RCLG1CQUFtQjs0QkFDbkIsVUFBVTt5QkFDWCxZQUNTLGlCQUFpQixZQUNqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRFVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTSxRQUN6QyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsa0JBQ1g7NEJBQ2Q7Z0NBQ0UsU0FBUyxFQUFFLGtCQUFrQjtnQ0FDN0IsTUFBTSxFQUFFO29DQUNOLG9CQUFvQjtvQ0FDcEIsa0JBQWtCO29DQUNsQixlQUFlO29DQUNmLGtCQUFrQjtvQ0FDbEIsTUFBTTtvQ0FDTixPQUFPO29DQUNQLGFBQWE7b0NBQ2IsT0FBTztvQ0FDUCxhQUFhO29DQUNiLGFBQWE7b0NBQ2IsaUJBQWlCO29DQUNqQixlQUFlO29DQUNmLFdBQVc7b0NBQ1gsV0FBVztvQ0FDWCxXQUFXO29DQUNYLGlCQUFpQjtvQ0FDakIsTUFBTTtvQ0FDTixXQUFXO29DQUNYLFlBQVk7aUNBQ2I7Z0NBQ0QsT0FBTyxFQUFFLEVBQUU7NkJBQ1o7eUJBQ0YsYUFDVTs0QkFDVCxvQkFBb0I7eUJBQ3JCO3dEQVVTLGtCQUFrQixNQUtsQixtQkFBbUIsTUFNbkIsYUFBYSxNQU1iLG1CQUFtQixNQUtuQixxQkFBcUIsTUFLckIsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIERpcmVjdGl2ZSwgUExBVEZPUk1fSUQsIGluamVjdCwgaW5wdXQsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybVNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBdXRvTGF5b3V0RnJhbWUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvZnJhbWVzL2F1dG8tbGF5b3V0JztcbmltcG9ydCB7IFNjcm9sbEZyYW1lIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL2ZyYW1lcy9zY3JvbGwnO1xuaW1wb3J0IHsgSGVhZGVyTW9sZWN1bGVTdG9yZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9tb2xlY3VsZXMvaGVhZGVyJztcbmltcG9ydCB7IFRhYmxlT3JnYW5pc20sIFRhYmxlT3JnYW5pc21TdG9yZSwgaW5qZWN0SW5kZXhGb3JtIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy90YWJsZSc7XG5pbXBvcnQgeyBTbWFydExpc3RPcmdhbmlzbSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvc21hcnQtbGlzdCc7XG5pbXBvcnQgeyBOYXZpZ2F0b3JPcmdhbmlzbVN0b3JlIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy9uYXZpZ2F0b3InO1xuaW1wb3J0IHsgUGFnaW5hdG9yT3JnYW5pc21TdG9yZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvcGFnaW5hdG9yJztcbmltcG9ydCB7IEFjdGlvbiwgQWN0aW9ucywgSW5qZWN0YWJsZUNvbXBvbmVudCwgVG9rZW5pemVkVHlwZSwgX2NvbXB1dGVkLCBjb21wdXRlRmFrZSB9IGZyb20gJ0BuZy1hdG9taWMvY29yZSc7XG5pbXBvcnQgeyBHcmlkVG9vbGJhck9yZ2FuaXNtU3RvcmUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL2dyaWQtdG9vbGJhcic7XG5pbXBvcnQgeyBGaWx0ZXJzU2VjdGlvbk9yZ2FuaXNtIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy9maWx0ZXJzLXNlY3Rpb24nO1xuaW1wb3J0IHsgRGl2aWRlckZyYW1lIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL2ZyYW1lcy9kaXZpZGVyJztcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IFNlbGVjdGlvbkxpc3RPcmdhbmlzbSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvc2VsZWN0aW9uLWxpc3QnO1xuaW1wb3J0IHsgRWZmZWN0LCBOZ0F0b21pY0NvbXBvbmVudCB9IGZyb20gJ0BuZy1hdG9taWMvY29yZSc7XG5pbXBvcnQgeyBRdWVyeVJlc29sdmVyU2VydmljZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL3F1ZXJ5LXJlc29sdmVyJztcbmltcG9ydCB7IE5hdkFjdGlvbklkLCBVSUNvbnRleHQsIGNhbGwsIGluamVjdE5hdlN0YXJ0QWN0aW9ucywgbWFrZUNvbmZpZyB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL3VpJztcbmltcG9ydCB7IEluZGV4UGlwZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3BpcGVzL2luZGV4JztcbmltcG9ydCB7IEluZGV4TGVuZ3RoUGlwZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3BpcGVzL2luZGV4LWxlbmd0aCc7XG5pbXBvcnQgeyBTb3J0QnlQaXBlIH0gZnJvbSAnQG5nLWF0b21pYy9jb21tb24vcGlwZXMvc29ydC1ieSc7XG5pbXBvcnQgeyBHcmlkQ2FyZHNTZWN0aW9uT3JnYW5pc20gfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL2dyaWQtY2FyZHMtc2VjdGlvbic7XG5pbXBvcnQgeyBpbmplY3RNb2RlbE5hbWUgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9waXBlcy9kb21haW4nO1xuaW1wb3J0IHsgRGF0YUFjY2Vzc29yUGlwZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3BpcGVzL2RhdGEtYWNjZXNzb3InO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29tcHV0ZWRSYXdWYWx1ZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3V0aWxzJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IENoaXBzSW5wdXRTZWN0aW9uT3JnYW5pc20gfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL2NoaXBzLWlucHV0LXNlY3Rpb24nO1xuaW1wb3J0IHsgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xuXG5leHBvcnQgZW51bSBBY3Rpb25JZCB7XG4gIEJBQ0sgPSAnW0BuZy1hdG9taWMvY29tcG9uZW50cy90ZW1wbGF0ZXMvaW5kZXhdIEJhY2snLFxuICBUQUJMRV9IRUFERVJfQ0xJQ0sgPSAnW0BuZy1hdG9taWMvY29tcG9uZW50cy90ZW1wbGF0ZXMvaW5kZXhdIFRhYmxlIEhlYWRlciBDbGljaycsXG4gIFRBQkxFX0hFQURFUl9DSEVDS0JPWF9DTElDSyA9ICdbQG5nLWF0b21pYy9jb21wb25lbnRzL3RlbXBsYXRlcy9pbmRleF0gVGFibGUgSGVhZGVyIENoZWNrYm94IENsaWNrJyxcbiAgVEFCTEVfQ0hFQ0tCT1hfQ0xJQ0sgPSAnW0BuZy1hdG9taWMvY29tcG9uZW50cy90ZW1wbGF0ZXMvaW5kZXhdIFRhYmxlIENoZWNrYm94IENsaWNrJyxcbiAgSVRFTV9DTElDSyA9ICdbQG5nLWF0b21pYy9jb21wb25lbnRzL3RlbXBsYXRlcy9pbmRleF0gSXRlbSBDbGljaycsXG4gIERFVEFJTCA9ICdbQG5nLWF0b21pYy9jb21wb25lbnRzL3RlbXBsYXRlcy9pbmRleF0gRGV0YWlsJyxcbiAgTElTVF9JVEVNX0JVVFRPTl9DTElDS0VEID0gJ1tAbmctYXRvbWljL2NvbXBvbmVudHMvdGVtcGxhdGVzL2luZGV4XSBMaXN0IEl0ZW0gQnV0dG9uIENsaWNrZWQnLFxuICBUT0dHTEVfVFlQRSA9ICdbQG5nLWF0b21pYy9jb21wb25lbnRzL3RlbXBsYXRlcy9pbmRleF0gVG9nZ2xlIFR5cGUnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZGV4VGVtcGxhdGVDb25maWc8VCBleHRlbmRzIHtpZDogc3RyaW5nfSA9IGFueT4ge1xuICBmb3JtOiBGb3JtR3JvdXA7XG4gIGdyaWRUb29sYmFyQWN0aW9uczogQWN0aW9uW107XG4gIG5hdlN0YXJ0QWN0aW9uczogQWN0aW9ucztcbiAgbmF2RW5kQWN0aW9uczogQWN0aW9ucztcbiAgaXRlbUFjdGlvbnM6IEFjdGlvbnM7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGl0ZW1zOiBUW11cbiAgdGFibGVDaGlsZHJlbktleToga2V5b2YgVDtcbiAgZ3JvdXBlZEJ5OiBrZXlvZiBUIHwgbnVsbDtcbiAgZ3JvdXBLZXlzOiBzdHJpbmdbXTtcbiAgdHlwZTogJ2xpc3QnIHwgJ3RhYmxlJyB8ICdncmlkJztcbiAgdG9nZ2xlQWN0aW9uczogQWN0aW9ucztcbiAgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXTtcbiAgd2lkdGg6IHN0cmluZztcbiAgc2VsZWN0aW9uOiBTZWxlY3Rpb25Nb2RlbDxzdHJpbmc+O1xuICBoaWdobGlnaHQ6IFNlbGVjdGlvbk1vZGVsPHN0cmluZz47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUeXBlKGNvbnRleHQ6IFVJQ29udGV4dCkge1xuICBzd2l0Y2ggKGNvbnRleHQuYnJlYWtwb2ludCkge1xuICAgIGNhc2UgJ3hTbWFsbCc6IHJldHVybiAnbGlzdCc7XG4gICAgY2FzZSAnc21hbGwnOiByZXR1cm4gJ3RhYmxlJztcbiAgICBjYXNlICdtZWRpdW0nOiByZXR1cm4gJ3RhYmxlJztcbiAgICBjYXNlICdsYXJnZSc6IHJldHVybiAndGFibGUnO1xuICAgIGNhc2UgJ3hMYXJnZSc6IHJldHVybiAndGFibGUnO1xuICAgIGRlZmF1bHQ6IHJldHVybiAndGFibGUnO1xuICB9XG59XG5cbkBUb2tlbml6ZWRUeXBlKClcbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3RlbXBsYXRlcy1pbmRleCcsXG4gIHByb3ZpZGVyczogW1xuICAgIEluZGV4UGlwZSxcbiAgICBJbmRleExlbmd0aFBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEluZGV4VGVtcGxhdGVTdG9yZTxUIGV4dGVuZHMge2lkOiBzdHJpbmd9PiBleHRlbmRzIEluamVjdGFibGVDb21wb25lbnQge1xuICBzdGF0aWMgcmVhZG9ubHkgQWN0aW9uSWQgPSBBY3Rpb25JZDtcbiAgc3RhdGljIHJlYWRvbmx5IENvbmZpZyA9IG1ha2VDb25maWcoKCkgPT4ge1xuICAgIGNvbnN0IG1vZGVsTmFtZSA9IGluamVjdE1vZGVsTmFtZSgpO1xuICAgIGZ1bmN0aW9uIGdldFdpZHRoKGNvbnRleHQ6IFVJQ29udGV4dCkge1xuICAgICAgc3dpdGNoIChjb250ZXh0LmJyZWFrcG9pbnQpIHtcbiAgICAgICAgY2FzZSAneFNtYWxsJzogcmV0dXJuICd2YXIoLS1wYWdlLXdpZHRoLWx2MSknXG4gICAgICAgIGNhc2UgJ3NtYWxsJzpcbiAgICAgICAgY2FzZSAnbWVkaXVtJzpcbiAgICAgICAgY2FzZSAnbGFyZ2UnOlxuICAgICAgICBjYXNlICd4TGFyZ2UnOlxuICAgICAgICBkZWZhdWx0OiByZXR1cm4gJ3ZhcigtLXBhZ2Utd2lkdGgtbHYyKSc7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGZvcm0gPSBpbmplY3RJbmRleEZvcm0oKTtcbiAgICBjb25zdCBuYXZTdGFydEFjdGlvbnMgPSBpbmplY3ROYXZTdGFydEFjdGlvbnMoKTtcbiAgXG4gICAgcmV0dXJuICgpID0+ICh7XG4gICAgICBmb3JtLFxuICAgICAgdG9nZ2xlQWN0aW9uczogW1xuICAgICAgICB7IGlkOiBBY3Rpb25JZC5UT0dHTEVfVFlQRSwgaWNvbjogJ2dyaWRfdmlldycsIHBheWxvYWQ6ICdncmlkJyB9LFxuICAgICAgICB7IGlkOiBBY3Rpb25JZC5UT0dHTEVfVFlQRSwgaWNvbjogJ2xpc3QnLCBwYXlsb2FkOiAnbGlzdCcgfSxcbiAgICAgICAgeyBpZDogQWN0aW9uSWQuVE9HR0xFX1RZUEUsIGljb246ICd0YWJsZScsIHBheWxvYWQ6ICd0YWJsZScgfSxcbiAgICAgIF0gYXMgQWN0aW9uW10sXG4gICAgICBncmlkVG9vbGJhckFjdGlvbnM6IFtdIGFzIEFjdGlvbltdLFxuICAgICAgdGFibGVDaGlsZHJlbktleTogbnVsbCBhcyBzdHJpbmcsXG4gICAgICB0YWJsZUlzSGlkZGVuOiAoaXRlbTogYW55KSA9PiBmYWxzZSxcbiAgICAgIHRhYmxlVHJlZUNvbnRyb2w6IG5ldyBGbGF0VHJlZUNvbnRyb2w8YW55PihuID0+IG4ubGV2ZWwsIG4gPT4gbi5pc0V4cGFuZGFibGUpLFxuICAgICAgaXRlbUFjdGlvbnM6IChpdGVtKSA9PiBbe2lkOiBBY3Rpb25JZC5ERVRBSUwsIGljb246ICdvcGVuX2luX25ldycsIHBheWxvYWQ6IGl0ZW19XSxcbiAgICAgIGl0ZW1zOiBbXSxcbiAgICAgIGl0ZW1zTGVuZ3RoOiAwLFxuICAgICAgdGl0bGU6IGAke21vZGVsTmFtZSgpfeS4gOimp2AsXG4gICAgICBkZXNjcmlwdGlvbjogYGAsXG4gICAgICBuYXZTdGFydEFjdGlvbnM6IG5hdlN0YXJ0QWN0aW9ucygpLFxuICAgICAgbmF2RW5kQWN0aW9uczogW10sXG4gICAgICBncm91cGVkQnk6IG51bGwsXG4gICAgICBncm91cEtleXM6IFtdLFxuICAgICAgdHlwZTogPCd0YWJsZScgfCAnbGlzdCcgfCAnZ3JpZCc+J3RhYmxlJyxcbiAgICAgIHBhZ2VTaXplT3B0aW9uczogWzUsIDEwLCAyNSwgMTAwXSxcbiAgICAgIHNlbGVjdGlvbjogbmV3IFNlbGVjdGlvbk1vZGVsPHN0cmluZz4odHJ1ZSwgW10pLFxuICAgICAgaGlnaGxpZ2h0OiBuZXcgU2VsZWN0aW9uTW9kZWw8c3RyaW5nPih0cnVlLCBbXSksXG4gICAgICBxdWVyeUxhYmVsOiAn44OV44Kj44Or44K/44O8JyxcbiAgICB9KTtcbiAgfSwgWydjb21wb25lbnRzJywgJ3RlbXBsYXRlcycsICdpbmRleCddKTtcbiAgc3RhdGljIHByb3ZpZGVUeXBlQ29uZmlnKCkge1xuICAgIHJldHVybiBJbmRleFRlbXBsYXRlU3RvcmUuQ29uZmlnLnByb3ZpZGUoKCkgPT4ge1xuICAgICAgcmV0dXJuIChjb25maWcsIGNvbnRleHQpID0+ICh7XG4gICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgdHlwZTogZ2V0VHlwZShjb250ZXh0KSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcmVhZG9ubHkgY29uZmlnID0gSW5kZXhUZW1wbGF0ZVN0b3JlLkNvbmZpZy5pbmplY3QoKTtcbiAgcmVhZG9ubHkgaXNQbGF0Zm9ybVNlcnZlciA9IGlzUGxhdGZvcm1TZXJ2ZXIoaW5qZWN0KFBMQVRGT1JNX0lEKSk7XG4gIHJlYWRvbmx5IGZvcm0gPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS5mb3JtKSk7XG4gIHJlYWRvbmx5IGdyaWRUb29sYmFyQWN0aW9ucyA9IGlucHV0KF9jb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLmdyaWRUb29sYmFyQWN0aW9ucykpO1xuICByZWFkb25seSB0b2dnbGVBY3Rpb25zID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkudG9nZ2xlQWN0aW9ucykpO1xuICByZWFkb25seSB0YWJsZUNoaWxkcmVuS2V5ID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkudGFibGVDaGlsZHJlbktleSkpO1xuICByZWFkb25seSB0YWJsZUlzSGlkZGVuID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkudGFibGVJc0hpZGRlbikpO1xuICByZWFkb25seSB0YWJsZVRyZWVDb250cm9sID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkudGFibGVUcmVlQ29udHJvbCkpO1xuICByZWFkb25seSBpdGVtQWN0aW9ucyA9IGlucHV0KF9jb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLml0ZW1BY3Rpb25zKSk7XG4gIHJlYWRvbmx5IHRpdGxlID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkudGl0bGUpKTtcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24gPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS5kZXNjcmlwdGlvbikpO1xuICByZWFkb25seSBpdGVtcyA9IGlucHV0PFRbXT4oX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkuaXRlbXMpKTtcbiAgcmVhZG9ubHkgaXRlbXNMZW5ndGggPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS5pdGVtc0xlbmd0aCkpO1xuICByZWFkb25seSBuYXZTdGFydEFjdGlvbnMgPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS5uYXZTdGFydEFjdGlvbnMpKTtcbiAgcmVhZG9ubHkgbmF2RW5kQWN0aW9ucyA9IGlucHV0KF9jb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLm5hdkVuZEFjdGlvbnMpKTtcbiAgcmVhZG9ubHkgZ3JvdXBlZEJ5ID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkuZ3JvdXBlZEJ5KSk7XG4gIHJlYWRvbmx5IGdyb3VwS2V5cyA9IGlucHV0KF9jb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLmdyb3VwS2V5cykpO1xuICByZWFkb25seSBwYWdlU2l6ZU9wdGlvbnMgPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS5wYWdlU2l6ZU9wdGlvbnMpKTtcbiAgcmVhZG9ubHkgdHlwZSA9IGlucHV0KF9jb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLnR5cGUpKTtcbiAgcmVhZG9ubHkgc2VsZWN0aW9uID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkuc2VsZWN0aW9uKSk7XG4gIHJlYWRvbmx5IGhpZ2hsaWdodCA9IGlucHV0KF9jb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLmhpZ2hsaWdodCkpO1xuICByZWFkb25seSBxdWVyeUxhYmVsID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkucXVlcnlMYWJlbCkpO1xuICByZWFkb25seSBmb3JtJCA9IHRvT2JzZXJ2YWJsZShjb21wdXRlRmFrZSh0aGlzLmZvcm0pKTtcbiAgcmVhZG9ubHkgZm9ybVZhbHVlID0gY29tcHV0ZWRSYXdWYWx1ZSgoKSA9PiBjYWxsKHRoaXMuZm9ybSgpKSk7XG4gIHJlYWRvbmx5IHBpcGVzID0geyBpbmRleDogaW5qZWN0KEluZGV4UGlwZSksIGluZGV4TGVuZ3RoOiBpbmplY3QoSW5kZXhMZW5ndGhQaXBlKX07XG4gIC8vIHJlYWRvbmx5IGl0ZW1zU2l6ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGlwZXMuaW5kZXhMZW5ndGgudHJhbnNmb3JtKHRoaXMuaXRlbXMoKSwgdGhpcy5mb3JtVmFsdWUoKSBhcyBhbnkpKTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBEYXRhQWNjZXNzb3JQaXBlLFxuICAgIEF1dG9MYXlvdXRGcmFtZSxcbiAgICBDaGlwc0lucHV0U2VjdGlvbk9yZ2FuaXNtLFxuICAgIFNjcm9sbEZyYW1lLFxuICAgIERpdmlkZXJGcmFtZSxcbiAgICBHcmlkVG9vbGJhck9yZ2FuaXNtU3RvcmUsXG4gICAgUGFnaW5hdG9yT3JnYW5pc21TdG9yZSxcbiAgICBUYWJsZU9yZ2FuaXNtU3RvcmUsXG4gICAgU21hcnRMaXN0T3JnYW5pc20sXG4gICAgR3JpZENhcmRzU2VjdGlvbk9yZ2FuaXNtLFxuICAgIFNlbGVjdGlvbkxpc3RPcmdhbmlzbSxcbiAgICBOYXZpZ2F0b3JPcmdhbmlzbVN0b3JlLFxuICAgIEZpbHRlcnNTZWN0aW9uT3JnYW5pc20sXG4gICAgSGVhZGVyTW9sZWN1bGVTdG9yZSxcbiAgICBTb3J0QnlQaXBlLFxuICBdLFxuICBzZWxlY3RvcjogJ3RlbXBsYXRlcy1pbmRleCcsXG4gIHRlbXBsYXRlOiBgXG4gIDxmcmFtZXMtc2Nyb2xsPlxuICAgIDxvcmdhbmlzbXMtbmF2aWdhdG9yIGluamVjdGFibGVcbiAgICAgIFtzdGFydEFjdGlvbnNdPVwic3RvcmUubmF2U3RhcnRBY3Rpb25zKClcIlxuICAgICAgW2VuZEFjdGlvbnNdPVwic3RvcmUubmF2RW5kQWN0aW9ucygpXCJcbiAgICAgIChhY3Rpb24pPVwiZGlzcGF0Y2goJGV2ZW50KVwiXG4gICAgICBuYXZpZ2F0b3JcbiAgICA+XG4gICAgICA8bW9sZWN1bGVzLWhlYWRlciBpbmplY3RhYmxlIFt0aXRsZV09XCJzdG9yZS50aXRsZSgpXCIgW2Rlc2NyaXB0aW9uXT1cInN0b3JlLmRlc2NyaXB0aW9uKClcIi8+XG4gICAgPC9vcmdhbmlzbXMtbmF2aWdhdG9yPlxuICAgIDxmcmFtZXMtYXV0by1sYXlvdXQgdmVydGljYWwgY29udGVudHM+XG4gICAgICBAc3dpdGNoKHN0b3JlLnR5cGUoKSkge1xuICAgICAgICBAY2FzZSgnbGlzdCcpIHtcbiAgICAgICAgICA8b3JnYW5pc21zLXNtYXJ0LWxpc3RcbiAgICAgICAgICAgIFtpdGVtc109XCJzdG9yZS5pdGVtcygpXCJcbiAgICAgICAgICAgIFtpdGVtQWN0aW9uc109XCJzdG9yZS5pdGVtQWN0aW9ucygpXCJcbiAgICAgICAgICAgIFtncm91cGVkQnldPVwic3RvcmUuZ3JvdXBlZEJ5KClcIlxuICAgICAgICAgICAgW2dyb3VwS2V5c109XCJzdG9yZS5ncm91cEtleXMoKVwiXG4gICAgICAgICAgICAoYWN0aW9uKT1cImRpc3BhdGNoKCRldmVudClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAgQGNhc2UgKCdncmlkJykge1xuICAgICAgICAgIEBkZWZlciB7XG4gICAgICAgICAgICA8b3JnYW5pc21zLWdyaWQtY2FyZHMtc2VjdGlvblxuICAgICAgICAgICAgICBbaXRlbXNdPVwic3RvcmUuaXRlbXMoKVwiXG4gICAgICAgICAgICAgIChhY3Rpb24pPVwiZGlzcGF0Y2goJGV2ZW50KVwiXG4gICAgICAgICAgICAgIGNvbnRlbnRzXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgQGRlZmVyIHtcbiAgICAgICAgICAgIDxmcmFtZXMtZGl2aWRlcj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgZmlyc3Qgc2VsZWN0PVwiW2Rhc2hib2FyZF1cIiAvPlxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTtcIiBzZWNvbmQ+XG4gICAgICAgICAgICAgIEBpZiAoc3RvcmUuZ3JpZFRvb2xiYXJBY3Rpb25zKCkgfHwgdHJ1ZSkge1xuICAgICAgICAgICAgICAgIEBkZWZlciB7XG4gICAgICAgICAgICAgICAgICA8b3JnYW5pc21zLWdyaWQtdG9vbGJhciBpbmplY3RhYmxlXG4gICAgICAgICAgICAgICAgICAgIFthY3Rpb25zXT1cInN0b3JlLmdyaWRUb29sYmFyQWN0aW9ucygpXCJcbiAgICAgICAgICAgICAgICAgICAgKGFjdGlvbik9XCJkaXNwYXRjaCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAoc3RvcmUuZm9ybSgpLmdldChbJ3F1ZXJ5J10pKSB7XG4gICAgICAgICAgICAgICAgPG9yZ2FuaXNtcy1jaGlwcy1pbnB1dC1zZWN0aW9uXG4gICAgICAgICAgICAgICAgICBbY29udHJvbF09XCJzdG9yZS5mb3JtKCkuZ2V0KFsncXVlcnknXSlcIlxuICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInN0b3JlLnF1ZXJ5TGFiZWwoKVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxvcmdhbmlzbXMtdGFibGUgaW5qZWN0YWJsZVxuICAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cInN0b3JlLml0ZW1zKClcIlxuICAgICAgICAgICAgICAgICAgW2l0ZW1BY3Rpb25zXT1cInN0b3JlLml0ZW1BY3Rpb25zKClcIlxuICAgICAgICAgICAgICAgICAgW3NlbGVjdGlvbl09XCJzdG9yZS5zZWxlY3Rpb24oKVwiXG4gICAgICAgICAgICAgICAgICBbZm9ybV09XCJzdG9yZS5mb3JtKClcIlxuICAgICAgICAgICAgICAgICAgW2NoaWxkcmVuS2V5XT1cInN0b3JlLnRhYmxlQ2hpbGRyZW5LZXkoKVwiXG4gICAgICAgICAgICAgICAgICBbaGlnaGxpZ2h0XT1cInN0b3JlLmhpZ2hsaWdodCgpXCJcbiAgICAgICAgICAgICAgICAgIFtpc0hpZGRlbl09XCJzdG9yZS50YWJsZUlzSGlkZGVuKClcIlxuICAgICAgICAgICAgICAgICAgW3RyZWVDb250cm9sXT1cInN0b3JlLnRhYmxlVHJlZUNvbnRyb2woKVwiXG4gICAgICAgICAgICAgICAgICAoYWN0aW9uKT1cImRpc3BhdGNoKCRldmVudClcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgQGlmIChzdG9yZS5mb3JtKCkuZ2V0KFsncGFnZSddKSkge1xuICAgICAgICAgICAgICAgICAgQGRlZmVyIHtcbiAgICAgICAgICAgICAgICAgICAgPG9yZ2FuaXNtcy1wYWdpbmF0b3IgaW5qZWN0YWJsZVxuICAgICAgICAgICAgICAgICAgICAgIFtmb3JtXT1cInN0b3JlLmZvcm0oKS5nZXQoWydwYWdlJ10pXCJcbiAgICAgICAgICAgICAgICAgICAgICBbaXRlbUxlbmd0aF09XCJzdG9yZS5pdGVtc0xlbmd0aCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbcGFnZVNpemVPcHRpb25zXT1cInN0b3JlLnBhZ2VTaXplT3B0aW9ucygpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9mcmFtZXMtZGl2aWRlcj5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L2ZyYW1lcy1hdXRvLWxheW91dD5cbiAgPC9mcmFtZXMtc2Nyb2xsPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9pbmRleC50ZW1wbGF0ZS5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7IGNsYXNzOiAndGVtcGxhdGUnIH0sXG4gIGhvc3REaXJlY3RpdmVzOiBbXG4gICAge1xuICAgICAgZGlyZWN0aXZlOiBJbmRleFRlbXBsYXRlU3RvcmUsXG4gICAgICBpbnB1dHM6IFtcbiAgICAgICAgJ2dyaWRUb29sYmFyQWN0aW9ucycsXG4gICAgICAgICd0YWJsZUNoaWxkcmVuS2V5JyxcbiAgICAgICAgJ3RhYmxlSXNIaWRkZW4nLFxuICAgICAgICAndGFibGVUcmVlQ29udHJvbCcsXG4gICAgICAgICdmb3JtJyxcbiAgICAgICAgJ3RpdGxlJyxcbiAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgJ2l0ZW1zJyxcbiAgICAgICAgJ2l0ZW1zTGVuZ3RoJyxcbiAgICAgICAgJ2l0ZW1BY3Rpb25zJyxcbiAgICAgICAgJ25hdlN0YXJ0QWN0aW9ucycsXG4gICAgICAgICduYXZFbmRBY3Rpb25zJyxcbiAgICAgICAgJ2dyb3VwZWRCeScsXG4gICAgICAgICdncm91cEtleXMnLFxuICAgICAgICAnc2VsZWN0aW9uJyxcbiAgICAgICAgJ3BhZ2VTaXplT3B0aW9ucycsXG4gICAgICAgICd0eXBlJyxcbiAgICAgICAgJ2hpZ2hsaWdodCcsXG4gICAgICAgICdxdWVyeUxhYmVsJyxcbiAgICAgIF0sXG4gICAgICBvdXRwdXRzOiBbXSxcbiAgICB9XG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIFF1ZXJ5UmVzb2x2ZXJTZXJ2aWNlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBJbmRleFRlbXBsYXRlPFQ+IGV4dGVuZHMgTmdBdG9taWNDb21wb25lbnQge1xuICBzdGF0aWMgQWN0aW9uSWQgPSBBY3Rpb25JZDtcbiAgcHJvdGVjdGVkIEFjdGlvbklkID0gQWN0aW9uSWQ7XG4gIHByb3RlY3RlZCBzdG9yZSA9IGluamVjdChJbmRleFRlbXBsYXRlU3RvcmUpO1xuICBcbiAgcmVhZG9ubHkgZGl2aWRlckZyYW1lID0gdmlld0NoaWxkKERpdmlkZXJGcmFtZSk7XG5cbiAgQEVmZmVjdChUYWJsZU9yZ2FuaXNtLkFjdGlvbklkLkhFQURFUl9DTElDSylcbiAgcHJvdGVjdGVkIG9uVGFibGVIZWFkZXJDbGljayhjb2x1bW46IHN0cmluZykge1xuICAgIHRoaXMuZGlzcGF0Y2goe2lkOiBBY3Rpb25JZC5UQUJMRV9IRUFERVJfQ0xJQ0ssIHBheWxvYWQ6IGNvbHVtbn0pO1xuICB9XG5cbiAgQEVmZmVjdChUYWJsZU9yZ2FuaXNtLkFjdGlvbklkLkNIRUNLQk9YX0NMSUNLKVxuICBwcm90ZWN0ZWQgb25DaGVja2JveENsaWNrSXRlbShpdGVtOiBUKSB7XG4gICAgdGhpcy5kaXNwYXRjaCh7aWQ6IEFjdGlvbklkLlRBQkxFX0NIRUNLQk9YX0NMSUNLLCBwYXlsb2FkOiBpdGVtfSk7XG4gIH1cblxuICBARWZmZWN0KEdyaWRDYXJkc1NlY3Rpb25PcmdhbmlzbS5BY3Rpb25JZC5JVEVNX0NMSUNLKVxuICBARWZmZWN0KFNtYXJ0TGlzdE9yZ2FuaXNtLkFjdGlvbklkLkNMSUNLX0lURU0pXG4gIHByb3RlY3RlZCBvbkl0ZW1DbGlja2VkKGl0ZW06IFQpIHtcbiAgICB0aGlzLmRpc3BhdGNoKHtpZDogQWN0aW9uSWQuSVRFTV9DTElDSywgcGF5bG9hZDogaXRlbX0pO1xuICB9XG5cbiAgQEVmZmVjdChHcmlkQ2FyZHNTZWN0aW9uT3JnYW5pc20uQWN0aW9uSWQuSVRFTV9NRU5VX0NMSUNLKVxuICBARWZmZWN0KFNtYXJ0TGlzdE9yZ2FuaXNtLkFjdGlvbklkLklURU1fQlVUVE9OX0NMSUNLKVxuICBwcm90ZWN0ZWQgb25JdGVtQnV0dG9uQ2xpY2tlZChpdGVtOiBUKSB7XG4gICAgdGhpcy5kaXNwYXRjaCh7aWQ6IEFjdGlvbklkLkxJU1RfSVRFTV9CVVRUT05fQ0xJQ0tFRCwgcGF5bG9hZDogaXRlbX0pO1xuICB9XG5cbiAgQEVmZmVjdChUYWJsZU9yZ2FuaXNtU3RvcmUuQWN0aW9uSWQuSEVBREVSX0NIRUNLQk9YX0NMSUNLKVxuICBwcm90ZWN0ZWQgb25IZWFkZXJDaGVja2JveENsaWNrKCkge1xuICAgIHRoaXMuZGlzcGF0Y2goe2lkOiBBY3Rpb25JZC5UQUJMRV9IRUFERVJfQ0hFQ0tCT1hfQ0xJQ0t9KTtcbiAgfVxuXG4gIEBFZmZlY3QoTmF2QWN0aW9uSWQuQkFDSylcbiAgcHJvdGVjdGVkIGJhY2soKSB7XG4gICAgdGhpcy5kaXNwYXRjaCh7aWQ6IEFjdGlvbklkLkJBQ0t9KTtcbiAgfVxufVxuIl19
|
|
542
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbXBvbmVudHMvc3JjL2xpYi90ZW1wbGF0ZXMvX2luZGV4L2luZGV4LnRlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFbkYsT0FBTyxFQUFtQixtQkFBbUIsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRzlHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFMUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2pG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Q1gsV0FBVztvQ0FDWCxXQUFXO29DQUNYLGlCQUFpQjtvQ0FDakIsTUFBTTtvQ0FDTixXQUFXO29DQUNYLFlBQVk7aUNBQ2I7Z0NBQ0QsT0FBTyxFQUFFLEVBQUU7NkJBQ1o7eUJBQ0YsYUFDVTs0QkFDVCxvQkFBb0I7eUJBQ3JCO3dEQVVTLGtCQUFrQixNQUtsQixtQkFBbUIsTUFPbkIsYUFBYSxNQU1iLG1CQUFtQixNQUtuQixxQkFBcUIsTUFLckIsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIERpcmVjdGl2ZSwgUExBVEZPUk1fSUQsIGluamVjdCwgaW5wdXQsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybVNlcnZlciwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBdXRvTGF5b3V0RnJhbWUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvZnJhbWVzL2F1dG8tbGF5b3V0JztcbmltcG9ydCB7IFNjcm9sbEZyYW1lIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL2ZyYW1lcy9zY3JvbGwnO1xuaW1wb3J0IHsgSGVhZGVyTW9sZWN1bGVTdG9yZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9tb2xlY3VsZXMvaGVhZGVyJztcbmltcG9ydCB7IFRhYmxlT3JnYW5pc20sIFRhYmxlT3JnYW5pc21TdG9yZSwgaW5qZWN0SW5kZXhGb3JtIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy90YWJsZSc7XG5pbXBvcnQgeyBMaXN0T3JnYW5pc20gfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL2xpc3QnO1xuaW1wb3J0IHsgTmF2aWdhdG9yT3JnYW5pc21TdG9yZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvbmF2aWdhdG9yJztcbmltcG9ydCB7IFBhZ2luYXRvck9yZ2FuaXNtU3RvcmUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBBY3Rpb24sIEFjdGlvbnMsIEluamVjdGFibGVDb21wb25lbnQsIFRva2VuaXplZFR5cGUsIF9jb21wdXRlZCwgY29tcHV0ZUZha2UgfSBmcm9tICdAbmctYXRvbWljL2NvcmUnO1xuaW1wb3J0IHsgR3JpZFRvb2xiYXJPcmdhbmlzbVN0b3JlIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy9ncmlkLXRvb2xiYXInO1xuaW1wb3J0IHsgRmlsdGVyc1NlY3Rpb25PcmdhbmlzbSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvZmlsdGVycy1zZWN0aW9uJztcbmltcG9ydCB7IERpdmlkZXJGcmFtZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9mcmFtZXMvZGl2aWRlcic7XG5pbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBTZWxlY3Rpb25MaXN0T3JnYW5pc20gfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL3NlbGVjdGlvbi1saXN0JztcbmltcG9ydCB7IEVmZmVjdCwgTmdBdG9taWNDb21wb25lbnQgfSBmcm9tICdAbmctYXRvbWljL2NvcmUnO1xuaW1wb3J0IHsgUXVlcnlSZXNvbHZlclNlcnZpY2UgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy9xdWVyeS1yZXNvbHZlcic7XG5pbXBvcnQgeyBOYXZBY3Rpb25JZCwgVUlDb250ZXh0LCBjYWxsLCBpbmplY3ROYXZTdGFydEFjdGlvbnMsIG1ha2VDb25maWcgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy91aSc7XG5pbXBvcnQgeyBJbmRleFBpcGUgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9waXBlcy9pbmRleCc7XG5pbXBvcnQgeyBJbmRleExlbmd0aFBpcGUgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9waXBlcy9pbmRleC1sZW5ndGgnO1xuaW1wb3J0IHsgU29ydEJ5UGlwZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3BpcGVzL3NvcnQtYnknO1xuaW1wb3J0IHsgR3JpZENhcmRzU2VjdGlvbk9yZ2FuaXNtIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy9ncmlkLWNhcmRzLXNlY3Rpb24nO1xuaW1wb3J0IHsgaW5qZWN0TW9kZWxOYW1lIH0gZnJvbSAnQG5nLWF0b21pYy9jb21tb24vcGlwZXMvZG9tYWluJztcbmltcG9ydCB7IERhdGFBY2Nlc3NvclBpcGUgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9waXBlcy9kYXRhLWFjY2Vzc29yJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjb21wdXRlZFJhd1ZhbHVlIH0gZnJvbSAnQG5nLWF0b21pYy9jb21tb24vdXRpbHMnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQ2hpcHNJbnB1dFNlY3Rpb25PcmdhbmlzbSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvY2hpcHMtaW5wdXQtc2VjdGlvbic7XG5pbXBvcnQgeyBGbGF0VHJlZUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9jZGsvdHJlZSc7XG5pbXBvcnQgeyBUcmVlTGlzdE9yZ2FuaXNtLCBUcmVlTGlzdE9yZ2FuaXNtU3RvcmUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL3RyZWUtbGlzdCc7XG5pbXBvcnQgeyBUYWJzRnJhbWUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvZnJhbWVzL3RhYnMnO1xuaW1wb3J0IHsgVGV4dElucHV0RmllbGRNb2xlY3VsZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9tb2xlY3VsZXMvdGV4dC1pbnB1dC1maWVsZCc7XG5pbXBvcnQgeyBWZXJ0aWNhbEhpZGVGcmFtZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9mcmFtZXMvdmVydGljYWwtaGlkZSc7XG5cbmV4cG9ydCBlbnVtIEFjdGlvbklkIHtcbiAgQkFDSyA9ICdbQG5nLWF0b21pYy9jb21wb25lbnRzL3RlbXBsYXRlcy9pbmRleF0gQmFjaycsXG4gIFRBQkxFX0hFQURFUl9DTElDSyA9ICdbQG5nLWF0b21pYy9jb21wb25lbnRzL3RlbXBsYXRlcy9pbmRleF0gVGFibGUgSGVhZGVyIENsaWNrJyxcbiAgVEFCTEVfSEVBREVSX0NIRUNLQk9YX0NMSUNLID0gJ1tAbmctYXRvbWljL2NvbXBvbmVudHMvdGVtcGxhdGVzL2luZGV4XSBUYWJsZSBIZWFkZXIgQ2hlY2tib3ggQ2xpY2snLFxuICBUQUJMRV9DSEVDS0JPWF9DTElDSyA9ICdbQG5nLWF0b21pYy9jb21wb25lbnRzL3RlbXBsYXRlcy9pbmRleF0gVGFibGUgQ2hlY2tib3ggQ2xpY2snLFxuICBJVEVNX0NMSUNLID0gJ1tAbmctYXRvbWljL2NvbXBvbmVudHMvdGVtcGxhdGVzL2luZGV4XSBJdGVtIENsaWNrJyxcbiAgREVUQUlMID0gJ1tAbmctYXRvbWljL2NvbXBvbmVudHMvdGVtcGxhdGVzL2luZGV4XSBEZXRhaWwnLFxuICBMSVNUX0lURU1fQlVUVE9OX0NMSUNLRUQgPSAnW0BuZy1hdG9taWMvY29tcG9uZW50cy90ZW1wbGF0ZXMvaW5kZXhdIExpc3QgSXRlbSBCdXR0b24gQ2xpY2tlZCcsXG4gIFRPR0dMRV9UWVBFID0gJ1tAbmctYXRvbWljL2NvbXBvbmVudHMvdGVtcGxhdGVzL2luZGV4XSBUb2dnbGUgVHlwZScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5kZXhUZW1wbGF0ZUNvbmZpZzxUIGV4dGVuZHMge2lkOiBzdHJpbmd9ID0gYW55PiB7XG4gIGZvcm06IEZvcm1Hcm91cDtcbiAgZ3JpZFRvb2xiYXJBY3Rpb25zOiBBY3Rpb25bXTtcbiAgbmF2U3RhcnRBY3Rpb25zOiBBY3Rpb25zO1xuICBuYXZFbmRBY3Rpb25zOiBBY3Rpb25zO1xuICBpdGVtQWN0aW9uczogQWN0aW9ucztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgaXRlbXM6IFRbXVxuICB0YWJsZUNoaWxkcmVuS2V5OiBrZXlvZiBUO1xuICBncm91cGVkQnk6IGtleW9mIFQgfCBudWxsO1xuICBncm91cEtleXM6IHN0cmluZ1tdO1xuICB0eXBlOiAnbGlzdCcgfCAndGFibGUnIHwgJ2dyaWQnO1xuICB0b2dnbGVBY3Rpb25zOiBBY3Rpb25zO1xuICBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdO1xuICB3aWR0aDogc3RyaW5nO1xuICBzZWxlY3Rpb246IFNlbGVjdGlvbk1vZGVsPHN0cmluZz47XG4gIGhpZ2hsaWdodDogU2VsZWN0aW9uTW9kZWw8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFR5cGUoY29udGV4dDogVUlDb250ZXh0KSB7XG4gIHN3aXRjaCAoY29udGV4dC5icmVha3BvaW50KSB7XG4gICAgY2FzZSAneFNtYWxsJzogcmV0dXJuICdsaXN0JztcbiAgICBjYXNlICdzbWFsbCc6IHJldHVybiAndGFibGUnO1xuICAgIGNhc2UgJ21lZGl1bSc6IHJldHVybiAndGFibGUnO1xuICAgIGNhc2UgJ2xhcmdlJzogcmV0dXJuICd0YWJsZSc7XG4gICAgY2FzZSAneExhcmdlJzogcmV0dXJuICd0YWJsZSc7XG4gICAgZGVmYXVsdDogcmV0dXJuICd0YWJsZSc7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJdGVtc01hcDxUPiB7XG4gIFtrZXk6IHN0cmluZ106IHtcbiAgICBpdGVtczogVFtdO1xuICAgIGl0ZW1zTGVuZ3RoOiBudW1iZXI7XG4gICAgXG4gICAgdHlwZT86ICdsaXN0JyB8ICd0YWJsZScgfCAnZ3JpZCc7XG4gICAgY2hpbGRyZW5LZXk/OiBzdHJpbmc7XG4gICAgdHJlZUNvbnRyb2w/OiBGbGF0VHJlZUNvbnRyb2w8VD47XG4gICAgZ3JvdXBlZEJ5Pzogc3RyaW5nO1xuICAgIGdyb3VwS2V5cz86IHN0cmluZ1tdO1xuICAgIGl0ZW1BY3Rpb25zPzogQWN0aW9ucztcbiAgICBmb3JtPzogRm9ybUdyb3VwO1xuICAgIHNlbGVjdGlvbj86IFNlbGVjdGlvbk1vZGVsPHN0cmluZz47XG4gICAgaGlnaGxpZ2h0PzogU2VsZWN0aW9uTW9kZWw8c3RyaW5nPjtcbiAgICB0YWJsZUlzSGlkZGVuPzogKGl0ZW06IFQpID0+IGJvb2xlYW47XG4gICAgcGFnZVNpemVPcHRpb25zPzogbnVtYmVyW107XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUb0l0ZW1zTWFwPFQ+KGl0ZW1zKTogSXRlbXNNYXA8VD4ge1xuICByZXR1cm4ge1xuICAgICdkZWZhdWx0Jzoge1xuICAgICAgaXRlbXM6IGl0ZW1zLFxuICAgICAgaXRlbXNMZW5ndGg6IGl0ZW1zPy5sZW5ndGgsXG4gICAgfVxuICB9O1xufVxuXG5AVG9rZW5pemVkVHlwZSgpXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICd0ZW1wbGF0ZXMtaW5kZXgnLFxuICBwcm92aWRlcnM6IFtcbiAgICBJbmRleFBpcGUsXG4gICAgSW5kZXhMZW5ndGhQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBJbmRleFRlbXBsYXRlU3RvcmU8VCBleHRlbmRzIHtpZDogc3RyaW5nfT4gZXh0ZW5kcyBJbmplY3RhYmxlQ29tcG9uZW50IHtcbiAgc3RhdGljIHJlYWRvbmx5IEFjdGlvbklkID0gQWN0aW9uSWQ7XG4gIHN0YXRpYyByZWFkb25seSBDb25maWcgPSBtYWtlQ29uZmlnKCgpID0+IHtcbiAgICBjb25zdCBtb2RlbE5hbWUgPSBpbmplY3RNb2RlbE5hbWUoKTtcbiAgICBmdW5jdGlvbiBnZXRXaWR0aChjb250ZXh0OiBVSUNvbnRleHQpIHtcbiAgICAgIHN3aXRjaCAoY29udGV4dC5icmVha3BvaW50KSB7XG4gICAgICAgIGNhc2UgJ3hTbWFsbCc6IHJldHVybiAndmFyKC0tcGFnZS13aWR0aC1sdjEpJ1xuICAgICAgICBjYXNlICdzbWFsbCc6XG4gICAgICAgIGNhc2UgJ21lZGl1bSc6XG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcbiAgICAgICAgY2FzZSAneExhcmdlJzpcbiAgICAgICAgZGVmYXVsdDogcmV0dXJuICd2YXIoLS1wYWdlLXdpZHRoLWx2MiknO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRUeXBlKGNvbnRleHQ6IFVJQ29udGV4dCkge1xuICAgICAgc3dpdGNoIChjb250ZXh0LmJyZWFrcG9pbnQpIHtcbiAgICAgICAgY2FzZSAneFNtYWxsJzogcmV0dXJuICdsaXN0JztcbiAgICAgICAgY2FzZSAnc21hbGwnOlxuICAgICAgICBjYXNlICdtZWRpdW0nOlxuICAgICAgICBjYXNlICdsYXJnZSc6XG4gICAgICAgIGNhc2UgJ3hMYXJnZSc6XG4gICAgICAgIGRlZmF1bHQ6IHJldHVybiAndGFibGUnO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBmb3JtID0gaW5qZWN0SW5kZXhGb3JtKCk7XG4gICAgY29uc3QgbmF2U3RhcnRBY3Rpb25zID0gaW5qZWN0TmF2U3RhcnRBY3Rpb25zKCk7XG4gIFxuICAgIHJldHVybiAoY29udGV4dCkgPT4gKHtcbiAgICAgIGZvcm0sXG4gICAgICB0b2dnbGVBY3Rpb25zOiBbXG4gICAgICAgIHsgaWQ6IEFjdGlvbklkLlRPR0dMRV9UWVBFLCBpY29uOiAnZ3JpZF92aWV3JywgcGF5bG9hZDogJ2dyaWQnIH0sXG4gICAgICAgIHsgaWQ6IEFjdGlvbklkLlRPR0dMRV9UWVBFLCBpY29uOiAnbGlzdCcsIHBheWxvYWQ6ICdsaXN0JyB9LFxuICAgICAgICB7IGlkOiBBY3Rpb25JZC5UT0dHTEVfVFlQRSwgaWNvbjogJ3RhYmxlJywgcGF5bG9hZDogJ3RhYmxlJyB9LFxuICAgICAgXSBhcyBBY3Rpb25bXSxcbiAgICAgIGdyaWRUb29sYmFyQWN0aW9uczogW10gYXMgQWN0aW9uW10sXG4gICAgICB0YWJsZUNoaWxkcmVuS2V5OiBudWxsIGFzIHN0cmluZyxcbiAgICAgIHRhYmxlSXNIaWRkZW46IChpdGVtOiBhbnkpID0+IGZhbHNlLFxuICAgICAgdGFibGVUcmVlQ29udHJvbDogbmV3IEZsYXRUcmVlQ29udHJvbDxhbnk+KG4gPT4gbi5sZXZlbCwgbiA9PiBuLmlzRXhwYW5kYWJsZSwge3RyYWNrQnk6IChuOiBhbnkpID0+IG4uaWR9KSxcbiAgICAgIGl0ZW1BY3Rpb25zOiAoaXRlbSkgPT4gW3tpZDogQWN0aW9uSWQuREVUQUlMLCBpY29uOiAnb3Blbl9pbl9uZXcnLCBwYXlsb2FkOiBpdGVtfV0sXG4gICAgICBpdGVtczogW10sXG4gICAgICBpdGVtc0xlbmd0aDogMCxcbiAgICAgIHRpdGxlOiBgJHttb2RlbE5hbWUoKX3kuIDopqdgLFxuICAgICAgdGl0bGVDb250cm9sOiBuZXcgRm9ybUNvbnRyb2woYCR7bW9kZWxOYW1lKCl95LiA6KanYCksXG4gICAgICB0aXRsZUVkaXRhYmxlOiBmYWxzZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBgYCxcbiAgICAgIG5hdlN0YXJ0QWN0aW9uczogbmF2U3RhcnRBY3Rpb25zKCksXG4gICAgICBuYXZFbmRBY3Rpb25zOiBbXSxcbiAgICAgIGdyb3VwZWRCeTogPHN0cmluZz5udWxsLFxuICAgICAgZ3JvdXBLZXlzOiA8c3RyaW5nW10+W10sXG4gICAgICB0eXBlOiA8J3RhYmxlJyB8ICdsaXN0JyB8ICdncmlkJz5nZXRUeXBlKGNvbnRleHQpLFxuICAgICAgcGFnZVNpemVPcHRpb25zOiBbNSwgMTAsIDI1LCAxMDBdLFxuICAgICAgc2VsZWN0aW9uOiBuZXcgU2VsZWN0aW9uTW9kZWw8c3RyaW5nPih0cnVlLCBbXSksXG4gICAgICBoaWdobGlnaHQ6IG5ldyBTZWxlY3Rpb25Nb2RlbDxzdHJpbmc+KHRydWUsIFtdKSxcbiAgICAgIHF1ZXJ5TGFiZWw6ICfjg5XjgqPjg6vjgr/jg7wnLFxuICAgIH0pO1xuICB9LCBbJ2NvbXBvbmVudHMnLCAndGVtcGxhdGVzJywgJ2luZGV4J10pO1xuICBzdGF0aWMgcHJvdmlkZVR5cGVDb25maWcoKSB7XG4gICAgcmV0dXJuIEluZGV4VGVtcGxhdGVTdG9yZS5Db25maWcucHJvdmlkZSgoKSA9PiB7XG4gICAgICByZXR1cm4gKGNvbmZpZywgY29udGV4dCkgPT4gKHtcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICB0eXBlOiBnZXRUeXBlKGNvbnRleHQpLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICByZWFkb25seSBjb25maWcgPSBJbmRleFRlbXBsYXRlU3RvcmUuQ29uZmlnLmluamVjdCgpO1xuICByZWFkb25seSBpc1BsYXRmb3JtU2VydmVyID0gaXNQbGF0Zm9ybVNlcnZlcihpbmplY3QoUExBVEZPUk1fSUQpKTtcbiAgcmVhZG9ubHkgZm9ybSA9IGlucHV0KF9jb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLmZvcm0pKTtcbiAgcmVhZG9ubHkgZ3JpZFRvb2xiYXJBY3Rpb25zID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkuZ3JpZFRvb2xiYXJBY3Rpb25zKSk7XG4gIHJlYWRvbmx5IHRvZ2dsZUFjdGlvbnMgPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS50b2dnbGVBY3Rpb25zKSk7XG4gIHJlYWRvbmx5IHRhYmxlQ2hpbGRyZW5LZXkgPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS50YWJsZUNoaWxkcmVuS2V5KSk7XG4gIHJlYWRvbmx5IHRhYmxlSXNIaWRkZW4gPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS50YWJsZUlzSGlkZGVuKSk7XG4gIHJlYWRvbmx5IHRhYmxlVHJlZUNvbnRyb2wgPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS50YWJsZVRyZWVDb250cm9sKSk7XG4gIHJlYWRvbmx5IGl0ZW1BY3Rpb25zID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkuaXRlbUFjdGlvbnMpKTtcbiAgcmVhZG9ubHkgdGl0bGUgPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS50aXRsZSkpO1xuICByZWFkb25seSB0aXRsZUNvbnRyb2wgPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS50aXRsZUNvbnRyb2wpKTtcbiAgcmVhZG9ubHkgdGl0bGVFZGl0YWJsZSA9IGlucHV0KF9jb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLnRpdGxlRWRpdGFibGUpKTtcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24gPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS5kZXNjcmlwdGlvbikpO1xuICByZWFkb25seSBpdGVtcyA9IGlucHV0PFRbXT4oX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkuaXRlbXMpKTtcbiAgcmVhZG9ubHkgaXRlbXNNYXAgPSBpbnB1dDxJdGVtc01hcDxUPj4oX2NvbXB1dGVkKCgpID0+IGNvbnZlcnRUb0l0ZW1zTWFwKHRoaXMuaXRlbXMoKSkpKTtcbiAgcmVhZG9ubHkgaXRlbXNNYXBLZXlzID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IE9iamVjdC5rZXlzKHRoaXMuaXRlbXNNYXAoKSA/PyB7fSkpKTtcbiAgcmVhZG9ubHkgaXRlbXNMZW5ndGggPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS5pdGVtc0xlbmd0aCkpO1xuICByZWFkb25seSBuYXZTdGFydEFjdGlvbnMgPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS5uYXZTdGFydEFjdGlvbnMpKTtcbiAgcmVhZG9ubHkgbmF2RW5kQWN0aW9ucyA9IGlucHV0KF9jb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLm5hdkVuZEFjdGlvbnMpKTtcbiAgcmVhZG9ubHkgZ3JvdXBlZEJ5ID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkuZ3JvdXBlZEJ5KSk7XG4gIHJlYWRvbmx5IGdyb3VwS2V5cyA9IGlucHV0KF9jb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLmdyb3VwS2V5cykpO1xuICByZWFkb25seSBwYWdlU2l6ZU9wdGlvbnMgPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS5wYWdlU2l6ZU9wdGlvbnMpKTtcbiAgcmVhZG9ubHkgdHlwZSA9IGlucHV0KF9jb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLnR5cGUpKTtcbiAgcmVhZG9ubHkgc2VsZWN0aW9uID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkuc2VsZWN0aW9uKSk7XG4gIHJlYWRvbmx5IGhpZ2hsaWdodCA9IGlucHV0KF9jb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLmhpZ2hsaWdodCkpO1xuICByZWFkb25seSBxdWVyeUxhYmVsID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkucXVlcnlMYWJlbCkpO1xuICByZWFkb25seSBuYXZNb2RlID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+ICdleHBhbmRlZCcpKTtcbiAgcmVhZG9ubHkgZm9ybSQgPSB0b09ic2VydmFibGUoY29tcHV0ZUZha2UodGhpcy5mb3JtKSk7XG4gIHJlYWRvbmx5IGZvcm1WYWx1ZSA9IGNvbXB1dGVkUmF3VmFsdWUoKCkgPT4gY2FsbCh0aGlzLmZvcm0oKSkpO1xuICByZWFkb25seSBwaXBlcyA9IHsgaW5kZXg6IGluamVjdChJbmRleFBpcGUpLCBpbmRleExlbmd0aDogaW5qZWN0KEluZGV4TGVuZ3RoUGlwZSl9O1xuICAvLyByZWFkb25seSBpdGVtc1NpemUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBpcGVzLmluZGV4TGVuZ3RoLnRyYW5zZm9ybSh0aGlzLml0ZW1zKCksIHRoaXMuZm9ybVZhbHVlKCkgYXMgYW55KSk7XG59XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQXV0b0xheW91dEZyYW1lLFxuICAgIENoaXBzSW5wdXRTZWN0aW9uT3JnYW5pc20sXG4gICAgU2Nyb2xsRnJhbWUsXG4gICAgRGl2aWRlckZyYW1lLFxuICAgIEdyaWRUb29sYmFyT3JnYW5pc21TdG9yZSxcbiAgICBQYWdpbmF0b3JPcmdhbmlzbVN0b3JlLFxuICAgIFRhYmxlT3JnYW5pc21TdG9yZSxcbiAgICBMaXN0T3JnYW5pc20sXG4gICAgVHJlZUxpc3RPcmdhbmlzbSxcbiAgICBHcmlkQ2FyZHNTZWN0aW9uT3JnYW5pc20sXG4gICAgTmF2aWdhdG9yT3JnYW5pc21TdG9yZSxcbiAgICBIZWFkZXJNb2xlY3VsZVN0b3JlLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgVGFic0ZyYW1lLFxuICAgIFRleHRJbnB1dEZpZWxkTW9sZWN1bGUsXG4gICAgVmVydGljYWxIaWRlRnJhbWUsXG4gIF0sXG4gIHNlbGVjdG9yOiAndGVtcGxhdGVzLWluZGV4JyxcbiAgdGVtcGxhdGU6IGBcbiAgPGZyYW1lcy1zY3JvbGw+XG4gIDxmcmFtZXMtdmVydGljYWwtaGlkZSBbbW9kZV09XCJzdG9yZS5uYXZNb2RlKClcIiB0b3A+XG4gICAgICA8b3JnYW5pc21zLW5hdmlnYXRvciBpbmplY3RhYmxlXG4gICAgICAgIFtzdGFydEFjdGlvbnNdPVwic3RvcmUubmF2U3RhcnRBY3Rpb25zKClcIlxuICAgICAgICBbZW5kQWN0aW9uc109XCJzdG9yZS5uYXZFbmRBY3Rpb25zKClcIlxuICAgICAgICAoYWN0aW9uKT1cImRpc3BhdGNoKCRldmVudClcIlxuICAgICAgICB0b3BcbiAgICAgID5cbiAgICAgIEBpZiAoc3RvcmUudGl0bGVFZGl0YWJsZSgpKSB7XG4gICAgICAgIDxtb2xlY3VsZXMtdGV4dC1pbnB1dC1maWVsZFxuICAgICAgICAgIFtsYWJlbF09XCIndGl0bGUnXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3RpdGxlJ1wiXG4gICAgICAgICAgW2NvbnRyb2xdPVwic3RvcmUudGl0bGVDb250cm9sKClcIlxuICAgICAgICAgIFthcHBlYXJhbmNlXT1cIidmaWxsJ1wiXG4gICAgICAgIC8+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPG1vbGVjdWxlcy1oZWFkZXIgaW5qZWN0YWJsZSBbdGl0bGVdPVwic3RvcmUudGl0bGUoKVwiIFtkZXNjcmlwdGlvbl09XCJzdG9yZS5kZXNjcmlwdGlvbigpXCIvPlxuICAgICAgfVxuICAgICAgPC9vcmdhbmlzbXMtbmF2aWdhdG9yPlxuICAgICAgPGRpdiBjbGFzcz1cImRhc2hib2FyZFwiPlxuICAgICAgICA8bmctY29udGVudCBmaXJzdCBzZWxlY3Q9XCJbbmF2RGFzaGJvYXJkXVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2ZyYW1lcy12ZXJ0aWNhbC1oaWRlPlxuICAgIDxmcmFtZXMtYXV0by1sYXlvdXQgW3R5cGVdPVwiJ3ZlcnRpY2FsJ1wiIGNvbnRlbnRzPlxuICAgICAgQGRlZmVyIHtcbiAgICAgICAgPGZyYW1lcy1kaXZpZGVyPlxuICAgICAgICAgIDxuZy1jb250ZW50IGZpcnN0IHNlbGVjdD1cIltkYXNoYm9hcmRdXCIgLz5cbiAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTtcIiBzZWNvbmQ+XG4gICAgICAgICAgICBAaWYgKHN0b3JlLmdyaWRUb29sYmFyQWN0aW9ucygpIHx8IHRydWUpIHtcbiAgICAgICAgICAgICAgQGRlZmVyIHtcbiAgICAgICAgICAgICAgICA8b3JnYW5pc21zLWdyaWQtdG9vbGJhciBpbmplY3RhYmxlXG4gICAgICAgICAgICAgICAgICBbYWN0aW9uc109XCJzdG9yZS5ncmlkVG9vbGJhckFjdGlvbnMoKVwiXG4gICAgICAgICAgICAgICAgICAoYWN0aW9uKT1cImRpc3BhdGNoKCRldmVudClcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoc3RvcmUuZm9ybSgpLmdldChbJ3F1ZXJ5J10pKSB7XG4gICAgICAgICAgICAgIDxvcmdhbmlzbXMtY2hpcHMtaW5wdXQtc2VjdGlvblxuICAgICAgICAgICAgICAgIFtjb250cm9sXT1cInN0b3JlLmZvcm0oKS5nZXQoWydxdWVyeSddKVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cInN0b3JlLnF1ZXJ5TGFiZWwoKVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHN0b3JlLml0ZW1zTWFwS2V5cygpLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgQGRlZmVyIHtcbiAgICAgICAgICAgICAgICA8ZnJhbWVzLXRhYnMgW2xhYmVsc109XCJzdG9yZS5pdGVtc01hcEtleXMoKVwiPlxuICAgICAgICAgICAgICAgICAgQGZvciAoa2V5IG9mIHN0b3JlLml0ZW1zTWFwS2V5cygpOyB0cmFjayBrZXk7KSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdGFiPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtczsgY29udGV4dDoge21hcDogc3RvcmUuaXRlbXNNYXAoKVtrZXldfVwiLz5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2ZyYW1lcy10YWJzPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IEBlbHNlIGlmKHN0b3JlLml0ZW1zTWFwS2V5cygpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbXM7IGNvbnRleHQ6IHttYXA6IHN0b3JlLml0ZW1zTWFwKClbc3RvcmUuaXRlbXNNYXBLZXlzKClbMF1dfVwiLz5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mcmFtZXMtZGl2aWRlcj5cbiAgICAgIH1cbiAgICA8L2ZyYW1lcy1hdXRvLWxheW91dD5cbiAgPC9mcmFtZXMtc2Nyb2xsPlxuXG4gIDxuZy10ZW1wbGF0ZSAjaXRlbXMgbGV0LW1hcD1cIm1hcFwiPlxuICAgIDwhLS0gPGRpdj5cbiAgICAgIGpzb246IHt7IG1hcCB8IGpzb24gfX1cbiAgICA8L2Rpdj4gLS0+XG4gICAgQHN3aXRjaChtYXA/LnR5cGUgPz8gc3RvcmUudHlwZSgpKSB7XG4gICAgICBAY2FzZSgnbGlzdCcpIHtcbiAgICAgICAgQGlmIChtYXAuY2hpbGRyZW5LZXkpIHtcbiAgICAgICAgICA8b3JnYW5pc21zLXRyZWUtbGlzdFxuICAgICAgICAgICAgW2l0ZW1zXT1cIm1hcD8uaXRlbXMgPz8gW11cIlxuICAgICAgICAgICAgW2NoaWxkcmVuS2V5XT1cIm1hcD8uY2hpbGRyZW5LZXkgPz8gc3RvcmUuY2hpbGRyZW5LZXkoKVwiXG4gICAgICAgICAgICBbdHJlZUNvbnRyb2xdPVwibWFwPy50cmVlQ29udHJvbCA/PyBzdG9yZS50YWJsZVRyZWVDb250cm9sKClcIlxuICAgICAgICAgICAgKGFjdGlvbik9XCJkaXNwYXRjaCgkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8b3JnYW5pc21zLWxpc3RcbiAgICAgICAgICAgIFtpdGVtc109XCJtYXA/Lml0ZW1zID8/IFtdXCJcbiAgICAgICAgICAgIFtpdGVtQWN0aW9uc109XCJtYXA/Lml0ZW1BY3Rpb25zID8/IHN0b3JlLml0ZW1BY3Rpb25zKClcIlxuICAgICAgICAgICAgW2dyb3VwZWRCeV09XCJtYXA/Lmdyb3VwZWRCeSA/PyBzdG9yZS5ncm91cGVkQnkoKVwiXG4gICAgICAgICAgICBbZ3JvdXBLZXlzXT1cIm1hcD8uZ3JvdXBLZXlzID8/IHN0b3JlLmdyb3VwS2V5cygpXCJcbiAgICAgICAgICAgIChhY3Rpb24pPVwiZGlzcGF0Y2goJGV2ZW50KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGNhc2UgKCdncmlkJykge1xuICAgICAgICBAZGVmZXIge1xuICAgICAgICAgIDxvcmdhbmlzbXMtZ3JpZC1jYXJkcy1zZWN0aW9uXG4gICAgICAgICAgICBbaXRlbXNdPVwibWFwPy5pdGVtcyA/PyBbXVwiXG4gICAgICAgICAgICAoYWN0aW9uKT1cImRpc3BhdGNoKCRldmVudClcIlxuICAgICAgICAgICAgY29udGVudHNcbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZGVmYXVsdCB7XG4gICAgICAgIDxvcmdhbmlzbXMtdGFibGUgaW5qZWN0YWJsZVxuICAgICAgICAgIFtpdGVtc109XCJtYXA/Lml0ZW1zID8/IFtdXCJcbiAgICAgICAgICBbaXRlbUFjdGlvbnNdPVwibWFwPy5pdGVtQWN0aW9ucyA/PyBzdG9yZS5pdGVtQWN0aW9ucygpXCJcbiAgICAgICAgICBbc2VsZWN0aW9uXT1cIm1hcD8uc2VsZWN0aW9uID8/IHN0b3JlLnNlbGVjdGlvbigpXCJcbiAgICAgICAgICBbZm9ybV09XCJtYXA/LmZvcm0gPz8gc3RvcmUuZm9ybSgpXCJcbiAgICAgICAgICBbY2hpbGRyZW5LZXldPVwibWFwPy5jaGlsZHJlbktleSA/PyBzdG9yZS50YWJsZUNoaWxkcmVuS2V5KClcIlxuICAgICAgICAgIFtoaWdobGlnaHRdPVwibWFwPy5oaWdobGlnaHQgPz8gc3RvcmUuaGlnaGxpZ2h0KClcIlxuICAgICAgICAgIFtpc0hpZGRlbl09XCJtYXA/LnRhYmxlSXNIaWRkZW4gPz8gc3RvcmUudGFibGVJc0hpZGRlbigpXCJcbiAgICAgICAgICBbdHJlZUNvbnRyb2xdPVwibWFwPy50cmVlQ29udHJvbCA/PyBzdG9yZS50YWJsZVRyZWVDb250cm9sKClcIlxuICAgICAgICAgIChhY3Rpb24pPVwiZGlzcGF0Y2goJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICAgIEBpZiAobWFwPy5mb3JtPy5nZXQoWydwYWdlJ10pID8/IHN0b3JlLmZvcm0oKS5nZXQoWydwYWdlJ10pKSB7XG4gICAgICAgICAgQGRlZmVyIHtcbiAgICAgICAgICAgIDxvcmdhbmlzbXMtcGFnaW5hdG9yIGluamVjdGFibGVcbiAgICAgICAgICAgICAgW2Zvcm1dPVwibWFwPy5mb3JtPy5nZXQoWydwYWdlJ10pID8/IHN0b3JlLmZvcm0oKS5nZXQoWydwYWdlJ10pXCJcbiAgICAgICAgICAgICAgW2l0ZW1MZW5ndGhdPVwibWFwPy5pdGVtc0xlbmd0aCA/PyBzdG9yZS5pdGVtc0xlbmd0aCgpXCJcbiAgICAgICAgICAgICAgW3BhZ2VTaXplT3B0aW9uc109XCJtYXA/LnBhZ2VTaXplT3B0aW9ucyA/PyBzdG9yZS5wYWdlU2l6ZU9wdGlvbnMoKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vaW5kZXgudGVtcGxhdGUuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogeyBjbGFzczogJ3RlbXBsYXRlJyB9LFxuICBob3N0RGlyZWN0aXZlczogW1xuICAgIHtcbiAgICAgIGRpcmVjdGl2ZTogSW5kZXhUZW1wbGF0ZVN0b3JlLFxuICAgICAgaW5wdXRzOiBbXG4gICAgICAgICdncmlkVG9vbGJhckFjdGlvbnMnLFxuICAgICAgICAndGFibGVDaGlsZHJlbktleScsXG4gICAgICAgICd0YWJsZUlzSGlkZGVuJyxcbiAgICAgICAgJ3RhYmxlVHJlZUNvbnRyb2wnLFxuICAgICAgICAnZm9ybScsXG4gICAgICAgICd0aXRsZScsXG4gICAgICAgICd0aXRsZUNvbnRyb2wnLFxuICAgICAgICAndGl0bGVFZGl0YWJsZScsXG4gICAgICAgICdkZXNjcmlwdGlvbicsXG4gICAgICAgICdpdGVtcycsXG4gICAgICAgICdpdGVtc01hcCcsXG4gICAgICAgICdpdGVtc0xlbmd0aCcsXG4gICAgICAgICdpdGVtQWN0aW9ucycsXG4gICAgICAgICduYXZTdGFydEFjdGlvbnMnLFxuICAgICAgICAnbmF2RW5kQWN0aW9ucycsXG4gICAgICAgICduYXZNb2RlJyxcbiAgICAgICAgJ2dyb3VwZWRCeScsXG4gICAgICAgICdncm91cEtleXMnLFxuICAgICAgICAnc2VsZWN0aW9uJyxcbiAgICAgICAgJ3BhZ2VTaXplT3B0aW9ucycsXG4gICAgICAgICd0eXBlJyxcbiAgICAgICAgJ2hpZ2hsaWdodCcsXG4gICAgICAgICdxdWVyeUxhYmVsJyxcbiAgICAgIF0sXG4gICAgICBvdXRwdXRzOiBbXSxcbiAgICB9XG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIFF1ZXJ5UmVzb2x2ZXJTZXJ2aWNlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBJbmRleFRlbXBsYXRlPFQ+IGV4dGVuZHMgTmdBdG9taWNDb21wb25lbnQge1xuICBzdGF0aWMgQWN0aW9uSWQgPSBBY3Rpb25JZDtcbiAgcHJvdGVjdGVkIEFjdGlvbklkID0gQWN0aW9uSWQ7XG4gIHByb3RlY3RlZCBzdG9yZSA9IGluamVjdChJbmRleFRlbXBsYXRlU3RvcmUpO1xuICBcbiAgcmVhZG9ubHkgZGl2aWRlckZyYW1lID0gdmlld0NoaWxkKERpdmlkZXJGcmFtZSk7XG5cbiAgQEVmZmVjdChUYWJsZU9yZ2FuaXNtLkFjdGlvbklkLkhFQURFUl9DTElDSylcbiAgcHJvdGVjdGVkIG9uVGFibGVIZWFkZXJDbGljayhjb2x1bW46IHN0cmluZykge1xuICAgIHRoaXMuZGlzcGF0Y2goe2lkOiBBY3Rpb25JZC5UQUJMRV9IRUFERVJfQ0xJQ0ssIHBheWxvYWQ6IGNvbHVtbn0pO1xuICB9XG5cbiAgQEVmZmVjdChUYWJsZU9yZ2FuaXNtLkFjdGlvbklkLkNIRUNLQk9YX0NMSUNLKVxuICBwcm90ZWN0ZWQgb25DaGVja2JveENsaWNrSXRlbShpdGVtOiBUKSB7XG4gICAgdGhpcy5kaXNwYXRjaCh7aWQ6IEFjdGlvbklkLlRBQkxFX0NIRUNLQk9YX0NMSUNLLCBwYXlsb2FkOiBpdGVtfSk7XG4gIH1cblxuICBARWZmZWN0KEdyaWRDYXJkc1NlY3Rpb25PcmdhbmlzbS5BY3Rpb25JZC5JVEVNX0NMSUNLKVxuICBARWZmZWN0KExpc3RPcmdhbmlzbS5BY3Rpb25JZC5DTElDS19JVEVNKVxuICBARWZmZWN0KFRyZWVMaXN0T3JnYW5pc21TdG9yZS5BY3Rpb25JZC5DTElDS19JVEVNKVxuICBwcm90ZWN0ZWQgb25JdGVtQ2xpY2tlZChpdGVtOiBUKSB7XG4gICAgdGhpcy5kaXNwYXRjaCh7aWQ6IEFjdGlvbklkLklURU1fQ0xJQ0ssIHBheWxvYWQ6IGl0ZW19KTtcbiAgfVxuXG4gIEBFZmZlY3QoR3JpZENhcmRzU2VjdGlvbk9yZ2FuaXNtLkFjdGlvbklkLklURU1fTUVOVV9DTElDSylcbiAgQEVmZmVjdChMaXN0T3JnYW5pc20uQWN0aW9uSWQuSVRFTV9CVVRUT05fQ0xJQ0spXG4gIHByb3RlY3RlZCBvbkl0ZW1CdXR0b25DbGlja2VkKGl0ZW06IFQpIHtcbiAgICB0aGlzLmRpc3BhdGNoKHtpZDogQWN0aW9uSWQuTElTVF9JVEVNX0JVVFRPTl9DTElDS0VELCBwYXlsb2FkOiBpdGVtfSk7XG4gIH1cblxuICBARWZmZWN0KFRhYmxlT3JnYW5pc21TdG9yZS5BY3Rpb25JZC5IRUFERVJfQ0hFQ0tCT1hfQ0xJQ0spXG4gIHByb3RlY3RlZCBvbkhlYWRlckNoZWNrYm94Q2xpY2soKSB7XG4gICAgdGhpcy5kaXNwYXRjaCh7aWQ6IEFjdGlvbklkLlRBQkxFX0hFQURFUl9DSEVDS0JPWF9DTElDS30pO1xuICB9XG5cbiAgQEVmZmVjdChOYXZBY3Rpb25JZC5CQUNLKVxuICBwcm90ZWN0ZWQgYmFjaygpIHtcbiAgICB0aGlzLmRpc3BhdGNoKHtpZDogQWN0aW9uSWQuQkFDS30pO1xuICB9XG59XG4iXX0=
|