@ecodev/natural 41.3.0 → 42.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ecodev-natural.d.ts +1 -9
- package/esm2020/ecodev-natural.mjs +5 -0
- package/esm2020/lib/classes/abstract-controller.mjs +30 -0
- package/esm2020/lib/classes/abstract-detail.mjs +152 -0
- package/esm2020/lib/classes/abstract-editable-list.mjs +96 -0
- package/esm2020/lib/classes/abstract-list.mjs +406 -0
- package/esm2020/lib/classes/abstract-navigable-list.mjs +126 -0
- package/{esm2015/lib/classes/apollo-utils.js → esm2020/lib/classes/apollo-utils.mjs} +0 -0
- package/esm2020/lib/classes/data-source.mjs +76 -0
- package/{esm2015/lib/classes/query-variable-manager-utils.js → esm2020/lib/classes/query-variable-manager-utils.mjs} +0 -0
- package/esm2020/lib/classes/query-variable-manager.mjs +161 -0
- package/{esm2015/lib/classes/rxjs.js → esm2020/lib/classes/rxjs.mjs} +0 -0
- package/{esm2015/lib/classes/tld.js → esm2020/lib/classes/tld.mjs} +0 -0
- package/{esm2015/lib/classes/utility.js → esm2020/lib/classes/utility.mjs} +0 -0
- package/esm2020/lib/classes/validators.mjs +179 -0
- package/esm2020/lib/directives/http-prefix.directive.mjs +50 -0
- package/esm2020/lib/modules/alert/alert.module.mjs +20 -0
- package/esm2020/lib/modules/alert/alert.service.mjs +55 -0
- package/esm2020/lib/modules/alert/confirm.component.mjs +20 -0
- package/{esm2015/lib/modules/alert/public-api.js → esm2020/lib/modules/alert/public-api.mjs} +0 -0
- package/esm2020/lib/modules/avatar/avatar.module.mjs +19 -0
- package/esm2020/lib/modules/avatar/component/avatar.component.mjs +187 -0
- package/{esm2015/lib/modules/avatar/public-api.js → esm2020/lib/modules/avatar/public-api.mjs} +0 -0
- package/esm2020/lib/modules/avatar/service/avatar.service.mjs +66 -0
- package/esm2020/lib/modules/avatar/sources/gravatar.mjs +29 -0
- package/{esm2015/lib/modules/avatar/sources/image.js → esm2020/lib/modules/avatar/sources/image.mjs} +0 -0
- package/{esm2015/lib/modules/avatar/sources/initials.js → esm2020/lib/modules/avatar/sources/initials.mjs} +0 -0
- package/{esm2015/lib/modules/avatar/sources/source.js → esm2020/lib/modules/avatar/sources/source.mjs} +1 -1
- package/esm2020/lib/modules/columns-picker/columns-picker-column.directive.mjs +43 -0
- package/esm2020/lib/modules/columns-picker/columns-picker.component.mjs +84 -0
- package/esm2020/lib/modules/columns-picker/columns-picker.module.mjs +47 -0
- package/{esm2015/lib/modules/columns-picker/public-api.js → esm2020/lib/modules/columns-picker/public-api.mjs} +0 -0
- package/esm2020/lib/modules/common/common-module.mjs +54 -0
- package/esm2020/lib/modules/common/directives/linkable-tab.directive.mjs +79 -0
- package/esm2020/lib/modules/common/directives/reactive-asterisk.directive.mjs +33 -0
- package/esm2020/lib/modules/common/directives/src-density.directive.mjs +62 -0
- package/esm2020/lib/modules/common/pipes/capitalize.pipe.mjs +18 -0
- package/esm2020/lib/modules/common/pipes/ellipsis.pipe.mjs +14 -0
- package/esm2020/lib/modules/common/pipes/enum.pipe.mjs +25 -0
- package/esm2020/lib/modules/common/pipes/swiss-date.pipe.mjs +20 -0
- package/{esm2015/lib/modules/common/public-api.js → esm2020/lib/modules/common/public-api.mjs} +0 -0
- package/esm2020/lib/modules/common/services/memory-storage.mjs +112 -0
- package/esm2020/lib/modules/common/services/seo.service.mjs +114 -0
- package/esm2020/lib/modules/detail-header/detail-header.component.mjs +76 -0
- package/esm2020/lib/modules/detail-header/detail-header.module.mjs +21 -0
- package/{esm2015/lib/modules/detail-header/public-api.js → esm2020/lib/modules/detail-header/public-api.mjs} +0 -0
- package/esm2020/lib/modules/dialog-trigger/dialog-trigger.component.mjs +69 -0
- package/esm2020/lib/modules/dialog-trigger/dialog-trigger.module.mjs +19 -0
- package/{esm2015/lib/modules/dialog-trigger/public-api.js → esm2020/lib/modules/dialog-trigger/public-api.mjs} +0 -0
- package/esm2020/lib/modules/dropdown-components/abstract-association-select-component.directive.mjs +98 -0
- package/esm2020/lib/modules/dropdown-components/natural-dropdown-components.module.mjs +92 -0
- package/{esm2015/lib/modules/dropdown-components/public-api.js → esm2020/lib/modules/dropdown-components/public-api.mjs} +0 -0
- package/esm2020/lib/modules/dropdown-components/type-date/type-date.component.mjs +133 -0
- package/esm2020/lib/modules/dropdown-components/type-date-range/type-date-range.component.mjs +137 -0
- package/esm2020/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.mjs +69 -0
- package/esm2020/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.mjs +38 -0
- package/esm2020/lib/modules/dropdown-components/type-number/type-number.component.mjs +104 -0
- package/esm2020/lib/modules/dropdown-components/type-select/type-select.component.mjs +169 -0
- package/esm2020/lib/modules/dropdown-components/type-text/type-text.component.mjs +57 -0
- package/{esm2015/lib/modules/dropdown-components/types.js → esm2020/lib/modules/dropdown-components/types.mjs} +0 -0
- package/{esm2015/lib/modules/dropdown-components/utils.js → esm2020/lib/modules/dropdown-components/utils.mjs} +0 -0
- package/esm2020/lib/modules/file/abstract-file.mjs +231 -0
- package/esm2020/lib/modules/file/component/file.component.mjs +143 -0
- package/esm2020/lib/modules/file/file-drop.directive.mjs +110 -0
- package/esm2020/lib/modules/file/file-select.directive.mjs +28 -0
- package/esm2020/lib/modules/file/file.module.mjs +24 -0
- package/esm2020/lib/modules/file/file.service.mjs +48 -0
- package/{esm2015/lib/modules/file/public-api.js → esm2020/lib/modules/file/public-api.mjs} +0 -0
- package/{esm2015/lib/modules/file/types.js → esm2020/lib/modules/file/types.mjs} +0 -0
- package/{esm2015/lib/modules/file/utils.js → esm2020/lib/modules/file/utils.mjs} +3 -4
- package/esm2020/lib/modules/fixed-button/fixed-button.component.mjs +27 -0
- package/esm2020/lib/modules/fixed-button/fixed-button.module.mjs +21 -0
- package/{esm2015/lib/modules/fixed-button/public-api.js → esm2020/lib/modules/fixed-button/public-api.mjs} +0 -0
- package/esm2020/lib/modules/fixed-button-detail/fixed-button-detail.component.mjs +36 -0
- package/esm2020/lib/modules/fixed-button-detail/fixed-button-detail.module.mjs +20 -0
- package/{esm2015/lib/modules/fixed-button-detail/public-api.js → esm2020/lib/modules/fixed-button-detail/public-api.mjs} +0 -0
- package/{esm2015/lib/modules/hierarchic-selector/classes/flat-node.js → esm2020/lib/modules/hierarchic-selector/classes/flat-node.mjs} +1 -1
- package/{esm2015/lib/modules/hierarchic-selector/classes/hierarchic-configuration.js → esm2020/lib/modules/hierarchic-selector/classes/hierarchic-configuration.mjs} +0 -0
- package/{esm2015/lib/modules/hierarchic-selector/classes/hierarchic-filters-configuration.js → esm2020/lib/modules/hierarchic-selector/classes/hierarchic-filters-configuration.mjs} +0 -0
- package/{esm2015/lib/modules/hierarchic-selector/classes/model-node.js → esm2020/lib/modules/hierarchic-selector/classes/model-node.mjs} +1 -1
- package/esm2020/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.mjs +364 -0
- package/esm2020/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.mjs +258 -0
- package/esm2020/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.mjs +31 -0
- package/esm2020/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.mjs +23 -0
- package/esm2020/lib/modules/hierarchic-selector/hierarchic-selector.module.mjs +81 -0
- package/{esm2015/lib/modules/hierarchic-selector/public-api.js → esm2020/lib/modules/hierarchic-selector/public-api.mjs} +0 -0
- package/esm2020/lib/modules/icon/icon.component.mjs +92 -0
- package/esm2020/lib/modules/icon/icon.module.mjs +30 -0
- package/{esm2015/lib/modules/icon/public-api.js → esm2020/lib/modules/icon/public-api.mjs} +0 -0
- package/esm2020/lib/modules/matomo/matomo-module.module.mjs +12 -0
- package/esm2020/lib/modules/matomo/matomo.service.mjs +105 -0
- package/{esm2015/lib/modules/matomo/public-api.js → esm2020/lib/modules/matomo/public-api.mjs} +0 -0
- package/esm2020/lib/modules/panels/abstract-panel.mjs +56 -0
- package/{esm2015/lib/modules/panels/fallback-if-no-opened-panels.urlmatcher.js → esm2020/lib/modules/panels/fallback-if-no-opened-panels.urlmatcher.mjs} +0 -0
- package/esm2020/lib/modules/panels/panels.component.mjs +26 -0
- package/esm2020/lib/modules/panels/panels.module.mjs +33 -0
- package/esm2020/lib/modules/panels/panels.service.mjs +325 -0
- package/{esm2015/lib/modules/panels/panels.urlmatcher.js → esm2020/lib/modules/panels/panels.urlmatcher.mjs} +0 -0
- package/{esm2015/lib/modules/panels/public-api.js → esm2020/lib/modules/panels/public-api.mjs} +0 -0
- package/{esm2015/lib/modules/panels/types.js → esm2020/lib/modules/panels/types.mjs} +0 -0
- package/{esm2015/lib/modules/relations/public-api.js → esm2020/lib/modules/relations/public-api.mjs} +0 -0
- package/esm2020/lib/modules/relations/relations.component.mjs +198 -0
- package/esm2020/lib/modules/relations/relations.module.mjs +58 -0
- package/{esm2015/lib/modules/search/classes/graphql-doctrine.js → esm2020/lib/modules/search/classes/graphql-doctrine.mjs} +0 -0
- package/{esm2015/lib/modules/search/classes/graphql-doctrine.types.js → esm2020/lib/modules/search/classes/graphql-doctrine.types.mjs} +0 -0
- package/{esm2015/lib/modules/search/classes/transformers.js → esm2020/lib/modules/search/classes/transformers.mjs} +0 -0
- package/{esm2015/lib/modules/search/classes/url.js → esm2020/lib/modules/search/classes/url.mjs} +0 -0
- package/{esm2015/lib/modules/search/classes/utils.js → esm2020/lib/modules/search/classes/utils.mjs} +0 -0
- package/{esm2015/lib/modules/search/dropdown-container/dropdown-container-animations.js → esm2020/lib/modules/search/dropdown-container/dropdown-container-animations.mjs} +0 -0
- package/esm2020/lib/modules/search/dropdown-container/dropdown-container.component.mjs +88 -0
- package/{esm2015/lib/modules/search/dropdown-container/dropdown-ref.js → esm2020/lib/modules/search/dropdown-container/dropdown-ref.mjs} +1 -1
- package/esm2020/lib/modules/search/dropdown-container/dropdown.service.mjs +93 -0
- package/esm2020/lib/modules/search/facet-selector/facet-selector.component.mjs +50 -0
- package/esm2020/lib/modules/search/group/group.component.mjs +45 -0
- package/esm2020/lib/modules/search/input/input.component.mjs +328 -0
- package/{esm2015/lib/modules/search/public-api.js → esm2020/lib/modules/search/public-api.mjs} +0 -0
- package/esm2020/lib/modules/search/search/search.component.mjs +78 -0
- package/esm2020/lib/modules/search/search.module.mjs +84 -0
- package/{esm2015/lib/modules/search/types/dropdown-component.js → esm2020/lib/modules/search/types/dropdown-component.mjs} +0 -0
- package/{esm2015/lib/modules/search/types/facet.js → esm2020/lib/modules/search/types/facet.mjs} +0 -0
- package/{esm2015/lib/modules/search/types/values.js → esm2020/lib/modules/search/types/values.mjs} +0 -0
- package/esm2020/lib/modules/select/abstract-select.component.mjs +186 -0
- package/{esm2015/lib/modules/select/public-api.js → esm2020/lib/modules/select/public-api.mjs} +0 -0
- package/esm2020/lib/modules/select/select/select.component.mjs +208 -0
- package/esm2020/lib/modules/select/select-enum/select-enum.component.mjs +42 -0
- package/esm2020/lib/modules/select/select-hierarchic/select-hierarchic.component.mjs +128 -0
- package/esm2020/lib/modules/select/select.module.mjs +68 -0
- package/{esm2015/lib/modules/sidenav/public-api.js → esm2020/lib/modules/sidenav/public-api.mjs} +0 -0
- package/esm2020/lib/modules/sidenav/sidenav/sidenav.component.mjs +15 -0
- package/esm2020/lib/modules/sidenav/sidenav-container/sidenav-container.component.mjs +87 -0
- package/esm2020/lib/modules/sidenav/sidenav-content/sidenav-content.component.mjs +12 -0
- package/esm2020/lib/modules/sidenav/sidenav-stack.service.mjs +52 -0
- package/esm2020/lib/modules/sidenav/sidenav.module.mjs +25 -0
- package/esm2020/lib/modules/sidenav/sidenav.service.mjs +195 -0
- package/{esm2015/lib/modules/stamp/public-api.js → esm2020/lib/modules/stamp/public-api.mjs} +0 -0
- package/esm2020/lib/modules/stamp/stamp-module.module.mjs +18 -0
- package/esm2020/lib/modules/stamp/stamp.component.mjs +14 -0
- package/{esm2015/lib/modules/table-button/public-api.js → esm2020/lib/modules/table-button/public-api.mjs} +0 -0
- package/esm2020/lib/modules/table-button/table-button.component.mjs +48 -0
- package/esm2020/lib/modules/table-button/table-button.module.mjs +21 -0
- package/esm2020/lib/services/abstract-model.service.mjs +509 -0
- package/esm2020/lib/services/enum.service.mjs +67 -0
- package/esm2020/lib/services/link-mutation.service.mjs +153 -0
- package/esm2020/lib/services/persistence.service.mjs +113 -0
- package/esm2020/lib/services/swiss-parsing-date-adapter.service.mjs +55 -0
- package/{esm2015/lib/types/types.js → esm2020/lib/types/types.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/fesm2015/{ecodev-natural.js → ecodev-natural.mjs} +2791 -2361
- package/fesm2015/ecodev-natural.mjs.map +1 -0
- package/fesm2020/ecodev-natural.mjs +10506 -0
- package/fesm2020/ecodev-natural.mjs.map +1 -0
- package/lib/classes/abstract-controller.d.ts +3 -0
- package/lib/classes/abstract-detail.d.ts +3 -0
- package/lib/classes/abstract-editable-list.d.ts +3 -0
- package/lib/classes/abstract-list.d.ts +3 -0
- package/lib/classes/abstract-navigable-list.d.ts +3 -0
- package/lib/directives/http-prefix.directive.d.ts +3 -0
- package/lib/modules/alert/alert.module.d.ts +9 -0
- package/lib/modules/alert/alert.service.d.ts +3 -0
- package/lib/modules/alert/confirm.component.d.ts +3 -0
- package/lib/modules/avatar/avatar.module.d.ts +6 -0
- package/lib/modules/avatar/component/avatar.component.d.ts +3 -0
- package/lib/modules/avatar/service/avatar.service.d.ts +3 -0
- package/lib/modules/columns-picker/columns-picker-column.directive.d.ts +3 -0
- package/lib/modules/columns-picker/columns-picker.component.d.ts +3 -0
- package/lib/modules/columns-picker/columns-picker.module.d.ts +13 -0
- package/lib/modules/common/common-module.d.ts +16 -0
- package/lib/modules/common/directives/linkable-tab.directive.d.ts +3 -0
- package/lib/modules/common/directives/reactive-asterisk.directive.d.ts +3 -0
- package/lib/modules/common/directives/src-density.directive.d.ts +3 -0
- package/lib/modules/common/pipes/capitalize.pipe.d.ts +3 -0
- package/lib/modules/common/pipes/ellipsis.pipe.d.ts +3 -0
- package/lib/modules/common/pipes/enum.pipe.d.ts +3 -0
- package/lib/modules/common/pipes/swiss-date.pipe.d.ts +3 -0
- package/lib/modules/common/services/memory-storage.d.ts +3 -0
- package/lib/modules/common/services/seo.service.d.ts +3 -0
- package/lib/modules/detail-header/detail-header.component.d.ts +3 -0
- package/lib/modules/detail-header/detail-header.module.d.ts +9 -0
- package/lib/modules/dialog-trigger/dialog-trigger.component.d.ts +3 -0
- package/lib/modules/dialog-trigger/dialog-trigger.module.d.ts +7 -0
- package/lib/modules/dropdown-components/abstract-association-select-component.directive.d.ts +3 -0
- package/lib/modules/dropdown-components/natural-dropdown-components.module.d.ts +22 -0
- package/lib/modules/dropdown-components/type-date/type-date.component.d.ts +3 -0
- package/lib/modules/dropdown-components/type-date-range/type-date-range.component.d.ts +3 -0
- package/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.d.ts +3 -0
- package/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.d.ts +3 -0
- package/lib/modules/dropdown-components/type-number/type-number.component.d.ts +3 -0
- package/lib/modules/dropdown-components/type-select/type-select.component.d.ts +3 -0
- package/lib/modules/dropdown-components/type-text/type-text.component.d.ts +3 -0
- package/lib/modules/file/abstract-file.d.ts +3 -0
- package/lib/modules/file/component/file.component.d.ts +3 -0
- package/lib/modules/file/file-drop.directive.d.ts +3 -0
- package/lib/modules/file/file-select.directive.d.ts +3 -0
- package/lib/modules/file/file.module.d.ts +11 -0
- package/lib/modules/file/file.service.d.ts +3 -0
- package/lib/modules/fixed-button/fixed-button.component.d.ts +3 -0
- package/lib/modules/fixed-button/fixed-button.module.d.ts +9 -0
- package/lib/modules/fixed-button-detail/fixed-button-detail.component.d.ts +3 -0
- package/lib/modules/fixed-button-detail/fixed-button-detail.module.d.ts +8 -0
- package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.d.ts +3 -0
- package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.d.ts +3 -0
- package/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.d.ts +3 -0
- package/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.d.ts +3 -0
- package/lib/modules/hierarchic-selector/hierarchic-selector.module.d.ts +21 -0
- package/lib/modules/icon/icon.component.d.ts +3 -0
- package/lib/modules/icon/icon.module.d.ts +7 -0
- package/lib/modules/matomo/matomo-module.module.d.ts +4 -0
- package/lib/modules/matomo/matomo.service.d.ts +3 -0
- package/lib/modules/panels/abstract-panel.d.ts +3 -0
- package/lib/modules/panels/panels.component.d.ts +3 -0
- package/lib/modules/panels/panels.module.d.ts +8 -0
- package/lib/modules/panels/panels.service.d.ts +3 -0
- package/lib/modules/relations/relations.component.d.ts +3 -0
- package/lib/modules/relations/relations.module.d.ts +15 -0
- package/lib/modules/search/dropdown-container/dropdown-container.component.d.ts +3 -0
- package/lib/modules/search/dropdown-container/dropdown-ref.d.ts +1 -1
- package/lib/modules/search/dropdown-container/dropdown.service.d.ts +3 -0
- package/lib/modules/search/facet-selector/facet-selector.component.d.ts +3 -0
- package/lib/modules/search/group/group.component.d.ts +3 -0
- package/lib/modules/search/input/input.component.d.ts +3 -0
- package/lib/modules/search/search/search.component.d.ts +3 -0
- package/lib/modules/search/search.module.d.ts +19 -0
- package/lib/modules/select/abstract-select.component.d.ts +4 -1
- package/lib/modules/select/select/select.component.d.ts +3 -0
- package/lib/modules/select/select-enum/select-enum.component.d.ts +3 -0
- package/lib/modules/select/select-hierarchic/select-hierarchic.component.d.ts +3 -0
- package/lib/modules/select/select.module.d.ts +19 -0
- package/lib/modules/sidenav/sidenav/sidenav.component.d.ts +3 -0
- package/lib/modules/sidenav/sidenav-container/sidenav-container.component.d.ts +3 -0
- package/lib/modules/sidenav/sidenav-content/sidenav-content.component.d.ts +3 -0
- package/lib/modules/sidenav/sidenav-stack.service.d.ts +4 -1
- package/lib/modules/sidenav/sidenav.module.d.ts +11 -0
- package/lib/modules/sidenav/sidenav.service.d.ts +3 -0
- package/lib/modules/stamp/stamp-module.module.d.ts +6 -0
- package/lib/modules/stamp/stamp.component.d.ts +3 -0
- package/lib/modules/table-button/table-button.component.d.ts +3 -0
- package/lib/modules/table-button/table-button.module.d.ts +9 -0
- package/lib/services/enum.service.d.ts +3 -0
- package/lib/services/link-mutation.service.d.ts +3 -0
- package/lib/services/persistence.service.d.ts +3 -0
- package/lib/services/swiss-parsing-date-adapter.service.d.ts +4 -1
- package/package.json +25 -12
- package/src/lib/modules/alert/_alert.theme.scss +1 -1
- package/src/lib/modules/file/component/_file.theme.scss +1 -1
- package/src/lib/modules/icon/_icon.theme.scss +1 -1
- package/src/lib/modules/search/dropdown-container/_dropdown-container.theme.scss +1 -1
- package/src/lib/modules/table-button/_table-button.theme.scss +1 -1
- package/src/lib/styles/_table.scss +1 -1
- package/theming/_natural.theme.scss +1 -1
- package/bundles/ecodev-natural.umd.js +0 -11318
- package/bundles/ecodev-natural.umd.js.map +0 -1
- package/ecodev-natural.metadata.json +0 -1
- package/esm2015/ecodev-natural.js +0 -14
- package/esm2015/lib/classes/abstract-controller.js +0 -29
- package/esm2015/lib/classes/abstract-detail.js +0 -157
- package/esm2015/lib/classes/abstract-editable-list.js +0 -97
- package/esm2015/lib/classes/abstract-list.js +0 -409
- package/esm2015/lib/classes/abstract-navigable-list.js +0 -126
- package/esm2015/lib/classes/data-source.js +0 -76
- package/esm2015/lib/classes/query-variable-manager.js +0 -161
- package/esm2015/lib/classes/validators.js +0 -176
- package/esm2015/lib/directives/http-prefix.directive.js +0 -46
- package/esm2015/lib/modules/alert/alert.module.js +0 -15
- package/esm2015/lib/modules/alert/alert.service.js +0 -59
- package/esm2015/lib/modules/alert/confirm.component.js +0 -17
- package/esm2015/lib/modules/avatar/avatar.module.js +0 -14
- package/esm2015/lib/modules/avatar/component/avatar.component.js +0 -158
- package/esm2015/lib/modules/avatar/service/avatar.service.js +0 -65
- package/esm2015/lib/modules/avatar/sources/gravatar.js +0 -29
- package/esm2015/lib/modules/columns-picker/columns-picker-column.directive.js +0 -41
- package/esm2015/lib/modules/columns-picker/columns-picker.component.js +0 -82
- package/esm2015/lib/modules/columns-picker/columns-picker.module.js +0 -28
- package/esm2015/lib/modules/common/common-module.js +0 -35
- package/esm2015/lib/modules/common/directives/linkable-tab.directive.js +0 -82
- package/esm2015/lib/modules/common/directives/reactive-asterisk.directive.js +0 -31
- package/esm2015/lib/modules/common/directives/src-density.directive.js +0 -63
- package/esm2015/lib/modules/common/pipes/capitalize.pipe.js +0 -14
- package/esm2015/lib/modules/common/pipes/ellipsis.pipe.js +0 -10
- package/esm2015/lib/modules/common/pipes/enum.pipe.js +0 -24
- package/esm2015/lib/modules/common/pipes/swiss-date.pipe.js +0 -16
- package/esm2015/lib/modules/common/services/memory-storage.js +0 -110
- package/esm2015/lib/modules/common/services/seo.service.js +0 -120
- package/esm2015/lib/modules/detail-header/detail-header.component.js +0 -63
- package/esm2015/lib/modules/detail-header/detail-header.module.js +0 -16
- package/esm2015/lib/modules/dialog-trigger/dialog-trigger.component.js +0 -68
- package/esm2015/lib/modules/dialog-trigger/dialog-trigger.module.js +0 -14
- package/esm2015/lib/modules/dropdown-components/abstract-association-select-component.directive.js +0 -96
- package/esm2015/lib/modules/dropdown-components/natural-dropdown-components.module.js +0 -51
- package/esm2015/lib/modules/dropdown-components/type-date/type-date.component.js +0 -123
- package/esm2015/lib/modules/dropdown-components/type-date-range/type-date-range.component.js +0 -128
- package/esm2015/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.js +0 -63
- package/esm2015/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.js +0 -31
- package/esm2015/lib/modules/dropdown-components/type-number/type-number.component.js +0 -99
- package/esm2015/lib/modules/dropdown-components/type-select/type-select.component.js +0 -161
- package/esm2015/lib/modules/dropdown-components/type-text/type-text.component.js +0 -53
- package/esm2015/lib/modules/file/abstract-file.js +0 -223
- package/esm2015/lib/modules/file/component/file.component.js +0 -133
- package/esm2015/lib/modules/file/file-drop.directive.js +0 -99
- package/esm2015/lib/modules/file/file-select.directive.js +0 -25
- package/esm2015/lib/modules/file/file.module.js +0 -19
- package/esm2015/lib/modules/file/file.service.js +0 -47
- package/esm2015/lib/modules/fixed-button/fixed-button.component.js +0 -23
- package/esm2015/lib/modules/fixed-button/fixed-button.module.js +0 -16
- package/esm2015/lib/modules/fixed-button-detail/fixed-button-detail.component.js +0 -31
- package/esm2015/lib/modules/fixed-button-detail/fixed-button-detail.module.js +0 -15
- package/esm2015/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.js +0 -351
- package/esm2015/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.js +0 -258
- package/esm2015/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.js +0 -28
- package/esm2015/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.js +0 -23
- package/esm2015/lib/modules/hierarchic-selector/hierarchic-selector.module.js +0 -46
- package/esm2015/lib/modules/icon/icon.component.js +0 -78
- package/esm2015/lib/modules/icon/icon.module.js +0 -25
- package/esm2015/lib/modules/matomo/matomo-module.module.js +0 -7
- package/esm2015/lib/modules/matomo/matomo.service.js +0 -106
- package/esm2015/lib/modules/panels/abstract-panel.js +0 -50
- package/esm2015/lib/modules/panels/panels.component.js +0 -26
- package/esm2015/lib/modules/panels/panels.module.js +0 -28
- package/esm2015/lib/modules/panels/panels.service.js +0 -331
- package/esm2015/lib/modules/relations/relations.component.js +0 -181
- package/esm2015/lib/modules/relations/relations.module.js +0 -33
- package/esm2015/lib/modules/search/dropdown-container/dropdown-container.component.js +0 -87
- package/esm2015/lib/modules/search/dropdown-container/dropdown.service.js +0 -95
- package/esm2015/lib/modules/search/facet-selector/facet-selector.component.js +0 -47
- package/esm2015/lib/modules/search/group/group.component.js +0 -39
- package/esm2015/lib/modules/search/input/input.component.js +0 -316
- package/esm2015/lib/modules/search/search/search.component.js +0 -71
- package/esm2015/lib/modules/search/search.module.js +0 -52
- package/esm2015/lib/modules/select/abstract-select.component.js +0 -176
- package/esm2015/lib/modules/select/select/select.component.js +0 -190
- package/esm2015/lib/modules/select/select-enum/select-enum.component.js +0 -34
- package/esm2015/lib/modules/select/select-hierarchic/select-hierarchic.component.js +0 -120
- package/esm2015/lib/modules/select/select.module.js +0 -39
- package/esm2015/lib/modules/sidenav/sidenav/sidenav.component.js +0 -12
- package/esm2015/lib/modules/sidenav/sidenav-container/sidenav-container.component.js +0 -79
- package/esm2015/lib/modules/sidenav/sidenav-content/sidenav-content.component.js +0 -13
- package/esm2015/lib/modules/sidenav/sidenav-stack.service.js +0 -50
- package/esm2015/lib/modules/sidenav/sidenav.module.js +0 -20
- package/esm2015/lib/modules/sidenav/sidenav.service.js +0 -199
- package/esm2015/lib/modules/stamp/stamp-module.module.js +0 -13
- package/esm2015/lib/modules/stamp/stamp.component.js +0 -13
- package/esm2015/lib/modules/table-button/table-button.component.js +0 -38
- package/esm2015/lib/modules/table-button/table-button.module.js +0 -16
- package/esm2015/lib/services/abstract-model.service.js +0 -509
- package/esm2015/lib/services/enum.service.js +0 -68
- package/esm2015/lib/services/link-mutation.service.js +0 -155
- package/esm2015/lib/services/persistence.service.js +0 -114
- package/esm2015/lib/services/swiss-parsing-date-adapter.service.js +0 -55
- package/fesm2015/ecodev-natural.js.map +0 -1
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { AvatarComponent } from './component/avatar.component';
|
|
4
|
-
const declarations = [AvatarComponent];
|
|
5
|
-
export class NaturalAvatarModule {
|
|
6
|
-
}
|
|
7
|
-
NaturalAvatarModule.decorators = [
|
|
8
|
-
{ type: NgModule, args: [{
|
|
9
|
-
imports: [CommonModule],
|
|
10
|
-
declarations: declarations,
|
|
11
|
-
exports: declarations,
|
|
12
|
-
},] }
|
|
13
|
-
];
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2F2YXRhci9hdmF0YXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUU3RCxNQUFNLFlBQVksR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBT3ZDLE1BQU0sT0FBTyxtQkFBbUI7OztZQUwvQixRQUFRLFNBQUM7Z0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUN2QixZQUFZLEVBQUUsWUFBWTtnQkFDMUIsT0FBTyxFQUFFLFlBQVk7YUFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtBdmF0YXJDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50L2F2YXRhci5jb21wb25lbnQnO1xuXG5jb25zdCBkZWNsYXJhdGlvbnMgPSBbQXZhdGFyQ29tcG9uZW50XTtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IGRlY2xhcmF0aW9ucyxcbiAgICBleHBvcnRzOiBkZWNsYXJhdGlvbnMsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxBdmF0YXJNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { AvatarService } from '../service/avatar.service';
|
|
3
|
-
/**
|
|
4
|
-
* Show an avatar from different sources
|
|
5
|
-
*/
|
|
6
|
-
export class AvatarComponent {
|
|
7
|
-
constructor(avatarService) {
|
|
8
|
-
this.avatarService = avatarService;
|
|
9
|
-
this.size = 50;
|
|
10
|
-
this.textSizeRatio = 3;
|
|
11
|
-
this.fgColor = '#FFF';
|
|
12
|
-
this.borderRadius = '';
|
|
13
|
-
this.textMaximumLength = 0;
|
|
14
|
-
this.avatarSrc = null;
|
|
15
|
-
this.avatarText = null;
|
|
16
|
-
this.avatarStyle = {};
|
|
17
|
-
this.hostStyle = {};
|
|
18
|
-
this.currentIndex = -1;
|
|
19
|
-
this.sources = [];
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Detect inputs change
|
|
23
|
-
*/
|
|
24
|
-
ngOnChanges(changes) {
|
|
25
|
-
this.sources.length = 0;
|
|
26
|
-
for (const [propName, creator] of this.avatarService.getCreators()) {
|
|
27
|
-
if (!changes[propName]) {
|
|
28
|
-
continue;
|
|
29
|
-
}
|
|
30
|
-
const currentValue = changes[propName].currentValue;
|
|
31
|
-
if (currentValue && typeof currentValue === 'string') {
|
|
32
|
-
this.sources.push(new creator(currentValue));
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
// reinitialize the avatar component when a source property value has changed
|
|
36
|
-
// the fallback system must be re-invoked with the new values.
|
|
37
|
-
this.initializeAvatar();
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Fetch avatar source
|
|
41
|
-
*/
|
|
42
|
-
tryNextSource() {
|
|
43
|
-
const previousSource = this.sources[this.currentIndex];
|
|
44
|
-
if (previousSource) {
|
|
45
|
-
this.avatarService.markSourceAsFailed(previousSource);
|
|
46
|
-
}
|
|
47
|
-
const source = this.findNextSource();
|
|
48
|
-
if (!source) {
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
if (source.isTextual()) {
|
|
52
|
-
this.buildTextAvatar(source);
|
|
53
|
-
this.avatarSrc = null;
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
this.buildImageAvatar(source);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
findNextSource() {
|
|
60
|
-
while (++this.currentIndex < this.sources.length) {
|
|
61
|
-
const source = this.sources[this.currentIndex];
|
|
62
|
-
if (source && !this.avatarService.sourceHasFailedBefore(source)) {
|
|
63
|
-
return source;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return null;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Initialize the avatar component and its fallback system
|
|
70
|
-
*/
|
|
71
|
-
initializeAvatar() {
|
|
72
|
-
this.currentIndex = -1;
|
|
73
|
-
if (this.sources.length > 0) {
|
|
74
|
-
this.tryNextSource();
|
|
75
|
-
this.hostStyle = {
|
|
76
|
-
width: this.size + 'px',
|
|
77
|
-
height: this.size + 'px',
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
buildTextAvatar(avatarSource) {
|
|
82
|
-
this.avatarText = avatarSource.getAvatar(+this.textMaximumLength);
|
|
83
|
-
this.avatarStyle = this.getTextualStyle(avatarSource.getValue());
|
|
84
|
-
}
|
|
85
|
-
buildImageAvatar(avatarSource) {
|
|
86
|
-
this.avatarStyle = this.getImageStyle();
|
|
87
|
-
this.avatarSrc = avatarSource.getAvatar(+this.size);
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Returns initials style
|
|
91
|
-
*/
|
|
92
|
-
getTextualStyle(avatarValue) {
|
|
93
|
-
return {
|
|
94
|
-
textAlign: 'center',
|
|
95
|
-
borderRadius: this.borderRadius || '100%',
|
|
96
|
-
textTransform: 'uppercase',
|
|
97
|
-
color: this.fgColor,
|
|
98
|
-
backgroundColor: this.bgColor ? this.bgColor : this.avatarService.getRandomColor(avatarValue),
|
|
99
|
-
font: Math.floor(+this.size / this.textSizeRatio) + 'px Helvetica, Arial, sans-serif',
|
|
100
|
-
lineHeight: this.size + 'px',
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Returns image style
|
|
105
|
-
*/
|
|
106
|
-
getImageStyle() {
|
|
107
|
-
return {
|
|
108
|
-
maxWidth: '100%',
|
|
109
|
-
borderRadius: this.borderRadius || '100%',
|
|
110
|
-
width: this.size + 'px',
|
|
111
|
-
height: this.size + 'px',
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
AvatarComponent.decorators = [
|
|
116
|
-
{ type: Component, args: [{
|
|
117
|
-
selector: 'natural-avatar',
|
|
118
|
-
template: `
|
|
119
|
-
<div class="avatar-container" [ngStyle]="hostStyle">
|
|
120
|
-
<img
|
|
121
|
-
*ngIf="avatarSrc; else textAvatar"
|
|
122
|
-
[src]="avatarSrc"
|
|
123
|
-
[width]="size"
|
|
124
|
-
[height]="size"
|
|
125
|
-
[ngStyle]="avatarStyle"
|
|
126
|
-
(error)="tryNextSource()"
|
|
127
|
-
class="avatar-content"
|
|
128
|
-
loading="lazy"
|
|
129
|
-
/>
|
|
130
|
-
<ng-template #textAvatar>
|
|
131
|
-
<div *ngIf="avatarText" class="avatar-content" [ngStyle]="avatarStyle">
|
|
132
|
-
{{ avatarText }}
|
|
133
|
-
</div>
|
|
134
|
-
</ng-template>
|
|
135
|
-
</div>
|
|
136
|
-
`,
|
|
137
|
-
styles: [`
|
|
138
|
-
:host {
|
|
139
|
-
border-radius: 50%;
|
|
140
|
-
}
|
|
141
|
-
`]
|
|
142
|
-
},] }
|
|
143
|
-
];
|
|
144
|
-
AvatarComponent.ctorParameters = () => [
|
|
145
|
-
{ type: AvatarService }
|
|
146
|
-
];
|
|
147
|
-
AvatarComponent.propDecorators = {
|
|
148
|
-
image: [{ type: Input }],
|
|
149
|
-
initials: [{ type: Input }],
|
|
150
|
-
gravatar: [{ type: Input }],
|
|
151
|
-
size: [{ type: Input }],
|
|
152
|
-
textSizeRatio: [{ type: Input }],
|
|
153
|
-
bgColor: [{ type: Input }],
|
|
154
|
-
fgColor: [{ type: Input }],
|
|
155
|
-
borderRadius: [{ type: Input }],
|
|
156
|
-
textMaximumLength: [{ type: Input }]
|
|
157
|
-
};
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2F2YXRhci9jb21wb25lbnQvYXZhdGFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBMkIsTUFBTSxlQUFlLENBQUM7QUFHekUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBSXhEOztHQUVHO0FBOEJILE1BQU0sT0FBTyxlQUFlO0lBb0J4QixZQUE2QixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQWZ6QyxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1Ysa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFFbEIsWUFBTyxHQUFHLE1BQU0sQ0FBQztRQUNqQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFFL0IsY0FBUyxHQUFrQixJQUFJLENBQUM7UUFDaEMsZUFBVSxHQUFrQixJQUFJLENBQUM7UUFDakMsZ0JBQVcsR0FBVSxFQUFFLENBQUM7UUFDeEIsY0FBUyxHQUFVLEVBQUUsQ0FBQztRQUVyQixpQkFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLFlBQU8sR0FBYSxFQUFFLENBQUM7SUFFNkIsQ0FBQztJQUU3RDs7T0FFRztJQUNJLFdBQVcsQ0FBQyxPQUFzQjtRQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDeEIsS0FBSyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDaEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDcEIsU0FBUzthQUNaO1lBRUQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQztZQUNwRCxJQUFJLFlBQVksSUFBSSxPQUFPLFlBQVksS0FBSyxRQUFRLEVBQUU7Z0JBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7YUFDaEQ7U0FDSjtRQUVELDZFQUE2RTtRQUM3RSw4REFBOEQ7UUFDOUQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksYUFBYTtRQUNoQixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2RCxJQUFJLGNBQWMsRUFBRTtZQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3pEO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFFRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwQixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1NBQ3pCO2FBQU07WUFDSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDakM7SUFDTCxDQUFDO0lBRU8sY0FBYztRQUNsQixPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUM5QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMvQyxJQUFJLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzdELE9BQU8sTUFBTSxDQUFDO2FBQ2pCO1NBQ0o7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0I7UUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRztnQkFDYixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJO2dCQUN2QixNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJO2FBQzNCLENBQUM7U0FDTDtJQUNMLENBQUM7SUFFTyxlQUFlLENBQUMsWUFBb0I7UUFDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxZQUFvQjtRQUN6QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ssZUFBZSxDQUFDLFdBQW1CO1FBQ3ZDLE9BQU87WUFDSCxTQUFTLEVBQUUsUUFBUTtZQUNuQixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksSUFBSSxNQUFNO1lBQ3pDLGFBQWEsRUFBRSxXQUFXO1lBQzFCLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTztZQUNuQixlQUFlLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDO1lBQzdGLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsaUNBQWlDO1lBQ3JGLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUk7U0FDL0IsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNLLGFBQWE7UUFDakIsT0FBTztZQUNILFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxJQUFJLE1BQU07WUFDekMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSTtZQUN2QixNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJO1NBQzNCLENBQUM7SUFDTixDQUFDOzs7WUExSkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxnQkFBZ0I7Z0JBUTFCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBa0JUO3lCQXhCRzs7OztTQUlDO2FBcUJSOzs7WUFuQ08sYUFBYTs7O29CQXFDaEIsS0FBSzt1QkFDTCxLQUFLO3VCQUNMLEtBQUs7bUJBRUwsS0FBSzs0QkFDTCxLQUFLO3NCQUNMLEtBQUs7c0JBQ0wsS0FBSzsyQkFDTCxLQUFLO2dDQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7U291cmNlfSBmcm9tICcuLi9zb3VyY2VzL3NvdXJjZSc7XG5pbXBvcnQge0F2YXRhclNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvYXZhdGFyLnNlcnZpY2UnO1xuXG50eXBlIFN0eWxlID0gUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPjtcblxuLyoqXG4gKiBTaG93IGFuIGF2YXRhciBmcm9tIGRpZmZlcmVudCBzb3VyY2VzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmF0dXJhbC1hdmF0YXInLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgfVxuICAgICAgICBgLFxuICAgIF0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jb250YWluZXJcIiBbbmdTdHlsZV09XCJob3N0U3R5bGVcIj5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAqbmdJZj1cImF2YXRhclNyYzsgZWxzZSB0ZXh0QXZhdGFyXCJcbiAgICAgICAgICAgICAgICBbc3JjXT1cImF2YXRhclNyY1wiXG4gICAgICAgICAgICAgICAgW3dpZHRoXT1cInNpemVcIlxuICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwic2l6ZVwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwiYXZhdGFyU3R5bGVcIlxuICAgICAgICAgICAgICAgIChlcnJvcik9XCJ0cnlOZXh0U291cmNlKClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXZhdGFyLWNvbnRlbnRcIlxuICAgICAgICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3RleHRBdmF0YXI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImF2YXRhclRleHRcIiBjbGFzcz1cImF2YXRhci1jb250ZW50XCIgW25nU3R5bGVdPVwiYXZhdGFyU3R5bGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgYXZhdGFyVGV4dCB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQXZhdGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBwdWJsaWMgaW1hZ2U/OiBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpbml0aWFscz86IHN0cmluZyB8IG51bGw7XG4gICAgQElucHV0KCkgcHVibGljIGdyYXZhdGFyPzogc3RyaW5nIHwgbnVsbDtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBzaXplID0gNTA7XG4gICAgQElucHV0KCkgcHVibGljIHRleHRTaXplUmF0aW8gPSAzO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBiZ0NvbG9yOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGZnQ29sb3IgPSAnI0ZGRic7XG4gICAgQElucHV0KCkgcHVibGljIGJvcmRlclJhZGl1cyA9ICcnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0ZXh0TWF4aW11bUxlbmd0aCA9IDA7XG5cbiAgICBwdWJsaWMgYXZhdGFyU3JjOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgYXZhdGFyVGV4dDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGF2YXRhclN0eWxlOiBTdHlsZSA9IHt9O1xuICAgIHB1YmxpYyBob3N0U3R5bGU6IFN0eWxlID0ge307XG5cbiAgICBwcml2YXRlIGN1cnJlbnRJbmRleCA9IC0xO1xuICAgIHByaXZhdGUgc291cmNlczogU291cmNlW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXZhdGFyU2VydmljZTogQXZhdGFyU2VydmljZSkge31cblxuICAgIC8qKlxuICAgICAqIERldGVjdCBpbnB1dHMgY2hhbmdlXG4gICAgICovXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zb3VyY2VzLmxlbmd0aCA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgW3Byb3BOYW1lLCBjcmVhdG9yXSBvZiB0aGlzLmF2YXRhclNlcnZpY2UuZ2V0Q3JlYXRvcnMoKSkge1xuICAgICAgICAgICAgaWYgKCFjaGFuZ2VzW3Byb3BOYW1lXSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBjaGFuZ2VzW3Byb3BOYW1lXS5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICBpZiAoY3VycmVudFZhbHVlICYmIHR5cGVvZiBjdXJyZW50VmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zb3VyY2VzLnB1c2gobmV3IGNyZWF0b3IoY3VycmVudFZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyByZWluaXRpYWxpemUgdGhlIGF2YXRhciBjb21wb25lbnQgd2hlbiBhIHNvdXJjZSBwcm9wZXJ0eSB2YWx1ZSBoYXMgY2hhbmdlZFxuICAgICAgICAvLyB0aGUgZmFsbGJhY2sgc3lzdGVtIG11c3QgYmUgcmUtaW52b2tlZCB3aXRoIHRoZSBuZXcgdmFsdWVzLlxuICAgICAgICB0aGlzLmluaXRpYWxpemVBdmF0YXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGZXRjaCBhdmF0YXIgc291cmNlXG4gICAgICovXG4gICAgcHVibGljIHRyeU5leHRTb3VyY2UoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzU291cmNlID0gdGhpcy5zb3VyY2VzW3RoaXMuY3VycmVudEluZGV4XTtcbiAgICAgICAgaWYgKHByZXZpb3VzU291cmNlKSB7XG4gICAgICAgICAgICB0aGlzLmF2YXRhclNlcnZpY2UubWFya1NvdXJjZUFzRmFpbGVkKHByZXZpb3VzU291cmNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuZmluZE5leHRTb3VyY2UoKTtcbiAgICAgICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzb3VyY2UuaXNUZXh0dWFsKCkpIHtcbiAgICAgICAgICAgIHRoaXMuYnVpbGRUZXh0QXZhdGFyKHNvdXJjZSk7XG4gICAgICAgICAgICB0aGlzLmF2YXRhclNyYyA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmJ1aWxkSW1hZ2VBdmF0YXIoc291cmNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZmluZE5leHRTb3VyY2UoKTogU291cmNlIHwgbnVsbCB7XG4gICAgICAgIHdoaWxlICgrK3RoaXMuY3VycmVudEluZGV4IDwgdGhpcy5zb3VyY2VzLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3Qgc291cmNlID0gdGhpcy5zb3VyY2VzW3RoaXMuY3VycmVudEluZGV4XTtcbiAgICAgICAgICAgIGlmIChzb3VyY2UgJiYgIXRoaXMuYXZhdGFyU2VydmljZS5zb3VyY2VIYXNGYWlsZWRCZWZvcmUoc291cmNlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzb3VyY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplIHRoZSBhdmF0YXIgY29tcG9uZW50IGFuZCBpdHMgZmFsbGJhY2sgc3lzdGVtXG4gICAgICovXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplQXZhdGFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IC0xO1xuICAgICAgICBpZiAodGhpcy5zb3VyY2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMudHJ5TmV4dFNvdXJjZSgpO1xuICAgICAgICAgICAgdGhpcy5ob3N0U3R5bGUgPSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHRoaXMuc2l6ZSArICdweCcsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLnNpemUgKyAncHgnLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRUZXh0QXZhdGFyKGF2YXRhclNvdXJjZTogU291cmNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXZhdGFyVGV4dCA9IGF2YXRhclNvdXJjZS5nZXRBdmF0YXIoK3RoaXMudGV4dE1heGltdW1MZW5ndGgpO1xuICAgICAgICB0aGlzLmF2YXRhclN0eWxlID0gdGhpcy5nZXRUZXh0dWFsU3R5bGUoYXZhdGFyU291cmNlLmdldFZhbHVlKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRJbWFnZUF2YXRhcihhdmF0YXJTb3VyY2U6IFNvdXJjZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmF2YXRhclN0eWxlID0gdGhpcy5nZXRJbWFnZVN0eWxlKCk7XG4gICAgICAgIHRoaXMuYXZhdGFyU3JjID0gYXZhdGFyU291cmNlLmdldEF2YXRhcigrdGhpcy5zaXplKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGluaXRpYWxzIHN0eWxlXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRUZXh0dWFsU3R5bGUoYXZhdGFyVmFsdWU6IHN0cmluZyk6IFN0eWxlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6IHRoaXMuYm9yZGVyUmFkaXVzIHx8ICcxMDAlJyxcbiAgICAgICAgICAgIHRleHRUcmFuc2Zvcm06ICd1cHBlcmNhc2UnLFxuICAgICAgICAgICAgY29sb3I6IHRoaXMuZmdDb2xvcixcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5iZ0NvbG9yID8gdGhpcy5iZ0NvbG9yIDogdGhpcy5hdmF0YXJTZXJ2aWNlLmdldFJhbmRvbUNvbG9yKGF2YXRhclZhbHVlKSxcbiAgICAgICAgICAgIGZvbnQ6IE1hdGguZmxvb3IoK3RoaXMuc2l6ZSAvIHRoaXMudGV4dFNpemVSYXRpbykgKyAncHggSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZicsXG4gICAgICAgICAgICBsaW5lSGVpZ2h0OiB0aGlzLnNpemUgKyAncHgnLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgaW1hZ2Ugc3R5bGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldEltYWdlU3R5bGUoKTogU3R5bGUge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czogdGhpcy5ib3JkZXJSYWRpdXMgfHwgJzEwMCUnLFxuICAgICAgICAgICAgd2lkdGg6IHRoaXMuc2l6ZSArICdweCcsXG4gICAgICAgICAgICBoZWlnaHQ6IHRoaXMuc2l6ZSArICdweCcsXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
|
|
@@ -1,65 +0,0 @@
|
|
|
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.ɵprov = i0.ɵɵdefineInjectable({ factory: function AvatarService_Factory() { return new AvatarService(); }, token: AvatarService, providedIn: "root" });
|
|
59
|
-
AvatarService.decorators = [
|
|
60
|
-
{ type: Injectable, args: [{
|
|
61
|
-
providedIn: 'root',
|
|
62
|
-
},] }
|
|
63
|
-
];
|
|
64
|
-
AvatarService.ctorParameters = () => [];
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9hdmF0YXIvc2VydmljZS9hdmF0YXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDN0MsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDOztBQUd2Qzs7R0FFRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBd0J0QjtRQXZCQTs7O1dBR0c7UUFDYyxtQkFBYyxHQUFHLElBQUksR0FBRyxDQUF1QztZQUM1RSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUM7WUFDdEIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO1lBQ2hCLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQztTQUN6QixDQUFDLENBQUM7UUFFYyxpQkFBWSxHQUFHO1lBQzVCLFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1NBQ1osQ0FBQztRQUVlLGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFFNUMsQ0FBQztJQUVULGNBQWMsQ0FBQyxVQUFrQjtRQUNwQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2IsT0FBTyxhQUFhLENBQUM7U0FDeEI7UUFDRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFekQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTSxXQUFXO1FBQ2QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFTyxZQUFZLENBQUMsTUFBYztRQUMvQixPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVNLHFCQUFxQixDQUFDLE1BQWM7UUFDdkMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVNLGtCQUFrQixDQUFDLE1BQWM7UUFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsS0FBYTtRQUNwQyxPQUFPLEtBQUs7YUFDUCxLQUFLLENBQUMsRUFBRSxDQUFDO2FBQ1QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNuQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQzs7OztZQTNESixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTb3VyY2UsIFNvdXJjZUNyZWF0b3J9IGZyb20gJy4uL3NvdXJjZXMvc291cmNlJztcbmltcG9ydCB7R3JhdmF0YXJ9IGZyb20gJy4uL3NvdXJjZXMvZ3JhdmF0YXInO1xuaW1wb3J0IHtJbml0aWFsc30gZnJvbSAnLi4vc291cmNlcy9pbml0aWFscyc7XG5pbXBvcnQge0ltYWdlfSBmcm9tICcuLi9zb3VyY2VzL2ltYWdlJztcbmltcG9ydCB7QXZhdGFyQ29tcG9uZW50fSBmcm9tICcuLi9jb21wb25lbnQvYXZhdGFyLmNvbXBvbmVudCc7XG5cbi8qKlxuICogUHJvdmlkZXMgdXRpbGl0aWVzIG1ldGhvZHMgcmVsYXRlZCB0byBBdmF0YXIgY29tcG9uZW50XG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEF2YXRhclNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIE9yZGVyZWQgcGFpcnMgb2YgcG9zc2libGUgc291cmNlcy4gRmlyc3QgaW4gbGlzdCBpcyB0aGUgaGlnaGVzdCBwcmlvcml0eS5cbiAgICAgKiBBbmQga2V5IG11c3QgbWF0Y2ggb25lIHRoZSBpbnB1dCBvZiBBdmF0YXJDb21wb25lbnQuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBzb3VyY2VDcmVhdG9ycyA9IG5ldyBNYXA8a2V5b2YgQXZhdGFyQ29tcG9uZW50LCBTb3VyY2VDcmVhdG9yPihbXG4gICAgICAgIFsnZ3JhdmF0YXInLCBHcmF2YXRhcl0sXG4gICAgICAgIFsnaW1hZ2UnLCBJbWFnZV0sXG4gICAgICAgIFsnaW5pdGlhbHMnLCBJbml0aWFsc10sXG4gICAgXSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGF2YXRhckNvbG9ycyA9IFtcbiAgICAgICAgJyMxYWJjOWMnLFxuICAgICAgICAnIzM0OThkYicsXG4gICAgICAgICcjZjFjNDBmJyxcbiAgICAgICAgJyM4ZTQ0YWQnLFxuICAgICAgICAnI2U3NGMzYycsXG4gICAgICAgICcjZDM1NDAwJyxcbiAgICAgICAgJyMyYzNlNTAnLFxuICAgICAgICAnIzdmOGM4ZCcsXG4gICAgXTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmFpbGVkU291cmNlcyA9IG5ldyBNYXA8c3RyaW5nLCBTb3VyY2U+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBwdWJsaWMgZ2V0UmFuZG9tQ29sb3IoYXZhdGFyVGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFhdmF0YXJUZXh0KSB7XG4gICAgICAgICAgICByZXR1cm4gJ3RyYW5zcGFyZW50JztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhc2NpaUNvZGVTdW0gPSB0aGlzLmNhbGN1bGF0ZUFzY2lpQ29kZShhdmF0YXJUZXh0KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5hdmF0YXJDb2xvcnNbYXNjaWlDb2RlU3VtICUgdGhpcy5hdmF0YXJDb2xvcnMubGVuZ3RoXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3JlYXRvcnMoKTogSXRlcmFibGVJdGVyYXRvcjxba2V5b2YgQXZhdGFyQ29tcG9uZW50LCBTb3VyY2VDcmVhdG9yXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2VDcmVhdG9ycy5lbnRyaWVzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTb3VyY2VLZXkoc291cmNlOiBTb3VyY2UpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gc291cmNlLmNvbnN0cnVjdG9yLm5hbWUgKyAnLScgKyBzb3VyY2UuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc291cmNlSGFzRmFpbGVkQmVmb3JlKHNvdXJjZTogU291cmNlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZhaWxlZFNvdXJjZXMuaGFzKHRoaXMuZ2V0U291cmNlS2V5KHNvdXJjZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBtYXJrU291cmNlQXNGYWlsZWQoc291cmNlOiBTb3VyY2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mYWlsZWRTb3VyY2VzLnNldCh0aGlzLmdldFNvdXJjZUtleShzb3VyY2UpLCBzb3VyY2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlQXNjaWlDb2RlKHZhbHVlOiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICAgIC5zcGxpdCgnJylcbiAgICAgICAgICAgIC5tYXAobGV0dGVyID0+IGxldHRlci5jaGFyQ29kZUF0KDApKVxuICAgICAgICAgICAgLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+IHByZXZpb3VzICsgY3VycmVudCk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,29 +0,0 @@
|
|
|
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
|
-
// tslint:disable-next-line:no-restricted-globals
|
|
8
|
-
const myWindow = window;
|
|
9
|
-
if ((myWindow === null || myWindow === void 0 ? void 0 : 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 === null || myWindow === void 0 ? void 0 : 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhdmF0YXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9hdmF0YXIvc291cmNlcy9ncmF2YXRhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzNCLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFaEMsU0FBUyxRQUFRO0lBQ2IsZ0VBQWdFO0lBQ2hFLHlFQUF5RTtJQUN6RSx3QkFBd0I7SUFDeEIsaURBQWlEO0lBQ2pELE1BQU0sUUFBUSxHQUF1QixNQUFNLENBQUM7SUFFNUMsSUFBSSxDQUFBLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxnQkFBZ0IsSUFBRyxJQUFJLEVBQUU7UUFDbkMsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUVELE1BQU0sVUFBVSxHQUNaLDJJQUEySSxDQUFDO0lBRWhKLE9BQU8sQ0FBQyxDQUFDLENBQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLFVBQVUsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFBLENBQUM7QUFDdEQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFFBQVMsU0FBUSxNQUFNO0lBQ3pCLFNBQVMsQ0FBQyxJQUFZO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUV2RyxNQUFNLFVBQVUsR0FBRyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2hELE9BQU8sc0NBQXNDLEdBQUcsTUFBTSxVQUFVLFFBQVEsQ0FBQztJQUM3RSxDQUFDO0lBRU0sU0FBUztRQUNaLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TWQ1fSBmcm9tICd0cy1tZDUnO1xuaW1wb3J0IHtTb3VyY2V9IGZyb20gJy4vc291cmNlJztcblxuZnVuY3Rpb24gaXNSZXRpbmEoKTogYm9vbGVhbiB7XG4gICAgLy8gV2UgY2Fubm90IHJlYXNvbmFibHkgaW5qZWN0IGBET0NVTUVOVGAgaGVyZSwgYnV0IHdlIGFyZSBleHRyYVxuICAgIC8vIGNhcmVmdWwgYWJvdXQgdXNhZ2Ugb2YgYHdpbmRvd2AgYW5kIGl0cyBwb3NzaWJsZSBub24tZXhpc3RlbmNlIGluIFNTUixcbiAgICAvLyBzbyB3ZSBzaG91bGQgYmUgZmluZS5cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tcmVzdHJpY3RlZC1nbG9iYWxzXG4gICAgY29uc3QgbXlXaW5kb3c6IFdpbmRvdyB8IHVuZGVmaW5lZCA9IHdpbmRvdztcblxuICAgIGlmIChteVdpbmRvdz8uZGV2aWNlUGl4ZWxSYXRpbyA+IDEuMjUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgbWVkaWFRdWVyeSA9XG4gICAgICAgICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjI1KSwgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMS4yNSksICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiA1LzQpLCAobWluLXJlc29sdXRpb246IDEuMjVkcHB4KSc7XG5cbiAgICByZXR1cm4gISFteVdpbmRvdz8ubWF0Y2hNZWRpYShtZWRpYVF1ZXJ5KS5tYXRjaGVzO1xufVxuXG4vKipcbiAqIFJldHVybiBVUkwgdG8gR3JhdmF0YXIgaW1hZ2UgZnJvbSBlaXRoZXIgYW4gZW1haWwgb3IgYSBNRDVcbiAqL1xuZXhwb3J0IGNsYXNzIEdyYXZhdGFyIGV4dGVuZHMgU291cmNlIHtcbiAgICBwdWJsaWMgZ2V0QXZhdGFyKHNpemU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBtZDUgPSB2YWx1ZS5tYXRjaCgnXlthLWYwLTldezMyfSQnKSA/IHZhbHVlIDogTWQ1Lmhhc2hTdHIodmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCkpLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgY29uc3QgYXZhdGFyU2l6ZSA9IGlzUmV0aW5hKCkgPyBzaXplICogMiA6IHNpemU7XG4gICAgICAgIHJldHVybiBgaHR0cHM6Ly9zZWN1cmUuZ3JhdmF0YXIuY29tL2F2YXRhci8ke21kNX0/cz0ke2F2YXRhclNpemV9JmQ9NDA0YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNUZXh0dWFsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIl19
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, Input } from '@angular/core';
|
|
2
|
-
export class NaturalColumnsPickerColumnDirective {
|
|
3
|
-
constructor(elementRef) {
|
|
4
|
-
this.elementRef = elementRef;
|
|
5
|
-
/**
|
|
6
|
-
* Initial checked state
|
|
7
|
-
*/
|
|
8
|
-
this.checked = true;
|
|
9
|
-
/**
|
|
10
|
-
* Initial visibility state
|
|
11
|
-
*/
|
|
12
|
-
this.hidden = false;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* This must be the column key as defined in matColumnDef
|
|
16
|
-
*/
|
|
17
|
-
set naturalColumnsPickerColumn(value) {
|
|
18
|
-
this.key = value;
|
|
19
|
-
}
|
|
20
|
-
ngOnInit() {
|
|
21
|
-
// Default label to key before real label is accessible
|
|
22
|
-
this.label = this.key;
|
|
23
|
-
}
|
|
24
|
-
ngAfterViewInit() {
|
|
25
|
-
this.label = this.elementRef.nativeElement.textContent;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
NaturalColumnsPickerColumnDirective.decorators = [
|
|
29
|
-
{ type: Directive, args: [{
|
|
30
|
-
selector: '[naturalColumnsPickerColumn]',
|
|
31
|
-
},] }
|
|
32
|
-
];
|
|
33
|
-
NaturalColumnsPickerColumnDirective.ctorParameters = () => [
|
|
34
|
-
{ type: ElementRef }
|
|
35
|
-
];
|
|
36
|
-
NaturalColumnsPickerColumnDirective.propDecorators = {
|
|
37
|
-
checked: [{ type: Input }],
|
|
38
|
-
hidden: [{ type: Input }],
|
|
39
|
-
naturalColumnsPickerColumn: [{ type: Input }]
|
|
40
|
-
};
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1waWNrZXItY29sdW1uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2NvbHVtbnMtcGlja2VyL2NvbHVtbnMtcGlja2VyLWNvbHVtbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUtsRixNQUFNLE9BQU8sbUNBQW1DO0lBa0I1QyxZQUE2QixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBZm5EOztXQUVHO1FBQ2EsWUFBTyxHQUFHLElBQUksQ0FBQztRQUUvQjs7V0FFRztRQUNhLFdBQU0sR0FBRyxLQUFLLENBQUM7SUFPdUIsQ0FBQztJQUV2RDs7T0FFRztJQUNILElBQ0ksMEJBQTBCLENBQUMsS0FBYTtRQUN4QyxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRU0sUUFBUTtRQUNYLHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDMUIsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7SUFDM0QsQ0FBQzs7O1lBdENKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsOEJBQThCO2FBQzNDOzs7WUFKaUMsVUFBVTs7O3NCQVd2QyxLQUFLO3FCQUtMLEtBQUs7eUNBWUwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbmF0dXJhbENvbHVtbnNQaWNrZXJDb2x1bW5dJyxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbENvbHVtbnNQaWNrZXJDb2x1bW5EaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQge1xuICAgIHB1YmxpYyBrZXkhOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsIGNoZWNrZWQgc3RhdGVcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgY2hlY2tlZCA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsIHZpc2liaWxpdHkgc3RhdGVcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaGlkZGVuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBMb2NhbGl6ZWQgbGFiZWwgb2YgY29sdW1uLCBpZiBhYnNlbnQgZGVmYXVsdCB0byBrZXlcbiAgICAgKi9cbiAgICBwdWJsaWMgbGFiZWwhOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG11c3QgYmUgdGhlIGNvbHVtbiBrZXkgYXMgZGVmaW5lZCBpbiBtYXRDb2x1bW5EZWZcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBuYXR1cmFsQ29sdW1uc1BpY2tlckNvbHVtbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMua2V5ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBEZWZhdWx0IGxhYmVsIHRvIGtleSBiZWZvcmUgcmVhbCBsYWJlbCBpcyBhY2Nlc3NpYmxlXG4gICAgICAgIHRoaXMubGFiZWwgPSB0aGlzLmtleTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxhYmVsID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQ7XG4gICAgfVxufVxuIl19
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, 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
|
-
export class NaturalColumnsPickerComponent {
|
|
6
|
-
constructor(changeDetectorRef) {
|
|
7
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
8
|
-
/**
|
|
9
|
-
* Emit a list of valid and selected column keys whenever the selection changes
|
|
10
|
-
*/
|
|
11
|
-
this.selectionChange = new EventEmitter();
|
|
12
|
-
/**
|
|
13
|
-
* Available columns are defined by options in the template
|
|
14
|
-
*/
|
|
15
|
-
this.availableColumns = null;
|
|
16
|
-
/**
|
|
17
|
-
* Displayed options in the dropdown menu
|
|
18
|
-
*/
|
|
19
|
-
this.displayedColumns = [];
|
|
20
|
-
this.ngUnsubscribe = new Subject();
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Set the columns that are wanted but might be unavailable.
|
|
24
|
-
*
|
|
25
|
-
* If a column is unavailable it will be ignored silently. To know what columns were actually applied
|
|
26
|
-
* you should use `selectionChange`.
|
|
27
|
-
*
|
|
28
|
-
* It is often set once on component initialization, but it can also be set again later in the lifespan of the component.
|
|
29
|
-
*/
|
|
30
|
-
set selections(columns) {
|
|
31
|
-
var _a;
|
|
32
|
-
this._selections = columns;
|
|
33
|
-
if (!columns || !this.availableColumns) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
(_a = this.availableColumns) === null || _a === void 0 ? void 0 : _a.forEach(col => {
|
|
37
|
-
col.checked = columns.includes(col.key);
|
|
38
|
-
});
|
|
39
|
-
this.updateColumns();
|
|
40
|
-
}
|
|
41
|
-
ngAfterViewInit() {
|
|
42
|
-
cancellableTimeout(this.ngUnsubscribe).subscribe(() => {
|
|
43
|
-
this.initColumns();
|
|
44
|
-
this.updateColumns();
|
|
45
|
-
this.changeDetectorRef.detectChanges();
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
initColumns() {
|
|
49
|
-
var _a, _b, _c;
|
|
50
|
-
(_a = this.availableColumns) === null || _a === void 0 ? void 0 : _a.forEach(col => {
|
|
51
|
-
var _a;
|
|
52
|
-
col.checked = ((_a = this._selections) === null || _a === void 0 ? void 0 : _a.length) ? this._selections.includes(col.key) : col.checked;
|
|
53
|
-
});
|
|
54
|
-
// Show options only for columns that are not hidden
|
|
55
|
-
this.displayedColumns = (_c = (_b = this.availableColumns) === null || _b === void 0 ? void 0 : _b.filter(col => !col.hidden)) !== null && _c !== void 0 ? _c : [];
|
|
56
|
-
}
|
|
57
|
-
updateColumns() {
|
|
58
|
-
var _a;
|
|
59
|
-
const selectedColumns = (_a = this.availableColumns) === null || _a === void 0 ? void 0 : _a.filter(col => col.checked).map(col => col.key);
|
|
60
|
-
this.selectionChange.emit(selectedColumns);
|
|
61
|
-
}
|
|
62
|
-
ngOnDestroy() {
|
|
63
|
-
this.ngUnsubscribe.next(); // unsubscribe everybody
|
|
64
|
-
this.ngUnsubscribe.complete(); // complete the stream, because we will never emit again
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
NaturalColumnsPickerComponent.decorators = [
|
|
68
|
-
{ type: Component, args: [{
|
|
69
|
-
selector: 'natural-columns-picker',
|
|
70
|
-
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",
|
|
71
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
72
|
-
},] }
|
|
73
|
-
];
|
|
74
|
-
NaturalColumnsPickerComponent.ctorParameters = () => [
|
|
75
|
-
{ type: ChangeDetectorRef }
|
|
76
|
-
];
|
|
77
|
-
NaturalColumnsPickerComponent.propDecorators = {
|
|
78
|
-
selections: [{ type: Input }],
|
|
79
|
-
selectionChange: [{ type: Output }],
|
|
80
|
-
availableColumns: [{ type: ContentChildren, args: [NaturalColumnsPickerColumnDirective,] }]
|
|
81
|
-
};
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvY29sdW1ucy1waWNrZXIvY29sdW1ucy1waWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG1DQUFtQyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDdEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQU83QixNQUFNLE9BQU8sNkJBQTZCO0lBNEN0QyxZQUE2QixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQWxCakU7O1dBRUc7UUFDdUIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBRXpFOztXQUVHO1FBRUkscUJBQWdCLEdBQTBELElBQUksQ0FBQztRQUV0Rjs7V0FFRztRQUNJLHFCQUFnQixHQUEwQyxFQUFFLENBQUM7UUFFNUQsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRXdCLENBQUM7SUF6Q3JFOzs7Ozs7O09BT0c7SUFDSCxJQUNXLFVBQVUsQ0FBQyxPQUE2Qjs7UUFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUM7UUFFM0IsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNwQyxPQUFPO1NBQ1Y7UUFFRCxNQUFBLElBQUksQ0FBQyxnQkFBZ0IsMENBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2pDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQXNCTSxlQUFlO1FBQ2xCLGtCQUFrQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2xELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFdBQVc7O1FBQ2YsTUFBQSxJQUFJLENBQUMsZ0JBQWdCLDBDQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTs7WUFDakMsR0FBRyxDQUFDLE9BQU8sR0FBRyxDQUFBLE1BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFDOUYsQ0FBQyxDQUFDLENBQUM7UUFFSCxvREFBb0Q7UUFDcEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQUEsTUFBQSxJQUFJLENBQUMsZ0JBQWdCLDBDQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxtQ0FBSSxFQUFFLENBQUM7SUFDcEYsQ0FBQztJQUVNLGFBQWE7O1FBQ2hCLE1BQU0sZUFBZSxHQUFHLE1BQUEsSUFBSSxDQUFDLGdCQUFnQiwwQ0FBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5RixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyx3QkFBd0I7UUFDbkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLHdEQUF3RDtJQUMzRixDQUFDOzs7WUE1RUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLHNzQkFBOEM7Z0JBQzlDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2xEOzs7WUFqQkcsaUJBQWlCOzs7eUJBNkJoQixLQUFLOzhCQWtCTCxNQUFNOytCQUtOLGVBQWUsU0FBQyxtQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXR1cmFsQ29sdW1uc1BpY2tlckNvbHVtbkRpcmVjdGl2ZX0gZnJvbSAnLi9jb2x1bW5zLXBpY2tlci1jb2x1bW4uZGlyZWN0aXZlJztcbmltcG9ydCB7Y2FuY2VsbGFibGVUaW1lb3V0fSBmcm9tICcuLi8uLi9jbGFzc2VzL3J4anMnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYXR1cmFsLWNvbHVtbnMtcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sdW1ucy1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsQ29sdW1uc1BpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9ucz86IHN0cmluZ1tdO1xuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBjb2x1bW5zIHRoYXQgYXJlIHdhbnRlZCBidXQgbWlnaHQgYmUgdW5hdmFpbGFibGUuXG4gICAgICpcbiAgICAgKiBJZiBhIGNvbHVtbiBpcyB1bmF2YWlsYWJsZSBpdCB3aWxsIGJlIGlnbm9yZWQgc2lsZW50bHkuIFRvIGtub3cgd2hhdCBjb2x1bW5zIHdlcmUgYWN0dWFsbHkgYXBwbGllZFxuICAgICAqIHlvdSBzaG91bGQgdXNlIGBzZWxlY3Rpb25DaGFuZ2VgLlxuICAgICAqXG4gICAgICogSXQgaXMgb2Z0ZW4gc2V0IG9uY2Ugb24gY29tcG9uZW50IGluaXRpYWxpemF0aW9uLCBidXQgaXQgY2FuIGFsc28gYmUgc2V0IGFnYWluIGxhdGVyIGluIHRoZSBsaWZlc3BhbiBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBzZWxlY3Rpb25zKGNvbHVtbnM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbnMgPSBjb2x1bW5zO1xuXG4gICAgICAgIGlmICghY29sdW1ucyB8fCAhdGhpcy5hdmFpbGFibGVDb2x1bW5zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmF2YWlsYWJsZUNvbHVtbnM/LmZvckVhY2goY29sID0+IHtcbiAgICAgICAgICAgIGNvbC5jaGVja2VkID0gY29sdW1ucy5pbmNsdWRlcyhjb2wua2V5KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVDb2x1bW5zKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW1pdCBhIGxpc3Qgb2YgdmFsaWQgYW5kIHNlbGVjdGVkIGNvbHVtbiBrZXlzIHdoZW5ldmVyIHRoZSBzZWxlY3Rpb24gY2hhbmdlc1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcblxuICAgIC8qKlxuICAgICAqIEF2YWlsYWJsZSBjb2x1bW5zIGFyZSBkZWZpbmVkIGJ5IG9wdGlvbnMgaW4gdGhlIHRlbXBsYXRlXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihOYXR1cmFsQ29sdW1uc1BpY2tlckNvbHVtbkRpcmVjdGl2ZSlcbiAgICBwdWJsaWMgYXZhaWxhYmxlQ29sdW1uczogUXVlcnlMaXN0PE5hdHVyYWxDb2x1bW5zUGlja2VyQ29sdW1uRGlyZWN0aXZlPiB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogRGlzcGxheWVkIG9wdGlvbnMgaW4gdGhlIGRyb3Bkb3duIG1lbnVcbiAgICAgKi9cbiAgICBwdWJsaWMgZGlzcGxheWVkQ29sdW1uczogTmF0dXJhbENvbHVtbnNQaWNrZXJDb2x1bW5EaXJlY3RpdmVbXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY2FuY2VsbGFibGVUaW1lb3V0KHRoaXMubmdVbnN1YnNjcmliZSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5pdENvbHVtbnMoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ29sdW1ucygpO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdENvbHVtbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXZhaWxhYmxlQ29sdW1ucz8uZm9yRWFjaChjb2wgPT4ge1xuICAgICAgICAgICAgY29sLmNoZWNrZWQgPSB0aGlzLl9zZWxlY3Rpb25zPy5sZW5ndGggPyB0aGlzLl9zZWxlY3Rpb25zLmluY2x1ZGVzKGNvbC5rZXkpIDogY29sLmNoZWNrZWQ7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFNob3cgb3B0aW9ucyBvbmx5IGZvciBjb2x1bW5zIHRoYXQgYXJlIG5vdCBoaWRkZW5cbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5hdmFpbGFibGVDb2x1bW5zPy5maWx0ZXIoY29sID0+ICFjb2wuaGlkZGVuKSA/PyBbXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlQ29sdW1ucygpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRDb2x1bW5zID0gdGhpcy5hdmFpbGFibGVDb2x1bW5zPy5maWx0ZXIoY29sID0+IGNvbC5jaGVja2VkKS5tYXAoY29sID0+IGNvbC5rZXkpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHNlbGVjdGVkQ29sdW1ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpOyAvLyB1bnN1YnNjcmliZSBldmVyeWJvZHlcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7IC8vIGNvbXBsZXRlIHRoZSBzdHJlYW0sIGJlY2F1c2Ugd2Ugd2lsbCBuZXZlciBlbWl0IGFnYWluXG4gICAgfVxufVxuIl19
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { FormsModule } from '@angular/forms';
|
|
4
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
-
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
6
|
-
import { MatMenuModule } from '@angular/material/menu';
|
|
7
|
-
import { NaturalIconModule } from '../icon/icon.module';
|
|
8
|
-
import { NaturalColumnsPickerColumnDirective } from './columns-picker-column.directive';
|
|
9
|
-
import { NaturalColumnsPickerComponent } from './columns-picker.component';
|
|
10
|
-
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
11
|
-
export class NaturalColumnsPickerModule {
|
|
12
|
-
}
|
|
13
|
-
NaturalColumnsPickerModule.decorators = [
|
|
14
|
-
{ type: NgModule, args: [{
|
|
15
|
-
declarations: [NaturalColumnsPickerColumnDirective, NaturalColumnsPickerComponent],
|
|
16
|
-
imports: [
|
|
17
|
-
CommonModule,
|
|
18
|
-
FormsModule,
|
|
19
|
-
MatMenuModule,
|
|
20
|
-
MatButtonModule,
|
|
21
|
-
MatCheckboxModule,
|
|
22
|
-
NaturalIconModule,
|
|
23
|
-
MatTooltipModule,
|
|
24
|
-
],
|
|
25
|
-
exports: [NaturalColumnsPickerColumnDirective, NaturalColumnsPickerComponent],
|
|
26
|
-
},] }
|
|
27
|
-
];
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvY29sdW1ucy1waWNrZXIvY29sdW1ucy1waWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxtQ0FBbUMsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RGLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBZTNELE1BQU0sT0FBTywwQkFBMEI7OztZQWJ0QyxRQUFRLFNBQUM7Z0JBQ04sWUFBWSxFQUFFLENBQUMsbUNBQW1DLEVBQUUsNkJBQTZCLENBQUM7Z0JBQ2xGLE9BQU8sRUFBRTtvQkFDTCxZQUFZO29CQUNaLFdBQVc7b0JBQ1gsYUFBYTtvQkFDYixlQUFlO29CQUNmLGlCQUFpQjtvQkFDakIsaUJBQWlCO29CQUNqQixnQkFBZ0I7aUJBQ25CO2dCQUNELE9BQU8sRUFBRSxDQUFDLG1DQUFtQyxFQUFFLDZCQUE2QixDQUFDO2FBQ2hGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TWF0QnV0dG9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtNYXRDaGVja2JveE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHtNYXRNZW51TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7TmF0dXJhbEljb25Nb2R1bGV9IGZyb20gJy4uL2ljb24vaWNvbi5tb2R1bGUnO1xuaW1wb3J0IHtOYXR1cmFsQ29sdW1uc1BpY2tlckNvbHVtbkRpcmVjdGl2ZX0gZnJvbSAnLi9jb2x1bW5zLXBpY2tlci1jb2x1bW4uZGlyZWN0aXZlJztcbmltcG9ydCB7TmF0dXJhbENvbHVtbnNQaWNrZXJDb21wb25lbnR9IGZyb20gJy4vY29sdW1ucy1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7TWF0VG9vbHRpcE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbTmF0dXJhbENvbHVtbnNQaWNrZXJDb2x1bW5EaXJlY3RpdmUsIE5hdHVyYWxDb2x1bW5zUGlja2VyQ29tcG9uZW50XSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgICAgIE5hdHVyYWxJY29uTW9kdWxlLFxuICAgICAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIF0sXG4gICAgZXhwb3J0czogW05hdHVyYWxDb2x1bW5zUGlja2VyQ29sdW1uRGlyZWN0aXZlLCBOYXR1cmFsQ29sdW1uc1BpY2tlckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxDb2x1bW5zUGlja2VyTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { NaturalHttpPrefixDirective } from '../../directives/http-prefix.directive';
|
|
4
|
-
import { NaturalLinkableTabDirective } from './directives/linkable-tab.directive';
|
|
5
|
-
import { ReactiveAsteriskDirective } from './directives/reactive-asterisk.directive';
|
|
6
|
-
import { NaturalCapitalizePipe } from './pipes/capitalize.pipe';
|
|
7
|
-
import { NaturalEllipsisPipe } from './pipes/ellipsis.pipe';
|
|
8
|
-
import { NaturalEnumPipe } from './pipes/enum.pipe';
|
|
9
|
-
import { localStorageProvider, sessionStorageProvider } from './services/memory-storage';
|
|
10
|
-
import { NaturalSwissDatePipe } from './pipes/swiss-date.pipe';
|
|
11
|
-
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
12
|
-
import { MatInputModule } from '@angular/material/input';
|
|
13
|
-
import { MatSelectModule } from '@angular/material/select';
|
|
14
|
-
import { NaturalSrcDensityDirective } from './directives/src-density.directive';
|
|
15
|
-
const declarationsToExport = [
|
|
16
|
-
NaturalCapitalizePipe,
|
|
17
|
-
NaturalEllipsisPipe,
|
|
18
|
-
NaturalEnumPipe,
|
|
19
|
-
NaturalSwissDatePipe,
|
|
20
|
-
ReactiveAsteriskDirective,
|
|
21
|
-
NaturalHttpPrefixDirective,
|
|
22
|
-
NaturalSrcDensityDirective,
|
|
23
|
-
NaturalLinkableTabDirective,
|
|
24
|
-
];
|
|
25
|
-
export class NaturalCommonModule {
|
|
26
|
-
}
|
|
27
|
-
NaturalCommonModule.decorators = [
|
|
28
|
-
{ type: NgModule, args: [{
|
|
29
|
-
declarations: [...declarationsToExport],
|
|
30
|
-
imports: [CommonModule, MatFormFieldModule, MatInputModule, MatSelectModule],
|
|
31
|
-
exports: [...declarationsToExport],
|
|
32
|
-
providers: [sessionStorageProvider, localStorageProvider],
|
|
33
|
-
},] }
|
|
34
|
-
];
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2NvbW1vbi9jb21tb24tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ2xGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRTlFLE1BQU0sb0JBQW9CLEdBQUc7SUFDekIscUJBQXFCO0lBQ3JCLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2Ysb0JBQW9CO0lBQ3BCLHlCQUF5QjtJQUN6QiwwQkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLDJCQUEyQjtDQUM5QixDQUFDO0FBUUYsTUFBTSxPQUFPLG1CQUFtQjs7O1lBTi9CLFFBQVEsU0FBQztnQkFDTixZQUFZLEVBQUUsQ0FBQyxHQUFHLG9CQUFvQixDQUFDO2dCQUN2QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGVBQWUsQ0FBQztnQkFDNUUsT0FBTyxFQUFFLENBQUMsR0FBRyxvQkFBb0IsQ0FBQztnQkFDbEMsU0FBUyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsb0JBQW9CLENBQUM7YUFDNUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXR1cmFsSHR0cFByZWZpeERpcmVjdGl2ZX0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9odHRwLXByZWZpeC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtOYXR1cmFsTGlua2FibGVUYWJEaXJlY3RpdmV9IGZyb20gJy4vZGlyZWN0aXZlcy9saW5rYWJsZS10YWIuZGlyZWN0aXZlJztcbmltcG9ydCB7UmVhY3RpdmVBc3Rlcmlza0RpcmVjdGl2ZX0gZnJvbSAnLi9kaXJlY3RpdmVzL3JlYWN0aXZlLWFzdGVyaXNrLmRpcmVjdGl2ZSc7XG5pbXBvcnQge05hdHVyYWxDYXBpdGFsaXplUGlwZX0gZnJvbSAnLi9waXBlcy9jYXBpdGFsaXplLnBpcGUnO1xuaW1wb3J0IHtOYXR1cmFsRWxsaXBzaXNQaXBlfSBmcm9tICcuL3BpcGVzL2VsbGlwc2lzLnBpcGUnO1xuaW1wb3J0IHtOYXR1cmFsRW51bVBpcGV9IGZyb20gJy4vcGlwZXMvZW51bS5waXBlJztcbmltcG9ydCB7bG9jYWxTdG9yYWdlUHJvdmlkZXIsIHNlc3Npb25TdG9yYWdlUHJvdmlkZXJ9IGZyb20gJy4vc2VydmljZXMvbWVtb3J5LXN0b3JhZ2UnO1xuaW1wb3J0IHtOYXR1cmFsU3dpc3NEYXRlUGlwZX0gZnJvbSAnLi9waXBlcy9zd2lzcy1kYXRlLnBpcGUnO1xuaW1wb3J0IHtNYXRGb3JtRmllbGRNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHtNYXRJbnB1dE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHtNYXRTZWxlY3RNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQge05hdHVyYWxTcmNEZW5zaXR5RGlyZWN0aXZlfSBmcm9tICcuL2RpcmVjdGl2ZXMvc3JjLWRlbnNpdHkuZGlyZWN0aXZlJztcblxuY29uc3QgZGVjbGFyYXRpb25zVG9FeHBvcnQgPSBbXG4gICAgTmF0dXJhbENhcGl0YWxpemVQaXBlLFxuICAgIE5hdHVyYWxFbGxpcHNpc1BpcGUsXG4gICAgTmF0dXJhbEVudW1QaXBlLFxuICAgIE5hdHVyYWxTd2lzc0RhdGVQaXBlLFxuICAgIFJlYWN0aXZlQXN0ZXJpc2tEaXJlY3RpdmUsXG4gICAgTmF0dXJhbEh0dHBQcmVmaXhEaXJlY3RpdmUsXG4gICAgTmF0dXJhbFNyY0RlbnNpdHlEaXJlY3RpdmUsXG4gICAgTmF0dXJhbExpbmthYmxlVGFiRGlyZWN0aXZlLFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFsuLi5kZWNsYXJhdGlvbnNUb0V4cG9ydF0sXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0Rm9ybUZpZWxkTW9kdWxlLCBNYXRJbnB1dE1vZHVsZSwgTWF0U2VsZWN0TW9kdWxlXSxcbiAgICBleHBvcnRzOiBbLi4uZGVjbGFyYXRpb25zVG9FeHBvcnRdLFxuICAgIHByb3ZpZGVyczogW3Nlc3Npb25TdG9yYWdlUHJvdmlkZXIsIGxvY2FsU3RvcmFnZVByb3ZpZGVyXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbENvbW1vbk1vZHVsZSB7fVxuIl19
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import { MatTabGroup } from '@angular/material/tabs';
|
|
3
|
-
import { ActivatedRoute, Router } from '@angular/router';
|
|
4
|
-
import { clone } from 'lodash-es';
|
|
5
|
-
import { takeUntil } from 'rxjs/operators';
|
|
6
|
-
import { NaturalAbstractController } from '../../../classes/abstract-controller';
|
|
7
|
-
/**
|
|
8
|
-
* Returns an identifier for the tab
|
|
9
|
-
*/
|
|
10
|
-
function getTabId(tab) {
|
|
11
|
-
var _a, _b;
|
|
12
|
-
return (_b = (_a = tab.content) === null || _a === void 0 ? void 0 : _a.viewContainerRef.element.nativeElement.id) !== null && _b !== void 0 ? _b : '';
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Usage :
|
|
16
|
-
*
|
|
17
|
-
* <mat-tab-group [naturalLinkableTab]="!isPanel">
|
|
18
|
-
* <mat-tab label="Third 1">third 1</mat-tab> // First tab doesn't need id. This keeps url clean on default one
|
|
19
|
-
* <mat-tab label="Third 2" id="third2">Third 2</mat-tab>
|
|
20
|
-
* ...
|
|
21
|
-
* </mat-tab-group>
|
|
22
|
-
*/
|
|
23
|
-
export class NaturalLinkableTabDirective extends NaturalAbstractController {
|
|
24
|
-
constructor(component, route, router) {
|
|
25
|
-
super();
|
|
26
|
-
this.component = component;
|
|
27
|
-
this.route = route;
|
|
28
|
-
this.router = router;
|
|
29
|
-
/**
|
|
30
|
-
* If false, disables the persistent navigation
|
|
31
|
-
*/
|
|
32
|
-
this.naturalLinkableTab = true;
|
|
33
|
-
}
|
|
34
|
-
ngAfterViewInit() {
|
|
35
|
-
if (this.naturalLinkableTab === false) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
// When url params change, update the mat-tab-group selected tab
|
|
39
|
-
this.route.fragment.pipe(takeUntil(this.ngUnsubscribe)).subscribe(fragment => {
|
|
40
|
-
// Get index of tab that matches wanted name
|
|
41
|
-
const tabIndex = this.getTabIndex(fragment);
|
|
42
|
-
// If tab index is valid (>= 0) go to given fragment
|
|
43
|
-
// If there is no fragment at all, go to first tab (index is -1 in this case)
|
|
44
|
-
if (tabIndex >= 0 || !fragment) {
|
|
45
|
-
this.component.selectedIndex = tabIndex;
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
// When mat-tab-groups selected tab change, update url
|
|
49
|
-
this.component.selectedTabChange.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event) => {
|
|
50
|
-
const activatedTabName = getTabId(event.tab);
|
|
51
|
-
const segments = this.route.snapshot.url;
|
|
52
|
-
if (!segments.length) {
|
|
53
|
-
// This should never happen in normal usage, because it would means there is no route at all in the app
|
|
54
|
-
throw new Error('Cannot update URL for tabs without any segments in URL');
|
|
55
|
-
}
|
|
56
|
-
// Get url matrix params (/segment;matrix=param) only without route params (segment/:id)
|
|
57
|
-
const params = clone(segments[segments.length - 1].parameters);
|
|
58
|
-
this.router.navigate(['.', params], {
|
|
59
|
-
relativeTo: this.route,
|
|
60
|
-
queryParamsHandling: 'preserve',
|
|
61
|
-
fragment: activatedTabName && activatedTabName.length ? activatedTabName : undefined,
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
getTabIndex(fragment) {
|
|
66
|
-
return this.component._tabs.toArray().findIndex(tab => fragment === getTabId(tab));
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
NaturalLinkableTabDirective.decorators = [
|
|
70
|
-
{ type: Directive, args: [{
|
|
71
|
-
selector: 'mat-tab-group[naturalLinkableTab]',
|
|
72
|
-
},] }
|
|
73
|
-
];
|
|
74
|
-
NaturalLinkableTabDirective.ctorParameters = () => [
|
|
75
|
-
{ type: MatTabGroup },
|
|
76
|
-
{ type: ActivatedRoute },
|
|
77
|
-
{ type: Router }
|
|
78
|
-
];
|
|
79
|
-
NaturalLinkableTabDirective.propDecorators = {
|
|
80
|
-
naturalLinkableTab: [{ type: Input }]
|
|
81
|
-
};
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2FibGUtdGFiLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2NvbW1vbi9kaXJlY3RpdmVzL2xpbmthYmxlLXRhYi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBNEIsV0FBVyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDOUUsT0FBTyxFQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUUvRTs7R0FFRztBQUNILFNBQVMsUUFBUSxDQUFDLEdBQVc7O0lBQ3pCLE9BQU8sTUFBQSxNQUFBLEdBQUcsQ0FBQyxPQUFPLDBDQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxtQ0FBSSxFQUFFLENBQUM7QUFDeEUsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBSUgsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHlCQUF5QjtJQU10RSxZQUNxQixTQUFzQixFQUN0QixLQUFxQixFQUNyQixNQUFjO1FBRS9CLEtBQUssRUFBRSxDQUFDO1FBSlMsY0FBUyxHQUFULFNBQVMsQ0FBYTtRQUN0QixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBUm5DOztXQUVHO1FBQ2EsdUJBQWtCLEdBQWlCLElBQUksQ0FBQztJQVF4RCxDQUFDO0lBRU0sZUFBZTtRQUNsQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxLQUFLLEVBQUU7WUFDbkMsT0FBTztTQUNWO1FBRUQsZ0VBQWdFO1FBQ2hFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3pFLDRDQUE0QztZQUM1QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRTVDLG9EQUFvRDtZQUNwRCw2RUFBNkU7WUFDN0UsSUFBSSxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUM7YUFDM0M7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILHNEQUFzRDtRQUN0RCxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFO1lBQ3hHLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2xCLHVHQUF1RztnQkFDdkcsTUFBTSxJQUFJLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO2FBQzdFO1lBRUQsd0ZBQXdGO1lBQ3hGLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUUvRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsRUFBRTtnQkFDaEMsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUN0QixtQkFBbUIsRUFBRSxVQUFVO2dCQUMvQixRQUFRLEVBQUUsZ0JBQWdCLElBQUksZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsU0FBUzthQUN2RixDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxXQUFXLENBQUMsUUFBdUI7UUFDdkMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkYsQ0FBQzs7O1lBeERKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsbUNBQW1DO2FBQ2hEOzs7WUF4QmtDLFdBQVc7WUFDdEMsY0FBYztZQUFFLE1BQU07OztpQ0E0QnpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXRUYWIsIE1hdFRhYkNoYW5nZUV2ZW50LCBNYXRUYWJHcm91cH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge2Nsb25lfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TmF0dXJhbEFic3RyYWN0Q29udHJvbGxlcn0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9hYnN0cmFjdC1jb250cm9sbGVyJztcblxuLyoqXG4gKiBSZXR1cm5zIGFuIGlkZW50aWZpZXIgZm9yIHRoZSB0YWJcbiAqL1xuZnVuY3Rpb24gZ2V0VGFiSWQodGFiOiBNYXRUYWIpOiBzdHJpbmcge1xuICAgIHJldHVybiB0YWIuY29udGVudD8udmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaWQgPz8gJyc7XG59XG5cbi8qKlxuICogVXNhZ2UgOlxuICpcbiAqIDxtYXQtdGFiLWdyb3VwIFtuYXR1cmFsTGlua2FibGVUYWJdPVwiIWlzUGFuZWxcIj5cbiAqICAgICA8bWF0LXRhYiBsYWJlbD1cIlRoaXJkIDFcIj50aGlyZCAxPC9tYXQtdGFiPiAvLyBGaXJzdCB0YWIgZG9lc24ndCBuZWVkIGlkLiBUaGlzIGtlZXBzIHVybCBjbGVhbiBvbiBkZWZhdWx0IG9uZVxuICogICAgIDxtYXQtdGFiIGxhYmVsPVwiVGhpcmQgMlwiIGlkPVwidGhpcmQyXCI+VGhpcmQgMjwvbWF0LXRhYj5cbiAqICAgICAuLi5cbiAqIDwvbWF0LXRhYi1ncm91cD5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdtYXQtdGFiLWdyb3VwW25hdHVyYWxMaW5rYWJsZVRhYl0nLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsTGlua2FibGVUYWJEaXJlY3RpdmUgZXh0ZW5kcyBOYXR1cmFsQWJzdHJhY3RDb250cm9sbGVyIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqXG4gICAgICogSWYgZmFsc2UsIGRpc2FibGVzIHRoZSBwZXJzaXN0ZW50IG5hdmlnYXRpb25cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbmF0dXJhbExpbmthYmxlVGFiOiBib29sZWFuIHwgJycgPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50OiBNYXRUYWJHcm91cCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubmF0dXJhbExpbmthYmxlVGFiID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2hlbiB1cmwgcGFyYW1zIGNoYW5nZSwgdXBkYXRlIHRoZSBtYXQtdGFiLWdyb3VwIHNlbGVjdGVkIHRhYlxuICAgICAgICB0aGlzLnJvdXRlLmZyYWdtZW50LnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZShmcmFnbWVudCA9PiB7XG4gICAgICAgICAgICAvLyBHZXQgaW5kZXggb2YgdGFiIHRoYXQgbWF0Y2hlcyB3YW50ZWQgbmFtZVxuICAgICAgICAgICAgY29uc3QgdGFiSW5kZXggPSB0aGlzLmdldFRhYkluZGV4KGZyYWdtZW50KTtcblxuICAgICAgICAgICAgLy8gSWYgdGFiIGluZGV4IGlzIHZhbGlkICg+PSAwKSBnbyB0byBnaXZlbiBmcmFnbWVudFxuICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gZnJhZ21lbnQgYXQgYWxsLCBnbyB0byBmaXJzdCB0YWIgKGluZGV4IGlzIC0xIGluIHRoaXMgY2FzZSlcbiAgICAgICAgICAgIGlmICh0YWJJbmRleCA+PSAwIHx8ICFmcmFnbWVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50LnNlbGVjdGVkSW5kZXggPSB0YWJJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gV2hlbiBtYXQtdGFiLWdyb3VwcyBzZWxlY3RlZCB0YWIgY2hhbmdlLCB1cGRhdGUgdXJsXG4gICAgICAgIHRoaXMuY29tcG9uZW50LnNlbGVjdGVkVGFiQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoZXZlbnQ6IE1hdFRhYkNoYW5nZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhY3RpdmF0ZWRUYWJOYW1lID0gZ2V0VGFiSWQoZXZlbnQudGFiKTtcbiAgICAgICAgICAgIGNvbnN0IHNlZ21lbnRzID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC51cmw7XG4gICAgICAgICAgICBpZiAoIXNlZ21lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIC8vIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiBpbiBub3JtYWwgdXNhZ2UsIGJlY2F1c2UgaXQgd291bGQgbWVhbnMgdGhlcmUgaXMgbm8gcm91dGUgYXQgYWxsIGluIHRoZSBhcHBcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1cGRhdGUgVVJMIGZvciB0YWJzIHdpdGhvdXQgYW55IHNlZ21lbnRzIGluIFVSTCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBHZXQgdXJsIG1hdHJpeCBwYXJhbXMgKC9zZWdtZW50O21hdHJpeD1wYXJhbSkgb25seSB3aXRob3V0IHJvdXRlIHBhcmFtcyAoc2VnbWVudC86aWQpXG4gICAgICAgICAgICBjb25zdCBwYXJhbXMgPSBjbG9uZShzZWdtZW50c1tzZWdtZW50cy5sZW5ndGggLSAxXS5wYXJhbWV0ZXJzKTtcblxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuJywgcGFyYW1zXSwge1xuICAgICAgICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ3ByZXNlcnZlJyxcbiAgICAgICAgICAgICAgICBmcmFnbWVudDogYWN0aXZhdGVkVGFiTmFtZSAmJiBhY3RpdmF0ZWRUYWJOYW1lLmxlbmd0aCA/IGFjdGl2YXRlZFRhYk5hbWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUYWJJbmRleChmcmFnbWVudDogc3RyaW5nIHwgbnVsbCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBvbmVudC5fdGFicy50b0FycmF5KCkuZmluZEluZGV4KHRhYiA9PiBmcmFnbWVudCA9PT0gZ2V0VGFiSWQodGFiKSk7XG4gICAgfVxufVxuIl19
|