@sumaris-net/ngx-components 2.7.2-rc9 → 2.7.3-rc2
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/doc/changelog.md +36 -0
- package/esm2022/public_api.mjs +11 -9
- package/esm2022/src/app/admin/admin-routing.module.mjs +10 -17
- package/esm2022/src/app/admin/admin.module.mjs +7 -9
- package/esm2022/src/app/admin/services/filter/person.filter.mjs +3 -3
- package/esm2022/src/app/admin/services/person.service.mjs +31 -31
- package/esm2022/src/app/admin/services/validator/person.validator.mjs +10 -10
- package/esm2022/src/app/admin/users/users.mjs +14 -7
- package/esm2022/src/app/admin/users/users.module.mjs +8 -10
- package/esm2022/src/app/core/about/about.modal.mjs +7 -7
- package/esm2022/src/app/core/about/about.module.mjs +8 -21
- package/esm2022/src/app/core/account/account.module.mjs +9 -15
- package/esm2022/src/app/core/account/account.page.mjs +5 -5
- package/esm2022/src/app/core/account/new-token.modal.mjs +9 -8
- package/esm2022/src/app/core/account/token.table.mjs +5 -5
- package/esm2022/src/app/core/auth/auth.form.mjs +9 -9
- package/esm2022/src/app/core/auth/auth.modal.mjs +6 -6
- package/esm2022/src/app/core/auth/auth.module.mjs +9 -9
- package/esm2022/src/app/core/core.module.mjs +17 -46
- package/esm2022/src/app/core/core.testing.module.mjs +15 -15
- package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +16 -15
- package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +9 -13
- package/esm2022/src/app/core/form/entity/editor.class.mjs +87 -89
- package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +12 -17
- package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +31 -32
- package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +5 -5
- package/esm2022/src/app/core/form/entity/entity.module.mjs +8 -14
- package/esm2022/src/app/core/form/form.class.mjs +12 -12
- package/esm2022/src/app/core/form/form.module.mjs +8 -8
- package/esm2022/src/app/core/form/form.utils.mjs +25 -23
- package/esm2022/src/app/core/form/list/list.form.mjs +13 -12
- package/esm2022/src/app/core/form/list/list.module.mjs +8 -12
- package/esm2022/src/app/core/form/properties/properties.form.mjs +12 -15
- package/esm2022/src/app/core/form/properties/properties.module.mjs +9 -15
- package/esm2022/src/app/core/form/properties/properties.table.mjs +24 -26
- package/esm2022/src/app/core/form/properties/property.validator.mjs +6 -6
- package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +18 -18
- package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +8 -24
- package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +9 -8
- package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +10 -25
- package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +6 -6
- package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +9 -13
- package/esm2022/src/app/core/graphql/graphql.module.mjs +8 -13
- package/esm2022/src/app/core/graphql/graphql.service.mjs +71 -95
- package/esm2022/src/app/core/graphql/graphql.utils.mjs +12 -11
- package/esm2022/src/app/core/home/home.mjs +26 -27
- package/esm2022/src/app/core/home/home.module.mjs +10 -19
- package/esm2022/src/app/core/icon/icon.component.mjs +5 -5
- package/esm2022/src/app/core/icon/icon.module.mjs +8 -17
- package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +33 -37
- package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +9 -13
- package/esm2022/src/app/core/menu/menu.component.mjs +5 -6
- package/esm2022/src/app/core/menu/menu.model.mjs +21 -18
- package/esm2022/src/app/core/menu/menu.module.mjs +7 -12
- package/esm2022/src/app/core/menu/menu.service.mjs +44 -60
- package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +4 -4
- package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +5 -5
- package/esm2022/src/app/core/menu/testing/menu.testing.mjs +5 -5
- package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +8 -27
- package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +6 -7
- package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +9 -13
- package/esm2022/src/app/core/peer/select-peer.modal.mjs +8 -9
- package/esm2022/src/app/core/peer/select-peer.module.mjs +10 -19
- package/esm2022/src/app/core/register/register-confirm.page.mjs +12 -12
- package/esm2022/src/app/core/register/register.form.mjs +5 -5
- package/esm2022/src/app/core/register/register.modal.mjs +6 -6
- package/esm2022/src/app/core/register/register.module.mjs +8 -29
- package/esm2022/src/app/core/services/account.service.mjs +172 -160
- package/esm2022/src/app/core/services/auth-guard.service.mjs +13 -15
- package/esm2022/src/app/core/services/base-entity-service.class.mjs +51 -60
- package/esm2022/src/app/core/services/base-graphql-service.class.mjs +39 -33
- package/esm2022/src/app/core/services/base58.mjs +8 -4
- package/esm2022/src/app/core/services/config/core.config.mjs +37 -37
- package/esm2022/src/app/core/services/config.service.mjs +51 -49
- package/esm2022/src/app/core/services/crypto.service.mjs +11 -11
- package/esm2022/src/app/core/services/errors.mjs +3 -3
- package/esm2022/src/app/core/services/local-settings.service.mjs +36 -37
- package/esm2022/src/app/core/services/model/account.model.mjs +12 -17
- package/esm2022/src/app/core/services/model/config.model.mjs +5 -5
- package/esm2022/src/app/core/services/model/department.model.mjs +3 -2
- package/esm2022/src/app/core/services/model/entity.decorators.mjs +6 -6
- package/esm2022/src/app/core/services/model/entity.model.mjs +25 -25
- package/esm2022/src/app/core/services/model/filter.model.mjs +12 -15
- package/esm2022/src/app/core/services/model/history.model.mjs +1 -1
- package/esm2022/src/app/core/services/model/model.enum.mjs +2 -2
- package/esm2022/src/app/core/services/model/peer.model.mjs +9 -8
- package/esm2022/src/app/core/services/model/person.model.mjs +18 -17
- package/esm2022/src/app/core/services/model/referential.model.mjs +13 -13
- package/esm2022/src/app/core/services/model/settings.model.mjs +1 -1
- package/esm2022/src/app/core/services/model/token.model.mjs +2 -3
- package/esm2022/src/app/core/services/model/tree-item-entity.model.mjs +2 -6
- package/esm2022/src/app/core/services/network.service.mjs +42 -43
- package/esm2022/src/app/core/services/network.types.mjs +1 -1
- package/esm2022/src/app/core/services/network.utils.mjs +3 -3
- package/esm2022/src/app/core/services/pipes/account.pipes.mjs +11 -11
- package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +6 -6
- package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +6 -6
- package/esm2022/src/app/core/services/pipes/pipes.module.mjs +54 -0
- package/esm2022/src/app/core/services/pipes/referential-to-string.pipe.mjs +21 -0
- package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +11 -11
- package/esm2022/src/app/core/services/platform.service.mjs +45 -49
- package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +32 -39
- package/esm2022/src/app/core/services/storage/entity-store.class.mjs +36 -45
- package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +1 -1
- package/esm2022/src/app/core/services/testing/referential.validator.mjs +14 -14
- package/esm2022/src/app/core/services/validator/account.validator.mjs +5 -5
- package/esm2022/src/app/core/services/validator/base.validator.class.mjs +4 -4
- package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +13 -13
- package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +5 -5
- package/esm2022/src/app/core/services/validator/user-token.validator.mjs +12 -9
- package/esm2022/src/app/core/settings/settings.module.mjs +8 -21
- package/esm2022/src/app/core/settings/settings.page.mjs +12 -17
- package/esm2022/src/app/core/table/actions-column.component.mjs +13 -5
- package/esm2022/src/app/core/table/async-table.class.mjs +106 -112
- package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +21 -26
- package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +26 -29
- package/esm2022/src/app/core/table/memory-table.class.mjs +4 -4
- package/esm2022/src/app/core/table/table-select-columns.component.mjs +8 -8
- package/esm2022/src/app/core/table/table.class.mjs +107 -110
- package/esm2022/src/app/core/table/table.model.mjs +1 -1
- package/esm2022/src/app/core/table/table.module.mjs +8 -12
- package/esm2022/src/app/core/table/table.utils.mjs +2 -4
- package/esm2022/src/app/core/table/testing/table-validator.service.mjs +3 -3
- package/esm2022/src/app/core/table/testing/table.testing.mjs +9 -9
- package/esm2022/src/app/core/table/testing/table.testing.module.mjs +8 -33
- package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +4 -4
- package/esm2022/src/app/core/table/testing/table2.testing.mjs +28 -26
- package/esm2022/src/app/shared/alerts.mjs +37 -35
- package/esm2022/src/app/shared/audio/audio.mjs +25 -27
- package/esm2022/src/app/shared/audio/audio.testing.mjs +5 -5
- package/esm2022/src/app/shared/audio/audio.testing.module.mjs +10 -25
- package/esm2022/src/app/shared/capacitor/keyboard.mjs +5 -5
- package/esm2022/src/app/shared/capacitor/plugins.mjs +1 -1
- package/esm2022/src/app/shared/constants.mjs +2 -3
- package/esm2022/src/app/shared/dates.mjs +5 -8
- package/esm2022/src/app/shared/debug/debug-service.class.mjs +1 -1
- package/esm2022/src/app/shared/debug/debug.component.mjs +5 -5
- package/esm2022/src/app/shared/debug/debug.module.mjs +8 -29
- package/esm2022/src/app/shared/directives/autofocus.directive.mjs +8 -12
- package/esm2022/src/app/shared/directives/autotitle.directive.mjs +3 -3
- package/esm2022/src/app/shared/directives/directives.module.mjs +8 -29
- package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +4 -4
- package/esm2022/src/app/shared/directives/ng-var.directive.mjs +4 -4
- package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +3 -3
- package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +4 -4
- package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +4 -4
- package/esm2022/src/app/shared/events.mjs +6 -8
- package/esm2022/src/app/shared/file/csv.utils.mjs +22 -18
- package/esm2022/src/app/shared/file/file.service.mjs +11 -15
- package/esm2022/src/app/shared/file/file.utils.mjs +13 -11
- package/esm2022/src/app/shared/file/images.utils.mjs +4 -4
- package/esm2022/src/app/shared/file/json.utils.mjs +3 -4
- package/esm2022/src/app/shared/file/uri.utils.mjs +1 -1
- package/esm2022/src/app/shared/focusable.mjs +1 -1
- package/esm2022/src/app/shared/form/field.component.mjs +33 -30
- package/esm2022/src/app/shared/form/field.model.mjs +4 -4
- package/esm2022/src/app/shared/form/loading-spinner.mjs +5 -5
- package/esm2022/src/app/shared/forms.mjs +30 -33
- package/esm2022/src/app/shared/functions.mjs +70 -65
- package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +14 -14
- package/esm2022/src/app/shared/gesture/gesture-config.mjs +9 -9
- package/esm2022/src/app/shared/gesture/hammer.utils.mjs +1 -1
- package/esm2022/src/app/shared/graph/colors.utils.mjs +14 -18
- package/esm2022/src/app/shared/graph/graph-colors.mjs +16 -22
- package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +4 -4
- package/esm2022/src/app/shared/help/help.modal.mjs +6 -6
- package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +5 -5
- package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +10 -11
- package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +9 -27
- package/esm2022/src/app/shared/http/http.utils.mjs +1 -1
- package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +28 -27
- package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +13 -10
- package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +1 -1
- package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +14 -17
- package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +9 -13
- package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +14 -11
- package/esm2022/src/app/shared/image/image.model.mjs +1 -1
- package/esm2022/src/app/shared/image/image.module.mjs +8 -13
- package/esm2022/src/app/shared/image/image.service.mjs +14 -12
- package/esm2022/src/app/shared/inputs.mjs +19 -20
- package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +2 -3
- package/esm2022/src/app/shared/logging/log-level.model.mjs +1 -1
- package/esm2022/src/app/shared/logging/logger.model.mjs +2 -2
- package/esm2022/src/app/shared/logging/logging-service.class.mjs +17 -20
- package/esm2022/src/app/shared/logging/logging-service.module.mjs +6 -6
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +7 -10
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +87 -96
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +9 -15
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +2 -2
- package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +27 -26
- package/esm2022/src/app/shared/material/badge/badge.directive.mjs +45 -19
- package/esm2022/src/app/shared/material/badge/badge.module.mjs +8 -20
- package/esm2022/src/app/shared/material/badge/badge.test.mjs +5 -5
- package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +9 -13
- package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +262 -0
- package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +6 -6
- package/esm2022/src/app/shared/material/chips/chips.module.mjs +7 -11
- package/esm2022/src/app/shared/material/chips/material.chips.mjs +69 -70
- package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +17 -17
- package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +5 -5
- package/esm2022/src/app/shared/material/datetime/material.date.mjs +37 -36
- package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +26 -33
- package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +42 -38
- package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +20 -17
- package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +22 -20
- package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +18 -17
- package/esm2022/src/app/shared/material/duration/duration.module.mjs +5 -5
- package/esm2022/src/app/shared/material/duration/duration.utils.mjs +3 -6
- package/esm2022/src/app/shared/material/duration/material.duration.mjs +23 -24
- package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +17 -15
- package/esm2022/src/app/shared/material/latlong/latlong.utils.mjs +22 -24
- package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +46 -41
- package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +5 -5
- package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +5 -5
- package/esm2022/src/app/shared/material/material.animations.mjs +22 -22
- package/esm2022/src/app/shared/material/material.module.mjs +11 -11
- package/esm2022/src/app/shared/material/material.testing.module.mjs +26 -27
- package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +8 -14
- package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +4 -4
- package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +15 -11
- package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +7 -11
- package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +8 -8
- package/esm2022/src/app/shared/material/testing/common.test.mjs +17 -15
- package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +6 -6
- package/esm2022/src/app/shared/material/text/text-form.component.mjs +17 -16
- package/esm2022/src/app/shared/material/text/text-form.module.mjs +8 -8
- package/esm2022/src/app/shared/modules.mjs +1 -1
- package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +6 -7
- package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +1 -1
- package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +5 -5
- package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +6 -6
- package/esm2022/src/app/shared/observables.mjs +14 -18
- package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +38 -38
- package/esm2022/src/app/shared/pipes/colors.pipe.mjs +5 -5
- package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +8 -10
- package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +14 -14
- package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +6 -6
- package/esm2022/src/app/shared/pipes/duration.pipe.mjs +6 -6
- package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +6 -13
- package/esm2022/src/app/shared/pipes/form.pipes.mjs +25 -25
- package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +14 -14
- package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +14 -14
- package/esm2022/src/app/shared/pipes/maps.pipe.mjs +17 -17
- package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +11 -14
- package/esm2022/src/app/shared/pipes/math.pipes.mjs +16 -16
- package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +5 -5
- package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +6 -6
- package/esm2022/src/app/shared/pipes/pipes.module.mjs +14 -22
- package/esm2022/src/app/shared/pipes/property.pipes.mjs +23 -25
- package/esm2022/src/app/shared/pipes/string.pipes.mjs +47 -48
- package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +11 -11
- package/esm2022/src/app/shared/pipes/types.pipes.mjs +17 -17
- package/esm2022/src/app/shared/platforms.mjs +7 -5
- package/esm2022/src/app/shared/rx-state.module.mjs +7 -11
- package/esm2022/src/app/shared/services/entity-service.class.mjs +2 -2
- package/esm2022/src/app/shared/services/job.utils.mjs +7 -7
- package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +37 -35
- package/esm2022/src/app/shared/services/progress-bar.service.mjs +4 -4
- package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +11 -14
- package/esm2022/src/app/shared/services/startable-service.class.mjs +11 -17
- package/esm2022/src/app/shared/services/translate-context.service.mjs +17 -14
- package/esm2022/src/app/shared/services/validator-service.class.mjs +1 -1
- package/esm2022/src/app/shared/services.mjs +10 -10
- package/esm2022/src/app/shared/shared-routing.module.mjs +19 -18
- package/esm2022/src/app/shared/shared.module.mjs +30 -27
- package/esm2022/src/app/shared/shared.testing.module.mjs +6 -6
- package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +26 -28
- package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +8 -12
- package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +9 -17
- package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +10 -18
- package/esm2022/src/app/shared/storage/storage.service.mjs +4 -4
- package/esm2022/src/app/shared/storage/storage.utils.mjs +2 -2
- package/esm2022/src/app/shared/testing/observable.test.mjs +11 -13
- package/esm2022/src/app/shared/testing/tests.page.mjs +6 -6
- package/esm2022/src/app/shared/toast/toast.testing.mjs +10 -10
- package/esm2022/src/app/shared/toast/toast.testing.module.mjs +10 -25
- package/esm2022/src/app/shared/toast/toasts.mjs +9 -9
- package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +9 -7
- package/esm2022/src/app/shared/toolbar/toolbar.mjs +10 -15
- package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +8 -39
- package/esm2022/src/app/shared/types.mjs +1 -1
- package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +8 -9
- package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +10 -25
- package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +7 -8
- package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +17 -18
- package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +2 -3
- package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +52 -50
- package/esm2022/src/app/shared/validator/validators.mjs +30 -30
- package/esm2022/src/app/shared/version/versions.mjs +2 -2
- package/esm2022/src/app/social/job/job.module.mjs +8 -27
- package/esm2022/src/app/social/job/progression/job-progression.component.mjs +9 -9
- package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +27 -24
- package/esm2022/src/app/social/job/progression/job-progression.list.mjs +5 -7
- package/esm2022/src/app/social/job/progression/job-progression.model.mjs +1 -1
- package/esm2022/src/app/social/job/progression/job-progression.service.mjs +21 -17
- package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +5 -5
- package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +7 -7
- package/esm2022/src/app/social/job/testing/job.testing.module.mjs +8 -21
- package/esm2022/src/app/social/message/message.form.mjs +5 -5
- package/esm2022/src/app/social/message/message.modal.mjs +8 -8
- package/esm2022/src/app/social/message/message.model.mjs +8 -8
- package/esm2022/src/app/social/message/message.module.mjs +4 -4
- package/esm2022/src/app/social/message/message.service.mjs +7 -7
- package/esm2022/src/app/social/social.errors.mjs +2 -2
- package/esm2022/src/app/social/social.module.mjs +7 -32
- package/esm2022/src/app/social/social.testing.module.mjs +9 -20
- package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +17 -14
- package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +19 -22
- package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +47 -23
- package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +8 -8
- package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +8 -21
- package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +27 -15
- package/esm2022/src/app/social/user-event/user-event.model.mjs +1 -1
- package/esm2022/src/app/social/user-event/user-event.module.mjs +8 -28
- package/esm2022/src/app/social/user-event/user-event.service.mjs +56 -61
- package/esm2022/src/environments/environment.class.mjs +2 -1
- package/esm2022/src/environments/environment.loader.mjs +4 -4
- package/esm2022/src/environments/environment.mjs +2 -2
- package/fesm2022/sumaris-net.ngx-components.mjs +6263 -7492
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +12 -7
- package/public_api.d.ts +3 -8
- package/src/app/admin/users/users.d.ts +3 -2
- package/src/app/core/core.module.d.ts +21 -24
- package/src/app/core/form/form.utils.d.ts +1 -1
- package/src/app/core/services/config/core.config.d.ts +1 -1
- package/src/app/core/services/config.service.d.ts +3 -3
- package/src/app/core/services/local-settings.service.d.ts +2 -3
- package/src/app/core/services/model/entity.model.d.ts +3 -2
- package/src/app/core/services/model/settings.model.d.ts +2 -2
- package/src/app/core/services/pipes/department-to-string.pipe.d.ts +1 -1
- package/src/app/core/services/pipes/pipes.module.d.ts +11 -0
- package/src/app/core/services/pipes/referential-to-string.pipe.d.ts +12 -0
- package/src/app/core/table/actions-column.component.d.ts +3 -1
- package/src/app/shared/events.d.ts +1 -1
- package/src/app/shared/functions.d.ts +6 -5
- package/src/app/shared/graph/graph-colors.d.ts +1 -1
- package/src/app/shared/image/gallery/image-gallery.component.d.ts +10 -10
- package/src/app/shared/image/gallery/image-gallery.module.d.ts +2 -1
- package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +2 -2
- package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +2 -1
- package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +1 -1
- package/src/app/shared/material/boolean/boolean.module.d.ts +1 -1
- package/src/app/shared/material/boolean/{material-boolean.d.ts → material.boolean.d.ts} +2 -2
- package/src/app/shared/material/material.module.d.ts +5 -6
- package/src/app/shared/material/material.testing.module.d.ts +14 -15
- package/src/app/shared/material/swipe/material.swipe.d.ts +1 -1
- package/src/app/shared/pipes/pipes.module.d.ts +1 -1
- package/src/app/shared/pipes/string.pipes.d.ts +4 -5
- package/src/app/shared/validator/validators.d.ts +13 -4
- package/src/app/social/job/progression/job-progression.list.d.ts +1 -3
- package/src/app/social/message/message.modal.d.ts +2 -2
- package/src/app/social/user-event/testing/user-event.testing.d.ts +1 -0
- package/src/app/social/user-event/testing/user-event.testing.service.d.ts +1 -0
- package/src/assets/manifest.json +1 -1
- package/src/environments/environment.class.d.ts +1 -0
- package/src/theme/_ngx-components.scss +1 -25
- package/src/theme/_ngx-components.tabs.scss +361 -0
- package/src/theme/_theme.scss +1 -0
- package/esm2022/src/app/shared/material/boolean/material-boolean.mjs +0 -262
- package/esm2022/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +0 -104
- package/esm2022/src/app/shared/material/numpad/numpad.component.mjs +0 -83
- package/esm2022/src/app/shared/material/numpad/numpad.container.mjs +0 -203
- package/esm2022/src/app/shared/material/numpad/numpad.content.mjs +0 -19
- package/esm2022/src/app/shared/material/numpad/numpad.directive.mjs +0 -168
- package/esm2022/src/app/shared/material/numpad/numpad.dom-service.mjs +0 -36
- package/esm2022/src/app/shared/material/numpad/numpad.model.mjs +0 -16
- package/esm2022/src/app/shared/material/numpad/numpad.module.mjs +0 -60
- package/esm2022/src/app/shared/material/numpad/testing/numpad.test.mjs +0 -48
- package/src/app/shared/material/numpad/numpad.append-to-input.directive.d.ts +0 -22
- package/src/app/shared/material/numpad/numpad.component.d.ts +0 -26
- package/src/app/shared/material/numpad/numpad.container.d.ts +0 -40
- package/src/app/shared/material/numpad/numpad.content.d.ts +0 -7
- package/src/app/shared/material/numpad/numpad.directive.d.ts +0 -35
- package/src/app/shared/material/numpad/numpad.dom-service.d.ts +0 -16
- package/src/app/shared/material/numpad/numpad.model.d.ts +0 -30
- package/src/app/shared/material/numpad/numpad.module.d.ts +0 -16
- package/src/app/shared/material/numpad/testing/numpad.test.d.ts +0 -13
|
@@ -77,7 +77,7 @@ let MenuItem = class MenuItem extends Entity {
|
|
|
77
77
|
delete target.id;
|
|
78
78
|
}
|
|
79
79
|
if (opts?.withChildren !== false) {
|
|
80
|
-
target.children = (this.children || []).map(c => c.asObject(opts));
|
|
80
|
+
target.children = (this.children || []).map((c) => c.asObject(opts));
|
|
81
81
|
}
|
|
82
82
|
delete target.$children;
|
|
83
83
|
delete target.$title;
|
|
@@ -126,12 +126,12 @@ let MenuItem = class MenuItem extends Entity {
|
|
|
126
126
|
return !this.action && !this.path;
|
|
127
127
|
}
|
|
128
128
|
get pinnable() {
|
|
129
|
-
return !this.static &&
|
|
129
|
+
return !this.static && typeof this.action !== 'function';
|
|
130
130
|
}
|
|
131
131
|
isPinned() {
|
|
132
132
|
if (this.pinned)
|
|
133
133
|
return true;
|
|
134
|
-
return (this.children || []).some(child => child.isPinned());
|
|
134
|
+
return (this.children || []).some((child) => child.isPinned());
|
|
135
135
|
}
|
|
136
136
|
};
|
|
137
137
|
MenuItem = MenuItem_1 = __decorate([
|
|
@@ -146,8 +146,7 @@ export class MenuItems {
|
|
|
146
146
|
* @param otherItem
|
|
147
147
|
*/
|
|
148
148
|
static isSame(mainItem, otherItem) {
|
|
149
|
-
return this.isSameIdOrPathAndParams(mainItem, otherItem)
|
|
150
|
-
&& mainItem.title === otherItem.title;
|
|
149
|
+
return this.isSameIdOrPathAndParams(mainItem, otherItem) && mainItem.title === otherItem.title;
|
|
151
150
|
}
|
|
152
151
|
/**
|
|
153
152
|
* Compare, without checking the children and the title
|
|
@@ -156,8 +155,7 @@ export class MenuItems {
|
|
|
156
155
|
* @param otherItem
|
|
157
156
|
*/
|
|
158
157
|
static isSameIdOrPathAndParams(mainItem, otherItem) {
|
|
159
|
-
return (isNotNil(mainItem?.id) && mainItem.id === otherItem?.id)
|
|
160
|
-
|| this.isSamePathAndParams(mainItem, otherItem);
|
|
158
|
+
return (isNotNil(mainItem?.id) && mainItem.id === otherItem?.id) || this.isSamePathAndParams(mainItem, otherItem);
|
|
161
159
|
}
|
|
162
160
|
/**
|
|
163
161
|
* Compare, without checking the children
|
|
@@ -166,9 +164,10 @@ export class MenuItems {
|
|
|
166
164
|
* @param otherItem
|
|
167
165
|
*/
|
|
168
166
|
static isSamePathAndParams(mainItem, otherItem) {
|
|
169
|
-
return mainItem &&
|
|
170
|
-
|
|
171
|
-
|
|
167
|
+
return (mainItem &&
|
|
168
|
+
mainItem.path === otherItem?.path &&
|
|
169
|
+
mainItem.parentPath === otherItem.parentPath &&
|
|
170
|
+
this.isSameParams(mainItem.pathParams, otherItem.pathParams));
|
|
172
171
|
}
|
|
173
172
|
/**
|
|
174
173
|
* All key/value of the mainParams should exist (and be equals) in the other params
|
|
@@ -180,11 +179,13 @@ export class MenuItems {
|
|
|
180
179
|
const mainEntries = Object.entries(mainParams);
|
|
181
180
|
const otherEntries = Object.entries(otherParams);
|
|
182
181
|
// TODO: est-ce que un item ne pourrait pas avoir plus de params dans l'item existant ?
|
|
183
|
-
return
|
|
182
|
+
return mainEntries.length === otherEntries.length && mainEntries.every(([key, value]) => value === otherParams[key]);
|
|
184
183
|
}
|
|
185
184
|
static isParent(child, parent) {
|
|
186
|
-
return child.parentPath &&
|
|
187
|
-
|
|
185
|
+
return ((child.parentPath &&
|
|
186
|
+
child.parentPath === parent?.path &&
|
|
187
|
+
this.isSameParams(child.parentPathParams, parent['pathParams'] || parent['params'])) ||
|
|
188
|
+
false);
|
|
188
189
|
}
|
|
189
190
|
static checkIfVisible(item, account, config, opts) {
|
|
190
191
|
opts = opts || {};
|
|
@@ -192,7 +193,7 @@ export class MenuItems {
|
|
|
192
193
|
const hasProfile = AccountUtils.hasMinProfile(account, item.profile);
|
|
193
194
|
if (!hasProfile) {
|
|
194
195
|
if (opts.debug)
|
|
195
|
-
console.debug(`${opts && opts.logPrefix || '[menu-service]'} Hide item '${item.title}': need the min profile '${item.profile}' to access path '${item.path}'`);
|
|
196
|
+
console.debug(`${(opts && opts.logPrefix) || '[menu-service]'} Hide item '${item.title}': need the min profile '${item.profile}' to access path '${item.path}'`);
|
|
196
197
|
return false;
|
|
197
198
|
}
|
|
198
199
|
}
|
|
@@ -200,7 +201,7 @@ export class MenuItems {
|
|
|
200
201
|
const hasExactProfile = AccountUtils.hasExactProfile(account, item.exactProfile);
|
|
201
202
|
if (!hasExactProfile) {
|
|
202
203
|
if (opts.debug)
|
|
203
|
-
console.debug(`${opts && opts.logPrefix || '[menu-service]'} Hide item '${item.title}': need exact profile '${item.exactProfile}' to access path '${item.path}'`);
|
|
204
|
+
console.debug(`${(opts && opts.logPrefix) || '[menu-service]'} Hide item '${item.title}': need exact profile '${item.exactProfile}' to access path '${item.path}'`);
|
|
204
205
|
return false;
|
|
205
206
|
}
|
|
206
207
|
}
|
|
@@ -210,7 +211,7 @@ export class MenuItems {
|
|
|
210
211
|
const isEnableByConfig = config && config.properties[item.ifProperty] === 'true';
|
|
211
212
|
if (!isEnableByConfig) {
|
|
212
213
|
if (opts.debug)
|
|
213
|
-
console.debug(
|
|
214
|
+
console.debug("[menu-service] Config property '" + item.ifProperty + "' not 'true' for ", item.path);
|
|
214
215
|
return false;
|
|
215
216
|
}
|
|
216
217
|
}
|
|
@@ -245,7 +246,9 @@ export class MenuItems {
|
|
|
245
246
|
return this.getUrlFromPathAndParams(item?.path, item?.pathParams);
|
|
246
247
|
}
|
|
247
248
|
static getUrlFromPathAndParams(path, params) {
|
|
248
|
-
const queryString = Object.entries(params || {})
|
|
249
|
+
const queryString = Object.entries(params || {})
|
|
250
|
+
.map(([key, value]) => `${key}=${value}`)
|
|
251
|
+
.join('&');
|
|
249
252
|
if (isNilOrBlank(queryString))
|
|
250
253
|
return path || '';
|
|
251
254
|
return `${path || ''}?${queryString}`;
|
|
@@ -266,4 +269,4 @@ export class MenuItems {
|
|
|
266
269
|
export class MenuOptions {
|
|
267
270
|
subMenu;
|
|
268
271
|
}
|
|
269
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9tZW51L21lbnUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25HLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkMsT0FBTyxFQUFXLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxNQUFNLEVBQXlCLE1BQU0sZ0NBQWdDLENBQUM7QUFFL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBK0JsRSxXQUFXO0FBRUosSUFBTSxRQUFRLEdBQWQsTUFBTSxRQUFTLFNBQVEsTUFBZ0I7O0lBRzVDLE1BQU0sQ0FBQyxVQUFVLENBQTZEO0lBRTlFLE1BQU0sQ0FBVztJQUNqQixRQUFRLENBQVM7SUFDakIsU0FBUyxHQUFFLElBQUksZUFBZSxDQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sQ0FBVTtJQUVoQixNQUFNLEdBQUUsSUFBSSxlQUFlLENBQVMsU0FBUyxDQUFDLENBQUM7SUFDL0MsYUFBYSxDQUFVLENBQUMsMkNBQTJDO0lBQ25FLFNBQVMsQ0FBNkI7SUFFdEMsSUFBSSxDQUFVO0lBQ2QsVUFBVSxDQUE2QjtJQUN2QyxVQUFVLENBQVU7SUFDcEIsZ0JBQWdCLENBQTZCO0lBRTdDLGtCQUFrQjtJQUNsQixLQUFLLENBQVU7SUFDZixNQUFNLENBQVU7SUFFaEIsTUFBTSxDQUFnQjtJQUN0QixPQUFPLENBQW9CO0lBQzNCLFlBQVksQ0FBb0I7SUFDaEMsS0FBSyxDQUFvQjtJQUN6QixRQUFRLENBQVU7SUFDbEIsNkNBQTZDO0lBQzdDLFVBQVUsQ0FBVTtJQUNwQixNQUFNLENBQVc7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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlclByb2ZpbGVMYWJlbCB9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsL3BlcnNvbi5tb2RlbCc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vc2VydmljZXMvbW9kZWwvY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IEFwcENvbG9ycywgSWNvblJlZiB9IGZyb20gJy4uLy4uL3NoYXJlZC90eXBlcyc7XG5pbXBvcnQgeyBpc05pbE9yQmxhbmssIGlzTm90TmlsLCBpc05vdE5pbE9yQmxhbmssIHRvQm9vbGVhbiwgdG9JbnQgfSBmcm9tICcuLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWVudVBhdGhQYXJhbSB9IGZyb20gJy4vbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7IEFjY291bnQsIEFjY291bnRVdGlscyB9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsL2FjY291bnQubW9kZWwnO1xuaW1wb3J0IHsgRW50aXR5LCBFbnRpdHlBc09iamVjdE9wdGlvbnMgfSBmcm9tICcuLi9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgSVRyZWVJdGVtRW50aXR5IH0gZnJvbSAnLi4vc2VydmljZXMvbW9kZWwvdHJlZS1pdGVtLWVudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBFbnRpdHlDbGFzcyB9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsL2VudGl0eS5kZWNvcmF0b3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBJTWVudUl0ZW0gZXh0ZW5kcyBJY29uUmVmIHtcbiAgaWQ/OiBudW1iZXI7XG4gIHBhcmVudD86IElNZW51SXRlbTtcbiAgY2hpbGRyZW4/OiBJTWVudUl0ZW1bXTtcblxuICB0aXRsZTogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuXG4gIC8vIEluamVjdGlvbiBwb2ludFxuICBhZnRlcj86IHN0cmluZztcbiAgYmVmb3JlPzogc3RyaW5nO1xuICBzdGF0aWM/OiBib29sZWFuO1xuXG4gIGFjdGlvbj86IHN0cmluZyB8IGFueTtcbiAgcHJvZmlsZT86IFVzZXJQcm9maWxlTGFiZWw7XG4gIGV4YWN0UHJvZmlsZT86IFVzZXJQcm9maWxlTGFiZWw7XG4gIGNvbG9yPzogc3RyaW5nIHwgQXBwQ29sb3JzO1xuICBjc3NDbGFzcz86IHN0cmluZztcbiAgLy8gQSBjb25maWcgcHJvcGVydHksIHRvIGVuYWJsZSB0aGUgbWVudSBpdGVtXG4gIGlmUHJvcGVydHk/OiBzdHJpbmc7XG4gIC8vIEEgY29uZmlnIHByb3BlcnR5LCB0byBvdmVycmlkZSB0aGUgdGl0bGVcbiAgdGl0bGVQcm9wZXJ0eT86IHN0cmluZztcbiAgdGl0bGVBcmdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgcGF0aFBhcmFtcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIHBhcmVudFBhdGg/OiBzdHJpbmc7XG4gIHBhcmVudFBhdGhQYXJhbXM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBwaW5uZWQ/OiBib29sZWFuO1xufVxuXG4vLyBAZHluYW1pY1xuQEVudGl0eUNsYXNzKHsgdHlwZW5hbWU6ICdNZW51SXRlbVZPJyB9KVxuZXhwb3J0IGNsYXNzIE1lbnVJdGVtIGV4dGVuZHMgRW50aXR5PE1lbnVJdGVtPlxuICBpbXBsZW1lbnRzIElNZW51SXRlbSwgSVRyZWVJdGVtRW50aXR5PE1lbnVJdGVtPiB7XG5cbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IHt3aXRoQ2hpbGRyZW4/OiBib29sZWFufSkgPT4gTWVudUl0ZW07XG5cbiAgcGFyZW50OiBNZW51SXRlbTtcbiAgcGFyZW50SWQ6IG51bWJlcjtcbiAgJGNoaWxkcmVuPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1lbnVJdGVtW10+KFtdKTtcbiAgc3RhdGljOiBib29sZWFuO1xuXG4gICR0aXRsZT0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KHVuZGVmaW5lZCk7XG4gIHRpdGxlUHJvcGVydHk/OiBzdHJpbmc7IC8vIEEgY29uZmlnIHByb3BlcnR5LCB0byBvdmVycmlkZSB0aGUgdGl0bGVcbiAgdGl0bGVBcmdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICBwYXRoPzogc3RyaW5nO1xuICBwYXRoUGFyYW1zPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgcGFyZW50UGF0aD86IHN0cmluZztcbiAgcGFyZW50UGF0aFBhcmFtcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLy8gSW5qZWN0aW9uIHBvaW50XG4gIGFmdGVyPzogc3RyaW5nO1xuICBiZWZvcmU/OiBzdHJpbmc7XG5cbiAgYWN0aW9uPzogc3RyaW5nIHwgYW55O1xuICBwcm9maWxlPzogVXNlclByb2ZpbGVMYWJlbDtcbiAgZXhhY3RQcm9maWxlPzogVXNlclByb2ZpbGVMYWJlbDtcbiAgY29sb3I/OiBzdHJpbmd8QXBwQ29sb3JzO1xuICBjc3NDbGFzcz86IHN0cmluZztcbiAgLy8gQSBjb25maWcgcHJvcGVydHksIHRvIGVuYWJsZSB0aGUgbWVudSBpdGVtXG4gIGlmUHJvcGVydHk/OiBzdHJpbmc7XG4gIHBpbm5lZD86IGJvb2xlYW47XG5cbiAgLy8gSWNvblxuICBpY29uPzogc3RyaW5nO1xuICBtYXRJY29uPzogc3RyaW5nO1xuICBtYXRTdmdJY29uPzogc3RyaW5nO1xuXG5cbiAgZnJvbU9iamVjdChzb3VyY2U6IGFueSwgb3B0cz86IHt3aXRoQ2hpbGRyZW4/OiBib29sZWFuIH0pIHtcblxuICAgIHRoaXMuaWQgPSBzb3VyY2UuaWQ7XG5cbiAgICB0aGlzLnRpdGxlID0gc291cmNlLnRpdGxlO1xuICAgIHRoaXMudGl0bGVQcm9wZXJ0eSA9IHNvdXJjZS50aXRsZVByb3BlcnR5O1xuICAgIHRoaXMudGl0bGVBcmdzID0gc291cmNlLnRpdGxlQXJncztcblxuICAgIC8vIENsZWFuIHBhdGhcbiAgICBpZiAoc291cmNlLnBhdGgpIHtcbiAgICAgIGNvbnN0IHtwYXRoLCBwYXJhbXN9ID0gTWVudUl0ZW1zLnBhcnNlUGF0aFdpdGhRdWVyeShzb3VyY2UucGF0aCk7XG4gICAgICB0aGlzLnBhdGggPSBwYXRoO1xuICAgICAgdGhpcy5wYXRoUGFyYW1zID0gey4uLnNvdXJjZS5wYXRoUGFyYW1zLCAuLi5wYXJhbXN9O1xuICAgIH1cbiAgICAvLyBDbGVhbiBwYXJlbnQgcGF0aFxuICAgIGlmIChzb3VyY2UucGFyZW50UGF0aCkge1xuICAgICAgY29uc3Qge3BhdGgsIHBhcmFtc30gPSBNZW51SXRlbXMucGFyc2VQYXRoV2l0aFF1ZXJ5KHNvdXJjZS5wYXJlbnRQYXRoKTtcbiAgICAgIHRoaXMucGFyZW50UGF0aCA9IHBhdGg7XG4gICAgICB0aGlzLnBhcmVudFBhdGhQYXJhbXMgPSB7Li4uc291cmNlLnBhcmVudFBhdGhQYXJhbXMsIC4uLnBhcmFtc307XG4gICAgfVxuXG4gICAgdGhpcy5hZnRlciA9IHNvdXJjZS5hZnRlcjtcbiAgICB0aGlzLmJlZm9yZSA9IHNvdXJjZS5iZWZvcmU7XG5cbiAgICB0aGlzLmFjdGlvbiA9IHNvdXJjZS5hY3Rpb247XG4gICAgdGhpcy5wcm9maWxlID0gc291cmNlLnByb2ZpbGU7XG4gICAgdGhpcy5leGFjdFByb2ZpbGUgPSBzb3VyY2UuZXhhY3RQcm9maWxlO1xuICAgIHRoaXMuY29sb3IgPSBzb3VyY2UuY29sb3I7XG4gICAgdGhpcy5jc3NDbGFzcyA9IHNvdXJjZS5jc3NDbGFzcztcbiAgICB0aGlzLmlmUHJvcGVydHkgPSBzb3VyY2UuaWZQcm9wZXJ0eTtcbiAgICB0aGlzLnBpbm5lZCA9IHRvQm9vbGVhbihzb3VyY2UucGlubmVkLCBmYWxzZSk7XG4gICAgdGhpcy5zdGF0aWMgPSBpc05vdE5pbChzb3VyY2Uuc3RhdGljKSA/IHNvdXJjZS5zdGF0aWMgOiB1bmRlZmluZWQ7IC8vIElmIHVuZGVmaW5lZCwgd2lsbCBiZSBzZXQgYnkgc2VydmljZVxuXG4gICAgLy8gSWNvblxuICAgIHRoaXMuaWNvbiA9IHNvdXJjZS5pY29uO1xuICAgIHRoaXMubWF0SWNvbiA9IHNvdXJjZS5tYXRJY29uO1xuICAgIHRoaXMubWF0U3ZnSWNvbiA9IHNvdXJjZS5tYXRTdmdJY29uO1xuXG4gICAgaWYgKCFvcHRzIHx8IG9wdHMud2l0aENoaWxkcmVuID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5jaGlsZHJlbiA9IChzb3VyY2UuY2hpbGRyZW4gfHwgW10pLm1hcCgoanNvbjogYW55KSA9PiBNZW51SXRlbS5mcm9tT2JqZWN0KGpzb24sIG9wdHMpKSB8fCBbXTtcbiAgICB9XG4gIH1cblxuICBhc09iamVjdChvcHRzPzoge3dpdGhDaGlsZHJlbj86IGJvb2xlYW59ICYgRW50aXR5QXNPYmplY3RPcHRpb25zKTogYW55IHtcbiAgICBjb25zdCB0YXJnZXQgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzKTtcbiAgICB0YXJnZXQudGl0bGUgPSB0aGlzLnRpdGxlO1xuXG4gICAgaWYgKG9wdHM/LmtlZXBMb2NhbElkID09PSBmYWxzZSkge1xuICAgICAgZGVsZXRlIHRhcmdldC5pZDtcbiAgICB9XG5cbiAgICBpZiAob3B0cz8ud2l0aENoaWxkcmVuICE9PSBmYWxzZSkge1xuICAgICAgdGFyZ2V0LmNoaWxkcmVuID0gKHRoaXMuY2hpbGRyZW4gfHwgW10pLm1hcChjID0+IGMuYXNPYmplY3Qob3B0cykpO1xuICAgIH1cblxuICAgIGRlbGV0ZSB0YXJnZXQuJGNoaWxkcmVuO1xuICAgIGRlbGV0ZSB0YXJnZXQuJHRpdGxlO1xuICAgIGRlbGV0ZSB0YXJnZXQucGFyZW50O1xuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIC8vIGFkZENoaWxkKGNoaWxkOiBNZW51SXRlbSkge1xuICAvLyAgIHRoaXMuJGNoaWxkcmVuLm5leHQodGhpcy4kY2hpbGRyZW4udmFsdWUpXG4gIC8vIH1cblxuICBnZXQgY2hpbGRyZW4oKTogTWVudUl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMuJGNoaWxkcmVuLnZhbHVlO1xuICB9XG4gIHNldCBjaGlsZHJlbih2YWx1ZTogTWVudUl0ZW1bXSkge1xuICAgIHRoaXMuJGNoaWxkcmVuLm5leHQodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuJHRpdGxlLnZhbHVlO1xuICB9XG4gIHNldCB0aXRsZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMucGlubmVkKSB7XG4gICAgICAvLyBJZiBsb2FkaW5nLCBrZWVwIGV4aXN0aW5nIHRpdGxlIGlmIHBpbm5lZCAoYXZvaWQgdG8gc2hvdyBza2VsZXRvbilcbiAgICAgIGlmIChpc05vdE5pbE9yQmxhbmsodmFsdWUpKSB0aGlzLiR0aXRsZS5uZXh0KHZhbHVlKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoaXNOb3ROaWwodmFsdWUpKSB7XG4gICAgICB0aGlzLiR0aXRsZS5uZXh0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgZGV0YWNoZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnBhcmVudFBhdGggfHwgIXRoaXMucGFyZW50O1xuICB9XG5cbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGljIHx8ICF0aGlzLmRldGFjaGVkO1xuICB9XG5cbiAgZ2V0IGV4cGFuZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGlvbiAhPT0gJ2V4cGFuZCcgfHwgdGhpcy5tYXRJY29uID09PSAnZXhwYW5kX2xlc3MnO1xuICB9XG5cbiAgZ2V0IGFuY2VzdG9yKCk6IE1lbnVJdGVtIHtcbiAgICBpZiAoIXRoaXMucGFyZW50KSByZXR1cm4gbnVsbDsgLy8gcm9vdCA9IG5vdCBhbmNlc3RvclxuICAgIGlmICghdGhpcy5wYXJlbnQucGFyZW50KSByZXR1cm4gdGhpczsgLy8gZmlyc3Qgc3ViIG1lbnUgPSBhbmNlc3RvclxuICAgIHJldHVybiB0aGlzLnBhcmVudD8uYW5jZXN0b3I7IC8vIGxvb3BcbiAgfVxuXG4gIGdldCBkaXZpZGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5hY3Rpb24gJiYgIXRoaXMucGF0aDtcbiAgfVxuXG4gIGdldCBwaW5uYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuc3RhdGljICYmICh0eXBlb2YgdGhpcy5hY3Rpb24gIT09ICdmdW5jdGlvbicpO1xuICB9XG5cbiAgaXNQaW5uZWQoKSB7XG4gICAgaWYgKHRoaXMucGlubmVkKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gKHRoaXMuY2hpbGRyZW4gfHwgW10pLnNvbWUoY2hpbGQgPT4gY2hpbGQuaXNQaW5uZWQoKSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1lbnVJdGVtcyB7XG5cbiAgLyoqXG4gICAqIENvbXBhcmUsIHdpdGhvdXQgY2hlY2tpbmcgdGhlIGNoaWxkcmVuXG4gICAqXG4gICAqIEBwYXJhbSBtYWluSXRlbVxuICAgKiBAcGFyYW0gb3RoZXJJdGVtXG4gICAqL1xuICBzdGF0aWMgaXNTYW1lKG1haW5JdGVtOiBJTWVudUl0ZW0sIG90aGVySXRlbTogSU1lbnVJdGVtKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNTYW1lSWRPclBhdGhBbmRQYXJhbXMobWFpbkl0ZW0sIG90aGVySXRlbSlcbiAgICAgICYmIG1haW5JdGVtLnRpdGxlID09PSBvdGhlckl0ZW0udGl0bGU7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZSwgd2l0aG91dCBjaGVja2luZyB0aGUgY2hpbGRyZW4gYW5kIHRoZSB0aXRsZVxuICAgKlxuICAgKiBAcGFyYW0gbWFpbkl0ZW1cbiAgICogQHBhcmFtIG90aGVySXRlbVxuICAgKi9cbiAgc3RhdGljIGlzU2FtZUlkT3JQYXRoQW5kUGFyYW1zKG1haW5JdGVtOiBJTWVudUl0ZW0sIG90aGVySXRlbTogSU1lbnVJdGVtKSB7XG4gICAgcmV0dXJuIChpc05vdE5pbChtYWluSXRlbT8uaWQpICYmIG1haW5JdGVtLmlkID09PSBvdGhlckl0ZW0/LmlkKVxuICAgICAgfHwgdGhpcy5pc1NhbWVQYXRoQW5kUGFyYW1zKG1haW5JdGVtLCBvdGhlckl0ZW0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXBhcmUsIHdpdGhvdXQgY2hlY2tpbmcgdGhlIGNoaWxkcmVuXG4gICAqXG4gICAqIEBwYXJhbSBtYWluSXRlbVxuICAgKiBAcGFyYW0gb3RoZXJJdGVtXG4gICAqL1xuICBzdGF0aWMgaXNTYW1lUGF0aEFuZFBhcmFtcyhtYWluSXRlbTogSU1lbnVJdGVtLCBvdGhlckl0ZW06IElNZW51SXRlbSkge1xuICAgIHJldHVybiBtYWluSXRlbSAmJiBtYWluSXRlbS5wYXRoID09PSBvdGhlckl0ZW0/LnBhdGhcbiAgICAgICYmIG1haW5JdGVtLnBhcmVudFBhdGggPT09IG90aGVySXRlbS5wYXJlbnRQYXRoXG4gICAgICAmJiB0aGlzLmlzU2FtZVBhcmFtcyhtYWluSXRlbS5wYXRoUGFyYW1zLCBvdGhlckl0ZW0ucGF0aFBhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogQWxsIGtleS92YWx1ZSBvZiB0aGUgbWFpblBhcmFtcyBzaG91bGQgZXhpc3QgKGFuZCBiZSBlcXVhbHMpIGluIHRoZSBvdGhlciBwYXJhbXNcbiAgICpcbiAgICogQHBhcmFtIG1haW5QYXJhbXNcbiAgICogQHBhcmFtIG90aGVyUGFyYW1zXG4gICAqL1xuICBzdGF0aWMgaXNTYW1lUGFyYW1zKG1haW5QYXJhbXM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9LCBvdGhlclBhcmFtczoge1trZXk6IHN0cmluZ106IHN0cmluZ30pIHtcbiAgICBjb25zdCBtYWluRW50cmllcyA9IE9iamVjdC5lbnRyaWVzKG1haW5QYXJhbXMpO1xuICAgIGNvbnN0IG90aGVyRW50cmllcyA9IE9iamVjdC5lbnRyaWVzKG90aGVyUGFyYW1zKTtcbiAgICAvLyBUT0RPOiBlc3QtY2UgcXVlIHVuIGl0ZW0gbmUgcG91cnJhaXQgcGFzIGF2b2lyIHBsdXMgZGUgcGFyYW1zIGRhbnMgbCdpdGVtIGV4aXN0YW50ID9cbiAgICByZXR1cm4gKG1haW5FbnRyaWVzLmxlbmd0aCA9PT0gb3RoZXJFbnRyaWVzLmxlbmd0aCkgJiYgbWFpbkVudHJpZXMuZXZlcnkoKFtrZXksIHZhbHVlXSkgPT4gdmFsdWUgPT09IG90aGVyUGFyYW1zW2tleV0pO1xuICB9XG5cbiAgc3RhdGljIGlzUGFyZW50KGNoaWxkOiBJTWVudUl0ZW0sIHBhcmVudDogSU1lbnVJdGVtIHwgTWVudVBhdGhQYXJhbSkge1xuICAgIHJldHVybiBjaGlsZC5wYXJlbnRQYXRoICYmIGNoaWxkLnBhcmVudFBhdGggPT09IHBhcmVudD8ucGF0aFxuICAgICAgICAmJiB0aGlzLmlzU2FtZVBhcmFtcyhjaGlsZC5wYXJlbnRQYXRoUGFyYW1zLCBwYXJlbnRbJ3BhdGhQYXJhbXMnXSB8fCBwYXJlbnRbJ3BhcmFtcyddKSB8fCBmYWxzZTtcbiAgfVxuXG4gIHN0YXRpYyBjaGVja0lmVmlzaWJsZShpdGVtOiBJTWVudUl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50OiBBY2NvdW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnOiBDb25maWd1cmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0cz86IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2dpbj86IGJvb2xlYW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnPzogYm9vbGVhbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nUHJlZml4Pzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk6IGJvb2xlYW4ge1xuICAgIG9wdHMgPSBvcHRzIHx8IHt9O1xuICAgIGlmIChpdGVtLnByb2ZpbGUpIHtcbiAgICAgIGNvbnN0IGhhc1Byb2ZpbGUgPSBBY2NvdW50VXRpbHMuaGFzTWluUHJvZmlsZShhY2NvdW50LCBpdGVtLnByb2ZpbGUpO1xuICAgICAgaWYgKCFoYXNQcm9maWxlKSB7XG4gICAgICAgIGlmIChvcHRzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGAke29wdHMgJiYgb3B0cy5sb2dQcmVmaXggfHwgJ1ttZW51LXNlcnZpY2VdJ30gSGlkZSBpdGVtICcke2l0ZW0udGl0bGV9JzogbmVlZCB0aGUgbWluIHByb2ZpbGUgJyR7aXRlbS5wcm9maWxlfScgdG8gYWNjZXNzIHBhdGggJyR7aXRlbS5wYXRofSdgKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGVsc2UgaWYgKGl0ZW0uZXhhY3RQcm9maWxlKSB7XG4gICAgICBjb25zdCBoYXNFeGFjdFByb2ZpbGUgPSBBY2NvdW50VXRpbHMuaGFzRXhhY3RQcm9maWxlKGFjY291bnQsIGl0ZW0uZXhhY3RQcm9maWxlKTtcbiAgICAgIGlmICghaGFzRXhhY3RQcm9maWxlKSB7XG4gICAgICAgIGlmIChvcHRzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGAke29wdHMgJiYgb3B0cy5sb2dQcmVmaXggfHwgJ1ttZW51LXNlcnZpY2VdJ30gSGlkZSBpdGVtICcke2l0ZW0udGl0bGV9JzogbmVlZCBleGFjdCBwcm9maWxlICcke2l0ZW0uZXhhY3RQcm9maWxlfScgdG8gYWNjZXNzIHBhdGggJyR7aXRlbS5wYXRofSdgKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIGVuYWJsZSBieSBjb25maWdcbiAgICBpZiAoaXRlbS5pZlByb3BlcnR5KSB7XG4gICAgICAvL2NvbnNvbGUuZGVidWcoXCJbbWVudV0gQ2hlY2tpbmcgaWYgcHJvcGVydHkgZW5hYmxlID8gXCIgKyBpdGVtLmlmUHJvcGVydHksIGNvbmZpZyAmJiBjb25maWcucHJvcGVydGllcyk7XG4gICAgICBjb25zdCBpc0VuYWJsZUJ5Q29uZmlnID0gY29uZmlnICYmIGNvbmZpZy5wcm9wZXJ0aWVzW2l0ZW0uaWZQcm9wZXJ0eV0gPT09ICd0cnVlJztcbiAgICAgIGlmICghaXNFbmFibGVCeUNvbmZpZykge1xuICAgICAgICBpZiAob3B0cy5kZWJ1ZykgY29uc29sZS5kZWJ1ZygnW21lbnUtc2VydmljZV0gQ29uZmlnIHByb3BlcnR5IFxcJycgKyBpdGVtLmlmUHJvcGVydHkgKyAnXFwnIG5vdCBcXCd0cnVlXFwnIGZvciAnLCBpdGVtLnBhdGgpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzdGF0aWMgY2hlY2tJZlN1Yk1lbnVWaXNpYmxlKGl0ZW06IE1lbnVJdGVtLCBjdXJyZW50UGF0aFBhcmFtOiBNZW51UGF0aFBhcmFtKSB7XG4gICAgaWYgKCFpdGVtLnBhcmVudFBhdGgpIHJldHVybiBmYWxzZTsgLy8gU2hvdWxkIGhhdmUgYSBwYXJlbnRcblxuICAgIGlmIChpdGVtLnN0YXRpYykgcmV0dXJuIHRydWU7IC8vIEFsd2F5cyBrZWVwIHN0YXRpYyBpdGVtc1xuXG4gICAgaWYgKGl0ZW0uaXNQaW5uZWQoKSkgcmV0dXJuIHRydWU7IC8vIEFsd2F5cyBrZWVwIHBpbm5lZCBpdGVtc1xuXG4gICAgLy8gS2VlcCBlYWNoIG1lbnUgaXRlbXMgaW4gdGhlIHNjb3BlIG9mIHRoZSBjdXJyZW50IHVybCBwYXRoXG4gICAgaWYgKGN1cnJlbnRQYXRoUGFyYW0/LnBhdGguc3RhcnRzV2l0aChpdGVtLnBhdGgpKSByZXR1cm4gdHJ1ZTtcblxuICAgIC8vIEtlZXAgaWYgcGFyZW50IGlzIGFuIGV4cGFuZGVkIGl0ZW1cbiAgICBpZiAoaXRlbS5wYXJlbnQ/LmFjdGlvbiA9PT0gJ2V4cGFuZCcgJiYgaXRlbS5wYXJlbnQuZXhwYW5kZWQpIHJldHVybiB0cnVlO1xuXG4gICAgLy8gTm90IHZpc2libGVcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzdGF0aWMgcGFyc2VQYXRoV2l0aFF1ZXJ5KHBhdGhXaXRoUXVlcnk6IHN0cmluZyk6IE1lbnVQYXRoUGFyYW0ge1xuICAgIGNvbnN0IGluZGV4ID0gcGF0aFdpdGhRdWVyeS5sYXN0SW5kZXhPZignPycpO1xuICAgIGlmIChpbmRleCA8IDApIHJldHVybiB7cGF0aDogcGF0aFdpdGhRdWVyeSwgcGFyYW1zOiB7fX07XG4gICAgY29uc3QgcGF0aCA9IHBhdGhXaXRoUXVlcnkuc3Vic3RyaW5nKDAsIGluZGV4KTtcbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IHBhdGhXaXRoUXVlcnkuc3Vic3RyaW5nKGluZGV4KTtcbiAgICBjb25zdCBwYXJhbXMgPSBPYmplY3QuZnJvbUVudHJpZXMobmV3IFVSTFNlYXJjaFBhcmFtcyhxdWVyeVN0cmluZykpO1xuICAgIHJldHVybiB7cGF0aCwgcGFyYW1zfTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRVcmwoaXRlbTogSU1lbnVJdGVtKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VXJsRnJvbVBhdGhBbmRQYXJhbXMoaXRlbT8ucGF0aCwgaXRlbT8ucGF0aFBhcmFtcyk7XG4gIH1cblxuICBzdGF0aWMgZ2V0VXJsRnJvbVBhdGhBbmRQYXJhbXMocGF0aDogc3RyaW5nLCBwYXJhbXM/OiBhbnkpIHtcbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IE9iamVjdC5lbnRyaWVzKHBhcmFtcyB8fCB7fSkubWFwKChba2V5LCB2YWx1ZV0pID0+IGAke2tleX09JHt2YWx1ZX1gKS5qb2luKCcmJyk7XG4gICAgaWYgKGlzTmlsT3JCbGFuayhxdWVyeVN0cmluZykpIHJldHVybiBwYXRoIHx8ICcnO1xuICAgIHJldHVybiBgJHtwYXRoIHx8Jyd9PyR7cXVlcnlTdHJpbmd9YDtcbiAgfVxuXG4gIHN0YXRpYyBzb3J0QnlQYXJhbU9ySWRDb21wYXJhdG9yKHBhcmFtTmFtZT86IHN0cmluZyk6IChuMTogSU1lbnVJdGVtLCBuMjogSU1lbnVJdGVtKSA9PiBudW1iZXIge1xuICAgIHBhcmFtTmFtZSA9IHBhcmFtTmFtZSB8fCAndGFiJztcbiAgICByZXR1cm4gKG4xOiBJTWVudUl0ZW0sIG4yOiBJTWVudUl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGQxID0gdG9JbnQobjEucGF0aFBhcmFtcz8uW3BhcmFtTmFtZV0sIG4xLmlkKTtcbiAgICAgIGNvbnN0IGQyID0gdG9JbnQobjIucGF0aFBhcmFtcz8uW3BhcmFtTmFtZV0sIG4yLmlkKTtcbiAgICAgIHJldHVybiBkMSA9PT0gZDIgPyAwIDogZDEgPiBkMiA/IDEgOiAtMTtcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIHNvcnRCeVRhYk9ySWQgPSB0aGlzLnNvcnRCeVBhcmFtT3JJZENvbXBhcmF0b3IoJ3RhYicpO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gY29uZmlndXJlIHNwZWNpZmljIGJlaGF2aW9yIG9uIHByb2plY3RzXG4gKi9cbmV4cG9ydCBjbGFzcyBNZW51T3B0aW9ucyB7XG4gIHN1Yk1lbnU/OiB7XG4gICAgZW5hYmxlPzogYm9vbGVhbjtcbiAgICBzaG93UGluQnV0dG9uPzogYm9vbGVhbjtcbiAgICBkaXNhYmxlSWNvbj86IGJvb2xlYW47XG4gICAgc2F2ZVBpbm5lZD86IGJvb2xlYW47XG4gIH07XG59XG4iXX0=
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9tZW51L21lbnUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25HLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkMsT0FBTyxFQUFXLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxNQUFNLEVBQXlCLE1BQU0sZ0NBQWdDLENBQUM7QUFFL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBK0JsRSxXQUFXO0FBRUosSUFBTSxRQUFRLEdBQWQsTUFBTSxRQUFTLFNBQVEsTUFBZ0I7O0lBQzVDLE1BQU0sQ0FBQyxVQUFVLENBQStEO0lBRWhGLE1BQU0sQ0FBVztJQUNqQixRQUFRLENBQVM7SUFDakIsU0FBUyxHQUFHLElBQUksZUFBZSxDQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sQ0FBVTtJQUVoQixNQUFNLEdBQUcsSUFBSSxlQUFlLENBQVMsU0FBUyxDQUFDLENBQUM7SUFDaEQsYUFBYSxDQUFVLENBQUMsMkNBQTJDO0lBQ25FLFNBQVMsQ0FBNkI7SUFFdEMsSUFBSSxDQUFVO0lBQ2QsVUFBVSxDQUE2QjtJQUN2QyxVQUFVLENBQVU7SUFDcEIsZ0JBQWdCLENBQTZCO0lBRTdDLGtCQUFrQjtJQUNsQixLQUFLLENBQVU7SUFDZixNQUFNLENBQVU7SUFFaEIsTUFBTSxDQUFnQjtJQUN0QixPQUFPLENBQW9CO0lBQzNCLFlBQVksQ0FBb0I7SUFDaEMsS0FBSyxDQUFzQjtJQUMzQixRQUFRLENBQVU7SUFDbEIsNkNBQTZDO0lBQzdDLFVBQVUsQ0FBVTtJQUNwQixNQUFNLENBQVc7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QUNILE1BQU0sT0FBTyxXQUFXO0lBQ3RCLE9BQU8sQ0FLTDtDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlclByb2ZpbGVMYWJlbCB9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsL3BlcnNvbi5tb2RlbCc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vc2VydmljZXMvbW9kZWwvY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IEFwcENvbG9ycywgSWNvblJlZiB9IGZyb20gJy4uLy4uL3NoYXJlZC90eXBlcyc7XG5pbXBvcnQgeyBpc05pbE9yQmxhbmssIGlzTm90TmlsLCBpc05vdE5pbE9yQmxhbmssIHRvQm9vbGVhbiwgdG9JbnQgfSBmcm9tICcuLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWVudVBhdGhQYXJhbSB9IGZyb20gJy4vbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7IEFjY291bnQsIEFjY291bnRVdGlscyB9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsL2FjY291bnQubW9kZWwnO1xuaW1wb3J0IHsgRW50aXR5LCBFbnRpdHlBc09iamVjdE9wdGlvbnMgfSBmcm9tICcuLi9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgSVRyZWVJdGVtRW50aXR5IH0gZnJvbSAnLi4vc2VydmljZXMvbW9kZWwvdHJlZS1pdGVtLWVudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBFbnRpdHlDbGFzcyB9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsL2VudGl0eS5kZWNvcmF0b3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBJTWVudUl0ZW0gZXh0ZW5kcyBJY29uUmVmIHtcbiAgaWQ/OiBudW1iZXI7XG4gIHBhcmVudD86IElNZW51SXRlbTtcbiAgY2hpbGRyZW4/OiBJTWVudUl0ZW1bXTtcblxuICB0aXRsZTogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuXG4gIC8vIEluamVjdGlvbiBwb2ludFxuICBhZnRlcj86IHN0cmluZztcbiAgYmVmb3JlPzogc3RyaW5nO1xuICBzdGF0aWM/OiBib29sZWFuO1xuXG4gIGFjdGlvbj86IHN0cmluZyB8IGFueTtcbiAgcHJvZmlsZT86IFVzZXJQcm9maWxlTGFiZWw7XG4gIGV4YWN0UHJvZmlsZT86IFVzZXJQcm9maWxlTGFiZWw7XG4gIGNvbG9yPzogc3RyaW5nIHwgQXBwQ29sb3JzO1xuICBjc3NDbGFzcz86IHN0cmluZztcbiAgLy8gQSBjb25maWcgcHJvcGVydHksIHRvIGVuYWJsZSB0aGUgbWVudSBpdGVtXG4gIGlmUHJvcGVydHk/OiBzdHJpbmc7XG4gIC8vIEEgY29uZmlnIHByb3BlcnR5LCB0byBvdmVycmlkZSB0aGUgdGl0bGVcbiAgdGl0bGVQcm9wZXJ0eT86IHN0cmluZztcbiAgdGl0bGVBcmdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgcGF0aFBhcmFtcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIHBhcmVudFBhdGg/OiBzdHJpbmc7XG4gIHBhcmVudFBhdGhQYXJhbXM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBwaW5uZWQ/OiBib29sZWFuO1xufVxuXG4vLyBAZHluYW1pY1xuQEVudGl0eUNsYXNzKHsgdHlwZW5hbWU6ICdNZW51SXRlbVZPJyB9KVxuZXhwb3J0IGNsYXNzIE1lbnVJdGVtIGV4dGVuZHMgRW50aXR5PE1lbnVJdGVtPiBpbXBsZW1lbnRzIElNZW51SXRlbSwgSVRyZWVJdGVtRW50aXR5PE1lbnVJdGVtPiB7XG4gIHN0YXRpYyBmcm9tT2JqZWN0OiAoc291cmNlOiBhbnksIG9wdHM/OiB7IHdpdGhDaGlsZHJlbj86IGJvb2xlYW4gfSkgPT4gTWVudUl0ZW07XG5cbiAgcGFyZW50OiBNZW51SXRlbTtcbiAgcGFyZW50SWQ6IG51bWJlcjtcbiAgJGNoaWxkcmVuID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNZW51SXRlbVtdPihbXSk7XG4gIHN0YXRpYzogYm9vbGVhbjtcblxuICAkdGl0bGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4odW5kZWZpbmVkKTtcbiAgdGl0bGVQcm9wZXJ0eT86IHN0cmluZzsgLy8gQSBjb25maWcgcHJvcGVydHksIHRvIG92ZXJyaWRlIHRoZSB0aXRsZVxuICB0aXRsZUFyZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIHBhdGg/OiBzdHJpbmc7XG4gIHBhdGhQYXJhbXM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBwYXJlbnRQYXRoPzogc3RyaW5nO1xuICBwYXJlbnRQYXRoUGFyYW1zPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvLyBJbmplY3Rpb24gcG9pbnRcbiAgYWZ0ZXI/OiBzdHJpbmc7XG4gIGJlZm9yZT86IHN0cmluZztcblxuICBhY3Rpb24/OiBzdHJpbmcgfCBhbnk7XG4gIHByb2ZpbGU/OiBVc2VyUHJvZmlsZUxhYmVsO1xuICBleGFjdFByb2ZpbGU/OiBVc2VyUHJvZmlsZUxhYmVsO1xuICBjb2xvcj86IHN0cmluZyB8IEFwcENvbG9ycztcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG4gIC8vIEEgY29uZmlnIHByb3BlcnR5LCB0byBlbmFibGUgdGhlIG1lbnUgaXRlbVxuICBpZlByb3BlcnR5Pzogc3RyaW5nO1xuICBwaW5uZWQ/OiBib29sZWFuO1xuXG4gIC8vIEljb25cbiAgaWNvbj86IHN0cmluZztcbiAgbWF0SWNvbj86IHN0cmluZztcbiAgbWF0U3ZnSWNvbj86IHN0cmluZztcblxuICBmcm9tT2JqZWN0KHNvdXJjZTogYW55LCBvcHRzPzogeyB3aXRoQ2hpbGRyZW4/OiBib29sZWFuIH0pIHtcbiAgICB0aGlzLmlkID0gc291cmNlLmlkO1xuXG4gICAgdGhpcy50aXRsZSA9IHNvdXJjZS50aXRsZTtcbiAgICB0aGlzLnRpdGxlUHJvcGVydHkgPSBzb3VyY2UudGl0bGVQcm9wZXJ0eTtcbiAgICB0aGlzLnRpdGxlQXJncyA9IHNvdXJjZS50aXRsZUFyZ3M7XG5cbiAgICAvLyBDbGVhbiBwYXRoXG4gICAgaWYgKHNvdXJjZS5wYXRoKSB7XG4gICAgICBjb25zdCB7IHBhdGgsIHBhcmFtcyB9ID0gTWVudUl0ZW1zLnBhcnNlUGF0aFdpdGhRdWVyeShzb3VyY2UucGF0aCk7XG4gICAgICB0aGlzLnBhdGggPSBwYXRoO1xuICAgICAgdGhpcy5wYXRoUGFyYW1zID0geyAuLi5zb3VyY2UucGF0aFBhcmFtcywgLi4ucGFyYW1zIH07XG4gICAgfVxuICAgIC8vIENsZWFuIHBhcmVudCBwYXRoXG4gICAgaWYgKHNvdXJjZS5wYXJlbnRQYXRoKSB7XG4gICAgICBjb25zdCB7IHBhdGgsIHBhcmFtcyB9ID0gTWVudUl0ZW1zLnBhcnNlUGF0aFdpdGhRdWVyeShzb3VyY2UucGFyZW50UGF0aCk7XG4gICAgICB0aGlzLnBhcmVudFBhdGggPSBwYXRoO1xuICAgICAgdGhpcy5wYXJlbnRQYXRoUGFyYW1zID0geyAuLi5zb3VyY2UucGFyZW50UGF0aFBhcmFtcywgLi4ucGFyYW1zIH07XG4gICAgfVxuXG4gICAgdGhpcy5hZnRlciA9IHNvdXJjZS5hZnRlcjtcbiAgICB0aGlzLmJlZm9yZSA9IHNvdXJjZS5iZWZvcmU7XG5cbiAgICB0aGlzLmFjdGlvbiA9IHNvdXJjZS5hY3Rpb247XG4gICAgdGhpcy5wcm9maWxlID0gc291cmNlLnByb2ZpbGU7XG4gICAgdGhpcy5leGFjdFByb2ZpbGUgPSBzb3VyY2UuZXhhY3RQcm9maWxlO1xuICAgIHRoaXMuY29sb3IgPSBzb3VyY2UuY29sb3I7XG4gICAgdGhpcy5jc3NDbGFzcyA9IHNvdXJjZS5jc3NDbGFzcztcbiAgICB0aGlzLmlmUHJvcGVydHkgPSBzb3VyY2UuaWZQcm9wZXJ0eTtcbiAgICB0aGlzLnBpbm5lZCA9IHRvQm9vbGVhbihzb3VyY2UucGlubmVkLCBmYWxzZSk7XG4gICAgdGhpcy5zdGF0aWMgPSBpc05vdE5pbChzb3VyY2Uuc3RhdGljKSA/IHNvdXJjZS5zdGF0aWMgOiB1bmRlZmluZWQ7IC8vIElmIHVuZGVmaW5lZCwgd2lsbCBiZSBzZXQgYnkgc2VydmljZVxuXG4gICAgLy8gSWNvblxuICAgIHRoaXMuaWNvbiA9IHNvdXJjZS5pY29uO1xuICAgIHRoaXMubWF0SWNvbiA9IHNvdXJjZS5tYXRJY29uO1xuICAgIHRoaXMubWF0U3ZnSWNvbiA9IHNvdXJjZS5tYXRTdmdJY29uO1xuXG4gICAgaWYgKCFvcHRzIHx8IG9wdHMud2l0aENoaWxkcmVuID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5jaGlsZHJlbiA9IChzb3VyY2UuY2hpbGRyZW4gfHwgW10pLm1hcCgoanNvbjogYW55KSA9PiBNZW51SXRlbS5mcm9tT2JqZWN0KGpzb24sIG9wdHMpKSB8fCBbXTtcbiAgICB9XG4gIH1cblxuICBhc09iamVjdChvcHRzPzogeyB3aXRoQ2hpbGRyZW4/OiBib29sZWFuIH0gJiBFbnRpdHlBc09iamVjdE9wdGlvbnMpOiBhbnkge1xuICAgIGNvbnN0IHRhcmdldCA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMpO1xuICAgIHRhcmdldC50aXRsZSA9IHRoaXMudGl0bGU7XG5cbiAgICBpZiAob3B0cz8ua2VlcExvY2FsSWQgPT09IGZhbHNlKSB7XG4gICAgICBkZWxldGUgdGFyZ2V0LmlkO1xuICAgIH1cblxuICAgIGlmIChvcHRzPy53aXRoQ2hpbGRyZW4gIT09IGZhbHNlKSB7XG4gICAgICB0YXJnZXQuY2hpbGRyZW4gPSAodGhpcy5jaGlsZHJlbiB8fCBbXSkubWFwKChjKSA9PiBjLmFzT2JqZWN0KG9wdHMpKTtcbiAgICB9XG5cbiAgICBkZWxldGUgdGFyZ2V0LiRjaGlsZHJlbjtcbiAgICBkZWxldGUgdGFyZ2V0LiR0aXRsZTtcbiAgICBkZWxldGUgdGFyZ2V0LnBhcmVudDtcblxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxuICAvLyBhZGRDaGlsZChjaGlsZDogTWVudUl0ZW0pIHtcbiAgLy8gICB0aGlzLiRjaGlsZHJlbi5uZXh0KHRoaXMuJGNoaWxkcmVuLnZhbHVlKVxuICAvLyB9XG5cbiAgZ2V0IGNoaWxkcmVuKCk6IE1lbnVJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLiRjaGlsZHJlbi52YWx1ZTtcbiAgfVxuICBzZXQgY2hpbGRyZW4odmFsdWU6IE1lbnVJdGVtW10pIHtcbiAgICB0aGlzLiRjaGlsZHJlbi5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiR0aXRsZS52YWx1ZTtcbiAgfVxuICBzZXQgdGl0bGUodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh0aGlzLnBpbm5lZCkge1xuICAgICAgLy8gSWYgbG9hZGluZywga2VlcCBleGlzdGluZyB0aXRsZSBpZiBwaW5uZWQgKGF2b2lkIHRvIHNob3cgc2tlbGV0b24pXG4gICAgICBpZiAoaXNOb3ROaWxPckJsYW5rKHZhbHVlKSkgdGhpcy4kdGl0bGUubmV4dCh2YWx1ZSk7XG4gICAgfSBlbHNlIGlmIChpc05vdE5pbCh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuJHRpdGxlLm5leHQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBkZXRhY2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMucGFyZW50UGF0aCB8fCAhdGhpcy5wYXJlbnQ7XG4gIH1cblxuICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0aWMgfHwgIXRoaXMuZGV0YWNoZWQ7XG4gIH1cblxuICBnZXQgZXhwYW5kZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9uICE9PSAnZXhwYW5kJyB8fCB0aGlzLm1hdEljb24gPT09ICdleHBhbmRfbGVzcyc7XG4gIH1cblxuICBnZXQgYW5jZXN0b3IoKTogTWVudUl0ZW0ge1xuICAgIGlmICghdGhpcy5wYXJlbnQpIHJldHVybiBudWxsOyAvLyByb290ID0gbm90IGFuY2VzdG9yXG4gICAgaWYgKCF0aGlzLnBhcmVudC5wYXJlbnQpIHJldHVybiB0aGlzOyAvLyBmaXJzdCBzdWIgbWVudSA9IGFuY2VzdG9yXG4gICAgcmV0dXJuIHRoaXMucGFyZW50Py5hbmNlc3RvcjsgLy8gbG9vcFxuICB9XG5cbiAgZ2V0IGRpdmlkZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmFjdGlvbiAmJiAhdGhpcy5wYXRoO1xuICB9XG5cbiAgZ2V0IHBpbm5hYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5zdGF0aWMgJiYgdHlwZW9mIHRoaXMuYWN0aW9uICE9PSAnZnVuY3Rpb24nO1xuICB9XG5cbiAgaXNQaW5uZWQoKSB7XG4gICAgaWYgKHRoaXMucGlubmVkKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gKHRoaXMuY2hpbGRyZW4gfHwgW10pLnNvbWUoKGNoaWxkKSA9PiBjaGlsZC5pc1Bpbm5lZCgpKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTWVudUl0ZW1zIHtcbiAgLyoqXG4gICAqIENvbXBhcmUsIHdpdGhvdXQgY2hlY2tpbmcgdGhlIGNoaWxkcmVuXG4gICAqXG4gICAqIEBwYXJhbSBtYWluSXRlbVxuICAgKiBAcGFyYW0gb3RoZXJJdGVtXG4gICAqL1xuICBzdGF0aWMgaXNTYW1lKG1haW5JdGVtOiBJTWVudUl0ZW0sIG90aGVySXRlbTogSU1lbnVJdGVtKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNTYW1lSWRPclBhdGhBbmRQYXJhbXMobWFpbkl0ZW0sIG90aGVySXRlbSkgJiYgbWFpbkl0ZW0udGl0bGUgPT09IG90aGVySXRlbS50aXRsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wYXJlLCB3aXRob3V0IGNoZWNraW5nIHRoZSBjaGlsZHJlbiBhbmQgdGhlIHRpdGxlXG4gICAqXG4gICAqIEBwYXJhbSBtYWluSXRlbVxuICAgKiBAcGFyYW0gb3RoZXJJdGVtXG4gICAqL1xuICBzdGF0aWMgaXNTYW1lSWRPclBhdGhBbmRQYXJhbXMobWFpbkl0ZW06IElNZW51SXRlbSwgb3RoZXJJdGVtOiBJTWVudUl0ZW0pIHtcbiAgICByZXR1cm4gKGlzTm90TmlsKG1haW5JdGVtPy5pZCkgJiYgbWFpbkl0ZW0uaWQgPT09IG90aGVySXRlbT8uaWQpIHx8IHRoaXMuaXNTYW1lUGF0aEFuZFBhcmFtcyhtYWluSXRlbSwgb3RoZXJJdGVtKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wYXJlLCB3aXRob3V0IGNoZWNraW5nIHRoZSBjaGlsZHJlblxuICAgKlxuICAgKiBAcGFyYW0gbWFpbkl0ZW1cbiAgICogQHBhcmFtIG90aGVySXRlbVxuICAgKi9cbiAgc3RhdGljIGlzU2FtZVBhdGhBbmRQYXJhbXMobWFpbkl0ZW06IElNZW51SXRlbSwgb3RoZXJJdGVtOiBJTWVudUl0ZW0pIHtcbiAgICByZXR1cm4gKFxuICAgICAgbWFpbkl0ZW0gJiZcbiAgICAgIG1haW5JdGVtLnBhdGggPT09IG90aGVySXRlbT8ucGF0aCAmJlxuICAgICAgbWFpbkl0ZW0ucGFyZW50UGF0aCA9PT0gb3RoZXJJdGVtLnBhcmVudFBhdGggJiZcbiAgICAgIHRoaXMuaXNTYW1lUGFyYW1zKG1haW5JdGVtLnBhdGhQYXJhbXMsIG90aGVySXRlbS5wYXRoUGFyYW1zKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWxsIGtleS92YWx1ZSBvZiB0aGUgbWFpblBhcmFtcyBzaG91bGQgZXhpc3QgKGFuZCBiZSBlcXVhbHMpIGluIHRoZSBvdGhlciBwYXJhbXNcbiAgICpcbiAgICogQHBhcmFtIG1haW5QYXJhbXNcbiAgICogQHBhcmFtIG90aGVyUGFyYW1zXG4gICAqL1xuICBzdGF0aWMgaXNTYW1lUGFyYW1zKG1haW5QYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sIG90aGVyUGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KSB7XG4gICAgY29uc3QgbWFpbkVudHJpZXMgPSBPYmplY3QuZW50cmllcyhtYWluUGFyYW1zKTtcbiAgICBjb25zdCBvdGhlckVudHJpZXMgPSBPYmplY3QuZW50cmllcyhvdGhlclBhcmFtcyk7XG4gICAgLy8gVE9ETzogZXN0LWNlIHF1ZSB1biBpdGVtIG5lIHBvdXJyYWl0IHBhcyBhdm9pciBwbHVzIGRlIHBhcmFtcyBkYW5zIGwnaXRlbSBleGlzdGFudCA/XG4gICAgcmV0dXJuIG1haW5FbnRyaWVzLmxlbmd0aCA9PT0gb3RoZXJFbnRyaWVzLmxlbmd0aCAmJiBtYWluRW50cmllcy5ldmVyeSgoW2tleSwgdmFsdWVdKSA9PiB2YWx1ZSA9PT0gb3RoZXJQYXJhbXNba2V5XSk7XG4gIH1cblxuICBzdGF0aWMgaXNQYXJlbnQoY2hpbGQ6IElNZW51SXRlbSwgcGFyZW50OiBJTWVudUl0ZW0gfCBNZW51UGF0aFBhcmFtKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIChjaGlsZC5wYXJlbnRQYXRoICYmXG4gICAgICAgIGNoaWxkLnBhcmVudFBhdGggPT09IHBhcmVudD8ucGF0aCAmJlxuICAgICAgICB0aGlzLmlzU2FtZVBhcmFtcyhjaGlsZC5wYXJlbnRQYXRoUGFyYW1zLCBwYXJlbnRbJ3BhdGhQYXJhbXMnXSB8fCBwYXJlbnRbJ3BhcmFtcyddKSkgfHxcbiAgICAgIGZhbHNlXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBjaGVja0lmVmlzaWJsZShcbiAgICBpdGVtOiBJTWVudUl0ZW0sXG4gICAgYWNjb3VudDogQWNjb3VudCxcbiAgICBjb25maWc6IENvbmZpZ3VyYXRpb24sXG4gICAgb3B0cz86IHtcbiAgICAgIGlzTG9naW4/OiBib29sZWFuO1xuICAgICAgZGVidWc/OiBib29sZWFuO1xuICAgICAgbG9nUHJlZml4Pzogc3RyaW5nO1xuICAgIH1cbiAgKTogYm9vbGVhbiB7XG4gICAgb3B0cyA9IG9wdHMgfHwge307XG4gICAgaWYgKGl0ZW0ucHJvZmlsZSkge1xuICAgICAgY29uc3QgaGFzUHJvZmlsZSA9IEFjY291bnRVdGlscy5oYXNNaW5Qcm9maWxlKGFjY291bnQsIGl0ZW0ucHJvZmlsZSk7XG4gICAgICBpZiAoIWhhc1Byb2ZpbGUpIHtcbiAgICAgICAgaWYgKG9wdHMuZGVidWcpXG4gICAgICAgICAgY29uc29sZS5kZWJ1ZyhcbiAgICAgICAgICAgIGAkeyhvcHRzICYmIG9wdHMubG9nUHJlZml4KSB8fCAnW21lbnUtc2VydmljZV0nfSBIaWRlIGl0ZW0gJyR7aXRlbS50aXRsZX0nOiBuZWVkIHRoZSBtaW4gcHJvZmlsZSAnJHtpdGVtLnByb2ZpbGV9JyB0byBhY2Nlc3MgcGF0aCAnJHtpdGVtLnBhdGh9J2BcbiAgICAgICAgICApO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpdGVtLmV4YWN0UHJvZmlsZSkge1xuICAgICAgY29uc3QgaGFzRXhhY3RQcm9maWxlID0gQWNjb3VudFV0aWxzLmhhc0V4YWN0UHJvZmlsZShhY2NvdW50LCBpdGVtLmV4YWN0UHJvZmlsZSk7XG4gICAgICBpZiAoIWhhc0V4YWN0UHJvZmlsZSkge1xuICAgICAgICBpZiAob3B0cy5kZWJ1ZylcbiAgICAgICAgICBjb25zb2xlLmRlYnVnKFxuICAgICAgICAgICAgYCR7KG9wdHMgJiYgb3B0cy5sb2dQcmVmaXgpIHx8ICdbbWVudS1zZXJ2aWNlXSd9IEhpZGUgaXRlbSAnJHtpdGVtLnRpdGxlfSc6IG5lZWQgZXhhY3QgcHJvZmlsZSAnJHtpdGVtLmV4YWN0UHJvZmlsZX0nIHRvIGFjY2VzcyBwYXRoICcke2l0ZW0ucGF0aH0nYFxuICAgICAgICAgICk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiBlbmFibGUgYnkgY29uZmlnXG4gICAgaWYgKGl0ZW0uaWZQcm9wZXJ0eSkge1xuICAgICAgLy9jb25zb2xlLmRlYnVnKFwiW21lbnVdIENoZWNraW5nIGlmIHByb3BlcnR5IGVuYWJsZSA/IFwiICsgaXRlbS5pZlByb3BlcnR5LCBjb25maWcgJiYgY29uZmlnLnByb3BlcnRpZXMpO1xuICAgICAgY29uc3QgaXNFbmFibGVCeUNvbmZpZyA9IGNvbmZpZyAmJiBjb25maWcucHJvcGVydGllc1tpdGVtLmlmUHJvcGVydHldID09PSAndHJ1ZSc7XG4gICAgICBpZiAoIWlzRW5hYmxlQnlDb25maWcpIHtcbiAgICAgICAgaWYgKG9wdHMuZGVidWcpIGNvbnNvbGUuZGVidWcoXCJbbWVudS1zZXJ2aWNlXSBDb25maWcgcHJvcGVydHkgJ1wiICsgaXRlbS5pZlByb3BlcnR5ICsgXCInIG5vdCAndHJ1ZScgZm9yIFwiLCBpdGVtLnBhdGgpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzdGF0aWMgY2hlY2tJZlN1Yk1lbnVWaXNpYmxlKGl0ZW06IE1lbnVJdGVtLCBjdXJyZW50UGF0aFBhcmFtOiBNZW51UGF0aFBhcmFtKSB7XG4gICAgaWYgKCFpdGVtLnBhcmVudFBhdGgpIHJldHVybiBmYWxzZTsgLy8gU2hvdWxkIGhhdmUgYSBwYXJlbnRcblxuICAgIGlmIChpdGVtLnN0YXRpYykgcmV0dXJuIHRydWU7IC8vIEFsd2F5cyBrZWVwIHN0YXRpYyBpdGVtc1xuXG4gICAgaWYgKGl0ZW0uaXNQaW5uZWQoKSkgcmV0dXJuIHRydWU7IC8vIEFsd2F5cyBrZWVwIHBpbm5lZCBpdGVtc1xuXG4gICAgLy8gS2VlcCBlYWNoIG1lbnUgaXRlbXMgaW4gdGhlIHNjb3BlIG9mIHRoZSBjdXJyZW50IHVybCBwYXRoXG4gICAgaWYgKGN1cnJlbnRQYXRoUGFyYW0/LnBhdGguc3RhcnRzV2l0aChpdGVtLnBhdGgpKSByZXR1cm4gdHJ1ZTtcblxuICAgIC8vIEtlZXAgaWYgcGFyZW50IGlzIGFuIGV4cGFuZGVkIGl0ZW1cbiAgICBpZiAoaXRlbS5wYXJlbnQ/LmFjdGlvbiA9PT0gJ2V4cGFuZCcgJiYgaXRlbS5wYXJlbnQuZXhwYW5kZWQpIHJldHVybiB0cnVlO1xuXG4gICAgLy8gTm90IHZpc2libGVcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzdGF0aWMgcGFyc2VQYXRoV2l0aFF1ZXJ5KHBhdGhXaXRoUXVlcnk6IHN0cmluZyk6IE1lbnVQYXRoUGFyYW0ge1xuICAgIGNvbnN0IGluZGV4ID0gcGF0aFdpdGhRdWVyeS5sYXN0SW5kZXhPZignPycpO1xuICAgIGlmIChpbmRleCA8IDApIHJldHVybiB7IHBhdGg6IHBhdGhXaXRoUXVlcnksIHBhcmFtczoge30gfTtcbiAgICBjb25zdCBwYXRoID0gcGF0aFdpdGhRdWVyeS5zdWJzdHJpbmcoMCwgaW5kZXgpO1xuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gcGF0aFdpdGhRdWVyeS5zdWJzdHJpbmcoaW5kZXgpO1xuICAgIGNvbnN0IHBhcmFtcyA9IE9iamVjdC5mcm9tRW50cmllcyhuZXcgVVJMU2VhcmNoUGFyYW1zKHF1ZXJ5U3RyaW5nKSk7XG4gICAgcmV0dXJuIHsgcGF0aCwgcGFyYW1zIH07XG4gIH1cblxuICBzdGF0aWMgZ2V0VXJsKGl0ZW06IElNZW51SXRlbSkge1xuICAgIHJldHVybiB0aGlzLmdldFVybEZyb21QYXRoQW5kUGFyYW1zKGl0ZW0/LnBhdGgsIGl0ZW0/LnBhdGhQYXJhbXMpO1xuICB9XG5cbiAgc3RhdGljIGdldFVybEZyb21QYXRoQW5kUGFyYW1zKHBhdGg6IHN0cmluZywgcGFyYW1zPzogYW55KSB7XG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSBPYmplY3QuZW50cmllcyhwYXJhbXMgfHwge30pXG4gICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IGAke2tleX09JHt2YWx1ZX1gKVxuICAgICAgLmpvaW4oJyYnKTtcbiAgICBpZiAoaXNOaWxPckJsYW5rKHF1ZXJ5U3RyaW5nKSkgcmV0dXJuIHBhdGggfHwgJyc7XG4gICAgcmV0dXJuIGAke3BhdGggfHwgJyd9PyR7cXVlcnlTdHJpbmd9YDtcbiAgfVxuXG4gIHN0YXRpYyBzb3J0QnlQYXJhbU9ySWRDb21wYXJhdG9yKHBhcmFtTmFtZT86IHN0cmluZyk6IChuMTogSU1lbnVJdGVtLCBuMjogSU1lbnVJdGVtKSA9PiBudW1iZXIge1xuICAgIHBhcmFtTmFtZSA9IHBhcmFtTmFtZSB8fCAndGFiJztcbiAgICByZXR1cm4gKG4xOiBJTWVudUl0ZW0sIG4yOiBJTWVudUl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGQxID0gdG9JbnQobjEucGF0aFBhcmFtcz8uW3BhcmFtTmFtZV0sIG4xLmlkKTtcbiAgICAgIGNvbnN0IGQyID0gdG9JbnQobjIucGF0aFBhcmFtcz8uW3BhcmFtTmFtZV0sIG4yLmlkKTtcbiAgICAgIHJldHVybiBkMSA9PT0gZDIgPyAwIDogZDEgPiBkMiA/IDEgOiAtMTtcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIHNvcnRCeVRhYk9ySWQgPSB0aGlzLnNvcnRCeVBhcmFtT3JJZENvbXBhcmF0b3IoJ3RhYicpO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gY29uZmlndXJlIHNwZWNpZmljIGJlaGF2aW9yIG9uIHByb2plY3RzXG4gKi9cbmV4cG9ydCBjbGFzcyBNZW51T3B0aW9ucyB7XG4gIHN1Yk1lbnU/OiB7XG4gICAgZW5hYmxlPzogYm9vbGVhbjtcbiAgICBzaG93UGluQnV0dG9uPzogYm9vbGVhbjtcbiAgICBkaXNhYmxlSWNvbj86IGJvb2xlYW47XG4gICAgc2F2ZVBpbm5lZD86IGJvb2xlYW47XG4gIH07XG59XG4iXX0=
|
|
@@ -8,31 +8,26 @@ import { RxStateModule } from '../../shared/rx-state.module';
|
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "@ngx-translate/core";
|
|
10
10
|
export class AppMenuModule {
|
|
11
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.
|
|
12
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.
|
|
11
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AppMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: AppMenuModule, declarations: [
|
|
13
13
|
// Components
|
|
14
14
|
MenuComponent,
|
|
15
15
|
// Directive
|
|
16
|
-
SubMenuTabDirective], imports: [SharedModule, RouterModule,
|
|
17
|
-
RxStateModule, i1.TranslateModule], exports: [
|
|
16
|
+
SubMenuTabDirective], imports: [SharedModule, RouterModule, RxStateModule, i1.TranslateModule], exports: [
|
|
18
17
|
// Modules
|
|
19
18
|
TranslateModule,
|
|
20
19
|
// Components
|
|
21
20
|
MenuComponent,
|
|
22
21
|
// Directive
|
|
23
22
|
SubMenuTabDirective] });
|
|
24
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.
|
|
25
|
-
RxStateModule,
|
|
26
|
-
TranslateModule.forChild(),
|
|
23
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AppMenuModule, imports: [SharedModule, RouterModule, RxStateModule, TranslateModule.forChild(),
|
|
27
24
|
// Modules
|
|
28
25
|
TranslateModule] });
|
|
29
26
|
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AppMenuModule, decorators: [{
|
|
31
28
|
type: NgModule,
|
|
32
29
|
args: [{
|
|
33
|
-
imports: [SharedModule, RouterModule,
|
|
34
|
-
RxStateModule,
|
|
35
|
-
TranslateModule.forChild()],
|
|
30
|
+
imports: [SharedModule, RouterModule, RxStateModule, TranslateModule.forChild()],
|
|
36
31
|
declarations: [
|
|
37
32
|
// Components
|
|
38
33
|
MenuComponent,
|
|
@@ -49,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
|
|
|
49
44
|
],
|
|
50
45
|
}]
|
|
51
46
|
}] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvbWVudS9tZW51Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQW9CN0QsTUFBTSxPQUFPLGFBQWE7dUdBQWIsYUFBYTt3R0FBYixhQUFhO1lBZHRCLGFBQWE7WUFDYixhQUFhO1lBQ2IsWUFBWTtZQUNaLG1CQUFtQixhQU5YLFlBQVksRUFBRSxZQUFZLEVBQUUsYUFBYTtZQVNqRCxVQUFVO1lBQ1YsZUFBZTtZQUNmLGFBQWE7WUFDYixhQUFhO1lBQ2IsWUFBWTtZQUNaLG1CQUFtQjt3R0FHVixhQUFhLFlBakJkLFlBQVksRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUU7WUFTN0UsVUFBVTtZQUNWLGVBQWU7OzJGQU9OLGFBQWE7a0JBbEJ6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFFaEYsWUFBWSxFQUFFO3dCQUNaLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixZQUFZO3dCQUNaLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFVBQVU7d0JBQ1YsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixtQkFBbUI7cUJBQ3BCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7IE1lbnVDb21wb25lbnQgfSBmcm9tICcuL21lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1Yk1lbnVUYWJEaXJlY3RpdmUgfSBmcm9tICcuL3N1Yi1tZW51LXRhYi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUnhTdGF0ZU1vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9yeC1zdGF0ZS5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbU2hhcmVkTW9kdWxlLCBSb3V0ZXJNb2R1bGUsIFJ4U3RhdGVNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpXSxcblxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICAvLyBDb21wb25lbnRzXG4gICAgTWVudUNvbXBvbmVudCxcbiAgICAvLyBEaXJlY3RpdmVcbiAgICBTdWJNZW51VGFiRGlyZWN0aXZlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgLy8gTW9kdWxlc1xuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAvLyBDb21wb25lbnRzXG4gICAgTWVudUNvbXBvbmVudCxcbiAgICAvLyBEaXJlY3RpdmVcbiAgICBTdWJNZW51VGFiRGlyZWN0aXZlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBNZW51TW9kdWxlIHt9XG4iXX0=
|