@coolon/angular-ui-powerups 12.4.0-alpha.78 → 12.4.0-alpha.8
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/assets/activities.scss +70 -0
- package/assets/form.scss +2 -10
- package/assets/interaction.scss +7 -10
- package/assets/mixins.scss +7 -5
- package/assets/styles.scss +15 -11
- package/bundles/coolon-angular-ui-powerups-cypress.umd.js +336 -741
- package/bundles/coolon-angular-ui-powerups-cypress.umd.js.map +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.js +422 -1387
- package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/cypress/components/aup-command-face.d.ts +8 -2
- package/cypress/components/aup-command.d.ts +1 -2
- package/cypress/components/aup-empty-state.d.ts +2 -1
- package/cypress/components/aup-input.d.ts +5 -11
- package/cypress/components/aup-more-menu.d.ts +4 -0
- package/cypress/components/aup-popup-menu.d.ts +7 -0
- package/cypress/components/aup-table.d.ts +18 -5
- package/cypress/components/button-mixin.d.ts +19 -0
- package/cypress/components/button.d.ts +7 -11
- package/cypress/coolon-angular-ui-powerups-cypress.metadata.json +1 -1
- package/cypress/exports.d.ts +4 -24
- package/cypress/package.json +1 -1
- package/cypress/page-element.d.ts +12 -12
- package/cypress/page.d.ts +34 -8
- package/cypress/section.d.ts +55 -0
- package/esm2015/cypress/components/aup-command-face.js +22 -11
- package/esm2015/cypress/components/aup-command-face.js.map +1 -1
- package/esm2015/cypress/components/aup-command-face.metadata.json +1 -1
- package/esm2015/cypress/components/aup-command.js +6 -12
- package/esm2015/cypress/components/aup-command.js.map +1 -1
- package/esm2015/cypress/components/aup-command.metadata.json +1 -1
- package/esm2015/cypress/components/aup-empty-state.js +2 -2
- package/esm2015/cypress/components/aup-empty-state.js.map +1 -1
- package/esm2015/cypress/components/aup-empty-state.metadata.json +1 -1
- package/esm2015/cypress/components/aup-input.js +5 -17
- package/esm2015/cypress/components/aup-input.js.map +1 -1
- package/esm2015/cypress/components/aup-input.metadata.json +1 -1
- package/esm2015/cypress/components/aup-more-menu.js +7 -0
- package/esm2015/cypress/components/aup-more-menu.js.map +1 -0
- package/esm2015/cypress/components/aup-more-menu.metadata.json +1 -0
- package/esm2015/cypress/components/aup-navigation.js +1 -1
- package/esm2015/cypress/components/aup-navigation.js.map +1 -1
- package/esm2015/cypress/components/aup-popup-menu.js +19 -0
- package/esm2015/cypress/components/aup-popup-menu.js.map +1 -0
- package/esm2015/cypress/components/aup-popup-menu.metadata.json +1 -0
- package/esm2015/cypress/components/aup-table.js +33 -5
- package/esm2015/cypress/components/aup-table.js.map +1 -1
- package/esm2015/cypress/components/aup-table.metadata.json +1 -1
- package/esm2015/cypress/components/button-mixin.js +15 -0
- package/esm2015/cypress/components/button-mixin.js.map +1 -0
- package/esm2015/cypress/components/button-mixin.metadata.json +1 -0
- package/esm2015/cypress/components/button.js +10 -4
- package/esm2015/cypress/components/button.js.map +1 -1
- package/esm2015/cypress/components/button.metadata.json +1 -1
- package/esm2015/cypress/exports.js +4 -24
- package/esm2015/cypress/exports.js.map +1 -1
- package/esm2015/cypress/exports.metadata.json +1 -1
- package/esm2015/cypress/page-element.js +19 -26
- package/esm2015/cypress/page-element.js.map +1 -1
- package/esm2015/cypress/page-element.metadata.json +1 -1
- package/esm2015/cypress/page.js +19 -31
- package/esm2015/cypress/page.js.map +1 -1
- package/esm2015/cypress/page.metadata.json +1 -1
- package/esm2015/cypress/section.js +76 -0
- package/esm2015/cypress/section.js.map +1 -0
- package/esm2015/cypress/section.metadata.json +1 -0
- package/esm2015/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
- package/esm2015/lib/components/busy-overlay/busy-overlay.component.js +1 -1
- package/esm2015/lib/components/busy-overlay/busy-overlay.component.metadata.json +1 -1
- package/esm2015/lib/components/card-container/card-container.component.js +84 -0
- package/esm2015/lib/components/card-container/card-container.component.js.map +1 -0
- package/esm2015/lib/components/card-container/card-container.component.metadata.json +1 -0
- package/esm2015/lib/components/card-container/card-container.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/{labelled-value/labelled-value.component.scss.shim.ngstyle.js.map → card-container/card-container.component.scss.shim.ngstyle.js.map} +1 -1
- package/esm2015/lib/components/commands/command/command.component.js +1 -1
- package/esm2015/lib/components/commands/command/command.component.metadata.json +1 -1
- package/esm2015/lib/components/commands/command-face/command-face.component.js +1 -5
- package/esm2015/lib/components/commands/command-face/command-face.component.js.map +1 -1
- package/esm2015/lib/components/commands/command-face/command-face.component.metadata.json +1 -1
- package/esm2015/lib/components/commands/group/popup-menu/abstract-popup-menu.component.js +1 -1
- package/esm2015/lib/components/commands/group/popup-menu/abstract-popup-menu.component.js.map +1 -1
- package/esm2015/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.js +1 -1
- package/esm2015/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.js.map +1 -1
- package/esm2015/lib/components/commands/group/tool-bar/tool-bar.component.js +1 -1
- package/esm2015/lib/components/commands/group/tool-bar/tool-bar.component.metadata.json +1 -1
- package/esm2015/lib/components/components.module.js +25 -43
- package/esm2015/lib/components/components.module.js.map +1 -1
- package/esm2015/lib/components/components.module.metadata.json +1 -1
- package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
- package/esm2015/lib/components/empty-state/empty-state.component.js +1 -1
- package/esm2015/lib/components/empty-state/empty-state.component.metadata.json +1 -1
- package/esm2015/lib/components/exports.js +4 -8
- package/esm2015/lib/components/exports.js.map +1 -1
- package/esm2015/lib/components/exports.metadata.json +1 -1
- package/esm2015/lib/components/focus-container/focus-container.component.js +1 -1
- package/esm2015/lib/components/focus-container/focus-container.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/abstract-input.component.js +0 -1
- package/esm2015/lib/components/forms/abstract-input.component.js.map +1 -1
- package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.js +1 -1
- package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.js +1 -1
- package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.js +1 -1
- package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/select-input/select-input.component.js +2 -2
- package/esm2015/lib/components/forms/select-input/select-input.component.js.map +1 -1
- package/esm2015/lib/components/forms/select-input/select-input.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/string-input/string-input.component.js +1 -1
- package/esm2015/lib/components/forms/string-input/string-input.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/text-input/text-input.component.js +1 -1
- package/esm2015/lib/components/forms/text-input/text-input.component.metadata.json +1 -1
- package/esm2015/lib/components/icon/icon.component.js +1 -1
- package/esm2015/lib/components/icon/icon.component.metadata.json +1 -1
- package/esm2015/lib/components/noop/noop.component.js +1 -1
- package/esm2015/lib/components/noop/noop.component.metadata.json +1 -1
- package/esm2015/lib/components/scroll-container/scroll-container.component.js +1 -1
- package/esm2015/lib/components/scroll-container/scroll-container.component.metadata.json +1 -1
- package/esm2015/lib/components/section-header/section-header.component.js +5 -12
- package/esm2015/lib/components/section-header/section-header.component.js.map +1 -1
- package/esm2015/lib/components/section-header/section-header.component.metadata.json +1 -1
- package/esm2015/lib/components/switch-case/switch-case.component.js +1 -1
- package/esm2015/lib/components/switch-case/switch-case.component.metadata.json +1 -1
- package/esm2015/lib/components/tables/abstract-table-model.js +20 -34
- package/esm2015/lib/components/tables/abstract-table-model.js.map +1 -1
- package/esm2015/lib/components/tables/abstract-table-model.metadata.json +1 -1
- package/esm2015/lib/components/tables/table/cell-portal-ref.js.map +1 -1
- package/esm2015/lib/components/tables/table/cell-renderer.js.map +1 -1
- package/esm2015/lib/components/tables/table/column-model.js +10 -35
- package/esm2015/lib/components/tables/table/column-model.js.map +1 -1
- package/esm2015/lib/components/tables/table/column-model.metadata.json +1 -1
- package/esm2015/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.js.map +1 -1
- package/esm2015/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.metadata.json +1 -1
- package/esm2015/lib/components/tables/table/edit-row-controls/edit-row-controls.component.js +12 -19
- package/esm2015/lib/components/tables/table/edit-row-controls/edit-row-controls.component.js.map +1 -1
- package/esm2015/lib/components/tables/table/edit-row-controls/edit-row-controls.component.metadata.json +1 -1
- package/esm2015/lib/components/tables/table/edit-session.js.map +1 -0
- package/esm2015/lib/components/tables/{edit-session.metadata.json → table/edit-session.metadata.json} +1 -1
- package/esm2015/lib/components/tables/table/paginator/paginator.component.js +1 -1
- package/esm2015/lib/components/tables/table/paginator/paginator.component.metadata.json +1 -1
- package/esm2015/lib/components/tables/table/table-cell-renderer/table-cell-renderer.component.js +1 -1
- package/esm2015/lib/components/tables/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -1
- package/esm2015/lib/components/tables/table/table-header-cell-renderer/table-header-cell-renderer.component.js +1 -1
- package/esm2015/lib/components/tables/table/table-header-cell-renderer/table-header-cell-renderer.component.metadata.json +1 -1
- package/esm2015/lib/components/tables/table/table-row-menu/table-row-menu.component.js +2 -0
- package/esm2015/lib/components/tables/table/table-row-menu/table-row-menu.component.js.map +1 -1
- package/esm2015/lib/components/tables/table/table-row-menu/table-row-menu.component.metadata.json +1 -1
- package/esm2015/lib/components/tables/table/table.component.js +13 -14
- package/esm2015/lib/components/tables/table/table.component.js.map +1 -1
- package/esm2015/lib/components/tables/table/table.component.metadata.json +1 -1
- package/esm2015/lib/components/tables/tree-table/flattened-tree-list-model.js +4 -4
- package/esm2015/lib/components/tables/tree-table/flattened-tree-list-model.js.map +1 -1
- package/esm2015/lib/components/tables/tree-table/flattened-tree-list-model.metadata.json +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.js +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.metadata.json +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.js +13 -21
- package/esm2015/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.js.map +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.metadata.json +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-label-column-model.js +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-label-column-model.js.map +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-label-column-model.metadata.json +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-node.js +2 -0
- package/esm2015/lib/components/tables/tree-table/tree-node.js.map +1 -0
- package/esm2015/lib/components/tables/tree-table/tree-node.metadata.json +1 -0
- package/esm2015/lib/components/tables/tree-table/tree-table-component.js +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-table-component.js.map +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-table-component.metadata.json +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-table-model.js +2 -3
- package/esm2015/lib/components/tables/tree-table/tree-table-model.js.map +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-table-model.metadata.json +1 -1
- package/esm2015/lib/components/tables/tree-table/visitable.class.js +26 -0
- package/esm2015/lib/components/tables/tree-table/visitable.class.js.map +1 -0
- package/esm2015/lib/components/tables/tree-table/visitable.class.metadata.json +1 -0
- package/esm2015/lib/components/track-by.js +0 -12
- package/esm2015/lib/components/track-by.js.map +1 -1
- package/esm2015/lib/components/vertical-focus-container/vertical-focus-container.component.js +1 -1
- package/esm2015/lib/components/vertical-focus-container/vertical-focus-container.component.metadata.json +1 -1
- package/esm2015/lib/directives/command.directive.js +1 -1
- package/esm2015/lib/directives/command.directive.js.map +1 -1
- package/esm2015/lib/directives/directives.module.ngfactory.js.map +1 -1
- package/esm2015/lib/interaction/abstract-interaction-context.js +0 -7
- package/esm2015/lib/interaction/abstract-interaction-context.js.map +1 -1
- package/esm2015/lib/interaction/abstract-interaction-context.metadata.json +1 -1
- package/esm2015/lib/interaction/activity.js +1 -2
- package/esm2015/lib/interaction/activity.js.map +1 -1
- package/esm2015/lib/interaction/alert.js +1 -17
- package/esm2015/lib/interaction/alert.js.map +1 -1
- package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js +11 -17
- package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js.map +1 -1
- package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +3 -3
- package/esm2015/lib/interaction/components/activity-container/activity-container.component.js.map +1 -1
- package/esm2015/lib/interaction/components/activity-container/activity-container.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.js +1 -1
- package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/activity-title/activity-title.component.js +1 -1
- package/esm2015/lib/interaction/components/activity-title/activity-title.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.js +0 -4
- package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.js.map +1 -1
- package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.js +2 -5
- package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.js.map +1 -1
- package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.js +2 -5
- package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.js.map +1 -1
- package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.js +2 -5
- package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.js.map +1 -1
- package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.js +1 -1
- package/esm2015/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +14 -8
- package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js.map +1 -1
- package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js +31 -8
- package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js.map +1 -1
- package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +26 -7
- package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js.map +1 -1
- package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js +3 -10
- package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js.map +1 -1
- package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.js +43 -0
- package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.js.map +1 -0
- package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.metadata.json +1 -0
- package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.ngfactory.js.map +1 -0
- package/esm2015/lib/interaction/components/input-activities/input-activity-data.js +2 -0
- package/esm2015/lib/interaction/components/input-activities/input-activity-data.js.map +1 -0
- package/esm2015/lib/interaction/components/input-activities/input-activity-data.metadata.json +1 -0
- package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.js +2 -0
- package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.js.map +1 -0
- package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.metadata.json +1 -0
- package/esm2015/lib/interaction/components/input-activities/select-input-activity.js +3 -5
- package/esm2015/lib/interaction/components/input-activities/select-input-activity.js.map +1 -1
- package/esm2015/lib/interaction/components/input-activities/select-input-activity.metadata.json +1 -1
- package/esm2015/lib/interaction/components/input-activities/string-input-activity.js +4 -6
- package/esm2015/lib/interaction/components/input-activities/string-input-activity.js.map +1 -1
- package/esm2015/lib/interaction/components/input-activities/string-input-activity.metadata.json +1 -1
- package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js +1 -2
- package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js.map +1 -1
- package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.metadata.json +1 -1
- package/esm2015/lib/interaction/exports.js +4 -8
- package/esm2015/lib/interaction/exports.js.map +1 -1
- package/esm2015/lib/interaction/exports.metadata.json +1 -1
- package/esm2015/lib/interaction/interaction-context.js.map +1 -1
- package/esm2015/lib/interaction/interaction.module.js +9 -29
- package/esm2015/lib/interaction/interaction.module.js.map +1 -1
- package/esm2015/lib/interaction/interaction.module.metadata.json +1 -1
- package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
- package/esm2015/lib/interaction/result.js +4 -0
- package/esm2015/lib/interaction/result.js.map +1 -0
- package/esm2015/lib/interaction/result.metadata.json +1 -0
- package/esm2015/lib/interaction/services/interaction.service.js +1 -1
- package/esm2015/lib/interaction/services/interaction.service.js.map +1 -1
- package/esm2015/lib/place/components/abstract-place-navigation.component.js +1 -1
- package/esm2015/lib/place/components/abstract-place-navigation.component.js.map +1 -1
- package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js +1 -1
- package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.metadata.json +1 -1
- package/esm2015/lib/place/components/not-authorised-notice/not-authorised-notice.component.js +1 -1
- package/esm2015/lib/place/components/not-authorised-notice/not-authorised-notice.component.metadata.json +1 -1
- package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +1 -1
- package/esm2015/lib/place/components/place-outlet/place-outlet.component.metadata.json +1 -1
- package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js +1 -1
- package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.metadata.json +1 -1
- package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +1 -1
- package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.metadata.json +1 -1
- package/esm2015/lib/place/guards/consolidated-param-map.js +1 -2
- package/esm2015/lib/place/guards/consolidated-param-map.js.map +1 -1
- package/esm2015/lib/place/guards/consolidated-param-map.metadata.json +1 -1
- package/esm2015/lib/place/guards/place.guard.js +1 -2
- package/esm2015/lib/place/guards/place.guard.js.map +1 -1
- package/esm2015/lib/place/place-component.js +4 -31
- package/esm2015/lib/place/place-component.js.map +1 -1
- package/esm2015/lib/place/place-component.metadata.json +1 -1
- package/esm2015/lib/place/place-router.js +14 -11
- package/esm2015/lib/place/place-router.js.map +1 -1
- package/esm2015/lib/place/place-router.metadata.json +1 -1
- package/esm2015/lib/place/place.module.ngfactory.js.map +1 -1
- package/esm2015/lib/place/visit.js +1 -5
- package/esm2015/lib/place/visit.js.map +1 -1
- package/esm2015/lib/place/visit.metadata.json +1 -1
- package/esm2015/lib/services/exports.js +0 -2
- package/esm2015/lib/services/exports.js.map +1 -1
- package/esm2015/lib/services/exports.metadata.json +1 -1
- package/fesm2015/coolon-angular-ui-powerups-cypress.js +244 -546
- package/fesm2015/coolon-angular-ui-powerups-cypress.js.map +1 -1
- package/fesm2015/coolon-angular-ui-powerups.js +354 -1177
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/components/{cards/card-container → card-container}/card-container.component.d.ts +9 -30
- package/lib/components/commands/command-face/command-face.component.d.ts +0 -1
- package/lib/components/exports.d.ts +4 -8
- package/lib/components/section-header/section-header.component.d.ts +2 -5
- package/lib/components/tables/abstract-table-model.d.ts +7 -10
- package/lib/components/tables/table/cell-portal-ref.d.ts +1 -1
- package/lib/components/tables/table/cell-renderer.d.ts +0 -2
- package/lib/components/tables/table/column-model.d.ts +5 -14
- package/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.d.ts +1 -2
- package/lib/components/tables/table/edit-row-controls/edit-row-controls.component.d.ts +2 -4
- package/lib/components/tables/{edit-session.d.ts → table/edit-session.d.ts} +3 -3
- package/lib/components/tables/table/table-cell-renderer/table-cell-renderer.component.d.ts +1 -1
- package/lib/components/tables/table/table-row-menu/table-row-menu.component.d.ts +3 -2
- package/lib/components/tables/table/table.component.d.ts +12 -13
- package/lib/components/tables/tree-table/flattened-tree-list-model.d.ts +1 -0
- package/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.d.ts +3 -2
- package/lib/components/tables/tree-table/tree-label-column-model.d.ts +3 -2
- package/lib/components/tables/tree-table/tree-node.d.ts +3 -0
- package/lib/components/tables/tree-table/tree-table-component.d.ts +1 -1
- package/lib/components/tables/tree-table/tree-table-model.d.ts +5 -4
- package/lib/components/tables/tree-table/visitable.class.d.ts +22 -0
- package/lib/components/track-by.d.ts +0 -9
- package/lib/interaction/abstract-interaction-context.d.ts +0 -1
- package/lib/interaction/alert.d.ts +1 -7
- package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +3 -14
- package/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.d.ts +1 -1
- package/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.d.ts +1 -2
- package/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.d.ts +1 -2
- package/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.d.ts +1 -2
- package/lib/interaction/components/alert-dialog/alert-dialog.component.d.ts +7 -2
- package/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.d.ts +10 -2
- package/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.d.ts +9 -2
- package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +0 -2
- package/lib/interaction/components/input-activities/abstract-input-activity.d.ts +12 -0
- package/lib/interaction/components/input-activities/input-activity-data.d.ts +11 -0
- package/lib/interaction/components/input-activities/select-input-activity-data.d.ts +8 -0
- package/lib/interaction/components/input-activities/select-input-activity.d.ts +3 -11
- package/lib/interaction/components/input-activities/string-input-activity.d.ts +2 -6
- package/lib/interaction/exports.d.ts +4 -8
- package/lib/interaction/interaction-context.d.ts +0 -1
- package/lib/interaction/result.d.ts +8 -0
- package/lib/place/place-component.d.ts +1 -6
- package/lib/place/place-router.d.ts +2 -2
- package/lib/services/exports.d.ts +0 -2
- package/package.json +16 -17
- package/schematics/activity/index.js +1 -1
- package/schematics/activity/index.js.map +1 -1
- package/schematics/activity/templates/component/__name@dasherize__.component.html.template +1 -1
- package/schematics/activity/templates/component/__name@dasherize__.component.ts.template +3 -5
- package/schematics/aup-i18n/index.js +1 -1
- package/schematics/aup-i18n/index.js.map +1 -1
- package/schematics/component/index.js +1 -1
- package/schematics/component/index.js.map +1 -1
- package/schematics/component/templates/component/__name@dasherize__.component.ts.template +1 -1
- package/schematics/place-routes/place-class-scanner.js +1 -3
- package/schematics/place-routes/place-class-scanner.js.map +1 -1
- package/schematics/utils/build-context.d.ts +3 -6
- package/schematics/utils/build-context.js +3 -3
- package/schematics/utils/build-context.js.map +1 -1
- package/schematics/utils/workspace.d.ts +0 -1
- package/schematics/utils/workspace.js +3 -11
- package/schematics/utils/workspace.js.map +1 -1
- package/assets/activities/activities.scss +0 -77
- package/assets/activities/input-activities.scss +0 -36
- package/assets/cards.scss +0 -17
- package/assets/empty-state.scss +0 -11
- package/assets/forms/mixins.scss +0 -6
- package/assets/interaction/editor/inline-string-editor.scss +0 -54
- package/assets/markdown.scss +0 -10
- package/assets/pills.scss +0 -45
- package/cypress/component-builder.d.ts +0 -71
- package/cypress/components/aup-abstract-activity.d.ts +0 -31
- package/cypress/components/aup-abstract-table.d.ts +0 -18
- package/cypress/components/aup-activity.d.ts +0 -9
- package/cypress/components/aup-alert-dialog.d.ts +0 -27
- package/cypress/components/aup-alert.d.ts +0 -9
- package/cypress/components/aup-confirm-dialog.d.ts +0 -27
- package/cypress/components/aup-confirm.d.ts +0 -11
- package/cypress/components/aup-modal-activity.d.ts +0 -24
- package/cypress/components/aup-modal-mixin.d.ts +0 -23
- package/cypress/components/aup-tree-table.d.ts +0 -16
- package/cypress/components/form-element-mixin.d.ts +0 -22
- package/cypress/components/mat-checkbox.d.ts +0 -31
- package/cypress/components/popup/aup-abstract-popup-menu.d.ts +0 -15
- package/cypress/components/popup/aup-more-menu.d.ts +0 -5
- package/cypress/components/popup/aup-popup-menu-panel.d.ts +0 -3
- package/cypress/components/popup/aup-popup-menu.d.ts +0 -7
- package/cypress/components/table/aup-table-cell.d.ts +0 -9
- package/cypress/components/table/aup-table-column.d.ts +0 -10
- package/cypress/components/table/aup-table-row.d.ts +0 -17
- package/cypress/components/table/aup-table-selection-cell.d.ts +0 -5
- package/cypress/components/table/aup-table-selection-column.d.ts +0 -5
- package/cypress/element-locator.d.ts +0 -8
- package/cypress/page-builder.d.ts +0 -9
- package/esm2015/cypress/component-builder.js +0 -92
- package/esm2015/cypress/component-builder.js.map +0 -1
- package/esm2015/cypress/component-builder.metadata.json +0 -1
- package/esm2015/cypress/components/aup-abstract-activity.js +0 -12
- package/esm2015/cypress/components/aup-abstract-activity.js.map +0 -1
- package/esm2015/cypress/components/aup-abstract-activity.metadata.json +0 -1
- package/esm2015/cypress/components/aup-abstract-table.js +0 -50
- package/esm2015/cypress/components/aup-abstract-table.js.map +0 -1
- package/esm2015/cypress/components/aup-abstract-table.metadata.json +0 -1
- package/esm2015/cypress/components/aup-activity.js +0 -13
- package/esm2015/cypress/components/aup-activity.js.map +0 -1
- package/esm2015/cypress/components/aup-activity.metadata.json +0 -1
- package/esm2015/cypress/components/aup-alert-dialog.js +0 -8
- package/esm2015/cypress/components/aup-alert-dialog.js.map +0 -1
- package/esm2015/cypress/components/aup-alert-dialog.metadata.json +0 -1
- package/esm2015/cypress/components/aup-alert.js +0 -13
- package/esm2015/cypress/components/aup-alert.js.map +0 -1
- package/esm2015/cypress/components/aup-alert.metadata.json +0 -1
- package/esm2015/cypress/components/aup-confirm-dialog.js +0 -8
- package/esm2015/cypress/components/aup-confirm-dialog.js.map +0 -1
- package/esm2015/cypress/components/aup-confirm-dialog.metadata.json +0 -1
- package/esm2015/cypress/components/aup-confirm.js +0 -19
- package/esm2015/cypress/components/aup-confirm.js.map +0 -1
- package/esm2015/cypress/components/aup-confirm.metadata.json +0 -1
- package/esm2015/cypress/components/aup-modal-activity.js +0 -5
- package/esm2015/cypress/components/aup-modal-activity.js.map +0 -1
- package/esm2015/cypress/components/aup-modal-activity.metadata.json +0 -1
- package/esm2015/cypress/components/aup-modal-mixin.js +0 -18
- package/esm2015/cypress/components/aup-modal-mixin.js.map +0 -1
- package/esm2015/cypress/components/aup-modal-mixin.metadata.json +0 -1
- package/esm2015/cypress/components/aup-tree-table.js +0 -34
- package/esm2015/cypress/components/aup-tree-table.js.map +0 -1
- package/esm2015/cypress/components/aup-tree-table.metadata.json +0 -1
- package/esm2015/cypress/components/form-element-mixin.js +0 -11
- package/esm2015/cypress/components/form-element-mixin.js.map +0 -1
- package/esm2015/cypress/components/form-element-mixin.metadata.json +0 -1
- package/esm2015/cypress/components/mat-checkbox.js +0 -34
- package/esm2015/cypress/components/mat-checkbox.js.map +0 -1
- package/esm2015/cypress/components/mat-checkbox.metadata.json +0 -1
- package/esm2015/cypress/components/popup/aup-abstract-popup-menu.js +0 -33
- package/esm2015/cypress/components/popup/aup-abstract-popup-menu.js.map +0 -1
- package/esm2015/cypress/components/popup/aup-abstract-popup-menu.metadata.json +0 -1
- package/esm2015/cypress/components/popup/aup-more-menu.js +0 -8
- package/esm2015/cypress/components/popup/aup-more-menu.js.map +0 -1
- package/esm2015/cypress/components/popup/aup-more-menu.metadata.json +0 -1
- package/esm2015/cypress/components/popup/aup-popup-menu-panel.js +0 -4
- package/esm2015/cypress/components/popup/aup-popup-menu-panel.js.map +0 -1
- package/esm2015/cypress/components/popup/aup-popup-menu-panel.metadata.json +0 -1
- package/esm2015/cypress/components/popup/aup-popup-menu.js +0 -12
- package/esm2015/cypress/components/popup/aup-popup-menu.js.map +0 -1
- package/esm2015/cypress/components/popup/aup-popup-menu.metadata.json +0 -1
- package/esm2015/cypress/components/table/aup-table-cell.js +0 -14
- package/esm2015/cypress/components/table/aup-table-cell.js.map +0 -1
- package/esm2015/cypress/components/table/aup-table-cell.metadata.json +0 -1
- package/esm2015/cypress/components/table/aup-table-column.js +0 -19
- package/esm2015/cypress/components/table/aup-table-column.js.map +0 -1
- package/esm2015/cypress/components/table/aup-table-column.metadata.json +0 -1
- package/esm2015/cypress/components/table/aup-table-row.js +0 -28
- package/esm2015/cypress/components/table/aup-table-row.js.map +0 -1
- package/esm2015/cypress/components/table/aup-table-row.metadata.json +0 -1
- package/esm2015/cypress/components/table/aup-table-selection-cell.js +0 -6
- package/esm2015/cypress/components/table/aup-table-selection-cell.js.map +0 -1
- package/esm2015/cypress/components/table/aup-table-selection-cell.metadata.json +0 -1
- package/esm2015/cypress/components/table/aup-table-selection-column.js +0 -6
- package/esm2015/cypress/components/table/aup-table-selection-column.js.map +0 -1
- package/esm2015/cypress/components/table/aup-table-selection-column.metadata.json +0 -1
- package/esm2015/cypress/element-locator.js +0 -16
- package/esm2015/cypress/element-locator.js.map +0 -1
- package/esm2015/cypress/element-locator.metadata.json +0 -1
- package/esm2015/cypress/page-builder.js +0 -16
- package/esm2015/cypress/page-builder.js.map +0 -1
- package/esm2015/cypress/page-builder.metadata.json +0 -1
- package/esm2015/lib/components/cards/abstract-card-container.component.js +0 -29
- package/esm2015/lib/components/cards/abstract-card-container.component.js.map +0 -1
- package/esm2015/lib/components/cards/abstract-card-container.component.metadata.json +0 -1
- package/esm2015/lib/components/cards/abstract-card-container.component.ngfactory.js.map +0 -1
- package/esm2015/lib/components/cards/card-container/card-container.component.js +0 -123
- package/esm2015/lib/components/cards/card-container/card-container.component.js.map +0 -1
- package/esm2015/lib/components/cards/card-container/card-container.component.metadata.json +0 -1
- package/esm2015/lib/components/cards/card-container/card-container.component.ngfactory.js.map +0 -1
- package/esm2015/lib/components/cards/card-container/card-container.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/components/cards/card-stack/card-stack.component.js +0 -78
- package/esm2015/lib/components/cards/card-stack/card-stack.component.js.map +0 -1
- package/esm2015/lib/components/cards/card-stack/card-stack.component.metadata.json +0 -1
- package/esm2015/lib/components/cards/card-stack/card-stack.component.ngfactory.js.map +0 -1
- package/esm2015/lib/components/cards/card-stack/card-stack.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/components/labelled-value/labelled-value.component.js +0 -22
- package/esm2015/lib/components/labelled-value/labelled-value.component.js.map +0 -1
- package/esm2015/lib/components/labelled-value/labelled-value.component.metadata.json +0 -1
- package/esm2015/lib/components/labelled-value/labelled-value.component.ngfactory.js.map +0 -1
- package/esm2015/lib/components/loading-container/loading-container.component.js +0 -45
- package/esm2015/lib/components/loading-container/loading-container.component.js.map +0 -1
- package/esm2015/lib/components/loading-container/loading-container.component.metadata.json +0 -1
- package/esm2015/lib/components/loading-container/loading-container.component.ngfactory.js.map +0 -1
- package/esm2015/lib/components/loading-container/loading-container.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/components/tables/edit-session.js.map +0 -1
- package/esm2015/lib/components/tables/table/text-search-predicate.js +0 -2
- package/esm2015/lib/components/tables/table/text-search-predicate.js.map +0 -1
- package/esm2015/lib/components/tables/table/text-search-predicate.metadata.json +0 -1
- package/esm2015/lib/components/text/markdown/markdown.component.js +0 -53
- package/esm2015/lib/components/text/markdown/markdown.component.js.map +0 -1
- package/esm2015/lib/components/text/markdown/markdown.component.metadata.json +0 -1
- package/esm2015/lib/components/text/markdown/markdown.component.ngfactory.js.map +0 -1
- package/esm2015/lib/components/text/markdown/markdown.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/interaction/components/abstract-confirm-dialog.component.js +0 -23
- package/esm2015/lib/interaction/components/abstract-confirm-dialog.component.js.map +0 -1
- package/esm2015/lib/interaction/components/abstract-confirm-dialog.component.metadata.json +0 -1
- package/esm2015/lib/interaction/components/abstract-confirm-dialog.component.ngfactory.js.map +0 -1
- package/esm2015/lib/interaction/components/abstract-dialog.component.js +0 -52
- package/esm2015/lib/interaction/components/abstract-dialog.component.js.map +0 -1
- package/esm2015/lib/interaction/components/abstract-dialog.component.metadata.json +0 -1
- package/esm2015/lib/interaction/components/abstract-dialog.component.ngfactory.js.map +0 -1
- package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.js +0 -77
- package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.js.map +0 -1
- package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.metadata.json +0 -1
- package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.ngfactory.js.map +0 -1
- package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.js +0 -30
- package/esm2015/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.js.map +0 -1
- package/esm2015/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.metadata.json +0 -1
- package/esm2015/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.ngfactory.js.map +0 -1
- package/esm2015/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.scss.shim.ngstyle.js.map +0 -1
- package/esm2015/lib/interaction/components/editors/edit-context.js +0 -2
- package/esm2015/lib/interaction/components/editors/edit-context.js.map +0 -1
- package/esm2015/lib/interaction/components/editors/edit-context.metadata.json +0 -1
- package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.js +0 -50
- package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.js.map +0 -1
- package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.metadata.json +0 -1
- package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js +0 -161
- package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js.map +0 -1
- package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.metadata.json +0 -1
- package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.ngfactory.js.map +0 -1
- package/esm2015/lib/interaction/components/input-activities/input-activity.js +0 -95
- package/esm2015/lib/interaction/components/input-activities/input-activity.js.map +0 -1
- package/esm2015/lib/interaction/components/input-activities/input-activity.metadata.json +0 -1
- package/esm2015/lib/interaction/components/input-activities/input-activity.ngfactory.js.map +0 -1
- package/esm2015/lib/services/markdown/markdown.service.js +0 -26
- package/esm2015/lib/services/markdown/markdown.service.js.map +0 -1
- package/esm2015/lib/services/markdown/markdown.service.metadata.json +0 -1
- package/esm2015/lib/services/markdown/markdown.service.ngfactory.js.map +0 -1
- package/esm2015/lib/services/markdown/pill-plugin.js +0 -38
- package/esm2015/lib/services/markdown/pill-plugin.js.map +0 -1
- package/esm2015/lib/services/markdown/pill-plugin.metadata.json +0 -1
- package/lib/components/cards/abstract-card-container.component.d.ts +0 -11
- package/lib/components/cards/card-stack/card-stack.component.d.ts +0 -65
- package/lib/components/labelled-value/labelled-value.component.d.ts +0 -7
- package/lib/components/loading-container/loading-container.component.d.ts +0 -11
- package/lib/components/tables/table/text-search-predicate.d.ts +0 -1
- package/lib/components/text/markdown/markdown.component.d.ts +0 -14
- package/lib/interaction/components/abstract-confirm-dialog.component.d.ts +0 -7
- package/lib/interaction/components/abstract-dialog.component.d.ts +0 -17
- package/lib/interaction/components/add-card-activity/add-card-activity.component.d.ts +0 -39
- package/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.d.ts +0 -12
- package/lib/interaction/components/editors/edit-context.d.ts +0 -3
- package/lib/interaction/components/editors/inline-string-editor/inline-editor-model.d.ts +0 -24
- package/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.d.ts +0 -57
- package/lib/interaction/components/input-activities/input-activity.d.ts +0 -41
- package/lib/services/markdown/markdown.service.d.ts +0 -6
- package/lib/services/markdown/pill-plugin.d.ts +0 -15
- /package/esm2015/lib/components/tables/{edit-session.js → table/edit-session.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction.service.js","sourceRoot":"","sources":["../../../../../../../libs/angular-ui-powerups/src/lib/interaction/services/interaction.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAEL,oBAAoB,EAEpB,GAAG,EACH,gBAAgB,EAEhB,gBAAgB,EAIjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAItD,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AAEzF,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;;;AAErF,IAAI,mBAAmB,GAAG,CAAC,CAAC;AAK5B,MAAM,OAAO,kBAAkB;IAmB7B,YAAqB,8BAA8D;QAA9D,mCAA8B,GAA9B,8BAA8B,CAAgC;QAjBlE,YAAO,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAGlD,sFAAsF;QACtF,uFAAuF;QACvF,wEAAwE;QACvD,0BAAqB,GAAG,IAAI,oBAAoB,EAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAY9F,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjG,IAAI,CAAC,4BAA4B,GAAG,IAAI,kBAAkB,CAAC,eAAe,EAAE,CAAC;QAC7E,IAAI,CAAC,wBAAwB,GAAG,IAAI,kBAAkB,CAAC,eAAe,EAAE,CAAC;QACzE,IAAI,CAAC,0BAA0B,GAAG,IAAI,kBAAkB,CAAC,eAAe,EAAE,CAAC;QAE3E,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CACnD,IAAI,CAAC,4BAA4B,CAAC,MAAM,EACxC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CACrC,CAAC,SAAS,EAAE,CAAC,CAAC;QAEf,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CACrD,IAAI,CAAC,4BAA4B,CAAC,MAAM,EACxC,IAAI,CAAC,wBAAwB,CAAC,MAAM,EACpC,IAAI,CAAC,0BAA0B,CAAC,MAAM,CACvC,CAAC,SAAS,EAAE,CAAC,CAAC;QAEf,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CACvB,IAAI,CAAC,0BAA0B,CAAC,MAAM,EACtC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CACrC,CAAC,SAAS,EAAE,CAAC;QAGd,uDAAuD;QACvD,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,qBAAqB,CAAC;aAC5F,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;QAE/D,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3F,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC;IAEtE,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,gCAAgC,CAAC,UAAgC;QAC/D,OAAO,IAAI,CAAC,yCAAyC,CAAC,UAAU,CAAC,CAAC;IACpE,CAAC;IAED;;;OAGG;IACH,yCAAyC,CAAC,UAAgC;QACxE,kDAAkD;QAClD,OAAO,IAAI,CAAC,8BAA8B,CAAC,wBAAwB,CAAC,OAAO,EAAE,IAAI,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACnK,CAAC;IAED,iCAAiC,CAAC,kBAAqE;QACrG,kDAAkD;QAClD,uCAAuC;QACvC,8CAA8C;QAC9C,kBAAkB,CAAC,UAAU,CAAC,KAAK,EAAE,mBAAmB,EAAE,EAAE,IAAI,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACpJ,CAAC;IAGD;;;;;;OAMG;IACH,mBAAmB,CAAC,MAAmB;QACrC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;QAC9E,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,OAAO,IAAI,gCAAgC,CACzC,IAAI,CAAC,2BAA2B,EAChC,IAAI,CAAC,kBAAkB,EACvB,GAAG,EAAE;YACH,OAAO,IAAI,CAAC,8BAA8B,CAAC,wBAAwB,CAAC,WAAW,EAAE,IAAI,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;QAC3K,CAAC,CAAC,CAAC;IACP,CAAC;;;;YAtGF,UAAU,SAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;YANQ,8BAA8B;;AA8GvC,WAAiB,kBAAkB;IAqBjC;;;;OAIG;IACH,MAAa,eAAgB,SAAQ,gBAAgB;QAOnD;YACE,KAAK,EAAE,CAAC;YANF,kBAAa,GAAG,IAAI,gBAAgB,EAAsB,CAAC;YAC3D,sBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,oBAAoB,EAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAM1G,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACzF,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,UAAU,EAAE,CAAC;YACrD,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,mBAAmB;YACrB,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QACrC,CAAC;QAED,KAAK,CAAC,OAA2B;YAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,CAAC,OAA2B;YAChC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QAED,QAAQ;YACN,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3B,CAAC;QAED,WAAW,CAAC,QAA6B;YACvC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;KACF;IAjCY,kCAAe,kBAiC3B,CAAA;IAED,MAAa,UAAU;QAErB,YAA6B,WAAwB,EAAmB,eAAgC;YAA3E,gBAAW,GAAX,WAAW,CAAa;YAAmB,oBAAe,GAAf,eAAe,CAAiB;QACxG,CAAC;QAED,WAAW;QACX,YAAY,CAAC,OAA2B;YACtC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACpC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,mCAAmC,EAAE,CAAC;QACpH,CAAC;QAED,WAAW;QACH,sBAAsB;YAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,KAAK,CAAC;QACrD,CAAC;QAED,WAAW;QACX,cAAc,CAAC,OAA2B;YACxC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrC,kBAAkB;YAClB,8GAA8G;YAC9G,wFAAwF;YACxF,yGAAyG;YACzG,2EAA2E;YAC3E,iGAAiG;YACjG,iFAAiF;YACjF,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,mCAAmC,EAAE,CAAC;QACpH,CAAC;KACF;IA7BY,6BAAU,aA6BtB,CAAA;AAEH,CAAC,EA5FgB,kBAAkB,KAAlB,kBAAkB,QA4FlC","sourcesContent":["import { Injectable } from '@angular/core';\nimport {\n BooleanValueModelChain,\n DelegatingValueModel,\n Disposable,\n Dsl,\n GarbageCollector, ListModel,\n ListModelChain,\n MutableListModel,\n MutableValueModel, Trace,\n ValueModel,\n ValueModelChain\n} from '@coolon/pectin';\nimport { assert } from '@coolon/typescript-utilities';\nimport { PlaceRouter } from '../../place/place-router';\nimport { InPlaceInteractionContextComponent } from '../components/inplace-interaction-context/in-place-interaction-context.component';\nimport { InteractionContext } from '../interaction-context';\nimport { InteractionServiceRoutingAdapter } from './interaction-service-routing-adapter';\n\nimport { ModalInteractionContextFactory } from './modal-interaction-context.factory';\n\nlet inplaceMonitorCount = 0;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class InteractionService {\n\n private readonly garbage = new GarbageCollector();\n readonly active: BooleanValueModelChain;\n\n // private readonly _activeModalContext = new MutableValueModel<InteractionContext>();\n // private readonly _activeInlineContext = new MutableValueModel<InteractionContext>();\n // private readonly _activeContext: ValueModelChain<InteractionContext>;\n private readonly _navigationInProgress = new DelegatingValueModel<boolean>().withDefault(false);\n\n private placeRouter: PlaceRouter;\n private exclusiveInteractionRegistry: InteractionService.ContextRegistry;\n private modalInteractionRegistry: InteractionService.ContextRegistry;\n private inPlaceInteractionRegistry: InteractionService.ContextRegistry;\n private activeModalContext: ValueModelChain<InteractionContext>;\n\n readonly activeInteractionContextIds: ListModelChain<string>;\n readonly inModalInteraction: BooleanValueModelChain;\n\n constructor(readonly modelInteractionContextFactory: ModalInteractionContextFactory) {\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this.garbage);\n\n this.exclusiveInteractionRegistry = new InteractionService.ContextRegistry();\n this.modalInteractionRegistry = new InteractionService.ContextRegistry();\n this.inPlaceInteractionRegistry = new InteractionService.ContextRegistry();\n\n this.modalInteractionRegistry.disableWhen(valueOf.any(\n this.exclusiveInteractionRegistry.active,\n this.modalInteractionRegistry.active\n ).areTruthy());\n\n this.inPlaceInteractionRegistry.disableWhen(valueOf.any(\n this.exclusiveInteractionRegistry.active,\n this.modalInteractionRegistry.active,\n this.inPlaceInteractionRegistry.active\n ).areTruthy());\n\n this.active = valueOf.any(\n this.inPlaceInteractionRegistry.active,\n this.modalInteractionRegistry.active\n ).areTruthy();\n\n\n // TODO: chain.concat(listOrValueModels) would be nice.\n this.activeInteractionContextIds = chain(this.inPlaceInteractionRegistry.interactionContextIds)\n .concat(this.modalInteractionRegistry.interactionContextIds);\n\n this.activeModalContext = chain(this.modalInteractionRegistry.interactionContexts).first();\n this.inModalInteraction = chain(this.activeModalContext).isNotNil();\n\n }\n\n isActive(): boolean {\n return this.active.value;\n }\n\n /**\n * @deprecated use #createModalInteractionContextDisposedWith instead.\n * @param disposable\n */\n createModalInteractionContextFor(disposable: Disposable.Collector): InteractionContext {\n return this.createModalInteractionContextDisposedWith(disposable);\n }\n\n /**\n * Creates a new model interaction context that will be disposed along with the component.\n * @param disposable\n */\n createModalInteractionContextDisposedWith(disposable: Disposable.Collector): InteractionContext {\n // TODO: look at making the registry the factory..\n return this.modelInteractionContextFactory.createInteractionContext('modal', new InteractionService.ApiAdapter(this.placeRouter, this.modalInteractionRegistry));\n }\n\n registerInplaceInteractionContext(interactionContext: InPlaceInteractionContextComponent<any, any, any>) {\n // TODO: look at making the registry the factory..\n // Todo: check for double registration.\n // Todo: allow multiple inplace interactions..\n interactionContext.initialise(`ip${++inplaceMonitorCount}`, new InteractionService.ApiAdapter(this.placeRouter, this.inPlaceInteractionRegistry));\n }\n\n\n /**\n * Creates an interaction context that will prevent any other contexts from starting an\n * activity until it is disposed. This is intended for use by the router for passing\n * to PlaceComponent.canDeactivate(interactionContext). This ensures components don't\n * try and interact in a way that we can't track and synchronise with the browser back\n * button.\n */\n registerPlaceRouter(router: PlaceRouter): InteractionServiceRoutingAdapter {\n assert.isFalsey(this.placeRouter);\n this.placeRouter = router;\n this._navigationInProgress.setDelegate(this.placeRouter.navigationInProgress);\n const self = this;\n return new InteractionServiceRoutingAdapter(\n this.activeInteractionContextIds,\n this.activeModalContext,\n () => {\n return self.modelInteractionContextFactory.createInteractionContext('exclusive', new InteractionService.ApiAdapter(this.placeRouter, this.exclusiveInteractionRegistry));\n });\n }\n\n}\n\nexport namespace InteractionService {\n\n export interface Api {\n\n /**\n * Notifies the interaction service that a particular interactionContext has become active. The interaction\n * services will then push changes to the router to track state. If the router is idle, the promise will\n * resolve when the routing has finished updating. Otherwise it will return immediately.\n * @param interactionContext\n */\n notifyActive(interactionContext: InteractionContext): Promise<unknown>;\n\n /**\n * Notifies the interaction service that a particular interactionContext has become idle. The interaction\n * services will then push changes to the router to track state. If the router is idle, the promise will\n * resolve when the routing has finished updating. Otherwise it will return immediately.\n * @param interactionContext\n */\n notifyFinished(interactionContext: InteractionContext): Promise<unknown>;\n }\n\n /**\n * Provides a mechanism for the service to keep track of what the API adapters are doing to\n * ensure the rules are followed, i.e. modal or in-place interaction aren't started while\n * an exclusive routing interaction is active.\n */\n export class ContextRegistry extends GarbageCollector {\n\n private _interactions = new MutableListModel<InteractionContext>();\n private _disabledDelegate = this.registerDisposable(new DelegatingValueModel<boolean>().withDefault(false));\n readonly active: BooleanValueModelChain;\n readonly interactionContextIds: ListModelChain<string>;\n\n constructor() {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this.active = chain(this._interactions).isNotEmpty();\n this.interactionContextIds = chain(this._interactions).pluck(\"identifier\");\n }\n\n get interactionContexts():ListModel<InteractionContext> {\n return this._interactions.readonly;\n }\n\n start(context: InteractionContext) {\n this._interactions.push(context);\n }\n\n finish(context: InteractionContext) {\n this._interactions.remove(context);\n }\n\n isActive() {\n return this.active.value;\n }\n\n disableWhen(disabled: ValueModel<boolean>) {\n this._disabledDelegate.setDelegate(disabled);\n }\n }\n\n export class ApiAdapter implements Api {\n\n constructor(private readonly placeRouter: PlaceRouter, private readonly contextRegistry: ContextRegistry) {\n }\n\n // @Trace()\n notifyActive(context: InteractionContext): Promise<any> {\n assert.isTruthy(context.identifier);\n this.contextRegistry.start(context);\n return this.isNavigationInProgress() ? Promise.resolve() : this.placeRouter.syncInteractionContextIdsWithRouter();\n }\n\n // @Trace()\n private isNavigationInProgress() {\n return this.placeRouter.navigationInProgress.value;\n }\n\n // @Trace()\n notifyFinished(context: InteractionContext): Promise<any> {\n this.contextRegistry.finish(context);\n // :: Important ::\n // This method will be traversed by both the place router (during can canDeactivate guards) and user land code\n // (both when routing is idle and while it is active in PlaceComponent.canDeactivate()).\n // The result of pushInteractionIdsToRoute will not start until after the current route finishes, and the\n // current route won't finish until after this promise returns... Deadlock.\n // So in order to keep this logic out of the activities we perform the check here and ensure that\n // any interactions with the context while routing is active returns immediately.\n return this.isNavigationInProgress() ? Promise.resolve() : this.placeRouter.syncInteractionContextIdsWithRouter();\n }\n }\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"interaction.service.js","sourceRoot":"","sources":["../../../../../../../libs/angular-ui-powerups/src/lib/interaction/services/interaction.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\nimport {\n BooleanValueModelChain,\n DelegatingValueModel,\n Disposable,\n Dsl,\n GarbageCollector, ListModel,\n ListModelChain,\n MutableListModel,\n MutableValueModel, Trace,\n ValueModel,\n ValueModelChain\n} from '@coolon/pectin';\nimport { assert } from '@coolon/typescript-utilities';\nimport { PlaceRouter } from '../../place/place-router';\nimport { InPlaceInteractionContextComponent } from '../components/inplace-interaction-context/in-place-interaction-context.component';\nimport { InteractionContext } from '../interaction-context';\nimport { InteractionServiceRoutingAdapter } from './interaction-service-routing-adapter';\n\nimport { ModalInteractionContextFactory } from './modal-interaction-context.factory';\n\nlet inplaceMonitorCount = 0;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class InteractionService {\n\n private readonly garbage = new GarbageCollector();\n readonly active: BooleanValueModelChain;\n\n // private readonly _activeModalContext = new MutableValueModel<InteractionContext>();\n // private readonly _activeInlineContext = new MutableValueModel<InteractionContext>();\n // private readonly _activeContext: ValueModelChain<InteractionContext>;\n private readonly _navigationInProgress = new DelegatingValueModel<boolean>().withDefault(false);\n\n private placeRouter: PlaceRouter;\n private exclusiveInteractionRegistry: InteractionService.ContextRegistry;\n private modalInteractionRegistry: InteractionService.ContextRegistry;\n private inPlaceInteractionRegistry: InteractionService.ContextRegistry;\n private activeModalContext: ValueModelChain<InteractionContext>;\n\n readonly activeInteractionContextIds: ListModelChain<string>;\n readonly inModalInteraction: BooleanValueModelChain;\n\n constructor(readonly modelInteractionContextFactory: ModalInteractionContextFactory) {\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this.garbage);\n\n this.exclusiveInteractionRegistry = new InteractionService.ContextRegistry();\n this.modalInteractionRegistry = new InteractionService.ContextRegistry();\n this.inPlaceInteractionRegistry = new InteractionService.ContextRegistry();\n\n this.modalInteractionRegistry.disableWhen(valueOf.any(\n this.exclusiveInteractionRegistry.active,\n this.modalInteractionRegistry.active\n ).areTruthy());\n\n this.inPlaceInteractionRegistry.disableWhen(valueOf.any(\n this.exclusiveInteractionRegistry.active,\n this.modalInteractionRegistry.active,\n this.inPlaceInteractionRegistry.active\n ).areTruthy());\n\n this.active = valueOf.any(\n this.inPlaceInteractionRegistry.active,\n this.modalInteractionRegistry.active\n ).areTruthy();\n\n\n // TODO: chain.concat(listOrValueModels) would be nice.\n this.activeInteractionContextIds = chain(this.inPlaceInteractionRegistry.interactionContextIds)\n .concat(this.modalInteractionRegistry.interactionContextIds);\n\n this.activeModalContext = chain(this.modalInteractionRegistry.interactionContexts).first();\n this.inModalInteraction = chain(this.activeModalContext).isNotNil();\n\n }\n\n isActive(): boolean {\n return this.active.value;\n }\n\n /**\n * @deprecated use #createModalInteractionContextDisposedWith instead.\n * @param disposable\n */\n createModalInteractionContextFor(disposable: Disposable.Collector): InteractionContext {\n return this.createModalInteractionContextDisposedWith(disposable);\n }\n\n /**\n * Creates a new model interaction context that will be disposed along with the component.\n * @param disposable\n */\n createModalInteractionContextDisposedWith(disposable: Disposable.Collector): InteractionContext {\n // TODO: look at making the registry the factory..\n return this.modelInteractionContextFactory.createInteractionContext('modal', new InteractionService.ApiAdapter(this.placeRouter, this.modalInteractionRegistry));\n }\n\n registerInplaceInteractionContext(interactionContext: InPlaceInteractionContextComponent<any, any, any>) {\n // TODO: look at making the registry the factory..\n // Todo: check for double registration.\n // Todo: allow multiple inplace interactions..\n interactionContext.initialise(`ip${++inplaceMonitorCount}`, new InteractionService.ApiAdapter(this.placeRouter, this.inPlaceInteractionRegistry));\n }\n\n\n /**\n * Creates an interaction context that will prevent any other contexts from starting an\n * activity until it is disposed. This is intended for use by the router for passing\n * to PlaceComponent.canDeactivate(interactionContext). This ensures components don't\n * try and interact in a way that we can't track and synchronise with the browser back\n * button.\n */\n registerPlaceRouter(router: PlaceRouter): InteractionServiceRoutingAdapter {\n assert.isFalsey(this.placeRouter);\n this.placeRouter = router;\n this._navigationInProgress.setDelegate(this.placeRouter.navigationInProgress);\n const self = this;\n return new InteractionServiceRoutingAdapter(\n this.activeInteractionContextIds,\n this.activeModalContext,\n () => {\n return self.modelInteractionContextFactory.createInteractionContext('exclusive', new InteractionService.ApiAdapter(this.placeRouter, this.exclusiveInteractionRegistry));\n });\n }\n\n}\n\nexport namespace InteractionService {\n\n export interface Api {\n\n /**\n * Notifies the interaction service that a particular interactionContext has become active. The interaction\n * services will then push changes to the router to track state. If the router is idle, the promise will\n * resolve when the routing has finished updating. Otherwise it will return immediately.\n * @param interactionContext\n */\n notifyActive(interactionContext: InteractionContext): Promise<unknown>;\n\n /**\n * Notifies the interaction service that a particular interactionContext has become idle. The interaction\n * services will then push changes to the router to track state. If the router is idle, the promise will\n * resolve when the routing has finished updating. Otherwise it will return immediately.\n * @param interactionContext\n */\n notifyFinished(interactionContext: InteractionContext): Promise<unknown>;\n }\n\n /**\n * Provides a mechanism for the service to keep track of what the API adapters are doing to\n * ensure the rules are followed, i.e. modal or in-place interaction aren't started while\n * an exclusive routing interaction is active.\n */\n export class ContextRegistry extends GarbageCollector {\n\n private _interactions = new MutableListModel<InteractionContext>();\n private _disabledDelegate = new DelegatingValueModel<boolean>().withDefault(false);\n readonly active: BooleanValueModelChain;\n readonly interactionContextIds: ListModelChain<string>;\n\n constructor() {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this.active = chain(this._interactions).isNotEmpty();\n this.interactionContextIds = chain(this._interactions).pluck(\"identifier\");\n }\n\n get interactionContexts():ListModel<InteractionContext> {\n return this._interactions.readonly;\n }\n\n start(context: InteractionContext) {\n this._interactions.push(context);\n }\n\n finish(context: InteractionContext) {\n this._interactions.remove(context);\n }\n\n isActive() {\n return this.active.value;\n }\n\n disableWhen(disabled: ValueModel<boolean>) {\n this._disabledDelegate.setDelegate(disabled);\n }\n }\n\n export class ApiAdapter implements Api {\n\n constructor(private readonly placeRouter: PlaceRouter, private readonly contextRegistry: ContextRegistry) {\n }\n\n // @Trace()\n notifyActive(context: InteractionContext): Promise<any> {\n assert.isTruthy(context.identifier);\n this.contextRegistry.start(context);\n return this.isNavigationInProgress() ? Promise.resolve() : this.placeRouter.syncInteractionContextIdsWithRouter();\n }\n\n // @Trace()\n private isNavigationInProgress() {\n return this.placeRouter.navigationInProgress.value;\n }\n\n // @Trace()\n notifyFinished(context: InteractionContext): Promise<any> {\n this.contextRegistry.finish(context);\n // :: Important ::\n // This method will be traversed by both the place router (during can canDeactivate guards) and user land code\n // (both when routing is idle and while it is active in PlaceComponent.canDeactivate()).\n // The result of pushInteractionIdsToRoute will not start until after the current route finishes, and the\n // current route won't finish until after this promise returns... Deadlock.\n // So in order to keep this logic out of the activities we perform the check here and ensure that\n // any interactions with the context while routing is active returns immediately.\n return this.isNavigationInProgress() ? Promise.resolve() : this.placeRouter.syncInteractionContextIdsWithRouter();\n }\n }\n\n}\n"]}
|
|
@@ -13,7 +13,7 @@ export class AbstractPlaceNavigationComponent extends DisposableComponent {
|
|
|
13
13
|
constructor(placeRouter) {
|
|
14
14
|
super();
|
|
15
15
|
this.placeRouter = placeRouter;
|
|
16
|
-
this._activePlaceComponent =
|
|
16
|
+
this._activePlaceComponent = new DelegatingValueModel();
|
|
17
17
|
this.trackByPlaceDef = (data) => data.place;
|
|
18
18
|
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
19
19
|
this.placeDefinitions = chain(this.placesModel)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract-place-navigation.component.js","sourceRoot":"","sources":["../../../../../../../libs/angular-ui-powerups/src/lib/place/components/abstract-place-navigation.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAU,MAAM,eAAe,CAAC;AACzD,OAAO,EACL,OAAO,EAEP,oBAAoB,EACpB,GAAG,EACH,SAAS,EAET,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EAEb,UAAU,EAEX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,kDAAkD,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAG5E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAU7E,MAAM,OAAO,gCAAiC,SAAQ,mBAAmB;IAwBvE,YAAqB,WAAwB;QAC3C,KAAK,EAAE,CAAC;QADW,gBAAW,GAAX,WAAW,CAAa;QALpC,0BAAqB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"abstract-place-navigation.component.js","sourceRoot":"","sources":["../../../../../../../libs/angular-ui-powerups/src/lib/place/components/abstract-place-navigation.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport {\n Command,\n Constructable,\n DelegatingValueModel,\n Dsl,\n ListModel,\n ListModelChain,\n StoreInListModel,\n StoreInValueModel,\n TrackExternal,\n TransactionObserver,\n ValueModel,\n ValueModelChain\n} from '@coolon/pectin';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport { CommandFace } from '../../components/commands/command-face';\nimport { DisposableComponent } from '../../components/disposable-component';\nimport { TrackBy } from '../../components/track-by';\nimport { NavItem } from '../nav-item';\nimport { PlaceComponent } from '../place-component';\nimport { PlaceDefinition } from '../place-definition';\nimport { PlaceRouter } from '../place-router';\nimport { Visit } from '../visit';\nimport { PlaceOutletComponent } from './place-outlet/place-outlet.component';\n\ninterface MenuItem {\n active: boolean;\n place: PlaceDefinition\n}\n\n@Component({\n template: ''\n})\nexport class AbstractPlaceNavigationComponent extends DisposableComponent implements OnInit {\n\n @Input() @StoreInListModel('placesModel')\n places: Constructable<PlaceComponent>[];\n\n @Input() @TrackExternal()\n placesModel: ListModel<Constructable<PlaceComponent>>;\n\n\n @Input() @StoreInValueModel('placeOutletModel')\n placeOutlet: PlaceOutletComponent;\n\n @Input() @TrackExternal()\n placeOutletModel: ValueModel<PlaceOutletComponent>;\n\n private readonly placeDefinitions: ListModelChain<PlaceDefinition>;\n readonly menuItems: ListModelChain<MenuItem>;\n\n readonly commandFactory: Command.Factory<PlaceDefinition, void>;\n readonly _activePlaceComponent = new DelegatingValueModel<PlaceComponent>();\n private activePlaceDefinition: ValueModelChain<PlaceDefinition>;\n\n readonly trackByPlaceDef = (data:MenuItem) => data.place;\n\n constructor(readonly placeRouter: PlaceRouter) {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this.placeDefinitions = chain(this.placesModel)\n .map(c => PlaceComponent.getDefinition(c))\n .select(d => {\n const guard = placeRouter.accessGuard.value;\n const state = placeRouter.state.value;\n return guard.isAuthorised(d) || state.isPlaceActive(d);\n }, { dependsOn: [placeRouter.accessGuard, placeRouter.state] });\n\n this.commandFactory = Command.createFactory((placeDefinition: PlaceDefinition) => {\n this.placeOutlet.navigate(new Visit(placeDefinition));\n });\n\n when(this.placeOutletModel).changes(outlet => this.handlePlaceOutLetChanged(outlet), {initialValue: \"triggerChange\"});\n this.activePlaceDefinition = chain(this._activePlaceComponent).pluck('placeDefinition');\n\n this.menuItems = chain(this.placeDefinitions).map(d => {\n return {\n place: d,\n active: this.activePlaceDefinition.value === d\n };\n }, {\n dependsOn: this.activePlaceDefinition\n });\n\n // const txo = new TransactionObserver({ verbose: true }).onEvent(e => console.log(e.name, e.payload));\n // txo.observe('this.placesModel', this.placesModel);\n // txo.observe('this.placeDefinitions', this.placeDefinitions);\n // txo.observe('this.activePlaceDefinition', this.activePlaceDefinition);\n // txo.observe('this.menuItems', this.menuItems);\n }\n\n protected handlePlaceOutLetChanged(outlet: PlaceOutletComponent) {\n this._activePlaceComponent.setDelegate(outlet ? outlet.activePlaceModel : null)\n }\n\n @Memoize()\n getNavigationFace(placeDef: PlaceDefinition): CommandFace {\n const navItem = placeDef.getPlaceData('nav') as NavItem;\n return {\n text: () => navItem ? navItem.title() : placeDef.searchPlaceData(['navTitle', 'title']),\n tooltip: () => navItem && navItem.tooltip ? navItem.tooltip() : placeDef.getPlaceData('navTooltip', null),\n icon: () => navItem && navItem.icon ? navItem.icon() : placeDef.getPlaceData('navIcon', null)\n };\n }\n\n ngOnInit() {\n }\n\n}\n"]}
|
|
@@ -10,7 +10,7 @@ ListPlaceNavComponent.decorators = [
|
|
|
10
10
|
{ type: Component, args: [{
|
|
11
11
|
selector: 'aup-list-place-nav',
|
|
12
12
|
template: "<mat-nav-list fxFlex>\n <a mat-list-item *ngFor=\"let item of menuItems.value; trackBy: trackByPlaceDef\"\n [pectinCommand]=\"commandFactory.create(item.place)\"\n [class.active]=\"item.active\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\">\n <aup-command-face [faces]=\"[getNavigationFace(item.place)]\"></aup-command-face>\n </a>\n</mat-nav-list>\n",
|
|
13
|
-
styles: [":host{display:flex;flex-direction:column;--selected-border-color
|
|
13
|
+
styles: [":host{display:flex;flex-direction:column;--selected-border-color:#838383;--selected-color:inherit;--selected-background:#f1f1f1}mat-nav-list{padding-top:0}a{border-right:2px solid transparent}a.active{border-right:2px solid var(--selected-border-color);background:var(--selected-background);color:var(--selected-color)}"]
|
|
14
14
|
},] }
|
|
15
15
|
];
|
|
16
16
|
ListPlaceNavComponent.ctorParameters = () => [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"ListPlaceNavComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../abstract-place-navigation.component","name":"AbstractPlaceNavigationComponent","line":9,"character":43},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"aup-list-place-nav","template":"<mat-nav-list fxFlex>\n <a mat-list-item *ngFor=\"let item of menuItems.value; trackBy: trackByPlaceDef\"\n [pectinCommand]=\"commandFactory.create(item.place)\"\n [class.active]=\"item.active\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\">\n <aup-command-face [faces]=\"[getNavigationFace(item.place)]\"></aup-command-face>\n </a>\n</mat-nav-list>\n","styles":[":host{display:flex;flex-direction:column;--selected-border-color
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"ListPlaceNavComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../abstract-place-navigation.component","name":"AbstractPlaceNavigationComponent","line":9,"character":43},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"aup-list-place-nav","template":"<mat-nav-list fxFlex>\n <a mat-list-item *ngFor=\"let item of menuItems.value; trackBy: trackByPlaceDef\"\n [pectinCommand]=\"commandFactory.create(item.place)\"\n [class.active]=\"item.active\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\">\n <aup-command-face [faces]=\"[getNavigationFace(item.place)]\"></aup-command-face>\n </a>\n</mat-nav-list>\n","styles":[":host{display:flex;flex-direction:column;--selected-border-color:#838383;--selected-color:inherit;--selected-background:#f1f1f1}mat-nav-list{padding-top:0}a{border-right:2px solid transparent}a.active{border-right:2px solid var(--selected-border-color);background:var(--selected-background);color:var(--selected-color)}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../../place-router","name":"PlaceRouter","line":11,"character":22}]}]}}}}]
|
package/esm2015/lib/place/components/not-authorised-notice/not-authorised-notice.component.js
CHANGED
|
@@ -7,7 +7,7 @@ NotAuthorisedNoticeComponent.decorators = [
|
|
|
7
7
|
{ type: Component, args: [{
|
|
8
8
|
selector: 'aup-not-authorised-notice',
|
|
9
9
|
template: "<p>You are not authorised to access this page</p>\n",
|
|
10
|
-
styles: [":host{display:flex;flex-direction:column;align-items:center;justify-content:center}
|
|
10
|
+
styles: [":host{display:flex;flex-direction:column;align-items:center;justify-content:center}"]
|
|
11
11
|
},] }
|
|
12
12
|
];
|
|
13
13
|
NotAuthorisedNoticeComponent.ctorParameters = () => [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"NotAuthorisedNoticeComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"aup-not-authorised-notice","template":"<p>You are not authorised to access this page</p>\n","styles":[":host{display:flex;flex-direction:column;align-items:center;justify-content:center}
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"NotAuthorisedNoticeComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"aup-not-authorised-notice","template":"<p>You are not authorised to access this page</p>\n","styles":[":host{display:flex;flex-direction:column;align-items:center;justify-content:center}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]}}}}]
|
|
@@ -186,7 +186,7 @@ PlaceOutletComponent.decorators = [
|
|
|
186
186
|
selector: 'aup-place-outlet',
|
|
187
187
|
template: "<ng-container *ngIf=\"animationEnabled.value\">\n <div class=\"router-outlet-container\"\n cdkScrollable\n [@routeAnimations]=\"{value: getAnimationOrder(), params:{duration: animationDuration}}\"\n (@routeAnimations.start)=\"animationStarted()\"\n (@routeAnimations.done)=\"animationDone()\"\n >\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!animationEnabled.value\">\n <div class=\"router-outlet-container\"\n cdkScrollable>\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<div class=\"not-authorised-component-container\" *ngIf=\"!authorised.value\">\n <ng-template [cdkPortalOutlet]=\"notAuthorisedNoticePortal\"></ng-template>\n</div>\n",
|
|
188
188
|
animations: [LEFT_RIGHT_PLACE_ANIMATION],
|
|
189
|
-
styles: [":host{display:flex;flex-direction:column;min-height:0}:host:not(.authorised) .router-outlet-container{display:none}.router-outlet-container{flex:1;display:block;position:relative;min-height:0;overflow-x:hidden;overflow-y:auto}router-outlet{display:none}.not-authorised-component-container{flex:1;display:grid;grid-template-columns:1fr;grid-template-rows:1fr}
|
|
189
|
+
styles: [":host{display:flex;flex-direction:column;min-height:0}:host:not(.authorised) .router-outlet-container{display:none}.router-outlet-container{flex:1;display:block;position:relative;min-height:0;overflow-x:hidden;overflow-y:auto}router-outlet{display:none}.not-authorised-component-container{flex:1;display:grid;grid-template-columns:1fr;grid-template-rows:1fr}"]
|
|
190
190
|
},] }
|
|
191
191
|
];
|
|
192
192
|
PlaceOutletComponent.ctorParameters = () => [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":43,"character":59},"arguments":["AUP_UNAUTHORISED_PLACE_COMPONENT"]},"PlaceOutletComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../../../components/disposable-component","name":"DisposableComponent","line":51,"character":42},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":45,"character":1},"arguments":[{"selector":"aup-place-outlet","animations":[{"__symbolic":"reference","module":"./route-animations","name":"LEFT_RIGHT_PLACE_ANIMATION","line":49,"character":15}],"template":"<ng-container *ngIf=\"animationEnabled.value\">\n <div class=\"router-outlet-container\"\n cdkScrollable\n [@routeAnimations]=\"{value: getAnimationOrder(), params:{duration: animationDuration}}\"\n (@routeAnimations.start)=\"animationStarted()\"\n (@routeAnimations.done)=\"animationDone()\"\n >\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!animationEnabled.value\">\n <div class=\"router-outlet-container\"\n cdkScrollable>\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<div class=\"not-authorised-component-container\" *ngIf=\"!authorised.value\">\n <ng-template [cdkPortalOutlet]=\"notAuthorisedNoticePortal\"></ng-template>\n</div>\n","styles":[":host{display:flex;flex-direction:column;min-height:0}:host:not(.authorised) .router-outlet-container{display:none}.router-outlet-container{flex:1;display:block;position:relative;min-height:0;overflow-x:hidden;overflow-y:auto}router-outlet{display:none}.not-authorised-component-container{flex:1;display:grid;grid-template-columns:1fr;grid-template-rows:1fr}
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":43,"character":59},"arguments":["AUP_UNAUTHORISED_PLACE_COMPONENT"]},"PlaceOutletComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../../../components/disposable-component","name":"DisposableComponent","line":51,"character":42},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":45,"character":1},"arguments":[{"selector":"aup-place-outlet","animations":[{"__symbolic":"reference","module":"./route-animations","name":"LEFT_RIGHT_PLACE_ANIMATION","line":49,"character":15}],"template":"<ng-container *ngIf=\"animationEnabled.value\">\n <div class=\"router-outlet-container\"\n cdkScrollable\n [@routeAnimations]=\"{value: getAnimationOrder(), params:{duration: animationDuration}}\"\n (@routeAnimations.start)=\"animationStarted()\"\n (@routeAnimations.done)=\"animationDone()\"\n >\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!animationEnabled.value\">\n <div class=\"router-outlet-container\"\n cdkScrollable>\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<div class=\"not-authorised-component-container\" *ngIf=\"!authorised.value\">\n <ng-template [cdkPortalOutlet]=\"notAuthorisedNoticePortal\"></ng-template>\n</div>\n","styles":[":host{display:flex;flex-direction:column;min-height:0}:host:not(.authorised) .router-outlet-container{display:none}.router-outlet-container{flex:1;display:block;position:relative;min-height:0;overflow-x:hidden;overflow-y:auto}router-outlet{display:none}.not-authorised-component-container{flex:1;display:grid;grid-template-columns:1fr;grid-template-rows:1fr}"]}]}],"members":{"animate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInValueModel","line":53,"character":12},"arguments":["animateModel"]}]}],"animateModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":56,"character":12},"arguments":[{"defaultValue":true}]}]}],"customPlaceAnimationOrderModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3},"arguments":["placeAnimationOrderModel"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":60,"character":38}}]}],"customPlaceAnimationOrder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":64,"character":3},"arguments":["placeAnimationOrder"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInListModel","line":64,"character":33},"arguments":["customPlaceAnimationOrderModel"]}]}],"placeChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":67,"character":3}}]}],"routerOut":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":70,"character":3},"arguments":["routeOutlet",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":99,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":99,"character":27},"arguments":[{"__symbolic":"reference","module":"../../place-config","name":"AUP_PLACE_CONFIG","line":99,"character":34}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":100,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":100,"character":27},"arguments":[{"__symbolic":"reference","name":"AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":101,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":101,"character":27}}],null],"parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":97,"character":39},{"__symbolic":"reference","module":"../../place-router","name":"PlaceRouter","line":98,"character":44},{"__symbolic":"reference","module":"../../place-config","name":"PlaceConfig","line":99,"character":74},{"__symbolic":"reference","module":"@coolon/pectin","name":"Constructable","line":100,"character":100,"arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","name":"PlaceOutletComponent"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":102,"character":36}]}],"ngOnInit":[{"__symbolic":"method"}],"getAnimationOrder":[{"__symbolic":"method"}],"isAuthorised":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":175,"character":3},"arguments":["class.authorised"]}]}],"navigate":[{"__symbolic":"method"}],"onOutletActivated":[{"__symbolic":"method"}],"validateAnimationState":[{"__symbolic":"method"}],"onOutletDeactivated":[{"__symbolic":"method"}],"checkStateAndInitialise":[{"__symbolic":"method"}],"initialisePlace":[{"__symbolic":"method"}],"pushVisitChangeToRoute":[{"__symbolic":"method"}],"animationStarted":[{"__symbolic":"method"}],"animationDone":[{"__symbolic":"method"}]}}}}]
|
package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js
CHANGED
|
@@ -62,7 +62,7 @@ SidePlaceNavigationComponent.decorators = [
|
|
|
62
62
|
{ type: Component, args: [{
|
|
63
63
|
selector: 'aup-side-place-navigation',
|
|
64
64
|
template: "<mat-nav-list>\n <a mat-list-item (click)=\"toggleMenu()\" class=\"home\">\n <aup-icon class=\"collapsed-only\" icon=\"mat:menu\"></aup-icon>\n <aup-icon class=\"expanded-only\" icon=\"mat:arrow_back\"></aup-icon>\n <span class=\"expanded-only\">Menu</span>\n </a>\n <a mat-list-item *ngFor=\"let item of menuItems.value; trackBy: trackByPlaceDef\"\n [pectinCommand]=\"commandFactory.create(item.place)\"\n [class.active]=\"item.active\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\">\n <aup-icon *ngIf=\"getNavigationFace(item.place).icon()\" [icon]=\"getNavigationFace(item.place).icon()\"></aup-icon>\n <span class=\"expanded-only\">{{getNavigationFace(item.place).text()}}</span>\n </a>\n <span [style.flex]=\"1\"></span>\n <ng-container *ngIf=\"navEndTemplate\" [ngTemplateOutlet]=\"navEndTemplate\"></ng-container>\n</mat-nav-list>\n",
|
|
65
|
-
styles: [":host{display:flex;flex-direction:column;--resolved-nav-item-width:
|
|
65
|
+
styles: [":host{display:flex;flex-direction:column;--resolved-nav-item-width:var(--nav-width,56px);--resolved-nav-item-height:var(--nav-item-height,var(--resolved-nav-item-width));--resolved-expanded-width:var(--nav-expanded-width,235px);--resolved-color:var(--nav-color,hsla(0,0%,100%,0.9));--resolved-background-color:var(--nav-background-color,#555);width:var(--resolved-nav-item-width);transition:width 125ms linear;background-color:var(--resolved-background-color);color:var(--resolved-color)}:host.expanded{width:var(--resolved-expanded-width);max-width:var(--resolved-expanded-width)}:host-context(.expanded) .expanded-only{max-width:100%}:host-context(.expanded) .collapsed-only{max-width:0}:host-context(.expanded) .mat-list-item aup-icon:not(.collapsed-only){margin-right:12px}:host-context(.expanded) .mat-list-item span{text-wrap:none;white-space:nowrap}.expanded-only{max-width:0;overflow:hidden}.collapsed-only{max-width:100%;overflow:hidden}mat-nav-list{flex:1;display:flex;flex-direction:column}.mat-list-item{width:var(--resolved-nav-item-width);height:var(--resolved-nav-item-height);color:inherit}.mat-list-item.active{background-color:#444}.mat-list-item.home{text-align:left}mat-icon{color:inherit}mat-icon.flip-horizontal{transform:scaleX(-1)}"]
|
|
66
66
|
},] }
|
|
67
67
|
];
|
|
68
68
|
SidePlaceNavigationComponent.ctorParameters = () => [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"SidePlaceNavigationComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../abstract-place-navigation.component","name":"AbstractPlaceNavigationComponent","line":53,"character":50},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":48,"character":1},"arguments":[{"selector":"aup-side-place-navigation","template":"<mat-nav-list>\n <a mat-list-item (click)=\"toggleMenu()\" class=\"home\">\n <aup-icon class=\"collapsed-only\" icon=\"mat:menu\"></aup-icon>\n <aup-icon class=\"expanded-only\" icon=\"mat:arrow_back\"></aup-icon>\n <span class=\"expanded-only\">Menu</span>\n </a>\n <a mat-list-item *ngFor=\"let item of menuItems.value; trackBy: trackByPlaceDef\"\n [pectinCommand]=\"commandFactory.create(item.place)\"\n [class.active]=\"item.active\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\">\n <aup-icon *ngIf=\"getNavigationFace(item.place).icon()\" [icon]=\"getNavigationFace(item.place).icon()\"></aup-icon>\n <span class=\"expanded-only\">{{getNavigationFace(item.place).text()}}</span>\n </a>\n <span [style.flex]=\"1\"></span>\n <ng-container *ngIf=\"navEndTemplate\" [ngTemplateOutlet]=\"navEndTemplate\"></ng-container>\n</mat-nav-list>\n","styles":[":host{display:flex;flex-direction:column;--resolved-nav-item-width:
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"SidePlaceNavigationComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../abstract-place-navigation.component","name":"AbstractPlaceNavigationComponent","line":53,"character":50},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":48,"character":1},"arguments":[{"selector":"aup-side-place-navigation","template":"<mat-nav-list>\n <a mat-list-item (click)=\"toggleMenu()\" class=\"home\">\n <aup-icon class=\"collapsed-only\" icon=\"mat:menu\"></aup-icon>\n <aup-icon class=\"expanded-only\" icon=\"mat:arrow_back\"></aup-icon>\n <span class=\"expanded-only\">Menu</span>\n </a>\n <a mat-list-item *ngFor=\"let item of menuItems.value; trackBy: trackByPlaceDef\"\n [pectinCommand]=\"commandFactory.create(item.place)\"\n [class.active]=\"item.active\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\">\n <aup-icon *ngIf=\"getNavigationFace(item.place).icon()\" [icon]=\"getNavigationFace(item.place).icon()\"></aup-icon>\n <span class=\"expanded-only\">{{getNavigationFace(item.place).text()}}</span>\n </a>\n <span [style.flex]=\"1\"></span>\n <ng-container *ngIf=\"navEndTemplate\" [ngTemplateOutlet]=\"navEndTemplate\"></ng-container>\n</mat-nav-list>\n","styles":[":host{display:flex;flex-direction:column;--resolved-nav-item-width:var(--nav-width,56px);--resolved-nav-item-height:var(--nav-item-height,var(--resolved-nav-item-width));--resolved-expanded-width:var(--nav-expanded-width,235px);--resolved-color:var(--nav-color,hsla(0,0%,100%,0.9));--resolved-background-color:var(--nav-background-color,#555);width:var(--resolved-nav-item-width);transition:width 125ms linear;background-color:var(--resolved-background-color);color:var(--resolved-color)}:host.expanded{width:var(--resolved-expanded-width);max-width:var(--resolved-expanded-width)}:host-context(.expanded) .expanded-only{max-width:100%}:host-context(.expanded) .collapsed-only{max-width:0}:host-context(.expanded) .mat-list-item aup-icon:not(.collapsed-only){margin-right:12px}:host-context(.expanded) .mat-list-item span{text-wrap:none;white-space:nowrap}.expanded-only{max-width:0;overflow:hidden}.collapsed-only{max-width:100%;overflow:hidden}mat-nav-list{flex:1;display:flex;flex-direction:column}.mat-list-item{width:var(--resolved-nav-item-width);height:var(--resolved-nav-item-height);color:inherit}.mat-list-item.active{background-color:#444}.mat-list-item.home{text-align:left}mat-icon{color:inherit}mat-icon.flip-horizontal{transform:scaleX(-1)}"]}]}],"members":{"expanded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":55,"character":3},"arguments":["class.expanded"]}]}],"navEndTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":58,"character":3},"arguments":["navEndTemplate"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../../place-router","name":"PlaceRouter","line":61,"character":22}]}],"expandMenu":[{"__symbolic":"method"}],"collapseMenu":[{"__symbolic":"method"}],"toggleMenu":[{"__symbolic":"method"}]}}}}]
|
package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js
CHANGED
|
@@ -10,7 +10,7 @@ TabbedPlaceNavigationComponent.decorators = [
|
|
|
10
10
|
{ type: Component, args: [{
|
|
11
11
|
selector: 'aup-tabbed-place-navigation',
|
|
12
12
|
template: "<nav mat-tab-nav-bar>\n <ng-content select=\"[nav-start]\"></ng-content>\n <a mat-tab-link *ngFor=\"let item of menuItems.value; trackBy: trackByPlaceDef\"\n [pectinCommand]=\"commandFactory.create(item.place)\"\n [active]=\"item.active\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\">\n <aup-command-face [faces]=\"[getNavigationFace(item.place)]\"></aup-command-face>\n </a>\n <ng-content select=\"[nav-end]\"></ng-content>\n</nav>\n",
|
|
13
|
-
styles: [":host{display:block}div.place-holder{border:1px solid green}
|
|
13
|
+
styles: [":host{display:block}div.place-holder{border:1px solid green}"]
|
|
14
14
|
},] }
|
|
15
15
|
];
|
|
16
16
|
TabbedPlaceNavigationComponent.ctorParameters = () => [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"TabbedPlaceNavigationComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../abstract-place-navigation.component","name":"AbstractPlaceNavigationComponent","line":9,"character":52},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"aup-tabbed-place-navigation","template":"<nav mat-tab-nav-bar>\n <ng-content select=\"[nav-start]\"></ng-content>\n <a mat-tab-link *ngFor=\"let item of menuItems.value; trackBy: trackByPlaceDef\"\n [pectinCommand]=\"commandFactory.create(item.place)\"\n [active]=\"item.active\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\">\n <aup-command-face [faces]=\"[getNavigationFace(item.place)]\"></aup-command-face>\n </a>\n <ng-content select=\"[nav-end]\"></ng-content>\n</nav>\n","styles":[":host{display:block}div.place-holder{border:1px solid green}
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"TabbedPlaceNavigationComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../abstract-place-navigation.component","name":"AbstractPlaceNavigationComponent","line":9,"character":52},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"aup-tabbed-place-navigation","template":"<nav mat-tab-nav-bar>\n <ng-content select=\"[nav-start]\"></ng-content>\n <a mat-tab-link *ngFor=\"let item of menuItems.value; trackBy: trackByPlaceDef\"\n [pectinCommand]=\"commandFactory.create(item.place)\"\n [active]=\"item.active\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\">\n <aup-command-face [faces]=\"[getNavigationFace(item.place)]\"></aup-command-face>\n </a>\n <ng-content select=\"[nav-end]\"></ng-content>\n</nav>\n","styles":[":host{display:block}div.place-holder{border:1px solid green}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../../place-router","name":"PlaceRouter","line":10,"character":22}]}]}}}}]
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
|
|
3
|
-
import * as _ from 'lodash';
|
|
4
3
|
/**
|
|
5
4
|
* This a work around for the fact that an activated route with multiple segments doesn't
|
|
6
5
|
* include the segment params in the paramMap as well as each segment returns an empty
|
|
@@ -27,7 +26,7 @@ export class ConsolidatedParameterMap {
|
|
|
27
26
|
return !!this.paramMaps.find(m => m.has(name));
|
|
28
27
|
}
|
|
29
28
|
get keys() {
|
|
30
|
-
return
|
|
29
|
+
return this.paramMaps.reduce((result, params) => result.concat(params.keys), []);
|
|
31
30
|
}
|
|
32
31
|
}
|
|
33
32
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consolidated-param-map.js","sourceRoot":"","sources":["../../../../../../../libs/angular-ui-powerups/src/lib/place/guards/consolidated-param-map.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kDAAkD,CAAC;
|
|
1
|
+
{"version":3,"file":"consolidated-param-map.js","sourceRoot":"","sources":["../../../../../../../libs/angular-ui-powerups/src/lib/place/guards/consolidated-param-map.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kDAAkD,CAAC;AAE3E;;;;GAIG;AACH,MAAM,OAAO,wBAAwB;IAInC,YAAY,WAAyB,EAAE,QAAmB;QAFzC,cAAS,GAAe,EAAE,CAAC;QAG1C,oGAAoG;QACpG,MAAM,aAAa,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,CAAe,CAAC;QACpG,IAAI,CAAC,SAAS,GAAG,aAAa;aAC3B,MAAM,CAAC,QAAQ,CAAC;aAChB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4CAA4C;IACnE,CAAC;IAED,GAAG,CAAC,IAAY;QACd,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC;IAGD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACnF,CAAC;CACF;AAHC;IADC,OAAO,EAAE;;;oDAGT;AAGH,MAAM,eAAe;IACnB,YAA6B,MAA+B;QAA/B,WAAM,GAAN,MAAM,CAAyB;IAC5D,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;CAEF","sourcesContent":["import { ParamMap, UrlSegment } from '@angular/router';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\n\n/**\n * This a work around for the fact that an activated route with multiple segments doesn't\n * include the segment params in the paramMap as well as each segment returns an empty\n * param map even when `parameter`s has content.\n */\nexport class ConsolidatedParameterMap implements ParamMap {\n\n private readonly paramMaps: ParamMap[] = [];\n\n constructor(urlSegments: UrlSegment[], paramMap?: ParamMap) {\n // TODO: can we get all our params from teh url segments? If so we can drop the paramMap altogether.\n const segmentParams = (urlSegments || []).map(s => new ParamMapAdapter(s.parameters)) as ParamMap[];\n this.paramMaps = segmentParams\n .concat(paramMap)\n .filter(m => !!m); // the activated route param map can be null\n }\n\n get(name: string): string | null {\n const paramMap = this.paramMaps.find(m => m.has(name));\n return paramMap.get(name);\n }\n\n getAll(name: string): string[] {\n const paramMap = this.paramMaps.find(m => m.has(name));\n return paramMap.getAll(name);\n }\n\n has(name: string): boolean {\n return !!this.paramMaps.find(m => m.has(name));\n }\n\n @Memoize()\n get keys(): string[] {\n return this.paramMaps.reduce((result, params) => result.concat(params.keys), []);\n }\n}\n\nclass ParamMapAdapter implements ParamMap {\n constructor(private readonly params: { [p: string]: string }) {\n }\n\n get(name: string): string | null {\n return this.params[name];\n }\n\n getAll(name: string): string[] {\n const value = this.get(name);\n return Array.isArray(value) ? value : [value];\n }\n\n has(name: string): boolean {\n return this.keys.includes(name);\n }\n\n get keys(): string[] {\n return Object.keys(this.params);\n }\n\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"ConsolidatedParameterMap":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","module":"@angular/router","name":"UrlSegment","line":
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"ConsolidatedParameterMap":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","module":"@angular/router","name":"UrlSegment","line":12,"character":27}]},{"__symbolic":"reference","module":"@angular/router","name":"ParamMap","line":12,"character":52}]}],"get":[{"__symbolic":"method"}],"getAll":[{"__symbolic":"method"}],"has":[{"__symbolic":"method"}],"keys":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@typescript-plus/fast-memoize-decorator/dist/src","name":"Memoize","line":34,"character":3}}]}]}}}}]
|
|
@@ -42,11 +42,10 @@ export class PlaceGuard {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
const result = yield this.cleanInteractionState(activatedRoute, state, () => __awaiter(this, void 0, void 0, function* () {
|
|
45
|
-
const navigationSession = this.placeRouter.navigationSession;
|
|
46
45
|
// Parse our route params.
|
|
47
46
|
const params = new ConsolidatedParameterMap(activatedRoute.url, activatedRoute.paramMap);
|
|
48
|
-
// console.log("RouteParams", params)
|
|
49
47
|
const parsedParams = placeDefinition.parseRouteParams(params);
|
|
48
|
+
const navigationSession = this.placeRouter.navigationSession;
|
|
50
49
|
const initialVisit = navigationSession.getVisitFor(placeDefinition) || new Visit(placeDefinition, parsedParams);
|
|
51
50
|
const sanitiser = new VisitSanitiser(navigationSession, activatedRoute, this.router, this.placeHistory, this.injector);
|
|
52
51
|
const sanitisedVisit = yield sanitiser.sanitise(initialVisit.mergeRouteParameters(parsedParams));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"place.guard.js","sourceRoot":"","sources":["../../../../../../../libs/angular-ui-powerups/src/lib/place/guards/place.guard.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAIL,MAAM,EAGP,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAiB,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;;;;;;;AAGpE,MAAM,OAAO,UAAU;IAGrB,YAA6B,MAAc,EACvB,UAAsB,EACb,WAAwB,EACxB,YAA0B,EAC1B,kBAAsC,EACtC,QAAkB;QALlB,WAAM,GAAN,MAAM,CAAQ;QACvB,eAAU,GAAV,UAAU,CAAY;QACb,gBAAW,GAAX,WAAW,CAAa;QACxB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,aAAQ,GAAR,QAAQ,CAAU;IAC/C,CAAC;IAED,WAAW;IACL,WAAW,CAAC,cAAsC,EAAE,KAA0B;;YAElF,IAAI,cAAc,CAAC,2BAA2B,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;gBACxE,MAAM,eAAe,GAAG,cAAc,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gBAE/E,IAAI,eAAe,CAAC,YAAY,EAAE;oBAEhC,IAAI,CAAC,CAAA,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,eAAe,EAAE,CAAA,EAAE;wBAC/D,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,gCAAgC,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;wBAClG,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;wBAC/D,IAAI,YAAY,CAAC,YAAY,EAAE;4BAC7B,IAAI,CAAC,YAAY,CAAC,8CAA8C,YAAY,CAAC,SAAS,CAAC,IAAI,gCAAgC,CAAC,CAAC;yBAC9H;wBACD,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;qBAC7C;iBACF;gBAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,cAAc,EAAE,KAAK,EAAE,GAAS,EAAE;oBAChF,
|
|
1
|
+
{"version":3,"file":"place.guard.js","sourceRoot":"","sources":["../../../../../../../libs/angular-ui-powerups/src/lib/place/guards/place.guard.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable, Injector } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n CanDeactivate,\n Router,\n RouterStateSnapshot,\n UrlTree\n} from '@angular/router';\nimport { Constructable, lang } from '@coolon/pectin';\nimport { InteractionService } from '../../interaction/services/interaction.service';\nimport { PlaceComponent } from '../place-component';\nimport { PlaceDefinition } from '../place-definition';\nimport { PlaceHistory } from '../place-history';\nimport { PlaceRouter } from '../place-router';\nimport { VisitSanitiser } from '../route/visit-sanitiser';\nimport { UrlService } from '../url-service';\nimport { UrlSnapshot } from '../url-snapshot';\nimport { Visit } from '../visit';\nimport { ConsolidatedParameterMap } from './consolidated-param-map';\n\n@Injectable({ providedIn: 'root' })\nexport class PlaceGuard implements CanActivate, CanDeactivate<PlaceComponent> {\n\n\n constructor(private readonly router: Router,\n private urlService: UrlService,\n private readonly placeRouter: PlaceRouter,\n private readonly placeHistory: PlaceHistory,\n private readonly interactionService: InteractionService,\n private readonly injector: Injector) {\n }\n\n // @Trace()\n async canActivate(activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean | UrlTree> {\n\n if (PlaceComponent.isPlaceComponentConstructor(activatedRoute.component)) {\n const placeDefinition = PlaceComponent.getDefinition(activatedRoute.component);\n\n if (placeDefinition.authenticate) {\n\n if (!await this.placeRouter.accessGuard.value.isAuthenticated()) {\n const redirectLocation = this.placeRouter.getAuthenticationFailureRedirect(activatedRoute, state);\n const nextPlaceDef = this.getPlaceDefinition(redirectLocation);\n if (nextPlaceDef.authenticate) {\n lang.illegalState(`handleNotAuthenticated hook returned place ${nextPlaceDef.component.name} that requires authentication.`);\n }\n return this.createUrlTree(redirectLocation);\n }\n }\n\n const result = await this.cleanInteractionState(activatedRoute, state, async () => {\n // Parse our route params.\n const params = new ConsolidatedParameterMap(activatedRoute.url, activatedRoute.paramMap);\n const parsedParams = placeDefinition.parseRouteParams(params);\n\n const navigationSession = this.placeRouter.navigationSession;\n const initialVisit = navigationSession.getVisitFor(placeDefinition) || new Visit(placeDefinition, parsedParams);\n const sanitiser = new VisitSanitiser(navigationSession, activatedRoute, this.router, this.placeHistory, this.injector);\n const sanitisedVisit = await sanitiser.sanitise(initialVisit.mergeRouteParameters(parsedParams));\n\n // Save the visit with any updated parameters. We need to save it so we remember any non route parameters\n navigationSession.storeVisit(sanitisedVisit);\n if (initialVisit.hasRoutingChangedFrom(sanitisedVisit)) {\n // Regenerate the url\n const urlSnapshot = this.urlService.parseUrl(state.url).updateVisitSegments(sanitisedVisit);\n // console.log('##### Place Guard Redirect', urlSnapshot);\n return urlSnapshot;\n } else {\n return true;\n }\n });\n return result instanceof UrlSnapshot ? result.urlTree : result;\n\n } else {\n return lang.illegalState(`expected component to be an instance of PlaceComponent, got ${activatedRoute.component}`);\n }\n }\n\n // @Trace()\n async canDeactivate(component: PlaceComponent, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState?: RouterStateSnapshot): Promise<boolean | UrlTree> {\n if (!component) {\n // this happens when the place wasn't authorised and the associated\n // router outlet was removed from the dom.\n return true;\n }\n const currentUrl = this.urlService.parseUrl(currentState.url);\n const nextUrl = this.urlService.parseUrl(nextState.url);\n const result = await this.placeRouter.navigationSession.canDeactivatePlace(component, currentUrl, nextUrl);\n return result instanceof UrlSnapshot ? result.urlTree : result;\n }\n\n private getPlaceDefinition(result: Constructable<PlaceComponent> | Visit): PlaceDefinition {\n return result instanceof Visit ?\n result.placeDefinition :\n PlaceComponent.getDefinition(result);\n }\n\n private createUrlTree(result: Constructable<PlaceComponent> | Visit) {\n const visit = result instanceof Visit ? result : new Visit(PlaceComponent.getDefinition(result), {});\n return this.urlService.createUrlSnapshot(visit).urlTree;\n }\n\n // @Trace()\n async cleanInteractionState(route: ActivatedRouteSnapshot, state: RouterStateSnapshot, next: () => Promise<boolean | UrlSnapshot>): Promise<boolean | UrlSnapshot> {\n const url = this.urlService.parseUrl(state.url);\n if (!this.interactionService.isActive() && url.hasInteractions()) {\n // This happens if we reload the page or the url was pasted as the route should only be activated\n // after the interaction context has become active.\n return url.removeInteractionIds();\n } else {\n return next();\n }\n }\n\n}\n"]}
|
|
@@ -8,7 +8,6 @@ import 'reflect-metadata';
|
|
|
8
8
|
import { DisposableComponent } from '../components/disposable-component';
|
|
9
9
|
import { PlaceDefinition } from './place-definition';
|
|
10
10
|
import { ParameterDefinition } from './route/parameter-definition';
|
|
11
|
-
import * as _ from 'lodash';
|
|
12
11
|
// RAKE: making this Symbol(...) broke things.
|
|
13
12
|
export const DEFINITION_META_DATA_KEY = 'PLACE_DEFINITION_OPTIONS';
|
|
14
13
|
// this one seems ok.
|
|
@@ -34,27 +33,16 @@ export class PlaceComponent extends DisposableComponent {
|
|
|
34
33
|
when(this._active).becomesTruthy(() => this._notifyPlaceReady());
|
|
35
34
|
this.childPlaces = this.placeDefinition.children.map(d => d.component);
|
|
36
35
|
}
|
|
36
|
+
// @Trace()
|
|
37
37
|
initialiseVisit(visit, notifyVisitChanged) {
|
|
38
38
|
assert.isNil(this.visitModel.value);
|
|
39
39
|
const { when } = Dsl.disposeWith(this);
|
|
40
40
|
this.visitModel.value = visit;
|
|
41
41
|
DebugContext.getOrCreate(this.visitModel).tag(`${this.placeDefinition.component.name}.visitModel`);
|
|
42
|
-
|
|
43
|
-
// route in one go at the end.
|
|
44
|
-
this.placeDefinition
|
|
45
|
-
.getVisitParameterDefs()
|
|
46
|
-
.forEach(parameterDef => this.installAndInitialiseBinding(visit, parameterDef));
|
|
42
|
+
this.placeDefinition.getVisitParameterDefs().forEach(parameterDef => this.installBinding(parameterDef));
|
|
47
43
|
when(this.visitModel).changes((current, previous) => {
|
|
48
44
|
notifyVisitChanged(current, previous);
|
|
49
45
|
}, { unless: this._inVisitUpdate });
|
|
50
|
-
// TODO: this needs to do a replace url option so that the new url isn't put in the history.... for
|
|
51
|
-
// now we're not doing it as it's a fair bit of effort and will only affect people if they're
|
|
52
|
-
// cutting and pasting urls to each other.
|
|
53
|
-
// // the binding process can update the visit (e.g. if a selection model has already selected during
|
|
54
|
-
// // component construction) and there was no value specified in the route
|
|
55
|
-
// if (visit.hasRoutingChangedFrom(this.visitModel.value)) {
|
|
56
|
-
// notifyVisitChanged(this.visitModel.value, visit)
|
|
57
|
-
// }
|
|
58
46
|
}
|
|
59
47
|
updateVisit(visit) {
|
|
60
48
|
assert.isTruthy(this.isInitialised());
|
|
@@ -67,12 +55,7 @@ export class PlaceComponent extends DisposableComponent {
|
|
|
67
55
|
return !!this.visitModel.value;
|
|
68
56
|
}
|
|
69
57
|
// @Trace()
|
|
70
|
-
|
|
71
|
-
* Initialised the component bindings. If any binding has an initial model value (e.g. a selection model
|
|
72
|
-
* initialised during the constructor) and the route has nothing, then the visit will be udpated and this
|
|
73
|
-
* method will return ture to nofiy the the visit has changed.
|
|
74
|
-
*/
|
|
75
|
-
installAndInitialiseBinding(initialVisit, parameterDef) {
|
|
58
|
+
installBinding(parameterDef) {
|
|
76
59
|
const model = this[parameterDef.propertyName];
|
|
77
60
|
DebugContext.tag(model, `${this.placeDefinition.component.name}.${parameterDef.propertyName}`);
|
|
78
61
|
const binding = this.registerDisposable(new Binding(this.visitModel, model, {
|
|
@@ -86,17 +69,7 @@ export class PlaceComponent extends DisposableComponent {
|
|
|
86
69
|
return currentVisit.replace(parameterDef, value);
|
|
87
70
|
}
|
|
88
71
|
}));
|
|
89
|
-
|
|
90
|
-
// that to the view. If we don't and the view already has a value (e.g. a selection model has already initialised in the
|
|
91
|
-
// component constructor) then we should push that to the route.
|
|
92
|
-
const isInVisit = !_.isNil(initialVisit.getParameterValue(parameterDef));
|
|
93
|
-
const isInModel = !_.isNil(model.value);
|
|
94
|
-
if (!isInVisit && isInModel) {
|
|
95
|
-
binding.writeLeft(); // push it to the route
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
binding.writeRight(); // push it to the model
|
|
99
|
-
}
|
|
72
|
+
binding.writeRight();
|
|
100
73
|
}
|
|
101
74
|
get placeDefinition() {
|
|
102
75
|
const definition = PlaceComponent.getDefinition(this.constructor);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"place-component.js","sourceRoot":"","sources":["../../../../../../libs/angular-ui-powerups/src/lib/place/place-component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Directive } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\nimport {\n assert,\n Binding,\n Constructable,\n DebugContext,\n Dsl,\n Guard,\n IMutableHasValue,\n lang,\n MutableValueModel,\n ValueModel\n} from '@coolon/pectin';\nimport { Klass } from '@coolon/typescript-utilities';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator';\nimport 'reflect-metadata';\nimport { DisposableComponent } from '../components/disposable-component';\nimport { InteractionContext } from '../interaction/interaction-context';\nimport { PlaceDefinition } from './place-definition';\nimport { ParameterDefinition } from './route/parameter-definition';\nimport { UrlSnapshot } from './url-snapshot';\nimport { Visit } from './visit';\nimport * as _ from 'lodash';\n\n// RAKE: making this Symbol(...) broke things.\nexport const DEFINITION_META_DATA_KEY = 'PLACE_DEFINITION_OPTIONS';\n// this one seems ok.\nexport const ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');\n\n\nclass ParameterChangeInterceptor<T> {\n constructor(parameterDef: ParameterDefinition<T>, model: ValueModel<T>, callback: PlaceComponent.InterceptCallback<T>, options: PlaceComponent.InterceptOptions) {\n }\n\n async canProceed(nextState: Visit, interactionContext: InteractionContext) {\n return true;\n }\n}\n\n@Directive()\nexport class PlaceComponent extends DisposableComponent {\n\n private readonly _placeReadyCallbacks: Function[] = [];\n private visitModel = new MutableValueModel<Visit>();\n private _inVisitUpdate = new Guard();\n private _active = new MutableValueModel<boolean>(false);\n\n interactionContext?: InteractionContext;\n readonly childPlaces: ReadonlyArray<Constructable<PlaceComponent>>;\n private readonly _parameterChangeInterceptors: ParameterChangeInterceptor<any>[] = [];\n\n canDeactivate?(interactionContext: InteractionContext): boolean | Promise<boolean>;\n\n constructor() {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n when(this._active).becomesTruthy(() => this._notifyPlaceReady());\n this.childPlaces = this.placeDefinition.children.map(d => d.component);\n }\n\n public initialiseVisit(visit: Visit, notifyVisitChanged: (current: Visit, previous: Visit) => void) {\n assert.isNil(this.visitModel.value);\n\n const { when } = Dsl.disposeWith(this);\n\n this.visitModel.value = visit;\n DebugContext.getOrCreate(this.visitModel).tag(`${this.placeDefinition.component.name}.visitModel`);\n\n // we track if the any of the bindings updated the route. If so we remember it and update the\n // route in one go at the end.\n this.placeDefinition\n .getVisitParameterDefs()\n .forEach(parameterDef => this.installAndInitialiseBinding(visit, parameterDef));\n\n when(this.visitModel).changes((current, previous) => {\n notifyVisitChanged(current, previous);\n }, { unless: this._inVisitUpdate });\n\n // TODO: this needs to do a replace url option so that the new url isn't put in the history.... for\n // now we're not doing it as it's a fair bit of effort and will only affect people if they're\n // cutting and pasting urls to each other.\n // // the binding process can update the visit (e.g. if a selection model has already selected during\n // // component construction) and there was no value specified in the route\n // if (visit.hasRoutingChangedFrom(this.visitModel.value)) {\n // notifyVisitChanged(this.visitModel.value, visit)\n // }\n }\n\n public updateVisit(visit: Visit) {\n assert.isTruthy(this.isInitialised());\n assert.notNil(visit);\n this._inVisitUpdate.whileTrue(() => {\n this.visitModel.value = visit;\n });\n }\n\n isInitialised() {\n return !!this.visitModel.value;\n }\n\n // @Trace()\n /**\n * Initialised the component bindings. If any binding has an initial model value (e.g. a selection model\n * initialised during the constructor) and the route has nothing, then the visit will be udpated and this\n * method will return ture to nofiy the the visit has changed.\n */\n private installAndInitialiseBinding<T, S>(initialVisit: Visit, parameterDef: ParameterDefinition<T, S>) {\n const model = this[parameterDef.propertyName] as IMutableHasValue<T>;\n DebugContext.tag(model, `${this.placeDefinition.component.name}.${parameterDef.propertyName}`);\n const binding = this.registerDisposable(new Binding(this.visitModel, model, {\n toRight(visit: Visit): T {\n const value = visit.getParameterValue(parameterDef);\n // console.log('push to component', { name: parameterDef.name, value, visit });\n return value;\n },\n toLeft(value: T, currentVisit?: Visit): Visit {\n // console.log('push to route', { name: parameterDef.name, value, currentVisit });\n return currentVisit.replace(parameterDef, value);\n }\n }));\n\n // Now we need to initialise the binding direction. If we have a value in the Url then we should always push\n // that to the view. If we don't and the view already has a value (e.g. a selection model has already initialised in the\n // component constructor) then we should push that to the route.\n const isInVisit = !_.isNil(initialVisit.getParameterValue(parameterDef));\n const isInModel = !_.isNil(model.value);\n if (!isInVisit && isInModel) {\n binding.writeLeft(); // push it to the route\n } else {\n binding.writeRight(); // push it to the model\n }\n }\n\n @Memoize()\n get placeDefinition(): PlaceDefinition {\n const definition = PlaceComponent.getDefinition(this.constructor as any as Constructable<PlaceComponent>);\n if (!definition) {\n lang.illegalState(`${this.constructor.name} extends PlaceComponent but doesn't have @Place({..}) decorator.`)\n }\n return definition;\n }\n\n get active() {\n return this._active.readonly;\n }\n\n /**\n * Called by the router to see if this component can deactivate. This isn't called for route parameter changes.\n * @param interactionContext\n */\n async _canLeavePlace(interactionContext: InteractionContext): Promise<boolean> {\n return this.canDeactivate ? this.canDeactivate(interactionContext) : true;\n }\n\n /**\n * Called by the router to see if this component can deactivate. This isn't called for route parameter changes.\n * @param interactionContext\n * @param nextState\n */\n async _canChangeRouteParameters(interactionContext: InteractionContext, nextState: UrlSnapshot): Promise<boolean> {\n if (this._parameterChangeInterceptors.length > 0) {\n const visit = nextState.createVisitFor(this.placeDefinition);\n for (let i = 0; i < this._parameterChangeInterceptors.length; i++) {\n const interceptor = this._parameterChangeInterceptors[i];\n const keepGoing = await interceptor.canProceed(visit, interactionContext);\n if (!keepGoing) {\n return false;\n }\n }\n }\n return true;\n }\n\n\n /**\n * Called by the router when the place is ready to interact after any animations have run.\n */\n _notifyActive(active: boolean) {\n this._active.value = active;\n }\n\n /**\n * Called by the router when the place is ready to interact after any animations have run.\n */\n _notifyPlaceReady() {\n if (this.onPlaceReady.length === 1) {\n this._placeReadyCallbacks.forEach(callback => callback());\n } else {\n console.warn('Overriding PlaceComponent.onPlaceReady has been deprecated. Use PlaceComponent.onPlaceReady(() => {... do stuff...}) instead.');\n this.onPlaceReady(undefined);\n }\n }\n\n onPlaceReady(callback: () => void) {\n this._placeReadyCallbacks.push(callback);\n }\n\n interceptVisitParameterChange<T>(model: ValueModel<T>, callback: PlaceComponent.InterceptCallback<T>, options?: PlaceComponent.InterceptOptions) {\n const parameterDef = ParameterDefinition.get(model);\n this._parameterChangeInterceptors.push(new ParameterChangeInterceptor(parameterDef, model, callback, options));\n }\n\n}\n\nexport namespace PlaceComponent {\n\n export function isPlaceComponentConstructor(target: any): target is Constructable<PlaceComponent> {\n return lang.constructorChain(target as Constructable<any>).includes(PlaceComponent);\n }\n\n export function getRouteParameters(klass: Constructable<PlaceComponent>): ParameterDefinition<any>[] {\n return Klass.get(klass).getMetadataList(ROUTE_PARAMETER_LIST_KEY) as ParameterDefinition<any>[];\n }\n\n export function getDefinition(snapshotOrConstructor: ActivatedRouteSnapshot | Constructable<PlaceComponent>): PlaceDefinition {\n if (snapshotOrConstructor instanceof ActivatedRouteSnapshot) {\n const component = snapshotOrConstructor.component;\n if (!isPlaceComponentConstructor(component)) {\n throw new Error(`ActivatedRouteSnapshot component is not a PlaceComponent, got ${component}`);\n }\n return Reflect.getMetadata(DEFINITION_META_DATA_KEY, component);\n } else {\n return Reflect.getMetadata(DEFINITION_META_DATA_KEY, snapshotOrConstructor);\n }\n }\n\n export function injectDefinition(klass: Constructable<PlaceComponent>, definition: PlaceDefinition) {\n Reflect.defineMetadata(DEFINITION_META_DATA_KEY, definition, klass);\n }\n\n export type InterceptCallback<T> = (is: T, was: T, interactionContext: InteractionContext) => boolean | Promise<boolean>;\n\n export interface InterceptOptions {\n initialValue: 'evaluationUnlessNil' | 'evaluate'\n }\n\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"place-component.js","sourceRoot":"","sources":["../../../../../../libs/angular-ui-powerups/src/lib/place/place-component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACL,MAAM,EACN,OAAO,EAEP,YAAY,EACZ,GAAG,EACH,KAAK,EAEL,IAAI,EACJ,iBAAiB,EAElB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAClE,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAInE,8CAA8C;AAC9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAC;AACnE,qBAAqB;AACrB,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAGzE,MAAM,0BAA0B;IAC9B,YAAY,YAAoC,EAAE,KAAoB,EAAE,QAA6C,EAAE,OAAwC;IAC/J,CAAC;IAEK,UAAU,CAAC,SAAgB,EAAE,kBAAsC;;YACvE,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;CACF;AAGD,MAAM,OAAO,cAAe,SAAQ,mBAAmB;IAarD;QACE,KAAK,EAAE,CAAC;QAZO,yBAAoB,GAAe,EAAE,CAAC;QAC/C,eAAU,GAAG,IAAI,iBAAiB,EAAS,CAAC;QAC5C,mBAAc,GAAG,IAAI,KAAK,EAAE,CAAC;QAC7B,YAAO,GAAG,IAAI,iBAAiB,CAAU,KAAK,CAAC,CAAC;QAIvC,iCAA4B,GAAsC,EAAE,CAAC;QAMpF,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACzE,CAAC;IAED,WAAW;IACJ,eAAe,CAAC,KAAY,EAAE,kBAA6D;QAChG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEvC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;QAC9B,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,CAAC;QACnG,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;QACxG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;YAClD,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACxC,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACtC,CAAC;IAEM,WAAW,CAAC,KAAY;QAC7B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE;YACjC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;QACX,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IACjC,CAAC;IAED,WAAW;IACH,cAAc,CAAO,YAAuC;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAwB,CAAC;QACrE,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC;QAC/F,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE;YAC1E,OAAO,CAAC,KAAY;gBAClB,MAAM,KAAK,GAAG,KAAK,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;gBACpD,+EAA+E;gBAC/E,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,CAAC,KAAQ,EAAE,YAAoB;gBACnC,kFAAkF;gBAClF,OAAO,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YACnD,CAAC;SACF,CAAC,CAAC,CAAC;QAEJ,OAAO,CAAC,UAAU,EAAE,CAAC;IACvB,CAAC;IAGD,IAAI,eAAe;QACjB,MAAM,UAAU,GAAG,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,WAAmD,CAAC,CAAC;QAC1G,IAAI,CAAC,UAAU,EAAE;YACf,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,kEAAkE,CAAC,CAAA;SAC9G;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACG,cAAc,CAAC,kBAAsC;;YACzD,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5E,CAAC;KAAA;IAED;;;;OAIG;IACG,yBAAyB,CAAC,kBAAsC,EAAE,SAAsB;;YAC5F,IAAI,IAAI,CAAC,4BAA4B,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChD,MAAM,KAAK,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACjE,MAAM,WAAW,GAAG,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;oBACzD,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;oBAC1E,IAAI,CAAC,SAAS,EAAE;wBACd,OAAO,KAAK,CAAC;qBACd;iBACF;aACF;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAGD;;OAEG;IACH,aAAa,CAAC,MAAe;QAC3B,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAClC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC3D;aAAM;YACL,OAAO,CAAC,IAAI,CAAC,gIAAgI,CAAC,CAAC;YAC/I,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;SAC9B;IACH,CAAC;IAED,YAAY,CAAC,QAAoB;QAC/B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,6BAA6B,CAAI,KAAoB,EAAE,QAA6C,EAAE,OAAyC;QAC7I,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,0BAA0B,CAAC,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACjH,CAAC;;;YArIF,SAAS;;;AAmER;IADC,OAAO,EAAE;8BACa,eAAe;;qDAMrC;AAgEH,WAAiB,cAAc;IAE7B,SAAgB,2BAA2B,CAAC,MAAW;QACrD,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAA4B,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACtF,CAAC;IAFe,0CAA2B,8BAE1C,CAAA;IAED,SAAgB,kBAAkB,CAAC,KAAoC;QACrE,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,wBAAwB,CAA+B,CAAC;IAClG,CAAC;IAFe,iCAAkB,qBAEjC,CAAA;IAED,SAAgB,aAAa,CAAC,qBAA6E;QACzG,IAAI,qBAAqB,YAAY,sBAAsB,EAAE;YAC3D,MAAM,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC;YAClD,IAAI,CAAC,2BAA2B,CAAC,SAAS,CAAC,EAAE;gBAC3C,MAAM,IAAI,KAAK,CAAC,iEAAiE,SAAS,EAAE,CAAC,CAAC;aAC/F;YACD,OAAO,OAAO,CAAC,WAAW,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;SACjE;aAAM;YACL,OAAO,OAAO,CAAC,WAAW,CAAC,wBAAwB,EAAE,qBAAqB,CAAC,CAAC;SAC7E;IACH,CAAC;IAVe,4BAAa,gBAU5B,CAAA;IAED,SAAgB,gBAAgB,CAAC,KAAoC,EAAE,UAA2B;QAChG,OAAO,CAAC,cAAc,CAAC,wBAAwB,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;IAFe,+BAAgB,mBAE/B,CAAA;AASH,CAAC,EAjCgB,cAAc,KAAd,cAAc,QAiC9B","sourcesContent":["import { Directive } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\nimport {\n assert,\n Binding,\n Constructable,\n DebugContext,\n Dsl,\n Guard,\n IMutableHasValue,\n lang,\n MutableValueModel,\n ValueModel\n} from '@coolon/pectin';\nimport { Klass } from '@coolon/typescript-utilities';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator';\nimport 'reflect-metadata';\nimport { DisposableComponent } from '../components/disposable-component';\nimport { InteractionContext } from '../interaction/interaction-context';\nimport { PlaceDefinition } from './place-definition';\nimport { ParameterDefinition } from './route/parameter-definition';\nimport { UrlSnapshot } from './url-snapshot';\nimport { Visit } from './visit';\n\n// RAKE: making this Symbol(...) broke things.\nexport const DEFINITION_META_DATA_KEY = 'PLACE_DEFINITION_OPTIONS';\n// this one seems ok.\nexport const ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');\n\n\nclass ParameterChangeInterceptor<T> {\n constructor(parameterDef: ParameterDefinition<T>, model: ValueModel<T>, callback: PlaceComponent.InterceptCallback<T>, options: PlaceComponent.InterceptOptions) {\n }\n\n async canProceed(nextState: Visit, interactionContext: InteractionContext) {\n return true;\n }\n}\n\n@Directive()\nexport class PlaceComponent extends DisposableComponent {\n\n private readonly _placeReadyCallbacks: Function[] = [];\n private visitModel = new MutableValueModel<Visit>();\n private _inVisitUpdate = new Guard();\n private _active = new MutableValueModel<boolean>(false);\n\n interactionContext?: InteractionContext;\n readonly childPlaces: ReadonlyArray<Constructable<PlaceComponent>>;\n private readonly _parameterChangeInterceptors: ParameterChangeInterceptor<any>[] = [];\n\n canDeactivate?(interactionContext: InteractionContext): boolean | Promise<boolean>;\n\n constructor() {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n when(this._active).becomesTruthy(() => this._notifyPlaceReady());\n this.childPlaces = this.placeDefinition.children.map(d => d.component);\n }\n\n // @Trace()\n public initialiseVisit(visit: Visit, notifyVisitChanged: (current: Visit, previous: Visit) => void) {\n assert.isNil(this.visitModel.value);\n\n const { when } = Dsl.disposeWith(this);\n\n this.visitModel.value = visit;\n DebugContext.getOrCreate(this.visitModel).tag(`${this.placeDefinition.component.name}.visitModel`);\n this.placeDefinition.getVisitParameterDefs().forEach(parameterDef => this.installBinding(parameterDef));\n when(this.visitModel).changes((current, previous) => {\n notifyVisitChanged(current, previous);\n }, { unless: this._inVisitUpdate });\n }\n\n public updateVisit(visit: Visit) {\n assert.isTruthy(this.isInitialised());\n assert.notNil(visit);\n this._inVisitUpdate.whileTrue(() => {\n this.visitModel.value = visit;\n });\n }\n\n isInitialised() {\n return !!this.visitModel.value;\n }\n\n // @Trace()\n private installBinding<T, S>(parameterDef: ParameterDefinition<T, S>) {\n const model = this[parameterDef.propertyName] as IMutableHasValue<T>;\n DebugContext.tag(model, `${this.placeDefinition.component.name}.${parameterDef.propertyName}`);\n const binding = this.registerDisposable(new Binding(this.visitModel, model, {\n toRight(visit: Visit): T {\n const value = visit.getParameterValue(parameterDef);\n // console.log('push to component', { name: parameterDef.name, value, visit });\n return value;\n },\n toLeft(value: T, currentVisit?: Visit): Visit {\n // console.log('push to route', { name: parameterDef.name, value, currentVisit });\n return currentVisit.replace(parameterDef, value);\n }\n }));\n\n binding.writeRight();\n }\n\n @Memoize()\n get placeDefinition(): PlaceDefinition {\n const definition = PlaceComponent.getDefinition(this.constructor as any as Constructable<PlaceComponent>);\n if (!definition) {\n lang.illegalState(`${this.constructor.name} extends PlaceComponent but doesn't have @Place({..}) decorator.`)\n }\n return definition;\n }\n\n get active() {\n return this._active.readonly;\n }\n\n /**\n * Called by the router to see if this component can deactivate. This isn't called for route parameter changes.\n * @param interactionContext\n */\n async _canLeavePlace(interactionContext: InteractionContext): Promise<boolean> {\n return this.canDeactivate ? this.canDeactivate(interactionContext) : true;\n }\n\n /**\n * Called by the router to see if this component can deactivate. This isn't called for route parameter changes.\n * @param interactionContext\n * @param nextState\n */\n async _canChangeRouteParameters(interactionContext: InteractionContext, nextState: UrlSnapshot): Promise<boolean> {\n if (this._parameterChangeInterceptors.length > 0) {\n const visit = nextState.createVisitFor(this.placeDefinition);\n for (let i = 0; i < this._parameterChangeInterceptors.length; i++) {\n const interceptor = this._parameterChangeInterceptors[i];\n const keepGoing = await interceptor.canProceed(visit, interactionContext);\n if (!keepGoing) {\n return false;\n }\n }\n }\n return true;\n }\n\n\n /**\n * Called by the router when the place is ready to interact after any animations have run.\n */\n _notifyActive(active: boolean) {\n this._active.value = active;\n }\n\n /**\n * Called by the router when the place is ready to interact after any animations have run.\n */\n _notifyPlaceReady() {\n if (this.onPlaceReady.length === 1) {\n this._placeReadyCallbacks.forEach(callback => callback());\n } else {\n console.warn('Overriding PlaceComponent.onPlaceReady has been deprecated. Use PlaceComponent.onPlaceReady(() => {... do stuff...}) instead.');\n this.onPlaceReady(undefined);\n }\n }\n\n onPlaceReady(callback: () => void) {\n this._placeReadyCallbacks.push(callback);\n }\n\n interceptVisitParameterChange<T>(model: ValueModel<T>, callback: PlaceComponent.InterceptCallback<T>, options?: PlaceComponent.InterceptOptions) {\n const parameterDef = ParameterDefinition.get(model);\n this._parameterChangeInterceptors.push(new ParameterChangeInterceptor(parameterDef, model, callback, options));\n }\n\n}\n\nexport namespace PlaceComponent {\n\n export function isPlaceComponentConstructor(target: any): target is Constructable<PlaceComponent> {\n return lang.constructorChain(target as Constructable<any>).includes(PlaceComponent);\n }\n\n export function getRouteParameters(klass: Constructable<PlaceComponent>): ParameterDefinition<any>[] {\n return Klass.get(klass).getMetadataList(ROUTE_PARAMETER_LIST_KEY) as ParameterDefinition<any>[];\n }\n\n export function getDefinition(snapshotOrConstructor: ActivatedRouteSnapshot | Constructable<PlaceComponent>): PlaceDefinition {\n if (snapshotOrConstructor instanceof ActivatedRouteSnapshot) {\n const component = snapshotOrConstructor.component;\n if (!isPlaceComponentConstructor(component)) {\n throw new Error(`ActivatedRouteSnapshot component is not a PlaceComponent, got ${component}`);\n }\n return Reflect.getMetadata(DEFINITION_META_DATA_KEY, component);\n } else {\n return Reflect.getMetadata(DEFINITION_META_DATA_KEY, snapshotOrConstructor);\n }\n }\n\n export function injectDefinition(klass: Constructable<PlaceComponent>, definition: PlaceDefinition) {\n Reflect.defineMetadata(DEFINITION_META_DATA_KEY, definition, klass);\n }\n\n export type InterceptCallback<T> = (is: T, was: T, interactionContext: InteractionContext) => boolean | Promise<boolean>;\n\n export interface InterceptOptions {\n initialValue: 'evaluationUnlessNil' | 'evaluate'\n }\n\n\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"DEFINITION_META_DATA_KEY":"PLACE_DEFINITION_OPTIONS","ROUTE_PARAMETER_LIST_KEY":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Symbol"},"arguments":["place:route:parameters"]},"PlaceComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../components/disposable-component","name":"DisposableComponent","line":
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"DEFINITION_META_DATA_KEY":"PLACE_DEFINITION_OPTIONS","ROUTE_PARAMETER_LIST_KEY":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Symbol"},"arguments":["place:route:parameters"]},"PlaceComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../components/disposable-component","name":"DisposableComponent","line":40,"character":36},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":39,"character":1}}],"members":{"canDeactivate":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor"}],"initialiseVisit":[{"__symbolic":"method"}],"updateVisit":[{"__symbolic":"method"}],"isInitialised":[{"__symbolic":"method"}],"installBinding":[{"__symbolic":"method"}],"placeDefinition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@typescript-plus/fast-memoize-decorator","name":"Memoize","line":105,"character":3}}]}],"_canLeavePlace":[{"__symbolic":"method"}],"_canChangeRouteParameters":[{"__symbolic":"method"}],"_notifyActive":[{"__symbolic":"method"}],"_notifyPlaceReady":[{"__symbolic":"method"}],"onPlaceReady":[{"__symbolic":"method"}],"interceptVisitParameterChange":[{"__symbolic":"method"}]}}}}]
|