@sumaris-net/ngx-components 18.14.0 → 18.14.2
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/esm2022/public_api.mjs +390 -0
- package/esm2022/src/app/admin/admin-routing.module.mjs +34 -0
- package/esm2022/src/app/admin/admin.module.mjs +32 -0
- package/esm2022/src/app/admin/services/filter/person.filter.mjs +76 -0
- package/esm2022/src/app/admin/services/person.service.mjs +184 -0
- package/esm2022/src/app/admin/services/validator/person.validator.mjs +72 -0
- package/esm2022/src/app/admin/users/users.mjs +379 -0
- package/esm2022/src/app/admin/users/users.module.mjs +56 -0
- package/esm2022/src/app/core/about/about.modal.mjs +86 -0
- package/esm2022/src/app/core/about/about.module.mjs +22 -0
- package/esm2022/src/app/core/account/account.module.mjs +75 -0
- package/esm2022/src/app/core/account/account.page.mjs +364 -0
- package/esm2022/src/app/core/account/new-token.form.mjs +106 -0
- package/esm2022/src/app/core/account/new-token.modal.mjs +66 -0
- package/esm2022/src/app/core/account/password/change-password.form.mjs +63 -0
- package/esm2022/src/app/core/account/password/change-password.module.mjs +22 -0
- package/esm2022/src/app/core/account/password/change-password.page.mjs +150 -0
- package/esm2022/src/app/core/account/token.table.mjs +157 -0
- package/esm2022/src/app/core/auth/auth.form.mjs +159 -0
- package/esm2022/src/app/core/auth/auth.modal.mjs +76 -0
- package/esm2022/src/app/core/auth/auth.module.mjs +56 -0
- package/esm2022/src/app/core/auth/reset-password.modal.mjs +89 -0
- package/esm2022/src/app/core/core.module.mjs +151 -0
- package/esm2022/src/app/core/core.testing.module.mjs +107 -0
- package/esm2022/src/app/core/form/array/form-array.mjs +328 -0
- package/esm2022/src/app/core/form/array/testing/form-array-test.module.mjs +23 -0
- package/esm2022/src/app/core/form/array/testing/form-array.test.mjs +94 -0
- package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +108 -0
- package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +31 -0
- package/esm2022/src/app/core/form/entity/editor.class.mjs +268 -0
- package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +420 -0
- package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +741 -0
- package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +24 -0
- package/esm2022/src/app/core/form/entity/entity.module.mjs +32 -0
- package/esm2022/src/app/core/form/entity/tab-editor.class.mjs +190 -0
- package/esm2022/src/app/core/form/form-container.class.mjs +341 -0
- package/esm2022/src/app/core/form/form.class.mjs +337 -0
- package/esm2022/src/app/core/form/form.module.mjs +70 -0
- package/esm2022/src/app/core/form/form.utils.mjs +232 -0
- package/esm2022/src/app/core/form/list/list.form.mjs +235 -0
- package/esm2022/src/app/core/form/list/list.module.mjs +31 -0
- package/esm2022/src/app/core/form/properties/properties.form.mjs +317 -0
- package/esm2022/src/app/core/form/properties/properties.module.mjs +37 -0
- package/esm2022/src/app/core/form/properties/properties.table.mjs +264 -0
- package/esm2022/src/app/core/form/properties/properties.utils.mjs +304 -0
- package/esm2022/src/app/core/form/properties/property.validator.mjs +70 -0
- package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +104 -0
- package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +23 -0
- package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +73 -0
- package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +30 -0
- package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +161 -0
- package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +31 -0
- package/esm2022/src/app/core/form/username/username.form.mjs +55 -0
- package/esm2022/src/app/core/form/username/username.module.mjs +20 -0
- package/esm2022/src/app/core/graphql/graphql.module.mjs +14 -0
- package/esm2022/src/app/core/graphql/graphql.service.mjs +781 -0
- package/esm2022/src/app/core/graphql/graphql.utils.mjs +119 -0
- package/esm2022/src/app/core/home/home.mjs +403 -0
- package/esm2022/src/app/core/home/home.module.mjs +54 -0
- package/esm2022/src/app/core/icon/icon.component.mjs +40 -0
- package/esm2022/src/app/core/icon/icon.module.mjs +20 -0
- package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +394 -0
- package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +31 -0
- package/esm2022/src/app/core/menu/menu.component.mjs +258 -0
- package/esm2022/src/app/core/menu/menu.model.mjs +272 -0
- package/esm2022/src/app/core/menu/menu.module.mjs +47 -0
- package/esm2022/src/app/core/menu/menu.service.mjs +666 -0
- package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +109 -0
- package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +50 -0
- package/esm2022/src/app/core/menu/testing/menu.testing.mjs +158 -0
- package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +60 -0
- package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +28 -0
- package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +31 -0
- package/esm2022/src/app/core/peer/select-peer.modal.mjs +344 -0
- package/esm2022/src/app/core/peer/select-peer.module.mjs +36 -0
- package/esm2022/src/app/core/register/register-confirm.page.mjs +90 -0
- package/esm2022/src/app/core/register/register.form.mjs +194 -0
- package/esm2022/src/app/core/register/register.modal.mjs +55 -0
- package/esm2022/src/app/core/register/register.module.mjs +23 -0
- package/esm2022/src/app/core/services/account.service.mjs +1358 -0
- package/esm2022/src/app/core/services/auth-guard.service.mjs +74 -0
- package/esm2022/src/app/core/services/base-entity-service.class.mjs +485 -0
- package/esm2022/src/app/core/services/base-graphql-service.class.mjs +230 -0
- package/esm2022/src/app/core/services/base58.mjs +83 -0
- package/esm2022/src/app/core/services/config/core.config.mjs +258 -0
- package/esm2022/src/app/core/services/config.service.mjs +384 -0
- package/esm2022/src/app/core/services/crypto.service.mjs +107 -0
- package/esm2022/src/app/core/services/errors.mjs +54 -0
- package/esm2022/src/app/core/services/local-settings.service.mjs +517 -0
- package/esm2022/src/app/core/services/model/account.model.mjs +178 -0
- package/esm2022/src/app/core/services/model/config.model.mjs +107 -0
- package/esm2022/src/app/core/services/model/department.model.mjs +35 -0
- package/esm2022/src/app/core/services/model/entity.decorators.mjs +97 -0
- package/esm2022/src/app/core/services/model/entity.model.mjs +338 -0
- package/esm2022/src/app/core/services/model/filter.model.mjs +93 -0
- package/esm2022/src/app/core/services/model/history.model.mjs +2 -0
- package/esm2022/src/app/core/services/model/model.enum.mjs +11 -0
- package/esm2022/src/app/core/services/model/node-feature.model.mjs +31 -0
- package/esm2022/src/app/core/services/model/peer.model.mjs +113 -0
- package/esm2022/src/app/core/services/model/person.model.mjs +114 -0
- package/esm2022/src/app/core/services/model/referential.model.mjs +205 -0
- package/esm2022/src/app/core/services/model/settings.model.mjs +6 -0
- package/esm2022/src/app/core/services/model/token.model.mjs +57 -0
- package/esm2022/src/app/core/services/model/tree-item-entity.model.mjs +220 -0
- package/esm2022/src/app/core/services/network.service.mjs +649 -0
- package/esm2022/src/app/core/services/network.types.mjs +2 -0
- package/esm2022/src/app/core/services/network.utils.mjs +35 -0
- package/esm2022/src/app/core/services/pipes/account.pipes.mjs +38 -0
- package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +23 -0
- package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +23 -0
- 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 +37 -0
- package/esm2022/src/app/core/services/platform.service.mjs +627 -0
- package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +427 -0
- package/esm2022/src/app/core/services/storage/entity-store.class.mjs +450 -0
- package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +25 -0
- package/esm2022/src/app/core/services/testing/referential.validator.mjs +46 -0
- package/esm2022/src/app/core/services/validator/account.validator.mjs +45 -0
- package/esm2022/src/app/core/services/validator/base.validator.class.mjs +49 -0
- package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +57 -0
- package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +27 -0
- package/esm2022/src/app/core/services/validator/user-token.validator.mjs +55 -0
- package/esm2022/src/app/core/settings/settings.module.mjs +23 -0
- package/esm2022/src/app/core/settings/settings.page.mjs +403 -0
- package/esm2022/src/app/core/table/async-table.class.mjs +1813 -0
- package/esm2022/src/app/core/table/column/actions-column.component.mjs +130 -0
- package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +117 -0
- package/esm2022/src/app/core/table/column/row-field.component.mjs +116 -0
- package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +415 -0
- package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +407 -0
- package/esm2022/src/app/core/table/memory-table.class.mjs +57 -0
- package/esm2022/src/app/core/table/table-select-columns.component.mjs +46 -0
- package/esm2022/src/app/core/table/table.class.mjs +1869 -0
- package/esm2022/src/app/core/table/table.model.mjs +21 -0
- package/esm2022/src/app/core/table/table.module.mjs +51 -0
- package/esm2022/src/app/core/table/table.pipes.mjs +77 -0
- package/esm2022/src/app/core/table/table.utils.mjs +34 -0
- package/esm2022/src/app/core/table/testing/table-validator.service.mjs +32 -0
- package/esm2022/src/app/core/table/testing/table.testing.mjs +329 -0
- package/esm2022/src/app/core/table/testing/table.testing.module.mjs +25 -0
- package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +25 -0
- package/esm2022/src/app/core/table/testing/table2.testing.mjs +273 -0
- package/esm2022/src/app/shared/alerts.mjs +243 -0
- package/esm2022/src/app/shared/audio/audio.mjs +255 -0
- package/esm2022/src/app/shared/audio/audio.testing.mjs +32 -0
- package/esm2022/src/app/shared/audio/audio.testing.module.mjs +30 -0
- package/esm2022/src/app/shared/capacitor/keyboard.mjs +42 -0
- package/esm2022/src/app/shared/capacitor/plugins.mjs +9 -0
- package/esm2022/src/app/shared/constants.mjs +16 -0
- package/esm2022/src/app/shared/dates.mjs +180 -0
- package/esm2022/src/app/shared/debug/debug-service.class.mjs +3 -0
- package/esm2022/src/app/shared/debug/debug.component.mjs +44 -0
- package/esm2022/src/app/shared/debug/debug.module.mjs +23 -0
- package/esm2022/src/app/shared/directives/autofocus.directive.mjs +91 -0
- package/esm2022/src/app/shared/directives/autoresize.directive.mjs +75 -0
- package/esm2022/src/app/shared/directives/autotitle.directive.mjs +30 -0
- package/esm2022/src/app/shared/directives/directives.module.mjs +24 -0
- package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +52 -0
- package/esm2022/src/app/shared/directives/ng-var.directive.mjs +33 -0
- package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +62 -0
- package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +45 -0
- package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +17 -0
- package/esm2022/src/app/shared/directives/throttled-click.directive.mjs +43 -0
- package/esm2022/src/app/shared/events.mjs +64 -0
- package/esm2022/src/app/shared/file/csv.utils.mjs +97 -0
- package/esm2022/src/app/shared/file/file.service.mjs +118 -0
- package/esm2022/src/app/shared/file/file.utils.mjs +117 -0
- package/esm2022/src/app/shared/file/images.utils.mjs +186 -0
- package/esm2022/src/app/shared/file/json.utils.mjs +58 -0
- package/esm2022/src/app/shared/file/uri.utils.mjs +29 -0
- package/esm2022/src/app/shared/file/url.utils.mjs +195 -0
- package/esm2022/src/app/shared/focusable.mjs +6 -0
- package/esm2022/src/app/shared/form/field.component.mjs +393 -0
- package/esm2022/src/app/shared/form/field.model.mjs +82 -0
- package/esm2022/src/app/shared/form/loading-spinner.mjs +35 -0
- package/esm2022/src/app/shared/forms.mjs +573 -0
- package/esm2022/src/app/shared/functions.mjs +672 -0
- package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +86 -0
- package/esm2022/src/app/shared/gesture/gesture-config.mjs +46 -0
- package/esm2022/src/app/shared/gesture/hammer.utils.mjs +2 -0
- package/esm2022/src/app/shared/graph/colors.utils.mjs +60 -0
- package/esm2022/src/app/shared/graph/graph-colors.mjs +214 -0
- package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +65 -0
- package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +23 -0
- package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +147 -0
- package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +24 -0
- package/esm2022/src/app/shared/http/http.utils.mjs +56 -0
- package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +443 -0
- package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +62 -0
- package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +26 -0
- package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +87 -0
- package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +37 -0
- package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +59 -0
- package/esm2022/src/app/shared/image/image.model.mjs +2 -0
- package/esm2022/src/app/shared/image/image.module.mjs +24 -0
- package/esm2022/src/app/shared/image/image.service.mjs +109 -0
- package/esm2022/src/app/shared/inputs.mjs +279 -0
- package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +27 -0
- package/esm2022/src/app/shared/logging/log-level.model.mjs +48 -0
- package/esm2022/src/app/shared/logging/logger.model.mjs +47 -0
- package/esm2022/src/app/shared/logging/logging-service.class.mjs +125 -0
- package/esm2022/src/app/shared/logging/logging-service.config.mjs +2 -0
- package/esm2022/src/app/shared/logging/logging-service.module.mjs +30 -0
- package/esm2022/src/app/shared/markdown/markdown.component.mjs +321 -0
- package/esm2022/src/app/shared/markdown/markdown.directive.mjs +34 -0
- package/esm2022/src/app/shared/markdown/markdown.modal.mjs +99 -0
- package/esm2022/src/app/shared/markdown/markdown.module.mjs +87 -0
- package/esm2022/src/app/shared/markdown/markdown.service.mjs +204 -0
- package/esm2022/src/app/shared/markdown/markdown.utils.mjs +87 -0
- package/esm2022/src/app/shared/markdown/testing/markdown.test.mjs +55 -0
- package/esm2022/src/app/shared/markdown/testing/markdown.testing.module.mjs +30 -0
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +46 -0
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +1313 -0
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +79 -0
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +18 -0
- package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +242 -0
- package/esm2022/src/app/shared/material/badge/badge.directive.mjs +251 -0
- package/esm2022/src/app/shared/material/badge/badge.module.mjs +20 -0
- package/esm2022/src/app/shared/material/badge/badge.test.mjs +42 -0
- package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +67 -0
- package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +371 -0
- package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +72 -0
- package/esm2022/src/app/shared/material/chips/chips.module.mjs +71 -0
- package/esm2022/src/app/shared/material/chips/material.chips.mjs +836 -0
- package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +151 -0
- package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +76 -0
- package/esm2022/src/app/shared/material/datetime/material.date.mjs +471 -0
- package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +457 -0
- package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +693 -0
- package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +136 -0
- package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +127 -0
- package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +118 -0
- package/esm2022/src/app/shared/material/duration/duration.module.mjs +61 -0
- package/esm2022/src/app/shared/material/duration/duration.utils.mjs +16 -0
- package/esm2022/src/app/shared/material/duration/material.duration.mjs +283 -0
- package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +85 -0
- package/esm2022/src/app/shared/material/latlong/latlong.utils.mjs +319 -0
- package/esm2022/src/app/shared/material/latlong/material.latlong-input.mjs +432 -0
- package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +231 -0
- package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +68 -0
- package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +137 -0
- package/esm2022/src/app/shared/material/material.animations.mjs +200 -0
- package/esm2022/src/app/shared/material/material.config.mjs +3 -0
- package/esm2022/src/app/shared/material/material.module.mjs +229 -0
- package/esm2022/src/app/shared/material/material.testing.module.mjs +245 -0
- package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +51 -0
- package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +23 -0
- package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +379 -0
- package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +52 -0
- package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +67 -0
- package/esm2022/src/app/shared/material/test/test-component.mjs +264 -0
- package/esm2022/src/app/shared/material/testing/common.test.mjs +111 -0
- package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +42 -0
- package/esm2022/src/app/shared/material/text/text-form.component.mjs +205 -0
- package/esm2022/src/app/shared/material/text/text-form.module.mjs +63 -0
- package/esm2022/src/app/shared/modules.mjs +12 -0
- package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +303 -0
- package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +49 -0
- package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +24 -0
- package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +69 -0
- package/esm2022/src/app/shared/named-filter/testing/named-filter-selector.testing.mjs +74 -0
- package/esm2022/src/app/shared/named-filter/testing/named-filter.testing.module.mjs +28 -0
- package/esm2022/src/app/shared/observables.mjs +100 -0
- package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +217 -0
- package/esm2022/src/app/shared/pipes/badge.pipes.mjs +25 -0
- package/esm2022/src/app/shared/pipes/colors.pipe.mjs +29 -0
- package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +50 -0
- package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +72 -0
- package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +28 -0
- package/esm2022/src/app/shared/pipes/dates.pipe.mjs +18 -0
- package/esm2022/src/app/shared/pipes/display-with.pipe.mjs +23 -0
- package/esm2022/src/app/shared/pipes/duration.pipe.mjs +34 -0
- package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +53 -0
- package/esm2022/src/app/shared/pipes/form.pipes.mjs +219 -0
- package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +50 -0
- package/esm2022/src/app/shared/pipes/html.pipes.mjs +69 -0
- package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +42 -0
- package/esm2022/src/app/shared/pipes/maps.pipe.mjs +65 -0
- package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +67 -0
- package/esm2022/src/app/shared/pipes/math.pipes.mjs +77 -0
- package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +19 -0
- package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +17 -0
- package/esm2022/src/app/shared/pipes/observable.pipes.mjs +63 -0
- package/esm2022/src/app/shared/pipes/pipes.module.mjs +285 -0
- package/esm2022/src/app/shared/pipes/property.pipes.mjs +135 -0
- package/esm2022/src/app/shared/pipes/selection.pipes.mjs +179 -0
- package/esm2022/src/app/shared/pipes/string.pipes.mjs +183 -0
- package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +44 -0
- package/esm2022/src/app/shared/pipes/types.pipes.mjs +74 -0
- package/esm2022/src/app/shared/pipes/url.pipes.mjs +35 -0
- package/esm2022/src/app/shared/platforms.mjs +81 -0
- package/esm2022/src/app/shared/print/print.service.mjs +305 -0
- package/esm2022/src/app/shared/regexps.mjs +96 -0
- package/esm2022/src/app/shared/rx-state/rx-state.decorators.mjs +217 -0
- package/esm2022/src/app/shared/rx-state/rx-state.module.mjs +19 -0
- package/esm2022/src/app/shared/rx-state/rx-state.types.mjs +2 -0
- package/esm2022/src/app/shared/services/entity-service.class.mjs +10 -0
- package/esm2022/src/app/shared/services/job.utils.mjs +92 -0
- package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +353 -0
- package/esm2022/src/app/shared/services/progress-bar.service.mjs +31 -0
- package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +118 -0
- package/esm2022/src/app/shared/services/startable-service.class.mjs +107 -0
- package/esm2022/src/app/shared/services/translate-context.service.mjs +107 -0
- package/esm2022/src/app/shared/services/validator-service.class.mjs +2 -0
- package/esm2022/src/app/shared/services.mjs +85 -0
- package/esm2022/src/app/shared/shared-routing.module.mjs +72 -0
- package/esm2022/src/app/shared/shared.module.mjs +229 -0
- package/esm2022/src/app/shared/shared.testing.module.mjs +108 -0
- package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +279 -0
- package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +42 -0
- package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +27 -0
- package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +25 -0
- package/esm2022/src/app/shared/storage/storage.service.mjs +134 -0
- package/esm2022/src/app/shared/storage/storage.utils.mjs +13 -0
- package/esm2022/src/app/shared/testing/maskito.test.mjs +41 -0
- package/esm2022/src/app/shared/testing/observable.test.mjs +94 -0
- package/esm2022/src/app/shared/testing/tests.page.mjs +37 -0
- package/esm2022/src/app/shared/toast/toast.testing.mjs +54 -0
- package/esm2022/src/app/shared/toast/toast.testing.module.mjs +31 -0
- package/esm2022/src/app/shared/toast/toasts.mjs +134 -0
- package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +62 -0
- package/esm2022/src/app/shared/toolbar/toolbar.mjs +267 -0
- package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +26 -0
- package/esm2022/src/app/shared/types.mjs +2 -0
- package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +59 -0
- package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +30 -0
- package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +109 -0
- package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +216 -0
- package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +26 -0
- package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +115 -0
- package/esm2022/src/app/shared/validator/validators.mjs +621 -0
- package/esm2022/src/app/shared/version/versions.mjs +81 -0
- package/esm2022/src/app/social/config/social.config.mjs +9 -0
- package/esm2022/src/app/social/feed/discourse/discourse-feed.service.mjs +167 -0
- package/esm2022/src/app/social/feed/discourse/discourse.model.mjs +2 -0
- package/esm2022/src/app/social/feed/discourse/discourse.utils.mjs +168 -0
- package/esm2022/src/app/social/feed/feed.component.mjs +121 -0
- package/esm2022/src/app/social/feed/feed.directive.mjs +151 -0
- package/esm2022/src/app/social/feed/feed.model.mjs +68 -0
- package/esm2022/src/app/social/feed/feed.module.mjs +22 -0
- package/esm2022/src/app/social/feed/feed.service.mjs +3 -0
- package/esm2022/src/app/social/job/job.module.mjs +23 -0
- package/esm2022/src/app/social/job/progression/job-progression.component.mjs +35 -0
- package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +235 -0
- package/esm2022/src/app/social/job/progression/job-progression.list.mjs +47 -0
- package/esm2022/src/app/social/job/progression/job-progression.model.mjs +29 -0
- package/esm2022/src/app/social/job/progression/job-progression.service.mjs +91 -0
- package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +38 -0
- package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +34 -0
- package/esm2022/src/app/social/job/testing/job.testing.module.mjs +22 -0
- package/esm2022/src/app/social/message/message.form.mjs +141 -0
- package/esm2022/src/app/social/message/message.modal.mjs +110 -0
- package/esm2022/src/app/social/message/message.model.mjs +75 -0
- package/esm2022/src/app/social/message/message.module.mjs +22 -0
- package/esm2022/src/app/social/message/message.service.mjs +110 -0
- package/esm2022/src/app/social/social.errors.mjs +10 -0
- package/esm2022/src/app/social/social.module.mjs +22 -0
- package/esm2022/src/app/social/social.testing.module.mjs +40 -0
- package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +187 -0
- package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +277 -0
- package/esm2022/src/app/social/user-event/notification/user-event-notification.modal.mjs +81 -0
- package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +273 -0
- package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +129 -0
- package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +22 -0
- package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +128 -0
- package/esm2022/src/app/social/user-event/user-event.model.mjs +2 -0
- package/esm2022/src/app/social/user-event/user-event.module.mjs +24 -0
- package/esm2022/src/app/social/user-event/user-event.service.mjs +512 -0
- package/esm2022/src/environments/environment.class.mjs +66 -0
- package/esm2022/src/environments/environment.loader.mjs +77 -0
- package/esm2022/src/environments/environment.mjs +118 -0
- package/esm2022/sumaris-net.ngx-components.mjs +5 -0
- package/fesm2022/sumaris-net.ngx-components.mjs +49754 -0
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/package.json +19 -133
- package/public_api.d.ts +354 -0
- package/src/app/admin/admin-routing.module.d.ts +9 -0
- package/src/app/admin/admin.module.d.ts +10 -0
- package/src/app/admin/services/filter/person.filter.d.ts +22 -0
- package/src/app/admin/services/person.service.d.ts +37 -0
- package/src/app/admin/services/validator/person.validator.d.ts +23 -0
- package/src/app/admin/users/users.d.ts +61 -0
- package/src/app/admin/users/users.module.d.ts +14 -0
- package/src/app/core/about/about.modal.d.ts +32 -0
- package/src/app/core/about/about.module.d.ts +11 -0
- package/src/app/core/account/account.module.d.ts +18 -0
- package/src/app/core/account/account.page.d.ts +83 -0
- package/src/app/core/account/new-token.form.d.ts +29 -0
- package/src/app/core/account/new-token.modal.d.ts +29 -0
- package/src/app/core/account/password/change-password.form.d.ts +19 -0
- package/src/app/core/account/password/change-password.module.d.ts +11 -0
- package/src/app/core/account/password/change-password.page.d.ts +36 -0
- package/src/app/core/account/token.table.d.ts +27 -0
- package/src/app/core/auth/auth.form.d.ts +38 -0
- package/src/app/core/auth/auth.modal.d.ts +24 -0
- package/src/app/core/auth/auth.module.d.ts +13 -0
- package/src/app/core/auth/reset-password.modal.d.ts +29 -0
- package/src/app/core/core.module.d.ts +28 -0
- package/src/app/core/core.testing.module.d.ts +15 -0
- package/src/app/core/form/array/form-array.d.ts +137 -0
- package/src/app/core/form/array/testing/form-array-test.module.d.ts +12 -0
- package/src/app/core/form/array/testing/form-array.test.d.ts +26 -0
- package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +37 -0
- package/src/app/core/form/buttons/form-buttons-bar.module.d.ts +9 -0
- package/src/app/core/form/entity/editor.class.d.ts +84 -0
- package/src/app/core/form/entity/entity-editor-modal.class.d.ts +126 -0
- package/src/app/core/form/entity/entity-editor.class.d.ts +204 -0
- package/src/app/core/form/entity/entity-metadata.component.d.ts +13 -0
- package/src/app/core/form/entity/entity.module.d.ts +10 -0
- package/src/app/core/form/entity/tab-editor.class.d.ts +66 -0
- package/src/app/core/form/form-container.class.d.ts +127 -0
- package/src/app/core/form/form.class.d.ts +144 -0
- package/src/app/core/form/form.module.d.ts +14 -0
- package/src/app/core/form/form.utils.d.ts +287 -0
- package/src/app/core/form/list/list.form.d.ts +81 -0
- package/src/app/core/form/list/list.module.d.ts +9 -0
- package/src/app/core/form/properties/properties.form.d.ts +92 -0
- package/src/app/core/form/properties/properties.module.d.ts +11 -0
- package/src/app/core/form/properties/properties.table.d.ts +72 -0
- package/src/app/core/form/properties/properties.utils.d.ts +59 -0
- package/src/app/core/form/properties/property.validator.d.ts +27 -0
- package/src/app/core/form/properties/testing/properties-form.test.d.ts +22 -0
- package/src/app/core/form/properties/testing/properties-form.testing.module.d.ts +12 -0
- package/src/app/core/form/text-popover/testing/text-popover.testing.d.ts +16 -0
- package/src/app/core/form/text-popover/testing/text-popover.testing.module.d.ts +11 -0
- package/src/app/core/form/text-popover/text-popover.component.d.ts +80 -0
- package/src/app/core/form/text-popover/text-popover.module.d.ts +9 -0
- package/src/app/core/form/username/username.form.d.ts +19 -0
- package/src/app/core/form/username/username.module.d.ts +9 -0
- package/src/app/core/graphql/graphql.module.d.ts +7 -0
- package/src/app/core/graphql/graphql.service.d.ts +142 -0
- package/src/app/core/graphql/graphql.utils.d.ts +47 -0
- package/src/app/core/home/home.d.ts +117 -0
- package/src/app/core/home/home.module.d.ts +16 -0
- package/src/app/core/icon/icon.component.d.ts +13 -0
- package/src/app/core/icon/icon.module.d.ts +9 -0
- package/src/app/core/install/install-upgrade-card.component.d.ts +63 -0
- package/src/app/core/install/install-upgrade-card.module.d.ts +9 -0
- package/src/app/core/menu/menu.component.d.ts +66 -0
- package/src/app/core/menu/menu.model.d.ts +144 -0
- package/src/app/core/menu/menu.module.d.ts +12 -0
- package/src/app/core/menu/menu.service.d.ts +93 -0
- package/src/app/core/menu/sub-menu-tab.directive.d.ts +29 -0
- package/src/app/core/menu/testing/menu-other.testing.d.ts +15 -0
- package/src/app/core/menu/testing/menu.testing.d.ts +51 -0
- package/src/app/core/menu/testing/menu.testing.module.d.ts +12 -0
- package/src/app/core/offline/update-offline-mode-card.component.d.ts +11 -0
- package/src/app/core/offline/update-offline-mode-card.module.d.ts +9 -0
- package/src/app/core/peer/select-peer.modal.d.ts +101 -0
- package/src/app/core/peer/select-peer.module.d.ts +12 -0
- package/src/app/core/register/register-confirm.page.d.ts +24 -0
- package/src/app/core/register/register.form.d.ts +49 -0
- package/src/app/core/register/register.modal.d.ts +14 -0
- package/src/app/core/register/register.module.d.ts +12 -0
- package/src/app/core/services/account.service.d.ts +207 -0
- package/src/app/core/services/auth-guard.service.d.ts +17 -0
- package/src/app/core/services/base-entity-service.class.d.ts +135 -0
- package/src/app/core/services/base-graphql-service.class.d.ts +77 -0
- package/src/app/core/services/base58.d.ts +7 -0
- package/src/app/core/services/config/core.config.d.ts +46 -0
- package/src/app/core/services/config.service.d.ts +63 -0
- package/src/app/core/services/crypto.service.d.ts +44 -0
- package/src/app/core/services/errors.d.ts +65 -0
- package/src/app/core/services/local-settings.service.d.ts +100 -0
- package/src/app/core/services/model/account.model.d.ts +56 -0
- package/src/app/core/services/model/config.model.d.ts +36 -0
- package/src/app/core/services/model/department.model.d.ts +11 -0
- package/src/app/core/services/model/entity.decorators.d.ts +17 -0
- package/src/app/core/services/model/entity.model.d.ts +133 -0
- package/src/app/core/services/model/filter.model.d.ts +37 -0
- package/src/app/core/services/model/history.model.d.ts +20 -0
- package/src/app/core/services/model/model.enum.d.ts +7 -0
- package/src/app/core/services/model/node-feature.model.d.ts +14 -0
- package/src/app/core/services/model/peer.model.d.ts +35 -0
- package/src/app/core/services/model/person.model.d.ts +37 -0
- package/src/app/core/services/model/referential.model.d.ts +84 -0
- package/src/app/core/services/model/settings.model.d.ts +29 -0
- package/src/app/core/services/model/token.model.d.ts +22 -0
- package/src/app/core/services/model/tree-item-entity.model.d.ts +61 -0
- package/src/app/core/services/network.service.d.ts +160 -0
- package/src/app/core/services/network.types.d.ts +4 -0
- package/src/app/core/services/network.utils.d.ts +38 -0
- package/src/app/core/services/pipes/account.pipes.d.ts +15 -0
- package/src/app/core/services/pipes/department-to-string.pipe.d.ts +9 -0
- package/src/app/core/services/pipes/person-to-string.pipe.d.ts +11 -0
- package/src/app/core/services/pipes/pipes.module.d.ts +11 -0
- package/src/app/core/services/pipes/referential-to-string.pipe.d.ts +13 -0
- package/src/app/core/services/pipes/usage-mode.pipes.d.ts +15 -0
- package/src/app/core/services/platform.service.d.ts +110 -0
- package/src/app/core/services/storage/entities-storage.service.d.ts +108 -0
- package/src/app/core/services/storage/entity-store.class.d.ts +113 -0
- package/src/app/core/services/testing/referential-filter.model.d.ts +9 -0
- package/src/app/core/services/testing/referential.validator.d.ts +22 -0
- package/src/app/core/services/validator/account.validator.d.ts +24 -0
- package/src/app/core/services/validator/base.validator.class.d.ts +21 -0
- package/src/app/core/services/validator/local-settings.validator.d.ts +18 -0
- package/src/app/core/services/validator/user-settings.validator.d.ts +10 -0
- package/src/app/core/services/validator/user-token.validator.d.ts +13 -0
- package/src/app/core/settings/settings.module.d.ts +12 -0
- package/src/app/core/settings/settings.page.d.ts +88 -0
- package/src/app/core/table/async-table.class.d.ts +395 -0
- package/src/app/core/table/column/actions-column.component.d.ts +62 -0
- package/src/app/core/table/column/nav-actions-column.component.d.ts +46 -0
- package/src/app/core/table/column/row-field.component.d.ts +40 -0
- package/src/app/core/table/entities-async-table-datasource.class.d.ts +103 -0
- package/src/app/core/table/entities-table-datasource.class.d.ts +102 -0
- package/src/app/core/table/memory-table.class.d.ts +25 -0
- package/src/app/core/table/table-select-columns.component.d.ts +22 -0
- package/src/app/core/table/table.class.d.ts +400 -0
- package/src/app/core/table/table.model.d.ts +31 -0
- package/src/app/core/table/table.module.d.ts +14 -0
- package/src/app/core/table/table.pipes.d.ts +29 -0
- package/src/app/core/table/table.utils.d.ts +13 -0
- package/src/app/core/table/testing/table-validator.service.d.ts +17 -0
- package/src/app/core/table/testing/table.testing.d.ts +54 -0
- package/src/app/core/table/testing/table.testing.module.d.ts +14 -0
- package/src/app/core/table/testing/table2-validator.service.d.ts +15 -0
- package/src/app/core/table/testing/table2.testing.d.ts +48 -0
- package/src/app/shared/alerts.d.ts +55 -0
- package/src/app/shared/audio/audio.d.ts +45 -0
- package/src/app/shared/audio/audio.testing.d.ts +13 -0
- package/src/app/shared/audio/audio.testing.module.d.ts +11 -0
- package/src/app/shared/capacitor/keyboard.d.ts +16 -0
- package/src/app/shared/capacitor/plugins.d.ts +7 -0
- package/src/app/shared/constants.d.ts +13 -0
- package/src/app/shared/dates.d.ts +61 -0
- package/src/app/shared/debug/debug-service.class.d.ts +5 -0
- package/src/app/shared/debug/debug.component.d.ts +14 -0
- package/src/app/shared/debug/debug.module.d.ts +12 -0
- package/src/app/shared/directives/autofocus.directive.d.ts +18 -0
- package/src/app/shared/directives/autoresize.directive.d.ts +20 -0
- package/src/app/shared/directives/autotitle.directive.d.ts +11 -0
- package/src/app/shared/directives/directives.module.d.ts +14 -0
- package/src/app/shared/directives/drag-and-drop.directive.d.ts +17 -0
- package/src/app/shared/directives/ng-var.directive.d.ts +12 -0
- package/src/app/shared/directives/resizable/resizable.component.d.ts +21 -0
- package/src/app/shared/directives/resizable/resizable.directive.d.ts +12 -0
- package/src/app/shared/directives/resizable/resizable.module.d.ts +8 -0
- package/src/app/shared/directives/throttled-click.directive.d.ts +16 -0
- package/src/app/shared/events.d.ts +29 -0
- package/src/app/shared/file/csv.utils.d.ts +30 -0
- package/src/app/shared/file/file.service.d.ts +23 -0
- package/src/app/shared/file/file.utils.d.ts +20 -0
- package/src/app/shared/file/images.utils.d.ts +36 -0
- package/src/app/shared/file/json.utils.d.ts +19 -0
- package/src/app/shared/file/uri.utils.d.ts +8 -0
- package/src/app/shared/file/url.utils.d.ts +99 -0
- package/src/app/shared/focusable.d.ts +4 -0
- package/src/app/shared/form/field.component.d.ts +85 -0
- package/src/app/shared/form/field.model.d.ts +82 -0
- package/src/app/shared/form/loading-spinner.d.ts +8 -0
- package/src/app/shared/forms.d.ts +162 -0
- package/src/app/shared/functions.d.ts +206 -0
- package/src/app/shared/geolocation/geolocation.utils.d.ts +19 -0
- package/src/app/shared/gesture/gesture-config.d.ts +15 -0
- package/src/app/shared/gesture/hammer.utils.d.ts +16 -0
- package/src/app/shared/graph/colors.utils.d.ts +17 -0
- package/src/app/shared/graph/graph-colors.d.ts +63 -0
- package/src/app/shared/guard/component-dirty.guard.d.ts +14 -0
- package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +8 -0
- package/src/app/shared/hotkeys/hotkeys.service.d.ts +48 -0
- package/src/app/shared/hotkeys/shared-hotkeys.module.d.ts +11 -0
- package/src/app/shared/http/http.utils.d.ts +28 -0
- package/src/app/shared/image/gallery/image-gallery.component.d.ts +137 -0
- package/src/app/shared/image/gallery/image-gallery.module.d.ts +15 -0
- package/src/app/shared/image/gallery/testing/gallegry.model.testing.d.ts +12 -0
- package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +33 -0
- package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +16 -0
- package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +13 -0
- package/src/app/shared/image/image.model.d.ts +7 -0
- package/src/app/shared/image/image.module.d.ts +8 -0
- package/src/app/shared/image/image.service.d.ts +36 -0
- package/src/app/shared/inputs.d.ts +36 -0
- package/src/app/shared/interceptors/progess.interceptor.d.ts +8 -0
- package/src/app/shared/logging/log-level.model.d.ts +38 -0
- package/src/app/shared/logging/logger.model.d.ts +68 -0
- package/src/app/shared/logging/logging-service.class.d.ts +39 -0
- package/src/app/shared/logging/logging-service.config.d.ts +25 -0
- package/src/app/shared/logging/logging-service.module.d.ts +9 -0
- package/src/app/shared/markdown/markdown.component.d.ts +86 -0
- package/src/app/shared/markdown/markdown.directive.d.ts +13 -0
- package/src/app/shared/markdown/markdown.modal.d.ts +49 -0
- package/src/app/shared/markdown/markdown.module.d.ts +17 -0
- package/src/app/shared/markdown/markdown.service.d.ts +37 -0
- package/src/app/shared/markdown/markdown.utils.d.ts +26 -0
- package/src/app/shared/markdown/testing/markdown.test.d.ts +18 -0
- package/src/app/shared/markdown/testing/markdown.testing.module.d.ts +12 -0
- package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +74 -0
- package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +211 -0
- package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +22 -0
- package/src/app/shared/material/autocomplete/material.autocomplete.utils.d.ts +5 -0
- package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +48 -0
- package/src/app/shared/material/badge/badge.directive.d.ts +43 -0
- package/src/app/shared/material/badge/badge.module.d.ts +10 -0
- package/src/app/shared/material/badge/badge.test.d.ts +21 -0
- package/src/app/shared/material/boolean/boolean.module.d.ts +20 -0
- package/src/app/shared/material/boolean/material.boolean.d.ts +93 -0
- package/src/app/shared/material/boolean/testing/boolean.test.page.d.ts +26 -0
- package/src/app/shared/material/chips/chips.module.d.ts +21 -0
- package/src/app/shared/material/chips/material.chips.d.ts +164 -0
- package/src/app/shared/material/chips/testing/chips.test.d.ts +32 -0
- package/src/app/shared/material/datetime/datetime.module.d.ts +24 -0
- package/src/app/shared/material/datetime/material.date.d.ts +90 -0
- package/src/app/shared/material/datetime/material.dateshort.d.ts +89 -0
- package/src/app/shared/material/datetime/material.datetime.d.ts +116 -0
- package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +37 -0
- package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +32 -0
- package/src/app/shared/material/datetime/testing/mat-dateshort.test.d.ts +31 -0
- package/src/app/shared/material/duration/duration.module.d.ts +18 -0
- package/src/app/shared/material/duration/duration.utils.d.ts +2 -0
- package/src/app/shared/material/duration/material.duration.d.ts +64 -0
- package/src/app/shared/material/duration/testing/mat-duration.test.d.ts +23 -0
- package/src/app/shared/material/latlong/latlong.utils.d.ts +59 -0
- package/src/app/shared/material/latlong/material.latlong-input.d.ts +85 -0
- package/src/app/shared/material/latlong/material.latlong.d.ts +90 -0
- package/src/app/shared/material/latlong/material.latlong.module.d.ts +21 -0
- package/src/app/shared/material/latlong/testing/latlong.test.d.ts +28 -0
- package/src/app/shared/material/material.animations.d.ts +8 -0
- package/src/app/shared/material/material.config.d.ts +3 -0
- package/src/app/shared/material/material.module.d.ts +45 -0
- package/src/app/shared/material/material.testing.module.d.ts +32 -0
- package/src/app/shared/material/paginator/material.paginator-i18n.d.ts +12 -0
- package/src/app/shared/material/stepper/material.stepper-i18n.d.ts +10 -0
- package/src/app/shared/material/swipe/material.swipe.d.ts +89 -0
- package/src/app/shared/material/swipe/swipe.module.d.ts +16 -0
- package/src/app/shared/material/swipe/testing/swipe.test.d.ts +22 -0
- package/src/app/shared/material/test/test-component.d.ts +75 -0
- package/src/app/shared/material/testing/common.test.d.ts +25 -0
- package/src/app/shared/material/text/testing/text-form.testing.d.ts +19 -0
- package/src/app/shared/material/text/text-form.component.d.ts +66 -0
- package/src/app/shared/material/text/text-form.module.d.ts +16 -0
- package/src/app/shared/modules.d.ts +9 -0
- package/src/app/shared/named-filter/named-filter-selector.component.d.ts +62 -0
- package/src/app/shared/named-filter/named-filter.model.d.ts +32 -0
- package/src/app/shared/named-filter/named-filter.module.d.ts +13 -0
- package/src/app/shared/named-filter/named-filter.service.d.ts +32 -0
- package/src/app/shared/named-filter/testing/named-filter-selector.testing.d.ts +34 -0
- package/src/app/shared/named-filter/testing/named-filter.testing.module.d.ts +10 -0
- package/src/app/shared/observables.d.ts +30 -0
- package/src/app/shared/pipes/arrays.pipe.d.ts +82 -0
- package/src/app/shared/pipes/badge.pipes.d.ts +7 -0
- package/src/app/shared/pipes/colors.pipe.d.ts +9 -0
- package/src/app/shared/pipes/date-diff-duration.pipe.d.ts +25 -0
- package/src/app/shared/pipes/date-format.pipe.d.ts +35 -0
- package/src/app/shared/pipes/date-from-now.pipe.d.ts +12 -0
- package/src/app/shared/pipes/dates.pipe.d.ts +10 -0
- package/src/app/shared/pipes/display-with.pipe.d.ts +8 -0
- package/src/app/shared/pipes/duration.pipe.d.ts +23 -0
- package/src/app/shared/pipes/file-size.pipe.d.ts +30 -0
- package/src/app/shared/pipes/form.pipes.d.ts +69 -0
- package/src/app/shared/pipes/highlight.pipe.d.ts +11 -0
- package/src/app/shared/pipes/html.pipes.d.ts +22 -0
- package/src/app/shared/pipes/latlong-format.pipe.d.ts +20 -0
- package/src/app/shared/pipes/maps.pipe.d.ts +23 -0
- package/src/app/shared/pipes/maskito.pipe.d.ts +14 -0
- package/src/app/shared/pipes/math.pipes.d.ts +26 -0
- package/src/app/shared/pipes/ng-init.pipe.d.ts +8 -0
- package/src/app/shared/pipes/number-format.pipe.d.ts +9 -0
- package/src/app/shared/pipes/observable.pipes.d.ts +25 -0
- package/src/app/shared/pipes/pipes.module.d.ts +35 -0
- package/src/app/shared/pipes/property.pipes.d.ts +41 -0
- package/src/app/shared/pipes/selection.pipes.d.ts +62 -0
- package/src/app/shared/pipes/string.pipes.d.ts +68 -0
- package/src/app/shared/pipes/translate-context.pipe.d.ts +17 -0
- package/src/app/shared/pipes/types.pipes.d.ts +30 -0
- package/src/app/shared/pipes/url.pipes.d.ts +27 -0
- package/src/app/shared/platforms.d.ts +16 -0
- package/src/app/shared/print/print.service.d.ts +94 -0
- package/src/app/shared/regexps.d.ts +32 -0
- package/src/app/shared/rx-state/rx-state.decorators.d.ts +43 -0
- package/src/app/shared/rx-state/rx-state.module.d.ts +10 -0
- package/src/app/shared/rx-state/rx-state.types.d.ts +4 -0
- package/src/app/shared/services/entity-service.class.d.ts +75 -0
- package/src/app/shared/services/job.utils.d.ts +20 -0
- package/src/app/shared/services/memory-entity-service.class.d.ts +79 -0
- package/src/app/shared/services/progress-bar.service.d.ts +20 -0
- package/src/app/shared/services/startable-observable-service.class.d.ts +36 -0
- package/src/app/shared/services/startable-service.class.d.ts +37 -0
- package/src/app/shared/services/translate-context.service.d.ts +29 -0
- package/src/app/shared/services/validator-service.class.d.ts +11 -0
- package/src/app/shared/services.d.ts +17 -0
- package/src/app/shared/shared-routing.module.d.ts +23 -0
- package/src/app/shared/shared.module.d.ts +33 -0
- package/src/app/shared/shared.testing.module.d.ts +20 -0
- package/src/app/shared/storage/storage-explorer.component.d.ts +59 -0
- package/src/app/shared/storage/storage-explorer.module.d.ts +13 -0
- package/src/app/shared/storage/storage-explorer.testing-routing.module.d.ts +9 -0
- package/src/app/shared/storage/storage-explorer.testing.module.d.ts +10 -0
- package/src/app/shared/storage/storage.service.d.ts +22 -0
- package/src/app/shared/storage/storage.utils.d.ts +19 -0
- package/src/app/shared/testing/maskito.test.d.ts +10 -0
- package/src/app/shared/testing/observable.test.d.ts +25 -0
- package/src/app/shared/testing/tests.page.d.ts +20 -0
- package/src/app/shared/toast/toast.testing.d.ts +15 -0
- package/src/app/shared/toast/toast.testing.module.d.ts +12 -0
- package/src/app/shared/toast/toasts.d.ts +16 -0
- package/src/app/shared/toolbar/modal-toolbar.d.ts +21 -0
- package/src/app/shared/toolbar/toolbar.d.ts +70 -0
- package/src/app/shared/toolbar/toolbar.module.d.ts +16 -0
- package/src/app/shared/types.d.ts +36 -0
- package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +21 -0
- package/src/app/shared/upload-file/testing/upload-file.testing.module.d.ts +11 -0
- package/src/app/shared/upload-file/upload-file-popover.component.d.ts +41 -0
- package/src/app/shared/upload-file/upload-file.component.d.ts +50 -0
- package/src/app/shared/upload-file/upload-file.model.d.ts +30 -0
- package/src/app/shared/validator/form-error-adapter.class.d.ts +33 -0
- package/src/app/shared/validator/validators.d.ts +139 -0
- package/src/app/shared/version/versions.d.ts +26 -0
- package/src/app/social/config/social.config.d.ts +4 -0
- package/src/app/social/feed/discourse/discourse-feed.service.d.ts +55 -0
- package/src/app/social/feed/discourse/discourse.model.d.ts +7 -0
- package/src/app/social/feed/discourse/discourse.utils.d.ts +44 -0
- package/src/app/social/feed/feed.component.d.ts +39 -0
- package/src/app/social/feed/feed.directive.d.ts +32 -0
- package/src/app/social/feed/feed.model.d.ts +69 -0
- package/src/app/social/feed/feed.module.d.ts +11 -0
- package/src/app/social/feed/feed.service.d.ts +13 -0
- package/src/app/social/job/job.module.d.ts +12 -0
- package/src/app/social/job/progression/job-progression.component.d.ts +23 -0
- package/src/app/social/job/progression/job-progression.icon.d.ts +62 -0
- package/src/app/social/job/progression/job-progression.list.d.ts +19 -0
- package/src/app/social/job/progression/job-progression.model.d.ts +10 -0
- package/src/app/social/job/progression/job-progression.service.d.ts +33 -0
- package/src/app/social/job/testing/job-progression.testing.d.ts +13 -0
- package/src/app/social/job/testing/job-progression.testing.service.d.ts +9 -0
- package/src/app/social/job/testing/job.testing.module.d.ts +11 -0
- package/src/app/social/message/message.form.d.ts +36 -0
- package/src/app/social/message/message.modal.d.ts +43 -0
- package/src/app/social/message/message.model.d.ts +33 -0
- package/src/app/social/message/message.module.d.ts +12 -0
- package/src/app/social/message/message.service.d.ts +32 -0
- package/src/app/social/social.errors.d.ts +9 -0
- package/src/app/social/social.module.d.ts +20 -0
- package/src/app/social/social.testing.module.d.ts +13 -0
- package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +46 -0
- package/src/app/social/user-event/notification/user-event-notification.list.d.ts +75 -0
- package/src/app/social/user-event/notification/user-event-notification.modal.d.ts +36 -0
- package/src/app/social/user-event/testing/user-event.testing.d.ts +44 -0
- package/src/app/social/user-event/testing/user-event.testing.model.d.ts +42 -0
- package/src/app/social/user-event/testing/user-event.testing.module.d.ts +11 -0
- package/src/app/social/user-event/testing/user-event.testing.service.d.ts +42 -0
- package/src/app/social/user-event/user-event.model.d.ts +44 -0
- package/src/app/social/user-event/user-event.module.d.ts +14 -0
- package/src/app/social/user-event/user-event.service.d.ts +124 -0
- package/src/environments/environment.class.d.ts +83 -0
- package/src/environments/environment.d.ts +2 -0
- package/src/environments/environment.loader.d.ts +24 -0
- package/.editorconfig +0 -24
- package/.eslintrc.json +0 -95
- package/.gitattribute +0 -1
- package/.github/CONTRIBUTING.md +0 -10
- package/.github/ISSUE_TEMPLATE.md +0 -6
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -10
- package/.github/github_disclaimer.md +0 -14
- package/.gitlab-ci.yml +0 -46
- package/.graphqlconfig +0 -15
- package/.prettierignore +0 -9
- package/.prettierrc.json +0 -17
- package/angular.json +0 -239
- package/capacitor.config.ts +0 -49
- package/graphql.config.yml +0 -13
- package/ionic.config.json +0 -7
- package/karma.conf.js +0 -38
- package/ng-package.json +0 -21
- package/public_api.ts +0 -436
- package/resources/README.md +0 -7
- package/resources/icon/TODO.md +0 -11
- package/resources/icon.png +0 -0
- package/resources/icon.png.md5 +0 -1
- package/resources/icon.xcf +0 -0
- package/resources/ios/icon/icon-1024.png +0 -0
- package/resources/ios/icon/icon-108@2x.png +0 -0
- package/resources/ios/icon/icon-20.png +0 -0
- package/resources/ios/icon/icon-20@2x.png +0 -0
- package/resources/ios/icon/icon-20@3x.png +0 -0
- package/resources/ios/icon/icon-24@2x.png +0 -0
- package/resources/ios/icon/icon-27.5@2x.png +0 -0
- package/resources/ios/icon/icon-29.png +0 -0
- package/resources/ios/icon/icon-29@2x.png +0 -0
- package/resources/ios/icon/icon-29@3x.png +0 -0
- package/resources/ios/icon/icon-40.png +0 -0
- package/resources/ios/icon/icon-40@2x.png +0 -0
- package/resources/ios/icon/icon-40@3x.png +0 -0
- package/resources/ios/icon/icon-44@2x.png +0 -0
- package/resources/ios/icon/icon-50.png +0 -0
- package/resources/ios/icon/icon-50@2x.png +0 -0
- package/resources/ios/icon/icon-60.png +0 -0
- package/resources/ios/icon/icon-60@2x.png +0 -0
- package/resources/ios/icon/icon-60@3x.png +0 -0
- package/resources/ios/icon/icon-72.png +0 -0
- package/resources/ios/icon/icon-72@2x.png +0 -0
- package/resources/ios/icon/icon-76.png +0 -0
- package/resources/ios/icon/icon-76@2x.png +0 -0
- package/resources/ios/icon/icon-83.5@2x.png +0 -0
- package/resources/ios/icon/icon-86@2x.png +0 -0
- package/resources/ios/icon/icon-98@2x.png +0 -0
- package/resources/ios/icon/icon-small.png +0 -0
- package/resources/ios/icon/icon-small@2x.png +0 -0
- package/resources/ios/icon/icon-small@3x.png +0 -0
- package/resources/ios/icon/icon.png +0 -0
- package/resources/ios/icon/icon@2x.png +0 -0
- package/resources/ios/splash/Default-1792h~iphone.png +0 -0
- package/resources/ios/splash/Default-2436h.png +0 -0
- package/resources/ios/splash/Default-2688h~iphone.png +0 -0
- package/resources/ios/splash/Default-568h@2x~iphone.png +0 -0
- package/resources/ios/splash/Default-667h.png +0 -0
- package/resources/ios/splash/Default-736h.png +0 -0
- package/resources/ios/splash/Default-Landscape-1792h~iphone.png +0 -0
- package/resources/ios/splash/Default-Landscape-2436h.png +0 -0
- package/resources/ios/splash/Default-Landscape-2688h~iphone.png +0 -0
- package/resources/ios/splash/Default-Landscape-736h.png +0 -0
- package/resources/ios/splash/Default-Landscape@2x~ipad.png +0 -0
- package/resources/ios/splash/Default-Landscape@~ipadpro.png +0 -0
- package/resources/ios/splash/Default-Landscape~ipad.png +0 -0
- package/resources/ios/splash/Default-Portrait@2x~ipad.png +0 -0
- package/resources/ios/splash/Default-Portrait@~ipadpro.png +0 -0
- package/resources/ios/splash/Default-Portrait~ipad.png +0 -0
- package/resources/ios/splash/Default@2x~iphone.png +0 -0
- package/resources/ios/splash/Default@2x~universal~anyany.png +0 -0
- package/resources/ios/splash/Default~iphone.png +0 -0
- package/resources/splash.png +0 -0
- package/resources/splash.png.md5 +0 -1
- package/scripts/build-android.sh +0 -18
- package/scripts/docker-start.sh +0 -6
- package/scripts/emulate-android.sh +0 -17
- package/scripts/env-android.sh +0 -83
- package/scripts/env-clean.sh +0 -23
- package/scripts/env-global.sh +0 -154
- package/scripts/install-android-sdk-tools.sh +0 -73
- package/scripts/ionic-update.sh +0 -24
- package/scripts/node/build-i18n.js +0 -37
- package/scripts/node/playground.ts +0 -9
- package/scripts/node/resources.js +0 -108
- package/scripts/release.sh +0 -162
- package/scripts/run-android.sh +0 -59
- package/scripts/test.sh +0 -19
- package/src/app/admin/admin-routing.module.ts +0 -26
- package/src/app/admin/admin.module.ts +0 -20
- package/src/app/admin/services/filter/person.filter.ts +0 -86
- package/src/app/admin/services/person.service.ts +0 -244
- package/src/app/admin/services/validator/person.validator.ts +0 -86
- package/src/app/admin/users/users.html +0 -613
- package/src/app/admin/users/users.module.ts +0 -32
- package/src/app/admin/users/users.scss +0 -80
- package/src/app/admin/users/users.ts +0 -387
- package/src/app/app-routing.module.ts +0 -165
- package/src/app/app.component.html +0 -18
- package/src/app/app.component.scss +0 -4
- package/src/app/app.component.ts +0 -257
- package/src/app/app.module.ts +0 -366
- package/src/app/core/about/about.modal.html +0 -145
- package/src/app/core/about/about.modal.scss +0 -22
- package/src/app/core/about/about.modal.ts +0 -69
- package/src/app/core/about/about.module.ts +0 -14
- package/src/app/core/account/account.module.ts +0 -43
- package/src/app/core/account/account.page.html +0 -329
- package/src/app/core/account/account.page.scss +0 -20
- package/src/app/core/account/account.page.ts +0 -389
- package/src/app/core/account/new-token.form.html +0 -90
- package/src/app/core/account/new-token.form.ts +0 -99
- package/src/app/core/account/new-token.modal.html +0 -52
- package/src/app/core/account/new-token.modal.ts +0 -68
- package/src/app/core/account/password/change-password.form.html +0 -62
- package/src/app/core/account/password/change-password.form.scss +0 -0
- package/src/app/core/account/password/change-password.form.ts +0 -58
- package/src/app/core/account/password/change-password.module.ts +0 -14
- package/src/app/core/account/password/change-password.page.html +0 -41
- package/src/app/core/account/password/change-password.page.scss +0 -49
- package/src/app/core/account/password/change-password.page.ts +0 -158
- package/src/app/core/account/token.table.html +0 -160
- package/src/app/core/account/token.table.scss +0 -7
- package/src/app/core/account/token.table.ts +0 -160
- package/src/app/core/auth/auth.form.html +0 -108
- package/src/app/core/auth/auth.form.scss +0 -0
- package/src/app/core/auth/auth.form.ts +0 -165
- package/src/app/core/auth/auth.modal.html +0 -50
- package/src/app/core/auth/auth.modal.scss +0 -0
- package/src/app/core/auth/auth.modal.ts +0 -78
- package/src/app/core/auth/auth.module.ts +0 -35
- package/src/app/core/auth/reset-password.modal.html +0 -59
- package/src/app/core/auth/reset-password.modal.ts +0 -83
- package/src/app/core/core.module.ts +0 -72
- package/src/app/core/core.testing.module.ts +0 -80
- package/src/app/core/form/array/form-array.ts +0 -409
- package/src/app/core/form/array/testing/form-array-test.module.ts +0 -15
- package/src/app/core/form/array/testing/form-array.test.html +0 -196
- package/src/app/core/form/array/testing/form-array.test.ts +0 -119
- package/src/app/core/form/buttons/form-buttons-bar.component.html +0 -82
- package/src/app/core/form/buttons/form-buttons-bar.component.scss +0 -19
- package/src/app/core/form/buttons/form-buttons-bar.component.ts +0 -89
- package/src/app/core/form/buttons/form-buttons-bar.module.ts +0 -20
- package/src/app/core/form/entity/editor.class.ts +0 -295
- package/src/app/core/form/entity/entity-editor-modal.class.ts +0 -494
- package/src/app/core/form/entity/entity-editor.class.ts +0 -894
- package/src/app/core/form/entity/entity-metadata.component.html +0 -57
- package/src/app/core/form/entity/entity-metadata.component.scss +0 -40
- package/src/app/core/form/entity/entity-metadata.component.ts +0 -18
- package/src/app/core/form/entity/entity.module.ts +0 -20
- package/src/app/core/form/entity/tab-editor.class.ts +0 -224
- package/src/app/core/form/form-container.class.ts +0 -381
- package/src/app/core/form/form.class.ts +0 -377
- package/src/app/core/form/form.module.ts +0 -38
- package/src/app/core/form/form.utils.ts +0 -336
- package/src/app/core/form/list/list.form.html +0 -68
- package/src/app/core/form/list/list.form.scss +0 -40
- package/src/app/core/form/list/list.form.ts +0 -266
- package/src/app/core/form/list/list.module.ts +0 -20
- package/src/app/core/form/properties/properties.form.html +0 -160
- package/src/app/core/form/properties/properties.form.scss +0 -21
- package/src/app/core/form/properties/properties.form.ts +0 -331
- package/src/app/core/form/properties/properties.module.ts +0 -24
- package/src/app/core/form/properties/properties.table.html +0 -228
- package/src/app/core/form/properties/properties.table.scss +0 -0
- package/src/app/core/form/properties/properties.table.ts +0 -275
- package/src/app/core/form/properties/properties.utils.ts +0 -391
- package/src/app/core/form/properties/property.validator.ts +0 -82
- package/src/app/core/form/properties/testing/properties-form.test.html +0 -23
- package/src/app/core/form/properties/testing/properties-form.test.ts +0 -109
- package/src/app/core/form/properties/testing/properties-form.testing.module.ts +0 -14
- package/src/app/core/form/text-popover/testing/text-popover.testing.html +0 -50
- package/src/app/core/form/text-popover/testing/text-popover.testing.module.ts +0 -21
- package/src/app/core/form/text-popover/testing/text-popover.testing.ts +0 -76
- package/src/app/core/form/text-popover/text-popover.component.html +0 -89
- package/src/app/core/form/text-popover/text-popover.component.scss +0 -7
- package/src/app/core/form/text-popover/text-popover.component.ts +0 -176
- package/src/app/core/form/text-popover/text-popover.module.ts +0 -19
- package/src/app/core/form/username/username.form.html +0 -27
- package/src/app/core/form/username/username.form.ts +0 -44
- package/src/app/core/form/username/username.module.ts +0 -12
- package/src/app/core/graphql/graphql.module.ts +0 -7
- package/src/app/core/graphql/graphql.service.ts +0 -962
- package/src/app/core/graphql/graphql.utils.ts +0 -166
- package/src/app/core/home/home.html +0 -327
- package/src/app/core/home/home.module.ts +0 -31
- package/src/app/core/home/home.scss +0 -300
- package/src/app/core/home/home.ts +0 -453
- package/src/app/core/icon/icon.component.html +0 -19
- package/src/app/core/icon/icon.component.ts +0 -22
- package/src/app/core/icon/icon.module.ts +0 -13
- package/src/app/core/install/install-upgrade-card.component.html +0 -144
- package/src/app/core/install/install-upgrade-card.component.scss +0 -3
- package/src/app/core/install/install-upgrade-card.component.ts +0 -445
- package/src/app/core/install/install-upgrade-card.module.ts +0 -18
- package/src/app/core/menu/menu.component.html +0 -219
- package/src/app/core/menu/menu.component.scss +0 -304
- package/src/app/core/menu/menu.component.ts +0 -251
- package/src/app/core/menu/menu.filter.ts +0 -28
- package/src/app/core/menu/menu.model.ts +0 -356
- package/src/app/core/menu/menu.module.ts +0 -27
- package/src/app/core/menu/menu.service.ts +0 -727
- package/src/app/core/menu/sub-menu-tab.directive.ts +0 -99
- package/src/app/core/menu/testing/menu-other.testing.ts +0 -57
- package/src/app/core/menu/testing/menu.testing.html +0 -143
- package/src/app/core/menu/testing/menu.testing.module.ts +0 -52
- package/src/app/core/menu/testing/menu.testing.scss +0 -5
- package/src/app/core/menu/testing/menu.testing.ts +0 -175
- package/src/app/core/offline/update-offline-mode-card.component.html +0 -39
- package/src/app/core/offline/update-offline-mode-card.component.scss +0 -3
- package/src/app/core/offline/update-offline-mode-card.component.ts +0 -23
- package/src/app/core/offline/update-offline-mode-card.module.ts +0 -20
- package/src/app/core/peer/select-peer.modal.html +0 -317
- package/src/app/core/peer/select-peer.modal.scss +0 -41
- package/src/app/core/peer/select-peer.modal.ts +0 -366
- package/src/app/core/peer/select-peer.module.ts +0 -23
- package/src/app/core/register/register-confirm.page.html +0 -51
- package/src/app/core/register/register-confirm.page.scss +0 -56
- package/src/app/core/register/register-confirm.page.ts +0 -90
- package/src/app/core/register/register.form.html +0 -143
- package/src/app/core/register/register.form.scss +0 -10
- package/src/app/core/register/register.form.ts +0 -218
- package/src/app/core/register/register.modal.html +0 -66
- package/src/app/core/register/register.modal.ts +0 -50
- package/src/app/core/register/register.module.ts +0 -15
- package/src/app/core/services/account.service.ts +0 -1567
- package/src/app/core/services/auth-guard.service.ts +0 -70
- package/src/app/core/services/base-entity-service.class.ts +0 -659
- package/src/app/core/services/base-graphql-service.class.ts +0 -319
- package/src/app/core/services/base58.ts +0 -90
- package/src/app/core/services/config/core.config.ts +0 -263
- package/src/app/core/services/config.service.ts +0 -425
- package/src/app/core/services/crypto.service.ts +0 -126
- package/src/app/core/services/errors.ts +0 -80
- package/src/app/core/services/local-settings.service.spec.ts +0 -39
- package/src/app/core/services/local-settings.service.ts +0 -610
- package/src/app/core/services/model/account.model.ts +0 -188
- package/src/app/core/services/model/config.model.ts +0 -116
- package/src/app/core/services/model/department.model.ts +0 -34
- package/src/app/core/services/model/entity.decorators.ts +0 -110
- package/src/app/core/services/model/entity.model.ts +0 -409
- package/src/app/core/services/model/filter.model.ts +0 -127
- package/src/app/core/services/model/history.model.ts +0 -25
- package/src/app/core/services/model/model.enum.ts +0 -10
- package/src/app/core/services/model/node-feature.model.ts +0 -31
- package/src/app/core/services/model/peer.model.ts +0 -119
- package/src/app/core/services/model/person.model.ts +0 -122
- package/src/app/core/services/model/referential.model.ts +0 -253
- package/src/app/core/services/model/settings.model.ts +0 -37
- package/src/app/core/services/model/token.model.ts +0 -60
- package/src/app/core/services/model/tree-item-entity.model.ts +0 -256
- package/src/app/core/services/network.service.spec.ts +0 -47
- package/src/app/core/services/network.service.ts +0 -771
- package/src/app/core/services/network.types.ts +0 -7
- package/src/app/core/services/network.utils.ts +0 -83
- package/src/app/core/services/pipes/account.pipes.ts +0 -22
- package/src/app/core/services/pipes/department-to-string.pipe.ts +0 -13
- package/src/app/core/services/pipes/person-to-string.pipe.ts +0 -13
- package/src/app/core/services/pipes/pipes.module.ts +0 -30
- package/src/app/core/services/pipes/referential-to-string.pipe.ts +0 -18
- package/src/app/core/services/pipes/usage-mode.pipes.ts +0 -23
- package/src/app/core/services/platform.service.spec.ts +0 -50
- package/src/app/core/services/platform.service.ts +0 -694
- package/src/app/core/services/storage/entities-storage.service.ts +0 -557
- package/src/app/core/services/storage/entity-store.class.ts +0 -589
- package/src/app/core/services/testing/local-settings.config.ts +0 -35
- package/src/app/core/services/testing/referential-filter.model.ts +0 -28
- package/src/app/core/services/testing/referential.validator.ts +0 -58
- package/src/app/core/services/testing/user-settings.config.ts +0 -77
- package/src/app/core/services/validator/account.validator.ts +0 -50
- package/src/app/core/services/validator/base.validator.class.ts +0 -51
- package/src/app/core/services/validator/local-settings.validator.ts +0 -59
- package/src/app/core/services/validator/user-settings.validator.ts +0 -22
- package/src/app/core/services/validator/user-token.validator.ts +0 -54
- package/src/app/core/settings/settings.module.ts +0 -15
- package/src/app/core/settings/settings.page.html +0 -300
- package/src/app/core/settings/settings.page.ts +0 -455
- package/src/app/core/table/async-table.class.ts +0 -2021
- package/src/app/core/table/column/actions-column.component.html +0 -219
- package/src/app/core/table/column/actions-column.component.scss +0 -17
- package/src/app/core/table/column/actions-column.component.ts +0 -83
- package/src/app/core/table/column/nav-actions-column.component.html +0 -119
- package/src/app/core/table/column/nav-actions-column.component.ts +0 -108
- package/src/app/core/table/column/row-field.component.html +0 -43
- package/src/app/core/table/column/row-field.component.scss +0 -0
- package/src/app/core/table/column/row-field.component.ts +0 -63
- package/src/app/core/table/entities-async-table-datasource.class.ts +0 -515
- package/src/app/core/table/entities-table-datasource.class.ts +0 -503
- package/src/app/core/table/memory-table.class.ts +0 -56
- package/src/app/core/table/table-select-columns.component.html +0 -56
- package/src/app/core/table/table-select-columns.component.ts +0 -49
- package/src/app/core/table/table.class.ts +0 -2082
- package/src/app/core/table/table.model.ts +0 -39
- package/src/app/core/table/table.module.ts +0 -28
- package/src/app/core/table/table.pipes.ts +0 -87
- package/src/app/core/table/table.utils.ts +0 -42
- package/src/app/core/table/testing/multi-table.testing.html +0 -456
- package/src/app/core/table/testing/multi-table.testing.ts +0 -263
- package/src/app/core/table/testing/table-validator.service.ts +0 -29
- package/src/app/core/table/testing/table.testing.html +0 -556
- package/src/app/core/table/testing/table.testing.module.ts +0 -16
- package/src/app/core/table/testing/table.testing.scss +0 -32
- package/src/app/core/table/testing/table.testing.ts +0 -329
- package/src/app/core/table/testing/table2-validator.service.ts +0 -19
- package/src/app/core/table/testing/table2.testing.html +0 -470
- package/src/app/core/table/testing/table2.testing.scss +0 -25
- package/src/app/core/table/testing/table2.testing.ts +0 -274
- package/src/app/shared/alerts.ts +0 -296
- package/src/app/shared/audio/audio.testing.html +0 -29
- package/src/app/shared/audio/audio.testing.module.ts +0 -21
- package/src/app/shared/audio/audio.testing.ts +0 -27
- package/src/app/shared/audio/audio.ts +0 -273
- package/src/app/shared/base64.utils.ts +0 -66
- package/src/app/shared/capacitor/keyboard.ts +0 -38
- package/src/app/shared/capacitor/plugins.ts +0 -12
- package/src/app/shared/constants.ts +0 -19
- package/src/app/shared/dates.ts +0 -206
- package/src/app/shared/debug/debug-service.class.ts +0 -7
- package/src/app/shared/debug/debug.component.html +0 -13
- package/src/app/shared/debug/debug.component.scss +0 -21
- package/src/app/shared/debug/debug.component.spec.ts +0 -24
- package/src/app/shared/debug/debug.component.ts +0 -25
- package/src/app/shared/debug/debug.module.ts +0 -14
- package/src/app/shared/directives/autofocus.directive.ts +0 -93
- package/src/app/shared/directives/autoresize.directive.ts +0 -67
- package/src/app/shared/directives/autotitle.directive.ts +0 -17
- package/src/app/shared/directives/directives.module.ts +0 -16
- package/src/app/shared/directives/drag-and-drop.directive.ts +0 -46
- package/src/app/shared/directives/ng-var.directive.ts +0 -31
- package/src/app/shared/directives/resizable/resizable.component.ts +0 -48
- package/src/app/shared/directives/resizable/resizable.directive.ts +0 -43
- package/src/app/shared/directives/resizable/resizable.module.ts +0 -9
- package/src/app/shared/directives/resizable/resizable.style.scss +0 -37
- package/src/app/shared/directives/resizable/resizable.template.html +0 -6
- package/src/app/shared/directives/throttled-click.directive.ts +0 -36
- package/src/app/shared/events.ts +0 -93
- package/src/app/shared/file/csv.utils.ts +0 -123
- package/src/app/shared/file/file.service.ts +0 -129
- package/src/app/shared/file/file.utils.ts +0 -142
- package/src/app/shared/file/images.utils.ts +0 -214
- package/src/app/shared/file/json.utils.ts +0 -82
- package/src/app/shared/file/uri.utils.ts +0 -31
- package/src/app/shared/file/url.utils.ts +0 -193
- package/src/app/shared/focusable.ts +0 -8
- package/src/app/shared/form/field.component.html +0 -380
- package/src/app/shared/form/field.component.scss +0 -7
- package/src/app/shared/form/field.component.ts +0 -344
- package/src/app/shared/form/field.model.ts +0 -158
- package/src/app/shared/form/loading-spinner.ts +0 -16
- package/src/app/shared/forms.ts +0 -651
- package/src/app/shared/functions.spec.ts +0 -197
- package/src/app/shared/functions.ts +0 -694
- package/src/app/shared/geolocation/geolocation.utils.ts +0 -105
- package/src/app/shared/gesture/gesture-config.ts +0 -43
- package/src/app/shared/gesture/hammer.utils.ts +0 -14
- package/src/app/shared/graph/colors.utils.ts +0 -69
- package/src/app/shared/graph/graph-colors.ts +0 -270
- package/src/app/shared/guard/component-dirty.guard.ts +0 -67
- package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.html +0 -11
- package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.scss +0 -37
- package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.ts +0 -14
- package/src/app/shared/hotkeys/hotkeys.service.ts +0 -165
- package/src/app/shared/hotkeys/shared-hotkeys.module.ts +0 -15
- package/src/app/shared/http/http.utils.ts +0 -95
- package/src/app/shared/image/gallery/image-gallery.component.html +0 -282
- package/src/app/shared/image/gallery/image-gallery.component.scss +0 -218
- package/src/app/shared/image/gallery/image-gallery.component.ts +0 -434
- package/src/app/shared/image/gallery/image-gallery.module.ts +0 -35
- package/src/app/shared/image/gallery/testing/gallegry.model.testing.ts +0 -23
- package/src/app/shared/image/gallery/testing/gallery.service.testing.ts +0 -99
- package/src/app/shared/image/gallery/testing/gallery.testing.html +0 -27
- package/src/app/shared/image/gallery/testing/gallery.testing.module.ts +0 -39
- package/src/app/shared/image/gallery/testing/gallery.testing.ts +0 -34
- package/src/app/shared/image/image.model.ts +0 -8
- package/src/app/shared/image/image.module.ts +0 -12
- package/src/app/shared/image/image.service.ts +0 -111
- package/src/app/shared/image/image.testing.module.ts +0 -16
- package/src/app/shared/inputs.ts +0 -330
- package/src/app/shared/interceptors/progess.interceptor.ts +0 -24
- package/src/app/shared/logging/log-level.model.ts +0 -53
- package/src/app/shared/logging/logger.model.ts +0 -117
- package/src/app/shared/logging/logging-service.class.ts +0 -131
- package/src/app/shared/logging/logging-service.config.ts +0 -29
- package/src/app/shared/logging/logging-service.module.ts +0 -19
- package/src/app/shared/markdown/markdown.component.html +0 -55
- package/src/app/shared/markdown/markdown.component.scss +0 -75
- package/src/app/shared/markdown/markdown.component.ts +0 -350
- package/src/app/shared/markdown/markdown.directive.ts +0 -28
- package/src/app/shared/markdown/markdown.modal.html +0 -42
- package/src/app/shared/markdown/markdown.modal.ts +0 -91
- package/src/app/shared/markdown/markdown.module.ts +0 -65
- package/src/app/shared/markdown/markdown.service.ts +0 -234
- package/src/app/shared/markdown/markdown.utils.ts +0 -90
- package/src/app/shared/markdown/testing/markdown.test.html +0 -50
- package/src/app/shared/markdown/testing/markdown.test.ts +0 -49
- package/src/app/shared/markdown/testing/markdown.testing.module.ts +0 -22
- package/src/app/shared/material/autocomplete/material.autocomplete.config.ts +0 -127
- package/src/app/shared/material/autocomplete/material.autocomplete.html +0 -400
- package/src/app/shared/material/autocomplete/material.autocomplete.module.ts +0 -41
- package/src/app/shared/material/autocomplete/material.autocomplete.scss +0 -54
- package/src/app/shared/material/autocomplete/material.autocomplete.ts +0 -1375
- package/src/app/shared/material/autocomplete/material.autocomplete.utils.ts +0 -21
- package/src/app/shared/material/autocomplete/testing/autocomplete.test.html +0 -1164
- package/src/app/shared/material/autocomplete/testing/autocomplete.test.spec.ts +0 -33
- package/src/app/shared/material/autocomplete/testing/autocomplete.test.ts +0 -272
- package/src/app/shared/material/badge/badge.directive.ts +0 -217
- package/src/app/shared/material/badge/badge.module.ts +0 -12
- package/src/app/shared/material/badge/badge.test.html +0 -275
- package/src/app/shared/material/badge/badge.test.ts +0 -34
- package/src/app/shared/material/boolean/boolean.module.ts +0 -36
- package/src/app/shared/material/boolean/material.boolean.html +0 -271
- package/src/app/shared/material/boolean/material.boolean.scss +0 -27
- package/src/app/shared/material/boolean/material.boolean.ts +0 -343
- package/src/app/shared/material/boolean/testing/boolean.test.page.html +0 -469
- package/src/app/shared/material/boolean/testing/boolean.test.page.ts +0 -66
- package/src/app/shared/material/chips/chips.module.ts +0 -38
- package/src/app/shared/material/chips/material.chips.html +0 -233
- package/src/app/shared/material/chips/material.chips.scss +0 -67
- package/src/app/shared/material/chips/material.chips.ts +0 -834
- package/src/app/shared/material/chips/testing/chips.test.html +0 -207
- package/src/app/shared/material/chips/testing/chips.test.ts +0 -169
- package/src/app/shared/material/datetime/datetime.module.ts +0 -42
- package/src/app/shared/material/datetime/material.date.html +0 -186
- package/src/app/shared/material/datetime/material.date.scss +0 -17
- package/src/app/shared/material/datetime/material.date.ts +0 -512
- package/src/app/shared/material/datetime/material.dateshort.html +0 -194
- package/src/app/shared/material/datetime/material.dateshort.scss +0 -23
- package/src/app/shared/material/datetime/material.dateshort.ts +0 -497
- package/src/app/shared/material/datetime/material.datetime.html +0 -325
- package/src/app/shared/material/datetime/material.datetime.scss +0 -87
- package/src/app/shared/material/datetime/material.datetime.ts +0 -758
- package/src/app/shared/material/datetime/testing/mat-date-time.test.html +0 -794
- package/src/app/shared/material/datetime/testing/mat-date-time.test.ts +0 -155
- package/src/app/shared/material/datetime/testing/mat-date.test.html +0 -564
- package/src/app/shared/material/datetime/testing/mat-date.test.ts +0 -145
- package/src/app/shared/material/datetime/testing/mat-dateshort.test.html +0 -530
- package/src/app/shared/material/datetime/testing/mat-dateshort.test.ts +0 -133
- package/src/app/shared/material/duration/duration.module.ts +0 -33
- package/src/app/shared/material/duration/duration.utils.ts +0 -18
- package/src/app/shared/material/duration/material.duration.html +0 -116
- package/src/app/shared/material/duration/material.duration.scss +0 -28
- package/src/app/shared/material/duration/material.duration.ts +0 -308
- package/src/app/shared/material/duration/testing/mat-duration.test.html +0 -170
- package/src/app/shared/material/duration/testing/mat-duration.test.ts +0 -88
- package/src/app/shared/material/latlong/latlong.utils.ts +0 -376
- package/src/app/shared/material/latlong/material.latlong-input.html +0 -95
- package/src/app/shared/material/latlong/material.latlong-input.scss +0 -66
- package/src/app/shared/material/latlong/material.latlong-input.ts +0 -445
- package/src/app/shared/material/latlong/material.latlong.html +0 -90
- package/src/app/shared/material/latlong/material.latlong.module.ts +0 -37
- package/src/app/shared/material/latlong/material.latlong.scss +0 -0
- package/src/app/shared/material/latlong/material.latlong.ts +0 -203
- package/src/app/shared/material/latlong/testing/latlong.test.html +0 -1008
- package/src/app/shared/material/latlong/testing/latlong.test.ts +0 -144
- package/src/app/shared/material/material.animations.ts +0 -269
- package/src/app/shared/material/material.config.ts +0 -5
- package/src/app/shared/material/material.module.ts +0 -94
- package/src/app/shared/material/material.testing.module.ts +0 -192
- package/src/app/shared/material/memory/memory.utils.ts +0 -57
- package/src/app/shared/material/numpad/numpad.animation.ts +0 -1
- package/src/app/shared/material/numpad/numpad.append-to-input.directive.ts +0 -110
- package/src/app/shared/material/numpad/numpad.component.ts +0 -73
- package/src/app/shared/material/numpad/numpad.container.html +0 -37
- package/src/app/shared/material/numpad/numpad.container.scss +0 -55
- package/src/app/shared/material/numpad/numpad.container.ts +0 -152
- package/src/app/shared/material/numpad/numpad.content.html +0 -13
- package/src/app/shared/material/numpad/numpad.content.ts +0 -10
- package/src/app/shared/material/numpad/numpad.directive.ts +0 -159
- package/src/app/shared/material/numpad/numpad.dom-service.ts +0 -35
- package/src/app/shared/material/numpad/numpad.model.ts +0 -53
- package/src/app/shared/material/numpad/numpad.module.ts +0 -18
- package/src/app/shared/material/numpad/testing/numpad.test.html +0 -146
- package/src/app/shared/material/numpad/testing/numpad.test.ts +0 -44
- package/src/app/shared/material/paginator/material.paginator-i18n.ts +0 -47
- package/src/app/shared/material/stepper/material.stepper-i18n.ts +0 -17
- package/src/app/shared/material/swipe/material.swipe.html +0 -85
- package/src/app/shared/material/swipe/material.swipe.scss +0 -55
- package/src/app/shared/material/swipe/material.swipe.ts +0 -366
- package/src/app/shared/material/swipe/swipe.module.ts +0 -29
- package/src/app/shared/material/swipe/testing/swipe.test.html +0 -112
- package/src/app/shared/material/swipe/testing/swipe.test.ts +0 -74
- package/src/app/shared/material/test/test-component.css +0 -22
- package/src/app/shared/material/test/test-component.html +0 -40
- package/src/app/shared/material/test/test-component.ts +0 -295
- package/src/app/shared/material/testing/common.test.html +0 -227
- package/src/app/shared/material/testing/common.test.ts +0 -126
- package/src/app/shared/material/text/testing/text-form.testing.html +0 -213
- package/src/app/shared/material/text/testing/text-form.testing.ts +0 -30
- package/src/app/shared/material/text/text-form.component.html +0 -63
- package/src/app/shared/material/text/text-form.component.scss +0 -8
- package/src/app/shared/material/text/text-form.component.ts +0 -177
- package/src/app/shared/material/text/text-form.module.ts +0 -36
- package/src/app/shared/modules.ts +0 -12
- package/src/app/shared/named-filter/named-filter-selector.component.html +0 -77
- package/src/app/shared/named-filter/named-filter-selector.component.scss +0 -3
- package/src/app/shared/named-filter/named-filter-selector.component.ts +0 -287
- package/src/app/shared/named-filter/named-filter.model.ts +0 -64
- package/src/app/shared/named-filter/named-filter.module.ts +0 -15
- package/src/app/shared/named-filter/named-filter.service.ts +0 -100
- package/src/app/shared/named-filter/testing/named-filter-selector.testing.html +0 -61
- package/src/app/shared/named-filter/testing/named-filter-selector.testing.ts +0 -80
- package/src/app/shared/named-filter/testing/named-filter.testing.module.ts +0 -20
- package/src/app/shared/named-filter/testing/named-filter.testing.service.ts +0 -83
- package/src/app/shared/observables.ts +0 -139
- package/src/app/shared/pipes/arrays.pipe.ts +0 -153
- package/src/app/shared/pipes/badge.pipes.ts +0 -18
- package/src/app/shared/pipes/colors.pipe.ts +0 -24
- package/src/app/shared/pipes/date-diff-duration.pipe.ts +0 -53
- package/src/app/shared/pipes/date-format.pipe.ts +0 -73
- package/src/app/shared/pipes/date-from-now.pipe.ts +0 -17
- package/src/app/shared/pipes/dates.pipe.ts +0 -13
- package/src/app/shared/pipes/display-with.pipe.ts +0 -13
- package/src/app/shared/pipes/duration.pipe.spec.ts +0 -41
- package/src/app/shared/pipes/duration.pipe.ts +0 -28
- package/src/app/shared/pipes/file-size.pipe.ts +0 -50
- package/src/app/shared/pipes/form.pipes.ts +0 -209
- package/src/app/shared/pipes/highlight.pipe.ts +0 -41
- package/src/app/shared/pipes/html.pipes.ts +0 -49
- package/src/app/shared/pipes/latlong-format.pipe.ts +0 -28
- package/src/app/shared/pipes/maps.pipe.ts +0 -41
- package/src/app/shared/pipes/maskito.pipe.ts +0 -68
- package/src/app/shared/pipes/math.pipes.ts +0 -46
- package/src/app/shared/pipes/ng-init.pipe.ts +0 -13
- package/src/app/shared/pipes/number-format.pipe.ts +0 -11
- package/src/app/shared/pipes/observable.pipes.ts +0 -46
- package/src/app/shared/pipes/pipes.module.ts +0 -162
- package/src/app/shared/pipes/property.pipes.ts +0 -115
- package/src/app/shared/pipes/selection.pipes.ts +0 -165
- package/src/app/shared/pipes/string.pipes.ts +0 -128
- package/src/app/shared/pipes/translate-context.pipe.ts +0 -27
- package/src/app/shared/pipes/types.pipes.ts +0 -52
- package/src/app/shared/pipes/url.pipes.ts +0 -29
- package/src/app/shared/platforms.ts +0 -99
- package/src/app/shared/print/print.service.ts +0 -337
- package/src/app/shared/regexps.ts +0 -112
- package/src/app/shared/rx-state/rx-state.decorators.ts +0 -281
- package/src/app/shared/rx-state/rx-state.module.ts +0 -11
- package/src/app/shared/rx-state/rx-state.types.ts +0 -5
- package/src/app/shared/services/entity-service.class.ts +0 -120
- package/src/app/shared/services/job.utils.ts +0 -124
- package/src/app/shared/services/memory-entity-service.class.ts +0 -435
- package/src/app/shared/services/progress-bar.service.ts +0 -40
- package/src/app/shared/services/startable-observable-service.class.ts +0 -129
- package/src/app/shared/services/startable-service.class.ts +0 -120
- package/src/app/shared/services/storage.utils.ts +0 -53
- package/src/app/shared/services/translate-context.service.ts +0 -112
- package/src/app/shared/services/validator-service.class.ts +0 -13
- package/src/app/shared/services.ts +0 -134
- package/src/app/shared/shared-routing.module.ts +0 -69
- package/src/app/shared/shared.module.spec.ts +0 -13
- package/src/app/shared/shared.module.ts +0 -168
- package/src/app/shared/shared.testing.module.ts +0 -61
- package/src/app/shared/storage/storage-explorer.component.html +0 -160
- package/src/app/shared/storage/storage-explorer.component.scss +0 -37
- package/src/app/shared/storage/storage-explorer.component.spec.ts +0 -24
- package/src/app/shared/storage/storage-explorer.component.ts +0 -268
- package/src/app/shared/storage/storage-explorer.module.ts +0 -24
- package/src/app/shared/storage/storage-explorer.testing-routing.module.ts +0 -19
- package/src/app/shared/storage/storage-explorer.testing.module.ts +0 -19
- package/src/app/shared/storage/storage.service.ts +0 -131
- package/src/app/shared/storage/storage.utils.ts +0 -25
- package/src/app/shared/testing/maskito.test.html +0 -40
- package/src/app/shared/testing/maskito.test.ts +0 -33
- package/src/app/shared/testing/observable.test.html +0 -53
- package/src/app/shared/testing/observable.test.scss +0 -3
- package/src/app/shared/testing/observable.test.ts +0 -101
- package/src/app/shared/testing/tests.page.html +0 -22
- package/src/app/shared/testing/tests.page.ts +0 -32
- package/src/app/shared/toast/toast.testing.html +0 -50
- package/src/app/shared/toast/toast.testing.module.ts +0 -22
- package/src/app/shared/toast/toast.testing.ts +0 -52
- package/src/app/shared/toast/toasts.ts +0 -161
- package/src/app/shared/toolbar/modal-toolbar.html +0 -30
- package/src/app/shared/toolbar/modal-toolbar.scss +0 -0
- package/src/app/shared/toolbar/modal-toolbar.ts +0 -64
- package/src/app/shared/toolbar/toolbar.html +0 -68
- package/src/app/shared/toolbar/toolbar.module.ts +0 -18
- package/src/app/shared/toolbar/toolbar.scss +0 -0
- package/src/app/shared/toolbar/toolbar.ts +0 -262
- package/src/app/shared/types.ts +0 -44
- package/src/app/shared/upload-file/testing/upload-file.testing.html +0 -30
- package/src/app/shared/upload-file/testing/upload-file.testing.module.ts +0 -21
- package/src/app/shared/upload-file/testing/upload-file.testing.ts +0 -65
- package/src/app/shared/upload-file/upload-file-popover.component.html +0 -46
- package/src/app/shared/upload-file/upload-file-popover.component.scss +0 -6
- package/src/app/shared/upload-file/upload-file-popover.component.ts +0 -115
- package/src/app/shared/upload-file/upload-file.component.html +0 -57
- package/src/app/shared/upload-file/upload-file.component.scss +0 -60
- package/src/app/shared/upload-file/upload-file.component.ts +0 -222
- package/src/app/shared/upload-file/upload-file.model.ts +0 -40
- package/src/app/shared/validator/form-error-adapter.class.ts +0 -139
- package/src/app/shared/validator/validators.ts +0 -725
- package/src/app/shared/version/versions.ts +0 -89
- package/src/app/social/config/social.config.ts +0 -10
- package/src/app/social/feed/discourse/discourse-feed.service.ts +0 -216
- package/src/app/social/feed/discourse/discourse.model.ts +0 -9
- package/src/app/social/feed/discourse/discourse.utils.ts +0 -210
- package/src/app/social/feed/feed.component.html +0 -85
- package/src/app/social/feed/feed.component.scss +0 -59
- package/src/app/social/feed/feed.component.spec.ts +0 -24
- package/src/app/social/feed/feed.component.ts +0 -115
- package/src/app/social/feed/feed.directive.ts +0 -164
- package/src/app/social/feed/feed.model.ts +0 -139
- package/src/app/social/feed/feed.module.ts +0 -13
- package/src/app/social/feed/feed.service.ts +0 -14
- package/src/app/social/job/job.module.ts +0 -14
- package/src/app/social/job/progression/job-progression.component.html +0 -19
- package/src/app/social/job/progression/job-progression.component.scss +0 -15
- package/src/app/social/job/progression/job-progression.component.ts +0 -39
- package/src/app/social/job/progression/job-progression.icon.html +0 -32
- package/src/app/social/job/progression/job-progression.icon.scss +0 -7
- package/src/app/social/job/progression/job-progression.icon.ts +0 -277
- package/src/app/social/job/progression/job-progression.list.html +0 -25
- package/src/app/social/job/progression/job-progression.list.scss +0 -17
- package/src/app/social/job/progression/job-progression.list.ts +0 -40
- package/src/app/social/job/progression/job-progression.model.ts +0 -26
- package/src/app/social/job/progression/job-progression.service.ts +0 -97
- package/src/app/social/job/testing/job-progression.testing.html +0 -11
- package/src/app/social/job/testing/job-progression.testing.service.ts +0 -33
- package/src/app/social/job/testing/job-progression.testing.ts +0 -28
- package/src/app/social/job/testing/job.testing.module.ts +0 -13
- package/src/app/social/message/message.form.html +0 -71
- package/src/app/social/message/message.form.scss +0 -6
- package/src/app/social/message/message.form.ts +0 -128
- package/src/app/social/message/message.modal.html +0 -68
- package/src/app/social/message/message.modal.ts +0 -117
- package/src/app/social/message/message.model.ts +0 -78
- package/src/app/social/message/message.module.ts +0 -14
- package/src/app/social/message/message.service.ts +0 -104
- package/src/app/social/social.errors.ts +0 -10
- package/src/app/social/social.module.ts +0 -23
- package/src/app/social/social.testing.module.ts +0 -33
- package/src/app/social/user-event/notification/user-event-notification.icon.html +0 -49
- package/src/app/social/user-event/notification/user-event-notification.icon.scss +0 -4
- package/src/app/social/user-event/notification/user-event-notification.icon.ts +0 -176
- package/src/app/social/user-event/notification/user-event-notification.list.html +0 -151
- package/src/app/social/user-event/notification/user-event-notification.list.scss +0 -73
- package/src/app/social/user-event/notification/user-event-notification.list.ts +0 -282
- package/src/app/social/user-event/notification/user-event-notification.modal.html +0 -71
- package/src/app/social/user-event/notification/user-event-notification.modal.ts +0 -60
- package/src/app/social/user-event/testing/user-event.testing.html +0 -54
- package/src/app/social/user-event/testing/user-event.testing.model.ts +0 -142
- package/src/app/social/user-event/testing/user-event.testing.module.ts +0 -13
- package/src/app/social/user-event/testing/user-event.testing.service.ts +0 -161
- package/src/app/social/user-event/testing/user-event.testing.ts +0 -300
- package/src/app/social/user-event/user-event.model.ts +0 -55
- package/src/app/social/user-event/user-event.module.ts +0 -16
- package/src/app/social/user-event/user-event.service.ts +0 -686
- package/src/browserslist +0 -9
- package/src/environments/environment.class.ts +0 -113
- package/src/environments/environment.loader.ts +0 -90
- package/src/environments/environment.prod.ts +0 -49
- package/src/environments/environment.test.ts +0 -92
- package/src/environments/environment.ts +0 -136
- package/src/favicon.ico +0 -0
- package/src/global.scss +0 -13
- package/src/index.html +0 -76
- package/src/main.ts +0 -19
- package/src/polyfills.ts +0 -34
- package/src/schema.graphql +0 -4381
- package/src/service-worker.js +0 -31
- package/src/test.ts +0 -30
- package/tsconfig-cs.json +0 -57
- package/tsconfig.app.json +0 -15
- package/tsconfig.json +0 -48
- package/tsconfig.spec.json +0 -18
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Inject, InjectionToken, Input, Optional, Output, ViewChild, ViewChildren, } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, Subscription } from 'rxjs';
|
|
3
|
+
import { IonContent, IonItem } from '@ionic/angular';
|
|
4
|
+
import { APP_USER_EVENT_SERVICE } from '../user-event.service';
|
|
5
|
+
import { isNotEmptyArray, removeDuplicatesFromArray } from '../../../shared/functions';
|
|
6
|
+
import { fromScrollEndEvent } from '../../../shared/events';
|
|
7
|
+
import { waitFor } from '../../../shared/observables';
|
|
8
|
+
import { debounceTime, distinctUntilChanged, filter, first, map, switchMap } from 'rxjs/operators';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@ionic/angular";
|
|
11
|
+
import * as i2 from "../../../core/services/local-settings.service";
|
|
12
|
+
import * as i3 from "@angular/common";
|
|
13
|
+
import * as i4 from "ngx-jdenticon";
|
|
14
|
+
import * as i5 from "@angular/material/icon";
|
|
15
|
+
import * as i6 from "../../../core/icon/icon.component";
|
|
16
|
+
import * as i7 from "@ngx-translate/core";
|
|
17
|
+
import * as i8 from "../../../shared/pipes/date-format.pipe";
|
|
18
|
+
import * as i9 from "../../../shared/pipes/date-from-now.pipe";
|
|
19
|
+
import * as i10 from "../../../shared/pipes/arrays.pipe";
|
|
20
|
+
export const APP_USER_EVENT_LIST_INFINITE_SCROLL_THRESHOLD = new InjectionToken('infiniteScrollThreshold');
|
|
21
|
+
export class UserEventNotificationList {
|
|
22
|
+
cd;
|
|
23
|
+
popoverController;
|
|
24
|
+
settings;
|
|
25
|
+
userEventService;
|
|
26
|
+
infiniteScrollThresholdFromToken;
|
|
27
|
+
fetchingMore = false;
|
|
28
|
+
$items = new BehaviorSubject(undefined);
|
|
29
|
+
_subscriptions = new Subscription();
|
|
30
|
+
_fetchMoreFn;
|
|
31
|
+
_fetchMoreSubscription;
|
|
32
|
+
_$pageSize = new BehaviorSubject(20);
|
|
33
|
+
_panelElement = null;
|
|
34
|
+
titleI18n = 'SOCIAL.USER_EVENT.NOTIFICATION.TITLE';
|
|
35
|
+
sortBy = 'creationDate';
|
|
36
|
+
sortDirection = 'desc';
|
|
37
|
+
filter;
|
|
38
|
+
enableInfiniteScroll = true;
|
|
39
|
+
infiniteScrollThreshold;
|
|
40
|
+
headerActions;
|
|
41
|
+
footerActions;
|
|
42
|
+
showHeader = true;
|
|
43
|
+
showFooter = true;
|
|
44
|
+
mobile;
|
|
45
|
+
debug = false;
|
|
46
|
+
set pageSize(value) {
|
|
47
|
+
if (value > 0 && value !== this._$pageSize.value)
|
|
48
|
+
this._$pageSize.next(value);
|
|
49
|
+
}
|
|
50
|
+
$itemCount = new BehaviorSubject(undefined);
|
|
51
|
+
get pageSize() {
|
|
52
|
+
return this._$pageSize.value;
|
|
53
|
+
}
|
|
54
|
+
get hasItem$() {
|
|
55
|
+
return this.$items.pipe(map(isNotEmptyArray));
|
|
56
|
+
}
|
|
57
|
+
get itemCount$() {
|
|
58
|
+
return this.$itemCount.pipe(map((value) => value ?? 0));
|
|
59
|
+
}
|
|
60
|
+
readEvent;
|
|
61
|
+
readEvents;
|
|
62
|
+
dismiss = new EventEmitter();
|
|
63
|
+
ionContent;
|
|
64
|
+
ionItems;
|
|
65
|
+
get canFetchMore() {
|
|
66
|
+
return this.enableInfiniteScroll && !!this._fetchMoreFn;
|
|
67
|
+
}
|
|
68
|
+
constructor(cd, popoverController, settings, userEventService, infiniteScrollThresholdFromToken) {
|
|
69
|
+
this.cd = cd;
|
|
70
|
+
this.popoverController = popoverController;
|
|
71
|
+
this.settings = settings;
|
|
72
|
+
this.userEventService = userEventService;
|
|
73
|
+
this.infiniteScrollThresholdFromToken = infiniteScrollThresholdFromToken;
|
|
74
|
+
this.mobile = this.settings?.mobile || false;
|
|
75
|
+
this.infiniteScrollThreshold = infiniteScrollThresholdFromToken;
|
|
76
|
+
}
|
|
77
|
+
ngOnInit() {
|
|
78
|
+
// Watch all user events
|
|
79
|
+
if (this.userEventService) {
|
|
80
|
+
this._subscriptions.add(this._$pageSize
|
|
81
|
+
.pipe(distinctUntilChanged(), switchMap((pageSize) => this.userEventService.watchAll(0, pageSize, this.sortBy, this.sortDirection, this.filter)), first())
|
|
82
|
+
.subscribe((result) => {
|
|
83
|
+
if (this.debug)
|
|
84
|
+
console.debug(`[user-event-notification-list] Receiving ${result.total} user events`, result.data);
|
|
85
|
+
this.$items.next(result.data);
|
|
86
|
+
this.$itemCount.next(result.total ?? result.data?.length ?? 0);
|
|
87
|
+
this._fetchMoreFn = result.fetchMore;
|
|
88
|
+
this.fetchingMore = false; // Allow to refetch more
|
|
89
|
+
this.markForCheck();
|
|
90
|
+
}));
|
|
91
|
+
// Listen changes
|
|
92
|
+
this._subscriptions.add(this.userEventService
|
|
93
|
+
.listenAllChanges(this.filter)
|
|
94
|
+
.pipe(filter(isNotEmptyArray))
|
|
95
|
+
.subscribe((data) => {
|
|
96
|
+
if (this.debug)
|
|
97
|
+
console.debug(`[user-event-notification-list] Receiving ${data.length} new user events (by WS)`, data);
|
|
98
|
+
const oldItemsCount = this.$itemCount.value || 0;
|
|
99
|
+
const items = removeDuplicatesFromArray([...data, ...(this.$items.value || [])], 'id');
|
|
100
|
+
// Compute delta count
|
|
101
|
+
// When an existing event is update, the delta count should be = 0
|
|
102
|
+
const deltaCount = items.length - oldItemsCount;
|
|
103
|
+
// Update observables
|
|
104
|
+
this.$items.next(items);
|
|
105
|
+
if (deltaCount !== 0)
|
|
106
|
+
this.$itemCount.next(oldItemsCount + deltaCount);
|
|
107
|
+
}));
|
|
108
|
+
if (this.enableInfiniteScroll)
|
|
109
|
+
this.initInfiniteScroll(this.infiniteScrollThreshold);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
ngOnDestroy() {
|
|
113
|
+
this._subscriptions.unsubscribe();
|
|
114
|
+
this.$items.complete();
|
|
115
|
+
this.$itemCount.complete();
|
|
116
|
+
}
|
|
117
|
+
async click(event, userEvent) {
|
|
118
|
+
if (!userEvent)
|
|
119
|
+
return; // Skip
|
|
120
|
+
// MarkAsRead
|
|
121
|
+
this.markAsRead(event, userEvent);
|
|
122
|
+
// Get the default action (if any)
|
|
123
|
+
const defaultAction = (userEvent?.actions || []).find((a) => a.default);
|
|
124
|
+
if (defaultAction) {
|
|
125
|
+
await this.executeAction(event, defaultAction, userEvent);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
isDefaultAction(action) {
|
|
129
|
+
return (action && action.default) || false;
|
|
130
|
+
}
|
|
131
|
+
markAsRead(event, userEvent) {
|
|
132
|
+
if (userEvent?.readDate)
|
|
133
|
+
return;
|
|
134
|
+
this.readEvent?.emit(userEvent);
|
|
135
|
+
}
|
|
136
|
+
markAllAsRead(event) {
|
|
137
|
+
const unreadUserEvents = (this.$items.value || []).filter((value) => !value.readDate);
|
|
138
|
+
if (!unreadUserEvents.length)
|
|
139
|
+
return;
|
|
140
|
+
this.readEvents?.emit(unreadUserEvents);
|
|
141
|
+
}
|
|
142
|
+
async executeAction(event, action, userEvent) {
|
|
143
|
+
if (event?.defaultPrevented)
|
|
144
|
+
return; // Skip if prevented
|
|
145
|
+
// Disable default action (.e.g avoid to call click() function)
|
|
146
|
+
if (event)
|
|
147
|
+
event.preventDefault();
|
|
148
|
+
// Execute then close popover
|
|
149
|
+
try {
|
|
150
|
+
const res = action.executeAction(userEvent);
|
|
151
|
+
this.close();
|
|
152
|
+
if (res instanceof Promise)
|
|
153
|
+
await res;
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
console.error(err);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
close() {
|
|
160
|
+
if (this.dismiss.observed) {
|
|
161
|
+
this.dismiss.emit();
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
this.popoverController.dismiss();
|
|
165
|
+
}
|
|
166
|
+
// Reset counter (need if event has been received while popover if open)
|
|
167
|
+
this.userEventService?.resetCount();
|
|
168
|
+
}
|
|
169
|
+
async fetchMore(event) {
|
|
170
|
+
if (!this._fetchMoreFn || this.fetchingMore)
|
|
171
|
+
return;
|
|
172
|
+
console.debug('[user-event-notification-list] Fetching more notifications...', event);
|
|
173
|
+
this.fetchingMore = true;
|
|
174
|
+
const fetchMoreFn = this._fetchMoreFn;
|
|
175
|
+
try {
|
|
176
|
+
const result = await fetchMoreFn();
|
|
177
|
+
let data = [...(this.$items.value || []), ...result.data];
|
|
178
|
+
// Remove duplication (e.g. when new user event was added by subscription)
|
|
179
|
+
data = removeDuplicatesFromArray(data, 'id');
|
|
180
|
+
// fetch more changes (e.g. if watchAll observable as been refreshed)
|
|
181
|
+
if (fetchMoreFn !== this._fetchMoreFn)
|
|
182
|
+
return; // Skip
|
|
183
|
+
this.$items.next(data);
|
|
184
|
+
this.$itemCount.next(result.total ?? result.data?.length ?? 0);
|
|
185
|
+
this._fetchMoreFn = result.fetchMore;
|
|
186
|
+
// Update the page size, to keep same scroll height, after the next refresh
|
|
187
|
+
//this.pageSize = Math.max(this.pageSize, data.length);
|
|
188
|
+
}
|
|
189
|
+
catch (err) {
|
|
190
|
+
console.error(err);
|
|
191
|
+
this._fetchMoreFn = undefined; // Forget the function
|
|
192
|
+
}
|
|
193
|
+
finally {
|
|
194
|
+
this.markForCheck();
|
|
195
|
+
this.fetchingMore = false;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
async initInfiniteScroll(threshold) {
|
|
199
|
+
console.debug('[user-event-notification-list] Init infinite loop');
|
|
200
|
+
if (this._fetchMoreSubscription)
|
|
201
|
+
this._fetchMoreSubscription.unsubscribe();
|
|
202
|
+
threshold = threshold || (this.mobile ? '15%' : '2%');
|
|
203
|
+
await waitFor(() => !!this.ionContent, { dueTime: 250, timeout: 1000 });
|
|
204
|
+
const panel = await this.getPanelElement();
|
|
205
|
+
// Trigger fetch more, end end scroll reached
|
|
206
|
+
this._fetchMoreSubscription = this.$items
|
|
207
|
+
.pipe(debounceTime(250), filter(() => this.canFetchMore), switchMap(() => fromScrollEndEvent(panel, threshold, 250 /*force to check when no scrollbar - e.g. in large screen*/)))
|
|
208
|
+
.subscribe(() => this.fetchMore());
|
|
209
|
+
this._subscriptions.add(this._fetchMoreSubscription);
|
|
210
|
+
}
|
|
211
|
+
markForCheck() {
|
|
212
|
+
this.cd.markForCheck();
|
|
213
|
+
}
|
|
214
|
+
async getPanelElement() {
|
|
215
|
+
if (!this._panelElement) {
|
|
216
|
+
this._panelElement = await this.ionContent.getScrollElement();
|
|
217
|
+
}
|
|
218
|
+
return this._panelElement;
|
|
219
|
+
}
|
|
220
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserEventNotificationList, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.PopoverController }, { token: i2.LocalSettingsService, optional: true }, { token: APP_USER_EVENT_SERVICE, optional: true }, { token: APP_USER_EVENT_LIST_INFINITE_SCROLL_THRESHOLD, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
221
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UserEventNotificationList, selector: "app-user-event-notification-list", inputs: { titleI18n: "titleI18n", sortBy: "sortBy", sortDirection: "sortDirection", filter: "filter", enableInfiniteScroll: "enableInfiniteScroll", infiniteScrollThreshold: "infiniteScrollThreshold", headerActions: "headerActions", footerActions: "footerActions", showHeader: "showHeader", showFooter: "showFooter", mobile: "mobile", debug: "debug", pageSize: "pageSize" }, outputs: { readEvent: "readEvent", readEvents: "readEvents", dismiss: "dismiss" }, viewQueries: [{ propertyName: "ionContent", first: true, predicate: IonContent, descendants: true }, { propertyName: "ionItems", predicate: IonItem, descendants: true }], ngImport: i0, template: "<ion-content>\n <ion-list class=\"ion-list-popover\">\n\n <!-- header -->\n @if (showHeader) {\n <ion-row class=\"ion-list-header column\">\n <ion-col>\n @if (titleI18n) {\n <ion-label>{{ titleI18n | translate }}</ion-label>\n }\n </ion-col>\n <ion-col size=\"auto\" class=\"header-action\" *ngIf=\"$items | async | isNotEmptyArray\">\n <ion-text color=\"primary\">\n <a (click)=\"markAllAsRead($event)\">{{ 'SOCIAL.USER_EVENT.NOTIFICATION.READ_ALL' | translate }}</a>\n </ion-text>\n </ion-col>\n <ion-col size=\"auto\" class=\"header-action\">\n <ion-text *ngFor=\"let action of headerActions\">\n <a (click)=\"executeAction($event, action, undefined)\" [title]=\"action.title || action.name | translate\">\n {{ action.name | translate }}\n </a>\n </ion-text>\n </ion-col>\n </ion-row>\n }\n\n @for (item of $items | async; track item.id; let last = $last) {\n <ion-item\n [lines]=\"last ? 'none' : undefined\"\n [class.unread]=\"!item.readDate\"\n [class.tappable]=\"item.actions | arrayFilter: isDefaultAction | isNotEmptyArray\"\n (click)=\"click($event, item)\"\n >\n <ion-avatar slot=\"start\">\n <ion-img *ngIf=\"item.avatar; else avatarIcon\" [src]=\"item.avatar\" />\n\n <ng-template #avatarIcon>\n <app-icon\n *ngIf=\"item.avatarIcon; else generateIcon\"\n [ref]=\"item.avatarIcon\"\n height=\"40\"\n width=\"40\"\n ></app-icon>\n </ng-template>\n\n <ng-template #generateIcon>\n <div class=\"avatar\" *ngIf=\"item.avatarJdenticon\">\n <svg width=\"40\" width=\"40\" [data-jdenticon-value]=\"item.avatarJdenticon\"></svg>\n </div>\n </ng-template>\n </ion-avatar>\n\n <ion-grid class=\"ion-no-margin ion-no-padding message\">\n <ion-row>\n <ion-col size=\"12\">\n <ion-text class=\"ion-text-wrap\">\n <p [class.unread]=\"!item.readDate\" [innerHTML]=\"item.message\"></p>\n </ion-text>\n </ion-col>\n </ion-row>\n\n <!-- date -->\n <ion-row>\n <ion-col size=\"12\">\n <app-icon\n *ngIf=\"item.icon\"\n [ref]=\"item.icon\"\n height=\"16\"\n width=\"16\"\n style=\"vertical-align: sub; margin-right: 3px\"\n ></app-icon>\n <small>\n <span>{{ item.creationDate | dateFromNow }}</span>\n <span style=\"color: gray\">{{ ' | ' + (item.creationDate | dateFormat: { time: true }) }}</span>\n </small>\n </ion-col>\n </ion-row>\n\n <!-- actions -->\n <ion-row *ngIf=\"item.actions | isNotEmptyArray\">\n <ion-col></ion-col>\n <ion-col size=\"auto\">\n <ng-container *ngFor=\"let action of item.actions\">\n <a\n *ngIf=\"!action.default\"\n class=\"action\"\n (click)=\"executeAction($event, action, item)\"\n [title]=\"action.title || action.name | translate\"\n >\n <app-icon *ngIf=\"action.iconRef\" slot=\"start\" height=\"20\" width=\"20\" [ref]=\"action.iconRef\"></app-icon>\n <span>{{ action.name | translate }}</span>\n </a>\n </ng-container>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n <mat-icon slot=\"end\" *ngIf=\"item.actions | arrayFilter: isDefaultAction | isNotEmptyArray\">\n chevron_right\n </mat-icon>\n </ion-item>\n }\n <!-- loading -->\n <ng-container *ngIf=\"($items | async) === undefined; else notLoading\">\n <ng-container *ngTemplateOutlet=\"loadingItem\"></ng-container>\n </ng-container>\n\n <ng-template #notLoading>\n <!-- no result -->\n <ion-item *ngIf=\"$items | async | isEmptyArray\" lines=\"none\">\n <ion-text color=\"dark\" class=\"text-italic\">{{ 'SOCIAL.USER_EVENT.NOTIFICATION.EMPTY' | translate }}</ion-text>\n </ion-item>\n\n <!-- Fetching more -->\n <ng-container *ngIf=\"fetchingMore; else infiniteLoop\" lines=\"none\" disabled>\n <ng-container *ngTemplateOutlet=\"loadingItem\"></ng-container>\n </ng-container>\n\n <!-- Infinite loop -->\n <ng-template #infiniteLoop>\n <ng-container *ngIf=\"canFetchMore\" lines=\"none\" disabled [ngTemplateOutlet]=\"loadingItem\"></ng-container>\n </ng-template>\n </ng-template>\n\n <!-- footer -->\n @if (showFooter) {\n <ion-row class=\"ion-list-footer column\">\n <ion-col size=\"auto\" class=\"footer-action\">\n <ion-text *ngFor=\"let action of footerActions\">\n <a (click)=\"executeAction($event, action, undefined)\" [title]=\"action.title || action.name | translate\">\n {{ action.name | translate }}\n </a>\n </ion-text>\n </ion-col>\n <ion-col>\n <ion-text *ngIf=\"$itemCount | async; let count\" class=\"ion-float-end ion-padding-end\">\n <i>{{ 'COMMON.RESULT_COUNT' | translate: { count: count } }}</i>\n </ion-text>\n </ion-col>\n </ion-row>\n }\n </ion-list>\n</ion-content>\n\n\n<!-- loading -->\n<ng-template #loadingItem>\n <ion-item lines=\"none\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </ion-item>\n</ng-template>\n", styles: [":host(.popover-viewport) ion-content{overflow-y:auto;-webkit-user-select:none;user-select:none;max-height:var(--max-height)}ion-list ion-item.tappable{cursor:pointer}ion-list ion-item.tappable:hover{--ion-item-background: var(--ion-item-background-color-hover)}.message{font-size:.9em}.message p{margin-top:5px;margin-bottom:5px}.header-action{text-align:end;margin-right:8px}.header-action a{cursor:pointer;color:var(--ion-color-contrast)}.header-action a:hover{text-decoration:underline}.footer-action{text-align:start;margin-left:8px}.footer-action a{cursor:pointer;color:var(--ion-color-contrast)}.footer-action a:hover{text-decoration:underline}a.action{font-size:.9em;margin-right:10px;cursor:pointer}a.action:hover span{text-decoration:underline}a.action app-icon{vertical-align:middle}ion-avatar img,ion-avatar .avatar svg{border:1px solid rgba(var(--ion-color-secondary-rgb, .5));border-radius:50%}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1.IonAvatar, selector: "ion-avatar" }, { kind: "component", type: i1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i1.IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }, { kind: "component", type: i1.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i4.SvgJdenticonDirective, selector: "svg[data-jdenticon-hash],svg[data-jdenticon-value]", inputs: ["data-jdenticon-hash", "data-jdenticon-value", "width", "height"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.AppIconComponent, selector: "app-icon", inputs: ["icon", "matIcon", "matSvgIcon", "color", "height", "width", "ref"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "pipe", type: i8.DateFormatPipe, name: "dateFormat" }, { kind: "pipe", type: i9.DateFromNowPipe, name: "dateFromNow" }, { kind: "pipe", type: i10.NotEmptyArrayPipe, name: "isNotEmptyArray" }, { kind: "pipe", type: i10.EmptyArrayPipe, name: "isEmptyArray" }, { kind: "pipe", type: i10.ArrayFilterPipe, name: "arrayFilter" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
222
|
+
}
|
|
223
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserEventNotificationList, decorators: [{
|
|
224
|
+
type: Component,
|
|
225
|
+
args: [{ selector: 'app-user-event-notification-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-content>\n <ion-list class=\"ion-list-popover\">\n\n <!-- header -->\n @if (showHeader) {\n <ion-row class=\"ion-list-header column\">\n <ion-col>\n @if (titleI18n) {\n <ion-label>{{ titleI18n | translate }}</ion-label>\n }\n </ion-col>\n <ion-col size=\"auto\" class=\"header-action\" *ngIf=\"$items | async | isNotEmptyArray\">\n <ion-text color=\"primary\">\n <a (click)=\"markAllAsRead($event)\">{{ 'SOCIAL.USER_EVENT.NOTIFICATION.READ_ALL' | translate }}</a>\n </ion-text>\n </ion-col>\n <ion-col size=\"auto\" class=\"header-action\">\n <ion-text *ngFor=\"let action of headerActions\">\n <a (click)=\"executeAction($event, action, undefined)\" [title]=\"action.title || action.name | translate\">\n {{ action.name | translate }}\n </a>\n </ion-text>\n </ion-col>\n </ion-row>\n }\n\n @for (item of $items | async; track item.id; let last = $last) {\n <ion-item\n [lines]=\"last ? 'none' : undefined\"\n [class.unread]=\"!item.readDate\"\n [class.tappable]=\"item.actions | arrayFilter: isDefaultAction | isNotEmptyArray\"\n (click)=\"click($event, item)\"\n >\n <ion-avatar slot=\"start\">\n <ion-img *ngIf=\"item.avatar; else avatarIcon\" [src]=\"item.avatar\" />\n\n <ng-template #avatarIcon>\n <app-icon\n *ngIf=\"item.avatarIcon; else generateIcon\"\n [ref]=\"item.avatarIcon\"\n height=\"40\"\n width=\"40\"\n ></app-icon>\n </ng-template>\n\n <ng-template #generateIcon>\n <div class=\"avatar\" *ngIf=\"item.avatarJdenticon\">\n <svg width=\"40\" width=\"40\" [data-jdenticon-value]=\"item.avatarJdenticon\"></svg>\n </div>\n </ng-template>\n </ion-avatar>\n\n <ion-grid class=\"ion-no-margin ion-no-padding message\">\n <ion-row>\n <ion-col size=\"12\">\n <ion-text class=\"ion-text-wrap\">\n <p [class.unread]=\"!item.readDate\" [innerHTML]=\"item.message\"></p>\n </ion-text>\n </ion-col>\n </ion-row>\n\n <!-- date -->\n <ion-row>\n <ion-col size=\"12\">\n <app-icon\n *ngIf=\"item.icon\"\n [ref]=\"item.icon\"\n height=\"16\"\n width=\"16\"\n style=\"vertical-align: sub; margin-right: 3px\"\n ></app-icon>\n <small>\n <span>{{ item.creationDate | dateFromNow }}</span>\n <span style=\"color: gray\">{{ ' | ' + (item.creationDate | dateFormat: { time: true }) }}</span>\n </small>\n </ion-col>\n </ion-row>\n\n <!-- actions -->\n <ion-row *ngIf=\"item.actions | isNotEmptyArray\">\n <ion-col></ion-col>\n <ion-col size=\"auto\">\n <ng-container *ngFor=\"let action of item.actions\">\n <a\n *ngIf=\"!action.default\"\n class=\"action\"\n (click)=\"executeAction($event, action, item)\"\n [title]=\"action.title || action.name | translate\"\n >\n <app-icon *ngIf=\"action.iconRef\" slot=\"start\" height=\"20\" width=\"20\" [ref]=\"action.iconRef\"></app-icon>\n <span>{{ action.name | translate }}</span>\n </a>\n </ng-container>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n <mat-icon slot=\"end\" *ngIf=\"item.actions | arrayFilter: isDefaultAction | isNotEmptyArray\">\n chevron_right\n </mat-icon>\n </ion-item>\n }\n <!-- loading -->\n <ng-container *ngIf=\"($items | async) === undefined; else notLoading\">\n <ng-container *ngTemplateOutlet=\"loadingItem\"></ng-container>\n </ng-container>\n\n <ng-template #notLoading>\n <!-- no result -->\n <ion-item *ngIf=\"$items | async | isEmptyArray\" lines=\"none\">\n <ion-text color=\"dark\" class=\"text-italic\">{{ 'SOCIAL.USER_EVENT.NOTIFICATION.EMPTY' | translate }}</ion-text>\n </ion-item>\n\n <!-- Fetching more -->\n <ng-container *ngIf=\"fetchingMore; else infiniteLoop\" lines=\"none\" disabled>\n <ng-container *ngTemplateOutlet=\"loadingItem\"></ng-container>\n </ng-container>\n\n <!-- Infinite loop -->\n <ng-template #infiniteLoop>\n <ng-container *ngIf=\"canFetchMore\" lines=\"none\" disabled [ngTemplateOutlet]=\"loadingItem\"></ng-container>\n </ng-template>\n </ng-template>\n\n <!-- footer -->\n @if (showFooter) {\n <ion-row class=\"ion-list-footer column\">\n <ion-col size=\"auto\" class=\"footer-action\">\n <ion-text *ngFor=\"let action of footerActions\">\n <a (click)=\"executeAction($event, action, undefined)\" [title]=\"action.title || action.name | translate\">\n {{ action.name | translate }}\n </a>\n </ion-text>\n </ion-col>\n <ion-col>\n <ion-text *ngIf=\"$itemCount | async; let count\" class=\"ion-float-end ion-padding-end\">\n <i>{{ 'COMMON.RESULT_COUNT' | translate: { count: count } }}</i>\n </ion-text>\n </ion-col>\n </ion-row>\n }\n </ion-list>\n</ion-content>\n\n\n<!-- loading -->\n<ng-template #loadingItem>\n <ion-item lines=\"none\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </ion-item>\n</ng-template>\n", styles: [":host(.popover-viewport) ion-content{overflow-y:auto;-webkit-user-select:none;user-select:none;max-height:var(--max-height)}ion-list ion-item.tappable{cursor:pointer}ion-list ion-item.tappable:hover{--ion-item-background: var(--ion-item-background-color-hover)}.message{font-size:.9em}.message p{margin-top:5px;margin-bottom:5px}.header-action{text-align:end;margin-right:8px}.header-action a{cursor:pointer;color:var(--ion-color-contrast)}.header-action a:hover{text-decoration:underline}.footer-action{text-align:start;margin-left:8px}.footer-action a{cursor:pointer;color:var(--ion-color-contrast)}.footer-action a:hover{text-decoration:underline}a.action{font-size:.9em;margin-right:10px;cursor:pointer}a.action:hover span{text-decoration:underline}a.action app-icon{vertical-align:middle}ion-avatar img,ion-avatar .avatar svg{border:1px solid rgba(var(--ion-color-secondary-rgb, .5));border-radius:50%}\n"] }]
|
|
226
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.PopoverController }, { type: i2.LocalSettingsService, decorators: [{
|
|
227
|
+
type: Optional
|
|
228
|
+
}] }, { type: undefined, decorators: [{
|
|
229
|
+
type: Optional
|
|
230
|
+
}, {
|
|
231
|
+
type: Inject,
|
|
232
|
+
args: [APP_USER_EVENT_SERVICE]
|
|
233
|
+
}] }, { type: undefined, decorators: [{
|
|
234
|
+
type: Optional
|
|
235
|
+
}, {
|
|
236
|
+
type: Inject,
|
|
237
|
+
args: [APP_USER_EVENT_LIST_INFINITE_SCROLL_THRESHOLD]
|
|
238
|
+
}] }], propDecorators: { titleI18n: [{
|
|
239
|
+
type: Input
|
|
240
|
+
}], sortBy: [{
|
|
241
|
+
type: Input
|
|
242
|
+
}], sortDirection: [{
|
|
243
|
+
type: Input
|
|
244
|
+
}], filter: [{
|
|
245
|
+
type: Input
|
|
246
|
+
}], enableInfiniteScroll: [{
|
|
247
|
+
type: Input
|
|
248
|
+
}], infiniteScrollThreshold: [{
|
|
249
|
+
type: Input
|
|
250
|
+
}], headerActions: [{
|
|
251
|
+
type: Input
|
|
252
|
+
}], footerActions: [{
|
|
253
|
+
type: Input
|
|
254
|
+
}], showHeader: [{
|
|
255
|
+
type: Input
|
|
256
|
+
}], showFooter: [{
|
|
257
|
+
type: Input
|
|
258
|
+
}], mobile: [{
|
|
259
|
+
type: Input
|
|
260
|
+
}], debug: [{
|
|
261
|
+
type: Input
|
|
262
|
+
}], pageSize: [{
|
|
263
|
+
type: Input
|
|
264
|
+
}], readEvent: [{
|
|
265
|
+
type: Output
|
|
266
|
+
}], readEvents: [{
|
|
267
|
+
type: Output
|
|
268
|
+
}], dismiss: [{
|
|
269
|
+
type: Output
|
|
270
|
+
}], ionContent: [{
|
|
271
|
+
type: ViewChild,
|
|
272
|
+
args: [IonContent]
|
|
273
|
+
}], ionItems: [{
|
|
274
|
+
type: ViewChildren,
|
|
275
|
+
args: [IonItem]
|
|
276
|
+
}] } });
|
|
277
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC1ub3RpZmljYXRpb24ubGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvbm90aWZpY2F0aW9uL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLmxpc3QudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC91c2VyLWV2ZW50L25vdGlmaWNhdGlvbi91c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi5saXN0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixjQUFjLEVBQ2QsS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBRU4sU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZUFBZSxFQUFjLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBcUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsc0JBQXNCLEVBQXFCLE1BQU0sdUJBQXVCLENBQUM7QUFHbEYsT0FBTyxFQUFFLGVBQWUsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7QUFFbkcsTUFBTSxDQUFDLE1BQU0sNkNBQTZDLEdBQUcsSUFBSSxjQUFjLENBQVMseUJBQXlCLENBQUMsQ0FBQztBQXFCbkgs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QkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFTyxRQUFRO3NCQUFwQixLQUFLO2dCQWtCSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFFZ0IsVUFBVTtzQkFBaEMsU0FBUzt1QkFBQyxVQUFVO2dCQUNFLFFBQVE7c0JBQTlCLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJVXNlckV2ZW50LCBJVXNlckV2ZW50QWN0aW9uLCBJVXNlckV2ZW50RmlsdGVyIH0gZnJvbSAnLi4vdXNlci1ldmVudC5tb2RlbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW9uQ29udGVudCwgSW9uSXRlbSwgUG9wb3ZlckNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBBUFBfVVNFUl9FVkVOVF9TRVJWSUNFLCBJVXNlckV2ZW50U2VydmljZSB9IGZyb20gJy4uL3VzZXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBMb2NhbFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvbG9jYWwtc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBGZXRjaE1vcmVGbiwgTG9hZFJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBpc05vdEVtcHR5QXJyYXksIHJlbW92ZUR1cGxpY2F0ZXNGcm9tQXJyYXkgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IGZyb21TY3JvbGxFbmRFdmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9ldmVudHMnO1xuaW1wb3J0IHsgd2FpdEZvciB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9vYnNlcnZhYmxlcyc7XG5pbXBvcnQgeyBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIGZpcnN0LCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGNvbnN0IEFQUF9VU0VSX0VWRU5UX0xJU1RfSU5GSU5JVEVfU0NST0xMX1RIUkVTSE9MRCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdpbmZpbml0ZVNjcm9sbFRocmVzaG9sZCcpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3RPcHRpb25zPFxuICBFIGV4dGVuZHMgSVVzZXJFdmVudDxhbnk+ID0gSVVzZXJFdmVudDxhbnk+LFxuICBGIGV4dGVuZHMgSVVzZXJFdmVudEZpbHRlcjxhbnk+ID0gSVVzZXJFdmVudEZpbHRlcjxhbnk+LFxuPiB7XG4gIGRlYnVnPzogYm9vbGVhbjtcbiAgdGl0bGVJMThuPzogc3RyaW5nO1xuICByZWFkRXZlbnQ/OiBFdmVudEVtaXR0ZXI8RT47XG4gIHJlYWRFdmVudHM/OiBFdmVudEVtaXR0ZXI8RVtdPjtcbiAgZmlsdGVyPzogUGFydGlhbDxGPjtcbiAgaGVhZGVyQWN0aW9ucz86IElVc2VyRXZlbnRBY3Rpb25bXTtcbiAgZm9vdGVyQWN0aW9ucz86IElVc2VyRXZlbnRBY3Rpb25bXTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXVzZXItZXZlbnQtbm90aWZpY2F0aW9uLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1ldmVudC1ub3RpZmljYXRpb24ubGlzdC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1ldmVudC1ub3RpZmljYXRpb24ubGlzdC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBVc2VyRXZlbnROb3RpZmljYXRpb25MaXN0PEUgZXh0ZW5kcyBJVXNlckV2ZW50PGFueT4gPSBJVXNlckV2ZW50PGFueT4sIEYgZXh0ZW5kcyBJVXNlckV2ZW50RmlsdGVyPGFueT4gPSBJVXNlckV2ZW50RmlsdGVyPGFueT4+XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIFVzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3RPcHRpb25zPEUsIEY+XG57XG4gIHByb3RlY3RlZCBmZXRjaGluZ01vcmUgPSBmYWxzZTtcbiAgcHJvdGVjdGVkICRpdGVtcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RVtdPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByb3RlY3RlZCBfZmV0Y2hNb3JlRm46IEZldGNoTW9yZUZuPExvYWRSZXN1bHQ8RT4+O1xuICBwcm90ZWN0ZWQgX2ZldGNoTW9yZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcm90ZWN0ZWQgXyRwYWdlU2l6ZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigyMCk7XG4gIHByb3RlY3RlZCBfcGFuZWxFbGVtZW50OiBIVE1MRWxlbWVudCA9IG51bGw7XG5cbiAgQElucHV0KCkgdGl0bGVJMThuOiBzdHJpbmcgPSAnU09DSUFMLlVTRVJfRVZFTlQuTk9USUZJQ0FUSU9OLlRJVExFJztcbiAgQElucHV0KCkgc29ydEJ5ID0gJ2NyZWF0aW9uRGF0ZSc7XG4gIEBJbnB1dCgpIHNvcnREaXJlY3Rpb246IFNvcnREaXJlY3Rpb24gPSAnZGVzYyc7XG4gIEBJbnB1dCgpIGZpbHRlcjogUGFydGlhbDxGPjtcbiAgQElucHV0KCkgZW5hYmxlSW5maW5pdGVTY3JvbGwgPSB0cnVlO1xuICBASW5wdXQoKSBpbmZpbml0ZVNjcm9sbFRocmVzaG9sZDogc3RyaW5nO1xuICBASW5wdXQoKSBoZWFkZXJBY3Rpb25zOiBJVXNlckV2ZW50QWN0aW9uW107XG4gIEBJbnB1dCgpIGZvb3RlckFjdGlvbnM6IElVc2VyRXZlbnRBY3Rpb25bXTtcbiAgQElucHV0KCkgc2hvd0hlYWRlciA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dGb290ZXIgPSB0cnVlO1xuICBASW5wdXQoKSBtb2JpbGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRlYnVnID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2V0IHBhZ2VTaXplKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUgPiAwICYmIHZhbHVlICE9PSB0aGlzLl8kcGFnZVNpemUudmFsdWUpIHRoaXMuXyRwYWdlU2l6ZS5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gICRpdGVtQ291bnQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4odW5kZWZpbmVkKTtcblxuICBnZXQgcGFnZVNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fJHBhZ2VTaXplLnZhbHVlO1xuICB9XG5cbiAgZ2V0IGhhc0l0ZW0kKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLiRpdGVtcy5waXBlKG1hcChpc05vdEVtcHR5QXJyYXkpKTtcbiAgfVxuXG4gIGdldCBpdGVtQ291bnQkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuJGl0ZW1Db3VudC5waXBlKG1hcCgodmFsdWUpID0+IHZhbHVlID8/IDApKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSByZWFkRXZlbnQ6IEV2ZW50RW1pdHRlcjxFPjtcbiAgQE91dHB1dCgpIHJlYWRFdmVudHM6IEV2ZW50RW1pdHRlcjxFW10+O1xuICBAT3V0cHV0KCkgZGlzbWlzcyA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgQFZpZXdDaGlsZChJb25Db250ZW50KSBpb25Db250ZW50OiBJb25Db250ZW50O1xuICBAVmlld0NoaWxkcmVuKElvbkl0ZW0pIGlvbkl0ZW1zOiBRdWVyeUxpc3Q8SW9uSXRlbT47XG5cbiAgZ2V0IGNhbkZldGNoTW9yZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbmFibGVJbmZpbml0ZVNjcm9sbCAmJiAhIXRoaXMuX2ZldGNoTW9yZUZuO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgcG9wb3ZlckNvbnRyb2xsZXI6IFBvcG92ZXJDb250cm9sbGVyLFxuICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBzZXR0aW5nczogTG9jYWxTZXR0aW5nc1NlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChBUFBfVVNFUl9FVkVOVF9TRVJWSUNFKSBwdWJsaWMgdXNlckV2ZW50U2VydmljZTogSVVzZXJFdmVudFNlcnZpY2U8RSwgSVVzZXJFdmVudEZpbHRlcjxhbnk+PixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFQUF9VU0VSX0VWRU5UX0xJU1RfSU5GSU5JVEVfU0NST0xMX1RIUkVTSE9MRCkgcHVibGljIGluZmluaXRlU2Nyb2xsVGhyZXNob2xkRnJvbVRva2VuOiBzdHJpbmdcbiAgKSB7XG4gICAgdGhpcy5tb2JpbGUgPSB0aGlzLnNldHRpbmdzPy5tb2JpbGUgfHwgZmFsc2U7XG4gICAgdGhpcy5pbmZpbml0ZVNjcm9sbFRocmVzaG9sZCA9IGluZmluaXRlU2Nyb2xsVGhyZXNob2xkRnJvbVRva2VuO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gV2F0Y2ggYWxsIHVzZXIgZXZlbnRzXG4gICAgaWYgKHRoaXMudXNlckV2ZW50U2VydmljZSkge1xuICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgIHRoaXMuXyRwYWdlU2l6ZVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgocGFnZVNpemUpID0+IHRoaXMudXNlckV2ZW50U2VydmljZS53YXRjaEFsbCgwLCBwYWdlU2l6ZSwgdGhpcy5zb3J0QnksIHRoaXMuc29ydERpcmVjdGlvbiwgdGhpcy5maWx0ZXIpKSxcbiAgICAgICAgICAgIGZpcnN0KClcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgW3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLWxpc3RdIFJlY2VpdmluZyAke3Jlc3VsdC50b3RhbH0gdXNlciBldmVudHNgLCByZXN1bHQuZGF0YSk7XG4gICAgICAgICAgICB0aGlzLiRpdGVtcy5uZXh0KHJlc3VsdC5kYXRhKTtcbiAgICAgICAgICAgIHRoaXMuJGl0ZW1Db3VudC5uZXh0KHJlc3VsdC50b3RhbCA/PyByZXN1bHQuZGF0YT8ubGVuZ3RoID8/IDApO1xuICAgICAgICAgICAgdGhpcy5fZmV0Y2hNb3JlRm4gPSByZXN1bHQuZmV0Y2hNb3JlO1xuICAgICAgICAgICAgdGhpcy5mZXRjaGluZ01vcmUgPSBmYWxzZTsgLy8gQWxsb3cgdG8gcmVmZXRjaCBtb3JlXG4gICAgICAgICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgICAvLyBMaXN0ZW4gY2hhbmdlc1xuICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgIHRoaXMudXNlckV2ZW50U2VydmljZVxuICAgICAgICAgIC5saXN0ZW5BbGxDaGFuZ2VzKHRoaXMuZmlsdGVyKVxuICAgICAgICAgIC5waXBlKGZpbHRlcihpc05vdEVtcHR5QXJyYXkpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGBbdXNlci1ldmVudC1ub3RpZmljYXRpb24tbGlzdF0gUmVjZWl2aW5nICR7ZGF0YS5sZW5ndGh9IG5ldyB1c2VyIGV2ZW50cyAoYnkgV1MpYCwgZGF0YSk7XG4gICAgICAgICAgICBjb25zdCBvbGRJdGVtc0NvdW50ID0gdGhpcy4kaXRlbUNvdW50LnZhbHVlIHx8IDA7XG4gICAgICAgICAgICBjb25zdCBpdGVtcyA9IHJlbW92ZUR1cGxpY2F0ZXNGcm9tQXJyYXkoWy4uLmRhdGEsIC4uLih0aGlzLiRpdGVtcy52YWx1ZSB8fCBbXSldLCAnaWQnKTtcblxuICAgICAgICAgICAgLy8gQ29tcHV0ZSBkZWx0YSBjb3VudFxuICAgICAgICAgICAgLy8gV2hlbiBhbiBleGlzdGluZyBldmVudCBpcyB1cGRhdGUsIHRoZSBkZWx0YSBjb3VudCBzaG91bGQgYmUgPSAwXG4gICAgICAgICAgICBjb25zdCBkZWx0YUNvdW50ID0gaXRlbXMubGVuZ3RoIC0gb2xkSXRlbXNDb3VudDtcblxuICAgICAgICAgICAgLy8gVXBkYXRlIG9ic2VydmFibGVzXG4gICAgICAgICAgICB0aGlzLiRpdGVtcy5uZXh0KGl0ZW1zKTtcbiAgICAgICAgICAgIGlmIChkZWx0YUNvdW50ICE9PSAwKSB0aGlzLiRpdGVtQ291bnQubmV4dChvbGRJdGVtc0NvdW50ICsgZGVsdGFDb3VudCk7XG4gICAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIGlmICh0aGlzLmVuYWJsZUluZmluaXRlU2Nyb2xsKSB0aGlzLmluaXRJbmZpbml0ZVNjcm9sbCh0aGlzLmluZmluaXRlU2Nyb2xsVGhyZXNob2xkKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy4kaXRlbXMuY29tcGxldGUoKTtcbiAgICB0aGlzLiRpdGVtQ291bnQuY29tcGxldGUoKTtcbiAgfVxuXG4gIGFzeW5jIGNsaWNrKGV2ZW50OiBFdmVudCwgdXNlckV2ZW50OiBFKSB7XG4gICAgaWYgKCF1c2VyRXZlbnQpIHJldHVybjsgLy8gU2tpcFxuXG4gICAgLy8gTWFya0FzUmVhZFxuICAgIHRoaXMubWFya0FzUmVhZChldmVudCwgdXNlckV2ZW50KTtcblxuICAgIC8vIEdldCB0aGUgZGVmYXVsdCBhY3Rpb24gKGlmIGFueSlcbiAgICBjb25zdCBkZWZhdWx0QWN0aW9uID0gKHVzZXJFdmVudD8uYWN0aW9ucyB8fCBbXSkuZmluZCgoYSkgPT4gYS5kZWZhdWx0KTtcblxuICAgIGlmIChkZWZhdWx0QWN0aW9uKSB7XG4gICAgICBhd2FpdCB0aGlzLmV4ZWN1dGVBY3Rpb24oZXZlbnQsIGRlZmF1bHRBY3Rpb24sIHVzZXJFdmVudCk7XG4gICAgfVxuICB9XG5cbiAgaXNEZWZhdWx0QWN0aW9uKGFjdGlvbjogSVVzZXJFdmVudEFjdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoYWN0aW9uICYmIGFjdGlvbi5kZWZhdWx0KSB8fCBmYWxzZTtcbiAgfVxuXG4gIG1hcmtBc1JlYWQoZXZlbnQ6IEV2ZW50LCB1c2VyRXZlbnQ6IEUpIHtcbiAgICBpZiAodXNlckV2ZW50Py5yZWFkRGF0ZSkgcmV0dXJuO1xuICAgIHRoaXMucmVhZEV2ZW50Py5lbWl0KHVzZXJFdmVudCk7XG4gIH1cblxuICBtYXJrQWxsQXNSZWFkKGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHVucmVhZFVzZXJFdmVudHMgPSAodGhpcy4kaXRlbXMudmFsdWUgfHwgW10pLmZpbHRlcigodmFsdWUpID0+ICF2YWx1ZS5yZWFkRGF0ZSk7XG4gICAgaWYgKCF1bnJlYWRVc2VyRXZlbnRzLmxlbmd0aCkgcmV0dXJuO1xuICAgIHRoaXMucmVhZEV2ZW50cz8uZW1pdCh1bnJlYWRVc2VyRXZlbnRzKTtcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGVBY3Rpb24oZXZlbnQ6IEV2ZW50LCBhY3Rpb246IElVc2VyRXZlbnRBY3Rpb24sIHVzZXJFdmVudDogSVVzZXJFdmVudDxhbnk+KSB7XG4gICAgaWYgKGV2ZW50Py5kZWZhdWx0UHJldmVudGVkKSByZXR1cm47IC8vIFNraXAgaWYgcHJldmVudGVkXG5cbiAgICAvLyBEaXNhYmxlIGRlZmF1bHQgYWN0aW9uICguZS5nIGF2b2lkIHRvIGNhbGwgY2xpY2soKSBmdW5jdGlvbilcbiAgICBpZiAoZXZlbnQpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyBFeGVjdXRlIHRoZW4gY2xvc2UgcG9wb3ZlclxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXMgPSBhY3Rpb24uZXhlY3V0ZUFjdGlvbih1c2VyRXZlbnQpO1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgaWYgKHJlcyBpbnN0YW5jZW9mIFByb21pc2UpIGF3YWl0IHJlcztcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICBpZiAodGhpcy5kaXNtaXNzLm9ic2VydmVkKSB7XG4gICAgICB0aGlzLmRpc21pc3MuZW1pdCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBvcG92ZXJDb250cm9sbGVyLmRpc21pc3MoKTtcbiAgICB9XG5cbiAgICAvLyBSZXNldCBjb3VudGVyIChuZWVkIGlmIGV2ZW50IGhhcyBiZWVuIHJlY2VpdmVkIHdoaWxlIHBvcG92ZXIgaWYgb3BlbilcbiAgICB0aGlzLnVzZXJFdmVudFNlcnZpY2U/LnJlc2V0Q291bnQoKTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoTW9yZShldmVudD86IEN1c3RvbUV2ZW50ICYgeyB0YXJnZXQ/OiBFdmVudFRhcmdldCAmIHsgY29tcGxldGU/OiAoKSA9PiB2b2lkIH0gfSkge1xuICAgIGlmICghdGhpcy5fZmV0Y2hNb3JlRm4gfHwgdGhpcy5mZXRjaGluZ01vcmUpIHJldHVybjtcblxuICAgIGNvbnNvbGUuZGVidWcoJ1t1c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi1saXN0XSBGZXRjaGluZyBtb3JlIG5vdGlmaWNhdGlvbnMuLi4nLCBldmVudCk7XG4gICAgdGhpcy5mZXRjaGluZ01vcmUgPSB0cnVlO1xuICAgIGNvbnN0IGZldGNoTW9yZUZuID0gdGhpcy5fZmV0Y2hNb3JlRm47XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmV0Y2hNb3JlRm4oKTtcbiAgICAgIGxldCBkYXRhID0gWy4uLih0aGlzLiRpdGVtcy52YWx1ZSB8fCBbXSksIC4uLnJlc3VsdC5kYXRhXTtcblxuICAgICAgLy8gUmVtb3ZlIGR1cGxpY2F0aW9uIChlLmcuIHdoZW4gbmV3IHVzZXIgZXZlbnQgd2FzIGFkZGVkIGJ5IHN1YnNjcmlwdGlvbilcbiAgICAgIGRhdGEgPSByZW1vdmVEdXBsaWNhdGVzRnJvbUFycmF5KGRhdGEsICdpZCcpO1xuXG4gICAgICAvLyBmZXRjaCBtb3JlIGNoYW5nZXMgKGUuZy4gaWYgd2F0Y2hBbGwgb2JzZXJ2YWJsZSBhcyBiZWVuIHJlZnJlc2hlZClcbiAgICAgIGlmIChmZXRjaE1vcmVGbiAhPT0gdGhpcy5fZmV0Y2hNb3JlRm4pIHJldHVybjsgLy8gU2tpcFxuXG4gICAgICB0aGlzLiRpdGVtcy5uZXh0KGRhdGEpO1xuICAgICAgdGhpcy4kaXRlbUNvdW50Lm5leHQocmVzdWx0LnRvdGFsID8/IHJlc3VsdC5kYXRhPy5sZW5ndGggPz8gMCk7XG4gICAgICB0aGlzLl9mZXRjaE1vcmVGbiA9IHJlc3VsdC5mZXRjaE1vcmU7XG5cbiAgICAgIC8vIFVwZGF0ZSB0aGUgcGFnZSBzaXplLCB0byBrZWVwIHNhbWUgc2Nyb2xsIGhlaWdodCwgYWZ0ZXIgdGhlIG5leHQgcmVmcmVzaFxuICAgICAgLy90aGlzLnBhZ2VTaXplID0gTWF0aC5tYXgodGhpcy5wYWdlU2l6ZSwgZGF0YS5sZW5ndGgpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgdGhpcy5fZmV0Y2hNb3JlRm4gPSB1bmRlZmluZWQ7IC8vIEZvcmdldCB0aGUgZnVuY3Rpb25cbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHRoaXMuZmV0Y2hpbmdNb3JlID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGluaXRJbmZpbml0ZVNjcm9sbCh0aHJlc2hvbGQ/OiBzdHJpbmcpIHtcbiAgICBjb25zb2xlLmRlYnVnKCdbdXNlci1ldmVudC1ub3RpZmljYXRpb24tbGlzdF0gSW5pdCBpbmZpbml0ZSBsb29wJyk7XG4gICAgaWYgKHRoaXMuX2ZldGNoTW9yZVN1YnNjcmlwdGlvbikgdGhpcy5fZmV0Y2hNb3JlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cbiAgICB0aHJlc2hvbGQgPSB0aHJlc2hvbGQgfHwgKHRoaXMubW9iaWxlID8gJzE1JScgOiAnMiUnKTtcbiAgICBhd2FpdCB3YWl0Rm9yKCgpID0+ICEhdGhpcy5pb25Db250ZW50LCB7IGR1ZVRpbWU6IDI1MCwgdGltZW91dDogMTAwMCB9KTtcbiAgICBjb25zdCBwYW5lbCA9IGF3YWl0IHRoaXMuZ2V0UGFuZWxFbGVtZW50KCk7XG5cbiAgICAvLyBUcmlnZ2VyIGZldGNoIG1vcmUsIGVuZCBlbmQgc2Nyb2xsIHJlYWNoZWRcbiAgICB0aGlzLl9mZXRjaE1vcmVTdWJzY3JpcHRpb24gPSB0aGlzLiRpdGVtc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgyNTApLFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5jYW5GZXRjaE1vcmUpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gZnJvbVNjcm9sbEVuZEV2ZW50KHBhbmVsLCB0aHJlc2hvbGQsIDI1MCAvKmZvcmNlIHRvIGNoZWNrIHdoZW4gbm8gc2Nyb2xsYmFyIC0gZS5nLiBpbiBsYXJnZSBzY3JlZW4qLykpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuZmV0Y2hNb3JlKCkpO1xuXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5fZmV0Y2hNb3JlU3Vic2NyaXB0aW9uKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBtYXJrRm9yQ2hlY2soKSB7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBnZXRQYW5lbEVsZW1lbnQoKTogUHJvbWlzZTxIVE1MRWxlbWVudD4ge1xuICAgIGlmICghdGhpcy5fcGFuZWxFbGVtZW50KSB7XG4gICAgICB0aGlzLl9wYW5lbEVsZW1lbnQgPSBhd2FpdCB0aGlzLmlvbkNvbnRlbnQuZ2V0U2Nyb2xsRWxlbWVudCgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcGFuZWxFbGVtZW50O1xuICB9XG59XG4iLCI8aW9uLWNvbnRlbnQ+XG4gIDxpb24tbGlzdCBjbGFzcz1cImlvbi1saXN0LXBvcG92ZXJcIj5cblxuICAgIDwhLS0gaGVhZGVyIC0tPlxuICAgIEBpZiAoc2hvd0hlYWRlcikge1xuICAgICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tbGlzdC1oZWFkZXIgY29sdW1uXCI+XG4gICAgICAgIDxpb24tY29sPlxuICAgICAgICAgIEBpZiAodGl0bGVJMThuKSB7XG4gICAgICAgICAgICA8aW9uLWxhYmVsPnt7IHRpdGxlSTE4biB8IHRyYW5zbGF0ZSB9fTwvaW9uLWxhYmVsPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiIGNsYXNzPVwiaGVhZGVyLWFjdGlvblwiICpuZ0lmPVwiJGl0ZW1zIHwgYXN5bmMgfCBpc05vdEVtcHR5QXJyYXlcIj5cbiAgICAgICAgICA8aW9uLXRleHQgY29sb3I9XCJwcmltYXJ5XCI+XG4gICAgICAgICAgICA8YSAoY2xpY2spPVwibWFya0FsbEFzUmVhZCgkZXZlbnQpXCI+e3sgJ1NPQ0lBTC5VU0VSX0VWRU5ULk5PVElGSUNBVElPTi5SRUFEX0FMTCcgfCB0cmFuc2xhdGUgfX08L2E+XG4gICAgICAgICAgPC9pb24tdGV4dD5cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiIGNsYXNzPVwiaGVhZGVyLWFjdGlvblwiPlxuICAgICAgICAgIDxpb24tdGV4dCAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGhlYWRlckFjdGlvbnNcIj5cbiAgICAgICAgICAgIDxhIChjbGljayk9XCJleGVjdXRlQWN0aW9uKCRldmVudCwgYWN0aW9uLCB1bmRlZmluZWQpXCIgW3RpdGxlXT1cImFjdGlvbi50aXRsZSB8fCBhY3Rpb24ubmFtZSB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgICB7eyBhY3Rpb24ubmFtZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvaW9uLXRleHQ+XG4gICAgICAgIDwvaW9uLWNvbD5cbiAgICAgIDwvaW9uLXJvdz5cbiAgICB9XG5cbiAgICBAZm9yIChpdGVtIG9mICRpdGVtcyB8IGFzeW5jOyB0cmFjayBpdGVtLmlkOyBsZXQgbGFzdCA9ICRsYXN0KSB7XG4gICAgICA8aW9uLWl0ZW1cbiAgICAgICAgW2xpbmVzXT1cImxhc3QgPyAnbm9uZScgOiB1bmRlZmluZWRcIlxuICAgICAgICBbY2xhc3MudW5yZWFkXT1cIiFpdGVtLnJlYWREYXRlXCJcbiAgICAgICAgW2NsYXNzLnRhcHBhYmxlXT1cIml0ZW0uYWN0aW9ucyB8IGFycmF5RmlsdGVyOiBpc0RlZmF1bHRBY3Rpb24gfCBpc05vdEVtcHR5QXJyYXlcIlxuICAgICAgICAoY2xpY2spPVwiY2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICA+XG4gICAgICAgIDxpb24tYXZhdGFyIHNsb3Q9XCJzdGFydFwiPlxuICAgICAgICAgIDxpb24taW1nICpuZ0lmPVwiaXRlbS5hdmF0YXI7IGVsc2UgYXZhdGFySWNvblwiIFtzcmNdPVwiaXRlbS5hdmF0YXJcIiAvPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNhdmF0YXJJY29uPlxuICAgICAgICAgICAgPGFwcC1pY29uXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5hdmF0YXJJY29uOyBlbHNlIGdlbmVyYXRlSWNvblwiXG4gICAgICAgICAgICAgIFtyZWZdPVwiaXRlbS5hdmF0YXJJY29uXCJcbiAgICAgICAgICAgICAgaGVpZ2h0PVwiNDBcIlxuICAgICAgICAgICAgICB3aWR0aD1cIjQwXCJcbiAgICAgICAgICAgID48L2FwcC1pY29uPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2dlbmVyYXRlSWNvbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXJcIiAqbmdJZj1cIml0ZW0uYXZhdGFySmRlbnRpY29uXCI+XG4gICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI0MFwiIHdpZHRoPVwiNDBcIiBbZGF0YS1qZGVudGljb24tdmFsdWVdPVwiaXRlbS5hdmF0YXJKZGVudGljb25cIj48L3N2Zz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvaW9uLWF2YXRhcj5cblxuICAgICAgICA8aW9uLWdyaWQgY2xhc3M9XCJpb24tbm8tbWFyZ2luIGlvbi1uby1wYWRkaW5nIG1lc3NhZ2VcIj5cbiAgICAgICAgICA8aW9uLXJvdz5cbiAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiPlxuICAgICAgICAgICAgICA8aW9uLXRleHQgY2xhc3M9XCJpb24tdGV4dC13cmFwXCI+XG4gICAgICAgICAgICAgICAgPHAgW2NsYXNzLnVucmVhZF09XCIhaXRlbS5yZWFkRGF0ZVwiIFtpbm5lckhUTUxdPVwiaXRlbS5tZXNzYWdlXCI+PC9wPlxuICAgICAgICAgICAgICA8L2lvbi10ZXh0PlxuICAgICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICAgIDwvaW9uLXJvdz5cblxuICAgICAgICAgIDwhLS0gZGF0ZSAtLT5cbiAgICAgICAgICA8aW9uLXJvdz5cbiAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiPlxuICAgICAgICAgICAgICA8YXBwLWljb25cbiAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uaWNvblwiXG4gICAgICAgICAgICAgICAgW3JlZl09XCJpdGVtLmljb25cIlxuICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjE2XCJcbiAgICAgICAgICAgICAgICBzdHlsZT1cInZlcnRpY2FsLWFsaWduOiBzdWI7IG1hcmdpbi1yaWdodDogM3B4XCJcbiAgICAgICAgICAgICAgPjwvYXBwLWljb24+XG4gICAgICAgICAgICAgIDxzbWFsbD5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBpdGVtLmNyZWF0aW9uRGF0ZSB8IGRhdGVGcm9tTm93IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6IGdyYXlcIj57eyAnIHwgJyArIChpdGVtLmNyZWF0aW9uRGF0ZSB8IGRhdGVGb3JtYXQ6IHsgdGltZTogdHJ1ZSB9KSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgICA8L2lvbi1yb3c+XG5cbiAgICAgICAgICA8IS0tIGFjdGlvbnMgLS0+XG4gICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJpdGVtLmFjdGlvbnMgfCBpc05vdEVtcHR5QXJyYXlcIj5cbiAgICAgICAgICAgIDxpb24tY29sPjwvaW9uLWNvbD5cbiAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBpdGVtLmFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhYWN0aW9uLmRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImV4ZWN1dGVBY3Rpb24oJGV2ZW50LCBhY3Rpb24sIGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJhY3Rpb24udGl0bGUgfHwgYWN0aW9uLm5hbWUgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxhcHAtaWNvbiAqbmdJZj1cImFjdGlvbi5pY29uUmVmXCIgc2xvdD1cInN0YXJ0XCIgaGVpZ2h0PVwiMjBcIiB3aWR0aD1cIjIwXCIgW3JlZl09XCJhY3Rpb24uaWNvblJlZlwiPjwvYXBwLWljb24+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBhY3Rpb24ubmFtZSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICAgIDwvaW9uLXJvdz5cbiAgICAgICAgPC9pb24tZ3JpZD5cblxuICAgICAgICA8bWF0LWljb24gc2xvdD1cImVuZFwiICpuZ0lmPVwiaXRlbS5hY3Rpb25zIHwgYXJyYXlGaWx0ZXI6IGlzRGVmYXVsdEFjdGlvbiB8IGlzTm90RW1wdHlBcnJheVwiPlxuICAgICAgICAgIGNoZXZyb25fcmlnaHRcbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDwvaW9uLWl0ZW0+XG4gICAgfVxuICAgIDwhLS0gbG9hZGluZyAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKCRpdGVtcyB8IGFzeW5jKSA9PT0gdW5kZWZpbmVkOyBlbHNlIG5vdExvYWRpbmdcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nSXRlbVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICNub3RMb2FkaW5nPlxuICAgICAgPCEtLSBubyByZXN1bHQgLS0+XG4gICAgICA8aW9uLWl0ZW0gKm5nSWY9XCIkaXRlbXMgfCBhc3luYyB8IGlzRW1wdHlBcnJheVwiIGxpbmVzPVwibm9uZVwiPlxuICAgICAgICA8aW9uLXRleHQgY29sb3I9XCJkYXJrXCIgY2xhc3M9XCJ0ZXh0LWl0YWxpY1wiPnt7ICdTT0NJQUwuVVNFUl9FVkVOVC5OT1RJRklDQVRJT04uRU1QVFknIHwgdHJhbnNsYXRlIH19PC9pb24tdGV4dD5cbiAgICAgIDwvaW9uLWl0ZW0+XG5cbiAgICAgIDwhLS0gRmV0Y2hpbmcgbW9yZSAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmZXRjaGluZ01vcmU7IGVsc2UgaW5maW5pdGVMb29wXCIgbGluZXM9XCJub25lXCIgZGlzYWJsZWQ+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nSXRlbVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gSW5maW5pdGUgbG9vcCAtLT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjaW5maW5pdGVMb29wPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FuRmV0Y2hNb3JlXCIgbGluZXM9XCJub25lXCIgZGlzYWJsZWQgW25nVGVtcGxhdGVPdXRsZXRdPVwibG9hZGluZ0l0ZW1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwhLS0gZm9vdGVyIC0tPlxuICAgIEBpZiAoc2hvd0Zvb3Rlcikge1xuICAgICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tbGlzdC1mb290ZXIgY29sdW1uXCI+XG4gICAgICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCIgY2xhc3M9XCJmb290ZXItYWN0aW9uXCI+XG4gICAgICAgICAgPGlvbi10ZXh0ICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgZm9vdGVyQWN0aW9uc1wiPlxuICAgICAgICAgICAgPGEgKGNsaWNrKT1cImV4ZWN1dGVBY3Rpb24oJGV2ZW50LCBhY3Rpb24sIHVuZGVmaW5lZClcIiBbdGl0bGVdPVwiYWN0aW9uLnRpdGxlIHx8IGFjdGlvbi5uYW1lIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICAgIHt7IGFjdGlvbi5uYW1lIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9pb24tdGV4dD5cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8aW9uLWNvbD5cbiAgICAgICAgICA8aW9uLXRleHQgKm5nSWY9XCIkaXRlbUNvdW50IHwgYXN5bmM7IGxldCBjb3VudFwiIGNsYXNzPVwiaW9uLWZsb2F0LWVuZCBpb24tcGFkZGluZy1lbmRcIj5cbiAgICAgICAgICAgIDxpPnt7ICdDT01NT04uUkVTVUxUX0NPVU5UJyB8IHRyYW5zbGF0ZTogeyBjb3VudDogY291bnQgfSB9fTwvaT5cbiAgICAgICAgICA8L2lvbi10ZXh0PlxuICAgICAgICA8L2lvbi1jb2w+XG4gICAgICA8L2lvbi1yb3c+XG4gICAgfVxuICA8L2lvbi1saXN0PlxuPC9pb24tY29udGVudD5cblxuXG48IS0tIGxvYWRpbmcgLS0+XG48bmctdGVtcGxhdGUgI2xvYWRpbmdJdGVtPlxuICA8aW9uLWl0ZW0gbGluZXM9XCJub25lXCIgZGlzYWJsZWQ+XG4gICAgPGlvbi1za2VsZXRvbi10ZXh0IFthbmltYXRlZF09XCJ0cnVlXCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPjwvaW9uLXNrZWxldG9uLXRleHQ+XG4gIDwvaW9uLWl0ZW0+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Inject, Input, Optional, ViewChild } from '@angular/core';
|
|
2
|
+
import { APP_USER_EVENT_SERVICE } from '../user-event.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../../core/services/local-settings.service";
|
|
5
|
+
import * as i2 from "@ionic/angular";
|
|
6
|
+
import * as i3 from "@ngx-translate/core";
|
|
7
|
+
import * as i4 from "./user-event-notification.list";
|
|
8
|
+
import * as i5 from "@angular/common";
|
|
9
|
+
export class UserEventNotificationModal {
|
|
10
|
+
cd;
|
|
11
|
+
settings;
|
|
12
|
+
modalController;
|
|
13
|
+
userEventService;
|
|
14
|
+
itemCount$;
|
|
15
|
+
titleI18n = 'SOCIAL.USER_EVENT.NOTIFICATION.TITLE';
|
|
16
|
+
sortBy = 'creationDate';
|
|
17
|
+
sortDirection = 'desc';
|
|
18
|
+
filter;
|
|
19
|
+
enableInfiniteScroll = true;
|
|
20
|
+
infiniteScrollThreshold;
|
|
21
|
+
headerActions;
|
|
22
|
+
footerActions;
|
|
23
|
+
pageSize;
|
|
24
|
+
mobile;
|
|
25
|
+
debug = false;
|
|
26
|
+
list;
|
|
27
|
+
constructor(cd, settings, modalController, userEventService) {
|
|
28
|
+
this.cd = cd;
|
|
29
|
+
this.settings = settings;
|
|
30
|
+
this.modalController = modalController;
|
|
31
|
+
this.userEventService = userEventService;
|
|
32
|
+
this.mobile = settings.mobile;
|
|
33
|
+
}
|
|
34
|
+
ngOnInit() {
|
|
35
|
+
this.itemCount$ = this.list.itemCount$;
|
|
36
|
+
}
|
|
37
|
+
close() {
|
|
38
|
+
this.modalController.dismiss();
|
|
39
|
+
this.userEventService?.resetCount();
|
|
40
|
+
}
|
|
41
|
+
markForCheck() {
|
|
42
|
+
this.cd.markForCheck();
|
|
43
|
+
}
|
|
44
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserEventNotificationModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.LocalSettingsService }, { token: i2.ModalController }, { token: APP_USER_EVENT_SERVICE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UserEventNotificationModal, selector: "app-user-event-notification-modal", inputs: { titleI18n: "titleI18n", sortBy: "sortBy", sortDirection: "sortDirection", filter: "filter", enableInfiniteScroll: "enableInfiniteScroll", infiniteScrollThreshold: "infiniteScrollThreshold", headerActions: "headerActions", footerActions: "footerActions", pageSize: "pageSize", mobile: "mobile", debug: "debug" }, viewQueries: [{ propertyName: "list", first: true, predicate: ["list"], descendants: true, static: true }], ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"secondary\">\n @if (mobile) {\n <ion-buttons slot=\"start\">\n <ion-button (click)=\"close()\" visible-xs visible-sm>\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n </ion-buttons>\n }\n\n <ion-title>\n {{ titleI18n | translate }}\n @if (itemCount$ | async; as count) {\n <i>({{ count }})</i>\n }\n </ion-title>\n\n <ion-buttons slot=\"end\">\n\n @for (action of headerActions; track $index) {\n <ion-button (click)=\"list.executeAction($event, action, undefined)\" [title]=\"action.title || action.name | translate\">\n {{ action.name | translate }}\n </ion-button>\n }\n\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-not-padding\">\n <app-user-event-notification-list #list\n [showHeader]=\"false\"\n [showFooter]=\"false\"\n [sortBy]=\"sortBy\"\n [sortDirection]=\"sortDirection\"\n [filter]=\"filter\"\n [enableInfiniteScroll]=\"enableInfiniteScroll\"\n [infiniteScrollThreshold]=\"infiniteScrollThreshold\"\n [mobile]=\"mobile\"\n [debug]=\"debug\"\n (dismiss)=\"close()\"\n ></app-user-event-notification-list>\n\n</ion-content>\n\n<ion-footer>\n <ion-toolbar>\n <ion-row>\n <ion-col>\n @if (list.hasItem$ | async) {\n <ion-button\n fill=\"clear\"\n (click)=\"list.markAllAsRead($event)\"\n >\n <ion-label translate>SOCIAL.USER_EVENT.NOTIFICATION.READ_ALL</ion-label>\n </ion-button>\n }\n @for (action of footerActions; track $index) {\n <ion-button fill=\"clear\" (click)=\"list.executeAction($event, action, undefined)\" [title]=\"action.title || action.name | translate\">\n {{ action.name | translate }}\n </ion-button>\n }\n </ion-col>\n @if (!mobile) {\n <ion-col size=\"auto\" >\n <ion-button fill=\"solid\" color=\"tertiary\" (click)=\"close()\" hidden-xs hidden-sm>{{ 'COMMON.BTN_CLOSE' | translate }}</ion-button>\n </ion-col>\n }\n </ion-row>\n </ion-toolbar>\n</ion-footer>\n", dependencies: [{ kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4.UserEventNotificationList, selector: "app-user-event-notification-list", inputs: ["titleI18n", "sortBy", "sortDirection", "filter", "enableInfiniteScroll", "infiniteScrollThreshold", "headerActions", "footerActions", "showHeader", "showFooter", "mobile", "debug", "pageSize"], outputs: ["readEvent", "readEvents", "dismiss"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
46
|
+
}
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserEventNotificationModal, decorators: [{
|
|
48
|
+
type: Component,
|
|
49
|
+
args: [{ selector: 'app-user-event-notification-modal', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-header>\n <ion-toolbar color=\"secondary\">\n @if (mobile) {\n <ion-buttons slot=\"start\">\n <ion-button (click)=\"close()\" visible-xs visible-sm>\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n </ion-buttons>\n }\n\n <ion-title>\n {{ titleI18n | translate }}\n @if (itemCount$ | async; as count) {\n <i>({{ count }})</i>\n }\n </ion-title>\n\n <ion-buttons slot=\"end\">\n\n @for (action of headerActions; track $index) {\n <ion-button (click)=\"list.executeAction($event, action, undefined)\" [title]=\"action.title || action.name | translate\">\n {{ action.name | translate }}\n </ion-button>\n }\n\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-not-padding\">\n <app-user-event-notification-list #list\n [showHeader]=\"false\"\n [showFooter]=\"false\"\n [sortBy]=\"sortBy\"\n [sortDirection]=\"sortDirection\"\n [filter]=\"filter\"\n [enableInfiniteScroll]=\"enableInfiniteScroll\"\n [infiniteScrollThreshold]=\"infiniteScrollThreshold\"\n [mobile]=\"mobile\"\n [debug]=\"debug\"\n (dismiss)=\"close()\"\n ></app-user-event-notification-list>\n\n</ion-content>\n\n<ion-footer>\n <ion-toolbar>\n <ion-row>\n <ion-col>\n @if (list.hasItem$ | async) {\n <ion-button\n fill=\"clear\"\n (click)=\"list.markAllAsRead($event)\"\n >\n <ion-label translate>SOCIAL.USER_EVENT.NOTIFICATION.READ_ALL</ion-label>\n </ion-button>\n }\n @for (action of footerActions; track $index) {\n <ion-button fill=\"clear\" (click)=\"list.executeAction($event, action, undefined)\" [title]=\"action.title || action.name | translate\">\n {{ action.name | translate }}\n </ion-button>\n }\n </ion-col>\n @if (!mobile) {\n <ion-col size=\"auto\" >\n <ion-button fill=\"solid\" color=\"tertiary\" (click)=\"close()\" hidden-xs hidden-sm>{{ 'COMMON.BTN_CLOSE' | translate }}</ion-button>\n </ion-col>\n }\n </ion-row>\n </ion-toolbar>\n</ion-footer>\n" }]
|
|
50
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.LocalSettingsService }, { type: i2.ModalController }, { type: undefined, decorators: [{
|
|
51
|
+
type: Optional
|
|
52
|
+
}, {
|
|
53
|
+
type: Inject,
|
|
54
|
+
args: [APP_USER_EVENT_SERVICE]
|
|
55
|
+
}] }], propDecorators: { titleI18n: [{
|
|
56
|
+
type: Input
|
|
57
|
+
}], sortBy: [{
|
|
58
|
+
type: Input
|
|
59
|
+
}], sortDirection: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}], filter: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}], enableInfiniteScroll: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}], infiniteScrollThreshold: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], headerActions: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], footerActions: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], pageSize: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], mobile: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}], debug: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], list: [{
|
|
78
|
+
type: ViewChild,
|
|
79
|
+
args: ['list', { static: true }]
|
|
80
|
+
}] } });
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC1ub3RpZmljYXRpb24ubW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC91c2VyLWV2ZW50L25vdGlmaWNhdGlvbi91c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi5tb2RhbC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvbm90aWZpY2F0aW9uL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLm1vZGFsLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS2xJLE9BQU8sRUFBRSxzQkFBc0IsRUFBcUIsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQWNsRixNQUFNLE9BQU8sMEJBQTBCO0lBb0J6QjtJQUNBO0lBQ0E7SUFDeUM7SUFwQjNDLFVBQVUsQ0FBcUI7SUFFaEMsU0FBUyxHQUFXLHNDQUFzQyxDQUFDO0lBQzNELE1BQU0sR0FBRyxjQUFjLENBQUM7SUFDeEIsYUFBYSxHQUFrQixNQUFNLENBQUM7SUFDdEMsTUFBTSxDQUFhO0lBQ25CLG9CQUFvQixHQUFHLElBQUksQ0FBQztJQUM1Qix1QkFBdUIsQ0FBUztJQUNoQyxhQUFhLENBQXFCO0lBQ2xDLGFBQWEsQ0FBcUI7SUFDbEMsUUFBUSxDQUFTO0lBQ2pCLE1BQU0sQ0FBVTtJQUNoQixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRWMsSUFBSSxDQUFrQztJQUUzRSxZQUNZLEVBQXFCLEVBQ3JCLFFBQThCLEVBQzlCLGVBQWdDLEVBQ1MsZ0JBQTZEO1FBSHRHLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQXNCO1FBQzlCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNTLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBNkM7UUFFaEgsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QyxDQUFDO0lBRVMsS0FBSztRQUNiLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFUyxZQUFZO1FBQ3BCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQzt3R0F2Q1UsMEJBQTBCLHNIQXVCZixzQkFBc0I7NEZBdkJqQywwQkFBMEIsdWZDbkJ2QyxncUVBdUVBOzs0RkRwRGEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLG1DQUFtQyxtQkFFNUIsdUJBQXVCLENBQUMsTUFBTTs7MEJBeUI1QyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHNCQUFzQjt5Q0FsQm5DLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFK0IsSUFBSTtzQkFBeEMsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVVzZXJFdmVudCwgSVVzZXJFdmVudEFjdGlvbiwgSVVzZXJFdmVudEZpbHRlciB9IGZyb20gJy4uL3VzZXItZXZlbnQubW9kZWwnO1xuaW1wb3J0IHsgTW9kYWxDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgU29ydERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgVXNlckV2ZW50Tm90aWZpY2F0aW9uTGlzdCwgVXNlckV2ZW50Tm90aWZpY2F0aW9uTGlzdE9wdGlvbnMgfSBmcm9tICcuL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLmxpc3QnO1xuaW1wb3J0IHsgQVBQX1VTRVJfRVZFTlRfU0VSVklDRSwgSVVzZXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi91c2VyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2xvY2FsLXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJFdmVudE5vdGlmaWNhdGlvbk1vZGFsT3B0aW9uczxcbiAgRSBleHRlbmRzIElVc2VyRXZlbnQ8YW55PiA9IElVc2VyRXZlbnQ8YW55PixcbiAgRiBleHRlbmRzIElVc2VyRXZlbnRGaWx0ZXI8YW55PiA9IElVc2VyRXZlbnRGaWx0ZXI8YW55Pixcbj4gZXh0ZW5kcyBVc2VyRXZlbnROb3RpZmljYXRpb25MaXN0T3B0aW9uczxFLCBGPiB7fVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdXNlci1ldmVudC1ub3RpZmljYXRpb24tbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1ldmVudC1ub3RpZmljYXRpb24ubW9kYWwuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBVc2VyRXZlbnROb3RpZmljYXRpb25Nb2RhbDxFIGV4dGVuZHMgSVVzZXJFdmVudDxhbnk+ID0gSVVzZXJFdmVudDxhbnk+LCBGIGV4dGVuZHMgSVVzZXJFdmVudEZpbHRlcjxhbnk+ID0gSVVzZXJFdmVudEZpbHRlcjxhbnk+PlxuICBpbXBsZW1lbnRzIFVzZXJFdmVudE5vdGlmaWNhdGlvbk1vZGFsT3B0aW9uczxFLCBGPiwgT25Jbml0XG57XG4gIHByb3RlY3RlZCBpdGVtQ291bnQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgQElucHV0KCkgdGl0bGVJMThuOiBzdHJpbmcgPSAnU09DSUFMLlVTRVJfRVZFTlQuTk9USUZJQ0FUSU9OLlRJVExFJztcbiAgQElucHV0KCkgc29ydEJ5ID0gJ2NyZWF0aW9uRGF0ZSc7XG4gIEBJbnB1dCgpIHNvcnREaXJlY3Rpb246IFNvcnREaXJlY3Rpb24gPSAnZGVzYyc7XG4gIEBJbnB1dCgpIGZpbHRlcjogUGFydGlhbDxGPjtcbiAgQElucHV0KCkgZW5hYmxlSW5maW5pdGVTY3JvbGwgPSB0cnVlO1xuICBASW5wdXQoKSBpbmZpbml0ZVNjcm9sbFRocmVzaG9sZDogc3RyaW5nO1xuICBASW5wdXQoKSBoZWFkZXJBY3Rpb25zOiBJVXNlckV2ZW50QWN0aW9uW107XG4gIEBJbnB1dCgpIGZvb3RlckFjdGlvbnM6IElVc2VyRXZlbnRBY3Rpb25bXTtcbiAgQElucHV0KCkgcGFnZVNpemU6IG51bWJlcjtcbiAgQElucHV0KCkgbW9iaWxlOiBib29sZWFuO1xuICBASW5wdXQoKSBkZWJ1ZyA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ2xpc3QnLCB7IHN0YXRpYzogdHJ1ZSB9KSBsaXN0OiBVc2VyRXZlbnROb3RpZmljYXRpb25MaXN0PEUsIEY+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIHNldHRpbmdzOiBMb2NhbFNldHRpbmdzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgbW9kYWxDb250cm9sbGVyOiBNb2RhbENvbnRyb2xsZXIsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChBUFBfVVNFUl9FVkVOVF9TRVJWSUNFKSBwdWJsaWMgdXNlckV2ZW50U2VydmljZTogSVVzZXJFdmVudFNlcnZpY2U8RSwgSVVzZXJFdmVudEZpbHRlcjxhbnk+PlxuICApIHtcbiAgICB0aGlzLm1vYmlsZSA9IHNldHRpbmdzLm1vYmlsZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaXRlbUNvdW50JCA9IHRoaXMubGlzdC5pdGVtQ291bnQkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsb3NlKCkge1xuICAgIHRoaXMubW9kYWxDb250cm9sbGVyLmRpc21pc3MoKTtcbiAgICB0aGlzLnVzZXJFdmVudFNlcnZpY2U/LnJlc2V0Q291bnQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBtYXJrRm9yQ2hlY2soKSB7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIiwiPGlvbi1oZWFkZXI+XG4gIDxpb24tdG9vbGJhciBjb2xvcj1cInNlY29uZGFyeVwiPlxuICAgIEBpZiAobW9iaWxlKSB7XG4gICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCI+XG4gICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJjbG9zZSgpXCIgdmlzaWJsZS14cyB2aXNpYmxlLXNtPlxuICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImFycm93LWJhY2tcIj48L2lvbi1pY29uPlxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICA8L2lvbi1idXR0b25zPlxuICAgIH1cblxuICAgIDxpb24tdGl0bGU+XG4gICAgICB7eyB0aXRsZUkxOG4gfCB0cmFuc2xhdGUgfX1cbiAgICAgIEBpZiAoaXRlbUNvdW50JCB8IGFzeW5jOyBhcyBjb3VudCkge1xuICAgICAgICA8aT4oe3sgY291bnQgfX0pPC9pPlxuICAgICAgfVxuICAgIDwvaW9uLXRpdGxlPlxuXG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cblxuICAgICAgQGZvciAoYWN0aW9uIG9mIGhlYWRlckFjdGlvbnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwibGlzdC5leGVjdXRlQWN0aW9uKCRldmVudCwgYWN0aW9uLCB1bmRlZmluZWQpXCIgW3RpdGxlXT1cImFjdGlvbi50aXRsZSB8fCBhY3Rpb24ubmFtZSB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAge3sgYWN0aW9uLm5hbWUgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgfVxuXG4gICAgPC9pb24tYnV0dG9ucz5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWhlYWRlcj5cblxuPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLW5vdC1wYWRkaW5nXCI+XG4gIDxhcHAtdXNlci1ldmVudC1ub3RpZmljYXRpb24tbGlzdCAjbGlzdFxuICAgIFtzaG93SGVhZGVyXT1cImZhbHNlXCJcbiAgICBbc2hvd0Zvb3Rlcl09XCJmYWxzZVwiXG4gICAgW3NvcnRCeV09XCJzb3J0QnlcIlxuICAgIFtzb3J0RGlyZWN0aW9uXT1cInNvcnREaXJlY3Rpb25cIlxuICAgIFtmaWx0ZXJdPVwiZmlsdGVyXCJcbiAgICBbZW5hYmxlSW5maW5pdGVTY3JvbGxdPVwiZW5hYmxlSW5maW5pdGVTY3JvbGxcIlxuICAgIFtpbmZpbml0ZVNjcm9sbFRocmVzaG9sZF09XCJpbmZpbml0ZVNjcm9sbFRocmVzaG9sZFwiXG4gICAgW21vYmlsZV09XCJtb2JpbGVcIlxuICAgIFtkZWJ1Z109XCJkZWJ1Z1wiXG4gICAgKGRpc21pc3MpPVwiY2xvc2UoKVwiXG4gID48L2FwcC11c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi1saXN0PlxuXG48L2lvbi1jb250ZW50PlxuXG48aW9uLWZvb3Rlcj5cbiAgPGlvbi10b29sYmFyPlxuICAgIDxpb24tcm93PlxuICAgICAgPGlvbi1jb2w+XG4gICAgICAgIEBpZiAobGlzdC5oYXNJdGVtJCB8IGFzeW5jKSB7XG4gICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAoY2xpY2spPVwibGlzdC5tYXJrQWxsQXNSZWFkKCRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPlNPQ0lBTC5VU0VSX0VWRU5ULk5PVElGSUNBVElPTi5SRUFEX0FMTDwvaW9uLWxhYmVsPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgICBAZm9yIChhY3Rpb24gb2YgZm9vdGVyQWN0aW9uczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgKGNsaWNrKT1cImxpc3QuZXhlY3V0ZUFjdGlvbigkZXZlbnQsIGFjdGlvbiwgdW5kZWZpbmVkKVwiIFt0aXRsZV09XCJhY3Rpb24udGl0bGUgfHwgYWN0aW9uLm5hbWUgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgICAge3sgYWN0aW9uLm5hbWUgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvaW9uLWNvbD5cbiAgICAgIEBpZiAoIW1vYmlsZSkge1xuICAgICAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiID5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwic29saWRcIiBjb2xvcj1cInRlcnRpYXJ5XCIgKGNsaWNrKT1cImNsb3NlKClcIiBoaWRkZW4teHMgaGlkZGVuLXNtPnt7ICdDT01NT04uQlROX0NMT1NFJyB8IHRyYW5zbGF0ZSB9fTwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgfVxuICAgIDwvaW9uLXJvdz5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWZvb3Rlcj5cbiJdfQ==
|