@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
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { NavigationEnd } from '@angular/router';
|
|
3
|
+
import { filter, takeUntil } from 'rxjs/operators';
|
|
4
|
+
import { NaturalAbstractController } from '../../classes/abstract-controller';
|
|
5
|
+
import { SESSION_STORAGE } from '../common/services/memory-storage';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/flex-layout";
|
|
8
|
+
import * as i2 from "@angular/router";
|
|
9
|
+
import * as i3 from "./sidenav-stack.service";
|
|
10
|
+
/**
|
|
11
|
+
* Assert that given value is not null
|
|
12
|
+
*/
|
|
13
|
+
function assert(value) {
|
|
14
|
+
if (!value) {
|
|
15
|
+
throw new Error('Must call NaturalSidenavService.init() before using the service');
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* @TODO : Fix nav minimize and maximize resize
|
|
20
|
+
* Since Material 2 beta 10, when nav is resized the body is not resized
|
|
21
|
+
* https://github.com/angular/material2/issues/6743
|
|
22
|
+
* Maybe the better is to wait next release
|
|
23
|
+
*/
|
|
24
|
+
export class NaturalSidenavService extends NaturalAbstractController {
|
|
25
|
+
constructor(mediaObserver, router, sessionStorage, naturalSidenavStackService) {
|
|
26
|
+
super();
|
|
27
|
+
this.mediaObserver = mediaObserver;
|
|
28
|
+
this.router = router;
|
|
29
|
+
this.sessionStorage = sessionStorage;
|
|
30
|
+
this.naturalSidenavStackService = naturalSidenavStackService;
|
|
31
|
+
/**
|
|
32
|
+
* Navigation modes
|
|
33
|
+
* First is for desktop view
|
|
34
|
+
* Second is for mobile view
|
|
35
|
+
*/
|
|
36
|
+
this.modes = ['side', 'push'];
|
|
37
|
+
/**
|
|
38
|
+
* Activated mode
|
|
39
|
+
* Default to desktop view
|
|
40
|
+
*/
|
|
41
|
+
this.mode = this.modes[0];
|
|
42
|
+
/**
|
|
43
|
+
* Wherever is nav is opened or not
|
|
44
|
+
*/
|
|
45
|
+
this.opened = true;
|
|
46
|
+
/**
|
|
47
|
+
* Stores the opened status during mobile view, to restore if we come back to desktop view
|
|
48
|
+
*/
|
|
49
|
+
this.tmpOpened = this.opened;
|
|
50
|
+
/**
|
|
51
|
+
* Wherever is nav is minimized or not
|
|
52
|
+
*/
|
|
53
|
+
this.minimized = false;
|
|
54
|
+
/**
|
|
55
|
+
* LocalStorage key that stores the minimized status
|
|
56
|
+
*/
|
|
57
|
+
this.minimizedStorageKey = 'menu-minimized';
|
|
58
|
+
/**
|
|
59
|
+
* LocalStorage key that stores the opened status
|
|
60
|
+
*/
|
|
61
|
+
this.openedStorageKey = 'menu-opened';
|
|
62
|
+
this.minimizedStorageKeyWithName = null;
|
|
63
|
+
this.openedStorageKeyWithName = null;
|
|
64
|
+
}
|
|
65
|
+
get activeMode() {
|
|
66
|
+
return this.mode;
|
|
67
|
+
}
|
|
68
|
+
get isOpened() {
|
|
69
|
+
return this.opened;
|
|
70
|
+
}
|
|
71
|
+
get isMinimized() {
|
|
72
|
+
return this.minimized;
|
|
73
|
+
}
|
|
74
|
+
destroy(component) {
|
|
75
|
+
this.naturalSidenavStackService.unregister(component);
|
|
76
|
+
}
|
|
77
|
+
init(name, container, drawer, component, autoClose = false) {
|
|
78
|
+
if (!name || name === '') {
|
|
79
|
+
throw new Error('No sidenav name provided, use <natural-sidenav-container name="menu">');
|
|
80
|
+
}
|
|
81
|
+
this.naturalSidenavStackService.register(component);
|
|
82
|
+
this.minimizedStorageKeyWithName = name + '-' + this.minimizedStorageKey;
|
|
83
|
+
this.openedStorageKeyWithName = name + '-' + this.openedStorageKey;
|
|
84
|
+
// Init from LocalStorage
|
|
85
|
+
this.minimized = this.getMinimizedStatus();
|
|
86
|
+
this.opened = this.getMenuOpenedStatus();
|
|
87
|
+
this.tmpOpened = this.opened;
|
|
88
|
+
let oldIsBig = null;
|
|
89
|
+
this.mediaObserver
|
|
90
|
+
.asObservable()
|
|
91
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
92
|
+
.subscribe(() => {
|
|
93
|
+
const isBig = !this.isMobileView();
|
|
94
|
+
this.mode = isBig ? this.modes[0] : this.modes[1];
|
|
95
|
+
if (oldIsBig === null || isBig !== oldIsBig) {
|
|
96
|
+
oldIsBig = isBig;
|
|
97
|
+
// If decrease window size, save status of menu before closing it
|
|
98
|
+
if (!isBig) {
|
|
99
|
+
this.tmpOpened = this.opened;
|
|
100
|
+
this.opened = false;
|
|
101
|
+
}
|
|
102
|
+
// If increase window size, and sidebar was open before, re-open it.
|
|
103
|
+
if (isBig && this.tmpOpened) {
|
|
104
|
+
this.opened = true;
|
|
105
|
+
this.minimized = this.getMinimizedStatus();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
if (autoClose) {
|
|
110
|
+
this.router.events
|
|
111
|
+
.pipe(takeUntil(this.ngUnsubscribe), filter(e => e instanceof NavigationEnd))
|
|
112
|
+
.subscribe(() => {
|
|
113
|
+
this.navItemClicked();
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
isMobileView() {
|
|
118
|
+
return !this.mediaObserver.isActive('gt-sm');
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Close nav on mobile view after a click
|
|
122
|
+
*/
|
|
123
|
+
navItemClicked() {
|
|
124
|
+
if (this.isMobileView()) {
|
|
125
|
+
this.close();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Change minimized status and stores the new value
|
|
130
|
+
*/
|
|
131
|
+
setMinimized(value) {
|
|
132
|
+
this.minimized = value;
|
|
133
|
+
assert(this.minimizedStorageKeyWithName);
|
|
134
|
+
this.sessionStorage.setItem(this.minimizedStorageKeyWithName, value ? 'true' : 'false');
|
|
135
|
+
}
|
|
136
|
+
minimize() {
|
|
137
|
+
this.setMinimized(true);
|
|
138
|
+
}
|
|
139
|
+
expand() {
|
|
140
|
+
this.setMinimized(false);
|
|
141
|
+
}
|
|
142
|
+
toggleMinimized() {
|
|
143
|
+
this.setMinimized(!this.minimized);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Get the stored minimized status
|
|
147
|
+
*/
|
|
148
|
+
getMinimizedStatus() {
|
|
149
|
+
assert(this.minimizedStorageKeyWithName);
|
|
150
|
+
const value = this.sessionStorage.getItem(this.minimizedStorageKeyWithName);
|
|
151
|
+
return value === null ? false : value === 'true';
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Get the stored opened status
|
|
155
|
+
* Default on an opened status if nothing is stored
|
|
156
|
+
*/
|
|
157
|
+
getMenuOpenedStatus() {
|
|
158
|
+
assert(this.openedStorageKeyWithName);
|
|
159
|
+
const value = this.sessionStorage.getItem(this.openedStorageKeyWithName);
|
|
160
|
+
return value === null || value === 'true';
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Toggle menu but expand it if mobile mode is activated
|
|
164
|
+
* Stores the status in local storage
|
|
165
|
+
*/
|
|
166
|
+
toggle() {
|
|
167
|
+
this.setOpened(!this.opened);
|
|
168
|
+
}
|
|
169
|
+
close() {
|
|
170
|
+
this.setOpened(false);
|
|
171
|
+
}
|
|
172
|
+
open() {
|
|
173
|
+
this.setOpened(true);
|
|
174
|
+
}
|
|
175
|
+
setOpened(value) {
|
|
176
|
+
this.opened = value;
|
|
177
|
+
if (this.opened && this.isMobileView()) {
|
|
178
|
+
this.minimized = false;
|
|
179
|
+
}
|
|
180
|
+
else if (!this.isMobileView()) {
|
|
181
|
+
assert(this.openedStorageKeyWithName);
|
|
182
|
+
this.sessionStorage.setItem(this.openedStorageKeyWithName, this.opened ? 'true' : 'false');
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
NaturalSidenavService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalSidenavService, deps: [{ token: i1.MediaObserver }, { token: i2.Router }, { token: SESSION_STORAGE }, { token: i3.NaturalSidenavStackService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
187
|
+
NaturalSidenavService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalSidenavService, providedIn: 'root' });
|
|
188
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalSidenavService, decorators: [{
|
|
189
|
+
type: Injectable,
|
|
190
|
+
args: [{ providedIn: 'root' }]
|
|
191
|
+
}], ctorParameters: function () { return [{ type: i1.MediaObserver }, { type: i2.Router }, { type: undefined, decorators: [{
|
|
192
|
+
type: Inject,
|
|
193
|
+
args: [SESSION_STORAGE]
|
|
194
|
+
}] }, { type: i3.NaturalSidenavStackService }]; } });
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc2lkZW5hdi9zaWRlbmF2LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFDLGFBQWEsRUFBUyxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFNUUsT0FBTyxFQUFpQixlQUFlLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7QUFHbEY7O0dBRUc7QUFDSCxTQUFTLE1BQU0sQ0FBSSxLQUFRO0lBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDUixNQUFNLElBQUksS0FBSyxDQUFDLGlFQUFpRSxDQUFDLENBQUM7S0FDdEY7QUFDTCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEseUJBQXlCO0lBMENoRSxZQUNvQixhQUE0QixFQUMzQixNQUFjLEVBQ1csY0FBOEIsRUFDdkQsMEJBQXNEO1FBRXZFLEtBQUssRUFBRSxDQUFDO1FBTFEsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNXLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUN2RCwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBN0MzRTs7OztXQUlHO1FBQ0ssVUFBSyxHQUFvQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVsRDs7O1dBR0c7UUFDSyxTQUFJLEdBQWtCLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFNUM7O1dB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QUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM5RjtJQUNMLENBQUM7O2tIQTdNUSxxQkFBcUIscUVBNkNsQixlQUFlO3NIQTdDbEIscUJBQXFCLGNBRFQsTUFBTTsyRkFDbEIscUJBQXFCO2tCQURqQyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7MEJBOEN2QixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01lZGlhT2JzZXJ2ZXJ9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcbmltcG9ydCB7TWF0RHJhd2VyLCBNYXREcmF3ZXJDb250YWluZXIsIE1hdERyYXdlck1vZGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uRW5kLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge2ZpbHRlciwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge05hdHVyYWxBYnN0cmFjdENvbnRyb2xsZXJ9IGZyb20gJy4uLy4uL2NsYXNzZXMvYWJzdHJhY3QtY29udHJvbGxlcic7XG5pbXBvcnQge05hdHVyYWxTaWRlbmF2Q29udGFpbmVyQ29tcG9uZW50fSBmcm9tICcuL3NpZGVuYXYtY29udGFpbmVyL3NpZGVuYXYtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQge05hdHVyYWxTdG9yYWdlLCBTRVNTSU9OX1NUT1JBR0V9IGZyb20gJy4uL2NvbW1vbi9zZXJ2aWNlcy9tZW1vcnktc3RvcmFnZSc7XG5pbXBvcnQge05hdHVyYWxTaWRlbmF2U3RhY2tTZXJ2aWNlfSBmcm9tICcuL3NpZGVuYXYtc3RhY2suc2VydmljZSc7XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgZ2l2ZW4gdmFsdWUgaXMgbm90IG51bGxcbiAqL1xuZnVuY3Rpb24gYXNzZXJ0PFQ+KHZhbHVlOiBUKTogYXNzZXJ0cyB2YWx1ZSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ011c3QgY2FsbCBOYXR1cmFsU2lkZW5hdlNlcnZpY2UuaW5pdCgpIGJlZm9yZSB1c2luZyB0aGUgc2VydmljZScpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBAVE9ETyA6IEZpeCBuYXYgbWluaW1pemUgYW5kIG1heGltaXplIHJlc2l6ZVxuICogU2luY2UgTWF0ZXJpYWwgMiBiZXRhIDEwLCB3aGVuIG5hdiBpcyByZXNpemVkIHRoZSBib2R5IGlzIG5vdCByZXNpemVkXG4gKiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9tYXRlcmlhbDIvaXNzdWVzLzY3NDNcbiAqIE1heWJlIHRoZSBiZXR0ZXIgaXMgdG8gd2FpdCBuZXh0IHJlbGVhc2VcbiAqL1xuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgTmF0dXJhbFNpZGVuYXZTZXJ2aWNlIGV4dGVuZHMgTmF0dXJhbEFic3RyYWN0Q29udHJvbGxlciB7XG4gICAgLyoqXG4gICAgICogTmF2aWdhdGlvbiBtb2Rlc1xuICAgICAqIEZpcnN0IGlzIGZvciBkZXNrdG9wIHZpZXdcbiAgICAgKiBTZWNvbmQgaXMgZm9yIG1vYmlsZSB2aWV3XG4gICAgICovXG4gICAgcHJpdmF0ZSBtb2RlczogTWF0RHJhd2VyTW9kZVtdID0gWydzaWRlJywgJ3B1c2gnXTtcblxuICAgIC8qKlxuICAgICAqIEFjdGl2YXRlZCBtb2RlXG4gICAgICogRGVmYXVsdCB0byBkZXNrdG9wIHZpZXdcbiAgICAgKi9cbiAgICBwcml2YXRlIG1vZGU6IE1hdERyYXdlck1vZGUgPSB0aGlzLm1vZGVzWzBdO1xuXG4gICAgLyoqXG4gICAgICogV2hlcmV2ZXIgaXMgbmF2IGlzIG9wZW5lZCBvciBub3RcbiAgICAgKi9cbiAgICBwcml2YXRlIG9wZW5lZCA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBTdG9yZXMgdGhlIG9wZW5lZCBzdGF0dXMgZHVyaW5nIG1vYmlsZSB2aWV3LCB0byByZXN0b3JlIGlmIHdlIGNvbWUgYmFjayB0byBkZXNrdG9wIHZpZXdcbiAgICAgKi9cbiAgICBwcml2YXRlIHRtcE9wZW5lZDogYm9vbGVhbiA9IHRoaXMub3BlbmVkO1xuXG4gICAgLyoqXG4gICAgICogV2hlcmV2ZXIgaXMgbmF2IGlzIG1pbmltaXplZCBvciBub3RcbiAgICAgKi9cbiAgICBwcml2YXRlIG1pbmltaXplZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogTG9jYWxTdG9yYWdlIGtleSB0aGF0IHN0b3JlcyB0aGUgbWluaW1pemVkIHN0YXR1c1xuICAgICAqL1xuICAgIHByaXZhdGUgbWluaW1pemVkU3RvcmFnZUtleSA9ICdtZW51LW1pbmltaXplZCc7XG5cbiAgICAvKipcbiAgICAgKiBMb2NhbFN0b3JhZ2Uga2V5IHRoYXQgc3RvcmVzIHRoZSBvcGVuZWQgc3RhdHVzXG4gICAgICovXG4gICAgcHJpdmF0ZSBvcGVuZWRTdG9yYWdlS2V5ID0gJ21lbnUtb3BlbmVkJztcblxuICAgIHByaXZhdGUgbWluaW1pemVkU3RvcmFnZUtleVdpdGhOYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIG9wZW5lZFN0b3JhZ2VLZXlXaXRoTmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBtZWRpYU9ic2VydmVyOiBNZWRpYU9ic2VydmVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgICAgICBASW5qZWN0KFNFU1NJT05fU1RPUkFHRSkgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZTogTmF0dXJhbFN0b3JhZ2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbmF0dXJhbFNpZGVuYXZTdGFja1NlcnZpY2U6IE5hdHVyYWxTaWRlbmF2U3RhY2tTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWN0aXZlTW9kZSgpOiBNYXREcmF3ZXJNb2RlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzT3BlbmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcGVuZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc01pbmltaXplZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWluaW1pemVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZXN0cm95KGNvbXBvbmVudDogTmF0dXJhbFNpZGVuYXZDb250YWluZXJDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uYXR1cmFsU2lkZW5hdlN0YWNrU2VydmljZS51bnJlZ2lzdGVyKGNvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXQoXG4gICAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgICAgY29udGFpbmVyOiBNYXREcmF3ZXJDb250YWluZXIsXG4gICAgICAgIGRyYXdlcjogTWF0RHJhd2VyLFxuICAgICAgICBjb21wb25lbnQ6IE5hdHVyYWxTaWRlbmF2Q29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgICBhdXRvQ2xvc2U6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICApOiB2b2lkIHtcbiAgICAgICAgaWYgKCFuYW1lIHx8IG5hbWUgPT09ICcnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHNpZGVuYXYgbmFtZSBwcm92aWRlZCwgdXNlIDxuYXR1cmFsLXNpZGVuYXYtY29udGFpbmVyIG5hbWU9XCJtZW51XCI+Jyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5hdHVyYWxTaWRlbmF2U3RhY2tTZXJ2aWNlLnJlZ2lzdGVyKGNvbXBvbmVudCk7XG5cbiAgICAgICAgdGhpcy5taW5pbWl6ZWRTdG9yYWdlS2V5V2l0aE5hbWUgPSBuYW1lICsgJy0nICsgdGhpcy5taW5pbWl6ZWRTdG9yYWdlS2V5O1xuICAgICAgICB0aGlzLm9wZW5lZFN0b3JhZ2VLZXlXaXRoTmFtZSA9IG5hbWUgKyAnLScgKyB0aGlzLm9wZW5lZFN0b3JhZ2VLZXk7XG5cbiAgICAgICAgLy8gSW5pdCBmcm9tIExvY2FsU3RvcmFnZVxuICAgICAgICB0aGlzLm1pbmltaXplZCA9IHRoaXMuZ2V0TWluaW1pemVkU3RhdHVzKCk7XG4gICAgICAgIHRoaXMub3BlbmVkID0gdGhpcy5nZXRNZW51T3BlbmVkU3RhdHVzKCk7XG4gICAgICAgIHRoaXMudG1wT3BlbmVkID0gdGhpcy5vcGVuZWQ7XG5cbiAgICAgICAgbGV0IG9sZElzQmlnOiBib29sZWFuIHwgbnVsbCA9IG51bGw7XG4gICAgICAgIHRoaXMubWVkaWFPYnNlcnZlclxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzQmlnID0gIXRoaXMuaXNNb2JpbGVWaWV3KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlID0gaXNCaWcgPyB0aGlzLm1vZGVzWzBdIDogdGhpcy5tb2Rlc1sxXTtcblxuICAgICAgICAgICAgICAgIGlmIChvbGRJc0JpZyA9PT0gbnVsbCB8fCBpc0JpZyAhPT0gb2xkSXNCaWcpIHtcbiAgICAgICAgICAgICAgICAgICAgb2xkSXNCaWcgPSBpc0JpZztcblxuICAgICAgICAgICAgICAgICAgICAvLyBJZiBkZWNyZWFzZSB3aW5kb3cgc2l6ZSwgc2F2ZSBzdGF0dXMgb2YgbWVudSBiZWZvcmUgY2xvc2luZyBpdFxuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzQmlnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRtcE9wZW5lZCA9IHRoaXMub3BlbmVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIElmIGluY3JlYXNlIHdpbmRvdyBzaXplLCBhbmQgc2lkZWJhciB3YXMgb3BlbiBiZWZvcmUsIHJlLW9wZW4gaXQuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0JpZyAmJiB0aGlzLnRtcE9wZW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5taW5pbWl6ZWQgPSB0aGlzLmdldE1pbmltaXplZFN0YXR1cygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGF1dG9DbG9zZSkge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdkl0ZW1DbGlja2VkKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaXNNb2JpbGVWaWV3KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMubWVkaWFPYnNlcnZlci5pc0FjdGl2ZSgnZ3Qtc20nKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZSBuYXYgb24gbW9iaWxlIHZpZXcgYWZ0ZXIgYSBjbGlja1xuICAgICAqL1xuICAgIHB1YmxpYyBuYXZJdGVtQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNNb2JpbGVWaWV3KCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoYW5nZSBtaW5pbWl6ZWQgc3RhdHVzIGFuZCBzdG9yZXMgdGhlIG5ldyB2YWx1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRNaW5pbWl6ZWQodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5taW5pbWl6ZWQgPSB2YWx1ZTtcbiAgICAgICAgYXNzZXJ0KHRoaXMubWluaW1pemVkU3RvcmFnZUtleVdpdGhOYW1lKTtcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMubWluaW1pemVkU3RvcmFnZUtleVdpdGhOYW1lLCB2YWx1ZSA/ICd0cnVlJyA6ICdmYWxzZScpO1xuICAgIH1cblxuICAgIHB1YmxpYyBtaW5pbWl6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRNaW5pbWl6ZWQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGV4cGFuZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRNaW5pbWl6ZWQoZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGVNaW5pbWl6ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0TWluaW1pemVkKCF0aGlzLm1pbmltaXplZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBzdG9yZWQgbWluaW1pemVkIHN0YXR1c1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRNaW5pbWl6ZWRTdGF0dXMoKTogYm9vbGVhbiB7XG4gICAgICAgIGFzc2VydCh0aGlzLm1pbmltaXplZFN0b3JhZ2VLZXlXaXRoTmFtZSk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMubWluaW1pemVkU3RvcmFnZUtleVdpdGhOYW1lKTtcblxuICAgICAgICByZXR1cm4gdmFsdWUgPT09IG51bGwgPyBmYWxzZSA6IHZhbHVlID09PSAndHJ1ZSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBzdG9yZWQgb3BlbmVkIHN0YXR1c1xuICAgICAqIERlZmF1bHQgb24gYW4gb3BlbmVkIHN0YXR1cyBpZiBub3RoaW5nIGlzIHN0b3JlZFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRNZW51T3BlbmVkU3RhdHVzKCk6IGJvb2xlYW4ge1xuICAgICAgICBhc3NlcnQodGhpcy5vcGVuZWRTdG9yYWdlS2V5V2l0aE5hbWUpO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm9wZW5lZFN0b3JhZ2VLZXlXaXRoTmFtZSk7XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSAndHJ1ZSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVG9nZ2xlIG1lbnUgYnV0IGV4cGFuZCBpdCBpZiBtb2JpbGUgbW9kZSBpcyBhY3RpdmF0ZWRcbiAgICAgKiBTdG9yZXMgdGhlIHN0YXR1cyBpbiBsb2NhbCBzdG9yYWdlXG4gICAgICovXG4gICAgcHVibGljIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPcGVuZWQoIXRoaXMub3BlbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0T3BlbmVkKGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPcGVuZWQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldE9wZW5lZCh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW5lZCA9IHZhbHVlO1xuXG4gICAgICAgIGlmICh0aGlzLm9wZW5lZCAmJiB0aGlzLmlzTW9iaWxlVmlldygpKSB7XG4gICAgICAgICAgICB0aGlzLm1pbmltaXplZCA9IGZhbHNlO1xuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmlzTW9iaWxlVmlldygpKSB7XG4gICAgICAgICAgICBhc3NlcnQodGhpcy5vcGVuZWRTdG9yYWdlS2V5V2l0aE5hbWUpO1xuICAgICAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMub3BlbmVkU3RvcmFnZUtleVdpdGhOYW1lLCB0aGlzLm9wZW5lZCA/ICd0cnVlJyA6ICdmYWxzZScpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
package/{esm2015/lib/modules/stamp/public-api.js → esm2020/lib/modules/stamp/public-api.mjs}
RENAMED
|
File without changes
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { NaturalStampComponent } from './stamp.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class NaturalStampModule {
|
|
6
|
+
}
|
|
7
|
+
NaturalStampModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalStampModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
+
NaturalStampModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalStampModule, declarations: [NaturalStampComponent], imports: [CommonModule], exports: [NaturalStampComponent] });
|
|
9
|
+
NaturalStampModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalStampModule, imports: [[CommonModule]] });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalStampModule, decorators: [{
|
|
11
|
+
type: NgModule,
|
|
12
|
+
args: [{
|
|
13
|
+
declarations: [NaturalStampComponent],
|
|
14
|
+
imports: [CommonModule],
|
|
15
|
+
exports: [NaturalStampComponent],
|
|
16
|
+
}]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbXAtbW9kdWxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3N0YW1wL3N0YW1wLW1vZHVsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7O0FBT3hELE1BQU0sT0FBTyxrQkFBa0I7OytHQUFsQixrQkFBa0I7Z0hBQWxCLGtCQUFrQixpQkFKWixxQkFBcUIsYUFDMUIsWUFBWSxhQUNaLHFCQUFxQjtnSEFFdEIsa0JBQWtCLFlBSGxCLENBQUMsWUFBWSxDQUFDOzJGQUdkLGtCQUFrQjtrQkFMOUIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDckMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXR1cmFsU3RhbXBDb21wb25lbnR9IGZyb20gJy4vc3RhbXAuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtOYXR1cmFsU3RhbXBDb21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtOYXR1cmFsU3RhbXBDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsU3RhbXBNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class NaturalStampComponent {
|
|
5
|
+
}
|
|
6
|
+
NaturalStampComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalStampComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7
|
+
NaturalStampComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: NaturalStampComponent, selector: "natural-stamp", inputs: { item: "item" }, ngImport: i0, template: "<ng-container *ngIf=\"item\">\n <div *ngIf=\"item.creationDate || item.creator\">\n <span class=\"mat-body-2\" i18n>Cr\u00E9ation</span>\n :\n <span *ngIf=\"item.creator\">{{ item.creator?.fullName || item.creator?.name }}</span>\n <span *ngIf=\"item.creator && item.creationDate\">, </span>\n <span *ngIf=\"item.creationDate\"\n >{{ item.creationDate | date: 'mediumDate' }} - {{ item.creationDate | date: 'shortTime' }}</span\n >\n </div>\n\n <div *ngIf=\"item.updateDate || item.updater\">\n <span class=\"mat-body-2\" i18n>Modification</span>\n :\n <span *ngIf=\"item.updater\">{{ item.updater?.fullName || item.updater?.name }}</span>\n <span *ngIf=\"item.updater && item.updateDate\">, </span>\n <span *ngIf=\"item.updateDate\"\n >{{ item.updateDate | date: 'mediumDate' }} - {{ item.updateDate | date: 'shortTime' }}</span\n >\n </div>\n</ng-container>\n", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "date": i1.DatePipe } });
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalStampComponent, decorators: [{
|
|
9
|
+
type: Component,
|
|
10
|
+
args: [{ selector: 'natural-stamp', template: "<ng-container *ngIf=\"item\">\n <div *ngIf=\"item.creationDate || item.creator\">\n <span class=\"mat-body-2\" i18n>Cr\u00E9ation</span>\n :\n <span *ngIf=\"item.creator\">{{ item.creator?.fullName || item.creator?.name }}</span>\n <span *ngIf=\"item.creator && item.creationDate\">, </span>\n <span *ngIf=\"item.creationDate\"\n >{{ item.creationDate | date: 'mediumDate' }} - {{ item.creationDate | date: 'shortTime' }}</span\n >\n </div>\n\n <div *ngIf=\"item.updateDate || item.updater\">\n <span class=\"mat-body-2\" i18n>Modification</span>\n :\n <span *ngIf=\"item.updater\">{{ item.updater?.fullName || item.updater?.name }}</span>\n <span *ngIf=\"item.updater && item.updateDate\">, </span>\n <span *ngIf=\"item.updateDate\"\n >{{ item.updateDate | date: 'mediumDate' }} - {{ item.updateDate | date: 'shortTime' }}</span\n >\n </div>\n</ng-container>\n" }]
|
|
11
|
+
}], propDecorators: { item: [{
|
|
12
|
+
type: Input
|
|
13
|
+
}] } });
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc3RhbXAvc3RhbXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc3RhbXAvc3RhbXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQWMvQyxNQUFNLE9BQU8scUJBQXFCOztrSEFBckIscUJBQXFCO3NHQUFyQixxQkFBcUIsK0VDZGxDLCs5QkFxQkE7MkZEUGEscUJBQXFCO2tCQUpqQyxTQUFTOytCQUNJLGVBQWU7OEJBSVQsSUFBSTtzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hbWVPckZ1bGxOYW1lfSBmcm9tICcuLi8uLi90eXBlcy90eXBlcyc7XG5cbnR5cGUgU3RhbXBlZCA9IHtcbiAgICBjcmVhdG9yOiBOYW1lT3JGdWxsTmFtZSB8IG51bGw7XG4gICAgdXBkYXRlcjogTmFtZU9yRnVsbE5hbWUgfCBudWxsO1xuICAgIGNyZWF0aW9uRGF0ZTogc3RyaW5nIHwgbnVsbDtcbiAgICB1cGRhdGVEYXRlOiBzdHJpbmcgfCBudWxsO1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYXR1cmFsLXN0YW1wJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3RhbXAuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsU3RhbXBDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpdGVtITogU3RhbXBlZDtcbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtXCI+XG4gICAgPGRpdiAqbmdJZj1cIml0ZW0uY3JlYXRpb25EYXRlIHx8IGl0ZW0uY3JlYXRvclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1ib2R5LTJcIiBpMThuPkNyw6lhdGlvbjwvc3Bhbj5cbiAgICAgICAgOlxuICAgICAgICA8c3BhbiAqbmdJZj1cIml0ZW0uY3JlYXRvclwiPnt7IGl0ZW0uY3JlYXRvcj8uZnVsbE5hbWUgfHwgaXRlbS5jcmVhdG9yPy5uYW1lIH19PC9zcGFuPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIml0ZW0uY3JlYXRvciAmJiBpdGVtLmNyZWF0aW9uRGF0ZVwiPiwmbmJzcDs8L3NwYW4+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5jcmVhdGlvbkRhdGVcIlxuICAgICAgICAgICAgPnt7IGl0ZW0uY3JlYXRpb25EYXRlIHwgZGF0ZTogJ21lZGl1bURhdGUnIH19IC0ge3sgaXRlbS5jcmVhdGlvbkRhdGUgfCBkYXRlOiAnc2hvcnRUaW1lJyB9fTwvc3BhblxuICAgICAgICA+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiaXRlbS51cGRhdGVEYXRlIHx8IGl0ZW0udXBkYXRlclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1ib2R5LTJcIiBpMThuPk1vZGlmaWNhdGlvbjwvc3Bhbj5cbiAgICAgICAgOlxuICAgICAgICA8c3BhbiAqbmdJZj1cIml0ZW0udXBkYXRlclwiPnt7IGl0ZW0udXBkYXRlcj8uZnVsbE5hbWUgfHwgaXRlbS51cGRhdGVyPy5uYW1lIH19PC9zcGFuPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIml0ZW0udXBkYXRlciAmJiBpdGVtLnVwZGF0ZURhdGVcIj4sJm5ic3A7PC9zcGFuPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIml0ZW0udXBkYXRlRGF0ZVwiXG4gICAgICAgICAgICA+e3sgaXRlbS51cGRhdGVEYXRlIHwgZGF0ZTogJ21lZGl1bURhdGUnIH19IC0ge3sgaXRlbS51cGRhdGVEYXRlIHwgZGF0ZTogJ3Nob3J0VGltZScgfX08L3NwYW5cbiAgICAgICAgPlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
File without changes
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Component, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/material/button";
|
|
4
|
+
import * as i2 from "../icon/icon.component";
|
|
5
|
+
import * as i3 from "@angular/common";
|
|
6
|
+
import * as i4 from "@angular/router";
|
|
7
|
+
/**
|
|
8
|
+
* Button that fits well in a `<mat-table>` and support either
|
|
9
|
+
* route navigation via `navigate` or external URL via `href`.
|
|
10
|
+
*
|
|
11
|
+
* External URL will always be opened in new tab.
|
|
12
|
+
*/
|
|
13
|
+
export class NaturalTableButtonComponent {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.queryParams = {};
|
|
16
|
+
this.queryParamsHandling = '';
|
|
17
|
+
this.navigate = [];
|
|
18
|
+
this.preserveFragment = false;
|
|
19
|
+
this.raised = false;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
NaturalTableButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalTableButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
+
NaturalTableButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: NaturalTableButtonComponent, selector: "natural-table-button", inputs: { queryParams: "queryParams", queryParamsHandling: "queryParamsHandling", label: "label", icon: "icon", href: "href", navigate: "navigate", fragment: "fragment", preserveFragment: "preserveFragment", raised: "raised", color: "color" }, ngImport: i0, template: "<!-- Because directives can't be applied conditionally (routerLink, mat-button and mat-icon-button), we have to use different elements -->\n\n<ng-container *ngIf=\"!raised\">\n <!-- App routed link with label... -->\n <a\n *ngIf=\"!href && label\"\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n mat-button\n >\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n <span>{{ label }}</span>\n </a>\n\n <!-- ... and without label -->\n <a\n *ngIf=\"!href && !label\"\n [color]=\"color\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [queryParams]=\"queryParams\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n mat-icon-button\n >\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n </a>\n\n <!-- External link with label... -->\n <a *ngIf=\"href && label\" [attr.href]=\"href\" [color]=\"color\" mat-button target=\"_blank\">\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n <span>{{ label }}</span>\n </a>\n\n <!-- ... and without label -->\n <a *ngIf=\"href && !label\" [attr.href]=\"href\" [color]=\"color\" mat-icon-button target=\"_blank\">\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n </a>\n</ng-container>\n\n<ng-container *ngIf=\"raised\">\n <!-- App routed link with label... -->\n <a\n *ngIf=\"!href && label\"\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n mat-raised-button\n >\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n <span>{{ label }}</span>\n </a>\n\n <!-- ... and without label -->\n <a\n *ngIf=\"!href && !label\"\n [color]=\"color\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [queryParams]=\"queryParams\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n mat-icon-button\n mat-raised-button\n >\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n </a>\n\n <!-- External link with label... -->\n <a *ngIf=\"href && label\" [attr.href]=\"href\" [color]=\"color\" mat-raised-button target=\"_blank\">\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n <span>{{ label }}</span>\n </a>\n\n <!-- ... and without label -->\n <a *ngIf=\"href && !label\" [attr.href]=\"href\" [color]=\"color\" mat-icon-button mat-raised-button target=\"_blank\">\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n </a>\n</ng-container>\n", styles: ["natural-table-button{flex:1;display:flex;flex-direction:row;justify-content:flex-start;align-items:center}natural-table-button a.mat-button{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:flex-start}natural-table-button a.mat-button .mat-button-wrapper{display:flex;flex-direction:row;align-items:center}natural-table-button a.mat-button .mat-button-wrapper>*{display:flex;flex-direction:row;align-items:center}natural-table-button a.mat-button .mat-button-wrapper>:not(:last-child){margin-right:5px}\n"], components: [{ type: i1.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { type: i2.NaturalIconComponent, selector: "natural-icon", inputs: ["label", "labelColor", "labelPosition", "name", "size"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalTableButtonComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{ selector: 'natural-table-button', encapsulation: ViewEncapsulation.None, template: "<!-- Because directives can't be applied conditionally (routerLink, mat-button and mat-icon-button), we have to use different elements -->\n\n<ng-container *ngIf=\"!raised\">\n <!-- App routed link with label... -->\n <a\n *ngIf=\"!href && label\"\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n mat-button\n >\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n <span>{{ label }}</span>\n </a>\n\n <!-- ... and without label -->\n <a\n *ngIf=\"!href && !label\"\n [color]=\"color\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [queryParams]=\"queryParams\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n mat-icon-button\n >\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n </a>\n\n <!-- External link with label... -->\n <a *ngIf=\"href && label\" [attr.href]=\"href\" [color]=\"color\" mat-button target=\"_blank\">\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n <span>{{ label }}</span>\n </a>\n\n <!-- ... and without label -->\n <a *ngIf=\"href && !label\" [attr.href]=\"href\" [color]=\"color\" mat-icon-button target=\"_blank\">\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n </a>\n</ng-container>\n\n<ng-container *ngIf=\"raised\">\n <!-- App routed link with label... -->\n <a\n *ngIf=\"!href && label\"\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n mat-raised-button\n >\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n <span>{{ label }}</span>\n </a>\n\n <!-- ... and without label -->\n <a\n *ngIf=\"!href && !label\"\n [color]=\"color\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [queryParams]=\"queryParams\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n mat-icon-button\n mat-raised-button\n >\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n </a>\n\n <!-- External link with label... -->\n <a *ngIf=\"href && label\" [attr.href]=\"href\" [color]=\"color\" mat-raised-button target=\"_blank\">\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n <span>{{ label }}</span>\n </a>\n\n <!-- ... and without label -->\n <a *ngIf=\"href && !label\" [attr.href]=\"href\" [color]=\"color\" mat-icon-button mat-raised-button target=\"_blank\">\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n </a>\n</ng-container>\n", styles: ["natural-table-button{flex:1;display:flex;flex-direction:row;justify-content:flex-start;align-items:center}natural-table-button a.mat-button{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:flex-start}natural-table-button a.mat-button .mat-button-wrapper{display:flex;flex-direction:row;align-items:center}natural-table-button a.mat-button .mat-button-wrapper>*{display:flex;flex-direction:row;align-items:center}natural-table-button a.mat-button .mat-button-wrapper>:not(:last-child){margin-right:5px}\n"] }]
|
|
27
|
+
}], ctorParameters: function () { return []; }, propDecorators: { queryParams: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}], queryParamsHandling: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], label: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], icon: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}], href: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}], navigate: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}], fragment: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}], preserveFragment: [{
|
|
42
|
+
type: Input
|
|
43
|
+
}], raised: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], color: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}] } });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3RhYmxlLWJ1dHRvbi90YWJsZS1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvdGFibGUtYnV0dG9uL3RhYmxlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBSWxFOzs7OztHQUtHO0FBT0gsTUFBTSxPQUFPLDJCQUEyQjtJQWNwQztRQWJnQixnQkFBVyxHQUV2QixFQUFFLENBQUM7UUFDUyx3QkFBbUIsR0FBd0IsRUFBRSxDQUFDO1FBSTlDLGFBQVEsR0FBNkIsRUFBRSxDQUFDO1FBRXhDLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixXQUFNLEdBQUcsS0FBSyxDQUFDO0lBR1QsQ0FBQzs7d0hBZGQsMkJBQTJCOzRHQUEzQiwyQkFBMkIsZ1RDaEJ4Qyw0NEZBb0ZBOzJGRHBFYSwyQkFBMkI7a0JBTnZDLFNBQVM7K0JBQ0ksc0JBQXNCLGlCQUdqQixpQkFBaUIsQ0FBQyxJQUFJOzBFQUdyQixXQUFXO3NCQUExQixLQUFLO2dCQUdVLG1CQUFtQjtzQkFBbEMsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsS0FBSztzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtRdWVyeVBhcmFtc0hhbmRsaW5nLCBSb3V0ZXJMaW5rfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtUaGVtZVBhbGV0dGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuXG4vKipcbiAqIEJ1dHRvbiB0aGF0IGZpdHMgd2VsbCBpbiBhIGA8bWF0LXRhYmxlPmAgYW5kIHN1cHBvcnQgZWl0aGVyXG4gKiByb3V0ZSBuYXZpZ2F0aW9uIHZpYSBgbmF2aWdhdGVgIG9yIGV4dGVybmFsIFVSTCB2aWEgYGhyZWZgLlxuICpcbiAqIEV4dGVybmFsIFVSTCB3aWxsIGFsd2F5cyBiZSBvcGVuZWQgaW4gbmV3IHRhYi5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYXR1cmFsLXRhYmxlLWJ1dHRvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFibGUtYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbFRhYmxlQnV0dG9uQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBwdWJsaWMgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgW2s6IHN0cmluZ106IGFueTtcbiAgICB9ID0ge307XG4gICAgQElucHV0KCkgcHVibGljIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6IFF1ZXJ5UGFyYW1zSGFuZGxpbmcgPSAnJztcbiAgICBASW5wdXQoKSBwdWJsaWMgbGFiZWw/OiBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpY29uPzogc3RyaW5nIHwgbnVsbDtcbiAgICBASW5wdXQoKSBwdWJsaWMgaHJlZj86IHN0cmluZyB8IG51bGw7XG4gICAgQElucHV0KCkgcHVibGljIG5hdmlnYXRlOiBSb3V0ZXJMaW5rWydyb3V0ZXJMaW5rJ10gPSBbXTtcbiAgICBASW5wdXQoKSBwdWJsaWMgZnJhZ21lbnQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHByZXNlcnZlRnJhZ21lbnQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgcmFpc2VkID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIGNvbG9yOiBUaGVtZVBhbGV0dGU7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7fVxufVxuIiwiPCEtLSBCZWNhdXNlIGRpcmVjdGl2ZXMgY2FuJ3QgYmUgYXBwbGllZCBjb25kaXRpb25hbGx5IChyb3V0ZXJMaW5rLCBtYXQtYnV0dG9uIGFuZCBtYXQtaWNvbi1idXR0b24pLCB3ZSBoYXZlIHRvIHVzZSBkaWZmZXJlbnQgZWxlbWVudHMgLS0+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhcmFpc2VkXCI+XG4gICAgPCEtLSBBcHAgcm91dGVkIGxpbmsgd2l0aCBsYWJlbC4uLiAtLT5cbiAgICA8YVxuICAgICAgICAqbmdJZj1cIiFocmVmICYmIGxhYmVsXCJcbiAgICAgICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cInF1ZXJ5UGFyYW1zXCJcbiAgICAgICAgW3JvdXRlckxpbmtdPVwibmF2aWdhdGVcIlxuICAgICAgICBbZnJhZ21lbnRdPVwiZnJhZ21lbnRcIlxuICAgICAgICBbcHJlc2VydmVGcmFnbWVudF09XCJwcmVzZXJ2ZUZyYWdtZW50XCJcbiAgICAgICAgbWF0LWJ1dHRvblxuICAgID5cbiAgICAgICAgPG5hdHVyYWwtaWNvbiAqbmdJZj1cImljb25cIiBbbmFtZV09XCJpY29uXCI+PC9uYXR1cmFsLWljb24+XG4gICAgICAgIDxzcGFuPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgIDwvYT5cblxuICAgIDwhLS0gLi4uIGFuZCB3aXRob3V0IGxhYmVsIC0tPlxuICAgIDxhXG4gICAgICAgICpuZ0lmPVwiIWhyZWYgJiYgIWxhYmVsXCJcbiAgICAgICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICAgICAgW3F1ZXJ5UGFyYW1zSGFuZGxpbmddPVwicXVlcnlQYXJhbXNIYW5kbGluZ1wiXG4gICAgICAgIFtxdWVyeVBhcmFtc109XCJxdWVyeVBhcmFtc1wiXG4gICAgICAgIFtyb3V0ZXJMaW5rXT1cIm5hdmlnYXRlXCJcbiAgICAgICAgW2ZyYWdtZW50XT1cImZyYWdtZW50XCJcbiAgICAgICAgW3ByZXNlcnZlRnJhZ21lbnRdPVwicHJlc2VydmVGcmFnbWVudFwiXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgID5cbiAgICAgICAgPG5hdHVyYWwtaWNvbiAqbmdJZj1cImljb25cIiBbbmFtZV09XCJpY29uXCI+PC9uYXR1cmFsLWljb24+XG4gICAgPC9hPlxuXG4gICAgPCEtLSBFeHRlcm5hbCBsaW5rIHdpdGggbGFiZWwuLi4gLS0+XG4gICAgPGEgKm5nSWY9XCJocmVmICYmIGxhYmVsXCIgW2F0dHIuaHJlZl09XCJocmVmXCIgW2NvbG9yXT1cImNvbG9yXCIgbWF0LWJ1dHRvbiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgPG5hdHVyYWwtaWNvbiAqbmdJZj1cImljb25cIiBbbmFtZV09XCJpY29uXCI+PC9uYXR1cmFsLWljb24+XG4gICAgICAgIDxzcGFuPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgIDwvYT5cblxuICAgIDwhLS0gLi4uIGFuZCB3aXRob3V0IGxhYmVsIC0tPlxuICAgIDxhICpuZ0lmPVwiaHJlZiAmJiAhbGFiZWxcIiBbYXR0ci5ocmVmXT1cImhyZWZcIiBbY29sb3JdPVwiY29sb3JcIiBtYXQtaWNvbi1idXR0b24gdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgIDxuYXR1cmFsLWljb24gKm5nSWY9XCJpY29uXCIgW25hbWVdPVwiaWNvblwiPjwvbmF0dXJhbC1pY29uPlxuICAgIDwvYT5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwicmFpc2VkXCI+XG4gICAgPCEtLSBBcHAgcm91dGVkIGxpbmsgd2l0aCBsYWJlbC4uLiAtLT5cbiAgICA8YVxuICAgICAgICAqbmdJZj1cIiFocmVmICYmIGxhYmVsXCJcbiAgICAgICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cInF1ZXJ5UGFyYW1zXCJcbiAgICAgICAgW3JvdXRlckxpbmtdPVwibmF2aWdhdGVcIlxuICAgICAgICBbZnJhZ21lbnRdPVwiZnJhZ21lbnRcIlxuICAgICAgICBbcHJlc2VydmVGcmFnbWVudF09XCJwcmVzZXJ2ZUZyYWdtZW50XCJcbiAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICA+XG4gICAgICAgIDxuYXR1cmFsLWljb24gKm5nSWY9XCJpY29uXCIgW25hbWVdPVwiaWNvblwiPjwvbmF0dXJhbC1pY29uPlxuICAgICAgICA8c3Bhbj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgICA8L2E+XG5cbiAgICA8IS0tIC4uLiBhbmQgd2l0aG91dCBsYWJlbCAtLT5cbiAgICA8YVxuICAgICAgICAqbmdJZj1cIiFocmVmICYmICFsYWJlbFwiXG4gICAgICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgICAgIFtxdWVyeVBhcmFtc0hhbmRsaW5nXT1cInF1ZXJ5UGFyYW1zSGFuZGxpbmdcIlxuICAgICAgICBbcXVlcnlQYXJhbXNdPVwicXVlcnlQYXJhbXNcIlxuICAgICAgICBbcm91dGVyTGlua109XCJuYXZpZ2F0ZVwiXG4gICAgICAgIFtmcmFnbWVudF09XCJmcmFnbWVudFwiXG4gICAgICAgIFtwcmVzZXJ2ZUZyYWdtZW50XT1cInByZXNlcnZlRnJhZ21lbnRcIlxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICA+XG4gICAgICAgIDxuYXR1cmFsLWljb24gKm5nSWY9XCJpY29uXCIgW25hbWVdPVwiaWNvblwiPjwvbmF0dXJhbC1pY29uPlxuICAgIDwvYT5cblxuICAgIDwhLS0gRXh0ZXJuYWwgbGluayB3aXRoIGxhYmVsLi4uIC0tPlxuICAgIDxhICpuZ0lmPVwiaHJlZiAmJiBsYWJlbFwiIFthdHRyLmhyZWZdPVwiaHJlZlwiIFtjb2xvcl09XCJjb2xvclwiIG1hdC1yYWlzZWQtYnV0dG9uIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICA8bmF0dXJhbC1pY29uICpuZ0lmPVwiaWNvblwiIFtuYW1lXT1cImljb25cIj48L25hdHVyYWwtaWNvbj5cbiAgICAgICAgPHNwYW4+e3sgbGFiZWwgfX08L3NwYW4+XG4gICAgPC9hPlxuXG4gICAgPCEtLSAuLi4gYW5kIHdpdGhvdXQgbGFiZWwgLS0+XG4gICAgPGEgKm5nSWY9XCJocmVmICYmICFsYWJlbFwiIFthdHRyLmhyZWZdPVwiaHJlZlwiIFtjb2xvcl09XCJjb2xvclwiIG1hdC1pY29uLWJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgPG5hdHVyYWwtaWNvbiAqbmdJZj1cImljb25cIiBbbmFtZV09XCJpY29uXCI+PC9uYXR1cmFsLWljb24+XG4gICAgPC9hPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -0,0 +1,21 @@
|
|
|
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 { NaturalIconModule } from '../icon/icon.module';
|
|
6
|
+
import { NaturalTableButtonComponent } from './table-button.component';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class NaturalTableButtonModule {
|
|
9
|
+
}
|
|
10
|
+
NaturalTableButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalTableButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
NaturalTableButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalTableButtonModule, declarations: [NaturalTableButtonComponent], imports: [CommonModule, RouterModule, MatButtonModule, NaturalIconModule], exports: [NaturalTableButtonComponent] });
|
|
12
|
+
NaturalTableButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalTableButtonModule, imports: [[CommonModule, RouterModule, MatButtonModule, NaturalIconModule]] });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalTableButtonModule, decorators: [{
|
|
14
|
+
type: NgModule,
|
|
15
|
+
args: [{
|
|
16
|
+
declarations: [NaturalTableButtonComponent],
|
|
17
|
+
imports: [CommonModule, RouterModule, MatButtonModule, NaturalIconModule],
|
|
18
|
+
exports: [NaturalTableButtonComponent],
|
|
19
|
+
}]
|
|
20
|
+
}] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYnV0dG9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3RhYmxlLWJ1dHRvbi90YWJsZS1idXR0b24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7O0FBT3JFLE1BQU0sT0FBTyx3QkFBd0I7O3FIQUF4Qix3QkFBd0I7c0hBQXhCLHdCQUF3QixpQkFKbEIsMkJBQTJCLGFBQ2hDLFlBQVksRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixhQUM5RCwyQkFBMkI7c0hBRTVCLHdCQUF3QixZQUh4QixDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixDQUFDOzJGQUdoRSx3QkFBd0I7a0JBTHBDLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQzNDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixDQUFDO29CQUN6RSxPQUFPLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztpQkFDekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQge1JvdXRlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7TmF0dXJhbEljb25Nb2R1bGV9IGZyb20gJy4uL2ljb24vaWNvbi5tb2R1bGUnO1xuaW1wb3J0IHtOYXR1cmFsVGFibGVCdXR0b25Db21wb25lbnR9IGZyb20gJy4vdGFibGUtYnV0dG9uLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbTmF0dXJhbFRhYmxlQnV0dG9uQ29tcG9uZW50XSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTmF0dXJhbEljb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtOYXR1cmFsVGFibGVCdXR0b25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsVGFibGVCdXR0b25Nb2R1bGUge31cbiJdfQ==
|