@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,55 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { NaturalConfirmComponent } from './confirm.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/material/dialog";
|
|
5
|
+
import * as i2 from "@angular/material/snack-bar";
|
|
6
|
+
export class NaturalAlertService {
|
|
7
|
+
constructor(dialog, snackBar) {
|
|
8
|
+
this.dialog = dialog;
|
|
9
|
+
this.snackBar = snackBar;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Show an informative message in a snack bar
|
|
13
|
+
*/
|
|
14
|
+
info(message, duration = 2500) {
|
|
15
|
+
return this.snackBar.open(message, undefined, {
|
|
16
|
+
duration: duration === null ? undefined : duration,
|
|
17
|
+
verticalPosition: 'top',
|
|
18
|
+
horizontalPosition: 'end',
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Show an error in a snack bar
|
|
23
|
+
*/
|
|
24
|
+
error(message, duration = 2500, action) {
|
|
25
|
+
return this.snackBar.open(message, action, {
|
|
26
|
+
duration: duration === null ? undefined : duration,
|
|
27
|
+
panelClass: ['snackbar-error'],
|
|
28
|
+
verticalPosition: 'top',
|
|
29
|
+
horizontalPosition: 'end',
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Show a simple confirmation dialog and returns true if user confirmed it
|
|
34
|
+
*/
|
|
35
|
+
confirm(title, message, confirmText, cancelText = $localize `Annuler`) {
|
|
36
|
+
const dialog = this.dialog.open(NaturalConfirmComponent, {
|
|
37
|
+
data: {
|
|
38
|
+
title: title,
|
|
39
|
+
message: message,
|
|
40
|
+
confirmText: confirmText,
|
|
41
|
+
cancelText: cancelText,
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
return dialog.afterClosed();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
NaturalAlertService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalAlertService, deps: [{ token: i1.MatDialog }, { token: i2.MatSnackBar }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
48
|
+
NaturalAlertService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalAlertService, providedIn: 'root' });
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalAlertService, decorators: [{
|
|
50
|
+
type: Injectable,
|
|
51
|
+
args: [{
|
|
52
|
+
providedIn: 'root',
|
|
53
|
+
}]
|
|
54
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.MatSnackBar }]; } });
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2FsZXJ0L2FsZXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUl6QyxPQUFPLEVBQUMsdUJBQXVCLEVBQXFCLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFLaEYsTUFBTSxPQUFPLG1CQUFtQjtJQUM1QixZQUFvQyxNQUFpQixFQUFtQixRQUFxQjtRQUF6RCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQW1CLGFBQVEsR0FBUixRQUFRLENBQWE7SUFBRyxDQUFDO0lBRWpHOztPQUVHO0lBQ0ksSUFBSSxDQUFDLE9BQWUsRUFBRSxXQUEwQixJQUFJO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRTtZQUMxQyxRQUFRLEVBQUUsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRO1lBQ2xELGdCQUFnQixFQUFFLEtBQUs7WUFDdkIsa0JBQWtCLEVBQUUsS0FBSztTQUM1QixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsT0FBZSxFQUFFLFdBQTBCLElBQUksRUFBRSxNQUFlO1FBQ3pFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRTtZQUN2QyxRQUFRLEVBQUUsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRO1lBQ2xELFVBQVUsRUFBRSxDQUFDLGdCQUFnQixDQUFDO1lBQzlCLGdCQUFnQixFQUFFLEtBQUs7WUFDdkIsa0JBQWtCLEVBQUUsS0FBSztTQUM1QixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxPQUFPLENBQ1YsS0FBYSxFQUNiLE9BQWUsRUFDZixXQUFtQixFQUNuQixhQUFxQixTQUFTLENBQUEsU0FBUztRQUV2QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBdUQsdUJBQXVCLEVBQUU7WUFDM0csSUFBSSxFQUFFO2dCQUNGLEtBQUssRUFBRSxLQUFLO2dCQUNaLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixXQUFXLEVBQUUsV0FBVztnQkFDeEIsVUFBVSxFQUFFLFVBQVU7YUFDekI7U0FDSixDQUFDLENBQUM7UUFFSCxPQUFPLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoQyxDQUFDOztnSEE3Q1EsbUJBQW1CO29IQUFuQixtQkFBbUIsY0FGaEIsTUFBTTsyRkFFVCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHtNYXRTbmFja0JhciwgTWF0U25hY2tCYXJSZWYsIFNpbXBsZVNuYWNrQmFyfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7TmF0dXJhbENvbmZpcm1Db21wb25lbnQsIE5hdHVyYWxDb25maXJtRGF0YX0gZnJvbSAnLi9jb25maXJtLmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxBbGVydFNlcnZpY2Uge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRpYWxvZzogTWF0RGlhbG9nLCBwcml2YXRlIHJlYWRvbmx5IHNuYWNrQmFyOiBNYXRTbmFja0Jhcikge31cblxuICAgIC8qKlxuICAgICAqIFNob3cgYW4gaW5mb3JtYXRpdmUgbWVzc2FnZSBpbiBhIHNuYWNrIGJhclxuICAgICAqL1xuICAgIHB1YmxpYyBpbmZvKG1lc3NhZ2U6IHN0cmluZywgZHVyYXRpb246IG51bWJlciB8IG51bGwgPSAyNTAwKTogTWF0U25hY2tCYXJSZWY8U2ltcGxlU25hY2tCYXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc25hY2tCYXIub3BlbihtZXNzYWdlLCB1bmRlZmluZWQsIHtcbiAgICAgICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbiA9PT0gbnVsbCA/IHVuZGVmaW5lZCA6IGR1cmF0aW9uLFxuICAgICAgICAgICAgdmVydGljYWxQb3NpdGlvbjogJ3RvcCcsXG4gICAgICAgICAgICBob3Jpem9udGFsUG9zaXRpb246ICdlbmQnLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IGFuIGVycm9yIGluIGEgc25hY2sgYmFyXG4gICAgICovXG4gICAgcHVibGljIGVycm9yKG1lc3NhZ2U6IHN0cmluZywgZHVyYXRpb246IG51bWJlciB8IG51bGwgPSAyNTAwLCBhY3Rpb24/OiBzdHJpbmcpOiBNYXRTbmFja0JhclJlZjxTaW1wbGVTbmFja0Jhcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zbmFja0Jhci5vcGVuKG1lc3NhZ2UsIGFjdGlvbiwge1xuICAgICAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uID09PSBudWxsID8gdW5kZWZpbmVkIDogZHVyYXRpb24sXG4gICAgICAgICAgICBwYW5lbENsYXNzOiBbJ3NuYWNrYmFyLWVycm9yJ10sXG4gICAgICAgICAgICB2ZXJ0aWNhbFBvc2l0aW9uOiAndG9wJyxcbiAgICAgICAgICAgIGhvcml6b250YWxQb3NpdGlvbjogJ2VuZCcsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3cgYSBzaW1wbGUgY29uZmlybWF0aW9uIGRpYWxvZyBhbmQgcmV0dXJucyB0cnVlIGlmIHVzZXIgY29uZmlybWVkIGl0XG4gICAgICovXG4gICAgcHVibGljIGNvbmZpcm0oXG4gICAgICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICAgICAgY29uZmlybVRleHQ6IHN0cmluZyxcbiAgICAgICAgY2FuY2VsVGV4dDogc3RyaW5nID0gJGxvY2FsaXplYEFubnVsZXJgLFxuICAgICk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmRpYWxvZy5vcGVuPE5hdHVyYWxDb25maXJtQ29tcG9uZW50LCBOYXR1cmFsQ29uZmlybURhdGEsIGJvb2xlYW4+KE5hdHVyYWxDb25maXJtQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgY29uZmlybVRleHQ6IGNvbmZpcm1UZXh0LFxuICAgICAgICAgICAgICAgIGNhbmNlbFRleHQ6IGNhbmNlbFRleHQsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZGlhbG9nLmFmdGVyQ2xvc2VkKCk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Component, Inject } from '@angular/core';
|
|
2
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/material/button";
|
|
5
|
+
import * as i2 from "@angular/material/dialog";
|
|
6
|
+
export class NaturalConfirmComponent {
|
|
7
|
+
constructor(data) {
|
|
8
|
+
this.data = data;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
NaturalConfirmComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalConfirmComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
12
|
+
NaturalConfirmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: NaturalConfirmComponent, selector: "ng-component", ngImport: i0, template: "<h2 mat-dialog-title>{{ data.title }}</h2>\n<mat-dialog-content\n ><p class=\"mat-body\">{{ data.message }}</p></mat-dialog-content\n>\n<mat-dialog-actions>\n <button [mat-dialog-close]=\"false\" mat-button>{{ data.cancelText }}</button>\n <button [mat-dialog-close]=\"true\" mat-stroked-button cdkFocusInitial>{{ data.confirmText }}</button>\n</mat-dialog-actions>\n", styles: ["mat-dialog-content{max-width:40em}mat-dialog-actions{display:flex;justify-content:flex-end}mat-dialog-actions>*{margin-left:10px}\n"], components: [{ type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalConfirmComponent, decorators: [{
|
|
14
|
+
type: Component,
|
|
15
|
+
args: [{ template: "<h2 mat-dialog-title>{{ data.title }}</h2>\n<mat-dialog-content\n ><p class=\"mat-body\">{{ data.message }}</p></mat-dialog-content\n>\n<mat-dialog-actions>\n <button [mat-dialog-close]=\"false\" mat-button>{{ data.cancelText }}</button>\n <button [mat-dialog-close]=\"true\" mat-stroked-button cdkFocusInitial>{{ data.confirmText }}</button>\n</mat-dialog-actions>\n", styles: ["mat-dialog-content{max-width:40em}mat-dialog-actions{display:flex;justify-content:flex-end}mat-dialog-actions>*{margin-left:10px}\n"] }]
|
|
16
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
17
|
+
type: Inject,
|
|
18
|
+
args: [MAT_DIALOG_DATA]
|
|
19
|
+
}] }]; } });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9hbGVydC9jb25maXJtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2FsZXJ0L2NvbmZpcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDOzs7O0FBYXpELE1BQU0sT0FBTyx1QkFBdUI7SUFDaEMsWUFBbUQsSUFBd0I7UUFBeEIsU0FBSSxHQUFKLElBQUksQ0FBb0I7SUFBRyxDQUFDOztvSEFEdEUsdUJBQXVCLGtCQUNMLGVBQWU7d0dBRGpDLHVCQUF1QixvRENkcEMsMFhBUUE7MkZETWEsdUJBQXVCO2tCQUpuQyxTQUFTOzs7MEJBS2MsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01BVF9ESUFMT0dfREFUQX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuZXhwb3J0IGludGVyZmFjZSBOYXR1cmFsQ29uZmlybURhdGEge1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIGNvbmZpcm1UZXh0OiBzdHJpbmc7XG4gICAgY2FuY2VsVGV4dDogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29uZmlybS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29uZmlybS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsQ29uZmlybUNvbXBvbmVudCB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogTmF0dXJhbENvbmZpcm1EYXRhKSB7fVxufVxuIiwiPGgyIG1hdC1kaWFsb2ctdGl0bGU+e3sgZGF0YS50aXRsZSB9fTwvaDI+XG48bWF0LWRpYWxvZy1jb250ZW50XG4gICAgPjxwIGNsYXNzPVwibWF0LWJvZHlcIj57eyBkYXRhLm1lc3NhZ2UgfX08L3A+PC9tYXQtZGlhbG9nLWNvbnRlbnRcbj5cbjxtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgPGJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJmYWxzZVwiIG1hdC1idXR0b24+e3sgZGF0YS5jYW5jZWxUZXh0IH19PC9idXR0b24+XG4gICAgPGJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJ0cnVlXCIgbWF0LXN0cm9rZWQtYnV0dG9uIGNka0ZvY3VzSW5pdGlhbD57eyBkYXRhLmNvbmZpcm1UZXh0IH19PC9idXR0b24+XG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==
|
package/{esm2015/lib/modules/alert/public-api.js → esm2020/lib/modules/alert/public-api.mjs}
RENAMED
|
File without changes
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { AvatarComponent } from './component/avatar.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
const declarations = [AvatarComponent];
|
|
6
|
+
export class NaturalAvatarModule {
|
|
7
|
+
}
|
|
8
|
+
NaturalAvatarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalAvatarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
NaturalAvatarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalAvatarModule, declarations: [AvatarComponent], imports: [CommonModule], exports: [AvatarComponent] });
|
|
10
|
+
NaturalAvatarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalAvatarModule, imports: [[CommonModule]] });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalAvatarModule, decorators: [{
|
|
12
|
+
type: NgModule,
|
|
13
|
+
args: [{
|
|
14
|
+
imports: [CommonModule],
|
|
15
|
+
declarations: declarations,
|
|
16
|
+
exports: declarations,
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2F2YXRhci9hdmF0YXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQzs7QUFFN0QsTUFBTSxZQUFZLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQU92QyxNQUFNLE9BQU8sbUJBQW1COztnSEFBbkIsbUJBQW1CO2lIQUFuQixtQkFBbUIsaUJBUFYsZUFBZSxhQUd2QixZQUFZLGFBSEosZUFBZTtpSEFPeEIsbUJBQW1CLFlBSm5CLENBQUMsWUFBWSxDQUFDOzJGQUlkLG1CQUFtQjtrQkFML0IsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFlBQVksRUFBRSxZQUFZO29CQUMxQixPQUFPLEVBQUUsWUFBWTtpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtBdmF0YXJDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50L2F2YXRhci5jb21wb25lbnQnO1xuXG5jb25zdCBkZWNsYXJhdGlvbnMgPSBbQXZhdGFyQ29tcG9uZW50XTtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IGRlY2xhcmF0aW9ucyxcbiAgICBleHBvcnRzOiBkZWNsYXJhdGlvbnMsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxBdmF0YXJNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../service/avatar.service";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
/**
|
|
6
|
+
* Show an avatar from different sources
|
|
7
|
+
*/
|
|
8
|
+
export class AvatarComponent {
|
|
9
|
+
constructor(avatarService) {
|
|
10
|
+
this.avatarService = avatarService;
|
|
11
|
+
this.size = 50;
|
|
12
|
+
this.textSizeRatio = 3;
|
|
13
|
+
this.fgColor = '#FFF';
|
|
14
|
+
this.borderRadius = '';
|
|
15
|
+
this.textMaximumLength = 0;
|
|
16
|
+
this.avatarSrc = null;
|
|
17
|
+
this.avatarText = null;
|
|
18
|
+
this.avatarStyle = {};
|
|
19
|
+
this.hostStyle = {};
|
|
20
|
+
this.currentIndex = -1;
|
|
21
|
+
this.sources = [];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Detect inputs change
|
|
25
|
+
*/
|
|
26
|
+
ngOnChanges(changes) {
|
|
27
|
+
this.sources.length = 0;
|
|
28
|
+
for (const [propName, creator] of this.avatarService.getCreators()) {
|
|
29
|
+
if (!changes[propName]) {
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
const currentValue = changes[propName].currentValue;
|
|
33
|
+
if (currentValue && typeof currentValue === 'string') {
|
|
34
|
+
this.sources.push(new creator(currentValue));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
// reinitialize the avatar component when a source property value has changed
|
|
38
|
+
// the fallback system must be re-invoked with the new values.
|
|
39
|
+
this.initializeAvatar();
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Fetch avatar source
|
|
43
|
+
*/
|
|
44
|
+
tryNextSource() {
|
|
45
|
+
const previousSource = this.sources[this.currentIndex];
|
|
46
|
+
if (previousSource) {
|
|
47
|
+
this.avatarService.markSourceAsFailed(previousSource);
|
|
48
|
+
}
|
|
49
|
+
const source = this.findNextSource();
|
|
50
|
+
if (!source) {
|
|
51
|
+
this.clearAvatar();
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (source.isTextual()) {
|
|
55
|
+
this.buildTextAvatar(source);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
this.buildImageAvatar(source);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
findNextSource() {
|
|
62
|
+
while (++this.currentIndex < this.sources.length) {
|
|
63
|
+
const source = this.sources[this.currentIndex];
|
|
64
|
+
if (source && !this.avatarService.sourceHasFailedBefore(source)) {
|
|
65
|
+
return source;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Initialize the avatar component and its fallback system
|
|
72
|
+
*/
|
|
73
|
+
initializeAvatar() {
|
|
74
|
+
this.currentIndex = -1;
|
|
75
|
+
if (this.sources.length > 0) {
|
|
76
|
+
this.tryNextSource();
|
|
77
|
+
this.hostStyle = {
|
|
78
|
+
width: this.size + 'px',
|
|
79
|
+
height: this.size + 'px',
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
clearAvatar() {
|
|
84
|
+
this.avatarSrc = null;
|
|
85
|
+
this.avatarText = null;
|
|
86
|
+
this.avatarStyle = {};
|
|
87
|
+
}
|
|
88
|
+
buildTextAvatar(avatarSource) {
|
|
89
|
+
this.clearAvatar();
|
|
90
|
+
this.avatarText = avatarSource.getAvatar(+this.textMaximumLength);
|
|
91
|
+
this.avatarStyle = this.getTextualStyle(avatarSource.getValue());
|
|
92
|
+
}
|
|
93
|
+
buildImageAvatar(avatarSource) {
|
|
94
|
+
this.clearAvatar();
|
|
95
|
+
this.avatarSrc = avatarSource.getAvatar(+this.size);
|
|
96
|
+
this.avatarStyle = this.getImageStyle();
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Returns initials style
|
|
100
|
+
*/
|
|
101
|
+
getTextualStyle(avatarValue) {
|
|
102
|
+
return {
|
|
103
|
+
textAlign: 'center',
|
|
104
|
+
borderRadius: this.borderRadius || '100%',
|
|
105
|
+
textTransform: 'uppercase',
|
|
106
|
+
color: this.fgColor,
|
|
107
|
+
backgroundColor: this.bgColor ? this.bgColor : this.avatarService.getRandomColor(avatarValue),
|
|
108
|
+
font: Math.floor(+this.size / this.textSizeRatio) + 'px Helvetica, Arial, sans-serif',
|
|
109
|
+
lineHeight: this.size + 'px',
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Returns image style
|
|
114
|
+
*/
|
|
115
|
+
getImageStyle() {
|
|
116
|
+
return {
|
|
117
|
+
maxWidth: '100%',
|
|
118
|
+
borderRadius: this.borderRadius || '100%',
|
|
119
|
+
width: this.size + 'px',
|
|
120
|
+
height: this.size + 'px',
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
AvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: AvatarComponent, deps: [{ token: i1.AvatarService }], target: i0.ɵɵFactoryTarget.Component });
|
|
125
|
+
AvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: AvatarComponent, selector: "natural-avatar", inputs: { image: "image", initials: "initials", gravatar: "gravatar", size: "size", textSizeRatio: "textSizeRatio", bgColor: "bgColor", fgColor: "fgColor", borderRadius: "borderRadius", textMaximumLength: "textMaximumLength" }, usesOnChanges: true, ngImport: i0, template: `
|
|
126
|
+
<div class="avatar-container" [ngStyle]="hostStyle">
|
|
127
|
+
<img
|
|
128
|
+
*ngIf="avatarSrc"
|
|
129
|
+
[src]="avatarSrc"
|
|
130
|
+
[width]="size"
|
|
131
|
+
[height]="size"
|
|
132
|
+
[ngStyle]="avatarStyle"
|
|
133
|
+
(error)="tryNextSource()"
|
|
134
|
+
class="avatar-content"
|
|
135
|
+
loading="lazy"
|
|
136
|
+
/>
|
|
137
|
+
<div *ngIf="avatarText" class="avatar-content" [ngStyle]="avatarStyle">
|
|
138
|
+
{{ avatarText }}
|
|
139
|
+
</div>
|
|
140
|
+
</div>
|
|
141
|
+
`, isInline: true, styles: [":host{border-radius:50%}\n"], directives: [{ type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
142
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: AvatarComponent, decorators: [{
|
|
143
|
+
type: Component,
|
|
144
|
+
args: [{
|
|
145
|
+
selector: 'natural-avatar',
|
|
146
|
+
styles: [
|
|
147
|
+
`
|
|
148
|
+
:host {
|
|
149
|
+
border-radius: 50%;
|
|
150
|
+
}
|
|
151
|
+
`,
|
|
152
|
+
],
|
|
153
|
+
template: `
|
|
154
|
+
<div class="avatar-container" [ngStyle]="hostStyle">
|
|
155
|
+
<img
|
|
156
|
+
*ngIf="avatarSrc"
|
|
157
|
+
[src]="avatarSrc"
|
|
158
|
+
[width]="size"
|
|
159
|
+
[height]="size"
|
|
160
|
+
[ngStyle]="avatarStyle"
|
|
161
|
+
(error)="tryNextSource()"
|
|
162
|
+
class="avatar-content"
|
|
163
|
+
loading="lazy"
|
|
164
|
+
/>
|
|
165
|
+
<div *ngIf="avatarText" class="avatar-content" [ngStyle]="avatarStyle">
|
|
166
|
+
{{ avatarText }}
|
|
167
|
+
</div>
|
|
168
|
+
</div>
|
|
169
|
+
`,
|
|
170
|
+
}]
|
|
171
|
+
}], ctorParameters: function () { return [{ type: i1.AvatarService }]; }, propDecorators: { image: [{
|
|
172
|
+
type: Input
|
|
173
|
+
}], initials: [{
|
|
174
|
+
type: Input
|
|
175
|
+
}], gravatar: [{
|
|
176
|
+
type: Input
|
|
177
|
+
}], size: [{
|
|
178
|
+
type: Input
|
|
179
|
+
}], textSizeRatio: [{
|
|
180
|
+
type: Input
|
|
181
|
+
}], bgColor: [{
|
|
182
|
+
type: Input
|
|
183
|
+
}], fgColor: [{
|
|
184
|
+
type: Input
|
|
185
|
+
}], borderRadius: [{
|
|
186
|
+
type: Input
|
|
187
|
+
}], textMaximumLength: [{
|
|
188
|
+
type: Input
|
|
189
|
+
}] } });
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2F2YXRhci9jb21wb25lbnQvYXZhdGFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBMkIsTUFBTSxlQUFlLENBQUM7Ozs7QUFPekU7O0dBRUc7QUE0QkgsTUFBTSxPQUFPLGVBQWU7SUFvQnhCLFlBQW9DLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBZmhELFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUVsQixZQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ2pCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLHNCQUFpQixHQUFHLENBQUMsQ0FBQztRQUUvQixjQUFTLEdBQWtCLElBQUksQ0FBQztRQUNoQyxlQUFVLEdBQWtCLElBQUksQ0FBQztRQUNqQyxnQkFBVyxHQUFVLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQVUsRUFBRSxDQUFDO1FBRXJCLGlCQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEIsWUFBTyxHQUFhLEVBQUUsQ0FBQztJQUVvQyxDQUFDO0lBRXBFOztPQUVHO0lBQ0ksV0FBVyxDQUFDLE9BQXNCO1FBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUN4QixLQUFLLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNoRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNwQixTQUFTO2FBQ1o7WUFFRCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDO1lBQ3BELElBQUksWUFBWSxJQUFJLE9BQU8sWUFBWSxLQUFLLFFBQVEsRUFBRTtnQkFDbEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQzthQUNoRDtTQUNKO1FBRUQsNkVBQTZFO1FBQzdFLDhEQUE4RDtRQUM5RCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxhQUFhO1FBQ2hCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZELElBQUksY0FBYyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDekQ7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixPQUFPO1NBQ1Y7UUFFRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwQixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2hDO2FBQU07WUFDSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDakM7SUFDTCxDQUFDO0lBRU8sY0FBYztRQUNsQixPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUM5QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMvQyxJQUFJLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzdELE9BQU8sTUFBTSxDQUFDO2FBQ2pCO1NBQ0o7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0I7UUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRztnQkFDYixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJO2dCQUN2QixNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJO2FBQzNCLENBQUM7U0FDTDtJQUNMLENBQUM7SUFFTyxXQUFXO1FBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLGVBQWUsQ0FBQyxZQUFvQjtRQUN4QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxZQUFvQjtRQUN6QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNLLGVBQWUsQ0FBQyxXQUFtQjtRQUN2QyxPQUFPO1lBQ0gsU0FBUyxFQUFFLFFBQVE7WUFDbkIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksTUFBTTtZQUN6QyxhQUFhLEVBQUUsV0FBVztZQUMxQixLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDbkIsZUFBZSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQztZQUM3RixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLGlDQUFpQztZQUNyRixVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJO1NBQy9CLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSyxhQUFhO1FBQ2pCLE9BQU87WUFDSCxRQUFRLEVBQUUsTUFBTTtZQUNoQixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksSUFBSSxNQUFNO1lBQ3pDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUk7WUFDdkIsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSTtTQUMzQixDQUFDO0lBQ04sQ0FBQzs7NEdBcklRLGVBQWU7Z0dBQWYsZUFBZSwrU0FsQmQ7Ozs7Ozs7Ozs7Ozs7Ozs7S0FnQlQ7MkZBRVEsZUFBZTtrQkEzQjNCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsTUFBTSxFQUFFO3dCQUNKOzs7O1NBSUM7cUJBQ0o7b0JBQ0QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7O0tBZ0JUO2lCQUNKO29HQUVtQixLQUFLO3NCQUFwQixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFFVSxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ1UsaUJBQWlCO3NCQUFoQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1NvdXJjZX0gZnJvbSAnLi4vc291cmNlcy9zb3VyY2UnO1xuaW1wb3J0IHtBdmF0YXJTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL2F2YXRhci5zZXJ2aWNlJztcblxudHlwZSBTdHlsZSA9IFBhcnRpYWw8Q1NTU3R5bGVEZWNsYXJhdGlvbj47XG5cbi8qKlxuICogU2hvdyBhbiBhdmF0YXIgZnJvbSBkaWZmZXJlbnQgc291cmNlc1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25hdHVyYWwtYXZhdGFyJyxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgYCxcbiAgICBdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY29udGFpbmVyXCIgW25nU3R5bGVdPVwiaG9zdFN0eWxlXCI+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJhdmF0YXJTcmNcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwiYXZhdGFyU3JjXCJcbiAgICAgICAgICAgICAgICBbd2lkdGhdPVwic2l6ZVwiXG4gICAgICAgICAgICAgICAgW2hlaWdodF09XCJzaXplXCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJhdmF0YXJTdHlsZVwiXG4gICAgICAgICAgICAgICAgKGVycm9yKT1cInRyeU5leHRTb3VyY2UoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhdmF0YXItY29udGVudFwiXG4gICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhdmF0YXJUZXh0XCIgY2xhc3M9XCJhdmF0YXItY29udGVudFwiIFtuZ1N0eWxlXT1cImF2YXRhclN0eWxlXCI+XG4gICAgICAgICAgICAgICAge3sgYXZhdGFyVGV4dCB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIGAsXG59KVxuZXhwb3J0IGNsYXNzIEF2YXRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgcHVibGljIGltYWdlPzogc3RyaW5nIHwgbnVsbDtcbiAgICBASW5wdXQoKSBwdWJsaWMgaW5pdGlhbHM/OiBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncmF2YXRhcj86IHN0cmluZyB8IG51bGw7XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgc2l6ZSA9IDUwO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0ZXh0U2l6ZVJhdGlvID0gMztcbiAgICBASW5wdXQoKSBwdWJsaWMgYmdDb2xvcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmZ0NvbG9yID0gJyNGRkYnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBib3JkZXJSYWRpdXMgPSAnJztcbiAgICBASW5wdXQoKSBwdWJsaWMgdGV4dE1heGltdW1MZW5ndGggPSAwO1xuXG4gICAgcHVibGljIGF2YXRhclNyYzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGF2YXRhclRleHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyBhdmF0YXJTdHlsZTogU3R5bGUgPSB7fTtcbiAgICBwdWJsaWMgaG9zdFN0eWxlOiBTdHlsZSA9IHt9O1xuXG4gICAgcHJpdmF0ZSBjdXJyZW50SW5kZXggPSAtMTtcbiAgICBwcml2YXRlIHNvdXJjZXM6IFNvdXJjZVtdID0gW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhdmF0YXJTZXJ2aWNlOiBBdmF0YXJTZXJ2aWNlKSB7fVxuXG4gICAgLyoqXG4gICAgICogRGV0ZWN0IGlucHV0cyBjaGFuZ2VcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNvdXJjZXMubGVuZ3RoID0gMDtcbiAgICAgICAgZm9yIChjb25zdCBbcHJvcE5hbWUsIGNyZWF0b3JdIG9mIHRoaXMuYXZhdGFyU2VydmljZS5nZXRDcmVhdG9ycygpKSB7XG4gICAgICAgICAgICBpZiAoIWNoYW5nZXNbcHJvcE5hbWVdKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGNoYW5nZXNbcHJvcE5hbWVdLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50VmFsdWUgJiYgdHlwZW9mIGN1cnJlbnRWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNvdXJjZXMucHVzaChuZXcgY3JlYXRvcihjdXJyZW50VmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJlaW5pdGlhbGl6ZSB0aGUgYXZhdGFyIGNvbXBvbmVudCB3aGVuIGEgc291cmNlIHByb3BlcnR5IHZhbHVlIGhhcyBjaGFuZ2VkXG4gICAgICAgIC8vIHRoZSBmYWxsYmFjayBzeXN0ZW0gbXVzdCBiZSByZS1pbnZva2VkIHdpdGggdGhlIG5ldyB2YWx1ZXMuXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUF2YXRhcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZldGNoIGF2YXRhciBzb3VyY2VcbiAgICAgKi9cbiAgICBwdWJsaWMgdHJ5TmV4dFNvdXJjZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcHJldmlvdXNTb3VyY2UgPSB0aGlzLnNvdXJjZXNbdGhpcy5jdXJyZW50SW5kZXhdO1xuICAgICAgICBpZiAocHJldmlvdXNTb3VyY2UpIHtcbiAgICAgICAgICAgIHRoaXMuYXZhdGFyU2VydmljZS5tYXJrU291cmNlQXNGYWlsZWQocHJldmlvdXNTb3VyY2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc291cmNlID0gdGhpcy5maW5kTmV4dFNvdXJjZSgpO1xuICAgICAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgICAgICAgdGhpcy5jbGVhckF2YXRhcigpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNvdXJjZS5pc1RleHR1YWwoKSkge1xuICAgICAgICAgICAgdGhpcy5idWlsZFRleHRBdmF0YXIoc291cmNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYnVpbGRJbWFnZUF2YXRhcihzb3VyY2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kTmV4dFNvdXJjZSgpOiBTb3VyY2UgfCBudWxsIHtcbiAgICAgICAgd2hpbGUgKCsrdGhpcy5jdXJyZW50SW5kZXggPCB0aGlzLnNvdXJjZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBzb3VyY2UgPSB0aGlzLnNvdXJjZXNbdGhpcy5jdXJyZW50SW5kZXhdO1xuICAgICAgICAgICAgaWYgKHNvdXJjZSAmJiAhdGhpcy5hdmF0YXJTZXJ2aWNlLnNvdXJjZUhhc0ZhaWxlZEJlZm9yZShzb3VyY2UpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemUgdGhlIGF2YXRhciBjb21wb25lbnQgYW5kIGl0cyBmYWxsYmFjayBzeXN0ZW1cbiAgICAgKi9cbiAgICBwcml2YXRlIGluaXRpYWxpemVBdmF0YXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gLTE7XG4gICAgICAgIGlmICh0aGlzLnNvdXJjZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy50cnlOZXh0U291cmNlKCk7XG4gICAgICAgICAgICB0aGlzLmhvc3RTdHlsZSA9IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogdGhpcy5zaXplICsgJ3B4JyxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHRoaXMuc2l6ZSArICdweCcsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhckF2YXRhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hdmF0YXJTcmMgPSBudWxsO1xuICAgICAgICB0aGlzLmF2YXRhclRleHQgPSBudWxsO1xuICAgICAgICB0aGlzLmF2YXRhclN0eWxlID0ge307XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBidWlsZFRleHRBdmF0YXIoYXZhdGFyU291cmNlOiBTb3VyY2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhckF2YXRhcigpO1xuICAgICAgICB0aGlzLmF2YXRhclRleHQgPSBhdmF0YXJTb3VyY2UuZ2V0QXZhdGFyKCt0aGlzLnRleHRNYXhpbXVtTGVuZ3RoKTtcbiAgICAgICAgdGhpcy5hdmF0YXJTdHlsZSA9IHRoaXMuZ2V0VGV4dHVhbFN0eWxlKGF2YXRhclNvdXJjZS5nZXRWYWx1ZSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkSW1hZ2VBdmF0YXIoYXZhdGFyU291cmNlOiBTb3VyY2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhckF2YXRhcigpO1xuICAgICAgICB0aGlzLmF2YXRhclNyYyA9IGF2YXRhclNvdXJjZS5nZXRBdmF0YXIoK3RoaXMuc2l6ZSk7XG4gICAgICAgIHRoaXMuYXZhdGFyU3R5bGUgPSB0aGlzLmdldEltYWdlU3R5bGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGluaXRpYWxzIHN0eWxlXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRUZXh0dWFsU3R5bGUoYXZhdGFyVmFsdWU6IHN0cmluZyk6IFN0eWxlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6IHRoaXMuYm9yZGVyUmFkaXVzIHx8ICcxMDAlJyxcbiAgICAgICAgICAgIHRleHRUcmFuc2Zvcm06ICd1cHBlcmNhc2UnLFxuICAgICAgICAgICAgY29sb3I6IHRoaXMuZmdDb2xvcixcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5iZ0NvbG9yID8gdGhpcy5iZ0NvbG9yIDogdGhpcy5hdmF0YXJTZXJ2aWNlLmdldFJhbmRvbUNvbG9yKGF2YXRhclZhbHVlKSxcbiAgICAgICAgICAgIGZvbnQ6IE1hdGguZmxvb3IoK3RoaXMuc2l6ZSAvIHRoaXMudGV4dFNpemVSYXRpbykgKyAncHggSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZicsXG4gICAgICAgICAgICBsaW5lSGVpZ2h0OiB0aGlzLnNpemUgKyAncHgnLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgaW1hZ2Ugc3R5bGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldEltYWdlU3R5bGUoKTogU3R5bGUge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czogdGhpcy5ib3JkZXJSYWRpdXMgfHwgJzEwMCUnLFxuICAgICAgICAgICAgd2lkdGg6IHRoaXMuc2l6ZSArICdweCcsXG4gICAgICAgICAgICBoZWlnaHQ6IHRoaXMuc2l6ZSArICdweCcsXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
|
package/{esm2015/lib/modules/avatar/public-api.js → esm2020/lib/modules/avatar/public-api.mjs}
RENAMED
|
File without changes
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Gravatar } from '../sources/gravatar';
|
|
3
|
+
import { Initials } from '../sources/initials';
|
|
4
|
+
import { Image } from '../sources/image';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* Provides utilities methods related to Avatar component
|
|
8
|
+
*/
|
|
9
|
+
export class AvatarService {
|
|
10
|
+
constructor() {
|
|
11
|
+
/**
|
|
12
|
+
* Ordered pairs of possible sources. First in list is the highest priority.
|
|
13
|
+
* And key must match one the input of AvatarComponent.
|
|
14
|
+
*/
|
|
15
|
+
this.sourceCreators = new Map([
|
|
16
|
+
['gravatar', Gravatar],
|
|
17
|
+
['image', Image],
|
|
18
|
+
['initials', Initials],
|
|
19
|
+
]);
|
|
20
|
+
this.avatarColors = [
|
|
21
|
+
'#1abc9c',
|
|
22
|
+
'#3498db',
|
|
23
|
+
'#f1c40f',
|
|
24
|
+
'#8e44ad',
|
|
25
|
+
'#e74c3c',
|
|
26
|
+
'#d35400',
|
|
27
|
+
'#2c3e50',
|
|
28
|
+
'#7f8c8d',
|
|
29
|
+
];
|
|
30
|
+
this.failedSources = new Map();
|
|
31
|
+
}
|
|
32
|
+
getRandomColor(avatarText) {
|
|
33
|
+
if (!avatarText) {
|
|
34
|
+
return 'transparent';
|
|
35
|
+
}
|
|
36
|
+
const asciiCodeSum = this.calculateAsciiCode(avatarText);
|
|
37
|
+
return this.avatarColors[asciiCodeSum % this.avatarColors.length];
|
|
38
|
+
}
|
|
39
|
+
getCreators() {
|
|
40
|
+
return this.sourceCreators.entries();
|
|
41
|
+
}
|
|
42
|
+
getSourceKey(source) {
|
|
43
|
+
return source.constructor.name + '-' + source.getValue();
|
|
44
|
+
}
|
|
45
|
+
sourceHasFailedBefore(source) {
|
|
46
|
+
return this.failedSources.has(this.getSourceKey(source));
|
|
47
|
+
}
|
|
48
|
+
markSourceAsFailed(source) {
|
|
49
|
+
this.failedSources.set(this.getSourceKey(source), source);
|
|
50
|
+
}
|
|
51
|
+
calculateAsciiCode(value) {
|
|
52
|
+
return value
|
|
53
|
+
.split('')
|
|
54
|
+
.map(letter => letter.charCodeAt(0))
|
|
55
|
+
.reduce((previous, current) => previous + current);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
AvatarService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: AvatarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
59
|
+
AvatarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: AvatarService, providedIn: 'root' });
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: AvatarService, decorators: [{
|
|
61
|
+
type: Injectable,
|
|
62
|
+
args: [{
|
|
63
|
+
providedIn: 'root',
|
|
64
|
+
}]
|
|
65
|
+
}], ctorParameters: function () { return []; } });
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9hdmF0YXIvc2VydmljZS9hdmF0YXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDN0MsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDOztBQUd2Qzs7R0FFRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBd0J0QjtRQXZCQTs7O1dBR0c7UUFDYyxtQkFBYyxHQUFHLElBQUksR0FBRyxDQUF1QztZQUM1RSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUM7WUFDdEIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO1lBQ2hCLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQztTQUN6QixDQUFDLENBQUM7UUFFYyxpQkFBWSxHQUFHO1lBQzVCLFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1NBQ1osQ0FBQztRQUVlLGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFFckMsQ0FBQztJQUVoQixjQUFjLENBQUMsVUFBa0I7UUFDcEMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNiLE9BQU8sYUFBYSxDQUFDO1NBQ3hCO1FBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXpELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sV0FBVztRQUNkLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRU8sWUFBWSxDQUFDLE1BQWM7UUFDL0IsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdELENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxNQUFjO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxNQUFjO1FBQ3BDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEtBQWE7UUFDcEMsT0FBTyxLQUFLO2FBQ1AsS0FBSyxDQUFDLEVBQUUsQ0FBQzthQUNULEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbkMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQzNELENBQUM7OzBHQXhEUSxhQUFhOzhHQUFiLGFBQWEsY0FGVixNQUFNOzJGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U291cmNlLCBTb3VyY2VDcmVhdG9yfSBmcm9tICcuLi9zb3VyY2VzL3NvdXJjZSc7XG5pbXBvcnQge0dyYXZhdGFyfSBmcm9tICcuLi9zb3VyY2VzL2dyYXZhdGFyJztcbmltcG9ydCB7SW5pdGlhbHN9IGZyb20gJy4uL3NvdXJjZXMvaW5pdGlhbHMnO1xuaW1wb3J0IHtJbWFnZX0gZnJvbSAnLi4vc291cmNlcy9pbWFnZSc7XG5pbXBvcnQge0F2YXRhckNvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50L2F2YXRhci5jb21wb25lbnQnO1xuXG4vKipcbiAqIFByb3ZpZGVzIHV0aWxpdGllcyBtZXRob2RzIHJlbGF0ZWQgdG8gQXZhdGFyIGNvbXBvbmVudFxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBdmF0YXJTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiBPcmRlcmVkIHBhaXJzIG9mIHBvc3NpYmxlIHNvdXJjZXMuIEZpcnN0IGluIGxpc3QgaXMgdGhlIGhpZ2hlc3QgcHJpb3JpdHkuXG4gICAgICogQW5kIGtleSBtdXN0IG1hdGNoIG9uZSB0aGUgaW5wdXQgb2YgQXZhdGFyQ29tcG9uZW50LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc291cmNlQ3JlYXRvcnMgPSBuZXcgTWFwPGtleW9mIEF2YXRhckNvbXBvbmVudCwgU291cmNlQ3JlYXRvcj4oW1xuICAgICAgICBbJ2dyYXZhdGFyJywgR3JhdmF0YXJdLFxuICAgICAgICBbJ2ltYWdlJywgSW1hZ2VdLFxuICAgICAgICBbJ2luaXRpYWxzJywgSW5pdGlhbHNdLFxuICAgIF0pO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBhdmF0YXJDb2xvcnMgPSBbXG4gICAgICAgICcjMWFiYzljJyxcbiAgICAgICAgJyMzNDk4ZGInLFxuICAgICAgICAnI2YxYzQwZicsXG4gICAgICAgICcjOGU0NGFkJyxcbiAgICAgICAgJyNlNzRjM2MnLFxuICAgICAgICAnI2QzNTQwMCcsXG4gICAgICAgICcjMmMzZTUwJyxcbiAgICAgICAgJyM3ZjhjOGQnLFxuICAgIF07XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGZhaWxlZFNvdXJjZXMgPSBuZXcgTWFwPHN0cmluZywgU291cmNlPigpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge31cblxuICAgIHB1YmxpYyBnZXRSYW5kb21Db2xvcihhdmF0YXJUZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWF2YXRhclRleHQpIHtcbiAgICAgICAgICAgIHJldHVybiAndHJhbnNwYXJlbnQnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFzY2lpQ29kZVN1bSA9IHRoaXMuY2FsY3VsYXRlQXNjaWlDb2RlKGF2YXRhclRleHQpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmF2YXRhckNvbG9yc1thc2NpaUNvZGVTdW0gJSB0aGlzLmF2YXRhckNvbG9ycy5sZW5ndGhdO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDcmVhdG9ycygpOiBJdGVyYWJsZUl0ZXJhdG9yPFtrZXlvZiBBdmF0YXJDb21wb25lbnQsIFNvdXJjZUNyZWF0b3JdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNvdXJjZUNyZWF0b3JzLmVudHJpZXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNvdXJjZUtleShzb3VyY2U6IFNvdXJjZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBzb3VyY2UuY29uc3RydWN0b3IubmFtZSArICctJyArIHNvdXJjZS5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzb3VyY2VIYXNGYWlsZWRCZWZvcmUoc291cmNlOiBTb3VyY2UpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmFpbGVkU291cmNlcy5oYXModGhpcy5nZXRTb3VyY2VLZXkoc291cmNlKSk7XG4gICAgfVxuXG4gICAgcHVibGljIG1hcmtTb3VyY2VBc0ZhaWxlZChzb3VyY2U6IFNvdXJjZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmZhaWxlZFNvdXJjZXMuc2V0KHRoaXMuZ2V0U291cmNlS2V5KHNvdXJjZSksIHNvdXJjZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVBc2NpaUNvZGUodmFsdWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAgICAgLnNwbGl0KCcnKVxuICAgICAgICAgICAgLm1hcChsZXR0ZXIgPT4gbGV0dGVyLmNoYXJDb2RlQXQoMCkpXG4gICAgICAgICAgICAucmVkdWNlKChwcmV2aW91cywgY3VycmVudCkgPT4gcHJldmlvdXMgKyBjdXJyZW50KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Md5 } from 'ts-md5';
|
|
2
|
+
import { Source } from './source';
|
|
3
|
+
function isRetina() {
|
|
4
|
+
// We cannot reasonably inject `DOCUMENT` here, but we are extra
|
|
5
|
+
// careful about usage of `window` and its possible non-existence in SSR,
|
|
6
|
+
// so we should be fine.
|
|
7
|
+
// eslint-disable-next-line no-restricted-globals
|
|
8
|
+
const myWindow = window;
|
|
9
|
+
if (myWindow?.devicePixelRatio > 1.25) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
const mediaQuery = '(-webkit-min-device-pixel-ratio: 1.25), (min--moz-device-pixel-ratio: 1.25), (-o-min-device-pixel-ratio: 5/4), (min-resolution: 1.25dppx)';
|
|
13
|
+
return !!myWindow?.matchMedia(mediaQuery).matches;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Return URL to Gravatar image from either an email or a MD5
|
|
17
|
+
*/
|
|
18
|
+
export class Gravatar extends Source {
|
|
19
|
+
getAvatar(size) {
|
|
20
|
+
const value = this.getValue();
|
|
21
|
+
const md5 = value.match('^[a-f0-9]{32}$') ? value : Md5.hashStr(value.trim().toLowerCase()).toString();
|
|
22
|
+
const avatarSize = isRetina() ? size * 2 : size;
|
|
23
|
+
return `https://secure.gravatar.com/avatar/${md5}?s=${avatarSize}&d=404`;
|
|
24
|
+
}
|
|
25
|
+
isTextual() {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhdmF0YXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9hdmF0YXIvc291cmNlcy9ncmF2YXRhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzNCLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFaEMsU0FBUyxRQUFRO0lBQ2IsZ0VBQWdFO0lBQ2hFLHlFQUF5RTtJQUN6RSx3QkFBd0I7SUFDeEIsaURBQWlEO0lBQ2pELE1BQU0sUUFBUSxHQUF1QixNQUFNLENBQUM7SUFFNUMsSUFBSSxRQUFRLEVBQUUsZ0JBQWdCLEdBQUcsSUFBSSxFQUFFO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFFRCxNQUFNLFVBQVUsR0FDWiwySUFBMkksQ0FBQztJQUVoSixPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUN0RCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sUUFBUyxTQUFRLE1BQU07SUFDekIsU0FBUyxDQUFDLElBQVk7UUFDekIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXZHLE1BQU0sVUFBVSxHQUFHLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDaEQsT0FBTyxzQ0FBc0MsR0FBRyxNQUFNLFVBQVUsUUFBUSxDQUFDO0lBQzdFLENBQUM7SUFFTSxTQUFTO1FBQ1osT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNZDV9IGZyb20gJ3RzLW1kNSc7XG5pbXBvcnQge1NvdXJjZX0gZnJvbSAnLi9zb3VyY2UnO1xuXG5mdW5jdGlvbiBpc1JldGluYSgpOiBib29sZWFuIHtcbiAgICAvLyBXZSBjYW5ub3QgcmVhc29uYWJseSBpbmplY3QgYERPQ1VNRU5UYCBoZXJlLCBidXQgd2UgYXJlIGV4dHJhXG4gICAgLy8gY2FyZWZ1bCBhYm91dCB1c2FnZSBvZiBgd2luZG93YCBhbmQgaXRzIHBvc3NpYmxlIG5vbi1leGlzdGVuY2UgaW4gU1NSLFxuICAgIC8vIHNvIHdlIHNob3VsZCBiZSBmaW5lLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHNcbiAgICBjb25zdCBteVdpbmRvdzogV2luZG93IHwgdW5kZWZpbmVkID0gd2luZG93O1xuXG4gICAgaWYgKG15V2luZG93Py5kZXZpY2VQaXhlbFJhdGlvID4gMS4yNSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBtZWRpYVF1ZXJ5ID1cbiAgICAgICAgJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuMjUpLCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjI1KSwgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDUvNCksIChtaW4tcmVzb2x1dGlvbjogMS4yNWRwcHgpJztcblxuICAgIHJldHVybiAhIW15V2luZG93Py5tYXRjaE1lZGlhKG1lZGlhUXVlcnkpLm1hdGNoZXM7XG59XG5cbi8qKlxuICogUmV0dXJuIFVSTCB0byBHcmF2YXRhciBpbWFnZSBmcm9tIGVpdGhlciBhbiBlbWFpbCBvciBhIE1ENVxuICovXG5leHBvcnQgY2xhc3MgR3JhdmF0YXIgZXh0ZW5kcyBTb3VyY2Uge1xuICAgIHB1YmxpYyBnZXRBdmF0YXIoc2l6ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgICAgIGNvbnN0IG1kNSA9IHZhbHVlLm1hdGNoKCdeW2EtZjAtOV17MzJ9JCcpID8gdmFsdWUgOiBNZDUuaGFzaFN0cih2YWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKSkudG9TdHJpbmcoKTtcblxuICAgICAgICBjb25zdCBhdmF0YXJTaXplID0gaXNSZXRpbmEoKSA/IHNpemUgKiAyIDogc2l6ZTtcbiAgICAgICAgcmV0dXJuIGBodHRwczovL3NlY3VyZS5ncmF2YXRhci5jb20vYXZhdGFyLyR7bWQ1fT9zPSR7YXZhdGFyU2l6ZX0mZD00MDRgO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1RleHR1YWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iXX0=
|
package/{esm2015/lib/modules/avatar/sources/image.js → esm2020/lib/modules/avatar/sources/image.mjs}
RENAMED
|
File without changes
|
|
File without changes
|
|
@@ -12,4 +12,4 @@ export class Source {
|
|
|
12
12
|
return this.value;
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvYXZhdGFyL3NvdXJjZXMvc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBOzs7O0dBSUc7QUFDSCxNQUFNLE9BQWdCLE1BQU07SUFDeEIsWUFBb0MsS0FBYTtRQUFiLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVNLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztDQVlKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBIGNyZWF0b3IgaW50ZXJmYWNlIHVzZWQgdG8gaW5zdGFudGlhdGUgc291cmNlIGltcGxlbWVudGF0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIFNvdXJjZUNyZWF0b3IgPSBuZXcgKHNvdXJjZVZhbHVlOiBzdHJpbmcpID0+IFNvdXJjZTtcblxuLyoqXG4gKiBDb250cmFjdCBvZiBhbGwgU291cmNlcy5cbiAqIEV2ZXJ5IHNvdXJjZSBtdXN0IGltcGxlbWVudHMgdGhlIGZldGNoIG1ldGhvZFxuICogaW4gb3JkZXIgdG8gcHJvdmlkZSB0aGUgYXZhdGFyIHNvdXJjZS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNvdXJjZSB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGF2YXRhciB0aGF0IHVzdWFsbHkgaXMgYSBVUkwsIGJ1dCxcbiAgICAgKiBmb3IgZXhhbXBsZSBpdCBjYW4gYWxzbyBiZSBhIHN0cmluZyBvZiBpbml0aWFscyBmcm9tIHRoZSBuYW1lLlxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRBdmF0YXIoc2l6ZTogbnVtYmVyKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgYXZhdGFyIGlzIHB1cmVseSB0ZXh0dWFsIG9yIGFuIFVSTCBmb3IgYW4gaW1hZ2VcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgaXNUZXh0dWFsKCk6IGJvb2xlYW47XG59XG4iXX0=
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class NaturalColumnsPickerColumnDirective {
|
|
4
|
+
constructor(elementRef) {
|
|
5
|
+
this.elementRef = elementRef;
|
|
6
|
+
/**
|
|
7
|
+
* Initial checked state
|
|
8
|
+
*/
|
|
9
|
+
this.checked = true;
|
|
10
|
+
/**
|
|
11
|
+
* Initial visibility state
|
|
12
|
+
*/
|
|
13
|
+
this.hidden = false;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* This must be the column key as defined in matColumnDef
|
|
17
|
+
*/
|
|
18
|
+
set naturalColumnsPickerColumn(value) {
|
|
19
|
+
this.key = value;
|
|
20
|
+
}
|
|
21
|
+
ngOnInit() {
|
|
22
|
+
// Default label to key before real label is accessible
|
|
23
|
+
this.label = this.key;
|
|
24
|
+
}
|
|
25
|
+
ngAfterViewInit() {
|
|
26
|
+
this.label = this.elementRef.nativeElement.textContent;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
NaturalColumnsPickerColumnDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalColumnsPickerColumnDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
30
|
+
NaturalColumnsPickerColumnDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: NaturalColumnsPickerColumnDirective, selector: "[naturalColumnsPickerColumn]", inputs: { checked: "checked", hidden: "hidden", naturalColumnsPickerColumn: "naturalColumnsPickerColumn" }, ngImport: i0 });
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalColumnsPickerColumnDirective, decorators: [{
|
|
32
|
+
type: Directive,
|
|
33
|
+
args: [{
|
|
34
|
+
selector: '[naturalColumnsPickerColumn]',
|
|
35
|
+
}]
|
|
36
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { checked: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], hidden: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], naturalColumnsPickerColumn: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}] } });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1waWNrZXItY29sdW1uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2NvbHVtbnMtcGlja2VyL2NvbHVtbnMtcGlja2VyLWNvbHVtbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQWMsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDOztBQUtsRixNQUFNLE9BQU8sbUNBQW1DO0lBa0I1QyxZQUFvQyxVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBZjFEOztXQUVHO1FBQ2EsWUFBTyxHQUFHLElBQUksQ0FBQztRQUUvQjs7V0FFRztRQUNhLFdBQU0sR0FBRyxLQUFLLENBQUM7SUFPOEIsQ0FBQztJQUU5RDs7T0FFRztJQUNILElBQ1csMEJBQTBCLENBQUMsS0FBYTtRQUMvQyxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRU0sUUFBUTtRQUNYLHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDMUIsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7SUFDM0QsQ0FBQzs7Z0lBbkNRLG1DQUFtQztvSEFBbkMsbUNBQW1DOzJGQUFuQyxtQ0FBbUM7a0JBSC9DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDhCQUE4QjtpQkFDM0M7aUdBT21CLE9BQU87c0JBQXRCLEtBQUs7Z0JBS1UsTUFBTTtzQkFBckIsS0FBSztnQkFhSywwQkFBMEI7c0JBRHBDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW25hdHVyYWxDb2x1bW5zUGlja2VyQ29sdW1uXScsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxDb2x1bW5zUGlja2VyQ29sdW1uRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0IHtcbiAgICBwdWJsaWMga2V5ITogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbCBjaGVja2VkIHN0YXRlXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGNoZWNrZWQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbCB2aXNpYmlsaXR5IHN0YXRlXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGhpZGRlbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogTG9jYWxpemVkIGxhYmVsIG9mIGNvbHVtbiwgaWYgYWJzZW50IGRlZmF1bHQgdG8ga2V5XG4gICAgICovXG4gICAgcHVibGljIGxhYmVsITogc3RyaW5nO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbXVzdCBiZSB0aGUgY29sdW1uIGtleSBhcyBkZWZpbmVkIGluIG1hdENvbHVtbkRlZlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBuYXR1cmFsQ29sdW1uc1BpY2tlckNvbHVtbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMua2V5ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBEZWZhdWx0IGxhYmVsIHRvIGtleSBiZWZvcmUgcmVhbCBsYWJlbCBpcyBhY2Nlc3NpYmxlXG4gICAgICAgIHRoaXMubGFiZWwgPSB0aGlzLmtleTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxhYmVsID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQ7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import { NaturalColumnsPickerColumnDirective } from './columns-picker-column.directive';
|
|
3
|
+
import { cancellableTimeout } from '../../classes/rxjs';
|
|
4
|
+
import { Subject } from 'rxjs';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/material/menu";
|
|
7
|
+
import * as i2 from "@angular/material/checkbox";
|
|
8
|
+
import * as i3 from "@angular/material/button";
|
|
9
|
+
import * as i4 from "../icon/icon.component";
|
|
10
|
+
import * as i5 from "@angular/common";
|
|
11
|
+
import * as i6 from "@angular/forms";
|
|
12
|
+
import * as i7 from "@angular/material/tooltip";
|
|
13
|
+
export class NaturalColumnsPickerComponent {
|
|
14
|
+
constructor(changeDetectorRef) {
|
|
15
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
16
|
+
/**
|
|
17
|
+
* Emit a list of valid and selected column keys whenever the selection changes
|
|
18
|
+
*/
|
|
19
|
+
this.selectionChange = new EventEmitter();
|
|
20
|
+
/**
|
|
21
|
+
* Available columns are defined by options in the template
|
|
22
|
+
*/
|
|
23
|
+
this.availableColumns = null;
|
|
24
|
+
/**
|
|
25
|
+
* Displayed options in the dropdown menu
|
|
26
|
+
*/
|
|
27
|
+
this.displayedColumns = [];
|
|
28
|
+
this.ngUnsubscribe = new Subject();
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Set the columns that are wanted but might be unavailable.
|
|
32
|
+
*
|
|
33
|
+
* If a column is unavailable it will be ignored silently. To know what columns were actually applied
|
|
34
|
+
* you should use `selectionChange`.
|
|
35
|
+
*
|
|
36
|
+
* It is often set once on component initialization, but it can also be set again later in the lifespan of the component.
|
|
37
|
+
*/
|
|
38
|
+
set selections(columns) {
|
|
39
|
+
this._selections = columns;
|
|
40
|
+
if (!columns || !this.availableColumns) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
this.availableColumns?.forEach(col => {
|
|
44
|
+
col.checked = columns.includes(col.key);
|
|
45
|
+
});
|
|
46
|
+
this.updateColumns();
|
|
47
|
+
}
|
|
48
|
+
ngAfterViewInit() {
|
|
49
|
+
cancellableTimeout(this.ngUnsubscribe).subscribe(() => {
|
|
50
|
+
this.initColumns();
|
|
51
|
+
this.updateColumns();
|
|
52
|
+
this.changeDetectorRef.detectChanges();
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
initColumns() {
|
|
56
|
+
this.availableColumns?.forEach(col => {
|
|
57
|
+
col.checked = this._selections?.length ? this._selections.includes(col.key) : col.checked;
|
|
58
|
+
});
|
|
59
|
+
// Show options only for columns that are not hidden
|
|
60
|
+
this.displayedColumns = this.availableColumns?.filter(col => !col.hidden) ?? [];
|
|
61
|
+
}
|
|
62
|
+
updateColumns() {
|
|
63
|
+
const selectedColumns = this.availableColumns?.filter(col => col.checked).map(col => col.key);
|
|
64
|
+
this.selectionChange.emit(selectedColumns);
|
|
65
|
+
}
|
|
66
|
+
ngOnDestroy() {
|
|
67
|
+
this.ngUnsubscribe.next(); // unsubscribe everybody
|
|
68
|
+
this.ngUnsubscribe.complete(); // complete the stream, because we will never emit again
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
NaturalColumnsPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalColumnsPickerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
72
|
+
NaturalColumnsPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: NaturalColumnsPickerComponent, selector: "natural-columns-picker", inputs: { selections: "selections" }, outputs: { selectionChange: "selectionChange" }, queries: [{ propertyName: "availableColumns", predicate: NaturalColumnsPickerColumnDirective }], ngImport: i0, template: "<div>\n <mat-menu #naturalMenu=\"matMenu\">\n <div\n (click)=\"$event.stopPropagation(); column.checked = !column.checked; updateColumns()\"\n *ngFor=\"let column of displayedColumns\"\n class=\"mat-menu-item\"\n >\n <mat-checkbox (click)=\"$event.stopPropagation()\" (change)=\"updateColumns()\" [(ngModel)]=\"column.checked\">{{\n column.label\n }}</mat-checkbox>\n </div>\n </mat-menu>\n <button [matMenuTriggerFor]=\"naturalMenu\" mat-icon-button i18n-matTooltip matTooltip=\"S\u00E9lectionner les colonnes\">\n <natural-icon name=\"view_column\"></natural-icon>\n </button>\n</div>\n", components: [{ type: i1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.NaturalIconComponent, selector: "natural-icon", inputs: ["label", "labelColor", "labelPosition", "name", "size"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalColumnsPickerComponent, decorators: [{
|
|
74
|
+
type: Component,
|
|
75
|
+
args: [{ selector: 'natural-columns-picker', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div>\n <mat-menu #naturalMenu=\"matMenu\">\n <div\n (click)=\"$event.stopPropagation(); column.checked = !column.checked; updateColumns()\"\n *ngFor=\"let column of displayedColumns\"\n class=\"mat-menu-item\"\n >\n <mat-checkbox (click)=\"$event.stopPropagation()\" (change)=\"updateColumns()\" [(ngModel)]=\"column.checked\">{{\n column.label\n }}</mat-checkbox>\n </div>\n </mat-menu>\n <button [matMenuTriggerFor]=\"naturalMenu\" mat-icon-button i18n-matTooltip matTooltip=\"S\u00E9lectionner les colonnes\">\n <natural-icon name=\"view_column\"></natural-icon>\n </button>\n</div>\n" }]
|
|
76
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { selections: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}], selectionChange: [{
|
|
79
|
+
type: Output
|
|
80
|
+
}], availableColumns: [{
|
|
81
|
+
type: ContentChildren,
|
|
82
|
+
args: [NaturalColumnsPickerColumnDirective]
|
|
83
|
+
}] } });
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvY29sdW1ucy1waWNrZXIvY29sdW1ucy1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvY29sdW1ucy1waWNrZXIvY29sdW1ucy1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxtQ0FBbUMsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQU83QixNQUFNLE9BQU8sNkJBQTZCO0lBNEN0QyxZQUFvQyxpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQWxCeEU7O1dBRUc7UUFDdUIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBRXpFOztXQUVHO1FBRUkscUJBQWdCLEdBQTBELElBQUksQ0FBQztRQUV0Rjs7V0FFRztRQUNJLHFCQUFnQixHQUEwQyxFQUFFLENBQUM7UUFFNUQsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRStCLENBQUM7SUF6QzVFOzs7Ozs7O09BT0c7SUFDSCxJQUNXLFVBQVUsQ0FBQyxPQUE2QjtRQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztRQUUzQixJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3BDLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDakMsR0FBRyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBc0JNLGVBQWU7UUFDbEIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sV0FBVztRQUNmLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDakMsR0FBRyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQzlGLENBQUMsQ0FBQyxDQUFDO1FBRUgsb0RBQW9EO1FBQ3BELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BGLENBQUM7SUFFTSxhQUFhO1FBQ2hCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QjtRQUNuRCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsd0RBQXdEO0lBQzNGLENBQUM7OzBIQXZFUSw2QkFBNkI7OEdBQTdCLDZCQUE2QixzTEFrQ3JCLG1DQUFtQyw2QkN2RHhELDRyQkFnQkE7MkZES2EsNkJBQTZCO2tCQUx6QyxTQUFTOytCQUNJLHdCQUF3QixtQkFFakIsdUJBQXVCLENBQUMsTUFBTTt3R0FjcEMsVUFBVTtzQkFEcEIsS0FBSztnQkFrQm9CLGVBQWU7c0JBQXhDLE1BQU07Z0JBTUEsZ0JBQWdCO3NCQUR0QixlQUFlO3VCQUFDLG1DQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hdHVyYWxDb2x1bW5zUGlja2VyQ29sdW1uRGlyZWN0aXZlfSBmcm9tICcuL2NvbHVtbnMtcGlja2VyLWNvbHVtbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtjYW5jZWxsYWJsZVRpbWVvdXR9IGZyb20gJy4uLy4uL2NsYXNzZXMvcnhqcyc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25hdHVyYWwtY29sdW1ucy1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2x1bW5zLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxDb2x1bW5zUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIF9zZWxlY3Rpb25zPzogc3RyaW5nW107XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIGNvbHVtbnMgdGhhdCBhcmUgd2FudGVkIGJ1dCBtaWdodCBiZSB1bmF2YWlsYWJsZS5cbiAgICAgKlxuICAgICAqIElmIGEgY29sdW1uIGlzIHVuYXZhaWxhYmxlIGl0IHdpbGwgYmUgaWdub3JlZCBzaWxlbnRseS4gVG8ga25vdyB3aGF0IGNvbHVtbnMgd2VyZSBhY3R1YWxseSBhcHBsaWVkXG4gICAgICogeW91IHNob3VsZCB1c2UgYHNlbGVjdGlvbkNoYW5nZWAuXG4gICAgICpcbiAgICAgKiBJdCBpcyBvZnRlbiBzZXQgb25jZSBvbiBjb21wb25lbnQgaW5pdGlhbGl6YXRpb24sIGJ1dCBpdCBjYW4gYWxzbyBiZSBzZXQgYWdhaW4gbGF0ZXIgaW4gdGhlIGxpZmVzcGFuIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHNlbGVjdGlvbnMoY29sdW1uczogc3RyaW5nW10gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9ucyA9IGNvbHVtbnM7XG5cbiAgICAgICAgaWYgKCFjb2x1bW5zIHx8ICF0aGlzLmF2YWlsYWJsZUNvbHVtbnMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYXZhaWxhYmxlQ29sdW1ucz8uZm9yRWFjaChjb2wgPT4ge1xuICAgICAgICAgICAgY29sLmNoZWNrZWQgPSBjb2x1bW5zLmluY2x1ZGVzKGNvbC5rZXkpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnVwZGF0ZUNvbHVtbnMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbWl0IGEgbGlzdCBvZiB2YWxpZCBhbmQgc2VsZWN0ZWQgY29sdW1uIGtleXMgd2hlbmV2ZXIgdGhlIHNlbGVjdGlvbiBjaGFuZ2VzXG4gICAgICovXG4gICAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdPigpO1xuXG4gICAgLyoqXG4gICAgICogQXZhaWxhYmxlIGNvbHVtbnMgYXJlIGRlZmluZWQgYnkgb3B0aW9ucyBpbiB0aGUgdGVtcGxhdGVcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKE5hdHVyYWxDb2x1bW5zUGlja2VyQ29sdW1uRGlyZWN0aXZlKVxuICAgIHB1YmxpYyBhdmFpbGFibGVDb2x1bW5zOiBRdWVyeUxpc3Q8TmF0dXJhbENvbHVtbnNQaWNrZXJDb2x1bW5EaXJlY3RpdmU+IHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBEaXNwbGF5ZWQgb3B0aW9ucyBpbiB0aGUgZHJvcGRvd24gbWVudVxuICAgICAqL1xuICAgIHB1YmxpYyBkaXNwbGF5ZWRDb2x1bW5zOiBOYXR1cmFsQ29sdW1uc1BpY2tlckNvbHVtbkRpcmVjdGl2ZVtdID0gW107XG5cbiAgICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY2FuY2VsbGFibGVUaW1lb3V0KHRoaXMubmdVbnN1YnNjcmliZSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5pdENvbHVtbnMoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ29sdW1ucygpO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdENvbHVtbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXZhaWxhYmxlQ29sdW1ucz8uZm9yRWFjaChjb2wgPT4ge1xuICAgICAgICAgICAgY29sLmNoZWNrZWQgPSB0aGlzLl9zZWxlY3Rpb25zPy5sZW5ndGggPyB0aGlzLl9zZWxlY3Rpb25zLmluY2x1ZGVzKGNvbC5rZXkpIDogY29sLmNoZWNrZWQ7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFNob3cgb3B0aW9ucyBvbmx5IGZvciBjb2x1bW5zIHRoYXQgYXJlIG5vdCBoaWRkZW5cbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5hdmFpbGFibGVDb2x1bW5zPy5maWx0ZXIoY29sID0+ICFjb2wuaGlkZGVuKSA/PyBbXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlQ29sdW1ucygpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRDb2x1bW5zID0gdGhpcy5hdmFpbGFibGVDb2x1bW5zPy5maWx0ZXIoY29sID0+IGNvbC5jaGVja2VkKS5tYXAoY29sID0+IGNvbC5rZXkpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHNlbGVjdGVkQ29sdW1ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpOyAvLyB1bnN1YnNjcmliZSBldmVyeWJvZHlcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7IC8vIGNvbXBsZXRlIHRoZSBzdHJlYW0sIGJlY2F1c2Ugd2Ugd2lsbCBuZXZlciBlbWl0IGFnYWluXG4gICAgfVxufVxuIiwiPGRpdj5cbiAgICA8bWF0LW1lbnUgI25hdHVyYWxNZW51PVwibWF0TWVudVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBjb2x1bW4uY2hlY2tlZCA9ICFjb2x1bW4uY2hlY2tlZDsgdXBkYXRlQ29sdW1ucygpXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZGlzcGxheWVkQ29sdW1uc1wiXG4gICAgICAgICAgICBjbGFzcz1cIm1hdC1tZW51LWl0ZW1cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bWF0LWNoZWNrYm94IChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiAoY2hhbmdlKT1cInVwZGF0ZUNvbHVtbnMoKVwiIFsobmdNb2RlbCldPVwiY29sdW1uLmNoZWNrZWRcIj57e1xuICAgICAgICAgICAgICAgIGNvbHVtbi5sYWJlbFxuICAgICAgICAgICAgfX08L21hdC1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9tYXQtbWVudT5cbiAgICA8YnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJuYXR1cmFsTWVudVwiIG1hdC1pY29uLWJ1dHRvbiBpMThuLW1hdFRvb2x0aXAgbWF0VG9vbHRpcD1cIlPDqWxlY3Rpb25uZXIgbGVzIGNvbG9ubmVzXCI+XG4gICAgICAgIDxuYXR1cmFsLWljb24gbmFtZT1cInZpZXdfY29sdW1uXCI+PC9uYXR1cmFsLWljb24+XG4gICAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|