@ecodev/natural 41.3.0 → 42.2.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 +172 -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 +190 -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 +50 -0
- package/esm2020/lib/modules/common/directives/linkable-tab.directive.mjs +79 -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/esm2020/lib/modules/common/public-api.mjs +13 -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 +207 -0
- package/esm2020/lib/modules/select/select-enum/select-enum.component.mjs +47 -0
- package/esm2020/lib/modules/select/select-hierarchic/select-hierarchic.component.mjs +127 -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} +2808 -2392
- package/fesm2015/ecodev-natural.mjs.map +1 -0
- package/fesm2020/ecodev-natural.mjs +10495 -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/classes/query-variable-manager.d.ts +19 -8
- 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 +4 -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 +15 -0
- package/lib/modules/common/directives/linkable-tab.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/public-api.d.ts +0 -1
- 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 +9 -2
- 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/public-api.js +0 -14
- 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
- package/lib/modules/common/directives/reactive-asterisk.directive.d.ts +0 -10
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { Apollo, gql } from 'apollo-angular';
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { map } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "apollo-angular";
|
|
6
|
-
const enumTypeQuery = gql `
|
|
7
|
-
query EnumType($name: String!) {
|
|
8
|
-
__type(name: $name) {
|
|
9
|
-
__typename
|
|
10
|
-
enumValues {
|
|
11
|
-
name
|
|
12
|
-
description
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
`;
|
|
17
|
-
export class NaturalEnumService {
|
|
18
|
-
constructor(apollo) {
|
|
19
|
-
this.apollo = apollo;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Return a list of observable enumerables considering the given name
|
|
23
|
-
*/
|
|
24
|
-
get(name) {
|
|
25
|
-
// Load possible action statuses
|
|
26
|
-
return this.apollo
|
|
27
|
-
.query({
|
|
28
|
-
query: enumTypeQuery,
|
|
29
|
-
variables: { name: name },
|
|
30
|
-
fetchPolicy: 'cache-first',
|
|
31
|
-
})
|
|
32
|
-
.pipe(map(result => {
|
|
33
|
-
const values = [];
|
|
34
|
-
if (result.data.__type && result.data.__type.enumValues) {
|
|
35
|
-
for (const enumValue of result.data.__type.enumValues) {
|
|
36
|
-
values.push({
|
|
37
|
-
value: enumValue.name,
|
|
38
|
-
name: enumValue.description || '',
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return values;
|
|
43
|
-
}));
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Returns the enum user-friendly name, instead of its value.
|
|
47
|
-
*/
|
|
48
|
-
getValueName(value, enumName) {
|
|
49
|
-
return this.get(enumName).pipe(map(values => {
|
|
50
|
-
for (const v of values) {
|
|
51
|
-
if (v.value === value) {
|
|
52
|
-
return v.name;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return '';
|
|
56
|
-
}));
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
NaturalEnumService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NaturalEnumService_Factory() { return new NaturalEnumService(i0.ɵɵinject(i1.Apollo)); }, token: NaturalEnumService, providedIn: "root" });
|
|
60
|
-
NaturalEnumService.decorators = [
|
|
61
|
-
{ type: Injectable, args: [{
|
|
62
|
-
providedIn: 'root',
|
|
63
|
-
},] }
|
|
64
|
-
];
|
|
65
|
-
NaturalEnumService.ctorParameters = () => [
|
|
66
|
-
{ type: Apollo }
|
|
67
|
-
];
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL3NlcnZpY2VzL2VudW0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHekMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7QUFFbkMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7O0NBVXhCLENBQUM7QUFvQkYsTUFBTSxPQUFPLGtCQUFrQjtJQUMzQixZQUE2QixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFHLENBQUM7SUFFL0M7O09BRUc7SUFDSSxHQUFHLENBQUMsSUFBWTtRQUNuQixnQ0FBZ0M7UUFDaEMsT0FBTyxJQUFJLENBQUMsTUFBTTthQUNiLEtBQUssQ0FBVztZQUNiLEtBQUssRUFBRSxhQUFhO1lBQ3BCLFNBQVMsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUM7WUFDdkIsV0FBVyxFQUFFLGFBQWE7U0FDN0IsQ0FBQzthQUNELElBQUksQ0FDRCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDVCxNQUFNLE1BQU0sR0FBWSxFQUFFLENBQUM7WUFDM0IsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUU7Z0JBQ3JELEtBQUssTUFBTSxTQUFTLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFO29CQUNuRCxNQUFNLENBQUMsSUFBSSxDQUFDO3dCQUNSLEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSTt3QkFDckIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxXQUFXLElBQUksRUFBRTtxQkFDcEMsQ0FBQyxDQUFDO2lCQUNOO2FBQ0o7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQztJQUVEOztPQUVHO0lBQ0ksWUFBWSxDQUFDLEtBQWEsRUFBRSxRQUFnQjtRQUMvQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUMxQixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDVCxLQUFLLE1BQU0sQ0FBQyxJQUFJLE1BQU0sRUFBRTtnQkFDcEIsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssRUFBRTtvQkFDbkIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDO2lCQUNqQjthQUNKO1lBRUQsT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQzs7OztZQWpESixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQW5DTyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcG9sbG8sIGdxbH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IGVudW1UeXBlUXVlcnkgPSBncWxgXG4gICAgcXVlcnkgRW51bVR5cGUoJG5hbWU6IFN0cmluZyEpIHtcbiAgICAgICAgX190eXBlKG5hbWU6ICRuYW1lKSB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lXG4gICAgICAgICAgICBlbnVtVmFsdWVzIHtcbiAgICAgICAgICAgICAgICBuYW1lXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb25cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbmA7XG5cbmludGVyZmFjZSBFbnVtVHlwZSB7XG4gICAgX190eXBlOiBudWxsIHwge1xuICAgICAgICBfX3R5cGVuYW1lOiBzdHJpbmc7XG4gICAgICAgIGVudW1WYWx1ZXM6IG51bGwgfCBBcnJheTx7XG4gICAgICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogbnVsbCB8IHN0cmluZztcbiAgICAgICAgfT47XG4gICAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRW51bSB7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxFbnVtU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhcG9sbG86IEFwb2xsbykge31cblxuICAgIC8qKlxuICAgICAqIFJldHVybiBhIGxpc3Qgb2Ygb2JzZXJ2YWJsZSBlbnVtZXJhYmxlcyBjb25zaWRlcmluZyB0aGUgZ2l2ZW4gbmFtZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJRW51bVtdPiB7XG4gICAgICAgIC8vIExvYWQgcG9zc2libGUgYWN0aW9uIHN0YXR1c2VzXG4gICAgICAgIHJldHVybiB0aGlzLmFwb2xsb1xuICAgICAgICAgICAgLnF1ZXJ5PEVudW1UeXBlPih7XG4gICAgICAgICAgICAgICAgcXVlcnk6IGVudW1UeXBlUXVlcnksXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzOiB7bmFtZTogbmFtZX0sXG4gICAgICAgICAgICAgICAgZmV0Y2hQb2xpY3k6ICdjYWNoZS1maXJzdCcsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlczogSUVudW1bXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmRhdGEuX190eXBlICYmIHJlc3VsdC5kYXRhLl9fdHlwZS5lbnVtVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVudW1WYWx1ZSBvZiByZXN1bHQuZGF0YS5fX3R5cGUuZW51bVZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVudW1WYWx1ZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBlbnVtVmFsdWUuZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBlbnVtIHVzZXItZnJpZW5kbHkgbmFtZSwgaW5zdGVhZCBvZiBpdHMgdmFsdWUuXG4gICAgICovXG4gICAgcHVibGljIGdldFZhbHVlTmFtZSh2YWx1ZTogc3RyaW5nLCBlbnVtTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KGVudW1OYW1lKS5waXBlKFxuICAgICAgICAgICAgbWFwKHZhbHVlcyA9PiB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB2IG9mIHZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodi52YWx1ZSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2Lm5hbWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import { Apollo, gql } from 'apollo-angular';
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { clone } from 'lodash-es';
|
|
4
|
-
import { forkJoin, of } from 'rxjs';
|
|
5
|
-
import { map, switchMap } from 'rxjs/operators';
|
|
6
|
-
import { upperCaseFirstLetter } from '../classes/utility';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "apollo-angular";
|
|
9
|
-
/**
|
|
10
|
-
* Query to get list of mutations
|
|
11
|
-
*/
|
|
12
|
-
const queriesQuery = gql `
|
|
13
|
-
query Mutations {
|
|
14
|
-
__type(name: "Mutation") {
|
|
15
|
-
fields {
|
|
16
|
-
name
|
|
17
|
-
args {
|
|
18
|
-
name
|
|
19
|
-
type {
|
|
20
|
-
ofType {
|
|
21
|
-
name
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
`;
|
|
29
|
-
export class NaturalLinkMutationService {
|
|
30
|
-
constructor(apollo) {
|
|
31
|
-
this.apollo = apollo;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Link two objects together
|
|
35
|
-
*/
|
|
36
|
-
link(obj1, obj2, otherName = null, variables = {}) {
|
|
37
|
-
// clone prevents to affect the original reference
|
|
38
|
-
const clonedVariables = clone(variables);
|
|
39
|
-
return this.getMutation('link', obj1, obj2, otherName, clonedVariables).pipe(switchMap(mutation => this.execute(mutation)));
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Link many objects
|
|
43
|
-
*/
|
|
44
|
-
linkMany(obj1, objects, otherName = null, variables = {}) {
|
|
45
|
-
return forkJoin(objects.map(obj2 => this.link(obj1, obj2, otherName, variables)));
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Unlink two objects
|
|
49
|
-
*/
|
|
50
|
-
unlink(obj1, obj2, otherName = null) {
|
|
51
|
-
return this.getMutation('unlink', obj1, obj2, otherName).pipe(switchMap(mutation => this.execute(mutation)));
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Return the list of all available mutation names
|
|
55
|
-
*/
|
|
56
|
-
getAllMutationNames() {
|
|
57
|
-
if (this.allMutations) {
|
|
58
|
-
return of(this.allMutations);
|
|
59
|
-
}
|
|
60
|
-
const mapArg = (arg) => {
|
|
61
|
-
var _a, _b, _c;
|
|
62
|
-
return {
|
|
63
|
-
name: arg.name,
|
|
64
|
-
type: ((_c = (_b = (_a = arg.type) === null || _a === void 0 ? void 0 : _a.ofType) === null || _b === void 0 ? void 0 : _b.name) === null || _c === void 0 ? void 0 : _c.replace(/ID$/, '')) || 'should-never-happen',
|
|
65
|
-
};
|
|
66
|
-
};
|
|
67
|
-
return this.apollo
|
|
68
|
-
.query({
|
|
69
|
-
query: queriesQuery,
|
|
70
|
-
fetchPolicy: 'cache-first',
|
|
71
|
-
})
|
|
72
|
-
.pipe(map(({ data }) => {
|
|
73
|
-
if (data.__type && data.__type.fields) {
|
|
74
|
-
this.allMutations = data.__type.fields
|
|
75
|
-
.filter(v => v.name.match(/^(link|unlink)/))
|
|
76
|
-
.map(v => {
|
|
77
|
-
return {
|
|
78
|
-
name: v.name,
|
|
79
|
-
arg1: mapArg(v.args[0]),
|
|
80
|
-
arg2: mapArg(v.args[1]),
|
|
81
|
-
};
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
this.allMutations = [];
|
|
86
|
-
}
|
|
87
|
-
return this.allMutations;
|
|
88
|
-
}));
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Generate mutation using patterns and replacing variables
|
|
92
|
-
*/
|
|
93
|
-
getMutation(action, obj1, obj2, otherName, variables = {}) {
|
|
94
|
-
otherName = otherName ? upperCaseFirstLetter(otherName) : otherName;
|
|
95
|
-
const mutationName = action + obj1.__typename + (otherName || obj2.__typename);
|
|
96
|
-
const reversedMutationName = action + obj2.__typename + (otherName || obj1.__typename);
|
|
97
|
-
return this.getAllMutationNames().pipe(map(allMutationNames => {
|
|
98
|
-
const mutation = allMutationNames.find(mut => mut.name === mutationName) ||
|
|
99
|
-
allMutationNames.find(mut => mut.name === reversedMutationName);
|
|
100
|
-
if (mutation) {
|
|
101
|
-
return this.buildTemplate(mutation, obj1, obj2, variables);
|
|
102
|
-
}
|
|
103
|
-
throw TypeError('API does not allow to ' + action + ' ' + obj1.__typename + ' and ' + obj2.__typename);
|
|
104
|
-
}));
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Execute mutation
|
|
108
|
-
*/
|
|
109
|
-
execute(mutation) {
|
|
110
|
-
return this.apollo
|
|
111
|
-
.mutate({
|
|
112
|
-
mutation: gql(mutation),
|
|
113
|
-
})
|
|
114
|
-
.pipe(map(r => {
|
|
115
|
-
this.apollo.client.reFetchObservableQueries();
|
|
116
|
-
return r;
|
|
117
|
-
}));
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Build the actual mutation string
|
|
121
|
-
*/
|
|
122
|
-
buildTemplate(mutation, obj1, obj2, variables = {}) {
|
|
123
|
-
let name1;
|
|
124
|
-
let name2;
|
|
125
|
-
if (obj1.__typename === mutation.arg1.type) {
|
|
126
|
-
name1 = mutation.arg1.name;
|
|
127
|
-
name2 = mutation.arg2.name;
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
name1 = mutation.arg2.name;
|
|
131
|
-
name2 = mutation.arg1.name;
|
|
132
|
-
}
|
|
133
|
-
variables[name1] = obj1.id;
|
|
134
|
-
variables[name2] = obj2.id;
|
|
135
|
-
let serializedVariables = '';
|
|
136
|
-
for (const key of Object.keys(variables)) {
|
|
137
|
-
serializedVariables += key + ': ' + JSON.stringify(variables[key]) + ' ';
|
|
138
|
-
}
|
|
139
|
-
return `mutation linkAndUnlink {
|
|
140
|
-
${mutation.name}(${serializedVariables}) {
|
|
141
|
-
id
|
|
142
|
-
}
|
|
143
|
-
}`;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
NaturalLinkMutationService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NaturalLinkMutationService_Factory() { return new NaturalLinkMutationService(i0.ɵɵinject(i1.Apollo)); }, token: NaturalLinkMutationService, providedIn: "root" });
|
|
147
|
-
NaturalLinkMutationService.decorators = [
|
|
148
|
-
{ type: Injectable, args: [{
|
|
149
|
-
providedIn: 'root',
|
|
150
|
-
},] }
|
|
151
|
-
];
|
|
152
|
-
NaturalLinkMutationService.ctorParameters = () => [
|
|
153
|
-
{ type: Apollo }
|
|
154
|
-
];
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1tdXRhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL3NlcnZpY2VzL2xpbmstbXV0YXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUMsUUFBUSxFQUFjLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTlDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDOzs7QUFFeEQ7O0dBRUc7QUFDSCxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FnQnZCLENBQUM7QUF1Q0YsTUFBTSxPQUFPLDBCQUEwQjtJQU1uQyxZQUE2QixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFHLENBQUM7SUFFL0M7O09BRUc7SUFDSSxJQUFJLENBQ1AsSUFBb0IsRUFDcEIsSUFBb0IsRUFDcEIsWUFBMkIsSUFBSSxFQUMvQixZQUFxQixFQUFFO1FBRXZCLGtEQUFrRDtRQUNsRCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFekMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQ3hFLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENB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LEVBQUU7UUFFdkIsSUFBSSxLQUFLLENBQUM7UUFDVixJQUFJLEtBQUssQ0FBQztRQUNWLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUN4QyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDM0IsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQzlCO2FBQU07WUFDSCxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDM0IsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQzlCO1FBQ0QsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDM0IsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFFM0IsSUFBSSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDN0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3RDLG1CQUFtQixJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7U0FDNUU7UUFFRCxPQUFPO2NBQ0QsUUFBUSxDQUFDLElBQUksSUFBSSxtQkFBbUI7OztVQUd4QyxDQUFDO0lBQ1AsQ0FBQzs7OztZQXhLSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQW5FTyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcG9sbG8sIGdxbH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuaW1wb3J0IHtGZXRjaFJlc3VsdH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge2Nsb25lfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHN3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtMaXRlcmFsfSBmcm9tICcuLi90eXBlcy90eXBlcyc7XG5pbXBvcnQge3VwcGVyQ2FzZUZpcnN0TGV0dGVyfSBmcm9tICcuLi9jbGFzc2VzL3V0aWxpdHknO1xuXG4vKipcbiAqIFF1ZXJ5IHRvIGdldCBsaXN0IG9mIG11dGF0aW9uc1xuICovXG5jb25zdCBxdWVyaWVzUXVlcnkgPSBncWxgXG4gICAgcXVlcnkgTXV0YXRpb25zIHtcbiAgICAgICAgX190eXBlKG5hbWU6IFwiTXV0YXRpb25cIikge1xuICAgICAgICAgICAgZmllbGRzIHtcbiAgICAgICAgICAgICAgICBuYW1lXG4gICAgICAgICAgICAgICAgYXJncyB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWVcbiAgICAgICAgICAgICAgICAgICAgdHlwZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvZlR5cGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbmA7XG5cbnR5cGUgSW50cm9zcGVjdGVkQXJnID0ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0eXBlOiB7XG4gICAgICAgIG9mVHlwZTogbnVsbCB8IHtcbiAgICAgICAgICAgIG5hbWU6IG51bGwgfCBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgfTtcbn07XG5cbmludGVyZmFjZSBJbnRyb3NwZWN0ZWRNdXRhdGlvbnMge1xuICAgIF9fdHlwZTogbnVsbCB8IHtcbiAgICAgICAgZmllbGRzOiBudWxsIHwgQXJyYXk8e1xuICAgICAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICAgICAgYXJnczogQXJyYXk8SW50cm9zcGVjdGVkQXJnPjtcbiAgICAgICAgfT47XG4gICAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaW5rYWJsZU9iamVjdCB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBfX3R5cGVuYW1lOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBNdXRhdGlvbkFyZyB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIE11dGF0aW9uIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgYXJnMTogTXV0YXRpb25Bcmc7XG4gICAgYXJnMjogTXV0YXRpb25Bcmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxMaW5rTXV0YXRpb25TZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiBSZWNlaXZlcyB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbXV0YXRpb25zXG4gICAgICovXG4gICAgcHJpdmF0ZSBhbGxNdXRhdGlvbnM/OiBNdXRhdGlvbltdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhcG9sbG86IEFwb2xsbykge31cblxuICAgIC8qKlxuICAgICAqIExpbmsgdHdvIG9iamVjdHMgdG9nZXRoZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgbGluayhcbiAgICAgICAgb2JqMTogTGlua2FibGVPYmplY3QsXG4gICAgICAgIG9iajI6IExpbmthYmxlT2JqZWN0LFxuICAgICAgICBvdGhlck5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsLFxuICAgICAgICB2YXJpYWJsZXM6IExpdGVyYWwgPSB7fSxcbiAgICApOiBPYnNlcnZhYmxlPEZldGNoUmVzdWx0PHtpZDogc3RyaW5nfT4+IHtcbiAgICAgICAgLy8gY2xvbmUgcHJldmVudHMgdG8gYWZmZWN0IHRoZSBvcmlnaW5hbCByZWZlcmVuY2VcbiAgICAgICAgY29uc3QgY2xvbmVkVmFyaWFibGVzID0gY2xvbmUodmFyaWFibGVzKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRNdXRhdGlvbignbGluaycsIG9iajEsIG9iajIsIG90aGVyTmFtZSwgY2xvbmVkVmFyaWFibGVzKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKG11dGF0aW9uID0+IHRoaXMuZXhlY3V0ZShtdXRhdGlvbikpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExpbmsgbWFueSBvYmplY3RzXG4gICAgICovXG4gICAgcHVibGljIGxpbmtNYW55KFxuICAgICAgICBvYmoxOiBMaW5rYWJsZU9iamVjdCxcbiAgICAgICAgb2JqZWN0czogTGlua2FibGVPYmplY3RbXSxcbiAgICAgICAgb3RoZXJOYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbCxcbiAgICAgICAgdmFyaWFibGVzOiBMaXRlcmFsID0ge30sXG4gICAgKTogT2JzZXJ2YWJsZTxGZXRjaFJlc3VsdDx7aWQ6IHN0cmluZ30+W10+IHtcbiAgICAgICAgcmV0dXJuIGZvcmtKb2luKG9iamVjdHMubWFwKG9iajIgPT4gdGhpcy5saW5rKG9iajEsIG9iajIsIG90aGVyTmFtZSwgdmFyaWFibGVzKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVubGluayB0d28gb2JqZWN0c1xuICAgICAqL1xuICAgIHB1YmxpYyB1bmxpbmsoXG4gICAgICAgIG9iajE6IExpbmthYmxlT2JqZWN0LFxuICAgICAgICBvYmoyOiBMaW5rYWJsZU9iamVjdCxcbiAgICAgICAgb3RoZXJOYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbCxcbiAgICApOiBPYnNlcnZhYmxlPEZldGNoUmVzdWx0PHtpZDogc3RyaW5nfT4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TXV0YXRpb24oJ3VubGluaycsIG9iajEsIG9iajIsIG90aGVyTmFtZSkucGlwZShzd2l0Y2hNYXAobXV0YXRpb24gPT4gdGhpcy5leGVjdXRlKG11dGF0aW9uKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybiB0aGUgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIG11dGF0aW9uIG5hbWVzXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRBbGxNdXRhdGlvbk5hbWVzKCk6IE9ic2VydmFibGU8TXV0YXRpb25bXT4ge1xuICAgICAgICBpZiAodGhpcy5hbGxNdXRhdGlvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLmFsbE11dGF0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtYXBBcmcgPSAoYXJnOiBJbnRyb3NwZWN0ZWRBcmcpOiBNdXRhdGlvbkFyZyA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG5hbWU6IGFyZy5uYW1lLFxuICAgICAgICAgICAgICAgIHR5cGU6IGFyZy50eXBlPy5vZlR5cGU/Lm5hbWU/LnJlcGxhY2UoL0lEJC8sICcnKSB8fCAnc2hvdWxkLW5ldmVyLWhhcHBlbicsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFwb2xsb1xuICAgICAgICAgICAgLnF1ZXJ5PEludHJvc3BlY3RlZE11dGF0aW9ucz4oe1xuICAgICAgICAgICAgICAgIHF1ZXJ5OiBxdWVyaWVzUXVlcnksXG4gICAgICAgICAgICAgICAgZmV0Y2hQb2xpY3k6ICdjYWNoZS1maXJzdCcsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKCh7ZGF0YX0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuX190eXBlICYmIGRhdGEuX190eXBlLmZpZWxkcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGxNdXRhdGlvbnMgPSBkYXRhLl9fdHlwZS5maWVsZHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKHYgPT4gdi5uYW1lLm1hdGNoKC9eKGxpbmt8dW5saW5rKS8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAodiA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB2Lm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcxOiBtYXBBcmcodi5hcmdzWzBdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZzI6IG1hcEFyZyh2LmFyZ3NbMV0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGxNdXRhdGlvbnMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFsbE11dGF0aW9ucztcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2VuZXJhdGUgbXV0YXRpb24gdXNpbmcgcGF0dGVybnMgYW5kIHJlcGxhY2luZyB2YXJpYWJsZXNcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldE11dGF0aW9uKFxuICAgICAgICBhY3Rpb246IHN0cmluZyxcbiAgICAgICAgb2JqMTogTGlua2FibGVPYmplY3QsXG4gICAgICAgIG9iajI6IExpbmthYmxlT2JqZWN0LFxuICAgICAgICBvdGhlck5hbWU6IHN0cmluZyB8IG51bGwsXG4gICAgICAgIHZhcmlhYmxlczogTGl0ZXJhbCA9IHt9LFxuICAgICk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIG90aGVyTmFtZSA9IG90aGVyTmFtZSA/IHVwcGVyQ2FzZUZpcnN0TGV0dGVyKG90aGVyTmFtZSkgOiBvdGhlck5hbWU7XG4gICAgICAgIGNvbnN0IG11dGF0aW9uTmFtZSA9IGFjdGlvbiArIG9iajEuX190eXBlbmFtZSArIChvdGhlck5hbWUgfHwgb2JqMi5fX3R5cGVuYW1lKTtcbiAgICAgICAgY29uc3QgcmV2ZXJzZWRNdXRhdGlvbk5hbWUgPSBhY3Rpb24gKyBvYmoyLl9fdHlwZW5hbWUgKyAob3RoZXJOYW1lIHx8IG9iajEuX190eXBlbmFtZSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWxsTXV0YXRpb25OYW1lcygpLnBpcGUoXG4gICAgICAgICAgICBtYXAoYWxsTXV0YXRpb25OYW1lcyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbXV0YXRpb24gPVxuICAgICAgICAgICAgICAgICAgICBhbGxNdXRhdGlvbk5hbWVzLmZpbmQobXV0ID0+IG11dC5uYW1lID09PSBtdXRhdGlvbk5hbWUpIHx8XG4gICAgICAgICAgICAgICAgICAgIGFsbE11dGF0aW9uTmFtZXMuZmluZChtdXQgPT4gbXV0Lm5hbWUgPT09IHJldmVyc2VkTXV0YXRpb25OYW1lKTtcblxuICAgICAgICAgICAgICAgIGlmIChtdXRhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5idWlsZFRlbXBsYXRlKG11dGF0aW9uLCBvYmoxLCBvYmoyLCB2YXJpYWJsZXMpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRocm93IFR5cGVFcnJvcignQVBJIGRvZXMgbm90IGFsbG93IHRvICcgKyBhY3Rpb24gKyAnICcgKyBvYmoxLl9fdHlwZW5hbWUgKyAnIGFuZCAnICsgb2JqMi5fX3R5cGVuYW1lKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV4ZWN1dGUgbXV0YXRpb25cbiAgICAgKi9cbiAgICBwcml2YXRlIGV4ZWN1dGUobXV0YXRpb246IHN0cmluZyk6IE9ic2VydmFibGU8RmV0Y2hSZXN1bHQ8e2lkOiBzdHJpbmd9Pj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hcG9sbG9cbiAgICAgICAgICAgIC5tdXRhdGU8e2lkOiBzdHJpbmd9Pih7XG4gICAgICAgICAgICAgICAgbXV0YXRpb246IGdxbChtdXRhdGlvbiksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHIgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwb2xsby5jbGllbnQucmVGZXRjaE9ic2VydmFibGVRdWVyaWVzKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBCdWlsZCB0aGUgYWN0dWFsIG11dGF0aW9uIHN0cmluZ1xuICAgICAqL1xuICAgIHByaXZhdGUgYnVpbGRUZW1wbGF0ZShcbiAgICAgICAgbXV0YXRpb246IE11dGF0aW9uLFxuICAgICAgICBvYmoxOiBMaW5rYWJsZU9iamVjdCxcbiAgICAgICAgb2JqMjogTGlua2FibGVPYmplY3QsXG4gICAgICAgIHZhcmlhYmxlczogTGl0ZXJhbCA9IHt9LFxuICAgICk6IHN0cmluZyB7XG4gICAgICAgIGxldCBuYW1lMTtcbiAgICAgICAgbGV0IG5hbWUyO1xuICAgICAgICBpZiAob2JqMS5fX3R5cGVuYW1lID09PSBtdXRhdGlvbi5hcmcxLnR5cGUpIHtcbiAgICAgICAgICAgIG5hbWUxID0gbXV0YXRpb24uYXJnMS5uYW1lO1xuICAgICAgICAgICAgbmFtZTIgPSBtdXRhdGlvbi5hcmcyLm5hbWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuYW1lMSA9IG11dGF0aW9uLmFyZzIubmFtZTtcbiAgICAgICAgICAgIG5hbWUyID0gbXV0YXRpb24uYXJnMS5uYW1lO1xuICAgICAgICB9XG4gICAgICAgIHZhcmlhYmxlc1tuYW1lMV0gPSBvYmoxLmlkO1xuICAgICAgICB2YXJpYWJsZXNbbmFtZTJdID0gb2JqMi5pZDtcblxuICAgICAgICBsZXQgc2VyaWFsaXplZFZhcmlhYmxlcyA9ICcnO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh2YXJpYWJsZXMpKSB7XG4gICAgICAgICAgICBzZXJpYWxpemVkVmFyaWFibGVzICs9IGtleSArICc6ICcgKyBKU09OLnN0cmluZ2lmeSh2YXJpYWJsZXNba2V5XSkgKyAnICc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYG11dGF0aW9uIGxpbmtBbmRVbmxpbmsge1xuICAgICAgICAgICAgJHttdXRhdGlvbi5uYW1lfSgke3NlcmlhbGl6ZWRWYXJpYWJsZXN9KSB7XG4gICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfWA7XG4gICAgfVxufVxuIl19
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { Router } from '@angular/router';
|
|
3
|
-
import { clone } from 'lodash-es';
|
|
4
|
-
import { SESSION_STORAGE } from '../modules/common/services/memory-storage';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/router";
|
|
7
|
-
import * as i2 from "../modules/common/services/memory-storage";
|
|
8
|
-
export class NaturalPersistenceService {
|
|
9
|
-
constructor(router, sessionStorage) {
|
|
10
|
-
this.router = router;
|
|
11
|
-
this.sessionStorage = sessionStorage;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Persist in url and local storage the given value with the given key.
|
|
15
|
-
* When stored in storage, we need more "key" to identify the controller.
|
|
16
|
-
*/
|
|
17
|
-
persist(key, value, route, storageKey, navigationExtras) {
|
|
18
|
-
this.persistInStorage(key, value, storageKey);
|
|
19
|
-
return this.persistInUrl(key, value, route, navigationExtras);
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Return object with persisted data in url or in session storage
|
|
23
|
-
* Url has priority over session storage because of url sharing. When url is provided, session storage is ignored.
|
|
24
|
-
* Url and storage are synced when arriving in a component :
|
|
25
|
-
* - When loading with url parameters, storage is updated to stay synced
|
|
26
|
-
* - When loading without url, but with storage data, the url is updated
|
|
27
|
-
*/
|
|
28
|
-
get(key, route, storageKey) {
|
|
29
|
-
// From url
|
|
30
|
-
let params = this.getFromUrl(key, route);
|
|
31
|
-
if (!this.isFalseyValue(params)) {
|
|
32
|
-
this.persistInStorage(key, params, storageKey);
|
|
33
|
-
return params;
|
|
34
|
-
}
|
|
35
|
-
// From storage
|
|
36
|
-
params = this.getFromStorage(key, storageKey);
|
|
37
|
-
if (!this.isFalseyValue(params)) {
|
|
38
|
-
this.persistInUrl(key, params, route);
|
|
39
|
-
return params;
|
|
40
|
-
}
|
|
41
|
-
return null;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Get given key from the url parameters
|
|
45
|
-
*/
|
|
46
|
-
getFromUrl(key, route) {
|
|
47
|
-
const value = route.snapshot.paramMap.get(key);
|
|
48
|
-
if (value) {
|
|
49
|
-
try {
|
|
50
|
-
return JSON.parse(value);
|
|
51
|
-
}
|
|
52
|
-
catch (e) { }
|
|
53
|
-
}
|
|
54
|
-
return null;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Add/override given pair key-value in the url
|
|
58
|
-
* Always JSON.stringify() the given value
|
|
59
|
-
* If the value is falsey, the pair key-value is removed from the url.
|
|
60
|
-
*/
|
|
61
|
-
persistInUrl(key, value, route, navigationExtras) {
|
|
62
|
-
const params = clone(route.snapshot.url[route.snapshot.url.length - 1].parameters);
|
|
63
|
-
if (this.isFalseyValue(value)) {
|
|
64
|
-
delete params[key];
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
params[key] = JSON.stringify(value);
|
|
68
|
-
}
|
|
69
|
-
navigationExtras = Object.assign(navigationExtras || {}, { relativeTo: route });
|
|
70
|
-
return this.router.navigate(['.', params], navigationExtras);
|
|
71
|
-
}
|
|
72
|
-
getFromStorage(key, storageKey) {
|
|
73
|
-
const value = this.sessionStorage.getItem(this.getStorageKey(key, storageKey));
|
|
74
|
-
if (value) {
|
|
75
|
-
try {
|
|
76
|
-
return JSON.parse(value);
|
|
77
|
-
}
|
|
78
|
-
catch (e) { }
|
|
79
|
-
}
|
|
80
|
-
return null;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Store value in session storage.
|
|
84
|
-
* If value is falsy, the entry is removed
|
|
85
|
-
*/
|
|
86
|
-
persistInStorage(key, value, storageKey) {
|
|
87
|
-
if (this.isFalseyValue(value)) {
|
|
88
|
-
this.sessionStorage.removeItem(this.getStorageKey(key, storageKey));
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
this.sessionStorage.setItem(this.getStorageKey(key, storageKey), JSON.stringify(value));
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
getStorageKey(key, storageKey) {
|
|
95
|
-
return storageKey + '-' + key;
|
|
96
|
-
}
|
|
97
|
-
// Returns if the given value is falsey
|
|
98
|
-
// Falsey values are : null, undefined and empty string.
|
|
99
|
-
// This cause usually the parameter to be removed from url/storage instead of being stored with no value. Url would be polluted.
|
|
100
|
-
isFalseyValue(value) {
|
|
101
|
-
return value == null || value === ''; // == means null or undefined;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
NaturalPersistenceService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NaturalPersistenceService_Factory() { return new NaturalPersistenceService(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.SESSION_STORAGE)); }, token: NaturalPersistenceService, providedIn: "root" });
|
|
105
|
-
NaturalPersistenceService.decorators = [
|
|
106
|
-
{ type: Injectable, args: [{
|
|
107
|
-
providedIn: 'root',
|
|
108
|
-
},] }
|
|
109
|
-
];
|
|
110
|
-
NaturalPersistenceService.ctorParameters = () => [
|
|
111
|
-
{ type: Router },
|
|
112
|
-
{ type: undefined, decorators: [{ type: Inject, args: [SESSION_STORAGE,] }] }
|
|
113
|
-
];
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdGVuY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9zZXJ2aWNlcy9wZXJzaXN0ZW5jZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBbUMsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekUsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQWlCLGVBQWUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDOzs7O0FBSzFGLE1BQU0sT0FBTyx5QkFBeUI7SUFDbEMsWUFDcUIsTUFBYyxFQUNXLGNBQThCO1FBRHZELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDVyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFDekUsQ0FBQztJQUVKOzs7T0FHRztJQUNJLE9BQU8sQ0FDVixHQUFXLEVBQ1gsS0FBVSxFQUNWLEtBQXFCLEVBQ3JCLFVBQWtCLEVBQ2xCLGdCQUFtQztRQUVuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFxQixFQUFFLFVBQWtCO1FBQzdELFdBQVc7UUFDWCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM3QixJQUFJLENBQUMsZ0JB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RyxHQUFHLENBQUM7SUFDbEMsQ0FBQztJQUVELHVDQUF1QztJQUN2Qyx3REFBd0Q7SUFDeEQsZ0lBQWdJO0lBQ3hILGFBQWEsQ0FBQyxLQUFVO1FBQzVCLE9BQU8sS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUMsOEJBQThCO0lBQ3hFLENBQUM7Ozs7WUF6SEosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7WUFOeUMsTUFBTTs0Q0FVdkMsTUFBTSxTQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRXh0cmFzLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge2Nsb25lfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtOYXR1cmFsU3RvcmFnZSwgU0VTU0lPTl9TVE9SQUdFfSBmcm9tICcuLi9tb2R1bGVzL2NvbW1vbi9zZXJ2aWNlcy9tZW1vcnktc3RvcmFnZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxQZXJzaXN0ZW5jZVNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgICAgICBASW5qZWN0KFNFU1NJT05fU1RPUkFHRSkgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZTogTmF0dXJhbFN0b3JhZ2UsXG4gICAgKSB7fVxuXG4gICAgLyoqXG4gICAgICogUGVyc2lzdCBpbiB1cmwgYW5kIGxvY2FsIHN0b3JhZ2UgdGhlIGdpdmVuIHZhbHVlIHdpdGggdGhlIGdpdmVuIGtleS5cbiAgICAgKiBXaGVuIHN0b3JlZCBpbiBzdG9yYWdlLCB3ZSBuZWVkIG1vcmUgXCJrZXlcIiB0byBpZGVudGlmeSB0aGUgY29udHJvbGxlci5cbiAgICAgKi9cbiAgICBwdWJsaWMgcGVyc2lzdChcbiAgICAgICAga2V5OiBzdHJpbmcsXG4gICAgICAgIHZhbHVlOiBhbnksXG4gICAgICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgc3RvcmFnZUtleTogc3RyaW5nLFxuICAgICAgICBuYXZpZ2F0aW9uRXh0cmFzPzogTmF2aWdhdGlvbkV4dHJhcyxcbiAgICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgdGhpcy5wZXJzaXN0SW5TdG9yYWdlKGtleSwgdmFsdWUsIHN0b3JhZ2VLZXkpO1xuICAgICAgICByZXR1cm4gdGhpcy5wZXJzaXN0SW5Vcmwoa2V5LCB2YWx1ZSwgcm91dGUsIG5hdmlnYXRpb25FeHRyYXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybiBvYmplY3Qgd2l0aCBwZXJzaXN0ZWQgZGF0YSBpbiB1cmwgb3IgaW4gc2Vzc2lvbiBzdG9yYWdlXG4gICAgICogVXJsIGhhcyBwcmlvcml0eSBvdmVyIHNlc3Npb24gc3RvcmFnZSBiZWNhdXNlIG9mIHVybCBzaGFyaW5nLiBXaGVuIHVybCBpcyBwcm92aWRlZCwgc2Vzc2lvbiBzdG9yYWdlIGlzIGlnbm9yZWQuXG4gICAgICogVXJsIGFuZCBzdG9yYWdlIGFyZSBzeW5jZWQgd2hlbiBhcnJpdmluZyBpbiBhIGNvbXBvbmVudCA6XG4gICAgICogIC0gV2hlbiBsb2FkaW5nIHdpdGggdXJsIHBhcmFtZXRlcnMsIHN0b3JhZ2UgaXMgdXBkYXRlZCB0byBzdGF5IHN5bmNlZFxuICAgICAqICAtIFdoZW4gbG9hZGluZyB3aXRob3V0IHVybCwgYnV0IHdpdGggc3RvcmFnZSBkYXRhLCB0aGUgdXJsIGlzIHVwZGF0ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0KGtleTogc3RyaW5nLCByb3V0ZTogQWN0aXZhdGVkUm91dGUsIHN0b3JhZ2VLZXk6IHN0cmluZyk6IGFueSB8IG51bGwge1xuICAgICAgICAvLyBGcm9tIHVybFxuICAgICAgICBsZXQgcGFyYW1zID0gdGhpcy5nZXRGcm9tVXJsKGtleSwgcm91dGUpO1xuICAgICAgICBpZiAoIXRoaXMuaXNGYWxzZXlWYWx1ZShwYXJhbXMpKSB7XG4gICAgICAgICAgICB0aGlzLnBlcnNpc3RJblN0b3JhZ2Uoa2V5LCBwYXJhbXMsIHN0b3JhZ2VLZXkpO1xuICAgICAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZyb20gc3RvcmFnZVxuICAgICAgICBwYXJhbXMgPSB0aGlzLmdldEZyb21TdG9yYWdlKGtleSwgc3RvcmFnZUtleSk7XG4gICAgICAgIGlmICghdGhpcy5pc0ZhbHNleVZhbHVlKHBhcmFtcykpIHtcbiAgICAgICAgICAgIHRoaXMucGVyc2lzdEluVXJsKGtleSwgcGFyYW1zLCByb3V0ZSk7XG4gICAgICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGdpdmVuIGtleSBmcm9tIHRoZSB1cmwgcGFyYW1ldGVyc1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRGcm9tVXJsKGtleTogc3RyaW5nLCByb3V0ZTogQWN0aXZhdGVkUm91dGUpOiBhbnkgfCBudWxsIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSByb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoa2V5KTtcblxuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UodmFsdWUpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZC9vdmVycmlkZSBnaXZlbiBwYWlyIGtleS12YWx1ZSBpbiB0aGUgdXJsXG4gICAgICogQWx3YXlzIEpTT04uc3RyaW5naWZ5KCkgdGhlIGdpdmVuIHZhbHVlXG4gICAgICogSWYgdGhlIHZhbHVlIGlzIGZhbHNleSwgdGhlIHBhaXIga2V5LXZhbHVlIGlzIHJlbW92ZWQgZnJvbSB0aGUgdXJsLlxuICAgICAqL1xuICAgIHB1YmxpYyBwZXJzaXN0SW5VcmwoXG4gICAgICAgIGtleTogc3RyaW5nLFxuICAgICAgICB2YWx1ZTogYW55LFxuICAgICAgICByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIG5hdmlnYXRpb25FeHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzLFxuICAgICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSBjbG9uZShyb3V0ZS5zbmFwc2hvdC51cmxbcm91dGUuc25hcHNob3QudXJsLmxlbmd0aCAtIDFdLnBhcmFtZXRlcnMpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzRmFsc2V5VmFsdWUodmFsdWUpKSB7XG4gICAgICAgICAgICBkZWxldGUgcGFyYW1zW2tleV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXJhbXNba2V5XSA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5hdmlnYXRpb25FeHRyYXMgPSBPYmplY3QuYXNzaWduKG5hdmlnYXRpb25FeHRyYXMgfHwge30sIHtyZWxhdGl2ZVRvOiByb3V0ZX0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4nLCBwYXJhbXNdLCBuYXZpZ2F0aW9uRXh0cmFzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RnJvbVN0b3JhZ2Uoa2V5OiBzdHJpbmcsIHN0b3JhZ2VLZXk6IHN0cmluZyk6IGFueSB8IG51bGwge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmdldFN0b3JhZ2VLZXkoa2V5LCBzdG9yYWdlS2V5KSk7XG5cbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdG9yZSB2YWx1ZSBpbiBzZXNzaW9uIHN0b3JhZ2UuXG4gICAgICogSWYgdmFsdWUgaXMgZmFsc3ksIHRoZSBlbnRyeSBpcyByZW1vdmVkXG4gICAgICovXG4gICAgcHVibGljIHBlcnNpc3RJblN0b3JhZ2Uoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIHN0b3JhZ2VLZXk6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0ZhbHNleVZhbHVlKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuZ2V0U3RvcmFnZUtleShrZXksIHN0b3JhZ2VLZXkpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmdldFN0b3JhZ2VLZXkoa2V5LCBzdG9yYWdlS2V5KSwgSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U3RvcmFnZUtleShrZXk6IHN0cmluZywgc3RvcmFnZUtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHN0b3JhZ2VLZXkgKyAnLScgKyBrZXk7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJucyBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgZmFsc2V5XG4gICAgLy8gRmFsc2V5IHZhbHVlcyBhcmUgOiBudWxsLCB1bmRlZmluZWQgYW5kIGVtcHR5IHN0cmluZy5cbiAgICAvLyBUaGlzIGNhdXNlIHVzdWFsbHkgdGhlIHBhcmFtZXRlciB0byBiZSByZW1vdmVkIGZyb20gdXJsL3N0b3JhZ2UgaW5zdGVhZCBvZiBiZWluZyBzdG9yZWQgd2l0aCBubyB2YWx1ZS4gVXJsIHdvdWxkIGJlIHBvbGx1dGVkLlxuICAgIHByaXZhdGUgaXNGYWxzZXlWYWx1ZSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09PSAnJzsgLy8gPT0gbWVhbnMgbnVsbCBvciB1bmRlZmluZWQ7XG4gICAgfVxufVxuIl19
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { NativeDateAdapter } from '@angular/material/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/material/core";
|
|
5
|
-
import * as i2 from "@angular/cdk/platform";
|
|
6
|
-
export class NaturalSwissParsingDateAdapter extends NativeDateAdapter {
|
|
7
|
-
/**
|
|
8
|
-
* Parse commonly accepted swiss format, such as:
|
|
9
|
-
*
|
|
10
|
-
* - 24.12.2018
|
|
11
|
-
* - 1.4.18
|
|
12
|
-
* - 2018-12-24
|
|
13
|
-
*/
|
|
14
|
-
parse(value) {
|
|
15
|
-
if (typeof value === 'number') {
|
|
16
|
-
return new Date(value);
|
|
17
|
-
}
|
|
18
|
-
if (typeof value === 'string') {
|
|
19
|
-
let m = value.match(/(\d{1,2})\.(\d{1,2})\.(\d{4}|\d{2})/);
|
|
20
|
-
if (m) {
|
|
21
|
-
let year = +m[3];
|
|
22
|
-
// Assume year 2000 if only two digits
|
|
23
|
-
if (year < 100) {
|
|
24
|
-
year += 2000;
|
|
25
|
-
}
|
|
26
|
-
return this.createDateIfValid(year, +m[2], +m[1]);
|
|
27
|
-
}
|
|
28
|
-
// Attempt strict ISO format
|
|
29
|
-
m = value.match(/(\d{4})-(\d{2})-(\d{2})/);
|
|
30
|
-
if (m) {
|
|
31
|
-
return this.createDateIfValid(+m[1], +m[2], +m[3]);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
|
-
createDateIfValid(year, month, date) {
|
|
37
|
-
month = month - 1;
|
|
38
|
-
if (month >= 0 && month <= 11 && date >= 1 && date <= 31) {
|
|
39
|
-
return this.createDate(year, month, date);
|
|
40
|
-
}
|
|
41
|
-
return null;
|
|
42
|
-
}
|
|
43
|
-
getFirstDayOfWeek() {
|
|
44
|
-
// Always starts on Monday, even though it is not true for Canada, U.S., Mexico and many more
|
|
45
|
-
// Also see https://github.com/tc39/ecma402/issues/6
|
|
46
|
-
return 1;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
NaturalSwissParsingDateAdapter.ɵprov = i0.ɵɵdefineInjectable({ factory: function NaturalSwissParsingDateAdapter_Factory() { return new NaturalSwissParsingDateAdapter(i0.ɵɵinject(i1.MAT_DATE_LOCALE, 8), i0.ɵɵinject(i2.Platform)); }, token: NaturalSwissParsingDateAdapter, providedIn: "root" });
|
|
50
|
-
NaturalSwissParsingDateAdapter.decorators = [
|
|
51
|
-
{ type: Injectable, args: [{
|
|
52
|
-
providedIn: 'root',
|
|
53
|
-
},] }
|
|
54
|
-
];
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpc3MtcGFyc2luZy1kYXRlLWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9zZXJ2aWNlcy9zd2lzcy1wYXJzaW5nLWRhdGUtYWRhcHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFLekQsTUFBTSxPQUFPLDhCQUErQixTQUFRLGlCQUFpQjtJQUNqRTs7Ozs7O09BTUc7SUFDSSxLQUFLLENBQUMsS0FBVTtRQUNuQixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFCO1FBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDM0IsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxFQUFFO2dCQUNILElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUVqQixzQ0FBc0M7Z0JBQ3RDLElBQUksSUFBSSxHQUFHLEdBQUcsRUFBRTtvQkFDWixJQUFJLElBQUksSUFBSSxDQUFDO2lCQUNoQjtnQkFFRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNyRDtZQUVELDRCQUE0QjtZQUM1QixDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxFQUFFO2dCQUNILE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdEQ7U0FDSjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLElBQVk7UUFDL0QsS0FBSyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDbEIsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFO1lBQ3RELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzdDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGlCQUFpQjtRQUNwQiw2RkFBNkY7UUFDN0Ysb0RBQW9EO1FBQ3BELE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQzs7OztZQXBESixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXRpdmVEYXRlQWRhcHRlcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxTd2lzc1BhcnNpbmdEYXRlQWRhcHRlciBleHRlbmRzIE5hdGl2ZURhdGVBZGFwdGVyIHtcbiAgICAvKipcbiAgICAgKiBQYXJzZSBjb21tb25seSBhY2NlcHRlZCBzd2lzcyBmb3JtYXQsIHN1Y2ggYXM6XG4gICAgICpcbiAgICAgKiAtIDI0LjEyLjIwMThcbiAgICAgKiAtIDEuNC4xOFxuICAgICAqIC0gMjAxOC0xMi0yNFxuICAgICAqL1xuICAgIHB1YmxpYyBwYXJzZSh2YWx1ZTogYW55KTogRGF0ZSB8IG51bGwge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBsZXQgbSA9IHZhbHVlLm1hdGNoKC8oXFxkezEsMn0pXFwuKFxcZHsxLDJ9KVxcLihcXGR7NH18XFxkezJ9KS8pO1xuICAgICAgICAgICAgaWYgKG0pIHtcbiAgICAgICAgICAgICAgICBsZXQgeWVhciA9ICttWzNdO1xuXG4gICAgICAgICAgICAgICAgLy8gQXNzdW1lIHllYXIgMjAwMCBpZiBvbmx5IHR3byBkaWdpdHNcbiAgICAgICAgICAgICAgICBpZiAoeWVhciA8IDEwMCkge1xuICAgICAgICAgICAgICAgICAgICB5ZWFyICs9IDIwMDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGF0ZUlmVmFsaWQoeWVhciwgK21bMl0sICttWzFdKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQXR0ZW1wdCBzdHJpY3QgSVNPIGZvcm1hdFxuICAgICAgICAgICAgbSA9IHZhbHVlLm1hdGNoKC8oXFxkezR9KS0oXFxkezJ9KS0oXFxkezJ9KS8pO1xuICAgICAgICAgICAgaWYgKG0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVEYXRlSWZWYWxpZCgrbVsxXSwgK21bMl0sICttWzNdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRGF0ZUlmVmFsaWQoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXRlOiBudW1iZXIpOiBEYXRlIHwgbnVsbCB7XG4gICAgICAgIG1vbnRoID0gbW9udGggLSAxO1xuICAgICAgICBpZiAobW9udGggPj0gMCAmJiBtb250aCA8PSAxMSAmJiBkYXRlID49IDEgJiYgZGF0ZSA8PSAzMSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGF0ZSh5ZWFyLCBtb250aCwgZGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Rmlyc3REYXlPZldlZWsoKTogbnVtYmVyIHtcbiAgICAgICAgLy8gQWx3YXlzIHN0YXJ0cyBvbiBNb25kYXksIGV2ZW4gdGhvdWdoIGl0IGlzIG5vdCB0cnVlIGZvciBDYW5hZGEsIFUuUy4sIE1leGljbyBhbmQgbWFueSBtb3JlXG4gICAgICAgIC8vIEFsc28gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L2VjbWE0MDIvaXNzdWVzLzZcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgfVxufVxuIl19
|