@sumaris-net/ngx-components 2.18.0-beta9 → 2.21.0-rc1
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/README.md +3 -0
- package/doc/build.md +14 -14
- package/doc/changelog.md +1386 -88
- package/doc/feed/feed-en.json +26 -0
- package/doc/feed/feed-fr.json +28 -0
- package/fesm2022/sumaris-net.ngx-components.mjs +32423 -22727
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +42 -39
- package/src/assets/environments/environment-test.json +2 -2
- package/src/assets/i18n/en-US.json +143 -45
- package/src/assets/i18n/en.json +142 -43
- package/src/assets/i18n/fr.json +147 -47
- package/src/assets/manifest.json +1 -1
- package/src/theme/_icons.scss +8 -12
- package/src/theme/_ionic.globals.scss +8 -1
- package/src/theme/_markdown.scss +1 -1
- package/src/theme/_material.globals.scss +4 -1
- package/src/theme/_material.scss +60 -17
- package/src/theme/_mixins.scss +39 -4
- package/src/theme/_ngx-components.forms.scss +115 -89
- package/src/theme/_ngx-components.globals.scss +4 -1
- package/src/theme/_ngx-components.scss +162 -110
- package/src/theme/_ngx-components.table.scss +105 -44
- package/src/theme/_ngx-components.tabs.scss +46 -14
- package/src/theme/_responsive.scss +15 -0
- package/src/theme/_roboto.scss +3 -0
- package/src/theme/_theme.scss +11 -14
- package/src/theme/_theme.variables.scss +7 -3
- package/src/theme/ionic/ionic.functions.color.scss +13 -5
- package/src/theme/ionic/ionic.globals.scss +4 -4
- package/src/theme/ionic/ionic.theme.default.scss +2 -0
- package/types/sumaris-net.ngx-components.d.ts +14132 -0
- package/esm2022/public_api.mjs +0 -358
- package/esm2022/src/app/admin/admin-routing.module.mjs +0 -34
- package/esm2022/src/app/admin/admin.module.mjs +0 -32
- package/esm2022/src/app/admin/services/filter/person.filter.mjs +0 -69
- package/esm2022/src/app/admin/services/person.service.mjs +0 -174
- package/esm2022/src/app/admin/services/validator/person.validator.mjs +0 -72
- package/esm2022/src/app/admin/users/users.mjs +0 -267
- package/esm2022/src/app/admin/users/users.module.mjs +0 -56
- package/esm2022/src/app/core/about/about.modal.mjs +0 -84
- package/esm2022/src/app/core/about/about.module.mjs +0 -21
- package/esm2022/src/app/core/account/account.module.mjs +0 -68
- package/esm2022/src/app/core/account/account.page.mjs +0 -351
- package/esm2022/src/app/core/account/new-token.modal.mjs +0 -132
- package/esm2022/src/app/core/account/password/change-password.form.mjs +0 -60
- package/esm2022/src/app/core/account/password/change-password.module.mjs +0 -22
- package/esm2022/src/app/core/account/password/change-password.page.mjs +0 -144
- package/esm2022/src/app/core/account/token.table.mjs +0 -152
- package/esm2022/src/app/core/auth/auth.form.mjs +0 -159
- package/esm2022/src/app/core/auth/auth.modal.mjs +0 -76
- package/esm2022/src/app/core/auth/auth.module.mjs +0 -56
- package/esm2022/src/app/core/auth/reset-password.modal.mjs +0 -77
- package/esm2022/src/app/core/core.module.mjs +0 -151
- package/esm2022/src/app/core/core.testing.module.mjs +0 -107
- package/esm2022/src/app/core/form/array/form-array.mjs +0 -325
- package/esm2022/src/app/core/form/array/testing/form-array-test.module.mjs +0 -23
- package/esm2022/src/app/core/form/array/testing/form-array.test.mjs +0 -94
- package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +0 -108
- package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +0 -31
- package/esm2022/src/app/core/form/entity/editor.class.mjs +0 -265
- package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +0 -420
- package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +0 -731
- package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +0 -24
- package/esm2022/src/app/core/form/entity/entity.module.mjs +0 -32
- package/esm2022/src/app/core/form/entity/tab-editor.class.mjs +0 -194
- package/esm2022/src/app/core/form/form-container.class.mjs +0 -327
- package/esm2022/src/app/core/form/form.class.mjs +0 -336
- package/esm2022/src/app/core/form/form.module.mjs +0 -70
- package/esm2022/src/app/core/form/form.utils.mjs +0 -197
- package/esm2022/src/app/core/form/list/list.form.mjs +0 -235
- package/esm2022/src/app/core/form/list/list.module.mjs +0 -31
- package/esm2022/src/app/core/form/properties/properties.form.mjs +0 -225
- package/esm2022/src/app/core/form/properties/properties.module.mjs +0 -37
- package/esm2022/src/app/core/form/properties/properties.table.mjs +0 -268
- package/esm2022/src/app/core/form/properties/properties.utils.mjs +0 -60
- package/esm2022/src/app/core/form/properties/property.validator.mjs +0 -38
- package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +0 -95
- package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +0 -23
- package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +0 -73
- package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +0 -30
- package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +0 -152
- package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +0 -31
- package/esm2022/src/app/core/form/username/username.form.mjs +0 -52
- package/esm2022/src/app/core/form/username/username.module.mjs +0 -20
- package/esm2022/src/app/core/graphql/graphql.module.mjs +0 -14
- package/esm2022/src/app/core/graphql/graphql.service.mjs +0 -783
- package/esm2022/src/app/core/graphql/graphql.utils.mjs +0 -119
- package/esm2022/src/app/core/home/home.mjs +0 -311
- package/esm2022/src/app/core/home/home.module.mjs +0 -42
- package/esm2022/src/app/core/icon/icon.component.mjs +0 -40
- package/esm2022/src/app/core/icon/icon.module.mjs +0 -20
- package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +0 -354
- package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +0 -31
- package/esm2022/src/app/core/menu/menu.component.mjs +0 -263
- package/esm2022/src/app/core/menu/menu.model.mjs +0 -272
- package/esm2022/src/app/core/menu/menu.module.mjs +0 -47
- package/esm2022/src/app/core/menu/menu.service.mjs +0 -655
- package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +0 -109
- package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +0 -49
- package/esm2022/src/app/core/menu/testing/menu.testing.mjs +0 -157
- package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +0 -60
- package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +0 -28
- package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +0 -31
- package/esm2022/src/app/core/peer/select-peer.modal.mjs +0 -203
- package/esm2022/src/app/core/peer/select-peer.module.mjs +0 -30
- package/esm2022/src/app/core/register/register-confirm.page.mjs +0 -90
- package/esm2022/src/app/core/register/register.form.mjs +0 -194
- package/esm2022/src/app/core/register/register.modal.mjs +0 -55
- package/esm2022/src/app/core/register/register.module.mjs +0 -23
- package/esm2022/src/app/core/services/account.service.mjs +0 -1346
- package/esm2022/src/app/core/services/auth-guard.service.mjs +0 -74
- package/esm2022/src/app/core/services/base-entity-service.class.mjs +0 -473
- package/esm2022/src/app/core/services/base-graphql-service.class.mjs +0 -230
- package/esm2022/src/app/core/services/base58.mjs +0 -83
- package/esm2022/src/app/core/services/config/core.config.mjs +0 -233
- package/esm2022/src/app/core/services/config.service.mjs +0 -384
- package/esm2022/src/app/core/services/crypto.service.mjs +0 -107
- package/esm2022/src/app/core/services/errors.mjs +0 -52
- package/esm2022/src/app/core/services/local-settings.service.mjs +0 -482
- package/esm2022/src/app/core/services/model/account.model.mjs +0 -150
- package/esm2022/src/app/core/services/model/config.model.mjs +0 -107
- package/esm2022/src/app/core/services/model/department.model.mjs +0 -35
- package/esm2022/src/app/core/services/model/entity.decorators.mjs +0 -97
- package/esm2022/src/app/core/services/model/entity.model.mjs +0 -224
- package/esm2022/src/app/core/services/model/filter.model.mjs +0 -93
- package/esm2022/src/app/core/services/model/history.model.mjs +0 -2
- package/esm2022/src/app/core/services/model/model.enum.mjs +0 -11
- package/esm2022/src/app/core/services/model/peer.model.mjs +0 -93
- package/esm2022/src/app/core/services/model/person.model.mjs +0 -114
- package/esm2022/src/app/core/services/model/referential.model.mjs +0 -202
- package/esm2022/src/app/core/services/model/settings.model.mjs +0 -4
- package/esm2022/src/app/core/services/model/token.model.mjs +0 -56
- package/esm2022/src/app/core/services/model/tree-item-entity.model.mjs +0 -195
- package/esm2022/src/app/core/services/network.service.mjs +0 -631
- package/esm2022/src/app/core/services/network.types.mjs +0 -20
- package/esm2022/src/app/core/services/network.utils.mjs +0 -15
- package/esm2022/src/app/core/services/pipes/account.pipes.mjs +0 -38
- package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +0 -23
- package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +0 -23
- package/esm2022/src/app/core/services/pipes/pipes.module.mjs +0 -54
- package/esm2022/src/app/core/services/pipes/referential-to-string.pipe.mjs +0 -21
- package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +0 -37
- package/esm2022/src/app/core/services/platform.service.mjs +0 -583
- package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +0 -427
- package/esm2022/src/app/core/services/storage/entity-store.class.mjs +0 -449
- package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +0 -25
- package/esm2022/src/app/core/services/testing/referential.validator.mjs +0 -46
- package/esm2022/src/app/core/services/validator/account.validator.mjs +0 -45
- package/esm2022/src/app/core/services/validator/base.validator.class.mjs +0 -49
- package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +0 -81
- package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +0 -27
- package/esm2022/src/app/core/services/validator/user-token.validator.mjs +0 -55
- package/esm2022/src/app/core/settings/settings.module.mjs +0 -22
- package/esm2022/src/app/core/settings/settings.page.mjs +0 -341
- package/esm2022/src/app/core/table/async-table.class.mjs +0 -1753
- package/esm2022/src/app/core/table/column/actions-column.component.mjs +0 -127
- package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +0 -117
- package/esm2022/src/app/core/table/column/row-field.component.mjs +0 -116
- package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +0 -384
- package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +0 -401
- package/esm2022/src/app/core/table/memory-table.class.mjs +0 -57
- package/esm2022/src/app/core/table/table-select-columns.component.mjs +0 -46
- package/esm2022/src/app/core/table/table.class.mjs +0 -1816
- package/esm2022/src/app/core/table/table.model.mjs +0 -16
- package/esm2022/src/app/core/table/table.module.mjs +0 -51
- package/esm2022/src/app/core/table/table.pipes.mjs +0 -77
- package/esm2022/src/app/core/table/table.utils.mjs +0 -31
- package/esm2022/src/app/core/table/testing/table-validator.service.mjs +0 -32
- package/esm2022/src/app/core/table/testing/table.testing.mjs +0 -329
- package/esm2022/src/app/core/table/testing/table.testing.module.mjs +0 -25
- package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +0 -25
- package/esm2022/src/app/core/table/testing/table2.testing.mjs +0 -273
- package/esm2022/src/app/shared/alerts.mjs +0 -243
- package/esm2022/src/app/shared/audio/audio.mjs +0 -249
- package/esm2022/src/app/shared/audio/audio.testing.mjs +0 -32
- package/esm2022/src/app/shared/audio/audio.testing.module.mjs +0 -30
- package/esm2022/src/app/shared/capacitor/keyboard.mjs +0 -42
- package/esm2022/src/app/shared/capacitor/plugins.mjs +0 -9
- package/esm2022/src/app/shared/constants.mjs +0 -16
- package/esm2022/src/app/shared/dates.mjs +0 -151
- package/esm2022/src/app/shared/debug/debug-service.class.mjs +0 -3
- package/esm2022/src/app/shared/debug/debug.component.mjs +0 -40
- package/esm2022/src/app/shared/debug/debug.module.mjs +0 -23
- package/esm2022/src/app/shared/directives/autofocus.directive.mjs +0 -91
- package/esm2022/src/app/shared/directives/autotitle.directive.mjs +0 -32
- package/esm2022/src/app/shared/directives/directives.module.mjs +0 -22
- package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +0 -52
- package/esm2022/src/app/shared/directives/ng-var.directive.mjs +0 -33
- package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +0 -62
- package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +0 -45
- package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +0 -17
- package/esm2022/src/app/shared/events.mjs +0 -63
- package/esm2022/src/app/shared/file/csv.utils.mjs +0 -92
- package/esm2022/src/app/shared/file/file.service.mjs +0 -118
- package/esm2022/src/app/shared/file/file.utils.mjs +0 -115
- package/esm2022/src/app/shared/file/images.utils.mjs +0 -186
- package/esm2022/src/app/shared/file/json.utils.mjs +0 -58
- package/esm2022/src/app/shared/file/uri.utils.mjs +0 -24
- package/esm2022/src/app/shared/focusable.mjs +0 -6
- package/esm2022/src/app/shared/form/field.component.mjs +0 -379
- package/esm2022/src/app/shared/form/field.model.mjs +0 -25
- package/esm2022/src/app/shared/form/loading-spinner.mjs +0 -35
- package/esm2022/src/app/shared/forms.mjs +0 -480
- package/esm2022/src/app/shared/functions.mjs +0 -551
- package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +0 -82
- package/esm2022/src/app/shared/gesture/gesture-config.mjs +0 -46
- package/esm2022/src/app/shared/gesture/hammer.utils.mjs +0 -2
- package/esm2022/src/app/shared/graph/colors.utils.mjs +0 -60
- package/esm2022/src/app/shared/graph/graph-colors.mjs +0 -213
- package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +0 -59
- package/esm2022/src/app/shared/help/help.modal.mjs +0 -63
- package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +0 -23
- package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +0 -112
- package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +0 -24
- package/esm2022/src/app/shared/http/http.utils.mjs +0 -56
- package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +0 -388
- package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +0 -62
- package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +0 -26
- package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +0 -87
- package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +0 -37
- package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +0 -59
- package/esm2022/src/app/shared/image/image.model.mjs +0 -2
- package/esm2022/src/app/shared/image/image.module.mjs +0 -24
- package/esm2022/src/app/shared/image/image.service.mjs +0 -106
- package/esm2022/src/app/shared/inputs.mjs +0 -263
- package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +0 -27
- package/esm2022/src/app/shared/logging/log-level.model.mjs +0 -48
- package/esm2022/src/app/shared/logging/logger.model.mjs +0 -47
- package/esm2022/src/app/shared/logging/logging-service.class.mjs +0 -125
- package/esm2022/src/app/shared/logging/logging-service.config.mjs +0 -2
- package/esm2022/src/app/shared/logging/logging-service.module.mjs +0 -30
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +0 -46
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +0 -1071
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +0 -79
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +0 -18
- package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +0 -231
- package/esm2022/src/app/shared/material/badge/badge.directive.mjs +0 -251
- package/esm2022/src/app/shared/material/badge/badge.module.mjs +0 -20
- package/esm2022/src/app/shared/material/badge/badge.test.mjs +0 -42
- package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +0 -71
- package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +0 -376
- package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +0 -61
- package/esm2022/src/app/shared/material/chips/chips.module.mjs +0 -75
- package/esm2022/src/app/shared/material/chips/material.chips.mjs +0 -779
- package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +0 -147
- package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +0 -76
- package/esm2022/src/app/shared/material/datetime/material.date.mjs +0 -471
- package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +0 -457
- package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +0 -681
- package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +0 -136
- package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +0 -127
- package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +0 -118
- package/esm2022/src/app/shared/material/duration/duration.module.mjs +0 -65
- package/esm2022/src/app/shared/material/duration/duration.utils.mjs +0 -33
- package/esm2022/src/app/shared/material/duration/material.duration.mjs +0 -274
- package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +0 -80
- package/esm2022/src/app/shared/material/latlong/latlong.utils.mjs +0 -313
- package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +0 -381
- package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +0 -67
- package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +0 -118
- package/esm2022/src/app/shared/material/material.animations.mjs +0 -143
- package/esm2022/src/app/shared/material/material.config.mjs +0 -3
- package/esm2022/src/app/shared/material/material.module.mjs +0 -229
- package/esm2022/src/app/shared/material/material.testing.module.mjs +0 -234
- package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +0 -51
- package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +0 -23
- package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +0 -375
- package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +0 -52
- package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +0 -67
- package/esm2022/src/app/shared/material/testing/common.test.mjs +0 -111
- package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +0 -42
- package/esm2022/src/app/shared/material/text/text-form.component.mjs +0 -204
- package/esm2022/src/app/shared/material/text/text-form.module.mjs +0 -63
- package/esm2022/src/app/shared/modules.mjs +0 -12
- package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +0 -303
- package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +0 -49
- package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +0 -24
- package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +0 -69
- package/esm2022/src/app/shared/named-filter/testing/named-filter-selector.testing.mjs +0 -74
- package/esm2022/src/app/shared/named-filter/testing/named-filter.testing.module.mjs +0 -28
- package/esm2022/src/app/shared/observables.mjs +0 -100
- package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +0 -156
- package/esm2022/src/app/shared/pipes/badge.pipes.mjs +0 -24
- package/esm2022/src/app/shared/pipes/colors.pipe.mjs +0 -29
- package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +0 -49
- package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +0 -72
- package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +0 -28
- package/esm2022/src/app/shared/pipes/duration.pipe.mjs +0 -36
- package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +0 -53
- package/esm2022/src/app/shared/pipes/form.pipes.mjs +0 -219
- package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +0 -48
- package/esm2022/src/app/shared/pipes/html.pipes.mjs +0 -52
- package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +0 -42
- package/esm2022/src/app/shared/pipes/maps.pipe.mjs +0 -63
- package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +0 -67
- package/esm2022/src/app/shared/pipes/math.pipes.mjs +0 -59
- package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +0 -19
- package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +0 -30
- package/esm2022/src/app/shared/pipes/pipes.module.mjs +0 -236
- package/esm2022/src/app/shared/pipes/property.pipes.mjs +0 -136
- package/esm2022/src/app/shared/pipes/selection.pipes.mjs +0 -180
- package/esm2022/src/app/shared/pipes/string.pipes.mjs +0 -136
- package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +0 -44
- package/esm2022/src/app/shared/pipes/types.pipes.mjs +0 -74
- package/esm2022/src/app/shared/platforms.mjs +0 -45
- package/esm2022/src/app/shared/rx-state.module.mjs +0 -19
- package/esm2022/src/app/shared/services/entity-service.class.mjs +0 -7
- package/esm2022/src/app/shared/services/job.utils.mjs +0 -92
- package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +0 -349
- package/esm2022/src/app/shared/services/progress-bar.service.mjs +0 -31
- package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +0 -118
- package/esm2022/src/app/shared/services/startable-service.class.mjs +0 -107
- package/esm2022/src/app/shared/services/translate-context.service.mjs +0 -107
- package/esm2022/src/app/shared/services/validator-service.class.mjs +0 -2
- package/esm2022/src/app/shared/services.mjs +0 -62
- package/esm2022/src/app/shared/shared-routing.module.mjs +0 -72
- package/esm2022/src/app/shared/shared.module.mjs +0 -234
- package/esm2022/src/app/shared/shared.testing.module.mjs +0 -100
- package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +0 -279
- package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +0 -42
- package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +0 -27
- package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +0 -25
- package/esm2022/src/app/shared/storage/storage.service.mjs +0 -134
- package/esm2022/src/app/shared/storage/storage.utils.mjs +0 -13
- package/esm2022/src/app/shared/testing/maskito.test.mjs +0 -41
- package/esm2022/src/app/shared/testing/observable.test.mjs +0 -94
- package/esm2022/src/app/shared/testing/tests.page.mjs +0 -37
- package/esm2022/src/app/shared/toast/toast.testing.mjs +0 -52
- package/esm2022/src/app/shared/toast/toast.testing.module.mjs +0 -30
- package/esm2022/src/app/shared/toast/toasts.mjs +0 -144
- package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +0 -62
- package/esm2022/src/app/shared/toolbar/toolbar.mjs +0 -263
- package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +0 -26
- package/esm2022/src/app/shared/types.mjs +0 -2
- package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +0 -59
- package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +0 -30
- package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +0 -106
- package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +0 -213
- package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +0 -26
- package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +0 -114
- package/esm2022/src/app/shared/validator/validators.mjs +0 -601
- package/esm2022/src/app/shared/version/versions.mjs +0 -81
- package/esm2022/src/app/social/job/job.module.mjs +0 -23
- package/esm2022/src/app/social/job/progression/job-progression.component.mjs +0 -35
- package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +0 -235
- package/esm2022/src/app/social/job/progression/job-progression.list.mjs +0 -47
- package/esm2022/src/app/social/job/progression/job-progression.model.mjs +0 -29
- package/esm2022/src/app/social/job/progression/job-progression.service.mjs +0 -91
- package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +0 -38
- package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +0 -34
- package/esm2022/src/app/social/job/testing/job.testing.module.mjs +0 -22
- package/esm2022/src/app/social/message/message.form.mjs +0 -140
- package/esm2022/src/app/social/message/message.modal.mjs +0 -110
- package/esm2022/src/app/social/message/message.model.mjs +0 -75
- package/esm2022/src/app/social/message/message.module.mjs +0 -22
- package/esm2022/src/app/social/message/message.service.mjs +0 -110
- package/esm2022/src/app/social/social.errors.mjs +0 -10
- package/esm2022/src/app/social/social.module.mjs +0 -22
- package/esm2022/src/app/social/social.testing.module.mjs +0 -40
- package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +0 -127
- package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +0 -260
- package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +0 -257
- package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +0 -129
- package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +0 -22
- package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +0 -128
- package/esm2022/src/app/social/user-event/user-event.model.mjs +0 -2
- package/esm2022/src/app/social/user-event/user-event.module.mjs +0 -23
- package/esm2022/src/app/social/user-event/user-event.service.mjs +0 -509
- package/esm2022/src/environments/environment.class.mjs +0 -57
- package/esm2022/src/environments/environment.loader.mjs +0 -77
- package/esm2022/src/environments/environment.mjs +0 -105
- package/esm2022/sumaris-net.ngx-components.mjs +0 -5
- package/index.d.ts +0 -5
- package/public_api.d.ts +0 -322
- package/src/app/admin/admin-routing.module.d.ts +0 -9
- package/src/app/admin/admin.module.d.ts +0 -10
- package/src/app/admin/services/filter/person.filter.d.ts +0 -21
- package/src/app/admin/services/person.service.d.ts +0 -49
- package/src/app/admin/services/validator/person.validator.d.ts +0 -23
- package/src/app/admin/users/users.d.ts +0 -45
- package/src/app/admin/users/users.module.d.ts +0 -14
- package/src/app/core/about/about.modal.d.ts +0 -32
- package/src/app/core/about/about.module.d.ts +0 -10
- package/src/app/core/account/account.module.d.ts +0 -16
- package/src/app/core/account/account.page.d.ts +0 -80
- package/src/app/core/account/new-token.modal.d.ts +0 -41
- package/src/app/core/account/password/change-password.form.d.ts +0 -19
- package/src/app/core/account/password/change-password.module.d.ts +0 -11
- package/src/app/core/account/password/change-password.page.d.ts +0 -36
- package/src/app/core/account/token.table.d.ts +0 -27
- package/src/app/core/auth/auth.form.d.ts +0 -38
- package/src/app/core/auth/auth.modal.d.ts +0 -24
- package/src/app/core/auth/auth.module.d.ts +0 -13
- package/src/app/core/auth/reset-password.modal.d.ts +0 -26
- package/src/app/core/core.module.d.ts +0 -28
- package/src/app/core/core.testing.module.d.ts +0 -15
- package/src/app/core/form/array/form-array.d.ts +0 -136
- package/src/app/core/form/array/testing/form-array-test.module.d.ts +0 -12
- package/src/app/core/form/array/testing/form-array.test.d.ts +0 -26
- package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +0 -37
- package/src/app/core/form/buttons/form-buttons-bar.module.d.ts +0 -9
- package/src/app/core/form/entity/editor.class.d.ts +0 -83
- package/src/app/core/form/entity/entity-editor-modal.class.d.ts +0 -126
- package/src/app/core/form/entity/entity-editor.class.d.ts +0 -204
- package/src/app/core/form/entity/entity-metadata.component.d.ts +0 -13
- package/src/app/core/form/entity/entity.module.d.ts +0 -10
- package/src/app/core/form/entity/tab-editor.class.d.ts +0 -70
- package/src/app/core/form/form-container.class.d.ts +0 -126
- package/src/app/core/form/form.class.d.ts +0 -144
- package/src/app/core/form/form.module.d.ts +0 -14
- package/src/app/core/form/form.utils.d.ts +0 -251
- package/src/app/core/form/list/list.form.d.ts +0 -81
- package/src/app/core/form/list/list.module.d.ts +0 -9
- package/src/app/core/form/properties/properties.form.d.ts +0 -66
- package/src/app/core/form/properties/properties.module.d.ts +0 -11
- package/src/app/core/form/properties/properties.table.d.ts +0 -78
- package/src/app/core/form/properties/properties.utils.d.ts +0 -27
- package/src/app/core/form/properties/property.validator.d.ts +0 -19
- package/src/app/core/form/properties/testing/properties-form.test.d.ts +0 -19
- package/src/app/core/form/properties/testing/properties-form.testing.module.d.ts +0 -12
- package/src/app/core/form/text-popover/testing/text-popover.testing.d.ts +0 -16
- package/src/app/core/form/text-popover/testing/text-popover.testing.module.d.ts +0 -11
- package/src/app/core/form/text-popover/text-popover.component.d.ts +0 -71
- package/src/app/core/form/text-popover/text-popover.module.d.ts +0 -9
- package/src/app/core/form/username/username.form.d.ts +0 -19
- package/src/app/core/form/username/username.module.d.ts +0 -9
- package/src/app/core/graphql/graphql.module.d.ts +0 -7
- package/src/app/core/graphql/graphql.service.d.ts +0 -147
- package/src/app/core/graphql/graphql.utils.d.ts +0 -42
- package/src/app/core/home/home.d.ts +0 -94
- package/src/app/core/home/home.module.d.ts +0 -13
- package/src/app/core/icon/icon.component.d.ts +0 -13
- package/src/app/core/icon/icon.module.d.ts +0 -9
- package/src/app/core/install/install-upgrade-card.component.d.ts +0 -64
- package/src/app/core/install/install-upgrade-card.module.d.ts +0 -9
- package/src/app/core/menu/menu.component.d.ts +0 -69
- package/src/app/core/menu/menu.model.d.ts +0 -144
- package/src/app/core/menu/menu.module.d.ts +0 -12
- package/src/app/core/menu/menu.service.d.ts +0 -94
- package/src/app/core/menu/sub-menu-tab.directive.d.ts +0 -29
- package/src/app/core/menu/testing/menu-other.testing.d.ts +0 -15
- package/src/app/core/menu/testing/menu.testing.d.ts +0 -51
- package/src/app/core/menu/testing/menu.testing.module.d.ts +0 -12
- package/src/app/core/offline/update-offline-mode-card.component.d.ts +0 -11
- package/src/app/core/offline/update-offline-mode-card.module.d.ts +0 -9
- package/src/app/core/peer/select-peer.modal.d.ts +0 -60
- package/src/app/core/peer/select-peer.module.d.ts +0 -10
- package/src/app/core/register/register-confirm.page.d.ts +0 -24
- package/src/app/core/register/register.form.d.ts +0 -49
- package/src/app/core/register/register.modal.d.ts +0 -14
- package/src/app/core/register/register.module.d.ts +0 -12
- package/src/app/core/services/account.service.d.ts +0 -205
- package/src/app/core/services/auth-guard.service.d.ts +0 -17
- package/src/app/core/services/base-entity-service.class.d.ts +0 -123
- package/src/app/core/services/base-graphql-service.class.d.ts +0 -77
- package/src/app/core/services/base58.d.ts +0 -7
- package/src/app/core/services/config/core.config.d.ts +0 -41
- package/src/app/core/services/config.service.d.ts +0 -63
- package/src/app/core/services/crypto.service.d.ts +0 -44
- package/src/app/core/services/errors.d.ts +0 -63
- package/src/app/core/services/local-settings.service.d.ts +0 -95
- package/src/app/core/services/model/account.model.d.ts +0 -41
- package/src/app/core/services/model/config.model.d.ts +0 -36
- package/src/app/core/services/model/department.model.d.ts +0 -11
- package/src/app/core/services/model/entity.decorators.d.ts +0 -17
- package/src/app/core/services/model/entity.model.d.ts +0 -87
- package/src/app/core/services/model/filter.model.d.ts +0 -37
- package/src/app/core/services/model/history.model.d.ts +0 -20
- package/src/app/core/services/model/model.enum.d.ts +0 -7
- package/src/app/core/services/model/peer.model.d.ts +0 -30
- package/src/app/core/services/model/person.model.d.ts +0 -37
- package/src/app/core/services/model/referential.model.d.ts +0 -83
- package/src/app/core/services/model/settings.model.d.ts +0 -28
- package/src/app/core/services/model/token.model.d.ts +0 -22
- package/src/app/core/services/model/tree-item-entity.model.d.ts +0 -53
- package/src/app/core/services/network.service.d.ts +0 -151
- package/src/app/core/services/network.types.d.ts +0 -5
- package/src/app/core/services/network.utils.d.ts +0 -31
- package/src/app/core/services/pipes/account.pipes.d.ts +0 -15
- package/src/app/core/services/pipes/department-to-string.pipe.d.ts +0 -9
- package/src/app/core/services/pipes/person-to-string.pipe.d.ts +0 -11
- package/src/app/core/services/pipes/pipes.module.d.ts +0 -11
- package/src/app/core/services/pipes/referential-to-string.pipe.d.ts +0 -13
- package/src/app/core/services/pipes/usage-mode.pipes.d.ts +0 -15
- package/src/app/core/services/platform.service.d.ts +0 -100
- package/src/app/core/services/storage/entities-storage.service.d.ts +0 -108
- package/src/app/core/services/storage/entity-store.class.d.ts +0 -113
- package/src/app/core/services/testing/referential-filter.model.d.ts +0 -9
- package/src/app/core/services/testing/referential.validator.d.ts +0 -22
- package/src/app/core/services/validator/account.validator.d.ts +0 -24
- package/src/app/core/services/validator/base.validator.class.d.ts +0 -21
- package/src/app/core/services/validator/local-settings.validator.d.ts +0 -22
- package/src/app/core/services/validator/user-settings.validator.d.ts +0 -10
- package/src/app/core/services/validator/user-token.validator.d.ts +0 -13
- package/src/app/core/settings/settings.module.d.ts +0 -11
- package/src/app/core/settings/settings.page.d.ts +0 -81
- package/src/app/core/table/async-table.class.d.ts +0 -389
- package/src/app/core/table/column/actions-column.component.d.ts +0 -59
- package/src/app/core/table/column/nav-actions-column.component.d.ts +0 -46
- package/src/app/core/table/column/row-field.component.d.ts +0 -40
- package/src/app/core/table/entities-async-table-datasource.class.d.ts +0 -81
- package/src/app/core/table/entities-table-datasource.class.d.ts +0 -95
- package/src/app/core/table/memory-table.class.d.ts +0 -25
- package/src/app/core/table/table-select-columns.component.d.ts +0 -22
- package/src/app/core/table/table.class.d.ts +0 -394
- package/src/app/core/table/table.model.d.ts +0 -26
- package/src/app/core/table/table.module.d.ts +0 -14
- package/src/app/core/table/table.pipes.d.ts +0 -28
- package/src/app/core/table/table.utils.d.ts +0 -11
- package/src/app/core/table/testing/table-validator.service.d.ts +0 -17
- package/src/app/core/table/testing/table.testing.d.ts +0 -54
- package/src/app/core/table/testing/table.testing.module.d.ts +0 -14
- package/src/app/core/table/testing/table2-validator.service.d.ts +0 -15
- package/src/app/core/table/testing/table2.testing.d.ts +0 -48
- package/src/app/shared/alerts.d.ts +0 -55
- package/src/app/shared/audio/audio.d.ts +0 -44
- package/src/app/shared/audio/audio.testing.d.ts +0 -13
- package/src/app/shared/audio/audio.testing.module.d.ts +0 -11
- package/src/app/shared/capacitor/keyboard.d.ts +0 -16
- package/src/app/shared/capacitor/plugins.d.ts +0 -7
- package/src/app/shared/constants.d.ts +0 -13
- package/src/app/shared/dates.d.ts +0 -48
- package/src/app/shared/debug/debug-service.class.d.ts +0 -5
- package/src/app/shared/debug/debug.component.d.ts +0 -13
- package/src/app/shared/debug/debug.module.d.ts +0 -12
- package/src/app/shared/directives/autofocus.directive.d.ts +0 -18
- package/src/app/shared/directives/autotitle.directive.d.ts +0 -10
- package/src/app/shared/directives/directives.module.d.ts +0 -12
- package/src/app/shared/directives/drag-and-drop.directive.d.ts +0 -17
- package/src/app/shared/directives/ng-var.directive.d.ts +0 -12
- package/src/app/shared/directives/resizable/resizable.component.d.ts +0 -21
- package/src/app/shared/directives/resizable/resizable.directive.d.ts +0 -12
- package/src/app/shared/directives/resizable/resizable.module.d.ts +0 -8
- package/src/app/shared/events.d.ts +0 -28
- package/src/app/shared/file/csv.utils.d.ts +0 -24
- package/src/app/shared/file/file.service.d.ts +0 -23
- package/src/app/shared/file/file.utils.d.ts +0 -20
- package/src/app/shared/file/images.utils.d.ts +0 -36
- package/src/app/shared/file/json.utils.d.ts +0 -19
- package/src/app/shared/file/uri.utils.d.ts +0 -8
- package/src/app/shared/focusable.d.ts +0 -4
- package/src/app/shared/form/field.component.d.ts +0 -74
- package/src/app/shared/form/field.model.d.ts +0 -39
- package/src/app/shared/form/loading-spinner.d.ts +0 -8
- package/src/app/shared/forms.d.ts +0 -118
- package/src/app/shared/functions.d.ts +0 -152
- package/src/app/shared/geolocation/geolocation.utils.d.ts +0 -19
- package/src/app/shared/gesture/gesture-config.d.ts +0 -15
- package/src/app/shared/gesture/hammer.utils.d.ts +0 -16
- package/src/app/shared/graph/colors.utils.d.ts +0 -17
- package/src/app/shared/graph/graph-colors.d.ts +0 -63
- package/src/app/shared/guard/component-dirty.guard.d.ts +0 -14
- package/src/app/shared/help/help.modal.d.ts +0 -33
- package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +0 -8
- package/src/app/shared/hotkeys/hotkeys.service.d.ts +0 -42
- package/src/app/shared/hotkeys/shared-hotkeys.module.d.ts +0 -11
- package/src/app/shared/http/http.utils.d.ts +0 -28
- package/src/app/shared/image/gallery/image-gallery.component.d.ts +0 -98
- package/src/app/shared/image/gallery/image-gallery.module.d.ts +0 -15
- package/src/app/shared/image/gallery/testing/gallegry.model.testing.d.ts +0 -12
- package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +0 -33
- package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +0 -16
- package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +0 -13
- package/src/app/shared/image/image.model.d.ts +0 -5
- package/src/app/shared/image/image.module.d.ts +0 -8
- package/src/app/shared/image/image.service.d.ts +0 -32
- package/src/app/shared/inputs.d.ts +0 -34
- package/src/app/shared/interceptors/progess.interceptor.d.ts +0 -8
- package/src/app/shared/logging/log-level.model.d.ts +0 -38
- package/src/app/shared/logging/logger.model.d.ts +0 -68
- package/src/app/shared/logging/logging-service.class.d.ts +0 -39
- package/src/app/shared/logging/logging-service.config.d.ts +0 -25
- package/src/app/shared/logging/logging-service.module.d.ts +0 -9
- package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +0 -55
- package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +0 -180
- package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +0 -22
- package/src/app/shared/material/autocomplete/material.autocomplete.utils.d.ts +0 -5
- package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +0 -46
- package/src/app/shared/material/badge/badge.directive.d.ts +0 -43
- package/src/app/shared/material/badge/badge.module.d.ts +0 -10
- package/src/app/shared/material/badge/badge.test.d.ts +0 -21
- package/src/app/shared/material/boolean/boolean.module.d.ts +0 -21
- package/src/app/shared/material/boolean/material.boolean.d.ts +0 -93
- package/src/app/shared/material/boolean/testing/boolean.test.page.d.ts +0 -22
- package/src/app/shared/material/chips/chips.module.d.ts +0 -22
- package/src/app/shared/material/chips/material.chips.d.ts +0 -150
- package/src/app/shared/material/chips/testing/chips.test.d.ts +0 -32
- package/src/app/shared/material/datetime/datetime.module.d.ts +0 -24
- package/src/app/shared/material/datetime/material.date.d.ts +0 -90
- package/src/app/shared/material/datetime/material.dateshort.d.ts +0 -89
- package/src/app/shared/material/datetime/material.datetime.d.ts +0 -121
- package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +0 -37
- package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +0 -32
- package/src/app/shared/material/datetime/testing/mat-dateshort.test.d.ts +0 -31
- package/src/app/shared/material/duration/duration.module.d.ts +0 -19
- package/src/app/shared/material/duration/duration.utils.d.ts +0 -3
- package/src/app/shared/material/duration/material.duration.d.ts +0 -58
- package/src/app/shared/material/duration/testing/mat-duration.test.d.ts +0 -22
- package/src/app/shared/material/latlong/latlong.utils.d.ts +0 -21
- package/src/app/shared/material/latlong/material.latlong.d.ts +0 -70
- package/src/app/shared/material/latlong/material.latlong.module.d.ts +0 -20
- package/src/app/shared/material/latlong/testing/latlong.test.d.ts +0 -27
- package/src/app/shared/material/material.animations.d.ts +0 -6
- package/src/app/shared/material/material.config.d.ts +0 -3
- package/src/app/shared/material/material.module.d.ts +0 -45
- package/src/app/shared/material/material.testing.module.d.ts +0 -31
- package/src/app/shared/material/paginator/material.paginator-i18n.d.ts +0 -12
- package/src/app/shared/material/stepper/material.stepper-i18n.d.ts +0 -10
- package/src/app/shared/material/swipe/material.swipe.d.ts +0 -90
- package/src/app/shared/material/swipe/swipe.module.d.ts +0 -16
- package/src/app/shared/material/swipe/testing/swipe.test.d.ts +0 -22
- package/src/app/shared/material/testing/common.test.d.ts +0 -25
- package/src/app/shared/material/text/testing/text-form.testing.d.ts +0 -19
- package/src/app/shared/material/text/text-form.component.d.ts +0 -66
- package/src/app/shared/material/text/text-form.module.d.ts +0 -16
- package/src/app/shared/modules.d.ts +0 -9
- package/src/app/shared/named-filter/named-filter-selector.component.d.ts +0 -60
- package/src/app/shared/named-filter/named-filter.model.d.ts +0 -32
- package/src/app/shared/named-filter/named-filter.module.d.ts +0 -13
- package/src/app/shared/named-filter/named-filter.service.d.ts +0 -32
- package/src/app/shared/named-filter/testing/named-filter-selector.testing.d.ts +0 -34
- package/src/app/shared/named-filter/testing/named-filter.testing.module.d.ts +0 -10
- package/src/app/shared/observables.d.ts +0 -30
- package/src/app/shared/pipes/arrays.pipe.d.ts +0 -59
- package/src/app/shared/pipes/badge.pipes.d.ts +0 -7
- package/src/app/shared/pipes/colors.pipe.d.ts +0 -9
- package/src/app/shared/pipes/date-diff-duration.pipe.d.ts +0 -23
- package/src/app/shared/pipes/date-format.pipe.d.ts +0 -35
- package/src/app/shared/pipes/date-from-now.pipe.d.ts +0 -12
- package/src/app/shared/pipes/duration.pipe.d.ts +0 -13
- package/src/app/shared/pipes/file-size.pipe.d.ts +0 -30
- package/src/app/shared/pipes/form.pipes.d.ts +0 -69
- package/src/app/shared/pipes/highlight.pipe.d.ts +0 -11
- package/src/app/shared/pipes/html.pipes.d.ts +0 -15
- package/src/app/shared/pipes/latlong-format.pipe.d.ts +0 -20
- package/src/app/shared/pipes/maps.pipe.d.ts +0 -22
- package/src/app/shared/pipes/maskito.pipe.d.ts +0 -14
- package/src/app/shared/pipes/math.pipes.d.ts +0 -20
- package/src/app/shared/pipes/ng-init.pipe.d.ts +0 -8
- package/src/app/shared/pipes/number-format.pipe.d.ts +0 -10
- package/src/app/shared/pipes/pipes.module.d.ts +0 -31
- package/src/app/shared/pipes/property.pipes.d.ts +0 -47
- package/src/app/shared/pipes/selection.pipes.d.ts +0 -62
- package/src/app/shared/pipes/string.pipes.d.ts +0 -53
- package/src/app/shared/pipes/translate-context.pipe.d.ts +0 -17
- package/src/app/shared/pipes/types.pipes.d.ts +0 -30
- package/src/app/shared/platforms.d.ts +0 -8
- package/src/app/shared/rx-state.module.d.ts +0 -10
- package/src/app/shared/services/entity-service.class.d.ts +0 -71
- package/src/app/shared/services/job.utils.d.ts +0 -20
- package/src/app/shared/services/memory-entity-service.class.d.ts +0 -78
- package/src/app/shared/services/progress-bar.service.d.ts +0 -20
- package/src/app/shared/services/startable-observable-service.class.d.ts +0 -36
- package/src/app/shared/services/startable-service.class.d.ts +0 -37
- package/src/app/shared/services/translate-context.service.d.ts +0 -29
- package/src/app/shared/services/validator-service.class.d.ts +0 -11
- package/src/app/shared/services.d.ts +0 -10
- package/src/app/shared/shared-routing.module.d.ts +0 -23
- package/src/app/shared/shared.module.d.ts +0 -34
- package/src/app/shared/shared.testing.module.d.ts +0 -19
- package/src/app/shared/storage/storage-explorer.component.d.ts +0 -59
- package/src/app/shared/storage/storage-explorer.module.d.ts +0 -13
- package/src/app/shared/storage/storage-explorer.testing-routing.module.d.ts +0 -9
- package/src/app/shared/storage/storage-explorer.testing.module.d.ts +0 -10
- package/src/app/shared/storage/storage.service.d.ts +0 -22
- package/src/app/shared/storage/storage.utils.d.ts +0 -19
- package/src/app/shared/testing/maskito.test.d.ts +0 -10
- package/src/app/shared/testing/observable.test.d.ts +0 -25
- package/src/app/shared/testing/tests.page.d.ts +0 -20
- package/src/app/shared/toast/toast.testing.d.ts +0 -15
- package/src/app/shared/toast/toast.testing.module.d.ts +0 -11
- package/src/app/shared/toast/toasts.d.ts +0 -17
- package/src/app/shared/toolbar/modal-toolbar.d.ts +0 -21
- package/src/app/shared/toolbar/toolbar.d.ts +0 -68
- package/src/app/shared/toolbar/toolbar.module.d.ts +0 -16
- package/src/app/shared/types.d.ts +0 -31
- package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +0 -21
- package/src/app/shared/upload-file/testing/upload-file.testing.module.d.ts +0 -11
- package/src/app/shared/upload-file/upload-file-popover.component.d.ts +0 -39
- package/src/app/shared/upload-file/upload-file.component.d.ts +0 -49
- package/src/app/shared/upload-file/upload-file.model.d.ts +0 -30
- package/src/app/shared/validator/form-error-adapter.class.d.ts +0 -33
- package/src/app/shared/validator/validators.d.ts +0 -130
- package/src/app/shared/version/versions.d.ts +0 -26
- package/src/app/social/job/job.module.d.ts +0 -12
- package/src/app/social/job/progression/job-progression.component.d.ts +0 -23
- package/src/app/social/job/progression/job-progression.icon.d.ts +0 -62
- package/src/app/social/job/progression/job-progression.list.d.ts +0 -19
- package/src/app/social/job/progression/job-progression.model.d.ts +0 -10
- package/src/app/social/job/progression/job-progression.service.d.ts +0 -33
- package/src/app/social/job/testing/job-progression.testing.d.ts +0 -13
- package/src/app/social/job/testing/job-progression.testing.service.d.ts +0 -9
- package/src/app/social/job/testing/job.testing.module.d.ts +0 -11
- package/src/app/social/message/message.form.d.ts +0 -36
- package/src/app/social/message/message.modal.d.ts +0 -43
- package/src/app/social/message/message.model.d.ts +0 -33
- package/src/app/social/message/message.module.d.ts +0 -12
- package/src/app/social/message/message.service.d.ts +0 -32
- package/src/app/social/social.errors.d.ts +0 -9
- package/src/app/social/social.module.d.ts +0 -20
- package/src/app/social/social.testing.module.d.ts +0 -13
- package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +0 -32
- package/src/app/social/user-event/notification/user-event-notification.list.d.ts +0 -71
- package/src/app/social/user-event/testing/user-event.testing.d.ts +0 -35
- package/src/app/social/user-event/testing/user-event.testing.model.d.ts +0 -42
- package/src/app/social/user-event/testing/user-event.testing.module.d.ts +0 -11
- package/src/app/social/user-event/testing/user-event.testing.service.d.ts +0 -42
- package/src/app/social/user-event/user-event.model.d.ts +0 -44
- package/src/app/social/user-event/user-event.module.d.ts +0 -13
- package/src/app/social/user-event/user-event.service.d.ts +0 -129
- package/src/environments/environment.class.d.ts +0 -68
- package/src/environments/environment.d.ts +0 -2
- package/src/environments/environment.loader.d.ts +0 -24
- package/src/theme/_globals.scss +0 -5
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class NgVarDirective {
|
|
4
|
-
templateRef;
|
|
5
|
-
vcRef;
|
|
6
|
-
set ngVar(context) {
|
|
7
|
-
this.context.$implicit = this.context.ngVar = context;
|
|
8
|
-
if (!this.hasView) {
|
|
9
|
-
this.vcRef.createEmbeddedView(this.templateRef, this.context);
|
|
10
|
-
this.hasView = true;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
context = {
|
|
14
|
-
$implicit: null,
|
|
15
|
-
ngVar: null,
|
|
16
|
-
};
|
|
17
|
-
hasView = false;
|
|
18
|
-
constructor(templateRef, vcRef) {
|
|
19
|
-
this.templateRef = templateRef;
|
|
20
|
-
this.vcRef = vcRef;
|
|
21
|
-
}
|
|
22
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgVarDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
23
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: NgVarDirective, selector: "[ngVar]", inputs: { ngVar: "ngVar" }, ngImport: i0 });
|
|
24
|
-
}
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgVarDirective, decorators: [{
|
|
26
|
-
type: Directive,
|
|
27
|
-
args: [{
|
|
28
|
-
selector: '[ngVar]',
|
|
29
|
-
}]
|
|
30
|
-
}], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }], propDecorators: { ngVar: [{
|
|
31
|
-
type: Input
|
|
32
|
-
}] } });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctdmFyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvbmctdmFyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBaUMsTUFBTSxlQUFlLENBQUM7O0FBS2hGLE1BQU0sT0FBTyxjQUFjO0lBc0JmO0lBQ0E7SUF0QlYsSUFDSSxLQUFLLENBQUMsT0FBZ0I7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO1FBRXRELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVPLE9BQU8sR0FHWDtRQUNGLFNBQVMsRUFBRSxJQUFJO1FBQ2YsS0FBSyxFQUFFLElBQUk7S0FDWixDQUFDO0lBRU0sT0FBTyxHQUFHLEtBQUssQ0FBQztJQUV4QixZQUNVLFdBQTZCLEVBQzdCLEtBQXVCO1FBRHZCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixVQUFLLEdBQUwsS0FBSyxDQUFrQjtJQUM5QixDQUFDO3VHQXhCTyxjQUFjOzJGQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBSDFCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7aUJBQ3BCOytHQUdLLEtBQUs7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuZ1Zhcl0nLFxufSlcbmV4cG9ydCBjbGFzcyBOZ1ZhckRpcmVjdGl2ZSB7XG4gIEBJbnB1dCgpXG4gIHNldCBuZ1Zhcihjb250ZXh0OiB1bmtub3duKSB7XG4gICAgdGhpcy5jb250ZXh0LiRpbXBsaWNpdCA9IHRoaXMuY29udGV4dC5uZ1ZhciA9IGNvbnRleHQ7XG5cbiAgICBpZiAoIXRoaXMuaGFzVmlldykge1xuICAgICAgdGhpcy52Y1JlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZiwgdGhpcy5jb250ZXh0KTtcbiAgICAgIHRoaXMuaGFzVmlldyA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb250ZXh0OiB7XG4gICAgJGltcGxpY2l0OiB1bmtub3duO1xuICAgIG5nVmFyOiB1bmtub3duO1xuICB9ID0ge1xuICAgICRpbXBsaWNpdDogbnVsbCxcbiAgICBuZ1ZhcjogbnVsbCxcbiAgfTtcblxuICBwcml2YXRlIGhhc1ZpZXcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHByaXZhdGUgdmNSZWY6IFZpZXdDb250YWluZXJSZWZcbiAgKSB7fVxufVxuIl19
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, HostBinding, Input, Optional, Output } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/material/table";
|
|
4
|
-
import * as i2 from "./resizable.directive";
|
|
5
|
-
export class ResizableComponent {
|
|
6
|
-
columnDef;
|
|
7
|
-
resizable;
|
|
8
|
-
sizeChanged = new EventEmitter();
|
|
9
|
-
width = null;
|
|
10
|
-
minWidth = null;
|
|
11
|
-
maxWidth = null;
|
|
12
|
-
debug = false;
|
|
13
|
-
constructor(columnDef) {
|
|
14
|
-
this.columnDef = columnDef;
|
|
15
|
-
}
|
|
16
|
-
onResize(width, opts) {
|
|
17
|
-
if (!this.resizable)
|
|
18
|
-
return;
|
|
19
|
-
if (this.debug)
|
|
20
|
-
console.info(`resize:${width}`);
|
|
21
|
-
this.width = width + 'px';
|
|
22
|
-
this.minWidth = width + 'px';
|
|
23
|
-
this.maxWidth = width + 'px';
|
|
24
|
-
if (!opts || opts.emitEvent) {
|
|
25
|
-
this.sizeChanged.emit(width);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
onFit(opts) {
|
|
29
|
-
if (!this.resizable)
|
|
30
|
-
return;
|
|
31
|
-
if (this.debug)
|
|
32
|
-
console.info('fit');
|
|
33
|
-
this.width = 'auto';
|
|
34
|
-
this.minWidth = null;
|
|
35
|
-
this.maxWidth = null;
|
|
36
|
-
if (!opts || opts.emitEvent) {
|
|
37
|
-
this.sizeChanged.emit(undefined);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResizableComponent, deps: [{ token: i1.MatColumnDef, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
41
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ResizableComponent, selector: "th[resizable]", inputs: { resizable: "resizable" }, outputs: { sizeChanged: "sizeChanged" }, host: { properties: { "style.width": "this.width", "style.min-width": "this.minWidth", "style.max-width": "this.maxWidth" } }, ngImport: i0, template: "<div class=\"wrapper\">\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n <div class=\"bar\" [class.cdk-visually-hidden]=\"!resizable\" (resizable)=\"onResize($event)\" (fit)=\"onFit()\"></div>\n</div>\n", styles: [":host:last-child .bar{display:none}.wrapper{display:flex;justify-content:flex-end;align-items:center}.content{flex:1}.bar{height:var(--app-table-header-height, 55px);width:10px;justify-self:flex-end;border-left:4px solid transparent;border-right:4px solid transparent;background:var(--ion-color-secondary);background-clip:content-box;cursor:ew-resize;opacity:0;transition:opacity .3s}.bar:hover,.bar:active{opacity:1}:host-context(.mat-table-sticky) .bar{width:12px!important}\n"], dependencies: [{ kind: "directive", type: i2.ResizableDirective, selector: "[resizable]", outputs: ["resizable", "fit"] }] });
|
|
42
|
-
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResizableComponent, decorators: [{
|
|
44
|
-
type: Component,
|
|
45
|
-
args: [{ selector: 'th[resizable]', template: "<div class=\"wrapper\">\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n <div class=\"bar\" [class.cdk-visually-hidden]=\"!resizable\" (resizable)=\"onResize($event)\" (fit)=\"onFit()\"></div>\n</div>\n", styles: [":host:last-child .bar{display:none}.wrapper{display:flex;justify-content:flex-end;align-items:center}.content{flex:1}.bar{height:var(--app-table-header-height, 55px);width:10px;justify-self:flex-end;border-left:4px solid transparent;border-right:4px solid transparent;background:var(--ion-color-secondary);background-clip:content-box;cursor:ew-resize;opacity:0;transition:opacity .3s}.bar:hover,.bar:active{opacity:1}:host-context(.mat-table-sticky) .bar{width:12px!important}\n"] }]
|
|
46
|
-
}], ctorParameters: () => [{ type: i1.MatColumnDef, decorators: [{
|
|
47
|
-
type: Optional
|
|
48
|
-
}] }], propDecorators: { resizable: [{
|
|
49
|
-
type: Input
|
|
50
|
-
}], sizeChanged: [{
|
|
51
|
-
type: Output
|
|
52
|
-
}], width: [{
|
|
53
|
-
type: HostBinding,
|
|
54
|
-
args: ['style.width']
|
|
55
|
-
}], minWidth: [{
|
|
56
|
-
type: HostBinding,
|
|
57
|
-
args: ['style.min-width']
|
|
58
|
-
}], maxWidth: [{
|
|
59
|
-
type: HostBinding,
|
|
60
|
-
args: ['style.max-width']
|
|
61
|
-
}] } });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvcmVzaXphYmxlL3Jlc2l6YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9kaXJlY3RpdmVzL3Jlc2l6YWJsZS9yZXNpemFibGUudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFTOUYsTUFBTSxPQUFPLGtCQUFrQjtJQWVXO0lBZC9CLFNBQVMsQ0FBVTtJQUNsQixXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUduRCxLQUFLLEdBQWtCLElBQUksQ0FBQztJQUc1QixRQUFRLEdBQWtCLElBQUksQ0FBQztJQUcvQixRQUFRLEdBQWtCLElBQUksQ0FBQztJQUV2QixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRXRCLFlBQXdDLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7SUFBRyxDQUFDO0lBRW5FLFFBQVEsQ0FBQyxLQUFhLEVBQUUsSUFBNkI7UUFDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUM1QixJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsSUFBNkI7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUM1QixJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQzt1R0FyQ1Usa0JBQWtCOzJGQUFsQixrQkFBa0IsaVFDVC9CLGtPQU1BOzsyRkRHYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBRUUsZUFBZTs7MEJBbUJaLFFBQVE7eUNBZFosU0FBUztzQkFBakIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUdQLEtBQUs7c0JBREosV0FBVzt1QkFBQyxhQUFhO2dCQUkxQixRQUFRO3NCQURQLFdBQVc7dUJBQUMsaUJBQWlCO2dCQUk5QixRQUFRO3NCQURQLFdBQVc7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3B0aW9uYWwsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q29sdW1uRGVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICd0aFtyZXNpemFibGVdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc2l6YWJsZS50ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVzaXphYmxlLnN0eWxlLnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVzaXphYmxlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcmVzaXphYmxlOiBib29sZWFuO1xuICBAT3V0cHV0KCkgc2l6ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoJylcbiAgd2lkdGg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUubWluLXdpZHRoJylcbiAgbWluV2lkdGg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUubWF4LXdpZHRoJylcbiAgbWF4V2lkdGg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgZGVidWcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwdWJsaWMgcmVhZG9ubHkgY29sdW1uRGVmOiBNYXRDb2x1bW5EZWYpIHt9XG5cbiAgb25SZXNpemUod2lkdGg6IG51bWJlciwgb3B0cz86IHsgZW1pdEV2ZW50OiBib29sZWFuIH0pIHtcbiAgICBpZiAoIXRoaXMucmVzaXphYmxlKSByZXR1cm47XG4gICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuaW5mbyhgcmVzaXplOiR7d2lkdGh9YCk7XG4gICAgdGhpcy53aWR0aCA9IHdpZHRoICsgJ3B4JztcbiAgICB0aGlzLm1pbldpZHRoID0gd2lkdGggKyAncHgnO1xuICAgIHRoaXMubWF4V2lkdGggPSB3aWR0aCArICdweCc7XG4gICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50KSB7XG4gICAgICB0aGlzLnNpemVDaGFuZ2VkLmVtaXQod2lkdGgpO1xuICAgIH1cbiAgfVxuXG4gIG9uRml0KG9wdHM/OiB7IGVtaXRFdmVudDogYm9vbGVhbiB9KSB7XG4gICAgaWYgKCF0aGlzLnJlc2l6YWJsZSkgcmV0dXJuO1xuICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmluZm8oJ2ZpdCcpO1xuICAgIHRoaXMud2lkdGggPSAnYXV0byc7XG4gICAgdGhpcy5taW5XaWR0aCA9IG51bGw7XG4gICAgdGhpcy5tYXhXaWR0aCA9IG51bGw7XG4gICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50KSB7XG4gICAgICB0aGlzLnNpemVDaGFuZ2VkLmVtaXQodW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImJhclwiIFtjbGFzcy5jZGstdmlzdWFsbHktaGlkZGVuXT1cIiFyZXNpemFibGVcIiAocmVzaXphYmxlKT1cIm9uUmVzaXplKCRldmVudClcIiAoZml0KT1cIm9uRml0KClcIj48L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { Directive, ElementRef, Inject, Output } from '@angular/core';
|
|
3
|
-
import { bufferWhen, distinctUntilChanged, filter, map, switchMap, takeUntil, tap } from 'rxjs/operators';
|
|
4
|
-
import { fromEvent, interval } from 'rxjs';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class ResizableDirective {
|
|
7
|
-
document;
|
|
8
|
-
elementRef;
|
|
9
|
-
resizable;
|
|
10
|
-
// fit: doubleclick
|
|
11
|
-
fit;
|
|
12
|
-
constructor(document, elementRef) {
|
|
13
|
-
this.document = document;
|
|
14
|
-
this.elementRef = elementRef;
|
|
15
|
-
// resize: mousedown -> mousemove -> mouseup
|
|
16
|
-
this.resizable = fromEvent(this.elementRef.nativeElement, 'mousedown').pipe(tap((e) => {
|
|
17
|
-
e.preventDefault();
|
|
18
|
-
e.stopPropagation();
|
|
19
|
-
}), switchMap(() => {
|
|
20
|
-
const { width, right } = this.elementRef.nativeElement.closest('th').getBoundingClientRect();
|
|
21
|
-
return fromEvent(this.document, 'mousemove').pipe(map(({ clientX }) => width + clientX - right), distinctUntilChanged(), takeUntil(fromEvent(this.document, 'mouseup')));
|
|
22
|
-
}));
|
|
23
|
-
// fit: doubleclick
|
|
24
|
-
this.fit = fromEvent(this.elementRef.nativeElement, 'click').pipe(bufferWhen(() => interval(500)), filter((ar) => ar.length === 2));
|
|
25
|
-
}
|
|
26
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResizableDirective, deps: [{ token: DOCUMENT }, { token: ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
27
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: ResizableDirective, selector: "[resizable]", outputs: { resizable: "resizable", fit: "fit" }, ngImport: i0 });
|
|
28
|
-
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResizableDirective, decorators: [{
|
|
30
|
-
type: Directive,
|
|
31
|
-
args: [{
|
|
32
|
-
selector: '[resizable]',
|
|
33
|
-
}]
|
|
34
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
35
|
-
type: Inject,
|
|
36
|
-
args: [DOCUMENT]
|
|
37
|
-
}] }, { type: i0.ElementRef, decorators: [{
|
|
38
|
-
type: Inject,
|
|
39
|
-
args: [ElementRef]
|
|
40
|
-
}] }], propDecorators: { resizable: [{
|
|
41
|
-
type: Output
|
|
42
|
-
}], fit: [{
|
|
43
|
-
type: Output
|
|
44
|
-
}] } });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvcmVzaXphYmxlL3Jlc2l6YWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBS3ZELE1BQU0sT0FBTyxrQkFBa0I7SUFTUTtJQUNFO0lBUjlCLFNBQVMsQ0FBcUI7SUFFdkMsbUJBQW1CO0lBRVYsR0FBRyxDQUEyQjtJQUV2QyxZQUNxQyxRQUFhLEVBQ1gsVUFBbUM7UUFEckMsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUNYLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBRXhFLDRDQUE0QztRQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBYSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQ3JGLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1IsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25CLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2IsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUM3RixPQUFPLFNBQVMsQ0FBYSxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDM0QsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLE9BQU8sR0FBRyxLQUFLLENBQUMsRUFDN0Msb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQy9DLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsbUJBQW1CO1FBQ25CLElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFhLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDM0UsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUMvQixNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQ2hDLENBQUM7SUFDSixDQUFDO3VHQWpDVSxrQkFBa0Isa0JBU25CLFFBQVEsYUFDUixVQUFVOzJGQVZULGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFIOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtpQkFDeEI7OzBCQVVJLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxVQUFVO3lDQVJYLFNBQVM7c0JBRGpCLE1BQU07Z0JBS0UsR0FBRztzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYnVmZmVyV2hlbiwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBpbnRlcnZhbCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcmVzaXphYmxlXScsXG59KVxuZXhwb3J0IGNsYXNzIFJlc2l6YWJsZURpcmVjdGl2ZSB7XG4gIEBPdXRwdXQoKVxuICByZWFkb25seSByZXNpemFibGU6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICAvLyBmaXQ6IGRvdWJsZWNsaWNrXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBmaXQ6IE9ic2VydmFibGU8TW91c2VFdmVudFtdPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50OiBhbnksXG4gICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG4gICkge1xuICAgIC8vIHJlc2l6ZTogbW91c2Vkb3duIC0+IG1vdXNlbW92ZSAtPiBtb3VzZXVwXG4gICAgdGhpcy5yZXNpemFibGUgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWRvd24nKS5waXBlKFxuICAgICAgdGFwKChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgY29uc3QgeyB3aWR0aCwgcmlnaHQgfSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsb3Nlc3QoJ3RoJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIHJldHVybiBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5kb2N1bWVudCwgJ21vdXNlbW92ZScpLnBpcGUoXG4gICAgICAgICAgbWFwKCh7IGNsaWVudFggfSkgPT4gd2lkdGggKyBjbGllbnRYIC0gcmlnaHQpLFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgdGFrZVVudGlsKGZyb21FdmVudCh0aGlzLmRvY3VtZW50LCAnbW91c2V1cCcpKVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gZml0OiBkb3VibGVjbGlja1xuICAgIHRoaXMuZml0ID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnY2xpY2snKS5waXBlKFxuICAgICAgYnVmZmVyV2hlbigoKSA9PiBpbnRlcnZhbCg1MDApKSxcbiAgICAgIGZpbHRlcigoYXIpID0+IGFyLmxlbmd0aCA9PT0gMilcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { ResizableComponent } from './resizable.component';
|
|
3
|
-
import { ResizableDirective } from './resizable.directive';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class ResizableModule {
|
|
6
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResizableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: ResizableModule, declarations: [ResizableComponent, ResizableDirective], exports: [ResizableComponent, ResizableDirective] });
|
|
8
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResizableModule });
|
|
9
|
-
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResizableModule, decorators: [{
|
|
11
|
-
type: NgModule,
|
|
12
|
-
args: [{
|
|
13
|
-
declarations: [ResizableComponent, ResizableDirective],
|
|
14
|
-
exports: [ResizableComponent, ResizableDirective],
|
|
15
|
-
}]
|
|
16
|
-
}] });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvcmVzaXphYmxlL3Jlc2l6YWJsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFNM0QsTUFBTSxPQUFPLGVBQWU7dUdBQWYsZUFBZTt3R0FBZixlQUFlLGlCQUhYLGtCQUFrQixFQUFFLGtCQUFrQixhQUMzQyxrQkFBa0IsRUFBRSxrQkFBa0I7d0dBRXJDLGVBQWU7OzJGQUFmLGVBQWU7a0JBSjNCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUM7b0JBQ3RELE9BQU8sRUFBRSxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDO2lCQUNsRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXNpemFibGVDb21wb25lbnQgfSBmcm9tICcuL3Jlc2l6YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVzaXphYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi9yZXNpemFibGUuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUmVzaXphYmxlQ29tcG9uZW50LCBSZXNpemFibGVEaXJlY3RpdmVdLFxuICBleHBvcnRzOiBbUmVzaXphYmxlQ29tcG9uZW50LCBSZXNpemFibGVEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBSZXNpemFibGVNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
2
|
-
import { fromEvent, merge, timer } from 'rxjs';
|
|
3
|
-
import { filter } from 'rxjs/operators';
|
|
4
|
-
export function createPromiseEventEmitter() {
|
|
5
|
-
return new EventEmitter(true);
|
|
6
|
-
}
|
|
7
|
-
export function createPromiseEvent(eventType, promise, initArg) {
|
|
8
|
-
const detail = {
|
|
9
|
-
...(initArg?.detail || {}),
|
|
10
|
-
...promise,
|
|
11
|
-
};
|
|
12
|
-
return new CustomEvent(eventType, { detail });
|
|
13
|
-
}
|
|
14
|
-
export function emitPromiseEvent(emitter, eventType, initArg) {
|
|
15
|
-
return new Promise((resolve, reject) => {
|
|
16
|
-
const event = createPromiseEvent(eventType, {
|
|
17
|
-
success: resolve,
|
|
18
|
-
error: reject,
|
|
19
|
-
}, initArg);
|
|
20
|
-
emitter.emit(event);
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Listen end of scroll.
|
|
25
|
-
* <p>
|
|
26
|
-
* The threshold distance from the bottom of the content to call the infinite output event when scrolled.
|
|
27
|
-
* The threshold value can be either a percent, or in pixels.
|
|
28
|
-
* For example, use the value of 10% for the infinite output event to get called when the user has scrolled
|
|
29
|
-
* 10% from the bottom of the page. Use the value 100px when the scroll is within 100 pixels from the bottom of the page.
|
|
30
|
-
* </p>
|
|
31
|
-
*
|
|
32
|
-
* @param element
|
|
33
|
-
* @param threshold default to '15%'
|
|
34
|
-
*/
|
|
35
|
-
export function fromScrollEndEvent(element, threshold, dueTime) {
|
|
36
|
-
threshold = threshold || '15%';
|
|
37
|
-
let isEnd;
|
|
38
|
-
// Listen using percentage
|
|
39
|
-
if (threshold.endsWith('%')) {
|
|
40
|
-
const thresholdRatio = parseInt(threshold.slice(0, threshold.length - 1)) / 100;
|
|
41
|
-
isEnd = () => {
|
|
42
|
-
const endPosRatio = 1 - (element.scrollTop + element.offsetHeight) / element.scrollHeight;
|
|
43
|
-
return endPosRatio < thresholdRatio;
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
// Listen using pixels
|
|
47
|
-
else if (threshold.endsWith('px')) {
|
|
48
|
-
const thresholdPx = parseInt(threshold.slice(0, threshold.length - 2));
|
|
49
|
-
isEnd = () => {
|
|
50
|
-
const endPosPx = element.scrollHeight - (element.scrollTop + element.offsetHeight);
|
|
51
|
-
return endPosPx < thresholdPx;
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
throw new Error("Invalid argument 'threshold'. Expected value unit: 'px' or '%' ");
|
|
56
|
-
}
|
|
57
|
-
// Check bottom reach, even if NO scroll event (e.g. when already reach the bottom)
|
|
58
|
-
if (dueTime > 0) {
|
|
59
|
-
return merge(fromEvent(element, 'scroll'), timer(dueTime)).pipe(filter(() => isEnd()));
|
|
60
|
-
}
|
|
61
|
-
return fromEvent(element, 'scroll').pipe(filter(() => isEnd()));
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWMsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVN4QyxNQUFNLFVBQVUseUJBQXlCO0lBQ3ZDLE9BQU8sSUFBSSxZQUFZLENBQXFCLElBQUksQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLFNBQWlCLEVBQ2pCLE9BQStCLEVBQy9CLE9BQTRCO0lBRTVCLE1BQU0sTUFBTSxHQUE0QjtRQUN0QyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDMUIsR0FBRyxPQUFPO0tBQ1gsQ0FBQztJQUNGLE9BQU8sSUFBSSxXQUFXLENBQTZCLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsT0FBeUMsRUFDekMsU0FBaUIsRUFDakIsT0FBNEI7SUFFNUIsT0FBTyxJQUFJLE9BQU8sQ0FBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUN4QyxNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FDOUIsU0FBUyxFQUNUO1lBQ0UsT0FBTyxFQUFFLE9BQU87WUFDaEIsS0FBSyxFQUFFLE1BQU07U0FDZCxFQUNELE9BQU8sQ0FDUixDQUFDO1FBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFNRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxPQUFvQixFQUFFLFNBQWtCLEVBQUUsT0FBZ0I7SUFDM0YsU0FBUyxHQUFHLFNBQVMsSUFBSSxLQUFLLENBQUM7SUFDL0IsSUFBSSxLQUFvQixDQUFDO0lBRXpCLDBCQUEwQjtJQUMxQixJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM1QixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNoRixLQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ1gsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztZQUMxRixPQUFPLFdBQVcsR0FBRyxjQUFjLENBQUM7UUFDdEMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELHNCQUFzQjtTQUNqQixJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLEtBQUssR0FBRyxHQUFHLEVBQUU7WUFDWCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsWUFBWSxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbkYsT0FBTyxRQUFRLEdBQUcsV0FBVyxDQUFDO1FBQ2hDLENBQUMsQ0FBQztJQUNKLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxpRUFBaUUsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRCxtRkFBbUY7SUFDbkYsSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDaEIsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2xFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UsIE9ic2VydmFibGUsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvbWlzZUV2ZW50UGF5bG9hZDxSID0gYW55PiB7XG4gIHN1Y2Nlc3M6ICh2YWx1ZT86IFIpID0+IHZvaWQ7XG4gIGVycm9yOiAocmVhc29uPzogYW55KSA9PiB2b2lkO1xufVxuXG5leHBvcnQgdHlwZSBQcm9taXNlRXZlbnQ8UiA9IGFueSwgRCA9IHZvaWQ+ID0gQ3VzdG9tRXZlbnQ8UHJvbWlzZUV2ZW50UGF5bG9hZDxSPiAmIEQ+O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJvbWlzZUV2ZW50RW1pdHRlcjxSID0gYW55LCBEID0gdm9pZD4oKTogRXZlbnRFbWl0dGVyPFByb21pc2VFdmVudDxSLCBEPj4ge1xuICByZXR1cm4gbmV3IEV2ZW50RW1pdHRlcjxQcm9taXNlRXZlbnQ8UiwgRD4+KHRydWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJvbWlzZUV2ZW50PFQgPSB2b2lkLCBEID0gdm9pZD4oXG4gIGV2ZW50VHlwZTogc3RyaW5nLFxuICBwcm9taXNlOiBQcm9taXNlRXZlbnRQYXlsb2FkPFQ+LFxuICBpbml0QXJnPzogQ3VzdG9tRXZlbnRJbml0PEQ+XG4pOiBQcm9taXNlRXZlbnQ8VCwgRD4ge1xuICBjb25zdCBkZXRhaWwgPSA8UHJvbWlzZUV2ZW50UGF5bG9hZCAmIEQ+e1xuICAgIC4uLihpbml0QXJnPy5kZXRhaWwgfHwge30pLFxuICAgIC4uLnByb21pc2UsXG4gIH07XG4gIHJldHVybiBuZXcgQ3VzdG9tRXZlbnQ8UHJvbWlzZUV2ZW50UGF5bG9hZDxUPiAmIEQ+KGV2ZW50VHlwZSwgeyBkZXRhaWwgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbWl0UHJvbWlzZUV2ZW50PFIgPSBhbnksIEQgPSB2b2lkPihcbiAgZW1pdHRlcjogRXZlbnRFbWl0dGVyPFByb21pc2VFdmVudDxSLCBEPj4sXG4gIGV2ZW50VHlwZTogc3RyaW5nLFxuICBpbml0QXJnPzogQ3VzdG9tRXZlbnRJbml0PEQ+XG4pOiBQcm9taXNlPFI+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPFI+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBldmVudCA9IGNyZWF0ZVByb21pc2VFdmVudChcbiAgICAgIGV2ZW50VHlwZSxcbiAgICAgIHtcbiAgICAgICAgc3VjY2VzczogcmVzb2x2ZSxcbiAgICAgICAgZXJyb3I6IHJlamVjdCxcbiAgICAgIH0sXG4gICAgICBpbml0QXJnXG4gICAgKTtcbiAgICBlbWl0dGVyLmVtaXQoZXZlbnQpO1xuICB9KTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wbGV0YWJsZUV2ZW50IGV4dGVuZHMgRXZlbnQge1xuICB0YXJnZXQ6IEV2ZW50VGFyZ2V0ICYgeyBjb21wbGV0ZT86ICgpID0+IHZvaWQgfTtcbn1cblxuLyoqXG4gKiBMaXN0ZW4gZW5kIG9mIHNjcm9sbC5cbiAqIDxwPlxuICogICBUaGUgdGhyZXNob2xkIGRpc3RhbmNlIGZyb20gdGhlIGJvdHRvbSBvZiB0aGUgY29udGVudCB0byBjYWxsIHRoZSBpbmZpbml0ZSBvdXRwdXQgZXZlbnQgd2hlbiBzY3JvbGxlZC5cbiAqICAgVGhlIHRocmVzaG9sZCB2YWx1ZSBjYW4gYmUgZWl0aGVyIGEgcGVyY2VudCwgb3IgaW4gcGl4ZWxzLlxuICogICBGb3IgZXhhbXBsZSwgdXNlIHRoZSB2YWx1ZSBvZiAxMCUgZm9yIHRoZSBpbmZpbml0ZSBvdXRwdXQgZXZlbnQgdG8gZ2V0IGNhbGxlZCB3aGVuIHRoZSB1c2VyIGhhcyBzY3JvbGxlZFxuICogICAxMCUgZnJvbSB0aGUgYm90dG9tIG9mIHRoZSBwYWdlLiBVc2UgdGhlIHZhbHVlIDEwMHB4IHdoZW4gdGhlIHNjcm9sbCBpcyB3aXRoaW4gMTAwIHBpeGVscyBmcm9tIHRoZSBib3R0b20gb2YgdGhlIHBhZ2UuXG4gKiA8L3A+XG4gKlxuICogQHBhcmFtIGVsZW1lbnRcbiAqIEBwYXJhbSB0aHJlc2hvbGQgZGVmYXVsdCB0byAnMTUlJ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbVNjcm9sbEVuZEV2ZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCB0aHJlc2hvbGQ/OiBzdHJpbmcsIGR1ZVRpbWU/OiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICB0aHJlc2hvbGQgPSB0aHJlc2hvbGQgfHwgJzE1JSc7XG4gIGxldCBpc0VuZDogKCkgPT4gYm9vbGVhbjtcblxuICAvLyBMaXN0ZW4gdXNpbmcgcGVyY2VudGFnZVxuICBpZiAodGhyZXNob2xkLmVuZHNXaXRoKCclJykpIHtcbiAgICBjb25zdCB0aHJlc2hvbGRSYXRpbyA9IHBhcnNlSW50KHRocmVzaG9sZC5zbGljZSgwLCB0aHJlc2hvbGQubGVuZ3RoIC0gMSkpIC8gMTAwO1xuICAgIGlzRW5kID0gKCkgPT4ge1xuICAgICAgY29uc3QgZW5kUG9zUmF0aW8gPSAxIC0gKGVsZW1lbnQuc2Nyb2xsVG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQpIC8gZWxlbWVudC5zY3JvbGxIZWlnaHQ7XG4gICAgICByZXR1cm4gZW5kUG9zUmF0aW8gPCB0aHJlc2hvbGRSYXRpbztcbiAgICB9O1xuICB9XG5cbiAgLy8gTGlzdGVuIHVzaW5nIHBpeGVsc1xuICBlbHNlIGlmICh0aHJlc2hvbGQuZW5kc1dpdGgoJ3B4JykpIHtcbiAgICBjb25zdCB0aHJlc2hvbGRQeCA9IHBhcnNlSW50KHRocmVzaG9sZC5zbGljZSgwLCB0aHJlc2hvbGQubGVuZ3RoIC0gMikpO1xuICAgIGlzRW5kID0gKCkgPT4ge1xuICAgICAgY29uc3QgZW5kUG9zUHggPSBlbGVtZW50LnNjcm9sbEhlaWdodCAtIChlbGVtZW50LnNjcm9sbFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0KTtcbiAgICAgIHJldHVybiBlbmRQb3NQeCA8IHRocmVzaG9sZFB4O1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBhcmd1bWVudCAndGhyZXNob2xkJy4gRXhwZWN0ZWQgdmFsdWUgdW5pdDogJ3B4JyBvciAnJScgXCIpO1xuICB9XG5cbiAgLy8gQ2hlY2sgYm90dG9tIHJlYWNoLCBldmVuIGlmIE5PIHNjcm9sbCBldmVudCAoZS5nLiB3aGVuIGFscmVhZHkgcmVhY2ggdGhlIGJvdHRvbSlcbiAgaWYgKGR1ZVRpbWUgPiAwKSB7XG4gICAgcmV0dXJuIG1lcmdlKGZyb21FdmVudChlbGVtZW50LCAnc2Nyb2xsJyksIHRpbWVyKGR1ZVRpbWUpKS5waXBlKGZpbHRlcigoKSA9PiBpc0VuZCgpKSk7XG4gIH1cblxuICByZXR1cm4gZnJvbUV2ZW50KGVsZW1lbnQsICdzY3JvbGwnKS5waXBlKGZpbHRlcigoKSA9PiBpc0VuZCgpKSk7XG59XG4iXX0=
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { filter, map } from 'rxjs/operators';
|
|
2
|
-
import { HttpEventType } from '@angular/common/http';
|
|
3
|
-
import { FileResponse } from '../upload-file/upload-file.model';
|
|
4
|
-
import { FilesUtils } from './file.utils';
|
|
5
|
-
import { isNotNil } from '../functions';
|
|
6
|
-
//@dynamic
|
|
7
|
-
export class CsvUtils {
|
|
8
|
-
static DEFAULT_SEPARATOR = ',';
|
|
9
|
-
static DEFAULT_ENCODING = 'UTF-8';
|
|
10
|
-
static exportToFile(rows, opts) {
|
|
11
|
-
if (!rows || !rows.length)
|
|
12
|
-
return; // Skip if empty
|
|
13
|
-
// Create text content
|
|
14
|
-
const separator = opts?.separator || ',';
|
|
15
|
-
const protectCellRegexp = new RegExp('/("|' + separator + '|\n)/g');
|
|
16
|
-
const keys = Object.keys(rows[0]);
|
|
17
|
-
const headers = opts?.headers || keys;
|
|
18
|
-
const textContent =
|
|
19
|
-
// Header row
|
|
20
|
-
headers.join(separator) +
|
|
21
|
-
'\n' +
|
|
22
|
-
// Data rows
|
|
23
|
-
rows
|
|
24
|
-
.map((row) => keys
|
|
25
|
-
.map((k) => {
|
|
26
|
-
const cell = row[k] === null || row[k] === undefined ? '' : row[k];
|
|
27
|
-
let cellStr = cell instanceof Date ? cell.toLocaleString() : cell.toString().replace(/"/g, '""');
|
|
28
|
-
if (protectCellRegexp.test(cellStr)) {
|
|
29
|
-
cellStr = `"${cellStr}"`;
|
|
30
|
-
}
|
|
31
|
-
return cellStr;
|
|
32
|
-
})
|
|
33
|
-
.join(separator))
|
|
34
|
-
.join('\n');
|
|
35
|
-
// Write to file
|
|
36
|
-
FilesUtils.writeTextToFile(textContent, {
|
|
37
|
-
type: 'text/csv',
|
|
38
|
-
filename: 'export.csv',
|
|
39
|
-
...opts,
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
static parseFile(file, opts) {
|
|
43
|
-
return FilesUtils.readAsText(file, opts?.encoding).pipe(map((e) => {
|
|
44
|
-
if (e.type === HttpEventType.UploadProgress) {
|
|
45
|
-
const loaded = Math.round(e.loaded * 0.8);
|
|
46
|
-
return { ...e, loaded };
|
|
47
|
-
}
|
|
48
|
-
else if (e instanceof FileResponse) {
|
|
49
|
-
const body = e.body;
|
|
50
|
-
const data = CsvUtils.parseCSV(body, opts);
|
|
51
|
-
return new FileResponse({ body: data });
|
|
52
|
-
}
|
|
53
|
-
}), filter(isNotNil));
|
|
54
|
-
}
|
|
55
|
-
static parseCSV(body, opts) {
|
|
56
|
-
const separator = opts?.separator || ',';
|
|
57
|
-
const skipEmptyLine = !opts || opts.skipEmptyLine !== false;
|
|
58
|
-
// Protect special characters (quote and /n)
|
|
59
|
-
body = body
|
|
60
|
-
.replace('""', '<quote>') // Protect double quote
|
|
61
|
-
.replace(/("[^\n"]+)\n\r?/gm, '"$1<br>') // Protect \n inside a quoted expression
|
|
62
|
-
.replace(/\n\r/gm, '\n'); // Windows CR
|
|
63
|
-
const headerAndRows = body.split('\n', 2);
|
|
64
|
-
const headers = headerAndRows[0].split(separator);
|
|
65
|
-
return body
|
|
66
|
-
.split('\n') // split into rows
|
|
67
|
-
.filter((line) => !skipEmptyLine || line.trim().length > 0) // Skip empty line
|
|
68
|
-
.map((line) => {
|
|
69
|
-
const cells = line
|
|
70
|
-
.split(separator, headers.length) // split into cells
|
|
71
|
-
.map((cell) => cell.replace(/^"([^"]*)"$/, '$1')) // Clean trailing quotes
|
|
72
|
-
.map((cell) => cell.replace('<quote>', '"')) // restore protected quote
|
|
73
|
-
.map((cell) => cell.replace('<br>', '\n')); // restore protected br
|
|
74
|
-
return cells;
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
static getLocalizedSeparator(translate, defaultSeparator = CsvUtils.DEFAULT_SEPARATOR) {
|
|
78
|
-
const key = 'FILE.CSV.SEPARATOR';
|
|
79
|
-
const separator = translate?.instant(key);
|
|
80
|
-
if (separator && separator !== key)
|
|
81
|
-
return separator;
|
|
82
|
-
return defaultSeparator;
|
|
83
|
-
}
|
|
84
|
-
static getLocalizedEncoding(translate, defaultEncoding = CsvUtils.DEFAULT_ENCODING) {
|
|
85
|
-
const key = 'FILE.CSV.ENCODING';
|
|
86
|
-
const encoding = translate?.instant(key);
|
|
87
|
-
if (encoding && encoding !== key)
|
|
88
|
-
return encoding;
|
|
89
|
-
return defaultEncoding;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZmlsZS9jc3YudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFhLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUd4QyxVQUFVO0FBQ1YsTUFBTSxPQUFPLFFBQVE7SUFDbkIsTUFBTSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztJQUMvQixNQUFNLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDO0lBRWxDLE1BQU0sQ0FBQyxZQUFZLENBQ2pCLElBQWMsRUFDZCxJQU1DO1FBRUQsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxDQUFDLGdCQUFnQjtRQUVuRCxzQkFBc0I7UUFDdEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxFQUFFLFNBQVMsSUFBSSxHQUFHLENBQUM7UUFDekMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsU0FBUyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUM7UUFDdEMsTUFBTSxXQUFXO1FBQ2YsYUFBYTtRQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3ZC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QUM7SUFDMUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxTQUEyQixFQUFFLGVBQWUsR0FBRyxRQUFRLENBQUMsZ0JBQWdCO1FBQ2xHLE1BQU0sR0FBRyxHQUFHLG1CQUFtQixDQUFDO1FBQ2hDLE1BQU0sUUFBUSxHQUFHLFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsSUFBSSxRQUFRLElBQUksUUFBUSxLQUFLLEdBQUc7WUFBRSxPQUFPLFFBQVEsQ0FBQztRQUNsRCxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBIdHRwRXZlbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgRmlsZUV2ZW50LCBGaWxlUmVzcG9uc2UgfSBmcm9tICcuLi91cGxvYWQtZmlsZS91cGxvYWQtZmlsZS5tb2RlbCc7XG5pbXBvcnQgeyBGaWxlc1V0aWxzIH0gZnJvbSAnLi9maWxlLnV0aWxzJztcbmltcG9ydCB7IGlzTm90TmlsIH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuLy9AZHluYW1pY1xuZXhwb3J0IGNsYXNzIENzdlV0aWxzIHtcbiAgc3RhdGljIERFRkFVTFRfU0VQQVJBVE9SID0gJywnO1xuICBzdGF0aWMgREVGQVVMVF9FTkNPRElORyA9ICdVVEYtOCc7XG5cbiAgc3RhdGljIGV4cG9ydFRvRmlsZShcbiAgICByb3dzOiBvYmplY3RbXSxcbiAgICBvcHRzPzoge1xuICAgICAgZmlsZW5hbWU/OiBzdHJpbmc7XG4gICAgICBoZWFkZXJzPzogc3RyaW5nW107XG4gICAgICBzZXBhcmF0b3I/OiBzdHJpbmc7XG4gICAgICBlbmNvZGluZz86IHN0cmluZztcbiAgICAgIHR5cGU/OiBzdHJpbmc7XG4gICAgfVxuICApIHtcbiAgICBpZiAoIXJvd3MgfHwgIXJvd3MubGVuZ3RoKSByZXR1cm47IC8vIFNraXAgaWYgZW1wdHlcblxuICAgIC8vIENyZWF0ZSB0ZXh0IGNvbnRlbnRcbiAgICBjb25zdCBzZXBhcmF0b3IgPSBvcHRzPy5zZXBhcmF0b3IgfHwgJywnO1xuICAgIGNvbnN0IHByb3RlY3RDZWxsUmVnZXhwID0gbmV3IFJlZ0V4cCgnLyhcInwnICsgc2VwYXJhdG9yICsgJ3xcXG4pL2cnKTtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocm93c1swXSk7XG4gICAgY29uc3QgaGVhZGVycyA9IG9wdHM/LmhlYWRlcnMgfHwga2V5cztcbiAgICBjb25zdCB0ZXh0Q29udGVudCA9XG4gICAgICAvLyBIZWFkZXIgcm93XG4gICAgICBoZWFkZXJzLmpvaW4oc2VwYXJhdG9yKSArXG4gICAgICAnXFxuJyArXG4gICAgICAvLyBEYXRhIHJvd3NcbiAgICAgIHJvd3NcbiAgICAgICAgLm1hcCgocm93KSA9PlxuICAgICAgICAgIGtleXNcbiAgICAgICAgICAgIC5tYXAoKGspID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY2VsbCA9IHJvd1trXSA9PT0gbnVsbCB8fCByb3dba10gPT09IHVuZGVmaW5lZCA/ICcnIDogcm93W2tdO1xuICAgICAgICAgICAgICBsZXQgY2VsbFN0cjogc3RyaW5nID0gY2VsbCBpbnN0YW5jZW9mIERhdGUgPyBjZWxsLnRvTG9jYWxlU3RyaW5nKCkgOiBjZWxsLnRvU3RyaW5nKCkucmVwbGFjZSgvXCIvZywgJ1wiXCInKTtcbiAgICAgICAgICAgICAgaWYgKHByb3RlY3RDZWxsUmVnZXhwLnRlc3QoY2VsbFN0cikpIHtcbiAgICAgICAgICAgICAgICBjZWxsU3RyID0gYFwiJHtjZWxsU3RyfVwiYDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gY2VsbFN0cjtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuam9pbihzZXBhcmF0b3IpXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oJ1xcbicpO1xuXG4gICAgLy8gV3JpdGUgdG8gZmlsZVxuICAgIEZpbGVzVXRpbHMud3JpdGVUZXh0VG9GaWxlKHRleHRDb250ZW50LCB7XG4gICAgICB0eXBlOiAndGV4dC9jc3YnLFxuICAgICAgZmlsZW5hbWU6ICdleHBvcnQuY3N2JyxcbiAgICAgIC4uLm9wdHMsXG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgcGFyc2VGaWxlKGZpbGU6IEZpbGUsIG9wdHM/OiB7IHNlcGFyYXRvcj86IHN0cmluZzsgZW5jb2Rpbmc/OiBzdHJpbmcgfSk6IE9ic2VydmFibGU8RmlsZUV2ZW50PHN0cmluZ1tdW10+PiB7XG4gICAgcmV0dXJuIEZpbGVzVXRpbHMucmVhZEFzVGV4dChmaWxlLCBvcHRzPy5lbmNvZGluZykucGlwZShcbiAgICAgIG1hcCgoZSkgPT4ge1xuICAgICAgICBpZiAoZS50eXBlID09PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzKSB7XG4gICAgICAgICAgY29uc3QgbG9hZGVkID0gTWF0aC5yb3VuZChlLmxvYWRlZCAqIDAuOCk7XG4gICAgICAgICAgcmV0dXJuIHsgLi4uZSwgbG9hZGVkIH07XG4gICAgICAgIH0gZWxzZSBpZiAoZSBpbnN0YW5jZW9mIEZpbGVSZXNwb25zZSkge1xuICAgICAgICAgIGNvbnN0IGJvZHkgPSBlLmJvZHk7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IENzdlV0aWxzLnBhcnNlQ1NWKGJvZHksIG9wdHMpO1xuICAgICAgICAgIHJldHVybiBuZXcgRmlsZVJlc3BvbnNlPHN0cmluZ1tdW10+KHsgYm9keTogZGF0YSB9KTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBmaWx0ZXIoaXNOb3ROaWwpXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBwYXJzZUNTVihib2R5OiBzdHJpbmcsIG9wdHM/OiB7IHNlcGFyYXRvcj86IHN0cmluZzsgc2tpcEVtcHR5TGluZT86IGJvb2xlYW4gfSk6IHN0cmluZ1tdW10ge1xuICAgIGNvbnN0IHNlcGFyYXRvciA9IG9wdHM/LnNlcGFyYXRvciB8fCAnLCc7XG4gICAgY29uc3Qgc2tpcEVtcHR5TGluZSA9ICFvcHRzIHx8IG9wdHMuc2tpcEVtcHR5TGluZSAhPT0gZmFsc2U7XG5cbiAgICAvLyBQcm90ZWN0IHNwZWNpYWwgY2hhcmFjdGVycyAocXVvdGUgYW5kIC9uKVxuICAgIGJvZHkgPSBib2R5XG4gICAgICAucmVwbGFjZSgnXCJcIicsICc8cXVvdGU+JykgLy8gUHJvdGVjdCBkb3VibGUgcXVvdGVcbiAgICAgIC5yZXBsYWNlKC8oXCJbXlxcblwiXSspXFxuXFxyPy9nbSwgJ1wiJDE8YnI+JykgLy8gUHJvdGVjdCBcXG4gaW5zaWRlIGEgcXVvdGVkIGV4cHJlc3Npb25cbiAgICAgIC5yZXBsYWNlKC9cXG5cXHIvZ20sICdcXG4nKTsgLy8gV2luZG93cyBDUlxuXG4gICAgY29uc3QgaGVhZGVyQW5kUm93cyA9IGJvZHkuc3BsaXQoJ1xcbicsIDIpO1xuICAgIGNvbnN0IGhlYWRlcnMgPSBoZWFkZXJBbmRSb3dzWzBdLnNwbGl0KHNlcGFyYXRvcik7XG5cbiAgICByZXR1cm4gYm9keVxuICAgICAgLnNwbGl0KCdcXG4nKSAvLyBzcGxpdCBpbnRvIHJvd3NcbiAgICAgIC5maWx0ZXIoKGxpbmUpID0+ICFza2lwRW1wdHlMaW5lIHx8IGxpbmUudHJpbSgpLmxlbmd0aCA+IDApIC8vIFNraXAgZW1wdHkgbGluZVxuICAgICAgLm1hcCgobGluZSkgPT4ge1xuICAgICAgICBjb25zdCBjZWxscyA9IGxpbmVcbiAgICAgICAgICAuc3BsaXQoc2VwYXJhdG9yLCBoZWFkZXJzLmxlbmd0aCkgLy8gc3BsaXQgaW50byBjZWxsc1xuICAgICAgICAgIC5tYXAoKGNlbGwpID0+IGNlbGwucmVwbGFjZSgvXlwiKFteXCJdKilcIiQvLCAnJDEnKSkgLy8gQ2xlYW4gdHJhaWxpbmcgcXVvdGVzXG4gICAgICAgICAgLm1hcCgoY2VsbCkgPT4gY2VsbC5yZXBsYWNlKCc8cXVvdGU+JywgJ1wiJykpIC8vIHJlc3RvcmUgcHJvdGVjdGVkIHF1b3RlXG4gICAgICAgICAgLm1hcCgoY2VsbCkgPT4gY2VsbC5yZXBsYWNlKCc8YnI+JywgJ1xcbicpKTsgLy8gcmVzdG9yZSBwcm90ZWN0ZWQgYnJcbiAgICAgICAgcmV0dXJuIGNlbGxzO1xuICAgICAgfSk7XG4gIH1cblxuICBzdGF0aWMgZ2V0TG9jYWxpemVkU2VwYXJhdG9yKHRyYW5zbGF0ZT86IFRyYW5zbGF0ZVNlcnZpY2UsIGRlZmF1bHRTZXBhcmF0b3IgPSBDc3ZVdGlscy5ERUZBVUxUX1NFUEFSQVRPUik6IHN0cmluZyB7XG4gICAgY29uc3Qga2V5ID0gJ0ZJTEUuQ1NWLlNFUEFSQVRPUic7XG4gICAgY29uc3Qgc2VwYXJhdG9yID0gdHJhbnNsYXRlPy5pbnN0YW50KGtleSk7XG4gICAgaWYgKHNlcGFyYXRvciAmJiBzZXBhcmF0b3IgIT09IGtleSkgcmV0dXJuIHNlcGFyYXRvcjtcbiAgICByZXR1cm4gZGVmYXVsdFNlcGFyYXRvcjtcbiAgfVxuXG4gIHN0YXRpYyBnZXRMb2NhbGl6ZWRFbmNvZGluZyh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIGRlZmF1bHRFbmNvZGluZyA9IENzdlV0aWxzLkRFRkFVTFRfRU5DT0RJTkcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGtleSA9ICdGSUxFLkNTVi5FTkNPRElORyc7XG4gICAgY29uc3QgZW5jb2RpbmcgPSB0cmFuc2xhdGU/Lmluc3RhbnQoa2V5KTtcbiAgICBpZiAoZW5jb2RpbmcgJiYgZW5jb2RpbmcgIT09IGtleSkgcmV0dXJuIGVuY29kaW5nO1xuICAgIHJldHVybiBkZWZhdWx0RW5jb2Rpbmc7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { Platform } from '@ionic/angular';
|
|
3
|
-
import { ImagesUtils } from './images.utils';
|
|
4
|
-
import { chainPromises, firstNotNilPromise } from '../observables';
|
|
5
|
-
import { HttpClient } from '@angular/common/http';
|
|
6
|
-
import { ENVIRONMENT } from '../../../environments/environment.class';
|
|
7
|
-
import { v4 as uuidv4 } from 'uuid';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@ionic/angular";
|
|
10
|
-
import * as i2 from "@angular/common/http";
|
|
11
|
-
export class FileService {
|
|
12
|
-
platform;
|
|
13
|
-
http;
|
|
14
|
-
environment;
|
|
15
|
-
_debug;
|
|
16
|
-
_started = false;
|
|
17
|
-
_imageDirectory;
|
|
18
|
-
get canUseFileSystem() {
|
|
19
|
-
return false;
|
|
20
|
-
// FIXME: seems not working well
|
|
21
|
-
//return !!this.file.dataDirectory;
|
|
22
|
-
}
|
|
23
|
-
constructor(platform,
|
|
24
|
-
//private transfer: FileTransfer,
|
|
25
|
-
//@Optional() private file: File,
|
|
26
|
-
http, environment) {
|
|
27
|
-
this.platform = platform;
|
|
28
|
-
this.http = http;
|
|
29
|
-
this.environment = environment;
|
|
30
|
-
this._debug = !environment.production;
|
|
31
|
-
platform.ready().then(() => this.start());
|
|
32
|
-
}
|
|
33
|
-
getImages(sources, opts) {
|
|
34
|
-
if (!this._started)
|
|
35
|
-
throw new Error('Platform must be started first!');
|
|
36
|
-
//const fileTransfer = this.canUseFileSystem ? this.transfer.create() : undefined;
|
|
37
|
-
//const jobsFactories = (sources || []).map(source => () => this.getImage(source, {...opts, fileTransfer}));
|
|
38
|
-
const jobsFactories = (sources || []).map((source) => () => this.getImage(source, { ...opts }));
|
|
39
|
-
return chainPromises(jobsFactories);
|
|
40
|
-
}
|
|
41
|
-
async getImage(fileUrl, opts) {
|
|
42
|
-
let outputType = (opts && opts.outputType) || (this.canUseFileSystem ? 'fileUrl' : 'dataUrl');
|
|
43
|
-
const debug = this._debug; /*&& (!opts || !opts.fileTransfer)*/
|
|
44
|
-
const now = debug && Date.now();
|
|
45
|
-
if (debug)
|
|
46
|
-
console.debug(`[file] Fetching image {${fileUrl}} into ${outputType}...`);
|
|
47
|
-
// Read the filename
|
|
48
|
-
const lastSlashIndex = fileUrl.lastIndexOf('/');
|
|
49
|
-
if (lastSlashIndex === -1)
|
|
50
|
-
throw new Error('Invalid URL: ' + fileUrl);
|
|
51
|
-
const fileName = (lastSlashIndex < fileUrl.length - 1 && fileUrl.substring(lastSlashIndex + 1)) || uuidv4();
|
|
52
|
-
// Download into the file system
|
|
53
|
-
if (outputType === 'fileUrl' && this.canUseFileSystem) {
|
|
54
|
-
console.warn(`WARN: [file] Downloading image {${fileUrl}} in local filesystem...`);
|
|
55
|
-
const targetFilePath = this._imageDirectory + fileName;
|
|
56
|
-
try {
|
|
57
|
-
const blob = await firstNotNilPromise(this.http.get(fileUrl, {
|
|
58
|
-
observe: 'body',
|
|
59
|
-
responseType: 'blob',
|
|
60
|
-
reportProgress: false,
|
|
61
|
-
}));
|
|
62
|
-
console.debug('[file] Getting blob :' + blob.type);
|
|
63
|
-
//await this.file.writeFile(this._imageDirectory, fileName, blob, {replace: true});
|
|
64
|
-
//const fileTransfer = (opts && opts.fileTransfer) || this.transfer.create();
|
|
65
|
-
//await fileTransfer.download(source, targetFilePath);
|
|
66
|
-
if (debug)
|
|
67
|
-
console.debug(`[file] Fetching image {${fileUrl}} into ${outputType} [OK] in ${Date.now() - now}ms`);
|
|
68
|
-
return targetFilePath;
|
|
69
|
-
}
|
|
70
|
-
catch (err) {
|
|
71
|
-
console.error(`[file] Error while download ${fileUrl}: ${(err && err.message) || err}`);
|
|
72
|
-
// Continue (fallback to data Url)
|
|
73
|
-
outputType = 'dataUrl';
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
if (outputType === 'dataUrl') {
|
|
77
|
-
// Get as data url (e.g. 'data:image/png:...')
|
|
78
|
-
const dataUrl = await ImagesUtils.readAndResizeFromUrl(fileUrl, opts);
|
|
79
|
-
if (debug)
|
|
80
|
-
console.debug(`[file] Fetching image {${fileUrl}} into ${outputType} [OK] in ${Date.now() - now}ms`);
|
|
81
|
-
return dataUrl;
|
|
82
|
-
}
|
|
83
|
-
// Keep original URL
|
|
84
|
-
return fileUrl;
|
|
85
|
-
}
|
|
86
|
-
/* -- protected methods -- */
|
|
87
|
-
start() {
|
|
88
|
-
// File system exists
|
|
89
|
-
if (this.canUseFileSystem) {
|
|
90
|
-
//console.info("[file] Application directory: ", this.file.applicationDirectory);
|
|
91
|
-
//console.info("[file] Application storage directory: ", this.file.applicationStorageDirectory);
|
|
92
|
-
//console.info("[file] Data directory: ", this.file.dataDirectory);
|
|
93
|
-
// this.file.createDir(this.file.dataDirectory, 'images', false)
|
|
94
|
-
// .then((dir) => {
|
|
95
|
-
// this._imageDirectory = this.file.dataDirectory + 'images/';
|
|
96
|
-
// console.info("[file] Images directory: ", dir.fullPath);
|
|
97
|
-
// })
|
|
98
|
-
// .catch(err => {
|
|
99
|
-
// console.error("[file] Cannot create the images directory: " + (this.file.dataDirectory + 'images/ : ' + (err && err.message || err)));
|
|
100
|
-
// this._imageDirectory = this.file.dataDirectory;
|
|
101
|
-
// });
|
|
102
|
-
}
|
|
103
|
-
this._started = true;
|
|
104
|
-
}
|
|
105
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FileService, deps: [{ token: i1.Platform }, { token: i2.HttpClient }, { token: ENVIRONMENT }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
106
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FileService, providedIn: 'root' });
|
|
107
|
-
}
|
|
108
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FileService, decorators: [{
|
|
109
|
-
type: Injectable,
|
|
110
|
-
args: [{
|
|
111
|
-
providedIn: 'root',
|
|
112
|
-
deps: [Platform, HttpClient, ENVIRONMENT],
|
|
113
|
-
}]
|
|
114
|
-
}], ctorParameters: () => [{ type: i1.Platform }, { type: i2.HttpClient }, { type: undefined, decorators: [{
|
|
115
|
-
type: Inject,
|
|
116
|
-
args: [ENVIRONMENT]
|
|
117
|
-
}] }] });
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZmlsZS9maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFNcEMsTUFBTSxPQUFPLFdBQVc7SUFhWjtJQUdBO0lBQ3VCO0lBaEJoQixNQUFNLENBQVU7SUFDekIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUVqQixlQUFlLENBQVM7SUFFaEMsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxLQUFLLENBQUM7UUFDYixnQ0FBZ0M7UUFDaEMsbUNBQW1DO0lBQ3JDLENBQUM7SUFFRCxZQUNVLFFBQWtCO0lBQzFCLGlDQUFpQztJQUNqQyxpQ0FBaUM7SUFDekIsSUFBZ0IsRUFDTyxXQUFXO1FBSmxDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFHbEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNPLGdCQUFXLEdBQVgsV0FBVyxDQUFBO1FBRTFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO1FBRXRDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFB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QztZQUN6QixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzdCLDhDQUE4QztZQUM5QyxNQUFNLE9BQU8sR0FBRyxNQUFNLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdEUsSUFBSSxLQUFLO2dCQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLE9BQU8sVUFBVSxVQUFVLFlBQVksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDaEgsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUVELG9CQUFvQjtRQUNwQixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsNkJBQTZCO0lBRW5CLEtBQUs7UUFDYixxQkFBcUI7UUFDckIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixpRkFBaUY7WUFDakYsZ0dBQWdHO1lBQ2hHLG1FQUFtRTtZQUNuRSxnRUFBZ0U7WUFDaEUscUJBQXFCO1lBQ3JCLGtFQUFrRTtZQUNsRSwrREFBK0Q7WUFDL0QsT0FBTztZQUNQLG9CQUFvQjtZQUNwQiw2SUFBNkk7WUFDN0ksc0RBQXNEO1lBQ3RELFFBQVE7UUFDVixDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQzt1R0FuSFUsV0FBVyxvRUFpQlosV0FBVzsyR0FqQlYsV0FBVyxjQUhWLE1BQU07OzJGQUdQLFdBQVc7a0JBSnZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07b0JBQ2xCLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDO2lCQUMxQzs7MEJBa0JJLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBJbWFnZXNVdGlscywgSW1hZ2VSZXNpemVPcHRpb25zIH0gZnJvbSAnLi9pbWFnZXMudXRpbHMnO1xuaW1wb3J0IHsgY2hhaW5Qcm9taXNlcywgZmlyc3ROb3ROaWxQcm9taXNlIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEVOVklST05NRU5UIH0gZnJvbSAnLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LmNsYXNzJztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZGVwczogW1BsYXRmb3JtLCBIdHRwQ2xpZW50LCBFTlZJUk9OTUVOVF0sXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVidWc6IGJvb2xlYW47XG4gIHByaXZhdGUgX3N0YXJ0ZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIF9pbWFnZURpcmVjdG9yeTogc3RyaW5nO1xuXG4gIGdldCBjYW5Vc2VGaWxlU3lzdGVtKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgICAvLyBGSVhNRTogc2VlbXMgbm90IHdvcmtpbmcgd2VsbFxuICAgIC8vcmV0dXJuICEhdGhpcy5maWxlLmRhdGFEaXJlY3Rvcnk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICAvL3ByaXZhdGUgdHJhbnNmZXI6IEZpbGVUcmFuc2ZlcixcbiAgICAvL0BPcHRpb25hbCgpIHByaXZhdGUgZmlsZTogRmlsZSxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgQEluamVjdChFTlZJUk9OTUVOVCkgcHJvdGVjdGVkIGVudmlyb25tZW50XG4gICkge1xuICAgIHRoaXMuX2RlYnVnID0gIWVudmlyb25tZW50LnByb2R1Y3Rpb247XG5cbiAgICBwbGF0Zm9ybS5yZWFkeSgpLnRoZW4oKCkgPT4gdGhpcy5zdGFydCgpKTtcbiAgfVxuXG4gIGdldEltYWdlcyhcbiAgICBzb3VyY2VzOiBzdHJpbmdbXSxcbiAgICBvcHRzPzogSW1hZ2VSZXNpemVPcHRpb25zICYge1xuICAgICAgb3V0cHV0VHlwZT86ICdmaWxlVXJsJyB8ICdkYXRhVXJsJztcbiAgICB9XG4gICk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBpZiAoIXRoaXMuX3N0YXJ0ZWQpIHRocm93IG5ldyBFcnJvcignUGxhdGZvcm0gbXVzdCBiZSBzdGFydGVkIGZpcnN0IScpO1xuXG4gICAgLy9jb25zdCBmaWxlVHJhbnNmZXIgPSB0aGlzLmNhblVzZUZpbGVTeXN0ZW0gPyB0aGlzLnRyYW5zZmVyLmNyZWF0ZSgpIDogdW5kZWZpbmVkO1xuICAgIC8vY29uc3Qgam9ic0ZhY3RvcmllcyA9IChzb3VyY2VzIHx8IFtdKS5tYXAoc291cmNlID0+ICgpID0+IHRoaXMuZ2V0SW1hZ2Uoc291cmNlLCB7Li4ub3B0cywgZmlsZVRyYW5zZmVyfSkpO1xuXG4gICAgY29uc3Qgam9ic0ZhY3RvcmllcyA9IChzb3VyY2VzIHx8IFtdKS5tYXAoKHNvdXJjZSkgPT4gKCkgPT4gdGhpcy5nZXRJbWFnZShzb3VyY2UsIHsgLi4ub3B0cyB9KSk7XG4gICAgcmV0dXJuIGNoYWluUHJvbWlzZXM8c3RyaW5nPihqb2JzRmFjdG9yaWVzKTtcbiAgfVxuXG4gIGFzeW5jIGdldEltYWdlKFxuICAgIGZpbGVVcmw6IHN0cmluZyxcbiAgICBvcHRzPzogSW1hZ2VSZXNpemVPcHRpb25zICYge1xuICAgICAgb3V0cHV0VHlwZT86ICdmaWxlVXJsJyB8ICdkYXRhVXJsJztcbiAgICB9XG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgbGV0IG91dHB1dFR5cGUgPSAob3B0cyAmJiBvcHRzLm91dHB1dFR5cGUpIHx8ICh0aGlzLmNhblVzZUZpbGVTeXN0ZW0gPyAnZmlsZVVybCcgOiAnZGF0YVVybCcpO1xuXG4gICAgY29uc3QgZGVidWcgPSB0aGlzLl9kZWJ1ZzsgLyomJiAoIW9wdHMgfHwgIW9wdHMuZmlsZVRyYW5zZmVyKSovXG4gICAgY29uc3Qgbm93ID0gZGVidWcgJiYgRGF0ZS5ub3coKTtcbiAgICBpZiAoZGVidWcpIGNvbnNvbGUuZGVidWcoYFtmaWxlXSBGZXRjaGluZyBpbWFnZSB7JHtmaWxlVXJsfX0gaW50byAke291dHB1dFR5cGV9Li4uYCk7XG5cbiAgICAvLyBSZWFkIHRoZSBmaWxlbmFtZVxuICAgIGNvbnN0IGxhc3RTbGFzaEluZGV4ID0gZmlsZVVybC5sYXN0SW5kZXhPZignLycpO1xuICAgIGlmIChsYXN0U2xhc2hJbmRleCA9PT0gLTEpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBVUkw6ICcgKyBmaWxlVXJsKTtcbiAgICBjb25zdCBmaWxlTmFtZSA9IChsYXN0U2xhc2hJbmRleCA8IGZpbGVVcmwubGVuZ3RoIC0gMSAmJiBmaWxlVXJsLnN1YnN0cmluZyhsYXN0U2xhc2hJbmRleCArIDEpKSB8fCB1dWlkdjQoKTtcblxuICAgIC8vIERvd25sb2FkIGludG8gdGhlIGZpbGUgc3lzdGVtXG4gICAgaWYgKG91dHB1dFR5cGUgPT09ICdmaWxlVXJsJyAmJiB0aGlzLmNhblVzZUZpbGVTeXN0ZW0pIHtcbiAgICAgIGNvbnNvbGUud2FybihgV0FSTjogW2ZpbGVdIERvd25sb2FkaW5nIGltYWdlIHske2ZpbGVVcmx9fSBpbiBsb2NhbCBmaWxlc3lzdGVtLi4uYCk7XG4gICAgICBjb25zdCB0YXJnZXRGaWxlUGF0aCA9IHRoaXMuX2ltYWdlRGlyZWN0b3J5ICsgZmlsZU5hbWU7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBibG9iOiBCbG9iID0gYXdhaXQgZmlyc3ROb3ROaWxQcm9taXNlKFxuICAgICAgICAgIHRoaXMuaHR0cC5nZXQoZmlsZVVybCwge1xuICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicsXG4gICAgICAgICAgICByZXBvcnRQcm9ncmVzczogZmFsc2UsXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgY29uc29sZS5kZWJ1ZygnW2ZpbGVdIEdldHRpbmcgYmxvYiA6JyArIGJsb2IudHlwZSk7XG5cbiAgICAgICAgLy9hd2FpdCB0aGlzLmZpbGUud3JpdGVGaWxlKHRoaXMuX2ltYWdlRGlyZWN0b3J5LCBmaWxlTmFtZSwgYmxvYiwge3JlcGxhY2U6IHRydWV9KTtcblxuICAgICAgICAvL2NvbnN0IGZpbGVUcmFuc2ZlciA9IChvcHRzICYmIG9wdHMuZmlsZVRyYW5zZmVyKSB8fCB0aGlzLnRyYW5zZmVyLmNyZWF0ZSgpO1xuICAgICAgICAvL2F3YWl0IGZpbGVUcmFuc2Zlci5kb3dubG9hZChzb3VyY2UsIHRhcmdldEZpbGVQYXRoKTtcbiAgICAgICAgaWYgKGRlYnVnKSBjb25zb2xlLmRlYnVnKGBbZmlsZV0gRmV0Y2hpbmcgaW1hZ2UgeyR7ZmlsZVVybH19IGludG8gJHtvdXRwdXRUeXBlfSBbT0tdIGluICR7RGF0ZS5ub3coKSAtIG5vd31tc2ApO1xuICAgICAgICByZXR1cm4gdGFyZ2V0RmlsZVBhdGg7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgW2ZpbGVdIEVycm9yIHdoaWxlIGRvd25sb2FkICR7ZmlsZVVybH06ICR7KGVyciAmJiBlcnIubWVzc2FnZSkgfHwgZXJyfWApO1xuXG4gICAgICAgIC8vIENvbnRpbnVlIChmYWxsYmFjayB0byBkYXRhIFVybClcbiAgICAgICAgb3V0cHV0VHlwZSA9ICdkYXRhVXJsJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob3V0cHV0VHlwZSA9PT0gJ2RhdGFVcmwnKSB7XG4gICAgICAvLyBHZXQgYXMgZGF0YSB1cmwgKGUuZy4gJ2RhdGE6aW1hZ2UvcG5nOi4uLicpXG4gICAgICBjb25zdCBkYXRhVXJsID0gYXdhaXQgSW1hZ2VzVXRpbHMucmVhZEFuZFJlc2l6ZUZyb21VcmwoZmlsZVVybCwgb3B0cyk7XG4gICAgICBpZiAoZGVidWcpIGNvbnNvbGUuZGVidWcoYFtmaWxlXSBGZXRjaGluZyBpbWFnZSB7JHtmaWxlVXJsfX0gaW50byAke291dHB1dFR5cGV9IFtPS10gaW4gJHtEYXRlLm5vdygpIC0gbm93fW1zYCk7XG4gICAgICByZXR1cm4gZGF0YVVybDtcbiAgICB9XG5cbiAgICAvLyBLZWVwIG9yaWdpbmFsIFVSTFxuICAgIHJldHVybiBmaWxlVXJsO1xuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIG1ldGhvZHMgLS0gKi9cblxuICBwcm90ZWN0ZWQgc3RhcnQoKSB7XG4gICAgLy8gRmlsZSBzeXN0ZW0gZXhpc3RzXG4gICAgaWYgKHRoaXMuY2FuVXNlRmlsZVN5c3RlbSkge1xuICAgICAgLy9jb25zb2xlLmluZm8oXCJbZmlsZV0gQXBwbGljYXRpb24gZGlyZWN0b3J5OiBcIiwgdGhpcy5maWxlLmFwcGxpY2F0aW9uRGlyZWN0b3J5KTtcbiAgICAgIC8vY29uc29sZS5pbmZvKFwiW2ZpbGVdIEFwcGxpY2F0aW9uIHN0b3JhZ2UgZGlyZWN0b3J5OiBcIiwgdGhpcy5maWxlLmFwcGxpY2F0aW9uU3RvcmFnZURpcmVjdG9yeSk7XG4gICAgICAvL2NvbnNvbGUuaW5mbyhcIltmaWxlXSBEYXRhIGRpcmVjdG9yeTogXCIsIHRoaXMuZmlsZS5kYXRhRGlyZWN0b3J5KTtcbiAgICAgIC8vIHRoaXMuZmlsZS5jcmVhdGVEaXIodGhpcy5maWxlLmRhdGFEaXJlY3RvcnksICdpbWFnZXMnLCBmYWxzZSlcbiAgICAgIC8vICAgLnRoZW4oKGRpcikgPT4ge1xuICAgICAgLy8gICAgIHRoaXMuX2ltYWdlRGlyZWN0b3J5ID0gdGhpcy5maWxlLmRhdGFEaXJlY3RvcnkgKyAnaW1hZ2VzLyc7XG4gICAgICAvLyAgICAgY29uc29sZS5pbmZvKFwiW2ZpbGVdIEltYWdlcyBkaXJlY3Rvcnk6IFwiLCBkaXIuZnVsbFBhdGgpO1xuICAgICAgLy8gICB9KVxuICAgICAgLy8gICAuY2F0Y2goZXJyID0+IHtcbiAgICAgIC8vICAgICBjb25zb2xlLmVycm9yKFwiW2ZpbGVdIENhbm5vdCBjcmVhdGUgdGhlIGltYWdlcyBkaXJlY3Rvcnk6IFwiICsgKHRoaXMuZmlsZS5kYXRhRGlyZWN0b3J5ICsgJ2ltYWdlcy8gOiAnICsgKGVyciAmJiBlcnIubWVzc2FnZSB8fCBlcnIpKSk7XG4gICAgICAvLyAgICAgdGhpcy5faW1hZ2VEaXJlY3RvcnkgPSB0aGlzLmZpbGUuZGF0YURpcmVjdG9yeTtcbiAgICAgIC8vICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhcnRlZCA9IHRydWU7XG4gIH1cbn1cbiJdfQ==
|