@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
|
@@ -14,20 +14,22 @@ let Peer = class Peer extends Entity {
|
|
|
14
14
|
dns: url.hostname,
|
|
15
15
|
port: isNilOrBlank(url.port) ? undefined : url.port,
|
|
16
16
|
useSsl: url.protocol && (url.protocol.startsWith('https') || url.protocol.startsWith('wss')),
|
|
17
|
-
path: noTrailingSlash(url.pathname)
|
|
17
|
+
path: noTrailingSlash(url.pathname),
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
20
|
static path(peer, ...paths) {
|
|
21
21
|
if (!peer)
|
|
22
|
-
throw new Error(
|
|
22
|
+
throw new Error("Missing required argument 'peer'!");
|
|
23
23
|
// Remove starting slashes
|
|
24
|
-
paths = (paths || [])
|
|
24
|
+
paths = (paths || [])
|
|
25
|
+
.map((path) => {
|
|
25
26
|
if (path.startsWith('./'))
|
|
26
27
|
return path.substring(2);
|
|
27
28
|
if (path.startsWith('/'))
|
|
28
29
|
return path.substring(1);
|
|
29
30
|
return path;
|
|
30
|
-
})
|
|
31
|
+
})
|
|
32
|
+
.filter(isNotNilOrBlank);
|
|
31
33
|
return [noTrailingSlash(this.fromObject(peer).url)].concat(...paths).join('/');
|
|
32
34
|
}
|
|
33
35
|
dns;
|
|
@@ -56,7 +58,7 @@ let Peer = class Peer extends Entity {
|
|
|
56
58
|
this.ipv6 = source.ipv6;
|
|
57
59
|
this.port = isNotNil(source.port) ? +source.port : undefined;
|
|
58
60
|
this.pubkey = source.pubkey;
|
|
59
|
-
this.useSsl = source.useSsl ||
|
|
61
|
+
this.useSsl = source.useSsl || this.port === 443;
|
|
60
62
|
this.path = source.path || '';
|
|
61
63
|
}
|
|
62
64
|
equals(other) {
|
|
@@ -69,8 +71,7 @@ let Peer = class Peer extends Entity {
|
|
|
69
71
|
return (this.useSsl ? 'https://' : 'http://') + this.hostAndPort + (this.path || '');
|
|
70
72
|
}
|
|
71
73
|
get hostAndPort() {
|
|
72
|
-
return (this.dns || this.ipv4 || this.ipv6) +
|
|
73
|
-
((this.port && this.port !== 80 && this.port !== 443) ? ':' + this.port : '');
|
|
74
|
+
return (this.dns || this.ipv4 || this.ipv6) + (this.port && this.port !== 80 && this.port !== 443 ? ':' + this.port : '');
|
|
74
75
|
}
|
|
75
76
|
get reachable() {
|
|
76
77
|
return this.status && this.status === 'UP';
|
|
@@ -80,4 +81,4 @@ Peer = Peer_1 = __decorate([
|
|
|
80
81
|
EntityClass({ typename: 'PeerVO' })
|
|
81
82
|
], Peer);
|
|
82
83
|
export { Peer };
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9tb2RlbC9wZWVyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1CQUFtQjs7O0FBRW5CLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRyxPQUFPLEVBQWEsTUFBTSxFQUF5QixNQUFNLGdCQUFnQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxXQUFXO0FBRUosSUFBTSxJQUFJLEdBQVYsTUFBTSxJQUFLLFNBQVEsTUFBWTs7SUFDcEMsTUFBTSxDQUFDLFVBQVUsQ0FBb0M7SUFFckQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFlO1FBQzdCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNyQixHQUFHLEVBQUUsR0FBRyxDQUFDLFFBQVE7WUFDakIsSUFBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUk7WUFDbkQsTUFBTSxFQUFFLEdBQUcsQ0FBQyxRQUFRLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1RixJQUFJLEVBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7U0FDcEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBVSxFQUFFLEdBQUcsS0FBZTtRQUN4QyxJ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Q0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1SCxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDO0lBQzdDLENBQUM7Q0FDRixDQUFBO0FBN0VZLElBQUk7SUFEaEIsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDO0dBQ3ZCLElBQUksQ0E2RWhCIiwic291cmNlc0NvbnRlbnQiOlsiLyogLS0gTmV0d29yayAtLSAqL1xuXG5pbXBvcnQgeyBpc05pbE9yQmxhbmssIGlzTm90TmlsLCBpc05vdE5pbE9yQmxhbmssIG5vVHJhaWxpbmdTbGFzaCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgQ2xvbmVhYmxlLCBFbnRpdHksIEVudGl0eUFzT2JqZWN0T3B0aW9ucyB9IGZyb20gJy4vZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IEVudGl0eUNsYXNzIH0gZnJvbSAnLi9lbnRpdHkuZGVjb3JhdG9ycyc7XG5cbi8vIEBkeW5hbWljXG5ARW50aXR5Q2xhc3MoeyB0eXBlbmFtZTogJ1BlZXJWTycgfSlcbmV4cG9ydCBjbGFzcyBQZWVyIGV4dGVuZHMgRW50aXR5PFBlZXI+IGltcGxlbWVudHMgQ2xvbmVhYmxlPFBlZXI+IHtcbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gUGVlcjtcblxuICBzdGF0aWMgcGFyc2VVcmwocGVlclVybDogc3RyaW5nKSB7XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChwZWVyVXJsKTtcbiAgICByZXR1cm4gdGhpcy5mcm9tT2JqZWN0KHtcbiAgICAgIGRuczogdXJsLmhvc3RuYW1lLFxuICAgICAgcG9ydDogaXNOaWxPckJsYW5rKHVybC5wb3J0KSA/IHVuZGVmaW5lZCA6IHVybC5wb3J0LFxuICAgICAgdXNlU3NsOiB1cmwucHJvdG9jb2wgJiYgKHVybC5wcm90b2NvbC5zdGFydHNXaXRoKCdodHRwcycpIHx8IHVybC5wcm90b2NvbC5zdGFydHNXaXRoKCd3c3MnKSksXG4gICAgICBwYXRoOiBub1RyYWlsaW5nU2xhc2godXJsLnBhdGhuYW1lKSxcbiAgICB9KTtcbiAgfVxuICBzdGF0aWMgcGF0aChwZWVyOiBQZWVyLCAuLi5wYXRoczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIGlmICghcGVlcikgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyByZXF1aXJlZCBhcmd1bWVudCAncGVlcichXCIpO1xuICAgIC8vIFJlbW92ZSBzdGFydGluZyBzbGFzaGVzXG4gICAgcGF0aHMgPSAocGF0aHMgfHwgW10pXG4gICAgICAubWFwKChwYXRoKSA9PiB7XG4gICAgICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoJy4vJykpIHJldHVybiBwYXRoLnN1YnN0cmluZygyKTtcbiAgICAgICAgaWYgKHBhdGguc3RhcnRzV2l0aCgnLycpKSByZXR1cm4gcGF0aC5zdWJzdHJpbmcoMSk7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoaXNOb3ROaWxPckJsYW5rKTtcbiAgICByZXR1cm4gW25vVHJhaWxpbmdTbGFzaCh0aGlzLmZyb21PYmplY3QocGVlcikudXJsKV0uY29uY2F0KC4uLnBhdGhzKS5qb2luKCcvJyk7XG4gIH1cblxuICBkbnM6IHN0cmluZztcbiAgaXB2NDogc3RyaW5nO1xuICBpcHY2OiBzdHJpbmc7XG4gIHBvcnQ6IG51bWJlcjtcbiAgdXNlU3NsOiBib29sZWFuO1xuICBwdWJrZXk6IHN0cmluZztcbiAgcGF0aD86IHN0cmluZztcblxuICBmYXZpY29uOiBzdHJpbmc7XG4gIHN0YXR1czogJ1VQJyB8ICdET1dOJztcbiAgc29mdHdhcmVOYW1lOiBzdHJpbmc7XG4gIHNvZnR3YXJlVmVyc2lvbjogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoUGVlci5UWVBFTkFNRSk7XG4gIH1cblxuICBhc09iamVjdChvcHRpb25zPzogRW50aXR5QXNPYmplY3RPcHRpb25zKTogYW55IHtcbiAgICByZXR1cm4gc3VwZXIuYXNPYmplY3Qob3B0aW9ucyk7XG4gIH1cblxuICBmcm9tT2JqZWN0KHNvdXJjZTogYW55KSB7XG4gICAgc3VwZXIuZnJvbU9iamVjdChzb3VyY2UpO1xuICAgIHRoaXMuZG5zID0gc291cmNlLmRucyB8fCBzb3VyY2UuaG9zdDtcbiAgICB0aGlzLmlwdjQgPSBzb3VyY2UuaXB2NDtcbiAgICB0aGlzLmlwdjYgPSBzb3VyY2UuaXB2NjtcbiAgICB0aGlzLnBvcnQgPSBpc05vdE5pbChzb3VyY2UucG9ydCkgPyArc291cmNlLnBvcnQgOiB1bmRlZmluZWQ7XG4gICAgdGhpcy5wdWJrZXkgPSBzb3VyY2UucHVia2V5O1xuICAgIHRoaXMudXNlU3NsID0gc291cmNlLnVzZVNzbCB8fCB0aGlzLnBvcnQgPT09IDQ0MztcbiAgICB0aGlzLnBhdGggPSBzb3VyY2UucGF0aCB8fCAnJztcbiAgfVxuXG4gIGVxdWFscyhvdGhlcjogUGVlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdXBlci5lcXVhbHMob3RoZXIpICYmIHRoaXMucHVia2V5ID09PSBvdGhlci5wdWJrZXkgJiYgdGhpcy51cmwgPT09IG90aGVyLnVybDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHBlZXIgVVJMICh3aXRob3V0IHRyYWlsaW5nIHNsYXNoKVxuICAgKi9cbiAgZ2V0IHVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy51c2VTc2wgPyAnaHR0cHM6Ly8nIDogJ2h0dHA6Ly8nKSArIHRoaXMuaG9zdEFuZFBvcnQgKyAodGhpcy5wYXRoIHx8ICcnKTtcbiAgfVxuXG4gIGdldCBob3N0QW5kUG9ydCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5kbnMgfHwgdGhpcy5pcHY0IHx8IHRoaXMuaXB2NikgKyAodGhpcy5wb3J0ICYmIHRoaXMucG9ydCAhPT0gODAgJiYgdGhpcy5wb3J0ICE9PSA0NDMgPyAnOicgKyB0aGlzLnBvcnQgOiAnJyk7XG4gIH1cblxuICBnZXQgcmVhY2hhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyAmJiB0aGlzLnN0YXR1cyA9PT0gJ1VQJztcbiAgfVxufVxuIl19
|
|
@@ -29,16 +29,16 @@ let Person = class Person extends Entity {
|
|
|
29
29
|
if (opts && opts.minify) {
|
|
30
30
|
return {
|
|
31
31
|
id: this.id,
|
|
32
|
-
__typename: opts.keepTypename && this.__typename || undefined,
|
|
32
|
+
__typename: (opts.keepTypename && this.__typename) || undefined,
|
|
33
33
|
firstName: this.firstName,
|
|
34
|
-
lastName: this.lastName
|
|
34
|
+
lastName: this.lastName,
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
37
|
const target = super.asObject(opts);
|
|
38
|
-
target.department = this.department && this.department.asObject(opts) || undefined;
|
|
39
|
-
target.profiles = this.profiles && this.profiles.slice(0) || [];
|
|
38
|
+
target.department = (this.department && this.department.asObject(opts)) || undefined;
|
|
39
|
+
target.profiles = (this.profiles && this.profiles.slice(0)) || [];
|
|
40
40
|
// Set profile list from the main profile
|
|
41
|
-
target.profiles = this.mainProfile && [this.mainProfile] || target.profiles;
|
|
41
|
+
target.profiles = (this.mainProfile && [this.mainProfile]) || target.profiles;
|
|
42
42
|
target.creationDate = toDateISOString(this.creationDate);
|
|
43
43
|
if (!opts || opts.minify !== true)
|
|
44
44
|
target.mainProfile = PersonUtils.getMainProfile(target.profiles);
|
|
@@ -55,23 +55,24 @@ let Person = class Person extends Entity {
|
|
|
55
55
|
this.usernameExtranet = source.usernameExtranet;
|
|
56
56
|
this.avatar = source.avatar;
|
|
57
57
|
this.statusId = source.statusId;
|
|
58
|
-
this.department = source.department && Department.fromObject(source.department) || undefined;
|
|
59
|
-
this.profiles = source.profiles && source.profiles.slice(0) || [];
|
|
58
|
+
this.department = (source.department && Department.fromObject(source.department)) || undefined;
|
|
59
|
+
this.profiles = (source.profiles && source.profiles.slice(0)) || [];
|
|
60
60
|
// Add main profile to the list, if need
|
|
61
|
-
if (source.mainProfile && !this.profiles.find(p => p === source.mainProfile)) {
|
|
61
|
+
if (source.mainProfile && !this.profiles.find((p) => p === source.mainProfile)) {
|
|
62
62
|
this.profiles = this.profiles.concat(source.mainProfile);
|
|
63
63
|
}
|
|
64
64
|
this.mainProfile = PersonUtils.getMainProfile(this.profiles);
|
|
65
65
|
}
|
|
66
66
|
equals(other) {
|
|
67
|
-
return other
|
|
68
|
-
|
|
67
|
+
return (other &&
|
|
68
|
+
((isNotNil(this.id) && this.id === other.id) ||
|
|
69
69
|
// Functional test
|
|
70
|
-
|| (
|
|
71
70
|
// Pubkey should be unique
|
|
72
|
-
(this.pubkey &&
|
|
71
|
+
(this.pubkey &&
|
|
72
|
+
this.pubkey === other.pubkey &&
|
|
73
73
|
// Email should be unique
|
|
74
|
-
|
|
74
|
+
this.email &&
|
|
75
|
+
this.email === other.email)));
|
|
75
76
|
}
|
|
76
77
|
};
|
|
77
78
|
Person = Person_1 = __decorate([
|
|
@@ -82,13 +83,13 @@ export class PersonUtils {
|
|
|
82
83
|
static getMainProfile(profiles) {
|
|
83
84
|
if (isEmptyArray(profiles))
|
|
84
85
|
return 'GUEST';
|
|
85
|
-
return PRIORITIZED_AUTHORITIES.find(label => profiles.includes(label)) || 'GUEST';
|
|
86
|
+
return PRIORITIZED_AUTHORITIES.find((label) => profiles.includes(label)) || 'GUEST';
|
|
86
87
|
}
|
|
87
88
|
static getMainProfileIndex(profiles) {
|
|
88
89
|
if (isEmptyArray(profiles))
|
|
89
90
|
return PRIORITIZED_AUTHORITIES.length - 1; // return last (lower) profile
|
|
90
|
-
const index = PRIORITIZED_AUTHORITIES.findIndex(label => profiles.includes(label));
|
|
91
|
-
return
|
|
91
|
+
const index = PRIORITIZED_AUTHORITIES.findIndex((label) => profiles.includes(label));
|
|
92
|
+
return index !== -1 ? index : PRIORITIZED_AUTHORITIES.length - 1;
|
|
92
93
|
}
|
|
93
94
|
static hasUpperOrEqualsProfile(actualProfiles, expectedProfile) {
|
|
94
95
|
const expectedProfileIndex = PRIORITIZED_AUTHORITIES.indexOf(expectedProfile);
|
|
@@ -107,4 +108,4 @@ export class PersonUtils {
|
|
|
107
108
|
return label || defaultProfile;
|
|
108
109
|
}
|
|
109
110
|
}
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL21vZGVsL3BlcnNvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR25FLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFpQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUU3SCxXQUFXO0FBRUosSUFBTSxNQUFNLEdBQVosTUFBTSxNQUVULFNBQVEsTUFBNkM7O0lBRXZELE1BQU0sQ0FBQyxVQUFVLENBQXVDO0lBRXhELFNBQVMsQ0FBUztJQUNsQixRQUFRLENBQVM7SUFDakIsS0FBSyxDQUFTO0lBQ2QsTUFBTSxDQUFTO0lBQ2YsTUFBTSxDQUFTO0lBQ2YsWUFBWSxDQUFnQjtJQUM1QixRQUFRLENBQVM7SUFDakIsVUFBVSxHQUFlLElBQUksQ0FBQztJQUM5QixRQUFRLENBQVM7SUFDakIsZ0JBQWdCLENBQVM7SUFDekIsUUFBUSxDQUFXO0lBQ25CLFdBQVcsQ0FBUztJQUVwQixZQUFZLFVBQW1CO1FBQzdCLEtBQUssQ0FBQyxVQUFVLElBQUksUUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBaUM7UUFDeEMsSUFBSSxJQUFJ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LENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxjQUF3QixFQUFFLGVBQWlDO1FBQ3hGLE1BQU0sb0JBQW9CLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzlFLE9BQU8sb0JBQW9CLEtBQUssQ0FBQyxDQUFDLElBQUksV0FBVyxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxJQUFJLG9CQUFvQixDQUFDO0lBQ2hILENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQVc7UUFDL0IsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDdEMsT0FBTyxHQUFHLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO0lBQzVDLENBQUM7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLElBQWMsRUFBRSxTQUFrQjtRQUN2RCxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFZLEVBQUUsY0FBaUM7UUFDbEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFxQixDQUFDO1FBQzlELE9BQU8sS0FBSyxJQUFJLGNBQWMsQ0FBQztJQUNqQyxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgUmVmZXJlbnRpYWxBc09iamVjdE9wdGlvbnMgfSBmcm9tICcuL3JlZmVyZW50aWFsLm1vZGVsJztcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4vZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IERlcGFydG1lbnQgfSBmcm9tICcuL2RlcGFydG1lbnQubW9kZWwnO1xuaW1wb3J0IHsgZnJvbURhdGVJU09TdHJpbmcsIHRvRGF0ZUlTT1N0cmluZyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kYXRlcyc7XG5pbXBvcnQgeyBFbnRpdHlDbGFzcyB9IGZyb20gJy4vZW50aXR5LmRlY29yYXRvcnMnO1xuaW1wb3J0IHsgaXNFbXB0eUFycmF5LCBpc05vdE5pbCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuXG5leHBvcnQgdHlwZSBVc2VyUHJvZmlsZUxhYmVsID0gJ0FETUlOJyB8ICdVU0VSJyB8ICdTVVBFUlZJU09SJyB8ICdHVUVTVCc7XG5leHBvcnQgY29uc3QgUFJJT1JJVElaRURfQVVUSE9SSVRJRVM6IFJlYWRvbmx5PFVzZXJQcm9maWxlTGFiZWxbXT4gPSBPYmplY3QuZnJlZXplKFsnQURNSU4nLCAnU1VQRVJWSVNPUicsICdVU0VSJywgJ0dVRVNUJ10pO1xuXG4vLyBAZHluYW1pY1xuQEVudGl0eUNsYXNzKHt0eXBlbmFtZTogJ1BlcnNvblZPJ30pXG5leHBvcnQgY2xhc3MgUGVyc29uPFxuICBUIGV4dGVuZHMgUGVyc29uPGFueT4gPSBQZXJzb248YW55PlxuICA+IGV4dGVuZHMgRW50aXR5PFQsIG51bWJlciwgUmVmZXJlbnRpYWxBc09iamVjdE9wdGlvbnM+IHtcblxuICBzdGF0aWMgZnJvbU9iamVjdDogKHNvdXJjZTogYW55LCBvcHRzPzogYW55KSA9PiAgUGVyc29uO1xuXG4gIGZpcnN0TmFtZTogc3RyaW5nO1xuICBsYXN0TmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBwdWJrZXk6IHN0cmluZztcbiAgYXZhdGFyOiBzdHJpbmc7XG4gIGNyZWF0aW9uRGF0ZTogRGF0ZSB8IE1vbWVudDtcbiAgc3RhdHVzSWQ6IG51bWJlcjtcbiAgZGVwYXJ0bWVudDogRGVwYXJ0bWVudCA9IG51bGw7XG4gIHVzZXJuYW1lOiBzdHJpbmc7XG4gIHVzZXJuYW1lRXh0cmFuZXQ6IHN0cmluZztcbiAgcHJvZmlsZXM6IHN0cmluZ1tdO1xuICBtYWluUHJvZmlsZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKF9fdHlwZW5hbWU/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihfX3R5cGVuYW1lIHx8IFBlcnNvbi5UWVBFTkFNRSk7XG4gIH1cblxuICBhc09iamVjdChvcHRzPzogUmVmZXJlbnRpYWxBc09iamVjdE9wdGlvbnMpOiBhbnkge1xuICAgIGlmIChvcHRzICYmIG9wdHMubWluaWZ5KSAge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICAgIF9fdHlwZW5hbWU6IG9wdHMua2VlcFR5cGVuYW1lICYmIHRoaXMuX190eXBlbmFtZSB8fCB1bmRlZmluZWQsXG4gICAgICAgIGZpcnN0TmFtZTogdGhpcy5maXJzdE5hbWUsXG4gICAgICAgIGxhc3ROYW1lOiB0aGlzLmxhc3ROYW1lXG4gICAgICB9O1xuICAgIH1cbiAgICBjb25zdCB0YXJnZXQ6IGFueSA9IHN1cGVyLmFzT2JqZWN0KG9wdHMpO1xuICAgIHRhcmdldC5kZXBhcnRtZW50ID0gdGhpcy5kZXBhcnRtZW50ICYmIHRoaXMuZGVwYXJ0bWVudC5hc09iamVjdChvcHRzKSB8fCB1bmRlZmluZWQ7XG4gICAgdGFyZ2V0LnByb2ZpbGVzID0gdGhpcy5wcm9maWxlcyAmJiB0aGlzLnByb2ZpbGVzLnNsaWNlKDApIHx8IFtdO1xuICAgIC8vIFNldCBwcm9maWxlIGxpc3QgZnJvbSB0aGUgbWFpbiBwcm9maWxlXG4gICAgdGFyZ2V0LnByb2ZpbGVzID0gdGhpcy5tYWluUHJvZmlsZSAmJiBbdGhpcy5tYWluUHJvZmlsZV0gfHwgdGFyZ2V0LnByb2ZpbGVzO1xuICAgIHRhcmdldC5jcmVhdGlvbkRhdGUgPSB0b0RhdGVJU09TdHJpbmcodGhpcy5jcmVhdGlvbkRhdGUpO1xuXG4gICAgaWYgKCFvcHRzIHx8IG9wdHMubWluaWZ5ICE9PSB0cnVlKSB0YXJnZXQubWFpblByb2ZpbGUgPSBQZXJzb25VdGlscy5nZXRNYWluUHJvZmlsZSh0YXJnZXQucHJvZmlsZXMpO1xuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxuICBmcm9tT2JqZWN0KHNvdXJjZTogYW55KSB7XG4gICAgc3VwZXIuZnJvbU9iamVjdChzb3VyY2UpO1xuICAgIHRoaXMuZmlyc3ROYW1lID0gc291cmNlLmZpcnN0TmFtZTtcbiAgICB0aGlzLmxhc3ROYW1lID0gc291cmNlLmxhc3ROYW1lO1xuICAgIHRoaXMuZW1haWwgPSBzb3VyY2UuZW1haWw7XG4gICAgdGhpcy5jcmVhdGlvbkRhdGUgPSBmcm9tRGF0ZUlTT1N0cmluZyhzb3VyY2UuY3JlYXRpb25EYXRlKTtcbiAgICB0aGlzLnB1YmtleSA9IHNvdXJjZS5wdWJrZXk7XG4gICAgdGhpcy51c2VybmFtZSA9IHNvdXJjZS51c2VybmFtZTtcbiAgICB0aGlzLnVzZXJuYW1lRXh0cmFuZXQgPSBzb3VyY2UudXNlcm5hbWVFeHRyYW5ldDtcbiAgICB0aGlzLmF2YXRhciA9IHNvdXJjZS5hdmF0YXI7XG4gICAgdGhpcy5zdGF0dXNJZCA9IHNvdXJjZS5zdGF0dXNJZDtcbiAgICB0aGlzLmRlcGFydG1lbnQgPSBzb3VyY2UuZGVwYXJ0bWVudCAmJiBEZXBhcnRtZW50LmZyb21PYmplY3Qoc291cmNlLmRlcGFydG1lbnQpIHx8IHVuZGVmaW5lZDtcbiAgICB0aGlzLnByb2ZpbGVzID0gc291cmNlLnByb2ZpbGVzICYmIHNvdXJjZS5wcm9maWxlcy5zbGljZSgwKSB8fCBbXTtcbiAgICAvLyBBZGQgbWFpbiBwcm9maWxlIHRvIHRoZSBsaXN0LCBpZiBuZWVkXG4gICAgaWYgKHNvdXJjZS5tYWluUHJvZmlsZSAmJiAhdGhpcy5wcm9maWxlcy5maW5kKHAgPT4gcCA9PT0gc291cmNlLm1haW5Qcm9maWxlKSkge1xuICAgICAgdGhpcy5wcm9maWxlcyA9IHRoaXMucHJvZmlsZXMuY29uY2F0KHNvdXJjZS5tYWluUHJvZmlsZSk7XG4gICAgfVxuICAgIHRoaXMubWFpblByb2ZpbGUgPSBQZXJzb25VdGlscy5nZXRNYWluUHJvZmlsZSh0aGlzLnByb2ZpbGVzKTtcbiAgfVxuXG4gIGVxdWFscyhvdGhlcjogVCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBvdGhlclxuICAgICAgJiYgKChpc05vdE5pbCh0aGlzLmlkKSAmJiB0aGlzLmlkID09PSBvdGhlci5pZClcbiAgICAgIC8vIEZ1bmN0aW9uYWwgdGVzdFxuICAgICAgfHwgKFxuICAgICAgICAvLyBQdWJrZXkgc2hvdWxkIGJlIHVuaXF1ZVxuICAgICAgICAodGhpcy5wdWJrZXkgJiYgdGhpcy5wdWJrZXkgPT09IG90aGVyLnB1YmtleSlcbiAgICAgICAgLy8gRW1haWwgc2hvdWxkIGJlIHVuaXF1ZVxuICAgICAgICAmJiAodGhpcy5lbWFpbCAmJiB0aGlzLmVtYWlsID09PSBvdGhlci5lbWFpbClcbiAgICAgICkpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQZXJzb25VdGlscyB7XG4gIHN0YXRpYyBnZXRNYWluUHJvZmlsZShwcm9maWxlcz86IHN0cmluZ1tdKTogVXNlclByb2ZpbGVMYWJlbCB7XG4gICAgaWYgKGlzRW1wdHlBcnJheShwcm9maWxlcykpIHJldHVybiAnR1VFU1QnO1xuICAgIHJldHVybiBQUklPUklUSVpFRF9BVVRIT1JJVElFUy5maW5kKGxhYmVsID0+IHByb2ZpbGVzLmluY2x1ZGVzKGxhYmVsKSkgfHwgJ0dVRVNUJztcbiAgfVxuXG4gIHN0YXRpYyBnZXRNYWluUHJvZmlsZUluZGV4KHByb2ZpbGVzPzogc3RyaW5nW10pOiBudW1iZXIge1xuICAgIGlmIChpc0VtcHR5QXJyYXkocHJvZmlsZXMpKSByZXR1cm4gUFJJT1JJVElaRURfQVVUSE9SSVRJRVMubGVuZ3RoIC0gMTsgLy8gcmV0dXJuIGxhc3QgKGxvd2VyKSBwcm9maWxlXG4gICAgY29uc3QgaW5kZXggPSBQUklPUklUSVpFRF9BVVRIT1JJVElFUy5maW5kSW5kZXgobGFiZWwgPT4gcHJvZmlsZXMuaW5jbHVkZXMobGFiZWwpKTtcbiAgICByZXR1cm4gKGluZGV4ICE9PSAtMSkgPyBpbmRleCA6IChQUklPUklUSVpFRF9BVVRIT1JJVElFUy5sZW5ndGggLSAxKTtcbiAgfVxuXG4gIHN0YXRpYyBoYXNVcHBlck9yRXF1YWxzUHJvZmlsZShhY3R1YWxQcm9maWxlczogc3RyaW5nW10sIGV4cGVjdGVkUHJvZmlsZTogVXNlclByb2ZpbGVMYWJlbCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGV4cGVjdGVkUHJvZmlsZUluZGV4ID0gUFJJT1JJVElaRURfQVVUSE9SSVRJRVMuaW5kZXhPZihleHBlY3RlZFByb2ZpbGUpO1xuICAgIHJldHVybiBleHBlY3RlZFByb2ZpbGVJbmRleCAhPT0gLTEgJiYgUGVyc29uVXRpbHMuZ2V0TWFpblByb2ZpbGVJbmRleChhY3R1YWxQcm9maWxlcykgPD0gZXhwZWN0ZWRQcm9maWxlSW5kZXg7XG4gIH1cblxuICBzdGF0aWMgcGVyc29uVG9TdHJpbmcob2JqOiBQZXJzb24pOiBzdHJpbmcge1xuICAgIGlmICghb2JqIHx8ICFvYmouaWQpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIG9iai5sYXN0TmFtZSArICcgJyArIG9iai5maXJzdE5hbWU7XG4gIH1cblxuICBzdGF0aWMgcGVyc29uc1RvU3RyaW5nKGRhdGE6IFBlcnNvbltdLCBzZXBhcmF0b3I/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiAoZGF0YSB8fCBbXSkubWFwKFBlcnNvblV0aWxzLnBlcnNvblRvU3RyaW5nKS5qb2luKHNlcGFyYXRvciB8fCAnLCAnKTtcbiAgfVxuXG4gIHN0YXRpYyByb2xlVG9Qcm9maWxlKHJvbGU6IHN0cmluZywgZGVmYXVsdFByb2ZpbGU/OiBVc2VyUHJvZmlsZUxhYmVsKTogVXNlclByb2ZpbGVMYWJlbCB7XG4gICAgY29uc3QgbGFiZWwgPSByb2xlPy5yZXBsYWNlKC9eUk9MRV8vLCAnJykgYXMgVXNlclByb2ZpbGVMYWJlbDtcbiAgICByZXR1cm4gbGFiZWwgfHwgZGVmYXVsdFByb2ZpbGU7XG4gIH1cblxufVxuXG5cblxuXG5cblxuXG4iXX0=
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL21vZGVsL3BlcnNvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR25FLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFpQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUU3SCxXQUFXO0FBRUosSUFBTSxNQUFNLEdBQVosTUFBTSxNQUE0QyxTQUFRLE1BQTZDOztJQUM1RyxNQUFNLENBQUMsVUFBVSxDQUFzQztJQUV2RCxTQUFTLENBQVM7SUFDbEIsUUFBUSxDQUFTO0lBQ2pCLEtBQUssQ0FBUztJQUNkLE1BQU0sQ0FBUztJQUNmLE1BQU0sQ0FBUztJQUNmLFlBQVksQ0FBZ0I7SUFDNUIsUUFBUSxDQUFTO0lBQ2pCLFVBQVUsR0FBZSxJQUFJLENBQUM7SUFDOUIsUUFBUSxDQUFTO0lBQ2pCLGdCQUFnQixDQUFTO0lBQ3pCLFFBQVEsQ0FBVztJQUNuQixXQUFXLENBQVM7SUFFcEIsWUFBWSxVQUFtQjtRQUM3QixLQUFLLENBQUMsVUFBVSxJQUFJLFFBQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQWlDO1FBQ3hDLElBQUksSUFB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IHsgUmVmZXJlbnRpYWxBc09iamVjdE9wdGlvbnMgfSBmcm9tICcuL3JlZmVyZW50aWFsLm1vZGVsJztcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4vZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IERlcGFydG1lbnQgfSBmcm9tICcuL2RlcGFydG1lbnQubW9kZWwnO1xuaW1wb3J0IHsgZnJvbURhdGVJU09TdHJpbmcsIHRvRGF0ZUlTT1N0cmluZyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kYXRlcyc7XG5pbXBvcnQgeyBFbnRpdHlDbGFzcyB9IGZyb20gJy4vZW50aXR5LmRlY29yYXRvcnMnO1xuaW1wb3J0IHsgaXNFbXB0eUFycmF5LCBpc05vdE5pbCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuXG5leHBvcnQgdHlwZSBVc2VyUHJvZmlsZUxhYmVsID0gJ0FETUlOJyB8ICdVU0VSJyB8ICdTVVBFUlZJU09SJyB8ICdHVUVTVCc7XG5leHBvcnQgY29uc3QgUFJJT1JJVElaRURfQVVUSE9SSVRJRVM6IFJlYWRvbmx5PFVzZXJQcm9maWxlTGFiZWxbXT4gPSBPYmplY3QuZnJlZXplKFsnQURNSU4nLCAnU1VQRVJWSVNPUicsICdVU0VSJywgJ0dVRVNUJ10pO1xuXG4vLyBAZHluYW1pY1xuQEVudGl0eUNsYXNzKHsgdHlwZW5hbWU6ICdQZXJzb25WTycgfSlcbmV4cG9ydCBjbGFzcyBQZXJzb248VCBleHRlbmRzIFBlcnNvbjxhbnk+ID0gUGVyc29uPGFueT4+IGV4dGVuZHMgRW50aXR5PFQsIG51bWJlciwgUmVmZXJlbnRpYWxBc09iamVjdE9wdGlvbnM+IHtcbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gUGVyc29uO1xuXG4gIGZpcnN0TmFtZTogc3RyaW5nO1xuICBsYXN0TmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBwdWJrZXk6IHN0cmluZztcbiAgYXZhdGFyOiBzdHJpbmc7XG4gIGNyZWF0aW9uRGF0ZTogRGF0ZSB8IE1vbWVudDtcbiAgc3RhdHVzSWQ6IG51bWJlcjtcbiAgZGVwYXJ0bWVudDogRGVwYXJ0bWVudCA9IG51bGw7XG4gIHVzZXJuYW1lOiBzdHJpbmc7XG4gIHVzZXJuYW1lRXh0cmFuZXQ6IHN0cmluZztcbiAgcHJvZmlsZXM6IHN0cmluZ1tdO1xuICBtYWluUHJvZmlsZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKF9fdHlwZW5hbWU/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihfX3R5cGVuYW1lIHx8IFBlcnNvbi5UWVBFTkFNRSk7XG4gIH1cblxuICBhc09iamVjdChvcHRzPzogUmVmZXJlbnRpYWxBc09iamVjdE9wdGlvbnMpOiBhbnkge1xuICAgIGlmIChvcHRzICYmIG9wdHMubWluaWZ5KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgICAgX190eXBlbmFtZTogKG9wdHMua2VlcFR5cGVuYW1lICYmIHRoaXMuX190eXBlbmFtZSkgfHwgdW5kZWZpbmVkLFxuICAgICAgICBmaXJzdE5hbWU6IHRoaXMuZmlyc3ROYW1lLFxuICAgICAgICBsYXN0TmFtZTogdGhpcy5sYXN0TmFtZSxcbiAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHRhcmdldDogYW55ID0gc3VwZXIuYXNPYmplY3Qob3B0cyk7XG4gICAgdGFyZ2V0LmRlcGFydG1lbnQgPSAodGhpcy5kZXBhcnRtZW50ICYmIHRoaXMuZGVwYXJ0bWVudC5hc09iamVjdChvcHRzKSkgfHwgdW5kZWZpbmVkO1xuICAgIHRhcmdldC5wcm9maWxlcyA9ICh0aGlzLnByb2ZpbGVzICYmIHRoaXMucHJvZmlsZXMuc2xpY2UoMCkpIHx8IFtdO1xuICAgIC8vIFNldCBwcm9maWxlIGxpc3QgZnJvbSB0aGUgbWFpbiBwcm9maWxlXG4gICAgdGFyZ2V0LnByb2ZpbGVzID0gKHRoaXMubWFpblByb2ZpbGUgJiYgW3RoaXMubWFpblByb2ZpbGVdKSB8fCB0YXJnZXQucHJvZmlsZXM7XG4gICAgdGFyZ2V0LmNyZWF0aW9uRGF0ZSA9IHRvRGF0ZUlTT1N0cmluZyh0aGlzLmNyZWF0aW9uRGF0ZSk7XG5cbiAgICBpZiAoIW9wdHMgfHwgb3B0cy5taW5pZnkgIT09IHRydWUpIHRhcmdldC5tYWluUHJvZmlsZSA9IFBlcnNvblV0aWxzLmdldE1haW5Qcm9maWxlKHRhcmdldC5wcm9maWxlcyk7XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnkpIHtcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSk7XG4gICAgdGhpcy5maXJzdE5hbWUgPSBzb3VyY2UuZmlyc3ROYW1lO1xuICAgIHRoaXMubGFzdE5hbWUgPSBzb3VyY2UubGFzdE5hbWU7XG4gICAgdGhpcy5lbWFpbCA9IHNvdXJjZS5lbWFpbDtcbiAgICB0aGlzLmNyZWF0aW9uRGF0ZSA9IGZyb21EYXRlSVNPU3RyaW5nKHNvdXJjZS5jcmVhdGlvbkRhdGUpO1xuICAgIHRoaXMucHVia2V5ID0gc291cmNlLnB1YmtleTtcbiAgICB0aGlzLnVzZXJuYW1lID0gc291cmNlLnVzZXJuYW1lO1xuICAgIHRoaXMudXNlcm5hbWVFeHRyYW5ldCA9IHNvdXJjZS51c2VybmFtZUV4dHJhbmV0O1xuICAgIHRoaXMuYXZhdGFyID0gc291cmNlLmF2YXRhcjtcbiAgICB0aGlzLnN0YXR1c0lkID0gc291cmNlLnN0YXR1c0lkO1xuICAgIHRoaXMuZGVwYXJ0bWVudCA9IChzb3VyY2UuZGVwYXJ0bWVudCAmJiBEZXBhcnRtZW50LmZyb21PYmplY3Qoc291cmNlLmRlcGFydG1lbnQpKSB8fCB1bmRlZmluZWQ7XG4gICAgdGhpcy5wcm9maWxlcyA9IChzb3VyY2UucHJvZmlsZXMgJiYgc291cmNlLnByb2ZpbGVzLnNsaWNlKDApKSB8fCBbXTtcbiAgICAvLyBBZGQgbWFpbiBwcm9maWxlIHRvIHRoZSBsaXN0LCBpZiBuZWVkXG4gICAgaWYgKHNvdXJjZS5tYWluUHJvZmlsZSAmJiAhdGhpcy5wcm9maWxlcy5maW5kKChwKSA9PiBwID09PSBzb3VyY2UubWFpblByb2ZpbGUpKSB7XG4gICAgICB0aGlzLnByb2ZpbGVzID0gdGhpcy5wcm9maWxlcy5jb25jYXQoc291cmNlLm1haW5Qcm9maWxlKTtcbiAgICB9XG4gICAgdGhpcy5tYWluUHJvZmlsZSA9IFBlcnNvblV0aWxzLmdldE1haW5Qcm9maWxlKHRoaXMucHJvZmlsZXMpO1xuICB9XG5cbiAgZXF1YWxzKG90aGVyOiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIG90aGVyICYmXG4gICAgICAoKGlzTm90TmlsKHRoaXMuaWQpICYmIHRoaXMuaWQgPT09IG90aGVyLmlkKSB8fFxuICAgICAgICAvLyBGdW5jdGlvbmFsIHRlc3RcbiAgICAgICAgLy8gUHVia2V5IHNob3VsZCBiZSB1bmlxdWVcbiAgICAgICAgKHRoaXMucHVia2V5ICYmXG4gICAgICAgICAgdGhpcy5wdWJrZXkgPT09IG90aGVyLnB1YmtleSAmJlxuICAgICAgICAgIC8vIEVtYWlsIHNob3VsZCBiZSB1bmlxdWVcbiAgICAgICAgICB0aGlzLmVtYWlsICYmXG4gICAgICAgICAgdGhpcy5lbWFpbCA9PT0gb3RoZXIuZW1haWwpKVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBlcnNvblV0aWxzIHtcbiAgc3RhdGljIGdldE1haW5Qcm9maWxlKHByb2ZpbGVzPzogc3RyaW5nW10pOiBVc2VyUHJvZmlsZUxhYmVsIHtcbiAgICBpZiAoaXNFbXB0eUFycmF5KHByb2ZpbGVzKSkgcmV0dXJuICdHVUVTVCc7XG4gICAgcmV0dXJuIFBSSU9SSVRJWkVEX0FVVEhPUklUSUVTLmZpbmQoKGxhYmVsKSA9PiBwcm9maWxlcy5pbmNsdWRlcyhsYWJlbCkpIHx8ICdHVUVTVCc7XG4gIH1cblxuICBzdGF0aWMgZ2V0TWFpblByb2ZpbGVJbmRleChwcm9maWxlcz86IHN0cmluZ1tdKTogbnVtYmVyIHtcbiAgICBpZiAoaXNFbXB0eUFycmF5KHByb2ZpbGVzKSkgcmV0dXJuIFBSSU9SSVRJWkVEX0FVVEhPUklUSUVTLmxlbmd0aCAtIDE7IC8vIHJldHVybiBsYXN0IChsb3dlcikgcHJvZmlsZVxuICAgIGNvbnN0IGluZGV4ID0gUFJJT1JJVElaRURfQVVUSE9SSVRJRVMuZmluZEluZGV4KChsYWJlbCkgPT4gcHJvZmlsZXMuaW5jbHVkZXMobGFiZWwpKTtcbiAgICByZXR1cm4gaW5kZXggIT09IC0xID8gaW5kZXggOiBQUklPUklUSVpFRF9BVVRIT1JJVElFUy5sZW5ndGggLSAxO1xuICB9XG5cbiAgc3RhdGljIGhhc1VwcGVyT3JFcXVhbHNQcm9maWxlKGFjdHVhbFByb2ZpbGVzOiBzdHJpbmdbXSwgZXhwZWN0ZWRQcm9maWxlOiBVc2VyUHJvZmlsZUxhYmVsKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZXhwZWN0ZWRQcm9maWxlSW5kZXggPSBQUklPUklUSVpFRF9BVVRIT1JJVElFUy5pbmRleE9mKGV4cGVjdGVkUHJvZmlsZSk7XG4gICAgcmV0dXJuIGV4cGVjdGVkUHJvZmlsZUluZGV4ICE9PSAtMSAmJiBQZXJzb25VdGlscy5nZXRNYWluUHJvZmlsZUluZGV4KGFjdHVhbFByb2ZpbGVzKSA8PSBleHBlY3RlZFByb2ZpbGVJbmRleDtcbiAgfVxuXG4gIHN0YXRpYyBwZXJzb25Ub1N0cmluZyhvYmo6IFBlcnNvbik6IHN0cmluZyB7XG4gICAgaWYgKCFvYmogfHwgIW9iai5pZCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gb2JqLmxhc3ROYW1lICsgJyAnICsgb2JqLmZpcnN0TmFtZTtcbiAgfVxuXG4gIHN0YXRpYyBwZXJzb25zVG9TdHJpbmcoZGF0YTogUGVyc29uW10sIHNlcGFyYXRvcj86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChkYXRhIHx8IFtdKS5tYXAoUGVyc29uVXRpbHMucGVyc29uVG9TdHJpbmcpLmpvaW4oc2VwYXJhdG9yIHx8ICcsICcpO1xuICB9XG5cbiAgc3RhdGljIHJvbGVUb1Byb2ZpbGUocm9sZTogc3RyaW5nLCBkZWZhdWx0UHJvZmlsZT86IFVzZXJQcm9maWxlTGFiZWwpOiBVc2VyUHJvZmlsZUxhYmVsIHtcbiAgICBjb25zdCBsYWJlbCA9IHJvbGU/LnJlcGxhY2UoL15ST0xFXy8sICcnKSBhcyBVc2VyUHJvZmlsZUxhYmVsO1xuICAgIHJldHVybiBsYWJlbCB8fCBkZWZhdWx0UHJvZmlsZTtcbiAgfVxufVxuIl19
|
|
@@ -9,24 +9,24 @@ export function referentialToString(obj, properties) {
|
|
|
9
9
|
return (obj && isNotNil(obj.id) && joinPropertiesPath(obj, properties || ['label', 'name'])) || undefined;
|
|
10
10
|
}
|
|
11
11
|
export function referentialsToString(values, properties, separator) {
|
|
12
|
-
return (values || []).map(v => referentialToString(v, properties)).join(separator || ', ');
|
|
12
|
+
return (values || []).map((v) => referentialToString(v, properties)).join(separator || ', ');
|
|
13
13
|
}
|
|
14
14
|
export const StatusList = Object.freeze([
|
|
15
15
|
{
|
|
16
16
|
id: StatusIds.ENABLE,
|
|
17
17
|
icon: 'checkmark',
|
|
18
|
-
label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
|
|
18
|
+
label: 'REFERENTIAL.STATUS_ENUM.ENABLE',
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
21
|
id: StatusIds.DISABLE,
|
|
22
22
|
icon: 'close',
|
|
23
|
-
label: 'REFERENTIAL.STATUS_ENUM.DISABLE'
|
|
23
|
+
label: 'REFERENTIAL.STATUS_ENUM.DISABLE',
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
26
|
id: StatusIds.TEMPORARY,
|
|
27
27
|
icon: 'help',
|
|
28
|
-
label: 'REFERENTIAL.STATUS_ENUM.TEMPORARY'
|
|
29
|
-
}
|
|
28
|
+
label: 'REFERENTIAL.STATUS_ENUM.TEMPORARY',
|
|
29
|
+
},
|
|
30
30
|
]);
|
|
31
31
|
export const StatusById = Object.freeze(splitById(StatusList));
|
|
32
32
|
//@dynamic
|
|
@@ -49,8 +49,8 @@ export class BaseReferential extends Entity {
|
|
|
49
49
|
if (opts && opts.minify) {
|
|
50
50
|
return {
|
|
51
51
|
id: this.id,
|
|
52
|
-
entityName: opts.keepEntityName && this.entityName || undefined, // Don't keep by default
|
|
53
|
-
__typename: opts.keepTypename && this.__typename || undefined
|
|
52
|
+
entityName: (opts.keepEntityName && this.entityName) || undefined, // Don't keep by default
|
|
53
|
+
__typename: (opts.keepTypename && this.__typename) || undefined,
|
|
54
54
|
};
|
|
55
55
|
}
|
|
56
56
|
const target = super.asObject(opts);
|
|
@@ -88,7 +88,7 @@ let Referential = class Referential extends BaseReferential {
|
|
|
88
88
|
}
|
|
89
89
|
fromObject(source, opts) {
|
|
90
90
|
super.fromObject(source, opts);
|
|
91
|
-
this.properties = source.properties && { ...source.properties } || undefined;
|
|
91
|
+
this.properties = (source.properties && { ...source.properties }) || undefined;
|
|
92
92
|
}
|
|
93
93
|
asObject(opts) {
|
|
94
94
|
const target = super.asObject(opts);
|
|
@@ -130,7 +130,7 @@ export const MINIFY_ENTITY_FOR_LOCAL_STORAGE = Object.freeze({
|
|
|
130
130
|
keepTypename: true,
|
|
131
131
|
keepEntityName: true,
|
|
132
132
|
keepLocalId: true,
|
|
133
|
-
keepIcon: true
|
|
133
|
+
keepIcon: true,
|
|
134
134
|
});
|
|
135
135
|
/**
|
|
136
136
|
* Used to send an entity to a pod
|
|
@@ -140,7 +140,7 @@ export const MINIFY_ENTITY_FOR_POD = Object.freeze({
|
|
|
140
140
|
keepTypename: false,
|
|
141
141
|
keepEntityName: false,
|
|
142
142
|
keepLocalId: false,
|
|
143
|
-
keepIcon: false
|
|
143
|
+
keepIcon: false,
|
|
144
144
|
});
|
|
145
145
|
// @dynamic
|
|
146
146
|
let ReferentialRef = class ReferentialRef extends Entity {
|
|
@@ -160,8 +160,8 @@ let ReferentialRef = class ReferentialRef extends Entity {
|
|
|
160
160
|
if (opts && opts.minify) {
|
|
161
161
|
return {
|
|
162
162
|
id: this.id,
|
|
163
|
-
entityName: opts.keepEntityName && this.entityName || undefined, // Don't keep by default
|
|
164
|
-
__typename: opts.keepTypename && this.__typename || undefined
|
|
163
|
+
entityName: (opts.keepEntityName && this.entityName) || undefined, // Don't keep by default
|
|
164
|
+
__typename: (opts.keepTypename && this.__typename) || undefined,
|
|
165
165
|
};
|
|
166
166
|
}
|
|
167
167
|
const target = super.asObject(opts);
|
|
@@ -186,4 +186,4 @@ ReferentialRef = ReferentialRef_1 = __decorate([
|
|
|
186
186
|
EntityClass({ typename: 'ReferentialVO' })
|
|
187
187
|
], ReferentialRef);
|
|
188
188
|
export { ReferentialRef };
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbnRpYWwubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvcmVmZXJlbnRpYWwubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxNQUFNLEVBQXlCLFdBQVcsRUFBVyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdsRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsR0FBc0IsRUFBRSxVQUFxQjtJQUMvRSxPQUFPLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksa0JBQWtCLENBQUMsR0FBRyxFQUFFLFVBQVUsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDO0FBQzVHLENBQUM7QUFDRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsTUFBcUIsRUFBRSxVQUFxQixFQUFFLFNBQWtCO0lBQ25HLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQztBQUM3RixDQUFDO0FBUUQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUF3QixNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzNEO1FBQ0Us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SUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztJQUMxQixDQUFDO0NBQ0YsQ0FBQTtBQWhEWSxjQUFjO0lBRDFCLFdBQVcsQ0FBQyxFQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUMsQ0FBQztHQUM1QixjQUFjLENBZ0QxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBpc05vdE5pbCwgam9pblByb3BlcnRpZXNQYXRoLCBzcGxpdEJ5SWQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IEVudGl0eSwgRW50aXR5QXNPYmplY3RPcHRpb25zLCBFbnRpdHlVdGlscywgSUVudGl0eSB9IGZyb20gJy4vZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IFN0YXR1c0lkcyB9IGZyb20gJy4vbW9kZWwuZW51bSc7XG5pbXBvcnQgeyBmcm9tRGF0ZUlTT1N0cmluZywgdG9EYXRlSVNPU3RyaW5nIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RhdGVzJztcbmltcG9ydCB7IEVudGl0eUNsYXNzIH0gZnJvbSAnLi9lbnRpdHkuZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBJY29uUmVmIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZmVyZW50aWFsVG9TdHJpbmcob2JqOiBSZWZlcmVudGlhbCB8IGFueSwgcHJvcGVydGllcz86IHN0cmluZ1tdKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIChvYmogJiYgaXNOb3ROaWwob2JqLmlkKSAmJiBqb2luUHJvcGVydGllc1BhdGgob2JqLCBwcm9wZXJ0aWVzIHx8IFsnbGFiZWwnLCAnbmFtZSddKSkgfHwgdW5kZWZpbmVkO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJlZmVyZW50aWFsc1RvU3RyaW5nKHZhbHVlczogUmVmZXJlbnRpYWxbXSwgcHJvcGVydGllcz86IHN0cmluZ1tdLCBzZXBhcmF0b3I/OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gKHZhbHVlcyB8fCBbXSkubWFwKHYgPT4gcmVmZXJlbnRpYWxUb1N0cmluZyh2LCBwcm9wZXJ0aWVzKSkuam9pbihzZXBhcmF0b3IgfHwgJywgJyk7XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJU3RhdHVzIHtcbiAgaWQ6IG51bWJlcjtcbiAgaWNvbj86IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IFN0YXR1c0xpc3Q6IFJlYWRvbmx5PElTdGF0dXNbXT4gPSBPYmplY3QuZnJlZXplKFtcbiAge1xuICAgIGlkOiBTdGF0dXNJZHMuRU5BQkxFLFxuICAgIGljb246ICdjaGVja21hcmsnLFxuICAgIGxhYmVsOiAnUkVGRVJFTlRJQUwuU1RBVFVTX0VOVU0uRU5BQkxFJ1xuICB9LFxuICB7XG4gICAgaWQ6IFN0YXR1c0lkcy5ESVNBQkxFLFxuICAgIGljb246ICdjbG9zZScsXG4gICAgbGFiZWw6ICdSRUZFUkVOVElBTC5TVEFUVVNfRU5VTS5ESVNBQkxFJ1xuICB9LFxuICB7XG4gICAgaWQ6IFN0YXR1c0lkcy5URU1QT1JBUlksXG4gICAgaWNvbjogJ2hlbHAnLFxuICAgIGxhYmVsOiAnUkVGRVJFTlRJQUwuU1RBVFVTX0VOVU0uVEVNUE9SQVJZJ1xuICB9XG5dKTtcblxuZXhwb3J0IGNvbnN0IFN0YXR1c0J5SWQgPSBPYmplY3QuZnJlZXplKHNwbGl0QnlJZChTdGF0dXNMaXN0KSk7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJUmVmZXJlbnRpYWxSZWY8XG4gIFQgZXh0ZW5kcyBJRW50aXR5PFQsIElEPiA9IElFbnRpdHk8YW55LCBhbnk+LFxuICBJRCA9IG51bWJlclxuICA+XG4gIGV4dGVuZHMgSUVudGl0eTxULCBJRD4ge1xuICBsYWJlbDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBsZXZlbElkPzogbnVtYmVyO1xuICBzdGF0dXNJZDogbnVtYmVyO1xuICBlbnRpdHlOYW1lOiBzdHJpbmc7XG4gIGljb24/OiBJY29uUmVmO1xufVxuXG4vL0BkeW5hbWljXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVJlZmVyZW50aWFsPFxuICBUIGV4dGVuZHMgQmFzZVJlZmVyZW50aWFsPFQsIElELCBBTz4sXG4gIElEID0gbnVtYmVyLFxuICBBTyBleHRlbmRzIFJlZmVyZW50aWFsQXNPYmplY3RPcHRpb25zID0gUmVmZXJlbnRpYWxBc09iamVjdE9wdGlvbnMsXG4gIEZPID0gYW55XG4gID5cbiAgZXh0ZW5kcyBFbnRpdHk8VCwgSUQsIEFPLCBGTz5cbiAgaW1wbGVtZW50cyBJUmVmZXJlbnRpYWxSZWY8VCwgSUQ+IHtcblxuICBsYWJlbDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGNvbW1lbnRzOiBzdHJpbmc7XG4gIGNyZWF0aW9uRGF0ZTogRGF0ZSB8IE1vbWVudDtcbiAgc3RhdHVzSWQ6IG51bWJlcjtcbiAgdmFsaWRpdHlTdGF0dXNJZDogbnVtYmVyO1xuICBsZXZlbElkOiBudW1iZXI7XG4gIHBhcmVudElkOiBudW1iZXI7XG4gIGVudGl0eU5hbWU6IHN0cmluZztcbiAgaWNvbj86IEljb25SZWY7XG5cbiAgY29uc3RydWN0b3IoX190eXBlbmFtZT86IHN0cmluZykge1xuICAgIHN1cGVyKF9fdHlwZW5hbWUpO1xuICB9XG5cbiAgYXNPYmplY3Qob3B0cz86IEFPKTogYW55IHtcbiAgICBpZiAob3B0cyAmJiBvcHRzLm1pbmlmeSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICAgIGVudGl0eU5hbWU6IG9wdHMua2VlcEVudGl0eU5hbWUgJiYgdGhpcy5lbnRpdHlOYW1lIHx8IHVuZGVmaW5lZCwgLy8gRG9uJ3Qga2VlcCBieSBkZWZhdWx0XG4gICAgICAgIF9fdHlwZW5hbWU6IG9wdHMua2VlcFR5cGVuYW1lICYmIHRoaXMuX190eXBlbmFtZSB8fCB1bmRlZmluZWRcbiAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHRhcmdldDogYW55ID0gc3VwZXIuYXNPYmplY3Qob3B0cyk7XG4gICAgdGFyZ2V0LmNyZWF0aW9uRGF0ZSA9IHRvRGF0ZUlTT1N0cmluZyh0aGlzLmNyZWF0aW9uRGF0ZSk7XG4gICAgaWYgKG9wdHMgJiYgb3B0cy5rZWVwVHlwZW5hbWUgPT09IGZhbHNlKSBkZWxldGUgdGFyZ2V0LmVudGl0eU5hbWU7XG4gICAgaWYgKG9wdHMgJiYgb3B0cy5rZWVwSWNvbiA9PT0gZmFsc2UpIGRlbGV0ZSB0YXJnZXQuaWNvbjtcbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgZnJvbU9iamVjdChzb3VyY2U6IGFueSwgb3B0cz86IEZPKSB7XG4gICAgc3VwZXIuZnJvbU9iamVjdChzb3VyY2UsIG9wdHMpO1xuICAgIHRoaXMubGFiZWwgPSBzb3VyY2UubGFiZWw7XG4gICAgdGhpcy5uYW1lID0gc291cmNlLm5hbWU7XG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IHNvdXJjZS5kZXNjcmlwdGlvbjtcbiAgICB0aGlzLmNvbW1lbnRzID0gc291cmNlLmNvbW1lbnRzO1xuICAgIHRoaXMuc3RhdHVzSWQgPSBzb3VyY2Uuc3RhdHVzSWQ7XG4gICAgdGhpcy52YWxpZGl0eVN0YXR1c0lkICA9IHNvdXJjZS52YWxpZGl0eVN0YXR1c0lkO1xuICAgIHRoaXMubGV2ZWxJZCA9IHNvdXJjZS5sZXZlbElkICYmIHNvdXJjZS5sZXZlbElkICE9PSAwID8gc291cmNlLmxldmVsSWQgOiB1bmRlZmluZWQ7IC8vIERvIG5vdCBzZXQgYXMgbnVsbCAobmVlZCBmb3IgYWNjb3VudC5kZXBhcnRtZW50LCB3aGVuIHJlZ2lzdGVyKVxuICAgIHRoaXMucGFyZW50SWQgPSBzb3VyY2UucGFyZW50SWQ7XG4gICAgdGhpcy5jcmVhdGlvbkRhdGUgPSBmcm9tRGF0ZUlTT1N0cmluZyhzb3VyY2UuY3JlYXRpb25EYXRlKTtcbiAgICB0aGlzLmVudGl0eU5hbWUgPSBzb3VyY2UuZW50aXR5TmFtZTtcbiAgICB0aGlzLmljb24gPSBzb3VyY2UuaWNvbjtcbiAgfVxuXG4gIGVxdWFscyhvdGhlcjogVCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdXBlci5lcXVhbHMob3RoZXIpICYmIHRoaXMuZW50aXR5TmFtZSA9PT0gb3RoZXIuZW50aXR5TmFtZTtcbiAgfVxufVxuXG4vLyBAZHluYW1pY1xuQEVudGl0eUNsYXNzKHt0eXBlbmFtZTogJ1JlZmVyZW50aWFsVk8nfSlcbmV4cG9ydCBjbGFzcyBSZWZlcmVudGlhbDxcbiAgVCBleHRlbmRzIFJlZmVyZW50aWFsPFQsIGFueT4gPSBSZWZlcmVudGlhbDxhbnk+LFxuICBJRCA9IG51bWJlcj5cbiAgZXh0ZW5kcyBCYXNlUmVmZXJlbnRpYWw8VCwgSUQ+IHtcblxuICBzdGF0aWMgZnJvbU9iamVjdDogKHNvdXJjZTogYW55LCBvcHRzPzogYW55KSA9PiBSZWZlcmVudGlhbDtcblxuICBwcm9wZXJ0aWVzPzoge1trZXk6IHN0cmluZ106IGFueX07XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBhbnkpIHtcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSwgb3B0cyk7XG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gc291cmNlLnByb3BlcnRpZXMgJiYgey4uLnNvdXJjZS5wcm9wZXJ0aWVzfSB8fCB1bmRlZmluZWQ7XG4gIH1cblxuICBhc09iamVjdChvcHRzPzogUmVmZXJlbnRpYWxBc09iamVjdE9wdGlvbnMpOiBhbnkge1xuICAgIGNvbnN0IHRhcmdldCA9IHN1cGVyLmFzT2JqZWN0KG9wdHMpO1xuICAgIGlmIChvcHRzPy5taW5pZnkpIHtcbiAgICAgIGRlbGV0ZSB0YXJnZXQucHJvcGVydGllcztcbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVmZXJlbnRpYWxVdGlscyB7XG4gIC8vIEZJWE1FOiByZW1vdmUgdGhpc1xuICBzdGF0aWMgZnJvbU9iamVjdChzb3VyY2U6IGFueSwgb3B0cz86IGFueSk6IFJlZmVyZW50aWFsIHtcbiAgICBpZiAoIXNvdXJjZSB8fCBzb3VyY2UgaW5zdGFuY2VvZiBSZWZlcmVudGlhbCkgcmV0dXJuIHNvdXJjZTtcbiAgICBjb25zdCByZXMgPSBuZXcgUmVmZXJlbnRpYWwoKTtcbiAgICByZXMuZnJvbU9iamVjdChzb3VyY2UsIG9wdHMpO1xuICAgIHJldHVybiByZXMgYXMgUmVmZXJlbnRpYWw7XG4gIH1cblxuICBzdGF0aWMgaXNOb3RFbXB0eTxUIGV4dGVuZHMgSVJlZmVyZW50aWFsUmVmPFQ+PihvYmo6IFR8YW55KTogYm9vbGVhbiB7XG4gICAgLy8gQSByZWZlcmVudGlhbCBlbnRpdHkgc2hvdWxkIGFsd2F5cyBoYXZlIGEgJ2lkJyBmaWxsZWQgKGNhbiBiZSBuZWdhdGl2ZSBpcyBsb2NhbCBhbmQgdGVtcG9yYXJ5KVxuICAgIHJldHVybiBFbnRpdHlVdGlscy5pc05vdEVtcHR5KG9iaiwgJ2lkJyk7XG4gIH1cblxuICBzdGF0aWMgaXNFbXB0eTxUIGV4dGVuZHMgSVJlZmVyZW50aWFsUmVmPFQ+PihvYmo6IFR8YW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEVudGl0eVV0aWxzLmlzRW1wdHkob2JqLCAnaWQnKTtcbiAgfVxuXG4gIHN0YXRpYyBlcXVhbHM8VCBleHRlbmRzIElSZWZlcmVudGlhbFJlZjxUPj4obzE6IFR8YW55LCBvMjogVHxhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRW50aXR5VXRpbHMuZXF1YWxzKG8xLCBvMiwgJ2lkJyk7XG4gIH1cbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZmVyZW50aWFsQXNPYmplY3RPcHRpb25zIGV4dGVuZHMgRW50aXR5QXNPYmplY3RPcHRpb25zIHtcbiAga2VlcEVudGl0eU5hbWU/OiBib29sZWFuO1xuICBrZWVwSWNvbj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVXNlZCB0byBzdG9yZSBhbiBlbnRpdHkgbG9jYWxseVxuICovXG5leHBvcnQgY29uc3QgTUlOSUZZX0VOVElUWV9GT1JfTE9DQUxfU1RPUkFHRTogUmVmZXJlbnRpYWxBc09iamVjdE9wdGlvbnMgPSBPYmplY3QuZnJlZXplKHtcbiAgbWluaWZ5OiB0cnVlLFxuICBrZWVwVHlwZW5hbWU6IHRydWUsXG4gIGtlZXBFbnRpdHlOYW1lOiB0cnVlLFxuICBrZWVwTG9jYWxJZDogdHJ1ZSxcbiAga2VlcEljb246IHRydWVcbn0pO1xuXG4vKipcbiAqIFVzZWQgdG8gc2VuZCBhbiBlbnRpdHkgdG8gYSBwb2RcbiAqL1xuZXhwb3J0IGNvbnN0IE1JTklGWV9FTlRJVFlfRk9SX1BPRDogUmVmZXJlbnRpYWxBc09iamVjdE9wdGlvbnMgPSBPYmplY3QuZnJlZXplKHtcbiAgbWluaWZ5OiB0cnVlLFxuICBrZWVwVHlwZW5hbWU6IGZhbHNlLFxuICBrZWVwRW50aXR5TmFtZTogZmFsc2UsXG4gIGtlZXBMb2NhbElkOiBmYWxzZSxcbiAga2VlcEljb246IGZhbHNlXG59KTtcblxuLy8gQGR5bmFtaWNcbkBFbnRpdHlDbGFzcyh7dHlwZW5hbWU6ICdSZWZlcmVudGlhbFZPJ30pXG5leHBvcnQgY2xhc3MgUmVmZXJlbnRpYWxSZWY8XG4gIFQgZXh0ZW5kcyBSZWZlcmVudGlhbFJlZjxhbnksIElEPiA9IFJlZmVyZW50aWFsUmVmPGFueSwgYW55PixcbiAgSUQgPSBudW1iZXIsXG4gIE8gZXh0ZW5kcyBSZWZlcmVudGlhbEFzT2JqZWN0T3B0aW9ucyA9IFJlZmVyZW50aWFsQXNPYmplY3RPcHRpb25zLFxuICBGTyA9IGFueVxuICA+XG4gIGV4dGVuZHMgRW50aXR5PFQsIElELCBPLCBGTz5cbiAgaW1wbGVtZW50cyBJUmVmZXJlbnRpYWxSZWY8VCwgSUQ+IHtcblxuICBzdGF0aWMgZnJvbU9iamVjdDogKHNvdXJjZTogYW55LCBvcHRzPzogYW55KSA9PiBSZWZlcmVudGlhbFJlZjtcblxuICBsYWJlbDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHN0YXR1c0lkOiBudW1iZXI7XG4gIGxldmVsSWQ6IG51bWJlcjtcbiAgZW50aXR5TmFtZTogc3RyaW5nO1xuICBpY29uPzogSWNvblJlZjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihSZWZlcmVudGlhbFJlZi5UWVBFTkFNRSk7XG4gIH1cblxuICBhc09iamVjdChvcHRzPzogTyk6IGFueSB7XG4gICAgaWYgKG9wdHMgJiYgb3B0cy5taW5pZnkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgICBlbnRpdHlOYW1lOiBvcHRzLmtlZXBFbnRpdHlOYW1lICYmIHRoaXMuZW50aXR5TmFtZSB8fCB1bmRlZmluZWQsIC8vIERvbid0IGtlZXAgYnkgZGVmYXVsdFxuICAgICAgICBfX3R5cGVuYW1lOiBvcHRzLmtlZXBUeXBlbmFtZSAmJiB0aGlzLl9fdHlwZW5hbWUgfHwgdW5kZWZpbmVkXG4gICAgICB9O1xuICAgIH1cbiAgICBjb25zdCB0YXJnZXQ6IGFueSA9IHN1cGVyLmFzT2JqZWN0KG9wdHMpO1xuICAgIGlmIChvcHRzICYmIG9wdHMua2VlcEVudGl0eU5hbWUgPT09IGZhbHNlKSBkZWxldGUgdGFyZ2V0LmVudGl0eU5hbWU7XG4gICAgaWYgKG9wdHMgJiYgb3B0cy5rZWVwSWNvbiA9PT0gZmFsc2UpIGRlbGV0ZSB0YXJnZXQuaWNvbjtcblxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxuICBmcm9tT2JqZWN0KHNvdXJjZTogYW55LCBvcHRzPzogRk8pIHtcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSk7XG4gICAgdGhpcy5lbnRpdHlOYW1lID0gc291cmNlLmVudGl0eU5hbWUgfHwgdGhpcy5lbnRpdHlOYW1lO1xuICAgIHRoaXMubGFiZWwgPSBzb3VyY2UubGFiZWw7XG4gICAgdGhpcy5uYW1lID0gc291cmNlLm5hbWU7XG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IHNvdXJjZS5kZXNjcmlwdGlvbjtcbiAgICB0aGlzLnN0YXR1c0lkID0gc291cmNlLnN0YXR1c0lkO1xuICAgIHRoaXMubGV2ZWxJZCA9IHNvdXJjZS5sZXZlbElkO1xuICAgIHRoaXMuaWNvbiA9IHNvdXJjZS5pY29uO1xuICB9XG59XG4iXX0=
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbnRpYWwubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvcmVmZXJlbnRpYWwubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxNQUFNLEVBQXlCLFdBQVcsRUFBVyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdsRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsR0FBc0IsRUFBRSxVQUFxQjtJQUMvRSxPQUFPLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksa0JBQWtCLENBQUMsR0FBRyxFQUFFLFVBQVUsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDO0FBQzVHLENBQUM7QUFDRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsTUFBcUIsRUFBRSxVQUFxQixFQUFFLFNBQWtCO0lBQ25HLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDO0FBQy9GLENBQUM7QUFRRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQXdCLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDM0Q7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QUM7UUFDdkQsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDMUIsQ0FBQztDQUNGLENBQUE7QUFoRFksY0FBYztJQUQxQixXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLENBQUM7R0FDOUIsY0FBYyxDQWdEMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgaXNOb3ROaWwsIGpvaW5Qcm9wZXJ0aWVzUGF0aCwgc3BsaXRCeUlkIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBFbnRpdHksIEVudGl0eUFzT2JqZWN0T3B0aW9ucywgRW50aXR5VXRpbHMsIElFbnRpdHkgfSBmcm9tICcuL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBTdGF0dXNJZHMgfSBmcm9tICcuL21vZGVsLmVudW0nO1xuaW1wb3J0IHsgZnJvbURhdGVJU09TdHJpbmcsIHRvRGF0ZUlTT1N0cmluZyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kYXRlcyc7XG5pbXBvcnQgeyBFbnRpdHlDbGFzcyB9IGZyb20gJy4vZW50aXR5LmRlY29yYXRvcnMnO1xuaW1wb3J0IHsgSWNvblJlZiB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWZlcmVudGlhbFRvU3RyaW5nKG9iajogUmVmZXJlbnRpYWwgfCBhbnksIHByb3BlcnRpZXM/OiBzdHJpbmdbXSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiAob2JqICYmIGlzTm90TmlsKG9iai5pZCkgJiYgam9pblByb3BlcnRpZXNQYXRoKG9iaiwgcHJvcGVydGllcyB8fCBbJ2xhYmVsJywgJ25hbWUnXSkpIHx8IHVuZGVmaW5lZDtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZWZlcmVudGlhbHNUb1N0cmluZyh2YWx1ZXM6IFJlZmVyZW50aWFsW10sIHByb3BlcnRpZXM/OiBzdHJpbmdbXSwgc2VwYXJhdG9yPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuICh2YWx1ZXMgfHwgW10pLm1hcCgodikgPT4gcmVmZXJlbnRpYWxUb1N0cmluZyh2LCBwcm9wZXJ0aWVzKSkuam9pbihzZXBhcmF0b3IgfHwgJywgJyk7XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJU3RhdHVzIHtcbiAgaWQ6IG51bWJlcjtcbiAgaWNvbj86IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IFN0YXR1c0xpc3Q6IFJlYWRvbmx5PElTdGF0dXNbXT4gPSBPYmplY3QuZnJlZXplKFtcbiAge1xuICAgIGlkOiBTdGF0dXNJZHMuRU5BQkxFLFxuICAgIGljb246ICdjaGVja21hcmsnLFxuICAgIGxhYmVsOiAnUkVGRVJFTlRJQUwuU1RBVFVTX0VOVU0uRU5BQkxFJyxcbiAgfSxcbiAge1xuICAgIGlkOiBTdGF0dXNJZHMuRElTQUJMRSxcbiAgICBpY29uOiAnY2xvc2UnLFxuICAgIGxhYmVsOiAnUkVGRVJFTlRJQUwuU1RBVFVTX0VOVU0uRElTQUJMRScsXG4gIH0sXG4gIHtcbiAgICBpZDogU3RhdHVzSWRzLlRFTVBPUkFSWSxcbiAgICBpY29uOiAnaGVscCcsXG4gICAgbGFiZWw6ICdSRUZFUkVOVElBTC5TVEFUVVNfRU5VTS5URU1QT1JBUlknLFxuICB9LFxuXSk7XG5cbmV4cG9ydCBjb25zdCBTdGF0dXNCeUlkID0gT2JqZWN0LmZyZWV6ZShzcGxpdEJ5SWQoU3RhdHVzTGlzdCkpO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSVJlZmVyZW50aWFsUmVmPFQgZXh0ZW5kcyBJRW50aXR5PFQsIElEPiA9IElFbnRpdHk8YW55LCBhbnk+LCBJRCA9IG51bWJlcj4gZXh0ZW5kcyBJRW50aXR5PFQsIElEPiB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGxldmVsSWQ/OiBudW1iZXI7XG4gIHN0YXR1c0lkOiBudW1iZXI7XG4gIGVudGl0eU5hbWU6IHN0cmluZztcbiAgaWNvbj86IEljb25SZWY7XG59XG5cbi8vQGR5bmFtaWNcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlUmVmZXJlbnRpYWw8XG4gICAgVCBleHRlbmRzIEJhc2VSZWZlcmVudGlhbDxULCBJRCwgQU8+LFxuICAgIElEID0gbnVtYmVyLFxuICAgIEFPIGV4dGVuZHMgUmVmZXJlbnRpYWxBc09iamVjdE9wdGlvbnMgPSBSZWZlcmVudGlhbEFzT2JqZWN0T3B0aW9ucyxcbiAgICBGTyA9IGFueSxcbiAgPlxuICBleHRlbmRzIEVudGl0eTxULCBJRCwgQU8sIEZPPlxuICBpbXBsZW1lbnRzIElSZWZlcmVudGlhbFJlZjxULCBJRD5cbntcbiAgbGFiZWw6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBjb21tZW50czogc3RyaW5nO1xuICBjcmVhdGlvbkRhdGU6IERhdGUgfCBNb21lbnQ7XG4gIHN0YXR1c0lkOiBudW1iZXI7XG4gIHZhbGlkaXR5U3RhdHVzSWQ6IG51bWJlcjtcbiAgbGV2ZWxJZDogbnVtYmVyO1xuICBwYXJlbnRJZDogbnVtYmVyO1xuICBlbnRpdHlOYW1lOiBzdHJpbmc7XG4gIGljb24/OiBJY29uUmVmO1xuXG4gIGNvbnN0cnVjdG9yKF9fdHlwZW5hbWU/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihfX3R5cGVuYW1lKTtcbiAgfVxuXG4gIGFzT2JqZWN0KG9wdHM/OiBBTyk6IGFueSB7XG4gICAgaWYgKG9wdHMgJiYgb3B0cy5taW5pZnkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgICBlbnRpdHlOYW1lOiAob3B0cy5rZWVwRW50aXR5TmFtZSAmJiB0aGlzLmVudGl0eU5hbWUpIHx8IHVuZGVmaW5lZCwgLy8gRG9uJ3Qga2VlcCBieSBkZWZhdWx0XG4gICAgICAgIF9fdHlwZW5hbWU6IChvcHRzLmtlZXBUeXBlbmFtZSAmJiB0aGlzLl9fdHlwZW5hbWUpIHx8IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHRhcmdldDogYW55ID0gc3VwZXIuYXNPYmplY3Qob3B0cyk7XG4gICAgdGFyZ2V0LmNyZWF0aW9uRGF0ZSA9IHRvRGF0ZUlTT1N0cmluZyh0aGlzLmNyZWF0aW9uRGF0ZSk7XG4gICAgaWYgKG9wdHMgJiYgb3B0cy5rZWVwVHlwZW5hbWUgPT09IGZhbHNlKSBkZWxldGUgdGFyZ2V0LmVudGl0eU5hbWU7XG4gICAgaWYgKG9wdHMgJiYgb3B0cy5rZWVwSWNvbiA9PT0gZmFsc2UpIGRlbGV0ZSB0YXJnZXQuaWNvbjtcbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgZnJvbU9iamVjdChzb3VyY2U6IGFueSwgb3B0cz86IEZPKSB7XG4gICAgc3VwZXIuZnJvbU9iamVjdChzb3VyY2UsIG9wdHMpO1xuICAgIHRoaXMubGFiZWwgPSBzb3VyY2UubGFiZWw7XG4gICAgdGhpcy5uYW1lID0gc291cmNlLm5hbWU7XG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IHNvdXJjZS5kZXNjcmlwdGlvbjtcbiAgICB0aGlzLmNvbW1lbnRzID0gc291cmNlLmNvbW1lbnRzO1xuICAgIHRoaXMuc3RhdHVzSWQgPSBzb3VyY2Uuc3RhdHVzSWQ7XG4gICAgdGhpcy52YWxpZGl0eVN0YXR1c0lkID0gc291cmNlLnZhbGlkaXR5U3RhdHVzSWQ7XG4gICAgdGhpcy5sZXZlbElkID0gc291cmNlLmxldmVsSWQgJiYgc291cmNlLmxldmVsSWQgIT09IDAgPyBzb3VyY2UubGV2ZWxJZCA6IHVuZGVmaW5lZDsgLy8gRG8gbm90IHNldCBhcyBudWxsIChuZWVkIGZvciBhY2NvdW50LmRlcGFydG1lbnQsIHdoZW4gcmVnaXN0ZXIpXG4gICAgdGhpcy5wYXJlbnRJZCA9IHNvdXJjZS5wYXJlbnRJZDtcbiAgICB0aGlzLmNyZWF0aW9uRGF0ZSA9IGZyb21EYXRlSVNPU3RyaW5nKHNvdXJjZS5jcmVhdGlvbkRhdGUpO1xuICAgIHRoaXMuZW50aXR5TmFtZSA9IHNvdXJjZS5lbnRpdHlOYW1lO1xuICAgIHRoaXMuaWNvbiA9IHNvdXJjZS5pY29uO1xuICB9XG5cbiAgZXF1YWxzKG90aGVyOiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN1cGVyLmVxdWFscyhvdGhlcikgJiYgdGhpcy5lbnRpdHlOYW1lID09PSBvdGhlci5lbnRpdHlOYW1lO1xuICB9XG59XG5cbi8vIEBkeW5hbWljXG5ARW50aXR5Q2xhc3MoeyB0eXBlbmFtZTogJ1JlZmVyZW50aWFsVk8nIH0pXG5leHBvcnQgY2xhc3MgUmVmZXJlbnRpYWw8VCBleHRlbmRzIFJlZmVyZW50aWFsPFQsIGFueT4gPSBSZWZlcmVudGlhbDxhbnk+LCBJRCA9IG51bWJlcj4gZXh0ZW5kcyBCYXNlUmVmZXJlbnRpYWw8VCwgSUQ+IHtcbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gUmVmZXJlbnRpYWw7XG5cbiAgcHJvcGVydGllcz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBhbnkpIHtcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSwgb3B0cyk7XG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gKHNvdXJjZS5wcm9wZXJ0aWVzICYmIHsgLi4uc291cmNlLnByb3BlcnRpZXMgfSkgfHwgdW5kZWZpbmVkO1xuICB9XG5cbiAgYXNPYmplY3Qob3B0cz86IFJlZmVyZW50aWFsQXNPYmplY3RPcHRpb25zKTogYW55IHtcbiAgICBjb25zdCB0YXJnZXQgPSBzdXBlci5hc09iamVjdChvcHRzKTtcbiAgICBpZiAob3B0cz8ubWluaWZ5KSB7XG4gICAgICBkZWxldGUgdGFyZ2V0LnByb3BlcnRpZXM7XG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlZmVyZW50aWFsVXRpbHMge1xuICAvLyBGSVhNRTogcmVtb3ZlIHRoaXNcbiAgc3RhdGljIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBhbnkpOiBSZWZlcmVudGlhbCB7XG4gICAgaWYgKCFzb3VyY2UgfHwgc291cmNlIGluc3RhbmNlb2YgUmVmZXJlbnRpYWwpIHJldHVybiBzb3VyY2U7XG4gICAgY29uc3QgcmVzID0gbmV3IFJlZmVyZW50aWFsKCk7XG4gICAgcmVzLmZyb21PYmplY3Qoc291cmNlLCBvcHRzKTtcbiAgICByZXR1cm4gcmVzIGFzIFJlZmVyZW50aWFsO1xuICB9XG5cbiAgc3RhdGljIGlzTm90RW1wdHk8VCBleHRlbmRzIElSZWZlcmVudGlhbFJlZjxUPj4ob2JqOiBUIHwgYW55KTogYm9vbGVhbiB7XG4gICAgLy8gQSByZWZlcmVudGlhbCBlbnRpdHkgc2hvdWxkIGFsd2F5cyBoYXZlIGEgJ2lkJyBmaWxsZWQgKGNhbiBiZSBuZWdhdGl2ZSBpcyBsb2NhbCBhbmQgdGVtcG9yYXJ5KVxuICAgIHJldHVybiBFbnRpdHlVdGlscy5pc05vdEVtcHR5KG9iaiwgJ2lkJyk7XG4gIH1cblxuICBzdGF0aWMgaXNFbXB0eTxUIGV4dGVuZHMgSVJlZmVyZW50aWFsUmVmPFQ+PihvYmo6IFQgfCBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRW50aXR5VXRpbHMuaXNFbXB0eShvYmosICdpZCcpO1xuICB9XG5cbiAgc3RhdGljIGVxdWFsczxUIGV4dGVuZHMgSVJlZmVyZW50aWFsUmVmPFQ+PihvMTogVCB8IGFueSwgbzI6IFQgfCBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRW50aXR5VXRpbHMuZXF1YWxzKG8xLCBvMiwgJ2lkJyk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWZlcmVudGlhbEFzT2JqZWN0T3B0aW9ucyBleHRlbmRzIEVudGl0eUFzT2JqZWN0T3B0aW9ucyB7XG4gIGtlZXBFbnRpdHlOYW1lPzogYm9vbGVhbjtcbiAga2VlcEljb24/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFVzZWQgdG8gc3RvcmUgYW4gZW50aXR5IGxvY2FsbHlcbiAqL1xuZXhwb3J0IGNvbnN0IE1JTklGWV9FTlRJVFlfRk9SX0xPQ0FMX1NUT1JBR0U6IFJlZmVyZW50aWFsQXNPYmplY3RPcHRpb25zID0gT2JqZWN0LmZyZWV6ZSh7XG4gIG1pbmlmeTogdHJ1ZSxcbiAga2VlcFR5cGVuYW1lOiB0cnVlLFxuICBrZWVwRW50aXR5TmFtZTogdHJ1ZSxcbiAga2VlcExvY2FsSWQ6IHRydWUsXG4gIGtlZXBJY29uOiB0cnVlLFxufSk7XG5cbi8qKlxuICogVXNlZCB0byBzZW5kIGFuIGVudGl0eSB0byBhIHBvZFxuICovXG5leHBvcnQgY29uc3QgTUlOSUZZX0VOVElUWV9GT1JfUE9EOiBSZWZlcmVudGlhbEFzT2JqZWN0T3B0aW9ucyA9IE9iamVjdC5mcmVlemUoe1xuICBtaW5pZnk6IHRydWUsXG4gIGtlZXBUeXBlbmFtZTogZmFsc2UsXG4gIGtlZXBFbnRpdHlOYW1lOiBmYWxzZSxcbiAga2VlcExvY2FsSWQ6IGZhbHNlLFxuICBrZWVwSWNvbjogZmFsc2UsXG59KTtcblxuLy8gQGR5bmFtaWNcbkBFbnRpdHlDbGFzcyh7IHR5cGVuYW1lOiAnUmVmZXJlbnRpYWxWTycgfSlcbmV4cG9ydCBjbGFzcyBSZWZlcmVudGlhbFJlZjxcbiAgICBUIGV4dGVuZHMgUmVmZXJlbnRpYWxSZWY8YW55LCBJRD4gPSBSZWZlcmVudGlhbFJlZjxhbnksIGFueT4sXG4gICAgSUQgPSBudW1iZXIsXG4gICAgTyBleHRlbmRzIFJlZmVyZW50aWFsQXNPYmplY3RPcHRpb25zID0gUmVmZXJlbnRpYWxBc09iamVjdE9wdGlvbnMsXG4gICAgRk8gPSBhbnksXG4gID5cbiAgZXh0ZW5kcyBFbnRpdHk8VCwgSUQsIE8sIEZPPlxuICBpbXBsZW1lbnRzIElSZWZlcmVudGlhbFJlZjxULCBJRD5cbntcbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gUmVmZXJlbnRpYWxSZWY7XG5cbiAgbGFiZWw6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzdGF0dXNJZDogbnVtYmVyO1xuICBsZXZlbElkOiBudW1iZXI7XG4gIGVudGl0eU5hbWU6IHN0cmluZztcbiAgaWNvbj86IEljb25SZWY7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoUmVmZXJlbnRpYWxSZWYuVFlQRU5BTUUpO1xuICB9XG5cbiAgYXNPYmplY3Qob3B0cz86IE8pOiBhbnkge1xuICAgIGlmIChvcHRzICYmIG9wdHMubWluaWZ5KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgICAgZW50aXR5TmFtZTogKG9wdHMua2VlcEVudGl0eU5hbWUgJiYgdGhpcy5lbnRpdHlOYW1lKSB8fCB1bmRlZmluZWQsIC8vIERvbid0IGtlZXAgYnkgZGVmYXVsdFxuICAgICAgICBfX3R5cGVuYW1lOiAob3B0cy5rZWVwVHlwZW5hbWUgJiYgdGhpcy5fX3R5cGVuYW1lKSB8fCB1bmRlZmluZWQsXG4gICAgICB9O1xuICAgIH1cbiAgICBjb25zdCB0YXJnZXQ6IGFueSA9IHN1cGVyLmFzT2JqZWN0KG9wdHMpO1xuICAgIGlmIChvcHRzICYmIG9wdHMua2VlcEVudGl0eU5hbWUgPT09IGZhbHNlKSBkZWxldGUgdGFyZ2V0LmVudGl0eU5hbWU7XG4gICAgaWYgKG9wdHMgJiYgb3B0cy5rZWVwSWNvbiA9PT0gZmFsc2UpIGRlbGV0ZSB0YXJnZXQuaWNvbjtcblxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxuICBmcm9tT2JqZWN0KHNvdXJjZTogYW55LCBvcHRzPzogRk8pIHtcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSk7XG4gICAgdGhpcy5lbnRpdHlOYW1lID0gc291cmNlLmVudGl0eU5hbWUgfHwgdGhpcy5lbnRpdHlOYW1lO1xuICAgIHRoaXMubGFiZWwgPSBzb3VyY2UubGFiZWw7XG4gICAgdGhpcy5uYW1lID0gc291cmNlLm5hbWU7XG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IHNvdXJjZS5kZXNjcmlwdGlvbjtcbiAgICB0aGlzLnN0YXR1c0lkID0gc291cmNlLnN0YXR1c0lkO1xuICAgIHRoaXMubGV2ZWxJZCA9IHNvdXJjZS5sZXZlbElkO1xuICAgIHRoaXMuaWNvbiA9IHNvdXJjZS5pY29uO1xuICB9XG59XG4iXX0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
2
|
export const APP_LOCALES = new InjectionToken('locales');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvc2V0dGluZ3MubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVMvQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQWlCLFNBQVMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvcGVydGllc01hcCwgUHJvcGVydHkgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdHlwZXMnO1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEhpc3RvcnlQYWdlUmVmZXJlbmNlIH0gZnJvbSAnLi9oaXN0b3J5Lm1vZGVsJztcblxuZXhwb3J0IHR5cGUgVXNhZ2VNb2RlID0gJ0RFU0snIHwgJ0ZJRUxEJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIExvY2FsZUNvbmZpZyBleHRlbmRzIFByb3BlcnR5IHtcbiAgY291bnRyeT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IEFQUF9MT0NBTEVTID0gbmV3IEluamVjdGlvblRva2VuPExvY2FsZUNvbmZpZ1tdPignbG9jYWxlcycpO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgT2ZmbGluZUZlYXR1cmU8RiA9IGFueT4ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGxhc3RTeW5jRGF0ZT86IHN0cmluZztcbiAgZmlsdGVyPzogRjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIExvY2FsU2V0dGluZ3Mge1xuICBwYWdlcz86IGFueTtcbiAgcGVlclVybD86IHN0cmluZztcbiAgbGF0TG9uZ0Zvcm1hdDogJ0RETU1TUycgfCAnRERNTScgfCAnREQnO1xuICBhY2NvdW50SW5oZXJpdGFuY2U/OiBib29sZWFuO1xuICBsb2NhbGU6IHN0cmluZztcbiAgdXNhZ2VNb2RlPzogVXNhZ2VNb2RlO1xuICBtb2JpbGU/OiBib29sZWFuO1xuICBwcm9wZXJ0aWVzPzogUHJvcGVydGllc01hcDtcbiAgcGFnZUhpc3Rvcnk/OiBIaXN0b3J5UGFnZVJlZmVyZW5jZVtdO1xuICBvZmZsaW5lRmVhdHVyZXM/OiAoc3RyaW5nIHwgT2ZmbGluZUZlYXR1cmUpW107XG4gIHBhZ2VIaXN0b3J5TWF4U2l6ZTogbnVtYmVyO1xufVxuIl19
|
|
@@ -14,8 +14,7 @@ let UserToken = class UserToken extends Entity {
|
|
|
14
14
|
static { UserToken_1 = this; }
|
|
15
15
|
static fromObject;
|
|
16
16
|
static equals(t1, t2) {
|
|
17
|
-
return (isNotNil(t1.id) && t1.id === t2?.id)
|
|
18
|
-
|| (t1 && (t1.pubkey && t1.pubkey === t2?.pubkey) && (t1.name === t2?.name));
|
|
17
|
+
return (isNotNil(t1.id) && t1.id === t2?.id) || (t1 && t1.pubkey && t1.pubkey === t2?.pubkey && t1.name === t2?.name);
|
|
19
18
|
}
|
|
20
19
|
pubkey = null;
|
|
21
20
|
token = null;
|
|
@@ -54,4 +53,4 @@ UserToken = UserToken_1 = __decorate([
|
|
|
54
53
|
EntityClass({ typename: 'UserTokenVO' })
|
|
55
54
|
], UserToken);
|
|
56
55
|
export { UserToken };
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvdG9rZW4ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBeUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUvRCxNQUFNLE9BQU8sVUFBVTtJQUNyQixFQUFFLENBQVM7SUFDWCxJQUFJLENBQVM7SUFDYixJQUFJLENBQVM7Q0FDZDtBQUVELFdBQVc7QUFFSixJQUFNLFNBQVMsR0FBZixNQUFNLFNBQVUsU0FBUSxNQUFpQjs7SUFDOUMsTUFBTSxDQUFDLFVBQVUsQ0FBeUM7SUFFMUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFhLEVBQUUsRUFBYTtRQUN4QyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4SCxDQUFDO0lBRUQsTUFBTSxHQUFXLElBQUksQ0FBQztJQUN0QixLQUFLLEdBQVcsSUFBSSxDQUFDO0lBQ3JCLElBQUksR0FBVyxJQUFJLENBQUM7SUFDcEIsS0FBSyxHQUFXLElBQUksQ0FBQztJQUNyQixNQUFNLEdBQWlCLElBQUksQ0FBQztJQUM1QixjQUFjLEdBQVcsSUFBSSxDQUFDO0lBQzlCLFlBQVksR0FBVyxJQUFJLENBQUM7SUFDNUIsWUFBWSxHQUFXLElBQUksQ0FBQztJQUU1QjtRQUNFLEtBQUssQ0FBQyxXQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUE0QjtRQUNuQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxjQUFjLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM3RCxNQUFNLENBQUMsWUFBWSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDekQsTUFBTSxDQUFDLFlBQVksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3pELElBQUksSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUN2QixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFXLEVBQUUsSUFBVTtRQUNoQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDNUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUNGLENBQUE7QUExQ1ksU0FBUztJQURyQixXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLENBQUM7R0FDNUIsU0FBUyxDQTBDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlDbGFzcyB9IGZyb20gJy4vZW50aXR5LmRlY29yYXRvcnMnO1xuaW1wb3J0IHsgRW50aXR5LCBFbnRpdHlBc09iamVjdE9wdGlvbnMgfSBmcm9tICcuL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBNb21lbnQgfSBmcm9tICdtb21lbnQvbW9tZW50JztcbmltcG9ydCB7IGZyb21EYXRlSVNPU3RyaW5nLCB0b0RhdGVJU09TdHJpbmcgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZGF0ZXMnO1xuaW1wb3J0IHsgaXNOb3ROaWwsIHRvTnVtYmVyIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5cbmV4cG9ydCBjbGFzcyBUb2tlblNjb3BlIHtcbiAgaWQ6IHN0cmluZztcbiAgZmxhZzogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbi8vIEBkeW5hbWljXG5ARW50aXR5Q2xhc3MoeyB0eXBlbmFtZTogJ1VzZXJUb2tlblZPJyB9KVxuZXhwb3J0IGNsYXNzIFVzZXJUb2tlbiBleHRlbmRzIEVudGl0eTxVc2VyVG9rZW4+IHtcbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gVXNlclRva2VuO1xuXG4gIHN0YXRpYyBlcXVhbHModDE6IFVzZXJUb2tlbiwgdDI6IFVzZXJUb2tlbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoaXNOb3ROaWwodDEuaWQpICYmIHQxLmlkID09PSB0Mj8uaWQpIHx8ICh0MSAmJiB0MS5wdWJrZXkgJiYgdDEucHVia2V5ID09PSB0Mj8ucHVia2V5ICYmIHQxLm5hbWUgPT09IHQyPy5uYW1lKTtcbiAgfVxuXG4gIHB1YmtleTogc3RyaW5nID0gbnVsbDtcbiAgdG9rZW46IHN0cmluZyA9IG51bGw7XG4gIG5hbWU6IHN0cmluZyA9IG51bGw7XG4gIGZsYWdzOiBudW1iZXIgPSBudWxsO1xuICBzY29wZXM6IFRva2VuU2NvcGVbXSA9IG51bGw7XG4gIGV4cGlyYXRpb25EYXRlOiBNb21lbnQgPSBudWxsO1xuICBsYXN0VXNlZERhdGU6IE1vbWVudCA9IG51bGw7XG4gIGNyZWF0aW9uRGF0ZTogTW9tZW50ID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihVc2VyVG9rZW4uVFlQRU5BTUUpO1xuICB9XG5cbiAgYXNPYmplY3Qob3B0cz86IEVudGl0eUFzT2JqZWN0T3B0aW9ucyk6IGFueSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gc3VwZXIuYXNPYmplY3Qob3B0cyk7XG4gICAgdGFyZ2V0LmV4cGlyYXRpb25EYXRlID0gdG9EYXRlSVNPU3RyaW5nKHRoaXMuZXhwaXJhdGlvbkRhdGUpO1xuICAgIHRhcmdldC5sYXN0VXNlZERhdGUgPSB0b0RhdGVJU09TdHJpbmcodGhpcy5sYXN0VXNlZERhdGUpO1xuICAgIHRhcmdldC5jcmVhdGlvbkRhdGUgPSB0b0RhdGVJU09TdHJpbmcodGhpcy5jcmVhdGlvbkRhdGUpO1xuICAgIGlmIChvcHRzPy5taW5pZnkpIHtcbiAgICAgIGRlbGV0ZSB0YXJnZXQuc2NvcGVzO1xuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgZnJvbU9iamVjdChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkge1xuICAgIHN1cGVyLmZyb21PYmplY3Qoc291cmNlKTtcbiAgICB0aGlzLnB1YmtleSA9IHNvdXJjZS5wdWJrZXk7XG4gICAgdGhpcy50b2tlbiA9IHNvdXJjZS50b2tlbjtcbiAgICB0aGlzLm5hbWUgPSBzb3VyY2UubmFtZTtcbiAgICB0aGlzLmZsYWdzID0gdG9OdW1iZXIoc291cmNlLmZsYWdzKTtcbiAgICB0aGlzLnNjb3BlcyA9IHNvdXJjZS5zY29wZXM7XG4gICAgdGhpcy5leHBpcmF0aW9uRGF0ZSA9IGZyb21EYXRlSVNPU3RyaW5nKHNvdXJjZS5leHBpcmF0aW9uRGF0ZSk7XG4gICAgdGhpcy5sYXN0VXNlZERhdGUgPSBmcm9tRGF0ZUlTT1N0cmluZyhzb3VyY2UubGFzdFVzZWREYXRlKTtcbiAgICB0aGlzLmNyZWF0aW9uRGF0ZSA9IGZyb21EYXRlSVNPU3RyaW5nKHNvdXJjZS5jcmVhdGlvbkRhdGUpO1xuICB9XG59XG4iXX0=
|
|
@@ -71,13 +71,9 @@ export class TreeItemEntityUtils {
|
|
|
71
71
|
}
|
|
72
72
|
static first(node, filterFn) {
|
|
73
73
|
// Node has children: dive into children
|
|
74
|
-
const child = (node.children || []).find((c) =>
|
|
74
|
+
const child = (node.children || []).find((c) => this.first(c, filterFn));
|
|
75
75
|
if (child)
|
|
76
76
|
return child;
|
|
77
|
-
// Lookup in descendants
|
|
78
|
-
const descendant = (node.children || []).map((c) => this.first(c, filterFn)).find(isNotNil);
|
|
79
|
-
if (descendant)
|
|
80
|
-
return descendant;
|
|
81
77
|
// Node match: use it
|
|
82
78
|
return !filterFn || filterFn(node) ? node : undefined;
|
|
83
79
|
}
|
|
@@ -196,4 +192,4 @@ export class TreeItemEntityUtils {
|
|
|
196
192
|
});
|
|
197
193
|
}
|
|
198
194
|
}
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1pdGVtLWVudGl0eS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9tb2RlbC90cmVlLWl0ZW0tZW50aXR5Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFTbkUsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixNQUFNLENBQUMsT0FBTyxDQUE4QyxJQUFPLEVBQUUsUUFBc0IsRUFBRSxTQUFrQjtRQUM3RyxxQkFBcUI7UUFDckIsSUFBSSxTQUFTLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDdEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDO1lBQ3JGLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEYsWUFBWTtRQUNaLElBQUksYUFBYSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBRUQscUJBQXFCO1FBQ3JCLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVGLElBQUksVUFBVTtZQUFF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QUMsQ0FBQyxpQkFBaUI7UUFDL0QsQ0FBQyxFQUNELENBQUMsTUFBTSxDQUFDLENBQ1QsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQWlDLE9BQVk7UUFDbkUsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDN0MsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFJLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFpQyxNQUFTO1FBQzdELElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDekIsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3hDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gJy4vZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IEZpbHRlckZuIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2VudGl0eS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7IGlzRW1wdHlBcnJheSwgaXNOb3ROaWwgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IEVudGl0eUZpbHRlciB9IGZyb20gJy4vZmlsdGVyLm1vZGVsJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElUcmVlSXRlbUVudGl0eTxUIGV4dGVuZHMgSUVudGl0eTxULCBJRD4sIElEID0gbnVtYmVyPiB7XG4gIHBhcmVudElkOiBJRDtcbiAgcGFyZW50OiBUO1xuICBjaGlsZHJlbjogVFtdO1xufVxuXG5leHBvcnQgY2xhc3MgVHJlZUl0ZW1FbnRpdHlVdGlscyB7XG4gIHN0YXRpYyBmb3J3YXJkPFQgZXh0ZW5kcyBJVHJlZUl0ZW1FbnRpdHk8YW55PiwgSUQgPSBudW1iZXI+KG5vZGU6IFQsIGZpbHRlckZuPzogRmlsdGVyRm48VD4sIGxvb3BDb3VudD86IG51bWJlcik6IFQge1xuICAgIC8vIFN0b3AgaW5maW5pdGUgbG9vcFxuICAgIGlmIChsb29wQ291bnQgPT09IDEwMCkge1xuICAgICAgY29uc29sZS5lcnJvcignSW5maW5pdGUgbG9vcCBkZXRlY3RlZCEgTWFrZSBzdXJlIHRoZXJlIGlzIHZhbGlkIG5vZGUgaW4gdGhpcyB0cmVlIScpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBsZXQgaW5kZXhJblBhcmVudCA9IG5vZGUucGFyZW50ID8gKG5vZGUucGFyZW50LmNoaWxkcmVuIHx8IFtdKS5pbmRleE9mKG5vZGUpIDogLTE7XG4gICAgLy8gUm9vdCBub2RlXG4gICAgaWYgKGluZGV4SW5QYXJlbnQgPT09IC0xKSB7XG4gICAgICByZXR1cm4gdGhpcy5maXJzdChub2RlLCBmaWx0ZXJGbik7XG4gICAgfVxuXG4gICAgLy8gRGl2ZSBpbnRvIGNoaWxkcmVuXG4gICAgY29uc3QgZmlyc3RDaGlsZCA9IChub2RlLmNoaWxkcmVuIHx8IFtdKS5tYXAoKGMpID0+IHRoaXMuZmlyc3QoYywgZmlsdGVyRm4pKS5maW5kKGlzTm90TmlsKTtcbiAgICBpZiAoZmlyc3RDaGlsZCkgcmV0dXJuIGZpcnN0Q2hpbGQ7XG5cbiAgICAvLyBMb29rdXAgaW4gYnJvdGhlcnNcbiAgICBsZXQgY3VycmVudCA9IG5vZGU7XG4gICAgd2hpbGUgKGN1cnJlbnQucGFyZW50ICYmIGluZGV4SW5QYXJlbnQgIT09IC0xKSB7XG4gICAgICAvLyBIYXMgYnJvdGhlciA/XG4gICAgICBpZiAoaW5kZXhJblBhcmVudCArIDEgPCBjdXJyZW50LnBhcmVudC5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgYnJvdGhlciA9IChjdXJyZW50LnBhcmVudC5jaGlsZHJlbiB8fCBbXSlcbiAgICAgICAgICAuc2xpY2UoaW5kZXhJblBhcmVudCArIDEpXG4gICAgICAgICAgLm1hcCgoYykgPT4gKCFmaWx0ZXJGbiB8fCBmaWx0ZXJGbihjKSA/IGMgOiB0aGlzLmZpcnN0KGMsIGZpbHRlckZuKSkpXG4gICAgICAgICAgLmZpbmQoaXNOb3ROaWwpO1xuICAgICAgICAvLyBPSywgZm91bmQgYSBicm90aGVyXG4gICAgICAgIGlmIChicm90aGVyKSByZXR1cm4gYnJvdGhlcjtcbiAgICAgIH1cbiAgICAgIC8vIFJldHJ5LCB3aXRoIHBhcmVudCdzIGJyb3RoZXJcbiAgICAgIGN1cnJlbnQgPSBjdXJyZW50LnBhcmVudDtcbiAgICAgIGluZGV4SW5QYXJlbnQgPSBjdXJyZW50LnBhcmVudCA/IChjdXJyZW50LnBhcmVudC5jaGlsZHJlbiB8fCBbXSkuaW5kZXhPZihjdXJyZW50KSA6IC0xO1xuICAgIH1cblxuICAgIC8vIFJldHVybiBwYXJlbnRcbiAgICBpZiAoY3VycmVudCAhPT0gbm9kZSAmJiAoIWZpbHRlckZuIHx8IGZpbHRlckZuKGN1cnJlbnQpKSkgcmV0dXJuIGN1cnJlbnQ7XG5cbiAgICByZXR1cm4gdGhpcy5maXJzdChjdXJyZW50LCBmaWx0ZXJGbik7XG4gIH1cblxuICBzdGF0aWMgYmFja3dhcmQ8VCBleHRlbmRzIElUcmVlSXRlbUVudGl0eTxhbnk+LCBJRCA9IG51bWJlcj4obm9kZTogVCwgZmlsdGVyRm4/OiBGaWx0ZXJGbjxUPiwgbG9vcENvdW50PzogbnVtYmVyKTogVCB7XG4gICAgLy8gU3RvcCBpbmZpbml0ZSBsb29wXG4gICAgaWYgKGxvb3BDb3VudCA9PT0gMTAwKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdJbmZpbml0ZSBsb29wIGRldGVjdGVkISBNYWtlIHN1cmUgdGhlcmUgaXMgdmFsaWQgbm9kZSBpbiB0aGlzIHRyZWUhJyk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IGluZGV4SW5QYXJlbnQgPSBub2RlLnBhcmVudCA/IChub2RlLnBhcmVudC5jaGlsZHJlbiB8fCBbXSkuaW5kZXhPZihub2RlKSA6IC0xO1xuICAgIC8vIFJvb3Qgbm9kZVxuICAgIGlmIChpbmRleEluUGFyZW50ID09PSAtMSkge1xuICAgICAgcmV0dXJuIHRoaXMubGFzdExlYWYobm9kZSwgZmlsdGVyRm4pO1xuICAgIH1cblxuICAgIC8vIE5vIHByZXZpb3VzIGJyb3RoZXIgKGZpcnN0IGluIHBhcmVudCdzIGxpc3QpXG4gICAgZWxzZSBpZiAoaW5kZXhJblBhcmVudCA9PT0gMCkge1xuICAgICAgLy8gUmV0dXJuIHRoZSBwYXJlbnQsIGlmIG1hdGNoXG4gICAgICByZXR1cm4gIWZpbHRlckZuIHx8IGZpbHRlckZuKG5vZGUucGFyZW50KVxuICAgICAgICA/IG5vZGUucGFyZW50XG4gICAgICAgIDogLy8gT3IgcmVjdXJzaXZlbHkgY2FsbCBiYWNrd2FyZCgpIG9uIHRoZSBwYXJlbnRcbiAgICAgICAgICB0aGlzLmJhY2t3YXJkKG5vZGUucGFyZW50LCBmaWx0ZXJGbiwgKGxvb3BDb3VudCB8fCAwKSArIDEpO1xuICAgIH1cblxuICAgIC8vIExvb2t1cCBpbiBicm90aGVyXG4gICAgZWxzZSB7XG4gICAgICBjb25zdCBwcmV2aW91c0Jyb3RoZXIgPSAobm9kZS5wYXJlbnQuY2hpbGRyZW4gfHwgW10pXG4gICAgICAgIC5zbGljZSgwLCBpbmRleEluUGFyZW50KVxuICAgICAgICAucmV2ZXJzZSgpXG4gICAgICAgIC5maW5kKChjKSA9PiAhZmlsdGVyRm4gfHwgZmlsdGVyRm4oYykpO1xuXG4gICAgICAvLyBPSywgdGhlcmUgaXMgYSBicm90aGVyIGJlZm9yZSB0aGUgY3VycmVudCBpbmRleFxuICAgICAgaWYgKHByZXZpb3VzQnJvdGhlcikgcmV0dXJuIHRoaXMubGFzdExlYWYocHJldmlvdXNCcm90aGVyLCBmaWx0ZXJGbik7XG4gICAgfVxuXG4gICAgLy8gTm90IGZvdW5kIGluIGJyb3RoZXI6IHJlY3Vyc2l2ZWx5IGNhbGwgYmFja3dhcmQoKSBvbiB0aGUgcGFyZW50XG4gICAgcmV0dXJuIHRoaXMuYmFja3dhcmQobm9kZS5wYXJlbnQsIGZpbHRlckZuLCAobG9vcENvdW50IHx8IDApICsgMSk7XG4gIH1cblxuICBzdGF0aWMgZmlyc3Q8VCBleHRlbmRzIElUcmVlSXRlbUVudGl0eTxhbnk+Pihub2RlOiBULCBmaWx0ZXJGbj86IEZpbHRlckZuPFQ+KTogVCB7XG4gICAgLy8gTm9kZSBoYXMgY2hpbGRyZW46IGRpdmUgaW50byBjaGlsZHJlblxuICAgIGNvbnN0IGNoaWxkID0gKG5vZGUuY2hpbGRyZW4gfHwgW10pLmZpbmQoKGMpID0+ICFmaWx0ZXJGbiB8fCBmaWx0ZXJGbihjKSk7XG4gICAgaWYgKGNoaWxkKSByZXR1cm4gY2hpbGQ7XG5cbiAgICAvLyBMb29rdXAgaW4gZGVzY2VuZGFudHNcbiAgICBjb25zdCBkZXNjZW5kYW50ID0gKG5vZGUuY2hpbGRyZW4gfHwgW10pLm1hcCgoYykgPT4gdGhpcy5maXJzdChjLCBmaWx0ZXJGbikpLmZpbmQoaXNOb3ROaWwpO1xuICAgIGlmIChkZXNjZW5kYW50KSByZXR1cm4gZGVzY2VuZGFudDtcblxuICAgIC8vIE5vZGUgbWF0Y2g6IHVzZSBpdFxuICAgIHJldHVybiAhZmlsdGVyRm4gfHwgZmlsdGVyRm4obm9kZSkgPyBub2RlIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgc3RhdGljIGxhc3RMZWFmPFQgZXh0ZW5kcyBJVHJlZUl0ZW1FbnRpdHk8YW55Pj4obm9kZTogVCwgZmlsdGVyRm4/OiBGaWx0ZXJGbjxUPik6IFQge1xuICAgIC8vIE5vZGUgaGFzIGNoaWxkcmVuOiBkaXZlIGludG8gY2hpbGRyZW5cbiAgICBjb25zdCBjaGlsZExlYWYgPSAobm9kZS5jaGlsZHJlbiB8fCBbXSlcbiAgICAgIC8vIFJldmVyc2Ugb3JkZXIgKGFmdGVyIGNsb25lKVxuICAgICAgLnNsaWNlKClcbiAgICAgIC5yZXZlcnNlKClcbiAgICAgIC5tYXAoKGMpID0+IHRoaXMubGFzdExlYWYoYywgZmlsdGVyRm4pKVxuICAgICAgLmZpbmQoaXNOb3ROaWwpO1xuICAgIGlmIChjaGlsZExlYWYpIHJldHVybiBjaGlsZExlYWY7IC8vIE9LLCBmb3VuZCBpbiBjaGlsZHJlblxuXG4gICAgLy8gTm9kZSBpcyBhIGxlYWYsIG9yIG5vdCBtYXRjaCBmb3VuZCBpbiBjaGlsZHJlbjogY2hlY2sgY3VycmVudFxuICAgIHJldHVybiAhZmlsdGVyRm4gfHwgZmlsdGVyRm4obm9kZSkgPyBub2RlIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgc3RhdGljIGZpbmRCeUZpbHRlcjxUIGV4dGVuZHMgSVRyZWVJdGVtRW50aXR5PFQ+ICYgSUVudGl0eTxUPj4obm9kZTogVCwgZmlsdGVyOiBFbnRpdHlGaWx0ZXI8YW55LCBUPik6IFRbXSB7XG4gICAgY29uc3QgZmlsdGVyRm4gPSBmaWx0ZXI/LmFzRmlsdGVyRm4oKTtcbiAgICBpZiAoIWZpbHRlckZuKSB0aHJvdyBuZXcgRXJyb3IoJ01pc3Npbmcgb3IgZW1wdHkgZmlsdGVyIGFyZ3VtZW50Jyk7XG5cbiAgICByZXR1cm4gdGhpcy5maWx0ZXJSZWN1cnNpdmVseShub2RlLCBmaWx0ZXJGbik7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIG1hdGNoZXMgYmF0Y2hlc1xuICAgKlxuICAgKiBAcGFyYW0gbm9kZVxuICAgKiBAcGFyYW0gZmlsdGVyXG4gICAqL1xuICBzdGF0aWMgZGVsZXRlQnlGaWx0ZXI8VCBleHRlbmRzIElUcmVlSXRlbUVudGl0eTxUPiAmIElFbnRpdHk8VD4+KG5vZGU6IFQsIGZpbHRlcjogRW50aXR5RmlsdGVyPGFueSwgVD4pOiBUW10ge1xuICAgIGNvbnN0IGZpbHRlckZuID0gZmlsdGVyPy5hc0ZpbHRlckZuKCk7XG4gICAgaWYgKCFmaWx0ZXJGbikgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIG9yIGVtcHR5IGZpbHRlciBhcmd1bWVudCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlUmVjdXJzaXZlbHkobm9kZSwgZmlsdGVyRm4pO1xuICB9XG5cbiAgc3RhdGljIGZpbHRlclJlY3Vyc2l2ZWx5PFQgZXh0ZW5kcyBJVHJlZUl0ZW1FbnRpdHk8YW55Pj4obm9kZTogVCwgZmlsdGVyRm46IChuOiBUKSA9PiBib29sZWFuKTogVFtdIHtcbiAgICByZXR1cm4gKG5vZGUuY2hpbGRyZW4gfHwgW10pLnJlZHVjZShcbiAgICAgIChyZXMsIGNoaWxkKSA9PiByZXMuY29uY2F0KHRoaXMuZmlsdGVyUmVjdXJzaXZlbHkoY2hpbGQsIGZpbHRlckZuKSksXG4gICAgICAvLyBJbml0IHJlc3VsdFxuICAgICAgZmlsdGVyRm4obm9kZSkgPyBbbm9kZV0gOiBbXVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgZGVsZXRlUmVjdXJzaXZlbHk8VCBleHRlbmRzIElUcmVlSXRlbUVudGl0eTxhbnk+Pihub2RlOiBULCBmaWx0ZXJGbjogKG46IFQpID0+IGJvb2xlYW4pOiBUW10ge1xuICAgIGlmIChpc0VtcHR5QXJyYXkobm9kZS5jaGlsZHJlbikpIHJldHVybiBbXTsgLy8gU2tpcFxuXG4gICAgLy8gRGVsZXRlIGNoaWxkcmVuXG4gICAgY29uc3QgZGVsZXRlZENoaWxkcmVuID0gbm9kZS5jaGlsZHJlbi5maWx0ZXIoZmlsdGVyRm4pO1xuICAgIG5vZGUuY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuLmZpbHRlcigoYykgPT4gIWRlbGV0ZWRDaGlsZHJlbi5pbmNsdWRlcyhjKSk7XG5cbiAgICAvLyBUT0RPOiBhZGQgYW4gb3B0aW9ucyB0byBjbGVhbiB0aGUgcGFyZW50XG4gICAgLy9kZWxldGVkQ2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiBjaGlsZC5wYXJlbnQgPSBudWxsKTtcblxuICAgIC8vIFJlY3Vyc2l2ZSBjYWxsLCBpbiBzdGlsbCBleGlzdGluZyBjaGlsZHJlblxuICAgIHJldHVybiBub2RlLmNoaWxkcmVuLnJlZHVjZSgocmVzLCBjKSA9PiByZXMuY29uY2F0KC4uLnRoaXMuZGVsZXRlUmVjdXJzaXZlbHkoYywgZmlsdGVyRm4pKSwgZGVsZXRlZENoaWxkcmVuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWaXNpdCBlYWNoIG5vZGUsIGZyb20gcm9vdCB0byBsZWFmXG4gICAqXG4gICAqIEBwYXJhbSBub2RlXG4gICAqIEBwYXJhbSBhY3Rpb25cbiAgICovXG4gIHN0YXRpYyB2aXNpdDxUIGV4dGVuZHMgSVRyZWVJdGVtRW50aXR5PGFueT4+KG5vZGU6IFQsIGFjdGlvbjogKGl0ZW06IFQpID0+IHZvaWQpIHtcbiAgICBpZiAobm9kZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQXBwbGlxdWVyIGwnYWN0aW9uIHN1ciBsZSBuxZN1ZCBhY3R1ZWxcbiAgICBhY3Rpb24obm9kZSk7XG5cbiAgICAvLyBQYXJjb3VyaXIgbGVzIGVuZmFudHNcbiAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgbm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4gdGhpcy52aXNpdChjaGlsZCwgYWN0aW9uKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZpc2l0IGVhY2ggbm9kZSwgZnJvbSBsZWFmIHRvIHJvb3RcbiAgICpcbiAgICogQHBhcmFtIG5vZGVcbiAgICogQHBhcmFtIGFjdGlvblxuICAgKi9cbiAgc3RhdGljIHZpc2l0SW52ZXJzZTxUIGV4dGVuZHMgSVRyZWVJdGVtRW50aXR5PGFueT4+KG5vZGU6IFQsIGFjdGlvbjogKFQpID0+IHZvaWQpIHtcbiAgICBpZiAobm9kZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUGFyY291cmlyIGxlcyBlbmZhbnRzXG4gICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIG5vZGUuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IHRoaXMudmlzaXRJbnZlcnNlKGNoaWxkLCBhY3Rpb24pKTtcbiAgICB9XG5cbiAgICAvLyBBcHBsaXF1ZXIgbCdhY3Rpb24gc3VyIGxlIG7Fk3VkIGFjdHVlbFxuICAgIGFjdGlvbihub2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gYSBiYXRjaCBlbnRpdHkgdHJlZSBpbnRvIGEgYXJyYXkgbGlzdC4gVGhpcyBtZXRob2Qga2VlcCBsaW5rcyBwYXJlbnQvY2hpbGRyZW4uXG4gICAqXG4gICAqIE1ldGhvZCB1c2VkIHRvIGZpbmQgYmF0Y2ggd2l0aG91dCBpZCAoZS5nLiBiZWZvcmUgbG9jYWwgc3RvcmFnZSlcbiAgICpcbiAgICogQHBhcmFtIHNvdXJjZVxuICAgKi9cbiAgc3RhdGljIHRyZWVUb0FycmF5PFQgZXh0ZW5kcyBJVHJlZUl0ZW1FbnRpdHk8YW55Pj4oc291cmNlOiBUKTogVFtdIHtcbiAgICBpZiAoIXNvdXJjZSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIChzb3VyY2UuY2hpbGRyZW4gfHwgW10pLnJlZHVjZShcbiAgICAgIChyZXMsIGJhdGNoKSA9PiB7XG4gICAgICAgIGJhdGNoLnBhcmVudCA9IHNvdXJjZTtcbiAgICAgICAgcmV0dXJuIHJlcy5jb25jYXQodGhpcy50cmVlVG9BcnJheShiYXRjaCkpOyAvLyByZWN1cnNpdmUgY2FsbFxuICAgICAgfSxcbiAgICAgIFtzb3VyY2VdXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBsaXN0T2ZUcmVlVG9BcnJheTxUIGV4dGVuZHMgSVRyZWVJdGVtRW50aXR5PGFueT4+KHNvdXJjZXM6IFRbXSk6IFRbXSB7XG4gICAgaWYgKCFzb3VyY2VzIHx8ICFzb3VyY2VzLmxlbmd0aCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHNvdXJjZXMucmVkdWNlKChyZXMsIHNvdXJjZSkgPT4gcmVzLmNvbmNhdCh0aGlzLnRyZWVUb0FycmF5PFQ+KHNvdXJjZSkpLCBbXSk7XG4gIH1cblxuICAvKipcbiAgICogRmlsbCBwYXJlbnQgYXR0cmlidXRlLCBvZiBhbGwgY2hpbGRyZW4gZm91bmQgaW4gdGhlIHRyZWVcbiAgICpcbiAgICogQHBhcmFtIHNvdXJjZVxuICAgKi9cbiAgc3RhdGljIHRyZWVGaWxsUGFyZW50PFQgZXh0ZW5kcyBJVHJlZUl0ZW1FbnRpdHk8YW55Pj4oc291cmNlOiBUKSB7XG4gICAgaWYgKCFzb3VyY2UpIHJldHVybiBudWxsO1xuICAgIChzb3VyY2UuY2hpbGRyZW4gfHwgW10pLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICBjaGlsZC5wYXJlbnQgPSBzb3VyY2U7XG4gICAgICB0aGlzLnRyZWVGaWxsUGFyZW50KGNoaWxkKTsgLy8gTG9vcFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1pdGVtLWVudGl0eS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9tb2RlbC90cmVlLWl0ZW0tZW50aXR5Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFTbkUsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixNQUFNLENBQUMsT0FBTyxDQUE4QyxJQUFPLEVBQUUsUUFBc0IsRUFBRSxTQUFrQjtRQUM3RyxxQkFBcUI7UUFDckIsSUFBSSxTQUFTLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDdEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDO1lBQ3JGLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEYsWUFBWTtRQUNaLElBQUksYUFBYSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBRUQscUJBQXFCO1FBQ3JCLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVGLElBQUksVUFBVTtZQUFF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LEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBSSxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLGNBQWMsQ0FBaUMsTUFBUztRQUM3RCxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3pCLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN4QyxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElFbnRpdHkgfSBmcm9tICcuL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBGaWx0ZXJGbiB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBpc0VtcHR5QXJyYXksIGlzTm90TmlsIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBFbnRpdHlGaWx0ZXIgfSBmcm9tICcuL2ZpbHRlci5tb2RlbCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJVHJlZUl0ZW1FbnRpdHk8VCBleHRlbmRzIElFbnRpdHk8VCwgSUQ+LCBJRCA9IG51bWJlcj4ge1xuICBwYXJlbnRJZDogSUQ7XG4gIHBhcmVudDogVDtcbiAgY2hpbGRyZW46IFRbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFRyZWVJdGVtRW50aXR5VXRpbHMge1xuICBzdGF0aWMgZm9yd2FyZDxUIGV4dGVuZHMgSVRyZWVJdGVtRW50aXR5PGFueT4sIElEID0gbnVtYmVyPihub2RlOiBULCBmaWx0ZXJGbj86IEZpbHRlckZuPFQ+LCBsb29wQ291bnQ/OiBudW1iZXIpOiBUIHtcbiAgICAvLyBTdG9wIGluZmluaXRlIGxvb3BcbiAgICBpZiAobG9vcENvdW50ID09PSAxMDApIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0luZmluaXRlIGxvb3AgZGV0ZWN0ZWQhIE1ha2Ugc3VyZSB0aGVyZSBpcyB2YWxpZCBub2RlIGluIHRoaXMgdHJlZSEnKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgbGV0IGluZGV4SW5QYXJlbnQgPSBub2RlLnBhcmVudCA/IChub2RlLnBhcmVudC5jaGlsZHJlbiB8fCBbXSkuaW5kZXhPZihub2RlKSA6IC0xO1xuICAgIC8vIFJvb3Qgbm9kZVxuICAgIGlmIChpbmRleEluUGFyZW50ID09PSAtMSkge1xuICAgICAgcmV0dXJuIHRoaXMuZmlyc3Qobm9kZSwgZmlsdGVyRm4pO1xuICAgIH1cblxuICAgIC8vIERpdmUgaW50byBjaGlsZHJlblxuICAgIGNvbnN0IGZpcnN0Q2hpbGQgPSAobm9kZS5jaGlsZHJlbiB8fCBbXSkubWFwKChjKSA9PiB0aGlzLmZpcnN0KGMsIGZpbHRlckZuKSkuZmluZChpc05vdE5pbCk7XG4gICAgaWYgKGZpcnN0Q2hpbGQpIHJldHVybiBmaXJzdENoaWxkO1xuXG4gICAgLy8gTG9va3VwIGluIGJyb3RoZXJzXG4gICAgbGV0IGN1cnJlbnQgPSBub2RlO1xuICAgIHdoaWxlIChjdXJyZW50LnBhcmVudCAmJiBpbmRleEluUGFyZW50ICE9PSAtMSkge1xuICAgICAgLy8gSGFzIGJyb3RoZXIgP1xuICAgICAgaWYgKGluZGV4SW5QYXJlbnQgKyAxIDwgY3VycmVudC5wYXJlbnQuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGJyb3RoZXIgPSAoY3VycmVudC5wYXJlbnQuY2hpbGRyZW4gfHwgW10pXG4gICAgICAgICAgLnNsaWNlKGluZGV4SW5QYXJlbnQgKyAxKVxuICAgICAgICAgIC5tYXAoKGMpID0+ICghZmlsdGVyRm4gfHwgZmlsdGVyRm4oYykgPyBjIDogdGhpcy5maXJzdChjLCBmaWx0ZXJGbikpKVxuICAgICAgICAgIC5maW5kKGlzTm90TmlsKTtcbiAgICAgICAgLy8gT0ssIGZvdW5kIGEgYnJvdGhlclxuICAgICAgICBpZiAoYnJvdGhlcikgcmV0dXJuIGJyb3RoZXI7XG4gICAgICB9XG4gICAgICAvLyBSZXRyeSwgd2l0aCBwYXJlbnQncyBicm90aGVyXG4gICAgICBjdXJyZW50ID0gY3VycmVudC5wYXJlbnQ7XG4gICAgICBpbmRleEluUGFyZW50ID0gY3VycmVudC5wYXJlbnQgPyAoY3VycmVudC5wYXJlbnQuY2hpbGRyZW4gfHwgW10pLmluZGV4T2YoY3VycmVudCkgOiAtMTtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gcGFyZW50XG4gICAgaWYgKGN1cnJlbnQgIT09IG5vZGUgJiYgKCFmaWx0ZXJGbiB8fCBmaWx0ZXJGbihjdXJyZW50KSkpIHJldHVybiBjdXJyZW50O1xuXG4gICAgcmV0dXJuIHRoaXMuZmlyc3QoY3VycmVudCwgZmlsdGVyRm4pO1xuICB9XG5cbiAgc3RhdGljIGJhY2t3YXJkPFQgZXh0ZW5kcyBJVHJlZUl0ZW1FbnRpdHk8YW55PiwgSUQgPSBudW1iZXI+KG5vZGU6IFQsIGZpbHRlckZuPzogRmlsdGVyRm48VD4sIGxvb3BDb3VudD86IG51bWJlcik6IFQge1xuICAgIC8vIFN0b3AgaW5maW5pdGUgbG9vcFxuICAgIGlmIChsb29wQ291bnQgPT09IDEwMCkge1xuICAgICAgY29uc29sZS5lcnJvcignSW5maW5pdGUgbG9vcCBkZXRlY3RlZCEgTWFrZSBzdXJlIHRoZXJlIGlzIHZhbGlkIG5vZGUgaW4gdGhpcyB0cmVlIScpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBpbmRleEluUGFyZW50ID0gbm9kZS5wYXJlbnQgPyAobm9kZS5wYXJlbnQuY2hpbGRyZW4gfHwgW10pLmluZGV4T2Yobm9kZSkgOiAtMTtcbiAgICAvLyBSb290IG5vZGVcbiAgICBpZiAoaW5kZXhJblBhcmVudCA9PT0gLTEpIHtcbiAgICAgIHJldHVybiB0aGlzLmxhc3RMZWFmKG5vZGUsIGZpbHRlckZuKTtcbiAgICB9XG5cbiAgICAvLyBObyBwcmV2aW91cyBicm90aGVyIChmaXJzdCBpbiBwYXJlbnQncyBsaXN0KVxuICAgIGVsc2UgaWYgKGluZGV4SW5QYXJlbnQgPT09IDApIHtcbiAgICAgIC8vIFJldHVybiB0aGUgcGFyZW50LCBpZiBtYXRjaFxuICAgICAgcmV0dXJuICFmaWx0ZXJGbiB8fCBmaWx0ZXJGbihub2RlLnBhcmVudClcbiAgICAgICAgPyBub2RlLnBhcmVudFxuICAgICAgICA6IC8vIE9yIHJlY3Vyc2l2ZWx5IGNhbGwgYmFja3dhcmQoKSBvbiB0aGUgcGFyZW50XG4gICAgICAgICAgdGhpcy5iYWNrd2FyZChub2RlLnBhcmVudCwgZmlsdGVyRm4sIChsb29wQ291bnQgfHwgMCkgKyAxKTtcbiAgICB9XG5cbiAgICAvLyBMb29rdXAgaW4gYnJvdGhlclxuICAgIGVsc2Uge1xuICAgICAgY29uc3QgcHJldmlvdXNCcm90aGVyID0gKG5vZGUucGFyZW50LmNoaWxkcmVuIHx8IFtdKVxuICAgICAgICAuc2xpY2UoMCwgaW5kZXhJblBhcmVudClcbiAgICAgICAgLnJldmVyc2UoKVxuICAgICAgICAuZmluZCgoYykgPT4gIWZpbHRlckZuIHx8IGZpbHRlckZuKGMpKTtcblxuICAgICAgLy8gT0ssIHRoZXJlIGlzIGEgYnJvdGhlciBiZWZvcmUgdGhlIGN1cnJlbnQgaW5kZXhcbiAgICAgIGlmIChwcmV2aW91c0Jyb3RoZXIpIHJldHVybiB0aGlzLmxhc3RMZWFmKHByZXZpb3VzQnJvdGhlciwgZmlsdGVyRm4pO1xuICAgIH1cblxuICAgIC8vIE5vdCBmb3VuZCBpbiBicm90aGVyOiByZWN1cnNpdmVseSBjYWxsIGJhY2t3YXJkKCkgb24gdGhlIHBhcmVudFxuICAgIHJldHVybiB0aGlzLmJhY2t3YXJkKG5vZGUucGFyZW50LCBmaWx0ZXJGbiwgKGxvb3BDb3VudCB8fCAwKSArIDEpO1xuICB9XG5cbiAgc3RhdGljIGZpcnN0PFQgZXh0ZW5kcyBJVHJlZUl0ZW1FbnRpdHk8YW55Pj4obm9kZTogVCwgZmlsdGVyRm4/OiBGaWx0ZXJGbjxUPik6IFQge1xuICAgIC8vIE5vZGUgaGFzIGNoaWxkcmVuOiBkaXZlIGludG8gY2hpbGRyZW5cbiAgICBjb25zdCBjaGlsZCA9IChub2RlLmNoaWxkcmVuIHx8IFtdKS5maW5kKChjKSA9PiB0aGlzLmZpcnN0KGMsIGZpbHRlckZuKSk7XG4gICAgaWYgKGNoaWxkKSByZXR1cm4gY2hpbGQ7XG5cbiAgICAvLyBOb2RlIG1hdGNoOiB1c2UgaXRcbiAgICByZXR1cm4gIWZpbHRlckZuIHx8IGZpbHRlckZuKG5vZGUpID8gbm9kZSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXRpYyBsYXN0TGVhZjxUIGV4dGVuZHMgSVRyZWVJdGVtRW50aXR5PGFueT4+KG5vZGU6IFQsIGZpbHRlckZuPzogRmlsdGVyRm48VD4pOiBUIHtcbiAgICAvLyBOb2RlIGhhcyBjaGlsZHJlbjogZGl2ZSBpbnRvIGNoaWxkcmVuXG4gICAgY29uc3QgY2hpbGRMZWFmID0gKG5vZGUuY2hpbGRyZW4gfHwgW10pXG4gICAgICAvLyBSZXZlcnNlIG9yZGVyIChhZnRlciBjbG9uZSlcbiAgICAgIC5zbGljZSgpXG4gICAgICAucmV2ZXJzZSgpXG4gICAgICAubWFwKChjKSA9PiB0aGlzLmxhc3RMZWFmKGMsIGZpbHRlckZuKSlcbiAgICAgIC5maW5kKGlzTm90TmlsKTtcbiAgICBpZiAoY2hpbGRMZWFmKSByZXR1cm4gY2hpbGRMZWFmOyAvLyBPSywgZm91bmQgaW4gY2hpbGRyZW5cblxuICAgIC8vIE5vZGUgaXMgYSBsZWFmLCBvciBub3QgbWF0Y2ggZm91bmQgaW4gY2hpbGRyZW46IGNoZWNrIGN1cnJlbnRcbiAgICByZXR1cm4gIWZpbHRlckZuIHx8IGZpbHRlckZuKG5vZGUpID8gbm9kZSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXRpYyBmaW5kQnlGaWx0ZXI8VCBleHRlbmRzIElUcmVlSXRlbUVudGl0eTxUPiAmIElFbnRpdHk8VD4+KG5vZGU6IFQsIGZpbHRlcjogRW50aXR5RmlsdGVyPGFueSwgVD4pOiBUW10ge1xuICAgIGNvbnN0IGZpbHRlckZuID0gZmlsdGVyPy5hc0ZpbHRlckZuKCk7XG4gICAgaWYgKCFmaWx0ZXJGbikgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIG9yIGVtcHR5IGZpbHRlciBhcmd1bWVudCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyUmVjdXJzaXZlbHkobm9kZSwgZmlsdGVyRm4pO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBtYXRjaGVzIGJhdGNoZXNcbiAgICpcbiAgICogQHBhcmFtIG5vZGVcbiAgICogQHBhcmFtIGZpbHRlclxuICAgKi9cbiAgc3RhdGljIGRlbGV0ZUJ5RmlsdGVyPFQgZXh0ZW5kcyBJVHJlZUl0ZW1FbnRpdHk8VD4gJiBJRW50aXR5PFQ+Pihub2RlOiBULCBmaWx0ZXI6IEVudGl0eUZpbHRlcjxhbnksIFQ+KTogVFtdIHtcbiAgICBjb25zdCBmaWx0ZXJGbiA9IGZpbHRlcj8uYXNGaWx0ZXJGbigpO1xuICAgIGlmICghZmlsdGVyRm4pIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBvciBlbXB0eSBmaWx0ZXIgYXJndW1lbnQnKTtcblxuICAgIHJldHVybiB0aGlzLmRlbGV0ZVJlY3Vyc2l2ZWx5KG5vZGUsIGZpbHRlckZuKTtcbiAgfVxuXG4gIHN0YXRpYyBmaWx0ZXJSZWN1cnNpdmVseTxUIGV4dGVuZHMgSVRyZWVJdGVtRW50aXR5PGFueT4+KG5vZGU6IFQsIGZpbHRlckZuOiAobjogVCkgPT4gYm9vbGVhbik6IFRbXSB7XG4gICAgcmV0dXJuIChub2RlLmNoaWxkcmVuIHx8IFtdKS5yZWR1Y2UoXG4gICAgICAocmVzLCBjaGlsZCkgPT4gcmVzLmNvbmNhdCh0aGlzLmZpbHRlclJlY3Vyc2l2ZWx5KGNoaWxkLCBmaWx0ZXJGbikpLFxuICAgICAgLy8gSW5pdCByZXN1bHRcbiAgICAgIGZpbHRlckZuKG5vZGUpID8gW25vZGVdIDogW11cbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGRlbGV0ZVJlY3Vyc2l2ZWx5PFQgZXh0ZW5kcyBJVHJlZUl0ZW1FbnRpdHk8YW55Pj4obm9kZTogVCwgZmlsdGVyRm46IChuOiBUKSA9PiBib29sZWFuKTogVFtdIHtcbiAgICBpZiAoaXNFbXB0eUFycmF5KG5vZGUuY2hpbGRyZW4pKSByZXR1cm4gW107IC8vIFNraXBcblxuICAgIC8vIERlbGV0ZSBjaGlsZHJlblxuICAgIGNvbnN0IGRlbGV0ZWRDaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4uZmlsdGVyKGZpbHRlckZuKTtcbiAgICBub2RlLmNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbi5maWx0ZXIoKGMpID0+ICFkZWxldGVkQ2hpbGRyZW4uaW5jbHVkZXMoYykpO1xuXG4gICAgLy8gVE9ETzogYWRkIGFuIG9wdGlvbnMgdG8gY2xlYW4gdGhlIHBhcmVudFxuICAgIC8vZGVsZXRlZENoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4gY2hpbGQucGFyZW50ID0gbnVsbCk7XG5cbiAgICAvLyBSZWN1cnNpdmUgY2FsbCwgaW4gc3RpbGwgZXhpc3RpbmcgY2hpbGRyZW5cbiAgICByZXR1cm4gbm9kZS5jaGlsZHJlbi5yZWR1Y2UoKHJlcywgYykgPT4gcmVzLmNvbmNhdCguLi50aGlzLmRlbGV0ZVJlY3Vyc2l2ZWx5KGMsIGZpbHRlckZuKSksIGRlbGV0ZWRDaGlsZHJlbik7XG4gIH1cblxuICAvKipcbiAgICogVmlzaXQgZWFjaCBub2RlLCBmcm9tIHJvb3QgdG8gbGVhZlxuICAgKlxuICAgKiBAcGFyYW0gbm9kZVxuICAgKiBAcGFyYW0gYWN0aW9uXG4gICAqL1xuICBzdGF0aWMgdmlzaXQ8VCBleHRlbmRzIElUcmVlSXRlbUVudGl0eTxhbnk+Pihub2RlOiBULCBhY3Rpb246IChpdGVtOiBUKSA9PiB2b2lkKSB7XG4gICAgaWYgKG5vZGUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEFwcGxpcXVlciBsJ2FjdGlvbiBzdXIgbGUgbsWTdWQgYWN0dWVsXG4gICAgYWN0aW9uKG5vZGUpO1xuXG4gICAgLy8gUGFyY291cmlyIGxlcyBlbmZhbnRzXG4gICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIG5vZGUuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IHRoaXMudmlzaXQoY2hpbGQsIGFjdGlvbikpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWaXNpdCBlYWNoIG5vZGUsIGZyb20gbGVhZiB0byByb290XG4gICAqXG4gICAqIEBwYXJhbSBub2RlXG4gICAqIEBwYXJhbSBhY3Rpb25cbiAgICovXG4gIHN0YXRpYyB2aXNpdEludmVyc2U8VCBleHRlbmRzIElUcmVlSXRlbUVudGl0eTxhbnk+Pihub2RlOiBULCBhY3Rpb246IChUKSA9PiB2b2lkKSB7XG4gICAgaWYgKG5vZGUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFBhcmNvdXJpciBsZXMgZW5mYW50c1xuICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICBub2RlLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB0aGlzLnZpc2l0SW52ZXJzZShjaGlsZCwgYWN0aW9uKSk7XG4gICAgfVxuXG4gICAgLy8gQXBwbGlxdWVyIGwnYWN0aW9uIHN1ciBsZSBuxZN1ZCBhY3R1ZWxcbiAgICBhY3Rpb24obm9kZSk7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtIGEgYmF0Y2ggZW50aXR5IHRyZWUgaW50byBhIGFycmF5IGxpc3QuIFRoaXMgbWV0aG9kIGtlZXAgbGlua3MgcGFyZW50L2NoaWxkcmVuLlxuICAgKlxuICAgKiBNZXRob2QgdXNlZCB0byBmaW5kIGJhdGNoIHdpdGhvdXQgaWQgKGUuZy4gYmVmb3JlIGxvY2FsIHN0b3JhZ2UpXG4gICAqXG4gICAqIEBwYXJhbSBzb3VyY2VcbiAgICovXG4gIHN0YXRpYyB0cmVlVG9BcnJheTxUIGV4dGVuZHMgSVRyZWVJdGVtRW50aXR5PGFueT4+KHNvdXJjZTogVCk6IFRbXSB7XG4gICAgaWYgKCFzb3VyY2UpIHJldHVybiBudWxsO1xuICAgIHJldHVybiAoc291cmNlLmNoaWxkcmVuIHx8IFtdKS5yZWR1Y2UoXG4gICAgICAocmVzLCBiYXRjaCkgPT4ge1xuICAgICAgICBiYXRjaC5wYXJlbnQgPSBzb3VyY2U7XG4gICAgICAgIHJldHVybiByZXMuY29uY2F0KHRoaXMudHJlZVRvQXJyYXkoYmF0Y2gpKTsgLy8gcmVjdXJzaXZlIGNhbGxcbiAgICAgIH0sXG4gICAgICBbc291cmNlXVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgbGlzdE9mVHJlZVRvQXJyYXk8VCBleHRlbmRzIElUcmVlSXRlbUVudGl0eTxhbnk+Pihzb3VyY2VzOiBUW10pOiBUW10ge1xuICAgIGlmICghc291cmNlcyB8fCAhc291cmNlcy5sZW5ndGgpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBzb3VyY2VzLnJlZHVjZSgocmVzLCBzb3VyY2UpID0+IHJlcy5jb25jYXQodGhpcy50cmVlVG9BcnJheTxUPihzb3VyY2UpKSwgW10pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbGwgcGFyZW50IGF0dHJpYnV0ZSwgb2YgYWxsIGNoaWxkcmVuIGZvdW5kIGluIHRoZSB0cmVlXG4gICAqXG4gICAqIEBwYXJhbSBzb3VyY2VcbiAgICovXG4gIHN0YXRpYyB0cmVlRmlsbFBhcmVudDxUIGV4dGVuZHMgSVRyZWVJdGVtRW50aXR5PGFueT4+KHNvdXJjZTogVCkge1xuICAgIGlmICghc291cmNlKSByZXR1cm4gbnVsbDtcbiAgICAoc291cmNlLmNoaWxkcmVuIHx8IFtdKS5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgY2hpbGQucGFyZW50ID0gc291cmNlO1xuICAgICAgdGhpcy50cmVlRmlsbFBhcmVudChjaGlsZCk7IC8vIExvb3BcbiAgICB9KTtcbiAgfVxufVxuIl19
|