@ecodev/natural 41.3.0 → 42.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ecodev-natural.d.ts +1 -9
- package/esm2020/ecodev-natural.mjs +5 -0
- package/esm2020/lib/classes/abstract-controller.mjs +30 -0
- package/esm2020/lib/classes/abstract-detail.mjs +152 -0
- package/esm2020/lib/classes/abstract-editable-list.mjs +96 -0
- package/esm2020/lib/classes/abstract-list.mjs +406 -0
- package/esm2020/lib/classes/abstract-navigable-list.mjs +126 -0
- package/{esm2015/lib/classes/apollo-utils.js → esm2020/lib/classes/apollo-utils.mjs} +0 -0
- package/esm2020/lib/classes/data-source.mjs +76 -0
- package/{esm2015/lib/classes/query-variable-manager-utils.js → esm2020/lib/classes/query-variable-manager-utils.mjs} +0 -0
- package/esm2020/lib/classes/query-variable-manager.mjs +161 -0
- package/{esm2015/lib/classes/rxjs.js → esm2020/lib/classes/rxjs.mjs} +0 -0
- package/{esm2015/lib/classes/tld.js → esm2020/lib/classes/tld.mjs} +0 -0
- package/{esm2015/lib/classes/utility.js → esm2020/lib/classes/utility.mjs} +0 -0
- package/esm2020/lib/classes/validators.mjs +179 -0
- package/esm2020/lib/directives/http-prefix.directive.mjs +50 -0
- package/esm2020/lib/modules/alert/alert.module.mjs +20 -0
- package/esm2020/lib/modules/alert/alert.service.mjs +55 -0
- package/esm2020/lib/modules/alert/confirm.component.mjs +20 -0
- package/{esm2015/lib/modules/alert/public-api.js → esm2020/lib/modules/alert/public-api.mjs} +0 -0
- package/esm2020/lib/modules/avatar/avatar.module.mjs +19 -0
- package/esm2020/lib/modules/avatar/component/avatar.component.mjs +187 -0
- package/{esm2015/lib/modules/avatar/public-api.js → esm2020/lib/modules/avatar/public-api.mjs} +0 -0
- package/esm2020/lib/modules/avatar/service/avatar.service.mjs +66 -0
- package/esm2020/lib/modules/avatar/sources/gravatar.mjs +29 -0
- package/{esm2015/lib/modules/avatar/sources/image.js → esm2020/lib/modules/avatar/sources/image.mjs} +0 -0
- package/{esm2015/lib/modules/avatar/sources/initials.js → esm2020/lib/modules/avatar/sources/initials.mjs} +0 -0
- package/{esm2015/lib/modules/avatar/sources/source.js → esm2020/lib/modules/avatar/sources/source.mjs} +1 -1
- package/esm2020/lib/modules/columns-picker/columns-picker-column.directive.mjs +43 -0
- package/esm2020/lib/modules/columns-picker/columns-picker.component.mjs +84 -0
- package/esm2020/lib/modules/columns-picker/columns-picker.module.mjs +47 -0
- package/{esm2015/lib/modules/columns-picker/public-api.js → esm2020/lib/modules/columns-picker/public-api.mjs} +0 -0
- package/esm2020/lib/modules/common/common-module.mjs +54 -0
- package/esm2020/lib/modules/common/directives/linkable-tab.directive.mjs +79 -0
- package/esm2020/lib/modules/common/directives/reactive-asterisk.directive.mjs +33 -0
- package/esm2020/lib/modules/common/directives/src-density.directive.mjs +62 -0
- package/esm2020/lib/modules/common/pipes/capitalize.pipe.mjs +18 -0
- package/esm2020/lib/modules/common/pipes/ellipsis.pipe.mjs +14 -0
- package/esm2020/lib/modules/common/pipes/enum.pipe.mjs +25 -0
- package/esm2020/lib/modules/common/pipes/swiss-date.pipe.mjs +20 -0
- package/{esm2015/lib/modules/common/public-api.js → esm2020/lib/modules/common/public-api.mjs} +0 -0
- package/esm2020/lib/modules/common/services/memory-storage.mjs +112 -0
- package/esm2020/lib/modules/common/services/seo.service.mjs +114 -0
- package/esm2020/lib/modules/detail-header/detail-header.component.mjs +76 -0
- package/esm2020/lib/modules/detail-header/detail-header.module.mjs +21 -0
- package/{esm2015/lib/modules/detail-header/public-api.js → esm2020/lib/modules/detail-header/public-api.mjs} +0 -0
- package/esm2020/lib/modules/dialog-trigger/dialog-trigger.component.mjs +69 -0
- package/esm2020/lib/modules/dialog-trigger/dialog-trigger.module.mjs +19 -0
- package/{esm2015/lib/modules/dialog-trigger/public-api.js → esm2020/lib/modules/dialog-trigger/public-api.mjs} +0 -0
- package/esm2020/lib/modules/dropdown-components/abstract-association-select-component.directive.mjs +98 -0
- package/esm2020/lib/modules/dropdown-components/natural-dropdown-components.module.mjs +92 -0
- package/{esm2015/lib/modules/dropdown-components/public-api.js → esm2020/lib/modules/dropdown-components/public-api.mjs} +0 -0
- package/esm2020/lib/modules/dropdown-components/type-date/type-date.component.mjs +133 -0
- package/esm2020/lib/modules/dropdown-components/type-date-range/type-date-range.component.mjs +137 -0
- package/esm2020/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.mjs +69 -0
- package/esm2020/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.mjs +38 -0
- package/esm2020/lib/modules/dropdown-components/type-number/type-number.component.mjs +104 -0
- package/esm2020/lib/modules/dropdown-components/type-select/type-select.component.mjs +169 -0
- package/esm2020/lib/modules/dropdown-components/type-text/type-text.component.mjs +57 -0
- package/{esm2015/lib/modules/dropdown-components/types.js → esm2020/lib/modules/dropdown-components/types.mjs} +0 -0
- package/{esm2015/lib/modules/dropdown-components/utils.js → esm2020/lib/modules/dropdown-components/utils.mjs} +0 -0
- package/esm2020/lib/modules/file/abstract-file.mjs +231 -0
- package/esm2020/lib/modules/file/component/file.component.mjs +143 -0
- package/esm2020/lib/modules/file/file-drop.directive.mjs +110 -0
- package/esm2020/lib/modules/file/file-select.directive.mjs +28 -0
- package/esm2020/lib/modules/file/file.module.mjs +24 -0
- package/esm2020/lib/modules/file/file.service.mjs +48 -0
- package/{esm2015/lib/modules/file/public-api.js → esm2020/lib/modules/file/public-api.mjs} +0 -0
- package/{esm2015/lib/modules/file/types.js → esm2020/lib/modules/file/types.mjs} +0 -0
- package/{esm2015/lib/modules/file/utils.js → esm2020/lib/modules/file/utils.mjs} +3 -4
- package/esm2020/lib/modules/fixed-button/fixed-button.component.mjs +27 -0
- package/esm2020/lib/modules/fixed-button/fixed-button.module.mjs +21 -0
- package/{esm2015/lib/modules/fixed-button/public-api.js → esm2020/lib/modules/fixed-button/public-api.mjs} +0 -0
- package/esm2020/lib/modules/fixed-button-detail/fixed-button-detail.component.mjs +36 -0
- package/esm2020/lib/modules/fixed-button-detail/fixed-button-detail.module.mjs +20 -0
- package/{esm2015/lib/modules/fixed-button-detail/public-api.js → esm2020/lib/modules/fixed-button-detail/public-api.mjs} +0 -0
- package/{esm2015/lib/modules/hierarchic-selector/classes/flat-node.js → esm2020/lib/modules/hierarchic-selector/classes/flat-node.mjs} +1 -1
- package/{esm2015/lib/modules/hierarchic-selector/classes/hierarchic-configuration.js → esm2020/lib/modules/hierarchic-selector/classes/hierarchic-configuration.mjs} +0 -0
- package/{esm2015/lib/modules/hierarchic-selector/classes/hierarchic-filters-configuration.js → esm2020/lib/modules/hierarchic-selector/classes/hierarchic-filters-configuration.mjs} +0 -0
- package/{esm2015/lib/modules/hierarchic-selector/classes/model-node.js → esm2020/lib/modules/hierarchic-selector/classes/model-node.mjs} +1 -1
- package/esm2020/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.mjs +364 -0
- package/esm2020/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.mjs +258 -0
- package/esm2020/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.mjs +31 -0
- package/esm2020/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.mjs +23 -0
- package/esm2020/lib/modules/hierarchic-selector/hierarchic-selector.module.mjs +81 -0
- package/{esm2015/lib/modules/hierarchic-selector/public-api.js → esm2020/lib/modules/hierarchic-selector/public-api.mjs} +0 -0
- package/esm2020/lib/modules/icon/icon.component.mjs +92 -0
- package/esm2020/lib/modules/icon/icon.module.mjs +30 -0
- package/{esm2015/lib/modules/icon/public-api.js → esm2020/lib/modules/icon/public-api.mjs} +0 -0
- package/esm2020/lib/modules/matomo/matomo-module.module.mjs +12 -0
- package/esm2020/lib/modules/matomo/matomo.service.mjs +105 -0
- package/{esm2015/lib/modules/matomo/public-api.js → esm2020/lib/modules/matomo/public-api.mjs} +0 -0
- package/esm2020/lib/modules/panels/abstract-panel.mjs +56 -0
- package/{esm2015/lib/modules/panels/fallback-if-no-opened-panels.urlmatcher.js → esm2020/lib/modules/panels/fallback-if-no-opened-panels.urlmatcher.mjs} +0 -0
- package/esm2020/lib/modules/panels/panels.component.mjs +26 -0
- package/esm2020/lib/modules/panels/panels.module.mjs +33 -0
- package/esm2020/lib/modules/panels/panels.service.mjs +325 -0
- package/{esm2015/lib/modules/panels/panels.urlmatcher.js → esm2020/lib/modules/panels/panels.urlmatcher.mjs} +0 -0
- package/{esm2015/lib/modules/panels/public-api.js → esm2020/lib/modules/panels/public-api.mjs} +0 -0
- package/{esm2015/lib/modules/panels/types.js → esm2020/lib/modules/panels/types.mjs} +0 -0
- package/{esm2015/lib/modules/relations/public-api.js → esm2020/lib/modules/relations/public-api.mjs} +0 -0
- package/esm2020/lib/modules/relations/relations.component.mjs +198 -0
- package/esm2020/lib/modules/relations/relations.module.mjs +58 -0
- package/{esm2015/lib/modules/search/classes/graphql-doctrine.js → esm2020/lib/modules/search/classes/graphql-doctrine.mjs} +0 -0
- package/{esm2015/lib/modules/search/classes/graphql-doctrine.types.js → esm2020/lib/modules/search/classes/graphql-doctrine.types.mjs} +0 -0
- package/{esm2015/lib/modules/search/classes/transformers.js → esm2020/lib/modules/search/classes/transformers.mjs} +0 -0
- package/{esm2015/lib/modules/search/classes/url.js → esm2020/lib/modules/search/classes/url.mjs} +0 -0
- package/{esm2015/lib/modules/search/classes/utils.js → esm2020/lib/modules/search/classes/utils.mjs} +0 -0
- package/{esm2015/lib/modules/search/dropdown-container/dropdown-container-animations.js → esm2020/lib/modules/search/dropdown-container/dropdown-container-animations.mjs} +0 -0
- package/esm2020/lib/modules/search/dropdown-container/dropdown-container.component.mjs +88 -0
- package/{esm2015/lib/modules/search/dropdown-container/dropdown-ref.js → esm2020/lib/modules/search/dropdown-container/dropdown-ref.mjs} +1 -1
- package/esm2020/lib/modules/search/dropdown-container/dropdown.service.mjs +93 -0
- package/esm2020/lib/modules/search/facet-selector/facet-selector.component.mjs +50 -0
- package/esm2020/lib/modules/search/group/group.component.mjs +45 -0
- package/esm2020/lib/modules/search/input/input.component.mjs +328 -0
- package/{esm2015/lib/modules/search/public-api.js → esm2020/lib/modules/search/public-api.mjs} +0 -0
- package/esm2020/lib/modules/search/search/search.component.mjs +78 -0
- package/esm2020/lib/modules/search/search.module.mjs +84 -0
- package/{esm2015/lib/modules/search/types/dropdown-component.js → esm2020/lib/modules/search/types/dropdown-component.mjs} +0 -0
- package/{esm2015/lib/modules/search/types/facet.js → esm2020/lib/modules/search/types/facet.mjs} +0 -0
- package/{esm2015/lib/modules/search/types/values.js → esm2020/lib/modules/search/types/values.mjs} +0 -0
- package/esm2020/lib/modules/select/abstract-select.component.mjs +186 -0
- package/{esm2015/lib/modules/select/public-api.js → esm2020/lib/modules/select/public-api.mjs} +0 -0
- package/esm2020/lib/modules/select/select/select.component.mjs +208 -0
- package/esm2020/lib/modules/select/select-enum/select-enum.component.mjs +42 -0
- package/esm2020/lib/modules/select/select-hierarchic/select-hierarchic.component.mjs +128 -0
- package/esm2020/lib/modules/select/select.module.mjs +68 -0
- package/{esm2015/lib/modules/sidenav/public-api.js → esm2020/lib/modules/sidenav/public-api.mjs} +0 -0
- package/esm2020/lib/modules/sidenav/sidenav/sidenav.component.mjs +15 -0
- package/esm2020/lib/modules/sidenav/sidenav-container/sidenav-container.component.mjs +87 -0
- package/esm2020/lib/modules/sidenav/sidenav-content/sidenav-content.component.mjs +12 -0
- package/esm2020/lib/modules/sidenav/sidenav-stack.service.mjs +52 -0
- package/esm2020/lib/modules/sidenav/sidenav.module.mjs +25 -0
- package/esm2020/lib/modules/sidenav/sidenav.service.mjs +195 -0
- package/{esm2015/lib/modules/stamp/public-api.js → esm2020/lib/modules/stamp/public-api.mjs} +0 -0
- package/esm2020/lib/modules/stamp/stamp-module.module.mjs +18 -0
- package/esm2020/lib/modules/stamp/stamp.component.mjs +14 -0
- package/{esm2015/lib/modules/table-button/public-api.js → esm2020/lib/modules/table-button/public-api.mjs} +0 -0
- package/esm2020/lib/modules/table-button/table-button.component.mjs +48 -0
- package/esm2020/lib/modules/table-button/table-button.module.mjs +21 -0
- package/esm2020/lib/services/abstract-model.service.mjs +509 -0
- package/esm2020/lib/services/enum.service.mjs +67 -0
- package/esm2020/lib/services/link-mutation.service.mjs +153 -0
- package/esm2020/lib/services/persistence.service.mjs +113 -0
- package/esm2020/lib/services/swiss-parsing-date-adapter.service.mjs +55 -0
- package/{esm2015/lib/types/types.js → esm2020/lib/types/types.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/fesm2015/{ecodev-natural.js → ecodev-natural.mjs} +2791 -2361
- package/fesm2015/ecodev-natural.mjs.map +1 -0
- package/fesm2020/ecodev-natural.mjs +10506 -0
- package/fesm2020/ecodev-natural.mjs.map +1 -0
- package/lib/classes/abstract-controller.d.ts +3 -0
- package/lib/classes/abstract-detail.d.ts +3 -0
- package/lib/classes/abstract-editable-list.d.ts +3 -0
- package/lib/classes/abstract-list.d.ts +3 -0
- package/lib/classes/abstract-navigable-list.d.ts +3 -0
- package/lib/directives/http-prefix.directive.d.ts +3 -0
- package/lib/modules/alert/alert.module.d.ts +9 -0
- package/lib/modules/alert/alert.service.d.ts +3 -0
- package/lib/modules/alert/confirm.component.d.ts +3 -0
- package/lib/modules/avatar/avatar.module.d.ts +6 -0
- package/lib/modules/avatar/component/avatar.component.d.ts +3 -0
- package/lib/modules/avatar/service/avatar.service.d.ts +3 -0
- package/lib/modules/columns-picker/columns-picker-column.directive.d.ts +3 -0
- package/lib/modules/columns-picker/columns-picker.component.d.ts +3 -0
- package/lib/modules/columns-picker/columns-picker.module.d.ts +13 -0
- package/lib/modules/common/common-module.d.ts +16 -0
- package/lib/modules/common/directives/linkable-tab.directive.d.ts +3 -0
- package/lib/modules/common/directives/reactive-asterisk.directive.d.ts +3 -0
- package/lib/modules/common/directives/src-density.directive.d.ts +3 -0
- package/lib/modules/common/pipes/capitalize.pipe.d.ts +3 -0
- package/lib/modules/common/pipes/ellipsis.pipe.d.ts +3 -0
- package/lib/modules/common/pipes/enum.pipe.d.ts +3 -0
- package/lib/modules/common/pipes/swiss-date.pipe.d.ts +3 -0
- package/lib/modules/common/services/memory-storage.d.ts +3 -0
- package/lib/modules/common/services/seo.service.d.ts +3 -0
- package/lib/modules/detail-header/detail-header.component.d.ts +3 -0
- package/lib/modules/detail-header/detail-header.module.d.ts +9 -0
- package/lib/modules/dialog-trigger/dialog-trigger.component.d.ts +3 -0
- package/lib/modules/dialog-trigger/dialog-trigger.module.d.ts +7 -0
- package/lib/modules/dropdown-components/abstract-association-select-component.directive.d.ts +3 -0
- package/lib/modules/dropdown-components/natural-dropdown-components.module.d.ts +22 -0
- package/lib/modules/dropdown-components/type-date/type-date.component.d.ts +3 -0
- package/lib/modules/dropdown-components/type-date-range/type-date-range.component.d.ts +3 -0
- package/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.d.ts +3 -0
- package/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.d.ts +3 -0
- package/lib/modules/dropdown-components/type-number/type-number.component.d.ts +3 -0
- package/lib/modules/dropdown-components/type-select/type-select.component.d.ts +3 -0
- package/lib/modules/dropdown-components/type-text/type-text.component.d.ts +3 -0
- package/lib/modules/file/abstract-file.d.ts +3 -0
- package/lib/modules/file/component/file.component.d.ts +3 -0
- package/lib/modules/file/file-drop.directive.d.ts +3 -0
- package/lib/modules/file/file-select.directive.d.ts +3 -0
- package/lib/modules/file/file.module.d.ts +11 -0
- package/lib/modules/file/file.service.d.ts +3 -0
- package/lib/modules/fixed-button/fixed-button.component.d.ts +3 -0
- package/lib/modules/fixed-button/fixed-button.module.d.ts +9 -0
- package/lib/modules/fixed-button-detail/fixed-button-detail.component.d.ts +3 -0
- package/lib/modules/fixed-button-detail/fixed-button-detail.module.d.ts +8 -0
- package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.d.ts +3 -0
- package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.d.ts +3 -0
- package/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.d.ts +3 -0
- package/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.d.ts +3 -0
- package/lib/modules/hierarchic-selector/hierarchic-selector.module.d.ts +21 -0
- package/lib/modules/icon/icon.component.d.ts +3 -0
- package/lib/modules/icon/icon.module.d.ts +7 -0
- package/lib/modules/matomo/matomo-module.module.d.ts +4 -0
- package/lib/modules/matomo/matomo.service.d.ts +3 -0
- package/lib/modules/panels/abstract-panel.d.ts +3 -0
- package/lib/modules/panels/panels.component.d.ts +3 -0
- package/lib/modules/panels/panels.module.d.ts +8 -0
- package/lib/modules/panels/panels.service.d.ts +3 -0
- package/lib/modules/relations/relations.component.d.ts +3 -0
- package/lib/modules/relations/relations.module.d.ts +15 -0
- package/lib/modules/search/dropdown-container/dropdown-container.component.d.ts +3 -0
- package/lib/modules/search/dropdown-container/dropdown-ref.d.ts +1 -1
- package/lib/modules/search/dropdown-container/dropdown.service.d.ts +3 -0
- package/lib/modules/search/facet-selector/facet-selector.component.d.ts +3 -0
- package/lib/modules/search/group/group.component.d.ts +3 -0
- package/lib/modules/search/input/input.component.d.ts +3 -0
- package/lib/modules/search/search/search.component.d.ts +3 -0
- package/lib/modules/search/search.module.d.ts +19 -0
- package/lib/modules/select/abstract-select.component.d.ts +4 -1
- package/lib/modules/select/select/select.component.d.ts +3 -0
- package/lib/modules/select/select-enum/select-enum.component.d.ts +3 -0
- package/lib/modules/select/select-hierarchic/select-hierarchic.component.d.ts +3 -0
- package/lib/modules/select/select.module.d.ts +19 -0
- package/lib/modules/sidenav/sidenav/sidenav.component.d.ts +3 -0
- package/lib/modules/sidenav/sidenav-container/sidenav-container.component.d.ts +3 -0
- package/lib/modules/sidenav/sidenav-content/sidenav-content.component.d.ts +3 -0
- package/lib/modules/sidenav/sidenav-stack.service.d.ts +4 -1
- package/lib/modules/sidenav/sidenav.module.d.ts +11 -0
- package/lib/modules/sidenav/sidenav.service.d.ts +3 -0
- package/lib/modules/stamp/stamp-module.module.d.ts +6 -0
- package/lib/modules/stamp/stamp.component.d.ts +3 -0
- package/lib/modules/table-button/table-button.component.d.ts +3 -0
- package/lib/modules/table-button/table-button.module.d.ts +9 -0
- package/lib/services/enum.service.d.ts +3 -0
- package/lib/services/link-mutation.service.d.ts +3 -0
- package/lib/services/persistence.service.d.ts +3 -0
- package/lib/services/swiss-parsing-date-adapter.service.d.ts +4 -1
- package/package.json +25 -12
- package/src/lib/modules/alert/_alert.theme.scss +1 -1
- package/src/lib/modules/file/component/_file.theme.scss +1 -1
- package/src/lib/modules/icon/_icon.theme.scss +1 -1
- package/src/lib/modules/search/dropdown-container/_dropdown-container.theme.scss +1 -1
- package/src/lib/modules/table-button/_table-button.theme.scss +1 -1
- package/src/lib/styles/_table.scss +1 -1
- package/theming/_natural.theme.scss +1 -1
- package/bundles/ecodev-natural.umd.js +0 -11318
- package/bundles/ecodev-natural.umd.js.map +0 -1
- package/ecodev-natural.metadata.json +0 -1
- package/esm2015/ecodev-natural.js +0 -14
- package/esm2015/lib/classes/abstract-controller.js +0 -29
- package/esm2015/lib/classes/abstract-detail.js +0 -157
- package/esm2015/lib/classes/abstract-editable-list.js +0 -97
- package/esm2015/lib/classes/abstract-list.js +0 -409
- package/esm2015/lib/classes/abstract-navigable-list.js +0 -126
- package/esm2015/lib/classes/data-source.js +0 -76
- package/esm2015/lib/classes/query-variable-manager.js +0 -161
- package/esm2015/lib/classes/validators.js +0 -176
- package/esm2015/lib/directives/http-prefix.directive.js +0 -46
- package/esm2015/lib/modules/alert/alert.module.js +0 -15
- package/esm2015/lib/modules/alert/alert.service.js +0 -59
- package/esm2015/lib/modules/alert/confirm.component.js +0 -17
- package/esm2015/lib/modules/avatar/avatar.module.js +0 -14
- package/esm2015/lib/modules/avatar/component/avatar.component.js +0 -158
- package/esm2015/lib/modules/avatar/service/avatar.service.js +0 -65
- package/esm2015/lib/modules/avatar/sources/gravatar.js +0 -29
- package/esm2015/lib/modules/columns-picker/columns-picker-column.directive.js +0 -41
- package/esm2015/lib/modules/columns-picker/columns-picker.component.js +0 -82
- package/esm2015/lib/modules/columns-picker/columns-picker.module.js +0 -28
- package/esm2015/lib/modules/common/common-module.js +0 -35
- package/esm2015/lib/modules/common/directives/linkable-tab.directive.js +0 -82
- package/esm2015/lib/modules/common/directives/reactive-asterisk.directive.js +0 -31
- package/esm2015/lib/modules/common/directives/src-density.directive.js +0 -63
- package/esm2015/lib/modules/common/pipes/capitalize.pipe.js +0 -14
- package/esm2015/lib/modules/common/pipes/ellipsis.pipe.js +0 -10
- package/esm2015/lib/modules/common/pipes/enum.pipe.js +0 -24
- package/esm2015/lib/modules/common/pipes/swiss-date.pipe.js +0 -16
- package/esm2015/lib/modules/common/services/memory-storage.js +0 -110
- package/esm2015/lib/modules/common/services/seo.service.js +0 -120
- package/esm2015/lib/modules/detail-header/detail-header.component.js +0 -63
- package/esm2015/lib/modules/detail-header/detail-header.module.js +0 -16
- package/esm2015/lib/modules/dialog-trigger/dialog-trigger.component.js +0 -68
- package/esm2015/lib/modules/dialog-trigger/dialog-trigger.module.js +0 -14
- package/esm2015/lib/modules/dropdown-components/abstract-association-select-component.directive.js +0 -96
- package/esm2015/lib/modules/dropdown-components/natural-dropdown-components.module.js +0 -51
- package/esm2015/lib/modules/dropdown-components/type-date/type-date.component.js +0 -123
- package/esm2015/lib/modules/dropdown-components/type-date-range/type-date-range.component.js +0 -128
- package/esm2015/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.js +0 -63
- package/esm2015/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.js +0 -31
- package/esm2015/lib/modules/dropdown-components/type-number/type-number.component.js +0 -99
- package/esm2015/lib/modules/dropdown-components/type-select/type-select.component.js +0 -161
- package/esm2015/lib/modules/dropdown-components/type-text/type-text.component.js +0 -53
- package/esm2015/lib/modules/file/abstract-file.js +0 -223
- package/esm2015/lib/modules/file/component/file.component.js +0 -133
- package/esm2015/lib/modules/file/file-drop.directive.js +0 -99
- package/esm2015/lib/modules/file/file-select.directive.js +0 -25
- package/esm2015/lib/modules/file/file.module.js +0 -19
- package/esm2015/lib/modules/file/file.service.js +0 -47
- package/esm2015/lib/modules/fixed-button/fixed-button.component.js +0 -23
- package/esm2015/lib/modules/fixed-button/fixed-button.module.js +0 -16
- package/esm2015/lib/modules/fixed-button-detail/fixed-button-detail.component.js +0 -31
- package/esm2015/lib/modules/fixed-button-detail/fixed-button-detail.module.js +0 -15
- package/esm2015/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.js +0 -351
- package/esm2015/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.js +0 -258
- package/esm2015/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.js +0 -28
- package/esm2015/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.js +0 -23
- package/esm2015/lib/modules/hierarchic-selector/hierarchic-selector.module.js +0 -46
- package/esm2015/lib/modules/icon/icon.component.js +0 -78
- package/esm2015/lib/modules/icon/icon.module.js +0 -25
- package/esm2015/lib/modules/matomo/matomo-module.module.js +0 -7
- package/esm2015/lib/modules/matomo/matomo.service.js +0 -106
- package/esm2015/lib/modules/panels/abstract-panel.js +0 -50
- package/esm2015/lib/modules/panels/panels.component.js +0 -26
- package/esm2015/lib/modules/panels/panels.module.js +0 -28
- package/esm2015/lib/modules/panels/panels.service.js +0 -331
- package/esm2015/lib/modules/relations/relations.component.js +0 -181
- package/esm2015/lib/modules/relations/relations.module.js +0 -33
- package/esm2015/lib/modules/search/dropdown-container/dropdown-container.component.js +0 -87
- package/esm2015/lib/modules/search/dropdown-container/dropdown.service.js +0 -95
- package/esm2015/lib/modules/search/facet-selector/facet-selector.component.js +0 -47
- package/esm2015/lib/modules/search/group/group.component.js +0 -39
- package/esm2015/lib/modules/search/input/input.component.js +0 -316
- package/esm2015/lib/modules/search/search/search.component.js +0 -71
- package/esm2015/lib/modules/search/search.module.js +0 -52
- package/esm2015/lib/modules/select/abstract-select.component.js +0 -176
- package/esm2015/lib/modules/select/select/select.component.js +0 -190
- package/esm2015/lib/modules/select/select-enum/select-enum.component.js +0 -34
- package/esm2015/lib/modules/select/select-hierarchic/select-hierarchic.component.js +0 -120
- package/esm2015/lib/modules/select/select.module.js +0 -39
- package/esm2015/lib/modules/sidenav/sidenav/sidenav.component.js +0 -12
- package/esm2015/lib/modules/sidenav/sidenav-container/sidenav-container.component.js +0 -79
- package/esm2015/lib/modules/sidenav/sidenav-content/sidenav-content.component.js +0 -13
- package/esm2015/lib/modules/sidenav/sidenav-stack.service.js +0 -50
- package/esm2015/lib/modules/sidenav/sidenav.module.js +0 -20
- package/esm2015/lib/modules/sidenav/sidenav.service.js +0 -199
- package/esm2015/lib/modules/stamp/stamp-module.module.js +0 -13
- package/esm2015/lib/modules/stamp/stamp.component.js +0 -13
- package/esm2015/lib/modules/table-button/table-button.component.js +0 -38
- package/esm2015/lib/modules/table-button/table-button.module.js +0 -16
- package/esm2015/lib/services/abstract-model.service.js +0 -509
- package/esm2015/lib/services/enum.service.js +0 -68
- package/esm2015/lib/services/link-mutation.service.js +0 -155
- package/esm2015/lib/services/persistence.service.js +0 -114
- package/esm2015/lib/services/swiss-parsing-date-adapter.service.js +0 -55
- package/fesm2015/ecodev-natural.js.map +0 -1
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
// tslint:disable:directive-selector
|
|
2
|
-
import { Directive, Optional } from '@angular/core';
|
|
3
|
-
import { MatFormField } from '@angular/material/form-field';
|
|
4
|
-
import { MatInput } from '@angular/material/input';
|
|
5
|
-
import { MatSelect } from '@angular/material/select';
|
|
6
|
-
/**
|
|
7
|
-
* Input/Select into FormField consider Validator.required from reactive form if the [required] attribute is missing in the template
|
|
8
|
-
*/
|
|
9
|
-
export class ReactiveAsteriskDirective {
|
|
10
|
-
constructor(matFormField) {
|
|
11
|
-
this.matFormField = matFormField;
|
|
12
|
-
}
|
|
13
|
-
ngAfterContentChecked() {
|
|
14
|
-
var _a, _b, _c, _d, _e;
|
|
15
|
-
const ctrl = (_a = this.matFormField) === null || _a === void 0 ? void 0 : _a._control;
|
|
16
|
-
if (ctrl instanceof MatInput || ctrl instanceof MatSelect) {
|
|
17
|
-
// Here we cast to be able to set `required`. It should not be required and might be a bug in TypeScript ?
|
|
18
|
-
// Try to remove and see if it compiles
|
|
19
|
-
ctrl.required = (_e = (_d = (_c = (_b = ctrl.ngControl) === null || _b === void 0 ? void 0 : _b.control) === null || _c === void 0 ? void 0 : _c.validator) === null || _d === void 0 ? void 0 : _d.call(_c, {})) === null || _e === void 0 ? void 0 : _e.required;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
ReactiveAsteriskDirective.decorators = [
|
|
24
|
-
{ type: Directive, args: [{
|
|
25
|
-
selector: 'mat-form-field:has(input:not([required])), mat-form-field:has(mat-select:not([required]))',
|
|
26
|
-
},] }
|
|
27
|
-
];
|
|
28
|
-
ReactiveAsteriskDirective.ctorParameters = () => [
|
|
29
|
-
{ type: MatFormField, decorators: [{ type: Optional }] }
|
|
30
|
-
];
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3RpdmUtYXN0ZXJpc2suZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvY29tbW9uL2RpcmVjdGl2ZXMvcmVhY3RpdmUtYXN0ZXJpc2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQyxPQUFPLEVBQXNCLFNBQVMsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFbkQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8seUJBQXlCO0lBQ2xDLFlBQWdDLFlBQWlDO1FBQWpDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtJQUFHLENBQUM7SUFFOUQscUJBQXFCOztRQUN4QixNQUFNLElBQUksR0FBRyxNQUFBLElBQUksQ0FBQyxZQUFZLDBDQUFFLFFBQVEsQ0FBQztRQUN6QyxJQUFJLElBQUksWUFBWSxRQUFRLElBQUksSUFBSSxZQUFZLFNBQVMsRUFBRTtZQUN2RCwwR0FBMEc7WUFDMUcsdUNBQXVDO1lBQ3RDLElBQWlCLENBQUMsUUFBUSxHQUFHLE1BQUEsTUFBQSxNQUFBLE1BQUEsSUFBSSxDQUFDLFNBQVMsMENBQUUsT0FBTywwQ0FBRSxTQUFTLG1EQUFHLEVBQXFCLENBQUMsMENBQUUsUUFBUSxDQUFDO1NBQ3ZHO0lBQ0wsQ0FBQzs7O1lBYkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSwyRkFBMkY7YUFDeEc7OztZQVRPLFlBQVksdUJBV0gsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlOmRpcmVjdGl2ZS1zZWxlY3RvclxuaW1wb3J0IHtBZnRlckNvbnRlbnRDaGVja2VkLCBEaXJlY3RpdmUsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge01hdEZvcm1GaWVsZH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQge01hdElucHV0fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQge01hdFNlbGVjdH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcblxuLyoqXG4gKiBJbnB1dC9TZWxlY3QgaW50byBGb3JtRmllbGQgY29uc2lkZXIgVmFsaWRhdG9yLnJlcXVpcmVkIGZyb20gcmVhY3RpdmUgZm9ybSBpZiB0aGUgW3JlcXVpcmVkXSBhdHRyaWJ1dGUgaXMgbWlzc2luZyBpbiB0aGUgdGVtcGxhdGVcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdtYXQtZm9ybS1maWVsZDpoYXMoaW5wdXQ6bm90KFtyZXF1aXJlZF0pKSwgbWF0LWZvcm0tZmllbGQ6aGFzKG1hdC1zZWxlY3Q6bm90KFtyZXF1aXJlZF0pKScsXG59KVxuZXhwb3J0IGNsYXNzIFJlYWN0aXZlQXN0ZXJpc2tEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRDaGVja2VkIHtcbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIG1hdEZvcm1GaWVsZDogTWF0Rm9ybUZpZWxkIHwgbnVsbCkge31cblxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN0cmwgPSB0aGlzLm1hdEZvcm1GaWVsZD8uX2NvbnRyb2w7XG4gICAgICAgIGlmIChjdHJsIGluc3RhbmNlb2YgTWF0SW5wdXQgfHwgY3RybCBpbnN0YW5jZW9mIE1hdFNlbGVjdCkge1xuICAgICAgICAgICAgLy8gSGVyZSB3ZSBjYXN0IHRvIGJlIGFibGUgdG8gc2V0IGByZXF1aXJlZGAuIEl0IHNob3VsZCBub3QgYmUgcmVxdWlyZWQgYW5kIG1pZ2h0IGJlIGEgYnVnIGluIFR5cGVTY3JpcHQgP1xuICAgICAgICAgICAgLy8gVHJ5IHRvIHJlbW92ZSBhbmQgc2VlIGlmIGl0IGNvbXBpbGVzXG4gICAgICAgICAgICAoY3RybCBhcyBNYXRJbnB1dCkucmVxdWlyZWQgPSBjdHJsLm5nQ29udHJvbD8uY29udHJvbD8udmFsaWRhdG9yPy4oe30gYXMgQWJzdHJhY3RDb250cm9sKT8ucmVxdWlyZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, Input } from '@angular/core';
|
|
2
|
-
export class NaturalSrcDensityDirective {
|
|
3
|
-
constructor(elementRef) {
|
|
4
|
-
this.elementRef = elementRef;
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* Automatically apply image selection based on screen density.
|
|
8
|
-
*
|
|
9
|
-
* The given URL **MUST** be the normal density URL. And it **MUST** include
|
|
10
|
-
* the size as last path segment. That size will automatically be changed
|
|
11
|
-
* for other screen densities. That means that the server **MUST** be able to
|
|
12
|
-
* serve an image of the given size.
|
|
13
|
-
*
|
|
14
|
-
* Usage:
|
|
15
|
-
*
|
|
16
|
-
* ```html
|
|
17
|
-
* <img [naturalSrcDensity]="'/api/image/123/200'" />
|
|
18
|
-
* ```
|
|
19
|
-
*
|
|
20
|
-
* Will generate something like:
|
|
21
|
-
*
|
|
22
|
-
* ```html
|
|
23
|
-
* <img
|
|
24
|
-
* src="/api/image/123/200"
|
|
25
|
-
* srcset="/api/image/123/200, /api/image/123/300 1.5x, /api/image/123/400 2x, /api/image/123/600 3x, /api/image/123/800 4x"
|
|
26
|
-
* />
|
|
27
|
-
* ```
|
|
28
|
-
*
|
|
29
|
-
* See https://web.dev/codelab-density-descriptors/
|
|
30
|
-
*/
|
|
31
|
-
set naturalSrcDensity(src) {
|
|
32
|
-
var _a;
|
|
33
|
-
if (!src) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
const match = src.match(/^(.*\/)(\d+)$/);
|
|
37
|
-
const base = match === null || match === void 0 ? void 0 : match[1];
|
|
38
|
-
const size = +((_a = match === null || match === void 0 ? void 0 : match[2]) !== null && _a !== void 0 ? _a : 0);
|
|
39
|
-
let srcset = '';
|
|
40
|
-
if (base && size) {
|
|
41
|
-
// This should cover most common densities according to https://www.mydevice.io/#tab1
|
|
42
|
-
const size15 = Math.round(size * 1.5);
|
|
43
|
-
const size2 = size * 2;
|
|
44
|
-
const size3 = size * 3;
|
|
45
|
-
const size4 = size * 4;
|
|
46
|
-
srcset = `${base}${size}, ${base}${size15} 1.5x, ${base}${size2} 2x, ${base}${size3} 3x, ${base}${size4} 4x`;
|
|
47
|
-
}
|
|
48
|
-
this.elementRef.nativeElement.src = src;
|
|
49
|
-
this.elementRef.nativeElement.srcset = srcset;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
NaturalSrcDensityDirective.decorators = [
|
|
53
|
-
{ type: Directive, args: [{
|
|
54
|
-
selector: 'img[naturalSrcDensity]',
|
|
55
|
-
},] }
|
|
56
|
-
];
|
|
57
|
-
NaturalSrcDensityDirective.ctorParameters = () => [
|
|
58
|
-
{ type: ElementRef }
|
|
59
|
-
];
|
|
60
|
-
NaturalSrcDensityDirective.propDecorators = {
|
|
61
|
-
naturalSrcDensity: [{ type: Input }]
|
|
62
|
-
};
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjLWRlbnNpdHkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvY29tbW9uL2RpcmVjdGl2ZXMvc3JjLWRlbnNpdHkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUszRCxNQUFNLE9BQU8sMEJBQTBCO0lBbURuQyxZQUE2QixVQUF3QztRQUF4QyxlQUFVLEdBQVYsVUFBVSxDQUE4QjtJQUFHLENBQUM7SUFsRHpFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F3Qkc7SUFDSCxJQUNXLGlCQUFpQixDQUFDLEdBQVc7O1FBQ3BDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDTixPQUFPO1NBQ1Y7UUFFRCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRyxDQUFDLENBQUMsQ0FBQztRQUN4QixNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUcsQ0FBQyxDQUFDLG1DQUFJLENBQUMsQ0FBQyxDQUFDO1FBRWhDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLElBQUksSUFBSSxJQUFJLEVBQUU7WUFDZCxxRkFBcUY7WUFDckYsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDdEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUN2QixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7WUFFdkIsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksS0FBSyxJQUFJLEdBQUcsTUFBTSxVQUFVLElBQUksR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSyxLQUFLLENBQUM7U0FDaEg7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDbEQsQ0FBQzs7O1lBcERKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsd0JBQXdCO2FBQ3JDOzs7WUFKa0IsVUFBVTs7O2dDQStCeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnaW1nW25hdHVyYWxTcmNEZW5zaXR5XScsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxTcmNEZW5zaXR5RGlyZWN0aXZlIHtcbiAgICAvKipcbiAgICAgKiBBdXRvbWF0aWNhbGx5IGFwcGx5IGltYWdlIHNlbGVjdGlvbiBiYXNlZCBvbiBzY3JlZW4gZGVuc2l0eS5cbiAgICAgKlxuICAgICAqIFRoZSBnaXZlbiBVUkwgKipNVVNUKiogYmUgdGhlIG5vcm1hbCBkZW5zaXR5IFVSTC4gQW5kIGl0ICoqTVVTVCoqIGluY2x1ZGVcbiAgICAgKiB0aGUgc2l6ZSBhcyBsYXN0IHBhdGggc2VnbWVudC4gVGhhdCBzaXplIHdpbGwgYXV0b21hdGljYWxseSBiZSBjaGFuZ2VkXG4gICAgICogZm9yIG90aGVyIHNjcmVlbiBkZW5zaXRpZXMuIFRoYXQgbWVhbnMgdGhhdCB0aGUgc2VydmVyICoqTVVTVCoqIGJlIGFibGUgdG9cbiAgICAgKiBzZXJ2ZSBhbiBpbWFnZSBvZiB0aGUgZ2l2ZW4gc2l6ZS5cbiAgICAgKlxuICAgICAqIFVzYWdlOlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpbWcgW25hdHVyYWxTcmNEZW5zaXR5XT1cIicvYXBpL2ltYWdlLzEyMy8yMDAnXCIgLz5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIFdpbGwgZ2VuZXJhdGUgc29tZXRoaW5nIGxpa2U6XG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGltZ1xuICAgICAqICAgICBzcmM9XCIvYXBpL2ltYWdlLzEyMy8yMDBcIlxuICAgICAqICAgICBzcmNzZXQ9XCIvYXBpL2ltYWdlLzEyMy8yMDAsIC9hcGkvaW1hZ2UvMTIzLzMwMCAxLjV4LCAvYXBpL2ltYWdlLzEyMy80MDAgMngsIC9hcGkvaW1hZ2UvMTIzLzYwMCAzeCwgL2FwaS9pbWFnZS8xMjMvODAwIDR4XCJcbiAgICAgKiAvPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogU2VlIGh0dHBzOi8vd2ViLmRldi9jb2RlbGFiLWRlbnNpdHktZGVzY3JpcHRvcnMvXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IG5hdHVyYWxTcmNEZW5zaXR5KHNyYzogc3RyaW5nKSB7XG4gICAgICAgIGlmICghc3JjKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtYXRjaCA9IHNyYy5tYXRjaCgvXiguKlxcLykoXFxkKykkLyk7XG4gICAgICAgIGNvbnN0IGJhc2UgPSBtYXRjaD8uWzFdO1xuICAgICAgICBjb25zdCBzaXplID0gKyhtYXRjaD8uWzJdID8/IDApO1xuXG4gICAgICAgIGxldCBzcmNzZXQgPSAnJztcbiAgICAgICAgaWYgKGJhc2UgJiYgc2l6ZSkge1xuICAgICAgICAgICAgLy8gVGhpcyBzaG91bGQgY292ZXIgbW9zdCBjb21tb24gZGVuc2l0aWVzIGFjY29yZGluZyB0byBodHRwczovL3d3dy5teWRldmljZS5pby8jdGFiMVxuICAgICAgICAgICAgY29uc3Qgc2l6ZTE1ID0gTWF0aC5yb3VuZChzaXplICogMS41KTtcbiAgICAgICAgICAgIGNvbnN0IHNpemUyID0gc2l6ZSAqIDI7XG4gICAgICAgICAgICBjb25zdCBzaXplMyA9IHNpemUgKiAzO1xuICAgICAgICAgICAgY29uc3Qgc2l6ZTQgPSBzaXplICogNDtcblxuICAgICAgICAgICAgc3Jjc2V0ID0gYCR7YmFzZX0ke3NpemV9LCAke2Jhc2V9JHtzaXplMTV9IDEuNXgsICR7YmFzZX0ke3NpemUyfSAyeCwgJHtiYXNlfSR7c2l6ZTN9IDN4LCAke2Jhc2V9JHtzaXplNH0gNHhgO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3JjID0gc3JjO1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zcmNzZXQgPSBzcmNzZXQ7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxJbWFnZUVsZW1lbnQ+KSB7fVxufVxuIl19
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import { upperCaseFirstLetter } from '../../../classes/utility';
|
|
3
|
-
export class NaturalCapitalizePipe {
|
|
4
|
-
transform(value) {
|
|
5
|
-
if (value) {
|
|
6
|
-
return upperCaseFirstLetter(value);
|
|
7
|
-
}
|
|
8
|
-
return value;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
NaturalCapitalizePipe.decorators = [
|
|
12
|
-
{ type: Pipe, args: [{ name: 'capitalize' },] }
|
|
13
|
-
];
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwaXRhbGl6ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvY29tbW9uL3BpcGVzL2NhcGl0YWxpemUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUc5RCxNQUFNLE9BQU8scUJBQXFCO0lBQ3ZCLFNBQVMsQ0FBQyxLQUFvQjtRQUNqQyxJQUFJLEtBQUssRUFBRTtZQUNQLE9BQU8sb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdEM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzs7WUFSSixJQUFJLFNBQUMsRUFBQyxJQUFJLEVBQUUsWUFBWSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dXBwZXJDYXNlRmlyc3RMZXR0ZXJ9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvdXRpbGl0eSc7XG5cbkBQaXBlKHtuYW1lOiAnY2FwaXRhbGl6ZSd9KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxDYXBpdGFsaXplUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZyB8IG51bGwpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdXBwZXJDYXNlRmlyc3RMZXR0ZXIodmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
export class NaturalEllipsisPipe {
|
|
3
|
-
transform(value, limit) {
|
|
4
|
-
return value.substr(0, limit - 1) + (value.length > limit ? '…' : '');
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
|
-
NaturalEllipsisPipe.decorators = [
|
|
8
|
-
{ type: Pipe, args: [{ name: 'ellipsis' },] }
|
|
9
|
-
];
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxsaXBzaXMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2NvbW1vbi9waXBlcy9lbGxpcHNpcy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBR2xELE1BQU0sT0FBTyxtQkFBbUI7SUFDckIsU0FBUyxDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ3pDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUUsQ0FBQzs7O1lBSkosSUFBSSxTQUFDLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtuYW1lOiAnZWxsaXBzaXMnfSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsRWxsaXBzaXNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgcHVibGljIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nLCBsaW1pdDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnN1YnN0cigwLCBsaW1pdCAtIDEpICsgKHZhbHVlLmxlbmd0aCA+IGxpbWl0ID8gJ+KApicgOiAnJyk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import { NaturalEnumService } from '../../../services/enum.service';
|
|
3
|
-
/**
|
|
4
|
-
* A pipe to output an enum user-friendly name, instead of its value.
|
|
5
|
-
*
|
|
6
|
-
* Usage would be: {{ element.priority | enum: 'Priority' | async }}
|
|
7
|
-
*/
|
|
8
|
-
export class NaturalEnumPipe {
|
|
9
|
-
constructor(enumService) {
|
|
10
|
-
this.enumService = enumService;
|
|
11
|
-
}
|
|
12
|
-
transform(value, enumName) {
|
|
13
|
-
return this.enumService.getValueName(value, enumName);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
NaturalEnumPipe.decorators = [
|
|
17
|
-
{ type: Pipe, args: [{
|
|
18
|
-
name: 'enum',
|
|
19
|
-
},] }
|
|
20
|
-
];
|
|
21
|
-
NaturalEnumPipe.ctorParameters = () => [
|
|
22
|
-
{ type: NaturalEnumService }
|
|
23
|
-
];
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvY29tbW9uL3BpcGVzL2VudW0ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUdsRTs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLGVBQWU7SUFDeEIsWUFBNkIsV0FBK0I7UUFBL0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO0lBQUcsQ0FBQztJQUV6RCxTQUFTLENBQUMsS0FBVSxFQUFFLFFBQWdCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFELENBQUM7OztZQVJKLElBQUksU0FBQztnQkFDRixJQUFJLEVBQUUsTUFBTTthQUNmOzs7WUFWTyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXR1cmFsRW51bVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2VudW0uc2VydmljZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEEgcGlwZSB0byBvdXRwdXQgYW4gZW51bSB1c2VyLWZyaWVuZGx5IG5hbWUsIGluc3RlYWQgb2YgaXRzIHZhbHVlLlxuICpcbiAqIFVzYWdlIHdvdWxkIGJlOiB7eyBlbGVtZW50LnByaW9yaXR5IHwgZW51bTogJ1ByaW9yaXR5JyB8IGFzeW5jIH19XG4gKi9cbkBQaXBlKHtcbiAgICBuYW1lOiAnZW51bScsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxFbnVtUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZW51bVNlcnZpY2U6IE5hdHVyYWxFbnVtU2VydmljZSkge31cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IGFueSwgZW51bU5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudW1TZXJ2aWNlLmdldFZhbHVlTmFtZSh2YWx1ZSwgZW51bU5hbWUpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import { DatePipe } from '@angular/common';
|
|
3
|
-
/**
|
|
4
|
-
* A normal DatePipe but with default formatting to be '12.24.2020 23:30' to match the most common use-cases
|
|
5
|
-
*/
|
|
6
|
-
export class NaturalSwissDatePipe extends DatePipe {
|
|
7
|
-
transform(value, format = 'dd.MM.y HH:mm', timezone, locale) {
|
|
8
|
-
return super.transform(value, format, timezone, locale);
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
NaturalSwissDatePipe.decorators = [
|
|
12
|
-
{ type: Pipe, args: [{
|
|
13
|
-
name: 'swissDate',
|
|
14
|
-
},] }
|
|
15
|
-
];
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpc3MtZGF0ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvY29tbW9uL3BpcGVzL3N3aXNzLWRhdGUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFekM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsUUFBUTtJQVF2QyxTQUFTLENBQ1osS0FBZ0QsRUFDaEQsTUFBTSxHQUFHLGVBQWUsRUFDeEIsUUFBaUIsRUFDakIsTUFBZTtRQUVmLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM1RCxDQUFDOzs7WUFsQkosSUFBSSxTQUFDO2dCQUNGLElBQUksRUFBRSxXQUFXO2FBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGF0ZVBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qKlxuICogQSBub3JtYWwgRGF0ZVBpcGUgYnV0IHdpdGggZGVmYXVsdCBmb3JtYXR0aW5nIHRvIGJlICcxMi4yNC4yMDIwIDIzOjMwJyB0byBtYXRjaCB0aGUgbW9zdCBjb21tb24gdXNlLWNhc2VzXG4gKi9cbkBQaXBlKHtcbiAgICBuYW1lOiAnc3dpc3NEYXRlJyxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbFN3aXNzRGF0ZVBpcGUgZXh0ZW5kcyBEYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IG51bGwgfCB1bmRlZmluZWQsIGZvcm1hdD86IHN0cmluZywgdGltZXpvbmU/OiBzdHJpbmcsIGxvY2FsZT86IHN0cmluZyk6IG51bGw7XG4gICAgcHVibGljIHRyYW5zZm9ybShcbiAgICAgICAgdmFsdWU6IERhdGUgfCBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgICAgICBmb3JtYXQ/OiBzdHJpbmcsXG4gICAgICAgIHRpbWV6b25lPzogc3RyaW5nLFxuICAgICAgICBsb2NhbGU/OiBzdHJpbmcsXG4gICAgKTogc3RyaW5nIHwgbnVsbDtcbiAgICBwdWJsaWMgdHJhbnNmb3JtKFxuICAgICAgICB2YWx1ZTogRGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgICAgIGZvcm1hdCA9ICdkZC5NTS55IEhIOm1tJyxcbiAgICAgICAgdGltZXpvbmU/OiBzdHJpbmcsXG4gICAgICAgIGxvY2FsZT86IHN0cmluZyxcbiAgICApOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLnRyYW5zZm9ybSh2YWx1ZSwgZm9ybWF0LCB0aW1lem9uZSwgbG9jYWxlKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { Injectable, InjectionToken } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export const SESSION_STORAGE = new InjectionToken('Session storage that can be shimed when running on server or in tests');
|
|
4
|
-
export const LOCAL_STORAGE = new InjectionToken('Local storage that can be shimed when running on server or in tests');
|
|
5
|
-
/**
|
|
6
|
-
* Memory storage to keep store volatile things in memory
|
|
7
|
-
*
|
|
8
|
-
* Should be used to shim sessionStorage when running on server or in our tests
|
|
9
|
-
*/
|
|
10
|
-
export class NaturalMemoryStorage {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.data = new Map();
|
|
13
|
-
}
|
|
14
|
-
get length() {
|
|
15
|
-
return this.data.size;
|
|
16
|
-
}
|
|
17
|
-
clear() {
|
|
18
|
-
this.data.clear();
|
|
19
|
-
}
|
|
20
|
-
getItem(key) {
|
|
21
|
-
const value = this.data.get(key);
|
|
22
|
-
return value === undefined ? null : value;
|
|
23
|
-
}
|
|
24
|
-
key(index) {
|
|
25
|
-
let i = 0;
|
|
26
|
-
for (const key of this.data.keys()) {
|
|
27
|
-
if (i++ === index) {
|
|
28
|
-
return key;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return null;
|
|
32
|
-
}
|
|
33
|
-
removeItem(key) {
|
|
34
|
-
this.data.delete(key);
|
|
35
|
-
}
|
|
36
|
-
setItem(key, value) {
|
|
37
|
-
this.data.set(key, value);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
NaturalMemoryStorage.ɵprov = i0.ɵɵdefineInjectable({ factory: function NaturalMemoryStorage_Factory() { return new NaturalMemoryStorage(); }, token: NaturalMemoryStorage, providedIn: "root" });
|
|
41
|
-
NaturalMemoryStorage.decorators = [
|
|
42
|
-
{ type: Injectable, args: [{
|
|
43
|
-
providedIn: 'root',
|
|
44
|
-
},] }
|
|
45
|
-
];
|
|
46
|
-
export function sessionStorageFactory() {
|
|
47
|
-
try {
|
|
48
|
-
// tslint:disable-next-line:no-restricted-globals
|
|
49
|
-
if (typeof sessionStorage !== 'undefined') {
|
|
50
|
-
// tslint:disable-next-line:no-restricted-globals
|
|
51
|
-
return sessionStorage;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
catch (e) {
|
|
55
|
-
// nothing do to
|
|
56
|
-
}
|
|
57
|
-
return new NaturalMemoryStorage();
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Standard `sessionStorage` provider that is compatible with SSR.
|
|
61
|
-
*
|
|
62
|
-
* In SSR environment, or when `sessionStorage` is not available, will return a `NaturalMemoryStorage`
|
|
63
|
-
*/
|
|
64
|
-
export const sessionStorageProvider = {
|
|
65
|
-
// Here we must use a factory that return directly the value, otherwise it will
|
|
66
|
-
// crash when running on server because the value does not exist (but the factory will
|
|
67
|
-
// never actually be called on server, so the server will not see the missing value)
|
|
68
|
-
provide: SESSION_STORAGE,
|
|
69
|
-
useFactory: sessionStorageFactory,
|
|
70
|
-
};
|
|
71
|
-
/**
|
|
72
|
-
* Provide in-memory session storage to be used only in tests or SSR
|
|
73
|
-
*/
|
|
74
|
-
export const memorySessionStorageProvider = {
|
|
75
|
-
provide: SESSION_STORAGE,
|
|
76
|
-
useClass: NaturalMemoryStorage,
|
|
77
|
-
};
|
|
78
|
-
export function localStorageFactory() {
|
|
79
|
-
try {
|
|
80
|
-
// tslint:disable-next-line:no-restricted-globals
|
|
81
|
-
if (typeof localStorage !== 'undefined') {
|
|
82
|
-
// tslint:disable-next-line:no-restricted-globals
|
|
83
|
-
return localStorage;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
catch (e) {
|
|
87
|
-
// Do nothing
|
|
88
|
-
}
|
|
89
|
-
return new NaturalMemoryStorage();
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Standard `localStorage` provider that is compatible with SSR.
|
|
93
|
-
*
|
|
94
|
-
* In SSR environment, or when `localStorage` is not available, will return a `NaturalMemoryStorage`
|
|
95
|
-
*/
|
|
96
|
-
export const localStorageProvider = {
|
|
97
|
-
// Here we must use a factory that return directly the value, otherwise it will
|
|
98
|
-
// crash when running on server because the value does not exist (but the factory will
|
|
99
|
-
// never actually be called on server, so the server will not see the missing value)
|
|
100
|
-
provide: LOCAL_STORAGE,
|
|
101
|
-
useFactory: localStorageFactory,
|
|
102
|
-
};
|
|
103
|
-
/**
|
|
104
|
-
* Provide in-memory local storage to be used only in tests or SSR
|
|
105
|
-
*/
|
|
106
|
-
export const memoryLocalStorageProvider = {
|
|
107
|
-
provide: LOCAL_STORAGE,
|
|
108
|
-
useClass: NaturalMemoryStorage,
|
|
109
|
-
};
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LXN0b3JhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9jb21tb24vc2VydmljZXMvbWVtb3J5LXN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxjQUFjLEVBQVcsTUFBTSxlQUFlLENBQUM7O0FBRW5FLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FDN0MsdUVBQXVFLENBQzFFLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQzNDLHFFQUFxRSxDQUN4RSxDQUFDO0FBT0Y7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxvQkFBb0I7SUFIakM7UUFJcUIsU0FBSSxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO0tBaUNyRDtJQS9CRyxJQUFXLE1BQU07UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFTSxLQUFLO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU0sT0FBTyxDQUFDLEdBQVc7UUFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsT0FBTyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUM5QyxDQUFDO0lBRU0sR0FBRyxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxFQUFFLEtBQUssS0FBSyxFQUFFO2dCQUNmLE9BQU8sR0FBRyxDQUFDO2FBQ2Q7U0FDSjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxVQUFVLENBQUMsR0FBVztRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU0sT0FBTyxDQUFDLEdBQVcsRUFBRSxLQUFhO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDOzs7O1lBcENKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7QUFxQ0QsTUFBTSxVQUFVLHFCQUFxQjtJQUNqQyxJQUFJO1FBQ0EsaURBQWlEO1FBQ2pELElBQUksT0FBTyxjQUFjLEtBQUssV0FBVyxFQUFFO1lBQ3ZDLGlEQUFpRDtZQUNqRCxPQUFPLGNBQWMsQ0FBQztTQUN6QjtLQUNKO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDUixnQkFBZ0I7S0FDbkI7SUFFRCxPQUFPLElBQUksb0JBQW9CLEVBQUUsQ0FBQztBQUN0QyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFhO0lBQzVDLCtFQUErRTtJQUMvRSxzRkFBc0Y7SUFDdEYsb0ZBQW9GO0lBQ3BGLE9BQU8sRUFBRSxlQUFlO0lBQ3hCLFVBQVUsRUFBRSxxQkFBcUI7Q0FDcEMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQWE7SUFDbEQsT0FBTyxFQUFFLGVBQWU7SUFDeEIsUUFBUSxFQUFFLG9CQUFvQjtDQUNqQyxDQUFDO0FBRUYsTUFBTSxVQUFVLG1CQUFtQjtJQUMvQixJQUFJO1FBQ0EsaURBQWlEO1FBQ2pELElBQUksT0FBTyxZQUFZLEtBQUssV0FBVyxFQUFFO1lBQ3JDLGlEQUFpRDtZQUNqRCxPQUFPLFlBQVksQ0FBQztTQUN2QjtLQUNKO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDUixhQUFhO0tBQ2hCO0lBRUQsT0FBTyxJQUFJLG9CQUFvQixFQUFFLENBQUM7QUFDdEMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBYTtJQUMxQywrRUFBK0U7SUFDL0Usc0ZBQXNGO0lBQ3RGLG9GQUFvRjtJQUNwRixPQUFPLEVBQUUsYUFBYTtJQUN0QixVQUFVLEVBQUUsbUJBQW1CO0NBQ2xDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFhO0lBQ2hELE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFFBQVEsRUFBRSxvQkFBb0I7Q0FDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IFNFU1NJT05fU1RPUkFHRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOYXR1cmFsU3RvcmFnZT4oXG4gICAgJ1Nlc3Npb24gc3RvcmFnZSB0aGF0IGNhbiBiZSBzaGltZWQgd2hlbiBydW5uaW5nIG9uIHNlcnZlciBvciBpbiB0ZXN0cycsXG4pO1xuXG5leHBvcnQgY29uc3QgTE9DQUxfU1RPUkFHRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOYXR1cmFsU3RvcmFnZT4oXG4gICAgJ0xvY2FsIHN0b3JhZ2UgdGhhdCBjYW4gYmUgc2hpbWVkIHdoZW4gcnVubmluZyBvbiBzZXJ2ZXIgb3IgaW4gdGVzdHMnLFxuKTtcblxuLyoqXG4gKiBOb3JtYWwgYFN0b3JhZ2VgIHR5cGUsIGJ1dCB3aXRob3V0IGFycmF5IGFjY2Vzc1xuICovXG5leHBvcnQgdHlwZSBOYXR1cmFsU3RvcmFnZSA9IFBpY2s8U3RvcmFnZSwgJ2xlbmd0aCcgfCAnY2xlYXInIHwgJ2dldEl0ZW0nIHwgJ2tleScgfCAncmVtb3ZlSXRlbScgfCAnc2V0SXRlbSc+O1xuXG4vKipcbiAqIE1lbW9yeSBzdG9yYWdlIHRvIGtlZXAgc3RvcmUgdm9sYXRpbGUgdGhpbmdzIGluIG1lbW9yeVxuICpcbiAqIFNob3VsZCBiZSB1c2VkIHRvIHNoaW0gc2Vzc2lvblN0b3JhZ2Ugd2hlbiBydW5uaW5nIG9uIHNlcnZlciBvciBpbiBvdXIgdGVzdHNcbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbE1lbW9yeVN0b3JhZ2UgaW1wbGVtZW50cyBOYXR1cmFsU3RvcmFnZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkYXRhID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcblxuICAgIHB1YmxpYyBnZXQgbGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEuc2l6ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGF0YS5jbGVhcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJdGVtKGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5kYXRhLmdldChrZXkpO1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCA/IG51bGwgOiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMga2V5KGluZGV4OiBudW1iZXIpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiB0aGlzLmRhdGEua2V5cygpKSB7XG4gICAgICAgICAgICBpZiAoaSsrID09PSBpbmRleCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBrZXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlSXRlbShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGEuZGVsZXRlKGtleSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRhLnNldChrZXksIHZhbHVlKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXNzaW9uU3RvcmFnZUZhY3RvcnkoKTogTmF0dXJhbFN0b3JhZ2Uge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1yZXN0cmljdGVkLWdsb2JhbHNcbiAgICAgICAgaWYgKHR5cGVvZiBzZXNzaW9uU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1yZXN0cmljdGVkLWdsb2JhbHNcbiAgICAgICAgICAgIHJldHVybiBzZXNzaW9uU3RvcmFnZTtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gbm90aGluZyBkbyB0b1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgTmF0dXJhbE1lbW9yeVN0b3JhZ2UoKTtcbn1cblxuLyoqXG4gKiBTdGFuZGFyZCBgc2Vzc2lvblN0b3JhZ2VgIHByb3ZpZGVyIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIFNTUi5cbiAqXG4gKiBJbiBTU1IgZW52aXJvbm1lbnQsIG9yIHdoZW4gYHNlc3Npb25TdG9yYWdlYCBpcyBub3QgYXZhaWxhYmxlLCB3aWxsIHJldHVybiBhIGBOYXR1cmFsTWVtb3J5U3RvcmFnZWBcbiAqL1xuZXhwb3J0IGNvbnN0IHNlc3Npb25TdG9yYWdlUHJvdmlkZXI6IFByb3ZpZGVyID0ge1xuICAgIC8vIEhlcmUgd2UgbXVzdCB1c2UgYSBmYWN0b3J5IHRoYXQgcmV0dXJuIGRpcmVjdGx5IHRoZSB2YWx1ZSwgb3RoZXJ3aXNlIGl0IHdpbGxcbiAgICAvLyBjcmFzaCB3aGVuIHJ1bm5pbmcgb24gc2VydmVyIGJlY2F1c2UgdGhlIHZhbHVlIGRvZXMgbm90IGV4aXN0IChidXQgdGhlIGZhY3Rvcnkgd2lsbFxuICAgIC8vIG5ldmVyIGFjdHVhbGx5IGJlIGNhbGxlZCBvbiBzZXJ2ZXIsIHNvIHRoZSBzZXJ2ZXIgd2lsbCBub3Qgc2VlIHRoZSBtaXNzaW5nIHZhbHVlKVxuICAgIHByb3ZpZGU6IFNFU1NJT05fU1RPUkFHRSxcbiAgICB1c2VGYWN0b3J5OiBzZXNzaW9uU3RvcmFnZUZhY3RvcnksXG59O1xuXG4vKipcbiAqIFByb3ZpZGUgaW4tbWVtb3J5IHNlc3Npb24gc3RvcmFnZSB0byBiZSB1c2VkIG9ubHkgaW4gdGVzdHMgb3IgU1NSXG4gKi9cbmV4cG9ydCBjb25zdCBtZW1vcnlTZXNzaW9uU3RvcmFnZVByb3ZpZGVyOiBQcm92aWRlciA9IHtcbiAgICBwcm92aWRlOiBTRVNTSU9OX1NUT1JBR0UsXG4gICAgdXNlQ2xhc3M6IE5hdHVyYWxNZW1vcnlTdG9yYWdlLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGxvY2FsU3RvcmFnZUZhY3RvcnkoKTogTmF0dXJhbFN0b3JhZ2Uge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1yZXN0cmljdGVkLWdsb2JhbHNcbiAgICAgICAgaWYgKHR5cGVvZiBsb2NhbFN0b3JhZ2UgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tcmVzdHJpY3RlZC1nbG9iYWxzXG4gICAgICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlO1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBOYXR1cmFsTWVtb3J5U3RvcmFnZSgpO1xufVxuXG4vKipcbiAqIFN0YW5kYXJkIGBsb2NhbFN0b3JhZ2VgIHByb3ZpZGVyIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIFNTUi5cbiAqXG4gKiBJbiBTU1IgZW52aXJvbm1lbnQsIG9yIHdoZW4gYGxvY2FsU3RvcmFnZWAgaXMgbm90IGF2YWlsYWJsZSwgd2lsbCByZXR1cm4gYSBgTmF0dXJhbE1lbW9yeVN0b3JhZ2VgXG4gKi9cbmV4cG9ydCBjb25zdCBsb2NhbFN0b3JhZ2VQcm92aWRlcjogUHJvdmlkZXIgPSB7XG4gICAgLy8gSGVyZSB3ZSBtdXN0IHVzZSBhIGZhY3RvcnkgdGhhdCByZXR1cm4gZGlyZWN0bHkgdGhlIHZhbHVlLCBvdGhlcndpc2UgaXQgd2lsbFxuICAgIC8vIGNyYXNoIHdoZW4gcnVubmluZyBvbiBzZXJ2ZXIgYmVjYXVzZSB0aGUgdmFsdWUgZG9lcyBub3QgZXhpc3QgKGJ1dCB0aGUgZmFjdG9yeSB3aWxsXG4gICAgLy8gbmV2ZXIgYWN0dWFsbHkgYmUgY2FsbGVkIG9uIHNlcnZlciwgc28gdGhlIHNlcnZlciB3aWxsIG5vdCBzZWUgdGhlIG1pc3NpbmcgdmFsdWUpXG4gICAgcHJvdmlkZTogTE9DQUxfU1RPUkFHRSxcbiAgICB1c2VGYWN0b3J5OiBsb2NhbFN0b3JhZ2VGYWN0b3J5LFxufTtcblxuLyoqXG4gKiBQcm92aWRlIGluLW1lbW9yeSBsb2NhbCBzdG9yYWdlIHRvIGJlIHVzZWQgb25seSBpbiB0ZXN0cyBvciBTU1JcbiAqL1xuZXhwb3J0IGNvbnN0IG1lbW9yeUxvY2FsU3RvcmFnZVByb3ZpZGVyOiBQcm92aWRlciA9IHtcbiAgICBwcm92aWRlOiBMT0NBTF9TVE9SQUdFLFxuICAgIHVzZUNsYXNzOiBOYXR1cmFsTWVtb3J5U3RvcmFnZSxcbn07XG4iXX0=
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable, InjectionToken } from '@angular/core';
|
|
2
|
-
import { Meta, Title } from '@angular/platform-browser';
|
|
3
|
-
import { NavigationEnd, Router } from '@angular/router';
|
|
4
|
-
import { filter } from 'rxjs/operators';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/router";
|
|
7
|
-
import * as i2 from "@angular/platform-browser";
|
|
8
|
-
export const NATURAL_SEO_CONFIG = new InjectionToken('Configuration for SEO service');
|
|
9
|
-
export function stripTags(str) {
|
|
10
|
-
return str.replace(/<\/?[^>]+>/g, '');
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* This service is responsible to keep up to date the page title and page description according
|
|
14
|
-
* to what is configured in routing or default values.
|
|
15
|
-
*
|
|
16
|
-
* It **must** be injected in the root module of the application to have effects in all modules. And it
|
|
17
|
-
* must be provided a configuration.
|
|
18
|
-
*
|
|
19
|
-
* The full title has the following structure:
|
|
20
|
-
*
|
|
21
|
-
* page title - extra part - app name
|
|
22
|
-
*/
|
|
23
|
-
export class NaturalSeoService {
|
|
24
|
-
constructor(config, router, titleService, metaTagService) {
|
|
25
|
-
this.config = config;
|
|
26
|
-
this.router = router;
|
|
27
|
-
this.titleService = titleService;
|
|
28
|
-
this.metaTagService = metaTagService;
|
|
29
|
-
this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe(() => {
|
|
30
|
-
var _a;
|
|
31
|
-
this.routeData = this.getRouteData(this.router.routerState.root.snapshot);
|
|
32
|
-
const seo = (_a = this.routeData.seo) !== null && _a !== void 0 ? _a : { title: '' };
|
|
33
|
-
const basic = this.toBasic(seo);
|
|
34
|
-
this.update(basic);
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Update the SEO with given info. The extra part and app name will be appended automatically.
|
|
39
|
-
*
|
|
40
|
-
* In most cases this should not be used, and instead the SEO should be configured in the routing,
|
|
41
|
-
* possibly with the callback variant for some dynamism.
|
|
42
|
-
*
|
|
43
|
-
* But in rare cases only the Component is able to build a proper page title, after it gather everything it
|
|
44
|
-
* needed. For those cases the Component can inject this service and update the SEO directly.
|
|
45
|
-
*/
|
|
46
|
-
update(seo) {
|
|
47
|
-
var _a, _b;
|
|
48
|
-
// Title
|
|
49
|
-
const parts = [
|
|
50
|
-
seo.title,
|
|
51
|
-
this.config.extraPart && this.routeData ? this.config.extraPart(this.routeData) : null,
|
|
52
|
-
this.config.applicationName,
|
|
53
|
-
];
|
|
54
|
-
const title = parts.filter(s => !!s).join(' - ');
|
|
55
|
-
this.titleService.setTitle(title);
|
|
56
|
-
// Description
|
|
57
|
-
const description = (_a = seo === null || seo === void 0 ? void 0 : seo.description) !== null && _a !== void 0 ? _a : this.config.defaultDescription;
|
|
58
|
-
this.updateTag('description', description);
|
|
59
|
-
// Robots
|
|
60
|
-
const robots = (_b = seo === null || seo === void 0 ? void 0 : seo.robots) !== null && _b !== void 0 ? _b : this.config.defaultRobots;
|
|
61
|
-
this.updateTag('robots', robots);
|
|
62
|
-
}
|
|
63
|
-
updateTag(name, value) {
|
|
64
|
-
if (value) {
|
|
65
|
-
this.metaTagService.updateTag({
|
|
66
|
-
name: name,
|
|
67
|
-
value: stripTags(value),
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
this.metaTagService.removeTag(`name="${name}"`);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Returns the data from the most deep/specific activated route
|
|
76
|
-
*/
|
|
77
|
-
getRouteData(route) {
|
|
78
|
-
var _a;
|
|
79
|
-
if (route.firstChild) {
|
|
80
|
-
return this.getRouteData(route.firstChild);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
return (_a = route.data) !== null && _a !== void 0 ? _a : null;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
toBasic(seo) {
|
|
87
|
-
var _a, _b, _c, _d, _e;
|
|
88
|
-
if (!this.routeData) {
|
|
89
|
-
throw new Error('Must have some route data to get basic SEO');
|
|
90
|
-
}
|
|
91
|
-
if (typeof seo === 'function') {
|
|
92
|
-
return seo(this.routeData);
|
|
93
|
-
}
|
|
94
|
-
else if ('resolveKey' in seo) {
|
|
95
|
-
const data = this.routeData[seo.resolveKey];
|
|
96
|
-
if (!data) {
|
|
97
|
-
throw new Error('Could not find resolved data for SEO service with key: ' + seo.resolveKey);
|
|
98
|
-
}
|
|
99
|
-
return {
|
|
100
|
-
title: (_d = (_b = (_a = data.model) === null || _a === void 0 ? void 0 : _a.fullName) !== null && _b !== void 0 ? _b : (_c = data.model) === null || _c === void 0 ? void 0 : _c.name) !== null && _d !== void 0 ? _d : '',
|
|
101
|
-
description: (_e = data.model) === null || _e === void 0 ? void 0 : _e.description,
|
|
102
|
-
robots: seo.robots,
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
return seo;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
NaturalSeoService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NaturalSeoService_Factory() { return new NaturalSeoService(i0.ɵɵinject(NATURAL_SEO_CONFIG), i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.Title), i0.ɵɵinject(i2.Meta)); }, token: NaturalSeoService, providedIn: "root" });
|
|
109
|
-
NaturalSeoService.decorators = [
|
|
110
|
-
{ type: Injectable, args: [{
|
|
111
|
-
providedIn: 'root',
|
|
112
|
-
},] }
|
|
113
|
-
];
|
|
114
|
-
NaturalSeoService.ctorParameters = () => [
|
|
115
|
-
{ type: undefined, decorators: [{ type: Inject, args: [NATURAL_SEO_CONFIG,] }] },
|
|
116
|
-
{ type: Router },
|
|
117
|
-
{ type: Title },
|
|
118
|
-
{ type: Meta }
|
|
119
|
-
];
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9jb21tb24vc2VydmljZXMvc2VvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUErQixhQUFhLEVBQUUsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDcEYsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBeUV0QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FBbUIsK0JBQStCLENBQUMsQ0FBQztBQUV4RyxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVc7SUFDakMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMxQyxDQUFDO0FBVUQ7Ozs7Ozs7Ozs7R0FVRztBQUlILE1BQU0sT0FBTyxpQkFBaUI7SUFHMUIsWUFDaUQsTUFBd0IsRUFDcEQsTUFBYyxFQUNkLFlBQW1CLEVBQ25CLGNBQW9CO1FBSFEsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFDcEQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGlCQUFZLEdBQVosWUFBWSxDQUFPO1FBQ25CLG1CQUFjLEdBQWQsY0FBYyxDQUFNO1FBRXJDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFOztZQUNwRixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzFFLE1BQU0sR0FBRyxHQUFlLE1BQUEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLG1DQUFJLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO1lBQzFELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLE1BQU0sQ0FBQyxHQUFvQjs7UUFDOUIsUUFBUTtRQUNSLE1BQU0sS0FBSyxHQUFHO1lBQ1YsR0FBRyxDQUFDLEtBQUs7WUFDVCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDdEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlO1NBQzlCLENBQUM7UUFFRixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVsQyxjQUFjO1FBQ2QsTUFBTSxXQUFXLEdBQUcsTUFBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsV0FBVyxtQ0FBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDO1FBQ3ZFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRTNDLFNBQVM7UUFDVCxNQUFNLE1BQU0sR0FBRyxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxNQUFNLG1DQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO1FBQ3hELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTyxTQUFTLENBQUMsSUFBWSxFQUFFLEtBQWM7UUFDMUMsSUFBSSxLQUFLLEVBQUU7WUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztnQkFDMUIsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUM7YUFDMUIsQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNILElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUMsQ0FBQztTQUNuRDtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLFlBQVksQ0FBQyxLQUE2Qjs7UUFDOUMsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDOUM7YUFBTTtZQUNILE9BQU8sTUFBQSxLQUFLLENBQUMsSUFBSSxtQ0FBSSxJQUFJLENBQUM7U0FDN0I7SUFDTCxDQUFDO0lBRU8sT0FBTyxDQUFDLEdBQWU7O1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztTQUNqRTtRQUVELElBQUksT0FBTyxHQUFHLEtBQUssVUFBVSxFQUFFO1lBQzNCLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM5QjthQUFNLElBQUksWUFBWSxJQUFJLEdBQUcsRUFBRTtZQUM1QixNQUFNLElBQUksR0FBNkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDUCxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUMvRjtZQUVELE9BQU87Z0JBQ0gsS0FBSyxFQUFFLE1BQUEsTUFBQSxNQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFFLFFBQVEsbUNBQUksTUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxJQUFJLG1DQUFJLEVBQUU7Z0JBQ3JELFdBQVcsRUFBRSxNQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFFLFdBQVc7Z0JBQ3BDLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTTthQUNyQixDQUFDO1NBQ0w7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7Ozs7WUE3RkosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7NENBS1EsTUFBTSxTQUFDLGtCQUFrQjtZQTFHbUIsTUFBTTtZQUQ3QyxLQUFLO1lBQVgsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01ldGEsIFRpdGxlfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgRGF0YSwgTmF2aWdhdGlvbkVuZCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtmaWx0ZXJ9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IHR5cGUgTmF0dXJhbFNlbyA9IE5hdHVyYWxTZW9CYXNpYyB8IE5hdHVyYWxTZW9DYWxsYmFjayB8IE5hdHVyYWxTZW9SZXNvbHZlO1xuXG4vKipcbiAqIFR5cGljYWxseSB1c2VkIGZvciBcInN0YXRpY1wiIHBhZ2VzIHdoZXJlIHRoZXJlIGlzIG5vdCBhIHNpbmdsZSByZXNvbHZlZCBvYmplY3QuIFNvXG4gKiBhbGwgcGFnZXMgc3VjaCBhcyBcIkFib3V0XCIsIG9yIGxpc3Qgb2Ygb2JqZWN0cyAobGlzdCBvZiByaXNrcywgZXRjLikuXG4gKlxuICogVGhpcyBzaG91bGQgYmUgdGhlIG1vc3QgY29tbW9uIHVzZWQgdmFyaWFudC5cbiAqL1xuZXhwb3J0IHR5cGUgTmF0dXJhbFNlb0Jhc2ljID0gUm9ib3RzICYge1xuICAgIC8qKlxuICAgICAqIFRoZSBwYWdlIHRpdGxlLCB0aGF0IHdpbGwgYmUgY29uY2F0ZW5hdGVkIHdpdGggYXBwbGljYXRpb24gbmFtZVxuICAgICAqL1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogSWYgZ2l2ZW4gd2lsbCBiZSB1c2VkIGFzIHBhZ2UgZGVzY3JpcHRpb24sIG90aGVyd2lzZSBmYWxsYmFjayBvbiBkZWZhdWx0IHZhbHVlXG4gICAgICovXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIFR5cGljYWxseSB1c2VkIGZvciBhIFwiZHluYW1pY1wiIHBhZ2Ugd2hlcmUgYSBzaW5nbGUgb2JqZWN0IGlzIHJlc29sdmVkLiBTbyBhIGRldGFpbCBwYWdlLCBzdWNoXG4gKiBhcyB0aGUgZGV0YWlsIG9mIGEgcmlzayBhbmQgc28gb24uXG4gKi9cbmV4cG9ydCB0eXBlIE5hdHVyYWxTZW9SZXNvbHZlID0gUm9ib3RzICYge1xuICAgIC8qKlxuICAgICAqIFRoZSBrZXkgdG8gYmUgdXNlZCBpbiB0aGUgcmVzb2x2ZWQgZGF0YSB0byBmaW5kIHRoZSByZXNvbHZlZCBvYmplY3QuIFRoZSBmdWxsTmFtZVxuICAgICAqIG9yIG5hbWUgb2YgdGhlIG9iamVjdCB3aWxsIGJlIHVzZWQgZm9yIHBhZ2UgdGl0bGUsIGFuZCB0aGUgb2JqZWN0IGRlc2NyaXB0aW9uLCBpZiBhbnksXG4gICAgICogd2lsbCBiZSB1c2VkIGZvciBwYWdlIGRlc2NyaXB0aW9uLlxuICAgICAqL1xuICAgIHJlc29sdmVLZXk6IHN0cmluZztcbn07XG5cbi8qKlxuICogUmFyZWx5IHVzZWQgZm9yIGEgcGFnZSB0aGF0IGhhcyB2ZXJ5IHNwZWNpZmljIG5lZWRzIGFuZCBuZWVkIHRvIGJ1aWxkIHRpdGxlIGFuZCBkZXNjcmlwdGlvbiBpbiBhIGN1c3RvbSB3YXkuXG4gKiBUaGUgY2FsbGJhY2sgYmFjayB3aWxsIGJlIGdpdmVuIHRoZSByZXNvbHZlZCBkYXRhLCBhbmQgaXQgaXMgdXAgdG8gdGhlIGNhbGxiYWNrIHRvIGZpbmQgd2hhdGV2ZXIgaXQgbmVlZHMuXG4gKi9cbmV4cG9ydCB0eXBlIE5hdHVyYWxTZW9DYWxsYmFjayA9IChyb3V0ZURhdGE6IERhdGEpID0+IE5hdHVyYWxTZW9CYXNpYztcblxuaW50ZXJmYWNlIFJvYm90cyB7XG4gICAgLyoqXG4gICAgICogSWYgZ2l2ZW4gd2lsbCBiZSB1c2VkIGFzIHJvYm90cyBtZXRhIHRhZywgb3RoZXJ3aXNlIGZhbGxiYWNrIG9uIGRlZmF1bHQgdmFsdWVcbiAgICAgKi9cbiAgICByb2JvdHM/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmF0dXJhbFNlb0NvbmZpZyB7XG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIGFwcGxpY2F0aW9uIHRoYXQgd2lsbCBhbHdheXMgYXBwZWFyIGluIHRoZSBwYWdlIHRpdGxlXG4gICAgICovXG4gICAgYXBwbGljYXRpb25OYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGZvciBkZXNjcmlwdGlvbiBtZXRhIHRoYXQgaXMgdXNlZCBmb3IgcGFnZXMgd2l0aG91dCB2YWx1ZVxuICAgICAqL1xuICAgIGRlZmF1bHREZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIERlZmF1bHQgdmFsdWUgZm9yIHJvYm90cyBtZXRhIHRoYXQgaXMgdXNlZCBmb3IgcGFnZXMgd2l0aG91dCB2YWx1ZVxuICAgICAqL1xuICAgIGRlZmF1bHRSb2JvdHM/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBJZiBnaXZlbiwgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoIHJvdXRlIGFuZCBtdXN0IHJldHVybiBhIHN0cmluZyB0aGF0IHdpbGxcbiAgICAgKiBiZSBpbnNlcnRlZCBiZXR3ZWVuIHRoZSBwYWdlIHRpdGxlIGFuZCB0aGUgYXBwbGljYXRpb24gbmFtZS5cbiAgICAgKlxuICAgICAqIEl0IHNob3VsZCBiZSB1c2VkIHRvIGNvbXBsZXRlIHRoZSB0aXRsZSB3aXRoIGluZm8gdGhhdCBhcmUgb2Z0ZW4sIGJ1dCBub3QgbmVjZXNzYXJpbHkgYWx3YXlzLFxuICAgICAqIGF2YWlsYWJsZSB0aHJvdWdob3V0IHRoZSBlbnRpcmUgYXBwbGljYXRpb24uIFR5cGljYWxseSB1c2VkIGZvciB0aGUgc2l0ZS9zdGF0ZSBpbiBPS3BpbG90LlxuICAgICAqL1xuICAgIGV4dHJhUGFydD86IChyb3V0ZURhdGE6IERhdGEpID0+IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IE5BVFVSQUxfU0VPX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOYXR1cmFsU2VvQ29uZmlnPignQ29uZmlndXJhdGlvbiBmb3IgU0VPIHNlcnZpY2UnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwVGFncyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC88XFwvP1tePl0rPi9nLCAnJyk7XG59XG5cbnR5cGUgUmVzb2x2ZWREYXRhID0ge1xuICAgIG1vZGVsPzoge1xuICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgICBmdWxsTmFtZT86IHN0cmluZztcbiAgICAgICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgfTtcbn07XG5cbi8qKlxuICogVGhpcyBzZXJ2aWNlIGlzIHJlc3BvbnNpYmxlIHRvIGtlZXAgdXAgdG8gZGF0ZSB0aGUgcGFnZSB0aXRsZSBhbmQgcGFnZSBkZXNjcmlwdGlvbiBhY2NvcmRpbmdcbiAqIHRvIHdoYXQgaXMgY29uZmlndXJlZCBpbiByb3V0aW5nIG9yIGRlZmF1bHQgdmFsdWVzLlxuICpcbiAqIEl0ICoqbXVzdCoqIGJlIGluamVjdGVkIGluIHRoZSByb290IG1vZHVsZSBvZiB0aGUgYXBwbGljYXRpb24gdG8gaGF2ZSBlZmZlY3RzIGluIGFsbCBtb2R1bGVzLiBBbmQgaXRcbiAqIG11c3QgYmUgcHJvdmlkZWQgYSBjb25maWd1cmF0aW9uLlxuICpcbiAqIFRoZSBmdWxsIHRpdGxlIGhhcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcbiAqXG4gKiAgICAgcGFnZSB0aXRsZSAtIGV4dHJhIHBhcnQgLSBhcHAgbmFtZVxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsU2VvU2VydmljZSB7XG4gICAgcHJpdmF0ZSByb3V0ZURhdGE/OiBEYXRhO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoTkFUVVJBTF9TRU9fQ09ORklHKSBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogTmF0dXJhbFNlb0NvbmZpZyxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0aXRsZVNlcnZpY2U6IFRpdGxlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1ldGFUYWdTZXJ2aWNlOiBNZXRhLFxuICAgICkge1xuICAgICAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucm91dGVEYXRhID0gdGhpcy5nZXRSb3V0ZURhdGEodGhpcy5yb3V0ZXIucm91dGVyU3RhdGUucm9vdC5zbmFwc2hvdCk7XG4gICAgICAgICAgICBjb25zdCBzZW86IE5hdHVyYWxTZW8gPSB0aGlzLnJvdXRlRGF0YS5zZW8gPz8ge3RpdGxlOiAnJ307XG4gICAgICAgICAgICBjb25zdCBiYXNpYyA9IHRoaXMudG9CYXNpYyhzZW8pO1xuXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZShiYXNpYyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSB0aGUgU0VPIHdpdGggZ2l2ZW4gaW5mby4gVGhlIGV4dHJhIHBhcnQgYW5kIGFwcCBuYW1lIHdpbGwgYmUgYXBwZW5kZWQgYXV0b21hdGljYWxseS5cbiAgICAgKlxuICAgICAqIEluIG1vc3QgY2FzZXMgdGhpcyBzaG91bGQgbm90IGJlIHVzZWQsIGFuZCBpbnN0ZWFkIHRoZSBTRU8gc2hvdWxkIGJlIGNvbmZpZ3VyZWQgaW4gdGhlIHJvdXRpbmcsXG4gICAgICogcG9zc2libHkgd2l0aCB0aGUgY2FsbGJhY2sgdmFyaWFudCBmb3Igc29tZSBkeW5hbWlzbS5cbiAgICAgKlxuICAgICAqIEJ1dCBpbiByYXJlIGNhc2VzIG9ubHkgdGhlIENvbXBvbmVudCBpcyBhYmxlIHRvIGJ1aWxkIGEgcHJvcGVyIHBhZ2UgdGl0bGUsIGFmdGVyIGl0IGdhdGhlciBldmVyeXRoaW5nIGl0XG4gICAgICogbmVlZGVkLiBGb3IgdGhvc2UgY2FzZXMgdGhlIENvbXBvbmVudCBjYW4gaW5qZWN0IHRoaXMgc2VydmljZSBhbmQgdXBkYXRlIHRoZSBTRU8gZGlyZWN0bHkuXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZShzZW86IE5hdHVyYWxTZW9CYXNpYyk6IHZvaWQge1xuICAgICAgICAvLyBUaXRsZVxuICAgICAgICBjb25zdCBwYXJ0cyA9IFtcbiAgICAgICAgICAgIHNlby50aXRsZSxcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLmV4dHJhUGFydCAmJiB0aGlzLnJvdXRlRGF0YSA/IHRoaXMuY29uZmlnLmV4dHJhUGFydCh0aGlzLnJvdXRlRGF0YSkgOiBudWxsLFxuICAgICAgICAgICAgdGhpcy5jb25maWcuYXBwbGljYXRpb25OYW1lLFxuICAgICAgICBdO1xuXG4gICAgICAgIGNvbnN0IHRpdGxlID0gcGFydHMuZmlsdGVyKHMgPT4gISFzKS5qb2luKCcgLSAnKTtcbiAgICAgICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUodGl0bGUpO1xuXG4gICAgICAgIC8vIERlc2NyaXB0aW9uXG4gICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gc2VvPy5kZXNjcmlwdGlvbiA/PyB0aGlzLmNvbmZpZy5kZWZhdWx0RGVzY3JpcHRpb247XG4gICAgICAgIHRoaXMudXBkYXRlVGFnKCdkZXNjcmlwdGlvbicsIGRlc2NyaXB0aW9uKTtcblxuICAgICAgICAvLyBSb2JvdHNcbiAgICAgICAgY29uc3Qgcm9ib3RzID0gc2VvPy5yb2JvdHMgPz8gdGhpcy5jb25maWcuZGVmYXVsdFJvYm90cztcbiAgICAgICAgdGhpcy51cGRhdGVUYWcoJ3JvYm90cycsIHJvYm90cyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUYWcobmFtZTogc3RyaW5nLCB2YWx1ZT86IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMubWV0YVRhZ1NlcnZpY2UudXBkYXRlVGFnKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBzdHJpcFRhZ3ModmFsdWUpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1ldGFUYWdTZXJ2aWNlLnJlbW92ZVRhZyhgbmFtZT1cIiR7bmFtZX1cImApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgZGF0YSBmcm9tIHRoZSBtb3N0IGRlZXAvc3BlY2lmaWMgYWN0aXZhdGVkIHJvdXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRSb3V0ZURhdGEocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBEYXRhIHtcbiAgICAgICAgaWYgKHJvdXRlLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFJvdXRlRGF0YShyb3V0ZS5maXJzdENoaWxkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiByb3V0ZS5kYXRhID8/IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHRvQmFzaWMoc2VvOiBOYXR1cmFsU2VvKTogTmF0dXJhbFNlb0Jhc2ljIHtcbiAgICAgICAgaWYgKCF0aGlzLnJvdXRlRGF0YSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IGhhdmUgc29tZSByb3V0ZSBkYXRhIHRvIGdldCBiYXNpYyBTRU8nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2Ygc2VvID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gc2VvKHRoaXMucm91dGVEYXRhKTtcbiAgICAgICAgfSBlbHNlIGlmICgncmVzb2x2ZUtleScgaW4gc2VvKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRhOiBSZXNvbHZlZERhdGEgfCB1bmRlZmluZWQgPSB0aGlzLnJvdXRlRGF0YVtzZW8ucmVzb2x2ZUtleV07XG4gICAgICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIHJlc29sdmVkIGRhdGEgZm9yIFNFTyBzZXJ2aWNlIHdpdGgga2V5OiAnICsgc2VvLnJlc29sdmVLZXkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBkYXRhLm1vZGVsPy5mdWxsTmFtZSA/PyBkYXRhLm1vZGVsPy5uYW1lID8/ICcnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBkYXRhLm1vZGVsPy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICByb2JvdHM6IHNlby5yb2JvdHMsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNlbztcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
export class NaturalDetailHeaderComponent {
|
|
3
|
-
constructor() {
|
|
4
|
-
/**
|
|
5
|
-
* Must be set to get proper links when used in panels
|
|
6
|
-
*/
|
|
7
|
-
this.isPanel = false;
|
|
8
|
-
/**
|
|
9
|
-
* If given will show icon before title
|
|
10
|
-
*/
|
|
11
|
-
this.icon = '';
|
|
12
|
-
/**
|
|
13
|
-
* Title shown if model has no name, or empty name.
|
|
14
|
-
*
|
|
15
|
-
* Typically should be the human name for the object type, eg: 'Product'
|
|
16
|
-
*/
|
|
17
|
-
this.label = '';
|
|
18
|
-
/**
|
|
19
|
-
* Label of the root of the breadcrumb, defaults to the value of `label`.
|
|
20
|
-
*
|
|
21
|
-
* Typically should be the plural form of the object type, eg: 'Products'
|
|
22
|
-
*/
|
|
23
|
-
this.rootLabel = '';
|
|
24
|
-
/**
|
|
25
|
-
* Title shown if model has no id.
|
|
26
|
-
*
|
|
27
|
-
* Typically should be similar to 'New product'.
|
|
28
|
-
*/
|
|
29
|
-
this.newLabel = '';
|
|
30
|
-
this.breadcrumbs = [];
|
|
31
|
-
this.listRoute = [];
|
|
32
|
-
}
|
|
33
|
-
getRootLink() {
|
|
34
|
-
return [this.currentBaseUrl || '/'].concat(this.listRoute);
|
|
35
|
-
}
|
|
36
|
-
getLink(id) {
|
|
37
|
-
if (this.link) {
|
|
38
|
-
return this.getRootLink().concat(this.link(id));
|
|
39
|
-
}
|
|
40
|
-
return this.getRootLink().concat([id]);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
NaturalDetailHeaderComponent.decorators = [
|
|
44
|
-
{ type: Component, args: [{
|
|
45
|
-
selector: 'natural-detail-header',
|
|
46
|
-
template: "<div class=\"breadcrumb\">\n <a [routerLink]=\"isPanel ? [] : getRootLink()\" [fragment]=\"listFragment\" color=\"primary\" mat-button>{{\n rootLabel || label\n }}</a>\n <ng-container *ngFor=\"let parent of breadcrumbs\">\n /\n <a [routerLink]=\"isPanel ? [] : getLink(parent.id)\" color=\"primary\" mat-button>\n {{ parent?.fullName || parent?.name }}</a\n >\n </ng-container>\n</div>\n\n<div class=\"body\">\n <div *ngIf=\"icon\" style=\"width: 30px\">\n <natural-icon [name]=\"icon\"></natural-icon>\n </div>\n <div *ngIf=\"!model.id\" class=\"mat-headline no-margin newLabel\">{{ newLabel }}</div>\n <div *ngIf=\"model.id\" class=\"mat-headline no-margin label\">{{ model?.name || model?.fullName || label }}</div>\n <div>\n <ng-content></ng-content>\n </div>\n</div>\n",
|
|
47
|
-
styles: [":host{display:flex;flex-direction:column}:host .breadcrumb,:host .body{display:flex;flex-direction:row;align-items:center}:host .breadcrumb{position:relative;top:5px}:host .body{min-height:40px}:host .body>*:not(:last-child){margin-right:5px}:host .body .label,:host .body .newLabel{flex:1}@media screen and (max-width: 600px){:host .body{flex-direction:column;align-items:flex-start}:host .body>*:not(:last-child){margin-bottom:10px!important}:host .body natural-icon{display:none}}\n"]
|
|
48
|
-
},] }
|
|
49
|
-
];
|
|
50
|
-
NaturalDetailHeaderComponent.propDecorators = {
|
|
51
|
-
currentBaseUrl: [{ type: Input }],
|
|
52
|
-
isPanel: [{ type: Input }],
|
|
53
|
-
icon: [{ type: Input }],
|
|
54
|
-
label: [{ type: Input }],
|
|
55
|
-
rootLabel: [{ type: Input }],
|
|
56
|
-
newLabel: [{ type: Input }],
|
|
57
|
-
model: [{ type: Input }],
|
|
58
|
-
breadcrumbs: [{ type: Input }],
|
|
59
|
-
listRoute: [{ type: Input }],
|
|
60
|
-
listFragment: [{ type: Input }],
|
|
61
|
-
link: [{ type: Input }]
|
|
62
|
-
};
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9kZXRhaWwtaGVhZGVyL2RldGFpbC1oZWFkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBUS9DLE1BQU0sT0FBTyw0QkFBNEI7SUFMekM7UUFXSTs7V0FFRztRQUNhLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFaEM7O1dBRUc7UUFDYSxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzFCOzs7O1dBSUc7UUFDYSxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRTNCOzs7O1dBSUc7UUFDYSxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRS9COzs7O1dBSUc7UUFDYSxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRWQsZ0JBQVcsR0FBYyxFQUFFLENBQUM7UUFDNUIsY0FBUyxHQUFVLEVBQUUsQ0FBQztJQWUxQyxDQUFDO0lBWFUsV0FBVztRQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVNLE9BQU8sQ0FBQyxFQUFVO1FBQ3JCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNYLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDbkQ7UUFFRCxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7OztZQXhESixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsbzJCQUE2Qzs7YUFFaEQ7Ozs2QkFLSSxLQUFLO3NCQUtMLEtBQUs7bUJBS0wsS0FBSztvQkFNTCxLQUFLO3dCQU9MLEtBQUs7dUJBT0wsS0FBSztvQkFDTCxLQUFLOzBCQUNMLEtBQUs7d0JBQ0wsS0FBSzsyQkFDTCxLQUFLO21CQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMaXRlcmFsfSBmcm9tICcuLi8uLi90eXBlcy90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmF0dXJhbC1kZXRhaWwtaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGV0YWlsLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGV0YWlsLWhlYWRlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsRGV0YWlsSGVhZGVyQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBCYXNlIFVSTCB1c2VkIHRvIGJ1aWxkIGxpbmtzLCBkZWZhdWx0cyB0byAnLydcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgY3VycmVudEJhc2VVcmw/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBNdXN0IGJlIHNldCB0byBnZXQgcHJvcGVyIGxpbmtzIHdoZW4gdXNlZCBpbiBwYW5lbHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaXNQYW5lbCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSWYgZ2l2ZW4gd2lsbCBzaG93IGljb24gYmVmb3JlIHRpdGxlXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGljb24gPSAnJztcbiAgICAvKipcbiAgICAgKiBUaXRsZSBzaG93biBpZiBtb2RlbCBoYXMgbm8gbmFtZSwgb3IgZW1wdHkgbmFtZS5cbiAgICAgKlxuICAgICAqIFR5cGljYWxseSBzaG91bGQgYmUgdGhlIGh1bWFuIG5hbWUgZm9yIHRoZSBvYmplY3QgdHlwZSwgZWc6ICdQcm9kdWN0J1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsYWJlbCA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogTGFiZWwgb2YgdGhlIHJvb3Qgb2YgdGhlIGJyZWFkY3J1bWIsIGRlZmF1bHRzIHRvIHRoZSB2YWx1ZSBvZiBgbGFiZWxgLlxuICAgICAqXG4gICAgICogVHlwaWNhbGx5IHNob3VsZCBiZSB0aGUgcGx1cmFsIGZvcm0gb2YgdGhlIG9iamVjdCB0eXBlLCBlZzogJ1Byb2R1Y3RzJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb290TGFiZWwgPSAnJztcblxuICAgIC8qKlxuICAgICAqIFRpdGxlIHNob3duIGlmIG1vZGVsIGhhcyBubyBpZC5cbiAgICAgKlxuICAgICAqIFR5cGljYWxseSBzaG91bGQgYmUgc2ltaWxhciB0byAnTmV3IHByb2R1Y3QnLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBuZXdMYWJlbCA9ICcnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtb2RlbCE6IExpdGVyYWw7XG4gICAgQElucHV0KCkgcHVibGljIGJyZWFkY3J1bWJzOiBMaXRlcmFsW10gPSBbXTtcbiAgICBASW5wdXQoKSBwdWJsaWMgbGlzdFJvdXRlOiBhbnlbXSA9IFtdO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsaXN0RnJhZ21lbnQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgbGluaz86IChpZDogc3RyaW5nKSA9PiBhbnlbXTtcblxuICAgIHB1YmxpYyBnZXRSb290TGluaygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBbdGhpcy5jdXJyZW50QmFzZVVybCB8fCAnLyddLmNvbmNhdCh0aGlzLmxpc3RSb3V0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldExpbmsoaWQ6IHN0cmluZyk6IGFueVtdIHtcbiAgICAgICAgaWYgKHRoaXMubGluaykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Um9vdExpbmsoKS5jb25jYXQodGhpcy5saW5rKGlkKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRSb290TGluaygpLmNvbmNhdChbaWRdKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
4
|
-
import { RouterModule } from '@angular/router';
|
|
5
|
-
import { NaturalDetailHeaderComponent } from './detail-header.component';
|
|
6
|
-
import { NaturalIconModule } from '../icon/icon.module';
|
|
7
|
-
export class NaturalDetailHeaderModule {
|
|
8
|
-
}
|
|
9
|
-
NaturalDetailHeaderModule.decorators = [
|
|
10
|
-
{ type: NgModule, args: [{
|
|
11
|
-
declarations: [NaturalDetailHeaderComponent],
|
|
12
|
-
imports: [CommonModule, RouterModule, MatButtonModule, NaturalIconModule],
|
|
13
|
-
exports: [NaturalDetailHeaderComponent],
|
|
14
|
-
},] }
|
|
15
|
-
];
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLWhlYWRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9kZXRhaWwtaGVhZGVyL2RldGFpbC1oZWFkZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDdkUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFPdEQsTUFBTSxPQUFPLHlCQUF5Qjs7O1lBTHJDLFFBQVEsU0FBQztnQkFDTixZQUFZLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztnQkFDNUMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsaUJBQWlCLENBQUM7Z0JBQ3pFLE9BQU8sRUFBRSxDQUFDLDRCQUE0QixDQUFDO2FBQzFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0QnV0dG9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge05hdHVyYWxEZXRhaWxIZWFkZXJDb21wb25lbnR9IGZyb20gJy4vZGV0YWlsLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtOYXR1cmFsSWNvbk1vZHVsZX0gZnJvbSAnLi4vaWNvbi9pY29uLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbTmF0dXJhbERldGFpbEhlYWRlckNvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE5hdHVyYWxJY29uTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbTmF0dXJhbERldGFpbEhlYWRlckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxEZXRhaWxIZWFkZXJNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { __rest } from "tslib";
|
|
2
|
-
import { Component } from '@angular/core';
|
|
3
|
-
import { MatDialog } from '@angular/material/dialog';
|
|
4
|
-
import { ActivatedRoute, Router } from '@angular/router';
|
|
5
|
-
export class NaturalDialogTriggerComponent {
|
|
6
|
-
constructor(dialog, route, router) {
|
|
7
|
-
this.dialog = dialog;
|
|
8
|
-
this.route = route;
|
|
9
|
-
this.router = router;
|
|
10
|
-
// Data from activated route
|
|
11
|
-
this.triggerConfig = this.route.snapshot.data.trigger;
|
|
12
|
-
// Get data relative to dialog service configuration
|
|
13
|
-
const _a = this.triggerConfig.dialogConfig, { data } = _a, config = __rest(_a, ["data"]);
|
|
14
|
-
const dialogConfig = Object.assign(Object.assign({}, config), { data: {
|
|
15
|
-
data: data,
|
|
16
|
-
// Set data accessible into component instantiated by the dialog service
|
|
17
|
-
activatedRoute: this.route,
|
|
18
|
-
} });
|
|
19
|
-
this.dialogRef = this.dialog.open(this.triggerConfig.component, dialogConfig);
|
|
20
|
-
// Redirect on closing (if applicable)
|
|
21
|
-
this.dialogRef.beforeClosed().subscribe(exitValue => this.redirect(exitValue));
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Called when router leaves route, and so on, closes the modal with undefined value to prevent a new redirection
|
|
25
|
-
*/
|
|
26
|
-
ngOnDestroy() {
|
|
27
|
-
if (this.dialogRef) {
|
|
28
|
-
this.dialogRef.close(-1); // -1 = no redirection
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Redirects on modal closing under following rules/conditions
|
|
33
|
-
*
|
|
34
|
-
* If -1 : no redirection
|
|
35
|
-
* If undefined, null or empty string : uses the router provided redirection route or fallbacks on parent route if router don't provide
|
|
36
|
-
* If a value is provided, should be of type any[] and it's used for redirection.
|
|
37
|
-
*/
|
|
38
|
-
redirect(exitValue) {
|
|
39
|
-
const isEmptyExitValue = exitValue == null || exitValue === ''; // undefined, null or ''
|
|
40
|
-
if (exitValue === -1) {
|
|
41
|
-
// if -1, don't redirect
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
else if (!isEmptyExitValue) {
|
|
45
|
-
// If value provided, redirect to that route
|
|
46
|
-
this.router.navigate(exitValue);
|
|
47
|
-
}
|
|
48
|
-
else if (isEmptyExitValue && this.triggerConfig.afterClosedRoute) {
|
|
49
|
-
// If value is not provided (null) and router context specified default redirection route, use it
|
|
50
|
-
this.router.navigate(this.triggerConfig.afterClosedRoute);
|
|
51
|
-
}
|
|
52
|
-
else if (isEmptyExitValue) {
|
|
53
|
-
// If neither of component or router provides redirection, go to parent (care : parent can't have empty path : ''),
|
|
54
|
-
this.router.navigate(['.'], { relativeTo: this.route.parent });
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
NaturalDialogTriggerComponent.decorators = [
|
|
59
|
-
{ type: Component, args: [{
|
|
60
|
-
template: ''
|
|
61
|
-
},] }
|
|
62
|
-
];
|
|
63
|
-
NaturalDialogTriggerComponent.ctorParameters = () => [
|
|
64
|
-
{ type: MatDialog },
|
|
65
|
-
{ type: ActivatedRoute },
|
|
66
|
-
{ type: Router }
|
|
67
|
-
];
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXRyaWdnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZGlhbG9nLXRyaWdnZXIvZGlhbG9nLXRyaWdnZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUMsU0FBUyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBQyxTQUFTLEVBQWdDLE1BQU0sMEJBQTBCLENBQUM7QUFDbEYsT0FBTyxFQUFDLGNBQWMsRUFBRSxNQUFNLEVBQWEsTUFBTSxpQkFBaUIsQ0FBQztBQWtCbkUsTUFBTSxPQUFPLDZCQUE2QjtJQUt0QyxZQUNxQixNQUFpQixFQUNqQixLQUFxQixFQUNyQixNQUFjO1FBRmQsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRS9CLDRCQUE0QjtRQUM1QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFnRCxDQUFDO1FBRS9GLG9EQUFvRDtRQUNwRCxNQUFNLEtBQW9CLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFuRCxFQUFDLElBQUksT0FBOEMsRUFBekMsTUFBTSxjQUFoQixRQUFpQixDQUFrQyxDQUFDO1FBQzFELE1BQU0sWUFBWSxtQ0FDWCxNQUFNLEtBQ1QsSUFBSSxFQUFFO2dCQUNGLElBQUksRUFBRSxJQUFJO2dCQUNWLHdFQUF3RTtnQkFDeEUsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLO2FBQzdCLEdBQ0osQ0FBQztRQUVGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBSS9CLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRTlDLHNDQUFzQztRQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXO1FBQ2QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxzQkFBc0I7U0FDbkQ7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksUUFBUSxDQUFDLFNBQWdEO1FBQzVELE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxJQUFJLElBQUksSUFBSSxTQUFTLEtBQUssRUFBRSxDQUFDLENBQUMsd0JBQXdCO1FBRXhGLElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ2xCLHdCQUF3QjtZQUN4QixPQUFPO1NBQ1Y7YUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUIsNENBQTRDO1lBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQWtCLENBQUMsQ0FBQztTQUM1QzthQUFNLElBQUksZ0JBQWdCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRTtZQUNoRSxpR0FBaUc7WUFDakcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBeUIsQ0FBQyxDQUFDO1NBQ3RFO2FBQU0sSUFBSSxnQkFBZ0IsRUFBRTtZQUN6QixtSEFBbUg7WUFDbkgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUM7U0FDaEU7SUFDTCxDQUFDOzs7WUFyRUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxFQUFFO2FBQ2Y7OztZQWxCTyxTQUFTO1lBQ1QsY0FBYztZQUFFLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnLCBNYXREaWFsb2dSZWZ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXIsIFJvdXRlckxpbmt9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmF0dXJhbERpYWxvZ1RyaWdnZXJSb3V0aW5nRGF0YTxULCBEPiB7XG4gICAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+O1xuICAgIGFmdGVyQ2xvc2VkUm91dGU/OiBSb3V0ZXJMaW5rWydyb3V0ZXJMaW5rJ107XG4gICAgZGlhbG9nQ29uZmlnOiBNYXREaWFsb2dDb25maWc8RD47XG59XG5cbmV4cG9ydCB0eXBlIE5hdHVyYWxEaWFsb2dUcmlnZ2VyUHJvdmlkZWREYXRhPEQ+ID0ge1xuICAgIGRhdGE/OiBSZWFkb25seTxEPiB8IG51bGw7XG4gICAgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlO1xufTtcblxuZXhwb3J0IHR5cGUgTmF0dXJhbERpYWxvZ1RyaWdnZXJSZWRpcmVjdGlvblZhbHVlcyA9IFJvdXRlckxpbmtbJ3JvdXRlckxpbmsnXSB8IG51bGwgfCB1bmRlZmluZWQgfCAnJyB8IC0xO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZTogJycsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxEaWFsb2dUcmlnZ2VyQ29tcG9uZW50PFQsIEQ+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFQsIE5hdHVyYWxEaWFsb2dUcmlnZ2VyUmVkaXJlY3Rpb25WYWx1ZXM+O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmlnZ2VyQ29uZmlnOiBOYXR1cmFsRGlhbG9nVHJpZ2dlclJvdXRpbmdEYXRhPFQsIEQ+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgICkge1xuICAgICAgICAvLyBEYXRhIGZyb20gYWN0aXZhdGVkIHJvdXRlXG4gICAgICAgIHRoaXMudHJpZ2dlckNvbmZpZyA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YS50cmlnZ2VyIGFzIE5hdHVyYWxEaWFsb2dUcmlnZ2VyUm91dGluZ0RhdGE8VCwgRD47XG5cbiAgICAgICAgLy8gR2V0IGRhdGEgcmVsYXRpdmUgdG8gZGlhbG9nIHNlcnZpY2UgY29uZmlndXJhdGlvblxuICAgICAgICBjb25zdCB7ZGF0YSwgLi4uY29uZmlnfSA9IHRoaXMudHJpZ2dlckNvbmZpZy5kaWFsb2dDb25maWc7XG4gICAgICAgIGNvbnN0IGRpYWxvZ0NvbmZpZzogTWF0RGlhbG9nQ29uZmlnPE5hdHVyYWxEaWFsb2dUcmlnZ2VyUHJvdmlkZWREYXRhPEQ+PiA9IHtcbiAgICAgICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgICAgIC8vIFNldCBkYXRhIGFjY2Vzc2libGUgaW50byBjb21wb25lbnQgaW5zdGFudGlhdGVkIGJ5IHRoZSBkaWFsb2cgc2VydmljZVxuICAgICAgICAgICAgICAgIGFjdGl2YXRlZFJvdXRlOiB0aGlzLnJvdXRlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW48XG4gICAgICAgICAgICBULFxuICAgICAgICAgICAgTmF0dXJhbERpYWxvZ1RyaWdnZXJQcm92aWRlZERhdGE8RD4sXG4gICAgICAgICAgICBOYXR1cmFsRGlhbG9nVHJpZ2dlclJlZGlyZWN0aW9uVmFsdWVzXG4gICAgICAgID4odGhpcy50cmlnZ2VyQ29uZmlnLmNvbXBvbmVudCwgZGlhbG9nQ29uZmlnKTtcblxuICAgICAgICAvLyBSZWRpcmVjdCBvbiBjbG9zaW5nIChpZiBhcHBsaWNhYmxlKVxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5iZWZvcmVDbG9zZWQoKS5zdWJzY3JpYmUoZXhpdFZhbHVlID0+IHRoaXMucmVkaXJlY3QoZXhpdFZhbHVlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW4gcm91dGVyIGxlYXZlcyByb3V0ZSwgYW5kIHNvIG9uLCBjbG9zZXMgdGhlIG1vZGFsIHdpdGggdW5kZWZpbmVkIHZhbHVlIHRvIHByZXZlbnQgYSBuZXcgcmVkaXJlY3Rpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ1JlZikge1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoLTEpOyAvLyAtMSA9IG5vIHJlZGlyZWN0aW9uXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWRpcmVjdHMgb24gbW9kYWwgY2xvc2luZyB1bmRlciBmb2xsb3dpbmcgcnVsZXMvY29uZGl0aW9uc1xuICAgICAqXG4gICAgICogSWYgLTEgOiBubyByZWRpcmVjdGlvblxuICAgICAqIElmIHVuZGVmaW5lZCwgbnVsbCBvciBlbXB0eSBzdHJpbmcgOiB1c2VzIHRoZSByb3V0ZXIgcHJvdmlkZWQgcmVkaXJlY3Rpb24gcm91dGUgb3IgZmFsbGJhY2tzIG9uIHBhcmVudCByb3V0ZSBpZiByb3V0ZXIgZG9uJ3QgcHJvdmlkZVxuICAgICAqIElmIGEgdmFsdWUgaXMgcHJvdmlkZWQsIHNob3VsZCBiZSBvZiB0eXBlIGFueVtdIGFuZCBpdCdzIHVzZWQgZm9yIHJlZGlyZWN0aW9uLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWRpcmVjdChleGl0VmFsdWU6IE5hdHVyYWxEaWFsb2dUcmlnZ2VyUmVkaXJlY3Rpb25WYWx1ZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaXNFbXB0eUV4aXRWYWx1ZSA9IGV4aXRWYWx1ZSA9PSBudWxsIHx8IGV4aXRWYWx1ZSA9PT0gJyc7IC8vIHVuZGVmaW5lZCwgbnVsbCBvciAnJ1xuXG4gICAgICAgIGlmIChleGl0VmFsdWUgPT09IC0xKSB7XG4gICAgICAgICAgICAvLyBpZiAtMSwgZG9uJ3QgcmVkaXJlY3RcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmICghaXNFbXB0eUV4aXRWYWx1ZSkge1xuICAgICAgICAgICAgLy8gSWYgdmFsdWUgcHJvdmlkZWQsIHJlZGlyZWN0IHRvIHRoYXQgcm91dGVcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKGV4aXRWYWx1ZSBhcyBhbnlbXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNFbXB0eUV4aXRWYWx1ZSAmJiB0aGlzLnRyaWdnZXJDb25maWcuYWZ0ZXJDbG9zZWRSb3V0ZSkge1xuICAgICAgICAgICAgLy8gSWYgdmFsdWUgaXMgbm90IHByb3ZpZGVkIChudWxsKSBhbmQgcm91dGVyIGNvbnRleHQgc3BlY2lmaWVkIGRlZmF1bHQgcmVkaXJlY3Rpb24gcm91dGUsIHVzZSBpdFxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUodGhpcy50cmlnZ2VyQ29uZmlnLmFmdGVyQ2xvc2VkUm91dGUgYXMgYW55W10pO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRW1wdHlFeGl0VmFsdWUpIHtcbiAgICAgICAgICAgIC8vIElmIG5laXRoZXIgb2YgY29tcG9uZW50IG9yIHJvdXRlciBwcm92aWRlcyByZWRpcmVjdGlvbiwgZ28gdG8gcGFyZW50IChjYXJlIDogcGFyZW50IGNhbid0IGhhdmUgZW1wdHkgcGF0aCA6ICcnKSxcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLiddLCB7cmVsYXRpdmVUbzogdGhpcy5yb3V0ZS5wYXJlbnR9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|