@bravobit/bb-foundation 0.45.3 → 0.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/auth/lib/auth.config.d.ts +0 -2
- package/auth/lib/auth.service.d.ts +1 -1
- package/auth/lib/directives/authenticated.directive.d.ts +1 -1
- package/collections/lib/directives/collections-data-row.directive.d.ts +1 -1
- package/collections/lib/directives/collections-data.directive.d.ts +1 -1
- package/collections/lib/directives/collections-empty.directive.d.ts +1 -1
- package/collections/lib/directives/collections-error.directive.d.ts +1 -1
- package/collections/lib/directives/collections-initial.directive.d.ts +1 -1
- package/collections/lib/directives/collections-item.directive.d.ts +1 -1
- package/dialog/lib/dialog-container/dialog-container.component.d.ts +1 -0
- package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +1 -0
- package/fesm2022/bravobit-bb-foundation-auth.mjs +44 -50
- package/fesm2022/bravobit-bb-foundation-auth.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-collections.mjs +69 -75
- package/fesm2022/bravobit-bb-foundation-collections.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-combobox.mjs +21 -24
- package/fesm2022/bravobit-bb-foundation-combobox.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-dashboard.mjs +35 -35
- package/fesm2022/bravobit-bb-foundation-dashboard.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-dialog.mjs +63 -47
- package/fesm2022/bravobit-bb-foundation-dialog.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-elements.mjs +119 -131
- package/fesm2022/bravobit-bb-foundation-elements.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-http.mjs +10 -10
- package/fesm2022/bravobit-bb-foundation-http.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-localize.mjs +25 -32
- package/fesm2022/bravobit-bb-foundation-localize.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-masking.mjs +19 -22
- package/fesm2022/bravobit-bb-foundation-masking.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-notifications.mjs +15 -17
- package/fesm2022/bravobit-bb-foundation-notifications.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-permissions.mjs +11 -12
- package/fesm2022/bravobit-bb-foundation-permissions.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-recaptcha.mjs +11 -11
- package/fesm2022/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-rxjs.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-select.mjs +33 -36
- package/fesm2022/bravobit-bb-foundation-select.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-storage.mjs +16 -8
- package/fesm2022/bravobit-bb-foundation-storage.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-table.mjs +29 -31
- package/fesm2022/bravobit-bb-foundation-table.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-tooltip.mjs +12 -13
- package/fesm2022/bravobit-bb-foundation-tooltip.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-utils.mjs +20 -24
- package/fesm2022/bravobit-bb-foundation-utils.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation.mjs +21 -21
- package/fesm2022/bravobit-bb-foundation.mjs.map +1 -1
- package/localize/lib/localize.config.d.ts +0 -1
- package/localize/lib/localize.service.d.ts +1 -1
- package/localize/lib/views/localize-template.directive.d.ts +1 -1
- package/masking/lib/masking.service.d.ts +2 -2
- package/notifications/lib/notifications-list/notifications-list.component.d.ts +1 -2
- package/package.json +7 -45
- package/permissions/lib/directives/permission.directive.d.ts +1 -1
- package/select/lib/select/select.component.d.ts +1 -0
- package/storage/lib/interfaces/strategy.interface.d.ts +1 -1
- package/table/lib/components/table/table.component.d.ts +2 -2
- package/esm2022/auth/bravobit-bb-foundation-auth.mjs +0 -5
- package/esm2022/auth/lib/auth.config.mjs +0 -16
- package/esm2022/auth/lib/auth.interceptor.mjs +0 -87
- package/esm2022/auth/lib/auth.module.mjs +0 -25
- package/esm2022/auth/lib/auth.service.mjs +0 -261
- package/esm2022/auth/lib/auth.session.mjs +0 -142
- package/esm2022/auth/lib/directives/authenticated.directive.mjs +0 -78
- package/esm2022/auth/lib/guards/anonymous.guard.mjs +0 -29
- package/esm2022/auth/lib/guards/authenticated.guard.mjs +0 -32
- package/esm2022/auth/lib/helpers/jwt.helper.mjs +0 -67
- package/esm2022/auth/lib/interfaces/config.interface.mjs +0 -4
- package/esm2022/auth/lib/interfaces/provider.interface.mjs +0 -2
- package/esm2022/auth/lib/interfaces/token.interface.mjs +0 -2
- package/esm2022/auth/lib/providers/email.provider.mjs +0 -27
- package/esm2022/auth/lib/providers/verify.provider.mjs +0 -25
- package/esm2022/auth/lib/tokens/use-authorization.token.mjs +0 -3
- package/esm2022/auth/public_api.mjs +0 -15
- package/esm2022/bravobit-bb-foundation.mjs +0 -5
- package/esm2022/collections/bravobit-bb-foundation-collections.mjs +0 -5
- package/esm2022/collections/lib/classes/array.collection.mjs +0 -85
- package/esm2022/collections/lib/collection.mjs +0 -98
- package/esm2022/collections/lib/collections.module.mjs +0 -84
- package/esm2022/collections/lib/components/collections-actions/collections-actions.component.mjs +0 -37
- package/esm2022/collections/lib/components/collections-grid/collections-grid.component.mjs +0 -52
- package/esm2022/collections/lib/components/collections-pager/collections-pager.component.mjs +0 -114
- package/esm2022/collections/lib/components/collections-table/collections-table.component.mjs +0 -86
- package/esm2022/collections/lib/components/collections-table-label/collections-table-label.component.mjs +0 -30
- package/esm2022/collections/lib/components/collections-table-sorting/collections-table-sorting.component.mjs +0 -65
- package/esm2022/collections/lib/components/collections-viewer/collections-viewer.component.mjs +0 -37
- package/esm2022/collections/lib/directives/collections-data-row.directive.mjs +0 -29
- package/esm2022/collections/lib/directives/collections-data.directive.mjs +0 -29
- package/esm2022/collections/lib/directives/collections-empty.directive.mjs +0 -29
- package/esm2022/collections/lib/directives/collections-error.directive.mjs +0 -29
- package/esm2022/collections/lib/directives/collections-initial.directive.mjs +0 -23
- package/esm2022/collections/lib/directives/collections-item.directive.mjs +0 -29
- package/esm2022/collections/lib/interfaces/array-collection.interface.mjs +0 -2
- package/esm2022/collections/lib/interfaces/collection.interface.mjs +0 -2
- package/esm2022/collections/lib/providers/api-collection.provider.mjs +0 -103
- package/esm2022/collections/lib/providers/collection.provider.mjs +0 -39
- package/esm2022/collections/lib/providers/local-collection.provider.mjs +0 -25
- package/esm2022/collections/public_api.mjs +0 -22
- package/esm2022/combobox/bravobit-bb-foundation-combobox.mjs +0 -5
- package/esm2022/combobox/combobox/combobox-container.directive.mjs +0 -137
- package/esm2022/combobox/combobox/combobox.component.mjs +0 -118
- package/esm2022/combobox/combobox-label.directive.mjs +0 -14
- package/esm2022/combobox/combobox-option.directive.mjs +0 -17
- package/esm2022/combobox/combobox-panel/combobox-panel.animation.mjs +0 -11
- package/esm2022/combobox/combobox-panel/combobox-panel.component.mjs +0 -42
- package/esm2022/combobox/combobox.interface.mjs +0 -2
- package/esm2022/combobox/public_api.mjs +0 -4
- package/esm2022/dashboard/bravobit-bb-foundation-dashboard.mjs +0 -5
- package/esm2022/dashboard/lib/dashboard/dashboard.component.mjs +0 -50
- package/esm2022/dashboard/lib/dashboard-header/dashboard-header.component.mjs +0 -25
- package/esm2022/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +0 -28
- package/esm2022/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +0 -32
- package/esm2022/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +0 -75
- package/esm2022/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +0 -93
- package/esm2022/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +0 -60
- package/esm2022/dashboard/lib/dashboard.module.mjs +0 -50
- package/esm2022/dashboard/public_api.mjs +0 -9
- package/esm2022/dialog/bravobit-bb-foundation-dialog.mjs +0 -5
- package/esm2022/dialog/lib/dialog-actions/dialog-actions.component.mjs +0 -12
- package/esm2022/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +0 -44
- package/esm2022/dialog/lib/dialog-container/dialog-container.component.mjs +0 -58
- package/esm2022/dialog/lib/dialog-header/dialog-header.component.mjs +0 -15
- package/esm2022/dialog/lib/dialog-link/dialog-link.component.mjs +0 -11
- package/esm2022/dialog/lib/dialog-modal/dialog-modal.component.mjs +0 -57
- package/esm2022/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +0 -53
- package/esm2022/dialog/lib/dialog.config.mjs +0 -8
- package/esm2022/dialog/lib/dialog.insertion.mjs +0 -18
- package/esm2022/dialog/lib/dialog.interfaces.mjs +0 -9
- package/esm2022/dialog/lib/dialog.module.mjs +0 -64
- package/esm2022/dialog/lib/dialog.ref.mjs +0 -16
- package/esm2022/dialog/lib/dialog.service.mjs +0 -75
- package/esm2022/dialog/lib/directives/confirm.directive.mjs +0 -48
- package/esm2022/dialog/public_api.mjs +0 -12
- package/esm2022/elements/bravobit-bb-foundation-elements.mjs +0 -5
- package/esm2022/elements/lib/avatar/avatar.component.mjs +0 -175
- package/esm2022/elements/lib/button/button.component.mjs +0 -68
- package/esm2022/elements/lib/checkbox/checkbox.component.mjs +0 -116
- package/esm2022/elements/lib/checkbox-group/checkbox-group.component.mjs +0 -34
- package/esm2022/elements/lib/date-picker/date-picker.component.mjs +0 -323
- package/esm2022/elements/lib/directives/addon.directive.mjs +0 -27
- package/esm2022/elements/lib/directives/extra-error-controls.directive.mjs +0 -41
- package/esm2022/elements/lib/directives/file-drop.directive.mjs +0 -62
- package/esm2022/elements/lib/directives/form-submit.directive.mjs +0 -54
- package/esm2022/elements/lib/directives/form-submitter.directive.mjs +0 -24
- package/esm2022/elements/lib/directives/image-upload.directive.mjs +0 -143
- package/esm2022/elements/lib/directives/input.directive.mjs +0 -49
- package/esm2022/elements/lib/elements.config.mjs +0 -54
- package/esm2022/elements/lib/elements.interfaces.mjs +0 -5
- package/esm2022/elements/lib/elements.module.mjs +0 -146
- package/esm2022/elements/lib/file-picker/file-picker.component.mjs +0 -196
- package/esm2022/elements/lib/form-control/form-control.component.mjs +0 -46
- package/esm2022/elements/lib/form-error/form-error.component.mjs +0 -106
- package/esm2022/elements/lib/form-group/form-group.component.mjs +0 -19
- package/esm2022/elements/lib/icon/icon.component.mjs +0 -122
- package/esm2022/elements/lib/image-picker/image-picker.component.mjs +0 -126
- package/esm2022/elements/lib/multi-file-control/multi-file-control.component.mjs +0 -149
- package/esm2022/elements/lib/pipes/date.pipe.mjs +0 -28
- package/esm2022/elements/lib/pipes/file-image.pipe.mjs +0 -48
- package/esm2022/elements/lib/pipes/file-size.pipe.mjs +0 -27
- package/esm2022/elements/lib/pipes/relative-time.pipe.mjs +0 -99
- package/esm2022/elements/lib/radio-button/radio-button.component.mjs +0 -60
- package/esm2022/elements/lib/radio-group/radio-group.component.mjs +0 -103
- package/esm2022/elements/lib/spinner/spinner.component.mjs +0 -22
- package/esm2022/elements/public_api.mjs +0 -30
- package/esm2022/http/bravobit-bb-foundation-http.mjs +0 -5
- package/esm2022/http/lib/classes/http.config.mjs +0 -32
- package/esm2022/http/lib/classes/http.error.mjs +0 -20
- package/esm2022/http/lib/http.config.mjs +0 -18
- package/esm2022/http/lib/http.interfaces.mjs +0 -4
- package/esm2022/http/lib/http.module.mjs +0 -31
- package/esm2022/http/lib/interceptors/base-url.interceptor.mjs +0 -60
- package/esm2022/http/lib/interceptors/error.interceptor.mjs +0 -31
- package/esm2022/http/public_api.mjs +0 -8
- package/esm2022/lib/core/functions/array.utils.mjs +0 -7
- package/esm2022/lib/core/functions/date.utils.mjs +0 -31
- package/esm2022/lib/core/functions/password.utils.mjs +0 -17
- package/esm2022/lib/core/functions/route-cache.utils.mjs +0 -23
- package/esm2022/lib/core/miscellaneous/coercion.mjs +0 -5
- package/esm2022/lib/core/miscellaneous/regex.mjs +0 -44
- package/esm2022/lib/core/miscellaneous/validator.mjs +0 -85
- package/esm2022/lib/core/services/exif.service.mjs +0 -165
- package/esm2022/lib/core/services/file-loader.service.mjs +0 -85
- package/esm2022/lib/core/services/files.service.mjs +0 -78
- package/esm2022/lib/core/services/image-converter.service.mjs +0 -126
- package/esm2022/lib/core/services/languages.service.mjs +0 -75
- package/esm2022/lib/core/services/network.service.mjs +0 -58
- package/esm2022/lib/core/services/patch.service.mjs +0 -66
- package/esm2022/lib/core/tokens/accept-language.token.mjs +0 -3
- package/esm2022/lib/core/tokens/base-url.token.mjs +0 -3
- package/esm2022/lib/core/tokens/cookie.token.mjs +0 -3
- package/esm2022/lib/core/tokens/global-focus-mode.token.mjs +0 -10
- package/esm2022/lib/core/tokens/location.token.mjs +0 -6
- package/esm2022/lib/core/tokens/navigator.token.mjs +0 -6
- package/esm2022/lib/core/tokens/window.token.mjs +0 -12
- package/esm2022/localize/bravobit-bb-foundation-localize.mjs +0 -5
- package/esm2022/localize/lib/dictionary/dictionary.class.mjs +0 -96
- package/esm2022/localize/lib/dictionary/dictionary.context.mjs +0 -24
- package/esm2022/localize/lib/dictionary/dictionary.data.mjs +0 -7
- package/esm2022/localize/lib/functions/date.function.mjs +0 -18
- package/esm2022/localize/lib/functions/lowercase.function.mjs +0 -13
- package/esm2022/localize/lib/functions/uppercase.function.mjs +0 -13
- package/esm2022/localize/lib/handlers/missing.handler.mjs +0 -13
- package/esm2022/localize/lib/interfaces/config.interfaces.mjs +0 -2
- package/esm2022/localize/lib/interfaces/functions.interfaces.mjs +0 -8
- package/esm2022/localize/lib/interfaces/handlers.interfaces.mjs +0 -2
- package/esm2022/localize/lib/interfaces/options.interfaces.mjs +0 -6
- package/esm2022/localize/lib/localizations/dutch.localization.mjs +0 -64
- package/esm2022/localize/lib/localizations/english.localization.mjs +0 -64
- package/esm2022/localize/lib/localizations/papiamento.localization.mjs +0 -64
- package/esm2022/localize/lib/localizations/spanish.localization.mjs +0 -64
- package/esm2022/localize/lib/localize.config.mjs +0 -43
- package/esm2022/localize/lib/localize.module.mjs +0 -39
- package/esm2022/localize/lib/localize.pipe.mjs +0 -48
- package/esm2022/localize/lib/localize.service.mjs +0 -172
- package/esm2022/localize/lib/localize.tokens.mjs +0 -18
- package/esm2022/localize/lib/transforms/abstract.transform.mjs +0 -30
- package/esm2022/localize/lib/transforms/interpolate.transform.mjs +0 -45
- package/esm2022/localize/lib/transforms/plural.transform.mjs +0 -49
- package/esm2022/localize/lib/transforms/reference.transform.mjs +0 -19
- package/esm2022/localize/lib/views/localize-string/localize-string.component.mjs +0 -89
- package/esm2022/localize/lib/views/localize-template.directive.mjs +0 -23
- package/esm2022/localize/public_api.mjs +0 -27
- package/esm2022/masking/bravobit-bb-foundation-masking.mjs +0 -5
- package/esm2022/masking/lib/directives/currency-mask.directive.mjs +0 -41
- package/esm2022/masking/lib/directives/date-mask.directive.mjs +0 -41
- package/esm2022/masking/lib/directives/input-mask.directive.mjs +0 -126
- package/esm2022/masking/lib/input-mask.interface.mjs +0 -2
- package/esm2022/masking/lib/masking.module.mjs +0 -30
- package/esm2022/masking/lib/masking.service.mjs +0 -104
- package/esm2022/masking/public_api.mjs +0 -7
- package/esm2022/notifications/bravobit-bb-foundation-notifications.mjs +0 -5
- package/esm2022/notifications/lib/notifications-item/notifications-item.component.mjs +0 -112
- package/esm2022/notifications/lib/notifications-list/notifications-list.component.mjs +0 -48
- package/esm2022/notifications/lib/notifications.animations.mjs +0 -28
- package/esm2022/notifications/lib/notifications.config.mjs +0 -8
- package/esm2022/notifications/lib/notifications.interfaces.mjs +0 -31
- package/esm2022/notifications/lib/notifications.module.mjs +0 -20
- package/esm2022/notifications/lib/notifications.service.mjs +0 -161
- package/esm2022/notifications/public_api.mjs +0 -5
- package/esm2022/permissions/bravobit-bb-foundation-permissions.mjs +0 -5
- package/esm2022/permissions/lib/directives/permission.directive.mjs +0 -95
- package/esm2022/permissions/lib/guards/permission.guard.mjs +0 -25
- package/esm2022/permissions/lib/handlers/abstract.handler.mjs +0 -3
- package/esm2022/permissions/lib/handlers/local.handler.mjs +0 -29
- package/esm2022/permissions/lib/permissions.config.mjs +0 -20
- package/esm2022/permissions/lib/permissions.interface.mjs +0 -8
- package/esm2022/permissions/lib/permissions.module.mjs +0 -25
- package/esm2022/permissions/lib/permissions.service.mjs +0 -100
- package/esm2022/permissions/public_api.mjs +0 -9
- package/esm2022/public_api.mjs +0 -25
- package/esm2022/recaptcha/bravobit-bb-foundation-recaptcha.mjs +0 -5
- package/esm2022/recaptcha/lib/recaptcha/recaptcha.component.mjs +0 -225
- package/esm2022/recaptcha/lib/recaptcha-loader.service.mjs +0 -80
- package/esm2022/recaptcha/lib/recaptcha.config.mjs +0 -8
- package/esm2022/recaptcha/lib/recaptcha.interface.mjs +0 -3
- package/esm2022/recaptcha/lib/recaptcha.module.mjs +0 -27
- package/esm2022/recaptcha/public_api.mjs +0 -6
- package/esm2022/rxjs/bravobit-bb-foundation-rxjs.mjs +0 -5
- package/esm2022/rxjs/lib/observables/get-control-value.observable.mjs +0 -6
- package/esm2022/rxjs/lib/observables/get-route-param.observable.mjs +0 -5
- package/esm2022/rxjs/lib/operators/combine-latest-map.operator.mjs +0 -10
- package/esm2022/rxjs/lib/operators/filter-nil.operator.mjs +0 -5
- package/esm2022/rxjs/public_api.mjs +0 -5
- package/esm2022/select/bravobit-bb-foundation-select.mjs +0 -5
- package/esm2022/select/lib/select/select.component.mjs +0 -288
- package/esm2022/select/lib/select-label.directive.mjs +0 -18
- package/esm2022/select/lib/select-multi-label.directive.mjs +0 -18
- package/esm2022/select/lib/select-option-group.directive.mjs +0 -18
- package/esm2022/select/lib/select-option.directive.mjs +0 -18
- package/esm2022/select/lib/select.config.mjs +0 -8
- package/esm2022/select/lib/select.module.mjs +0 -46
- package/esm2022/select/public_api.mjs +0 -8
- package/esm2022/storage/bravobit-bb-foundation-storage.mjs +0 -5
- package/esm2022/storage/lib/interfaces/attributes.interface.mjs +0 -2
- package/esm2022/storage/lib/interfaces/memory.interface.mjs +0 -2
- package/esm2022/storage/lib/interfaces/strategy.interface.mjs +0 -2
- package/esm2022/storage/lib/storage.service.mjs +0 -113
- package/esm2022/storage/lib/strategies/cookie-storage.strategy.mjs +0 -144
- package/esm2022/storage/lib/strategies/memory-storage.strategy.mjs +0 -54
- package/esm2022/storage/lib/strategies/polyfill-storage.strategy.mjs +0 -100
- package/esm2022/storage/public_api.mjs +0 -8
- package/esm2022/table/bravobit-bb-foundation-table.mjs +0 -5
- package/esm2022/table/lib/components/table/table.component.mjs +0 -200
- package/esm2022/table/lib/components/table-cell/table-cell.component.mjs +0 -11
- package/esm2022/table/lib/components/table-header-cell/table-header-cell.component.mjs +0 -135
- package/esm2022/table/lib/components/table-pager/table-pager.component.mjs +0 -136
- package/esm2022/table/lib/data/datasource.data.mjs +0 -30
- package/esm2022/table/lib/data/generic.data.mjs +0 -84
- package/esm2022/table/lib/interfaces/datasource.interface.mjs +0 -2
- package/esm2022/table/lib/interfaces/table.interfaces.mjs +0 -2
- package/esm2022/table/lib/table.module.mjs +0 -44
- package/esm2022/table/public_api.mjs +0 -10
- package/esm2022/tooltip/bravobit-bb-foundation-tooltip.mjs +0 -5
- package/esm2022/tooltip/lib/tooltip-container/tooltip-container.component.mjs +0 -23
- package/esm2022/tooltip/lib/tooltip.directive.mjs +0 -130
- package/esm2022/tooltip/lib/tooltip.interfaces.mjs +0 -4
- package/esm2022/tooltip/lib/tooltip.module.mjs +0 -16
- package/esm2022/tooltip/public_api.mjs +0 -5
- package/esm2022/utils/bravobit-bb-foundation-utils.mjs +0 -5
- package/esm2022/utils/lib/directives/autosize.directive.mjs +0 -76
- package/esm2022/utils/lib/directives/focus-trap.directive.mjs +0 -80
- package/esm2022/utils/lib/directives/focus.directive.mjs +0 -57
- package/esm2022/utils/lib/directives/template.directive.mjs +0 -33
- package/esm2022/utils/lib/utils.module.mjs +0 -35
- package/esm2022/utils/public_api.mjs +0 -6
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
export class ArrayCollection {
|
|
2
|
-
value;
|
|
3
|
-
constructor(value) {
|
|
4
|
-
this.value = value;
|
|
5
|
-
}
|
|
6
|
-
search(query, fields) {
|
|
7
|
-
const normalizedQuery = this.normalizeValueAsString(query);
|
|
8
|
-
if (normalizedQuery === null || normalizedQuery?.length <= 0) {
|
|
9
|
-
return this;
|
|
10
|
-
}
|
|
11
|
-
const queryFields = fields ?? [];
|
|
12
|
-
if (queryFields.length <= 0) {
|
|
13
|
-
throw new Error('cannot search without query fields');
|
|
14
|
-
}
|
|
15
|
-
this.value = this.value.filter(item => {
|
|
16
|
-
for (const field of queryFields) {
|
|
17
|
-
const normalizedValue = this.normalizeValueAsString(item?.[field]);
|
|
18
|
-
if (normalizedValue === null) {
|
|
19
|
-
continue;
|
|
20
|
-
}
|
|
21
|
-
if (normalizedValue.includes(normalizedQuery)) {
|
|
22
|
-
return true;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return false;
|
|
26
|
-
});
|
|
27
|
-
return this;
|
|
28
|
-
}
|
|
29
|
-
sortBy(sort, sortables) {
|
|
30
|
-
if (sort === null || sort === undefined) {
|
|
31
|
-
return this;
|
|
32
|
-
}
|
|
33
|
-
const sorts = Array.isArray(sort) ? sort : [sort];
|
|
34
|
-
if (sorts.length <= 0) {
|
|
35
|
-
return this;
|
|
36
|
-
}
|
|
37
|
-
this.value = this.value.sort((a, b) => {
|
|
38
|
-
for (const item of sorts) {
|
|
39
|
-
const type = sortables?.[item?.name] ?? null;
|
|
40
|
-
if (type === null) {
|
|
41
|
-
throw new Error(`invalid sorting key "${item?.name?.toString()}"`);
|
|
42
|
-
}
|
|
43
|
-
const aValue = a?.[item?.name] ?? null;
|
|
44
|
-
const bValue = b?.[item?.name] ?? null;
|
|
45
|
-
const direction = item?.direction ?? null;
|
|
46
|
-
if (type === 'string') {
|
|
47
|
-
const comparison = String(aValue).localeCompare(String(bValue));
|
|
48
|
-
if (comparison !== 0) {
|
|
49
|
-
return direction === 'asc' ? comparison : -comparison;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
else if (type === 'number') {
|
|
53
|
-
if (aValue < bValue)
|
|
54
|
-
return direction === 'asc' ? -1 : 1;
|
|
55
|
-
if (aValue > bValue)
|
|
56
|
-
return direction === 'asc' ? 1 : -1;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return 0;
|
|
60
|
-
});
|
|
61
|
-
return this;
|
|
62
|
-
}
|
|
63
|
-
toPage(pageNumber, pageSize) {
|
|
64
|
-
const totalEntries = this.value?.length ?? 0;
|
|
65
|
-
const totalPages = Math.max(1, Math.ceil(totalEntries / pageSize));
|
|
66
|
-
const startIndex = (pageNumber - 1) * pageSize;
|
|
67
|
-
const endIndex = startIndex + pageSize;
|
|
68
|
-
const data = this.value?.slice(startIndex, endIndex) ?? [];
|
|
69
|
-
return { totalPages, totalEntries, pageSize, pageNumber, data };
|
|
70
|
-
}
|
|
71
|
-
toArray() {
|
|
72
|
-
return this.value;
|
|
73
|
-
}
|
|
74
|
-
normalizeValueAsString(value) {
|
|
75
|
-
if (value === null || value === undefined) {
|
|
76
|
-
return null;
|
|
77
|
-
}
|
|
78
|
-
return value
|
|
79
|
-
.toString()
|
|
80
|
-
.toLowerCase()
|
|
81
|
-
.normalize('NFD')
|
|
82
|
-
.replace(/[\u0300-\u036f]/g, '');
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29sbGVjdGlvbnMvc3JjL2xpYi9jbGFzc2VzL2FycmF5LmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLGVBQWU7SUFFRjtJQUF0QixZQUFzQixLQUFVO1FBQVYsVUFBSyxHQUFMLEtBQUssQ0FBSztJQUNoQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWEsRUFBRSxNQUFzQztRQUN4RCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0QsSUFBSSxlQUFlLEtBQUssSUFBSSxJQUFJLGVBQWUsRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDM0QsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDakMsSUFBSSxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNsQyxLQUFLLE1BQU0sS0FBSyxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUM5QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDbkUsSUFBSSxlQUFlLEtBQUssSUFBSSxFQUFFLENBQUM7b0JBQzNCLFNBQVM7Z0JBQ2IsQ0FBQztnQkFFRCxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztvQkFDNUMsT0FB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RyxVQUFVLEdBQUcsUUFBUSxDQUFDO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFM0QsT0FBTyxFQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsT0FBTztRQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRVMsc0JBQXNCLENBQUMsS0FBYztRQUMzQyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hDLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxPQUFPLEtBQUs7YUFDUCxRQUFRLEVBQUU7YUFDVixXQUFXLEVBQUU7YUFDYixTQUFTLENBQUMsS0FBSyxDQUFDO2FBQ2hCLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FycmF5Q29sbGVjdGlvblN0cmluZ0tleXN9IGZyb20gJy4uL2ludGVyZmFjZXMvYXJyYXktY29sbGVjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHtDb2xsZWN0aW9uUmVxdWVzdFNvcnR9IGZyb20gJy4uL2ludGVyZmFjZXMvY29sbGVjdGlvbi5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgQXJyYXlDb2xsZWN0aW9uPFQ+IHtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB2YWx1ZTogVFtdKSB7XG4gICAgfVxuXG4gICAgc2VhcmNoKHF1ZXJ5OiBzdHJpbmcsIGZpZWxkczogQXJyYXlDb2xsZWN0aW9uU3RyaW5nS2V5czxUPltdKSB7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRRdWVyeSA9IHRoaXMubm9ybWFsaXplVmFsdWVBc1N0cmluZyhxdWVyeSk7XG4gICAgICAgIGlmIChub3JtYWxpemVkUXVlcnkgPT09IG51bGwgfHwgbm9ybWFsaXplZFF1ZXJ5Py5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBxdWVyeUZpZWxkcyA9IGZpZWxkcyA/PyBbXTtcbiAgICAgICAgaWYgKHF1ZXJ5RmllbGRzLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Nhbm5vdCBzZWFyY2ggd2l0aG91dCBxdWVyeSBmaWVsZHMnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLmZpbHRlcihpdGVtID0+IHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgcXVlcnlGaWVsZHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSB0aGlzLm5vcm1hbGl6ZVZhbHVlQXNTdHJpbmcoaXRlbT8uW2ZpZWxkXSk7XG4gICAgICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWRWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAobm9ybWFsaXplZFZhbHVlLmluY2x1ZGVzKG5vcm1hbGl6ZWRRdWVyeSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHNvcnRCeShzb3J0OiBDb2xsZWN0aW9uUmVxdWVzdFNvcnQ8a2V5b2YgVD4gfCBDb2xsZWN0aW9uUmVxdWVzdFNvcnQ8a2V5b2YgVD5bXSwgc29ydGFibGVzOiBQYXJ0aWFsPFJlY29yZDxBcnJheUNvbGxlY3Rpb25TdHJpbmdLZXlzPFQ+LCAnc3RyaW5nJyB8ICdudW1iZXInPj4pIHtcbiAgICAgICAgaWYgKHNvcnQgPT09IG51bGwgfHwgc29ydCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgY29uc3Qgc29ydHMgPSBBcnJheS5pc0FycmF5KHNvcnQpID8gc29ydCA6IFtzb3J0XTtcbiAgICAgICAgaWYgKHNvcnRzLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBzb3J0cykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBzb3J0YWJsZXM/Lls8YW55Pml0ZW0/Lm5hbWVdID8/IG51bGw7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIHNvcnRpbmcga2V5IFwiJHtpdGVtPy5uYW1lPy50b1N0cmluZygpfVwiYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGFWYWx1ZSA9IGE/LltpdGVtPy5uYW1lXSA/PyBudWxsO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJWYWx1ZSA9IGI/LltpdGVtPy5uYW1lXSA/PyBudWxsO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IGl0ZW0/LmRpcmVjdGlvbiA/PyBudWxsO1xuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBhcmlzb24gPSBTdHJpbmcoYVZhbHVlKS5sb2NhbGVDb21wYXJlKFN0cmluZyhiVmFsdWUpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBhcmlzb24gIT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkaXJlY3Rpb24gPT09ICdhc2MnID8gY29tcGFyaXNvbiA6IC1jb21wYXJpc29uO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYVZhbHVlIDwgYlZhbHVlKSByZXR1cm4gZGlyZWN0aW9uID09PSAnYXNjJyA/IC0xIDogMTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFWYWx1ZSA+IGJWYWx1ZSkgcmV0dXJuIGRpcmVjdGlvbiA9PT0gJ2FzYycgPyAxIDogLTE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgdG9QYWdlKHBhZ2VOdW1iZXI6IG51bWJlciwgcGFnZVNpemU6IG51bWJlcikge1xuICAgICAgICBjb25zdCB0b3RhbEVudHJpZXMgPSB0aGlzLnZhbHVlPy5sZW5ndGggPz8gMDtcbiAgICAgICAgY29uc3QgdG90YWxQYWdlcyA9IE1hdGgubWF4KDEsIE1hdGguY2VpbCh0b3RhbEVudHJpZXMgLyBwYWdlU2l6ZSkpO1xuXG4gICAgICAgIGNvbnN0IHN0YXJ0SW5kZXggPSAocGFnZU51bWJlciAtIDEpICogcGFnZVNpemU7XG4gICAgICAgIGNvbnN0IGVuZEluZGV4ID0gc3RhcnRJbmRleCArIHBhZ2VTaXplO1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy52YWx1ZT8uc2xpY2Uoc3RhcnRJbmRleCwgZW5kSW5kZXgpID8/IFtdO1xuXG4gICAgICAgIHJldHVybiB7dG90YWxQYWdlcywgdG90YWxFbnRyaWVzLCBwYWdlU2l6ZSwgcGFnZU51bWJlciwgZGF0YX07XG4gICAgfVxuXG4gICAgdG9BcnJheSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG5vcm1hbGl6ZVZhbHVlQXNTdHJpbmcodmFsdWU6IHVua25vd24pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAubm9ybWFsaXplKCdORkQnKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKTtcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { catchError, debounceTime, distinctUntilChanged, map, shareReplay, startWith, switchMap, tap } from 'rxjs/operators';
|
|
2
|
-
import { BehaviorSubject, combineLatest, defer, isObservable, merge, of } from 'rxjs';
|
|
3
|
-
import { getControlValue } from '@bravobit/bb-foundation/rxjs';
|
|
4
|
-
import { FormControl } from '@angular/forms';
|
|
5
|
-
export class Collection {
|
|
6
|
-
_provider;
|
|
7
|
-
_initialValues;
|
|
8
|
-
// Controls.
|
|
9
|
-
queryControl;
|
|
10
|
-
queryFieldsControl;
|
|
11
|
-
pageNumberControl;
|
|
12
|
-
pageSizeControl;
|
|
13
|
-
sortControl;
|
|
14
|
-
// Request.
|
|
15
|
-
data$;
|
|
16
|
-
raw$ = new BehaviorSubject(null);
|
|
17
|
-
loading$ = new BehaviorSubject(true);
|
|
18
|
-
// State.
|
|
19
|
-
_formatter = null;
|
|
20
|
-
_refresh$ = new BehaviorSubject(0);
|
|
21
|
-
constructor(_provider, _initialValues = {}) {
|
|
22
|
-
this._provider = _provider;
|
|
23
|
-
this._initialValues = _initialValues;
|
|
24
|
-
this.queryControl = new FormControl(_initialValues?.query ?? null);
|
|
25
|
-
this.queryFieldsControl = new FormControl(_initialValues?.queryFields ?? []);
|
|
26
|
-
this.pageNumberControl = new FormControl(_initialValues?.pageNumber ?? 1);
|
|
27
|
-
this.pageSizeControl = new FormControl(_initialValues?.pageSize ?? 25);
|
|
28
|
-
this.sortControl = new FormControl(_initialValues?.sort ?? null);
|
|
29
|
-
this.data$ = this.getData();
|
|
30
|
-
}
|
|
31
|
-
refresh() {
|
|
32
|
-
this._refresh$.next(0);
|
|
33
|
-
}
|
|
34
|
-
setFormatter(callback) {
|
|
35
|
-
this._formatter = callback;
|
|
36
|
-
return this;
|
|
37
|
-
}
|
|
38
|
-
getData() {
|
|
39
|
-
const data$ = this.request.pipe(tap(() => this.loading$.next(true)), switchMap(request => {
|
|
40
|
-
return this._provider.transform(request, { collection: this }).pipe(tap(response => this.cacheCollectionData(response)), map(response => ({ response, request, initial: false })), catchError(error => of({
|
|
41
|
-
error,
|
|
42
|
-
request,
|
|
43
|
-
response: null,
|
|
44
|
-
initial: false
|
|
45
|
-
})), tap(() => this.loading$.next(false)));
|
|
46
|
-
}), startWith({ initial: true, response: null }), shareReplay({ refCount: true, bufferSize: 1 }));
|
|
47
|
-
return combineLatest([data$, this.loading$.asObservable()]).pipe(switchMap(([data, loading]) => {
|
|
48
|
-
const combined = { ...data, loading };
|
|
49
|
-
return this.formatResponse(data?.response).pipe(map(response => {
|
|
50
|
-
const data = { ...combined, response };
|
|
51
|
-
return { ...data, state: this.getState(data) };
|
|
52
|
-
}));
|
|
53
|
-
}));
|
|
54
|
-
}
|
|
55
|
-
formatResponse(response) {
|
|
56
|
-
if (!response || !this._formatter) {
|
|
57
|
-
return of(response);
|
|
58
|
-
}
|
|
59
|
-
const items = response?.data ?? [];
|
|
60
|
-
const data = this._formatter?.(items) ?? items;
|
|
61
|
-
const data$ = isObservable(data) ? data : of(data);
|
|
62
|
-
return data$.pipe(map(data => ({ ...response, data })));
|
|
63
|
-
}
|
|
64
|
-
getState(data) {
|
|
65
|
-
if (!!data?.error) {
|
|
66
|
-
return "error" /* CollectionState.Error */;
|
|
67
|
-
}
|
|
68
|
-
if (!!data?.initial) {
|
|
69
|
-
return "initial" /* CollectionState.Initial */;
|
|
70
|
-
}
|
|
71
|
-
const count = data?.response?.data?.length ?? 0;
|
|
72
|
-
if (count <= 0) {
|
|
73
|
-
return "empty" /* CollectionState.Empty */;
|
|
74
|
-
}
|
|
75
|
-
return "data" /* CollectionState.Data */;
|
|
76
|
-
}
|
|
77
|
-
cacheCollectionData(data) {
|
|
78
|
-
this.raw$.next(data);
|
|
79
|
-
}
|
|
80
|
-
get request() {
|
|
81
|
-
const pageNumber$ = getControlValue(this.pageNumberControl);
|
|
82
|
-
const pageSize$ = getControlValue(this.pageSizeControl);
|
|
83
|
-
const query$ = this.getQueryObservable();
|
|
84
|
-
const queryFields$ = getControlValue(this.queryFieldsControl);
|
|
85
|
-
const sort$ = getControlValue(this.sortControl);
|
|
86
|
-
return combineLatest([pageNumber$, pageSize$, query$, queryFields$, sort$, this._refresh$.asObservable()]).pipe(map(([pageNumber, pageSize, query, queryFields, sort]) => ({
|
|
87
|
-
pageNumber,
|
|
88
|
-
pageSize,
|
|
89
|
-
query,
|
|
90
|
-
queryFields,
|
|
91
|
-
sort
|
|
92
|
-
})));
|
|
93
|
-
}
|
|
94
|
-
getQueryObservable() {
|
|
95
|
-
return merge(this.queryControl.valueChanges, defer(() => of(this.queryControl?.value))).pipe(debounceTime(400), distinctUntilChanged());
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29sbGVjdGlvbnMvc3JjL2xpYi9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzSCxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFaEcsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQVMzQyxNQUFNLE9BQU8sVUFBVTtJQTBCVTtJQUNSO0lBekJyQixZQUFZO0lBQ0gsWUFBWSxDQUE2QjtJQUN6QyxrQkFBa0IsQ0FBd0I7SUFDMUMsaUJBQWlCLENBQXNCO0lBQ3ZDLGVBQWUsQ0FBc0I7SUFDckMsV0FBVyxDQUErRDtJQUVuRixXQUFXO0lBQ0YsS0FBSyxDQU9YO0lBRU0sSUFBSSxHQUFHLElBQUksZUFBZSxDQUEyQixJQUFJLENBQUMsQ0FBQztJQUMzRCxRQUFRLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7SUFFdkQsU0FBUztJQUNELFVBQVUsR0FBeUMsSUFBSSxDQUFDO0lBQ3hELFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUVuRCxZQUE2QixTQUFnQyxFQUN4QyxpQkFBNkMsRUFBRTtRQUR2QyxjQUFTLEdBQVQsU0FBUyxDQUF1QjtRQUN4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBaUM7UUFDaEUsSUFBSSxDQUFDLFlBQVksR0FB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ZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0NvbGxlY3Rpb25EYXRhLCBDb2xsZWN0aW9uUmVxdWVzdCwgQ29sbGVjdGlvblJlcXVlc3RTb3J0fSBmcm9tICcuL2ludGVyZmFjZXMvY29sbGVjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRlZmVyLCBpc09ic2VydmFibGUsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NvbGxlY3Rpb25Qcm92aWRlcn0gZnJvbSAnLi9wcm92aWRlcnMvY29sbGVjdGlvbi5wcm92aWRlcic7XG5pbXBvcnQge2dldENvbnRyb2xWYWx1ZX0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vcnhqcyc7XG5pbXBvcnQge0Zvcm1Db250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBjb25zdCBlbnVtIENvbGxlY3Rpb25TdGF0ZSB7XG4gICAgSW5pdGlhbCA9ICdpbml0aWFsJyxcbiAgICBFcnJvciA9ICdlcnJvcicsXG4gICAgRW1wdHkgPSAnZW1wdHknLFxuICAgIERhdGEgPSAnZGF0YSdcbn1cblxuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb248VD4ge1xuXG4gICAgLy8gQ29udHJvbHMuXG4gICAgcmVhZG9ubHkgcXVlcnlDb250cm9sOiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcbiAgICByZWFkb25seSBxdWVyeUZpZWxkc0NvbnRyb2w6IEZvcm1Db250cm9sPHN0cmluZ1tdPjtcbiAgICByZWFkb25seSBwYWdlTnVtYmVyQ29udHJvbDogRm9ybUNvbnRyb2w8bnVtYmVyPjtcbiAgICByZWFkb25seSBwYWdlU2l6ZUNvbnRyb2w6IEZvcm1Db250cm9sPG51bWJlcj47XG4gICAgcmVhZG9ubHkgc29ydENvbnRyb2w6IEZvcm1Db250cm9sPENvbGxlY3Rpb25SZXF1ZXN0U29ydCB8IENvbGxlY3Rpb25SZXF1ZXN0U29ydFtdPjtcblxuICAgIC8vIFJlcXVlc3QuXG4gICAgcmVhZG9ubHkgZGF0YSQ6IE9ic2VydmFibGU8e1xuICAgICAgICByZXNwb25zZT86IENvbGxlY3Rpb25EYXRhPFQ+LFxuICAgICAgICByZXF1ZXN0PzogQ29sbGVjdGlvblJlcXVlc3QsXG4gICAgICAgIGVycm9yPzogRXJyb3JcbiAgICAgICAgc3RhdGU6IENvbGxlY3Rpb25TdGF0ZSxcbiAgICAgICAgbG9hZGluZzogYm9vbGVhbixcbiAgICAgICAgaW5pdGlhbDogYm9vbGVhblxuICAgIH0+O1xuXG4gICAgcmVhZG9ubHkgcmF3JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29sbGVjdGlvbkRhdGE8VD4gfCBudWxsPihudWxsKTtcbiAgICByZWFkb25seSBsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgICAvLyBTdGF0ZS5cbiAgICBwcml2YXRlIF9mb3JtYXR0ZXI6IChpdGVtOiBUW10pID0+IFRbXSB8IE9ic2VydmFibGU8VFtdPiA9IG51bGw7XG4gICAgcHJpdmF0ZSBfcmVmcmVzaCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9wcm92aWRlcjogQ29sbGVjdGlvblByb3ZpZGVyPFQ+LFxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IF9pbml0aWFsVmFsdWVzOiBQYXJ0aWFsPENvbGxlY3Rpb25SZXF1ZXN0PiA9IHt9KSB7XG4gICAgICAgIHRoaXMucXVlcnlDb250cm9sID0gbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KF9pbml0aWFsVmFsdWVzPy5xdWVyeSA/PyBudWxsKTtcbiAgICAgICAgdGhpcy5xdWVyeUZpZWxkc0NvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nW10+KF9pbml0aWFsVmFsdWVzPy5xdWVyeUZpZWxkcyA/PyBbXSk7XG4gICAgICAgIHRoaXMucGFnZU51bWJlckNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyPihfaW5pdGlhbFZhbHVlcz8ucGFnZU51bWJlciA/PyAxKTtcbiAgICAgICAgdGhpcy5wYWdlU2l6ZUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyPihfaW5pdGlhbFZhbHVlcz8ucGFnZVNpemUgPz8gMjUpO1xuICAgICAgICB0aGlzLnNvcnRDb250cm9sID0gbmV3IEZvcm1Db250cm9sPENvbGxlY3Rpb25SZXF1ZXN0U29ydCB8IENvbGxlY3Rpb25SZXF1ZXN0U29ydFtdIHwgbnVsbD4oX2luaXRpYWxWYWx1ZXM/LnNvcnQgPz8gbnVsbCk7XG5cbiAgICAgICAgdGhpcy5kYXRhJCA9IHRoaXMuZ2V0RGF0YSgpO1xuICAgIH1cblxuICAgIHJlZnJlc2goKSB7XG4gICAgICAgIHRoaXMuX3JlZnJlc2gkLm5leHQoMCk7XG4gICAgfVxuXG4gICAgc2V0Rm9ybWF0dGVyKGNhbGxiYWNrOiAoaXRlbXM6IFRbXSkgPT4gVFtdIHwgT2JzZXJ2YWJsZTxUW10+KSB7XG4gICAgICAgIHRoaXMuX2Zvcm1hdHRlciA9IGNhbGxiYWNrO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERhdGEoKSB7XG4gICAgICAgIGNvbnN0IGRhdGEkID0gdGhpcy5yZXF1ZXN0LnBpcGUoXG4gICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nJC5uZXh0KHRydWUpKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcChyZXF1ZXN0ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fcHJvdmlkZXIudHJhbnNmb3JtKHJlcXVlc3QsIHtjb2xsZWN0aW9uOiB0aGlzfSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFwKHJlc3BvbnNlID0+IHRoaXMuY2FjaGVDb2xsZWN0aW9uRGF0YShyZXNwb25zZSkpLFxuICAgICAgICAgICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4gKHtyZXNwb25zZSwgcmVxdWVzdCwgaW5pdGlhbDogZmFsc2V9KSksXG4gICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4gb2Y8eyBlcnJvcjogRXJyb3IsIHJlc3BvbnNlOiBDb2xsZWN0aW9uRGF0YTxUPiB8IG51bGwsIHJlcXVlc3Q6IENvbGxlY3Rpb25SZXF1ZXN0LCBpbml0aWFsOiBib29sZWFuIH0+KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbDogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nJC5uZXh0KGZhbHNlKSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzdGFydFdpdGg8eyBpbml0aWFsOiBib29sZWFuLCByZXNwb25zZTogQ29sbGVjdGlvbkRhdGE8VD4gfCBudWxsIH0+KHtpbml0aWFsOiB0cnVlLCByZXNwb25zZTogbnVsbH0pLFxuICAgICAgICAgICAgc2hhcmVSZXBsYXkoe3JlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxfSlcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChbZGF0YSQsIHRoaXMubG9hZGluZyQuYXNPYnNlcnZhYmxlKCldKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChbZGF0YSwgbG9hZGluZ10pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21iaW5lZCA9IHsuLi5kYXRhLCBsb2FkaW5nfTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRSZXNwb25zZShkYXRhPy5yZXNwb25zZSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7Li4uY29tYmluZWQsIHJlc3BvbnNlfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7Li4uZGF0YSwgc3RhdGU6IHRoaXMuZ2V0U3RhdGUoZGF0YSl9O1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybWF0UmVzcG9uc2UocmVzcG9uc2U6IENvbGxlY3Rpb25EYXRhPFQ+KSB7XG4gICAgICAgIGlmICghcmVzcG9uc2UgfHwgIXRoaXMuX2Zvcm1hdHRlcikge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHJlc3BvbnNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGl0ZW1zID0gcmVzcG9uc2U/LmRhdGEgPz8gW107XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9mb3JtYXR0ZXI/LihpdGVtcykgPz8gaXRlbXM7XG4gICAgICAgIGNvbnN0IGRhdGEkID0gaXNPYnNlcnZhYmxlKGRhdGEpID8gZGF0YSA6IG9mKGRhdGEpO1xuXG4gICAgICAgIHJldHVybiBkYXRhJC5waXBlKFxuICAgICAgICAgICAgbWFwKGRhdGEgPT4gKHsuLi5yZXNwb25zZSwgZGF0YX0pKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U3RhdGUoZGF0YTogeyByZXNwb25zZT86IENvbGxlY3Rpb25EYXRhPFQ+LCByZXF1ZXN0PzogQ29sbGVjdGlvblJlcXVlc3QsIGVycm9yPzogRXJyb3IsIGxvYWRpbmc6IGJvb2xlYW4sIGluaXRpYWw6IGJvb2xlYW4gfSkge1xuICAgICAgICBpZiAoISFkYXRhPy5lcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25TdGF0ZS5FcnJvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghIWRhdGE/LmluaXRpYWwpIHtcbiAgICAgICAgICAgIHJldHVybiBDb2xsZWN0aW9uU3RhdGUuSW5pdGlhbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvdW50ID0gZGF0YT8ucmVzcG9uc2U/LmRhdGE/Lmxlbmd0aCA/PyAwO1xuICAgICAgICBpZiAoY291bnQgPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25TdGF0ZS5FbXB0eTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBDb2xsZWN0aW9uU3RhdGUuRGF0YTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhY2hlQ29sbGVjdGlvbkRhdGEoZGF0YTogQ29sbGVjdGlvbkRhdGE8VD4pIHtcbiAgICAgICAgdGhpcy5yYXckLm5leHQoZGF0YSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgcmVxdWVzdCgpIHtcbiAgICAgICAgY29uc3QgcGFnZU51bWJlciQgPSBnZXRDb250cm9sVmFsdWU8bnVtYmVyPih0aGlzLnBhZ2VOdW1iZXJDb250cm9sKTtcbiAgICAgICAgY29uc3QgcGFnZVNpemUkID0gZ2V0Q29udHJvbFZhbHVlPG51bWJlcj4odGhpcy5wYWdlU2l6ZUNvbnRyb2wpO1xuICAgICAgICBjb25zdCBxdWVyeSQgPSB0aGlzLmdldFF1ZXJ5T2JzZXJ2YWJsZSgpO1xuICAgICAgICBjb25zdCBxdWVyeUZpZWxkcyQgPSBnZXRDb250cm9sVmFsdWU8c3RyaW5nW10+KHRoaXMucXVlcnlGaWVsZHNDb250cm9sKTtcbiAgICAgICAgY29uc3Qgc29ydCQgPSBnZXRDb250cm9sVmFsdWU8Q29sbGVjdGlvblJlcXVlc3RTb3J0IHwgQ29sbGVjdGlvblJlcXVlc3RTb3J0W10+KHRoaXMuc29ydENvbnRyb2wpO1xuXG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtwYWdlTnVtYmVyJCwgcGFnZVNpemUkLCBxdWVyeSQsIHF1ZXJ5RmllbGRzJCwgc29ydCQsIHRoaXMuX3JlZnJlc2gkLmFzT2JzZXJ2YWJsZSgpXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW3BhZ2VOdW1iZXIsIHBhZ2VTaXplLCBxdWVyeSwgcXVlcnlGaWVsZHMsIHNvcnRdKSA9PiAoe1xuICAgICAgICAgICAgICAgIHBhZ2VOdW1iZXIsXG4gICAgICAgICAgICAgICAgcGFnZVNpemUsXG4gICAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgICAgcXVlcnlGaWVsZHMsXG4gICAgICAgICAgICAgICAgc29ydFxuICAgICAgICAgICAgfSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRRdWVyeU9ic2VydmFibGUoKSB7XG4gICAgICAgIHJldHVybiBtZXJnZSh0aGlzLnF1ZXJ5Q29udHJvbC52YWx1ZUNoYW5nZXMsIGRlZmVyKCgpID0+IG9mKHRoaXMucXVlcnlDb250cm9sPy52YWx1ZSkpKS5waXBlKFxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDQwMCksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICk7XG4gICAgfVxuXG59XG5cbiJdfQ==
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { BbCollectionsTableSorting } from './components/collections-table-sorting/collections-table-sorting.component';
|
|
2
|
-
import { BbCollectionsTableLabel } from './components/collections-table-label/collections-table-label.component';
|
|
3
|
-
import { BbCollectionsActions } from './components/collections-actions/collections-actions.component';
|
|
4
|
-
import { BbCollectionsViewer } from './components/collections-viewer/collections-viewer.component';
|
|
5
|
-
import { BbCollectionsPager } from './components/collections-pager/collections-pager.component';
|
|
6
|
-
import { BbCollectionsTable } from './components/collections-table/collections-table.component';
|
|
7
|
-
import { BbCollectionsGrid } from './components/collections-grid/collections-grid.component';
|
|
8
|
-
import { BbCollectionsDataRow } from './directives/collections-data-row.directive';
|
|
9
|
-
import { BbCollectionsInitial } from './directives/collections-initial.directive';
|
|
10
|
-
import { BbCollectionsEmpty } from './directives/collections-empty.directive';
|
|
11
|
-
import { BbCollectionsError } from './directives/collections-error.directive';
|
|
12
|
-
import { BbCollectionsData } from './directives/collections-data.directive';
|
|
13
|
-
import { BbCollectionsItem } from './directives/collections-item.directive';
|
|
14
|
-
import { NgModule } from '@angular/core';
|
|
15
|
-
import * as i0 from "@angular/core";
|
|
16
|
-
export class CollectionsModule {
|
|
17
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: CollectionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
18
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: CollectionsModule, imports: [BbCollectionsViewer,
|
|
19
|
-
BbCollectionsPager,
|
|
20
|
-
BbCollectionsTable,
|
|
21
|
-
BbCollectionsTableSorting,
|
|
22
|
-
BbCollectionsTableLabel,
|
|
23
|
-
BbCollectionsGrid,
|
|
24
|
-
BbCollectionsActions,
|
|
25
|
-
BbCollectionsData,
|
|
26
|
-
BbCollectionsDataRow,
|
|
27
|
-
BbCollectionsEmpty,
|
|
28
|
-
BbCollectionsError,
|
|
29
|
-
BbCollectionsInitial,
|
|
30
|
-
BbCollectionsItem], exports: [BbCollectionsViewer,
|
|
31
|
-
BbCollectionsPager,
|
|
32
|
-
BbCollectionsTable,
|
|
33
|
-
BbCollectionsTableSorting,
|
|
34
|
-
BbCollectionsTableLabel,
|
|
35
|
-
BbCollectionsGrid,
|
|
36
|
-
BbCollectionsActions,
|
|
37
|
-
BbCollectionsData,
|
|
38
|
-
BbCollectionsDataRow,
|
|
39
|
-
BbCollectionsEmpty,
|
|
40
|
-
BbCollectionsError,
|
|
41
|
-
BbCollectionsInitial,
|
|
42
|
-
BbCollectionsItem] });
|
|
43
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: CollectionsModule, imports: [BbCollectionsPager,
|
|
44
|
-
BbCollectionsTable,
|
|
45
|
-
BbCollectionsTableLabel,
|
|
46
|
-
BbCollectionsGrid,
|
|
47
|
-
BbCollectionsActions] });
|
|
48
|
-
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: CollectionsModule, decorators: [{
|
|
50
|
-
type: NgModule,
|
|
51
|
-
args: [{
|
|
52
|
-
imports: [
|
|
53
|
-
BbCollectionsViewer,
|
|
54
|
-
BbCollectionsPager,
|
|
55
|
-
BbCollectionsTable,
|
|
56
|
-
BbCollectionsTableSorting,
|
|
57
|
-
BbCollectionsTableLabel,
|
|
58
|
-
BbCollectionsGrid,
|
|
59
|
-
BbCollectionsActions,
|
|
60
|
-
BbCollectionsData,
|
|
61
|
-
BbCollectionsDataRow,
|
|
62
|
-
BbCollectionsEmpty,
|
|
63
|
-
BbCollectionsError,
|
|
64
|
-
BbCollectionsInitial,
|
|
65
|
-
BbCollectionsItem
|
|
66
|
-
],
|
|
67
|
-
exports: [
|
|
68
|
-
BbCollectionsViewer,
|
|
69
|
-
BbCollectionsPager,
|
|
70
|
-
BbCollectionsTable,
|
|
71
|
-
BbCollectionsTableSorting,
|
|
72
|
-
BbCollectionsTableLabel,
|
|
73
|
-
BbCollectionsGrid,
|
|
74
|
-
BbCollectionsActions,
|
|
75
|
-
BbCollectionsData,
|
|
76
|
-
BbCollectionsDataRow,
|
|
77
|
-
BbCollectionsEmpty,
|
|
78
|
-
BbCollectionsError,
|
|
79
|
-
BbCollectionsInitial,
|
|
80
|
-
BbCollectionsItem
|
|
81
|
-
]
|
|
82
|
-
}]
|
|
83
|
-
}] });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb2xsZWN0aW9ucy9zcmMvbGliL2NvbGxlY3Rpb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw0RUFBNEUsQ0FBQztBQUNySCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQztBQUMvRyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUNwRyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUNqRyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUM5RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUM5RixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUMzRixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUNqRixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNoRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUMxRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUMxRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQWtDdkMsTUFBTSxPQUFPLGlCQUFpQjt3R0FBakIsaUJBQWlCO3lHQUFqQixpQkFBaUIsWUE5QnRCLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLHlCQUF5QjtZQUN6Qix1QkFBdUI7WUFDdkIsaUJBQWlCO1lBQ2pCLG9CQUFvQjtZQUNwQixpQkFBaUI7WUFDakIsb0JBQW9CO1lBQ3BCLGtCQUFrQjtZQUNsQixrQkFBa0I7WUFDbEIsb0JBQW9CO1lBQ3BCLGlCQUFpQixhQUdqQixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLGtCQUFrQjtZQUNsQix5QkFBeUI7WUFDekIsdUJBQXVCO1lBQ3ZCLGlCQUFpQjtZQUNqQixvQkFBb0I7WUFDcEIsaUJBQWlCO1lBQ2pCLG9CQUFvQjtZQUNwQixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLG9CQUFvQjtZQUNwQixpQkFBaUI7eUdBR1osaUJBQWlCLFlBN0J0QixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBRWxCLHVCQUF1QjtZQUN2QixpQkFBaUI7WUFDakIsb0JBQW9COzs0RkF3QmYsaUJBQWlCO2tCQWhDN0IsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIseUJBQXlCO3dCQUN6Qix1QkFBdUI7d0JBQ3ZCLGlCQUFpQjt3QkFDakIsb0JBQW9CO3dCQUNwQixpQkFBaUI7d0JBQ2pCLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIseUJBQXlCO3dCQUN6Qix1QkFBdUI7d0JBQ3ZCLGlCQUFpQjt3QkFDakIsb0JBQW9CO3dCQUNwQixpQkFBaUI7d0JBQ2pCLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3FCQUNwQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QmJDb2xsZWN0aW9uc1RhYmxlU29ydGluZ30gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb25zLXRhYmxlLXNvcnRpbmcvY29sbGVjdGlvbnMtdGFibGUtc29ydGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHtCYkNvbGxlY3Rpb25zVGFibGVMYWJlbH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb25zLXRhYmxlLWxhYmVsL2NvbGxlY3Rpb25zLXRhYmxlLWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiQ29sbGVjdGlvbnNBY3Rpb25zfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtYWN0aW9ucy9jb2xsZWN0aW9ucy1hY3Rpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiQ29sbGVjdGlvbnNWaWV3ZXJ9IGZyb20gJy4vY29tcG9uZW50cy9jb2xsZWN0aW9ucy12aWV3ZXIvY29sbGVjdGlvbnMtdmlld2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiQ29sbGVjdGlvbnNQYWdlcn0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb25zLXBhZ2VyL2NvbGxlY3Rpb25zLXBhZ2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiQ29sbGVjdGlvbnNUYWJsZX0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb25zLXRhYmxlL2NvbGxlY3Rpb25zLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiQ29sbGVjdGlvbnNHcmlkfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtZ3JpZC9jb2xsZWN0aW9ucy1ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiQ29sbGVjdGlvbnNEYXRhUm93fSBmcm9tICcuL2RpcmVjdGl2ZXMvY29sbGVjdGlvbnMtZGF0YS1yb3cuZGlyZWN0aXZlJztcbmltcG9ydCB7QmJDb2xsZWN0aW9uc0luaXRpYWx9IGZyb20gJy4vZGlyZWN0aXZlcy9jb2xsZWN0aW9ucy1pbml0aWFsLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JiQ29sbGVjdGlvbnNFbXB0eX0gZnJvbSAnLi9kaXJlY3RpdmVzL2NvbGxlY3Rpb25zLWVtcHR5LmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JiQ29sbGVjdGlvbnNFcnJvcn0gZnJvbSAnLi9kaXJlY3RpdmVzL2NvbGxlY3Rpb25zLWVycm9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JiQ29sbGVjdGlvbnNEYXRhfSBmcm9tICcuL2RpcmVjdGl2ZXMvY29sbGVjdGlvbnMtZGF0YS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYkNvbGxlY3Rpb25zSXRlbX0gZnJvbSAnLi9kaXJlY3RpdmVzL2NvbGxlY3Rpb25zLWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQmJDb2xsZWN0aW9uc1ZpZXdlcixcbiAgICAgICAgQmJDb2xsZWN0aW9uc1BhZ2VyLFxuICAgICAgICBCYkNvbGxlY3Rpb25zVGFibGUsXG4gICAgICAgIEJiQ29sbGVjdGlvbnNUYWJsZVNvcnRpbmcsXG4gICAgICAgIEJiQ29sbGVjdGlvbnNUYWJsZUxhYmVsLFxuICAgICAgICBCYkNvbGxlY3Rpb25zR3JpZCxcbiAgICAgICAgQmJDb2xsZWN0aW9uc0FjdGlvbnMsXG4gICAgICAgIEJiQ29sbGVjdGlvbnNEYXRhLFxuICAgICAgICBCYkNvbGxlY3Rpb25zRGF0YVJvdyxcbiAgICAgICAgQmJDb2xsZWN0aW9uc0VtcHR5LFxuICAgICAgICBCYkNvbGxlY3Rpb25zRXJyb3IsXG4gICAgICAgIEJiQ29sbGVjdGlvbnNJbml0aWFsLFxuICAgICAgICBCYkNvbGxlY3Rpb25zSXRlbVxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBCYkNvbGxlY3Rpb25zVmlld2VyLFxuICAgICAgICBCYkNvbGxlY3Rpb25zUGFnZXIsXG4gICAgICAgIEJiQ29sbGVjdGlvbnNUYWJsZSxcbiAgICAgICAgQmJDb2xsZWN0aW9uc1RhYmxlU29ydGluZyxcbiAgICAgICAgQmJDb2xsZWN0aW9uc1RhYmxlTGFiZWwsXG4gICAgICAgIEJiQ29sbGVjdGlvbnNHcmlkLFxuICAgICAgICBCYkNvbGxlY3Rpb25zQWN0aW9ucyxcbiAgICAgICAgQmJDb2xsZWN0aW9uc0RhdGEsXG4gICAgICAgIEJiQ29sbGVjdGlvbnNEYXRhUm93LFxuICAgICAgICBCYkNvbGxlY3Rpb25zRW1wdHksXG4gICAgICAgIEJiQ29sbGVjdGlvbnNFcnJvcixcbiAgICAgICAgQmJDb2xsZWN0aW9uc0luaXRpYWwsXG4gICAgICAgIEJiQ29sbGVjdGlvbnNJdGVtXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBDb2xsZWN0aW9uc01vZHVsZSB7XG59XG4iXX0=
|
package/esm2022/collections/lib/components/collections-actions/collections-actions.component.mjs
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { booleanAttribute, ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { BbFormControl, BbIcon, BbInput, BbPrefix } from '@bravobit/bb-foundation/elements';
|
|
3
|
-
import { BbLocalize } from '@bravobit/bb-foundation/localize';
|
|
4
|
-
import { ReactiveFormsModule } from '@angular/forms';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/forms";
|
|
7
|
-
export class BbCollectionsActions {
|
|
8
|
-
// Inputs.
|
|
9
|
-
collection = null;
|
|
10
|
-
queryPlaceholder = null;
|
|
11
|
-
standalone = false;
|
|
12
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbCollectionsActions, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.12", type: BbCollectionsActions, isStandalone: true, selector: "bb-collections-actions", inputs: { collection: "collection", queryPlaceholder: "queryPlaceholder", standalone: ["standalone", "standalone", booleanAttribute] }, host: { properties: { "class.standalone": "standalone" }, classAttribute: "bb-collections-actions" }, ngImport: i0, template: "<div class=\"bb-collections-actions-row\">\n <bb-form-control class=\"bb-collections-actions-search\">\n <bb-icon bbPrefix\n src=\"material:search\"></bb-icon>\n <input [formControl]=\"collection?.queryControl\"\n [placeholder]=\"queryPlaceholder ?? ('collection.search_label' | bbLocalize)\"\n bbInput\n autocomplete=\"off\"\n type=\"search\">\n </bb-form-control>\n <ng-content select=\"[data-collections-action]\"></ng-content>\n</div>\n<ng-content></ng-content>\n", styles: [".bb-collections-actions{gap:.75rem;display:flex;color:#111;font-size:.875rem;padding:.75rem 1rem;flex-direction:column;border-bottom:1px solid hsl(213,8%,90%)}.bb-collections-actions.standalone{border-bottom:none;border-radius:.5rem;margin-bottom:1.5rem;background-color:#fff;box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-collections-actions-row,[data-collections-row]{gap:.75rem;display:flex;flex-direction:column}.bb-collections-actions-search{flex:1}@media only screen and (min-width: 768px){.bb-collections-actions-row,[data-collections-row]{flex-direction:row}.bb-collections-actions-row.end,[data-collections-row].end{justify-content:flex-end}}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: BbInput, selector: "input[bbInput],textarea[bbInput],select[bbInput]", inputs: ["required"] }, { kind: "pipe", type: BbLocalize, name: "bbLocalize" }, { kind: "component", type: BbIcon, selector: "bb-icon", inputs: ["alt", "size", "ariaHidden", "unit", "src"] }, { kind: "component", type: BbFormControl, selector: "bb-form-control", inputs: ["label", "hint", "grouped", "hideErrors"] }, { kind: "directive", type: BbPrefix, selector: "[bbPrefix]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
14
|
-
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbCollectionsActions, decorators: [{
|
|
16
|
-
type: Component,
|
|
17
|
-
args: [{ selector: 'bb-collections-actions', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
18
|
-
'class': 'bb-collections-actions',
|
|
19
|
-
'[class.standalone]': 'standalone'
|
|
20
|
-
}, preserveWhitespaces: false, standalone: true, imports: [
|
|
21
|
-
ReactiveFormsModule,
|
|
22
|
-
BbInput,
|
|
23
|
-
BbLocalize,
|
|
24
|
-
BbIcon,
|
|
25
|
-
BbFormControl,
|
|
26
|
-
BbPrefix
|
|
27
|
-
], template: "<div class=\"bb-collections-actions-row\">\n <bb-form-control class=\"bb-collections-actions-search\">\n <bb-icon bbPrefix\n src=\"material:search\"></bb-icon>\n <input [formControl]=\"collection?.queryControl\"\n [placeholder]=\"queryPlaceholder ?? ('collection.search_label' | bbLocalize)\"\n bbInput\n autocomplete=\"off\"\n type=\"search\">\n </bb-form-control>\n <ng-content select=\"[data-collections-action]\"></ng-content>\n</div>\n<ng-content></ng-content>\n", styles: [".bb-collections-actions{gap:.75rem;display:flex;color:#111;font-size:.875rem;padding:.75rem 1rem;flex-direction:column;border-bottom:1px solid hsl(213,8%,90%)}.bb-collections-actions.standalone{border-bottom:none;border-radius:.5rem;margin-bottom:1.5rem;background-color:#fff;box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-collections-actions-row,[data-collections-row]{gap:.75rem;display:flex;flex-direction:column}.bb-collections-actions-search{flex:1}@media only screen and (min-width: 768px){.bb-collections-actions-row,[data-collections-row]{flex-direction:row}.bb-collections-actions-row.end,[data-collections-row].end{justify-content:flex-end}}\n"] }]
|
|
28
|
-
}], propDecorators: { collection: [{
|
|
29
|
-
type: Input,
|
|
30
|
-
args: [{ required: true }]
|
|
31
|
-
}], queryPlaceholder: [{
|
|
32
|
-
type: Input
|
|
33
|
-
}], standalone: [{
|
|
34
|
-
type: Input,
|
|
35
|
-
args: [{ transform: booleanAttribute }]
|
|
36
|
-
}] } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbnMtYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2NvbGxlY3Rpb25zL3NyYy9saWIvY29tcG9uZW50cy9jb2xsZWN0aW9ucy1hY3Rpb25zL2NvbGxlY3Rpb25zLWFjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb2xsZWN0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtYWN0aW9ucy9jb2xsZWN0aW9ucy1hY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDNUQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7OztBQXdCbkQsTUFBTSxPQUFPLG9CQUFvQjtJQUU3QixVQUFVO0lBQ2UsVUFBVSxHQUF5QixJQUFJLENBQUM7SUFDeEQsZ0JBQWdCLEdBQWtCLElBQUksQ0FBQztJQUNWLFVBQVUsR0FBWSxLQUFLLENBQUM7d0dBTHpELG9CQUFvQjs0RkFBcEIsb0JBQW9CLDZLQUtWLGdCQUFnQixtSUNoQ3ZDLG9qQkFhQSwyc0JETVEsbUJBQW1CLDBrQkFDbkIsT0FBTyw4R0FDUCxVQUFVLG1EQUNWLE1BQU0sMEdBQ04sYUFBYSxnSEFDYixRQUFROzs0RkFHSCxvQkFBb0I7a0JBckJoQyxTQUFTOytCQUNJLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDRixPQUFPLEVBQUUsd0JBQXdCO3dCQUNqQyxvQkFBb0IsRUFBRSxZQUFZO3FCQUNyQyx1QkFDb0IsS0FBSyxjQUNkLElBQUksV0FDUDt3QkFDTCxtQkFBbUI7d0JBQ25CLE9BQU87d0JBQ1AsVUFBVTt3QkFDVixNQUFNO3dCQUNOLGFBQWE7d0JBQ2IsUUFBUTtxQkFDWDs4QkFLd0IsVUFBVTtzQkFBbEMsS0FBSzt1QkFBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUM7Z0JBQ2QsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNnQyxVQUFVO3NCQUEvQyxLQUFLO3VCQUFDLEVBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtib29sZWFuQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYkZvcm1Db250cm9sLCBCYkljb24sIEJiSW5wdXQsIEJiUHJlZml4fSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi9lbGVtZW50cyc7XG5pbXBvcnQge0JiTG9jYWxpemV9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uL2xvY2FsaXplJztcbmltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtDb2xsZWN0aW9ufSBmcm9tICcuLi8uLi9jb2xsZWN0aW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi1jb2xsZWN0aW9ucy1hY3Rpb25zJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sbGVjdGlvbnMtYWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29sbGVjdGlvbnMtYWN0aW9ucy5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnYmItY29sbGVjdGlvbnMtYWN0aW9ucycsXG4gICAgICAgICdbY2xhc3Muc3RhbmRhbG9uZV0nOiAnc3RhbmRhbG9uZSdcbiAgICB9LFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBCYklucHV0LFxuICAgICAgICBCYkxvY2FsaXplLFxuICAgICAgICBCYkljb24sXG4gICAgICAgIEJiRm9ybUNvbnRyb2wsXG4gICAgICAgIEJiUHJlZml4XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBCYkNvbGxlY3Rpb25zQWN0aW9uczxUPiB7XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIGNvbGxlY3Rpb246IENvbGxlY3Rpb248VD4gfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBxdWVyeVBsYWNlaG9sZGVyOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoe3RyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZX0pIHN0YW5kYWxvbmU6IGJvb2xlYW4gPSBmYWxzZTtcblxufVxuIiwiPGRpdiBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLWFjdGlvbnMtcm93XCI+XG4gICAgPGJiLWZvcm0tY29udHJvbCBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLWFjdGlvbnMtc2VhcmNoXCI+XG4gICAgICAgIDxiYi1pY29uIGJiUHJlZml4XG4gICAgICAgICAgICAgICAgIHNyYz1cIm1hdGVyaWFsOnNlYXJjaFwiPjwvYmItaWNvbj5cbiAgICAgICAgPGlucHV0IFtmb3JtQ29udHJvbF09XCJjb2xsZWN0aW9uPy5xdWVyeUNvbnRyb2xcIlxuICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInF1ZXJ5UGxhY2Vob2xkZXIgPz8gKCdjb2xsZWN0aW9uLnNlYXJjaF9sYWJlbCcgfCBiYkxvY2FsaXplKVwiXG4gICAgICAgICAgICAgICBiYklucHV0XG4gICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiPlxuICAgIDwvYmItZm9ybS1jb250cm9sPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltkYXRhLWNvbGxlY3Rpb25zLWFjdGlvbl1cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, Input, TemplateRef, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { BbCollectionsItem } from '../../directives/collections-item.directive';
|
|
3
|
-
import { BbCollectionsActions } from '../collections-actions/collections-actions.component';
|
|
4
|
-
import { BbCollectionsViewer } from '../collections-viewer/collections-viewer.component';
|
|
5
|
-
import { BbCollectionsPager } from '../collections-pager/collections-pager.component';
|
|
6
|
-
import { BbCollectionsData } from '../../directives/collections-data.directive';
|
|
7
|
-
import { NgTemplateOutlet } from '@angular/common';
|
|
8
|
-
import { BehaviorSubject } from 'rxjs';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
export class BbCollectionsGrid {
|
|
11
|
-
// Readonly data.
|
|
12
|
-
collection$ = new BehaviorSubject(null);
|
|
13
|
-
// Views.
|
|
14
|
-
itemTemplate;
|
|
15
|
-
// Inputs.
|
|
16
|
-
queryPlaceholder = null;
|
|
17
|
-
hideActions = false;
|
|
18
|
-
hidePager = false;
|
|
19
|
-
set collection(collection) {
|
|
20
|
-
this.collection$.next(collection);
|
|
21
|
-
}
|
|
22
|
-
get collection() {
|
|
23
|
-
return this.collection$.getValue();
|
|
24
|
-
}
|
|
25
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbCollectionsGrid, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BbCollectionsGrid, isStandalone: true, selector: "bb-collections-grid", inputs: { queryPlaceholder: "queryPlaceholder", hideActions: ["hideActions", "hideActions", booleanAttribute], hidePager: ["hidePager", "hidePager", booleanAttribute], collection: "collection" }, host: { classAttribute: "bb-collections-grid" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: BbCollectionsItem, descendants: true, read: TemplateRef }], ngImport: i0, template: "@if (!hideActions) {\n <bb-collections-actions [collection]=\"collection\"\n [queryPlaceholder]=\"queryPlaceholder\"\n standalone>\n <ng-content ngProjectAs=\"[data-collections-action]\"\n select=\"[data-collections-action]\"></ng-content>\n <ng-content ngProjectAs=\"[data-collections-row]\"\n select=\"[data-collections-row]\"></ng-content>\n </bb-collections-actions>\n}\n\n<div [collection]=\"collection\"\n class=\"bb-collections-grid-container\"\n bb-collections-viewer>\n <ul *bbCollectionsData=\"let items = items\"\n class=\"bb-collections-grid-list\">\n @for (item of items; track $index) {\n <li class=\"bb-collections-grid-item\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item, item: item}\"></ng-container>\n </li>\n }\n </ul>\n</div>\n\n@if (!hidePager) {\n <footer class=\"bb-collections-grid-footer\">\n <bb-collections-pager [collection]=\"collection\"></bb-collections-pager>\n </footer>\n}\n", styles: [".bb-collections-grid{display:block}.bb-collections-grid-list{gap:1.5rem;display:flex;flex-wrap:wrap}.bb-collections-grid-item{width:100%;display:flex}.bb-collections-grid-footer{margin-top:1.5rem}\n"], dependencies: [{ kind: "directive", type: BbCollectionsData, selector: "[bbCollectionsData]" }, { kind: "component", type: BbCollectionsViewer, selector: "[bb-collections-viewer]", inputs: ["collection"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: BbCollectionsActions, selector: "bb-collections-actions", inputs: ["collection", "queryPlaceholder", "standalone"] }, { kind: "component", type: BbCollectionsPager, selector: "bb-collections-pager", inputs: ["maxAmountOfButtons", "collection"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
27
|
-
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbCollectionsGrid, decorators: [{
|
|
29
|
-
type: Component,
|
|
30
|
-
args: [{ selector: 'bb-collections-grid', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-collections-grid' }, preserveWhitespaces: false, standalone: true, imports: [
|
|
31
|
-
BbCollectionsData,
|
|
32
|
-
BbCollectionsViewer,
|
|
33
|
-
NgTemplateOutlet,
|
|
34
|
-
BbCollectionsActions,
|
|
35
|
-
BbCollectionsPager
|
|
36
|
-
], template: "@if (!hideActions) {\n <bb-collections-actions [collection]=\"collection\"\n [queryPlaceholder]=\"queryPlaceholder\"\n standalone>\n <ng-content ngProjectAs=\"[data-collections-action]\"\n select=\"[data-collections-action]\"></ng-content>\n <ng-content ngProjectAs=\"[data-collections-row]\"\n select=\"[data-collections-row]\"></ng-content>\n </bb-collections-actions>\n}\n\n<div [collection]=\"collection\"\n class=\"bb-collections-grid-container\"\n bb-collections-viewer>\n <ul *bbCollectionsData=\"let items = items\"\n class=\"bb-collections-grid-list\">\n @for (item of items; track $index) {\n <li class=\"bb-collections-grid-item\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item, item: item}\"></ng-container>\n </li>\n }\n </ul>\n</div>\n\n@if (!hidePager) {\n <footer class=\"bb-collections-grid-footer\">\n <bb-collections-pager [collection]=\"collection\"></bb-collections-pager>\n </footer>\n}\n", styles: [".bb-collections-grid{display:block}.bb-collections-grid-list{gap:1.5rem;display:flex;flex-wrap:wrap}.bb-collections-grid-item{width:100%;display:flex}.bb-collections-grid-footer{margin-top:1.5rem}\n"] }]
|
|
37
|
-
}], propDecorators: { itemTemplate: [{
|
|
38
|
-
type: ContentChild,
|
|
39
|
-
args: [BbCollectionsItem, { read: TemplateRef, static: false }]
|
|
40
|
-
}], queryPlaceholder: [{
|
|
41
|
-
type: Input
|
|
42
|
-
}], hideActions: [{
|
|
43
|
-
type: Input,
|
|
44
|
-
args: [{ transform: booleanAttribute }]
|
|
45
|
-
}], hidePager: [{
|
|
46
|
-
type: Input,
|
|
47
|
-
args: [{ transform: booleanAttribute }]
|
|
48
|
-
}], collection: [{
|
|
49
|
-
type: Input,
|
|
50
|
-
args: [{ required: true }]
|
|
51
|
-
}] } });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbnMtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2NvbGxlY3Rpb25zL3NyYy9saWIvY29tcG9uZW50cy9jb2xsZWN0aW9ucy1ncmlkL2NvbGxlY3Rpb25zLWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb2xsZWN0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtZ3JpZC9jb2xsZWN0aW9ucy1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEksT0FBTyxFQUFDLGlCQUFpQixFQUEyQixNQUFNLDZDQUE2QyxDQUFDO0FBQ3hHLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRWpELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7O0FBbUJyQyxNQUFNLE9BQU8saUJBQWlCO0lBRTFCLGlCQUFpQjtJQUNSLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBdUIsSUFBSSxDQUFDLENBQUM7SUFFdkUsU0FBUztJQUM0RCxZQUFZLENBQTRDO0lBRTdILFVBQVU7SUFDRCxnQkFBZ0IsR0FBa0IsSUFBSSxDQUFDO0lBQ1YsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUM3QixTQUFTLEdBQVksS0FBSyxDQUFDO0lBRWpFLElBQ0ksVUFBVSxDQUFDLFVBQXlCO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdkMsQ0FBQzt3R0FwQlEsaUJBQWlCOzRGQUFqQixpQkFBaUIsbUpBVVAsZ0JBQWdCLHlDQUNoQixnQkFBZ0Isa0pBTHJCLGlCQUFpQiwyQkFBUyxXQUFXLDZCQ2pDdkQsbW5DQTZCQSxnUURUUSxpQkFBaUIsZ0VBQ2pCLG1CQUFtQiw0RkFDbkIsZ0JBQWdCLG9KQUNoQixvQkFBb0IsNkhBQ3BCLGtCQUFrQjs7NEZBR2IsaUJBQWlCO2tCQWpCN0IsU0FBUzsrQkFDSSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBQyx1QkFDakIsS0FBSyxjQUNkLElBQUksV0FDUDt3QkFDTCxpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLGtCQUFrQjtxQkFDckI7OEJBUW9FLFlBQVk7c0JBQWhGLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBRzFELGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDZ0MsV0FBVztzQkFBaEQsS0FBSzt1QkFBQyxFQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQztnQkFDRSxTQUFTO3NCQUE5QyxLQUFLO3VCQUFDLEVBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFDO2dCQUdoQyxVQUFVO3NCQURiLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtib29sZWFuQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYkNvbGxlY3Rpb25zSXRlbSwgQmJDb2xsZWN0aW9uc0l0ZW1Db250ZXh0fSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2NvbGxlY3Rpb25zLWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7QmJDb2xsZWN0aW9uc0FjdGlvbnN9IGZyb20gJy4uL2NvbGxlY3Rpb25zLWFjdGlvbnMvY29sbGVjdGlvbnMtYWN0aW9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHtCYkNvbGxlY3Rpb25zVmlld2VyfSBmcm9tICcuLi9jb2xsZWN0aW9ucy12aWV3ZXIvY29sbGVjdGlvbnMtdmlld2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiQ29sbGVjdGlvbnNQYWdlcn0gZnJvbSAnLi4vY29sbGVjdGlvbnMtcGFnZXIvY29sbGVjdGlvbnMtcGFnZXIuY29tcG9uZW50JztcbmltcG9ydCB7QmJDb2xsZWN0aW9uc0RhdGF9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY29sbGVjdGlvbnMtZGF0YS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtOZ1RlbXBsYXRlT3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDb2xsZWN0aW9ufSBmcm9tICcuLi8uLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi1jb2xsZWN0aW9ucy1ncmlkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sbGVjdGlvbnMtZ3JpZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29sbGVjdGlvbnMtZ3JpZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDogeydjbGFzcyc6ICdiYi1jb2xsZWN0aW9ucy1ncmlkJ30sXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEJiQ29sbGVjdGlvbnNEYXRhLFxuICAgICAgICBCYkNvbGxlY3Rpb25zVmlld2VyLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBCYkNvbGxlY3Rpb25zQWN0aW9ucyxcbiAgICAgICAgQmJDb2xsZWN0aW9uc1BhZ2VyXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBCYkNvbGxlY3Rpb25zR3JpZDxUPiB7XG5cbiAgICAvLyBSZWFkb25seSBkYXRhLlxuICAgIHJlYWRvbmx5IGNvbGxlY3Rpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb2xsZWN0aW9uPFQ+IHwgbnVsbD4obnVsbCk7XG5cbiAgICAvLyBWaWV3cy5cbiAgICBAQ29udGVudENoaWxkKEJiQ29sbGVjdGlvbnNJdGVtLCB7cmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogZmFsc2V9KSBpdGVtVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxCYkNvbGxlY3Rpb25zSXRlbUNvbnRleHQ8VD4+O1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCgpIHF1ZXJ5UGxhY2Vob2xkZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCh7dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlfSkgaGlkZUFjdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoe3RyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZX0pIGhpZGVQYWdlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pXG4gICAgc2V0IGNvbGxlY3Rpb24oY29sbGVjdGlvbjogQ29sbGVjdGlvbjxUPikge1xuICAgICAgICB0aGlzLmNvbGxlY3Rpb24kLm5leHQoY29sbGVjdGlvbik7XG4gICAgfVxuXG4gICAgZ2V0IGNvbGxlY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb24kLmdldFZhbHVlKCk7XG4gICAgfVxuXG59XG4iLCJAaWYgKCFoaWRlQWN0aW9ucykge1xuICAgIDxiYi1jb2xsZWN0aW9ucy1hY3Rpb25zIFtjb2xsZWN0aW9uXT1cImNvbGxlY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeVBsYWNlaG9sZGVyXT1cInF1ZXJ5UGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YW5kYWxvbmU+XG4gICAgICAgIDxuZy1jb250ZW50IG5nUHJvamVjdEFzPVwiW2RhdGEtY29sbGVjdGlvbnMtYWN0aW9uXVwiXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdD1cIltkYXRhLWNvbGxlY3Rpb25zLWFjdGlvbl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDxuZy1jb250ZW50IG5nUHJvamVjdEFzPVwiW2RhdGEtY29sbGVjdGlvbnMtcm93XVwiXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdD1cIltkYXRhLWNvbGxlY3Rpb25zLXJvd11cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9iYi1jb2xsZWN0aW9ucy1hY3Rpb25zPlxufVxuXG48ZGl2IFtjb2xsZWN0aW9uXT1cImNvbGxlY3Rpb25cIlxuICAgICBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLWdyaWQtY29udGFpbmVyXCJcbiAgICAgYmItY29sbGVjdGlvbnMtdmlld2VyPlxuICAgIDx1bCAqYmJDb2xsZWN0aW9uc0RhdGE9XCJsZXQgaXRlbXMgPSBpdGVtc1wiXG4gICAgICAgIGNsYXNzPVwiYmItY29sbGVjdGlvbnMtZ3JpZC1saXN0XCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgaXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPGxpIGNsYXNzPVwiYmItY29sbGVjdGlvbnMtZ3JpZC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogaXRlbSwgaXRlbTogaXRlbX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIH1cbiAgICA8L3VsPlxuPC9kaXY+XG5cbkBpZiAoIWhpZGVQYWdlcikge1xuICAgIDxmb290ZXIgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy1ncmlkLWZvb3RlclwiPlxuICAgICAgICA8YmItY29sbGVjdGlvbnMtcGFnZXIgW2NvbGxlY3Rpb25dPVwiY29sbGVjdGlvblwiPjwvYmItY29sbGVjdGlvbnMtcGFnZXI+XG4gICAgPC9mb290ZXI+XG59XG4iXX0=
|
package/esm2022/collections/lib/components/collections-pager/collections-pager.component.mjs
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input, numberAttribute, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { BbLocalize, BbLocalizeString, BbLocalizeTemplate } from '@bravobit/bb-foundation/localize';
|
|
3
|
-
import { BehaviorSubject } from 'rxjs';
|
|
4
|
-
import { combineLatestMap } from '@bravobit/bb-foundation/rxjs';
|
|
5
|
-
import { map, shareReplay } from 'rxjs/operators';
|
|
6
|
-
import { AsyncPipe } from '@angular/common';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class BbCollectionsPager {
|
|
9
|
-
set maxAmountOfButtons(value) {
|
|
10
|
-
this._maxAmountOfButtons$.next(Math.max(1, value));
|
|
11
|
-
}
|
|
12
|
-
get maxAmountOfButtons() {
|
|
13
|
-
return this._maxAmountOfButtons$.getValue();
|
|
14
|
-
}
|
|
15
|
-
set collection(collection) {
|
|
16
|
-
this._collection = collection;
|
|
17
|
-
this.observeCollectionChanges();
|
|
18
|
-
}
|
|
19
|
-
get collection() {
|
|
20
|
-
return this._collection;
|
|
21
|
-
}
|
|
22
|
-
// Data.
|
|
23
|
-
data$;
|
|
24
|
-
// State and subscriptions.
|
|
25
|
-
_collection = null;
|
|
26
|
-
_subscription = null;
|
|
27
|
-
_cache$ = new BehaviorSubject({});
|
|
28
|
-
_maxAmountOfButtons$ = new BehaviorSubject(3);
|
|
29
|
-
ngOnInit() {
|
|
30
|
-
this.setData();
|
|
31
|
-
}
|
|
32
|
-
ngOnDestroy() {
|
|
33
|
-
this._subscription?.unsubscribe();
|
|
34
|
-
}
|
|
35
|
-
setPage(pageNumber, totalPages) {
|
|
36
|
-
// Calculate the new value.
|
|
37
|
-
const newValue = Math.min(totalPages, Math.max(1, pageNumber));
|
|
38
|
-
// Validate the value is actually different.
|
|
39
|
-
const currentValue = this._collection?.pageNumberControl?.value;
|
|
40
|
-
if (currentValue === newValue) {
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
this._collection?.pageNumberControl?.setValue(pageNumber);
|
|
44
|
-
}
|
|
45
|
-
setData() {
|
|
46
|
-
this.data$ = combineLatestMap({
|
|
47
|
-
cache: this._cache$,
|
|
48
|
-
maxAmountOfButtons: this._maxAmountOfButtons$
|
|
49
|
-
}).pipe(map(({ cache, maxAmountOfButtons }) => {
|
|
50
|
-
const pageSize = cache?.pageSize ?? 1;
|
|
51
|
-
const pageNumber = cache?.pageNumber ?? 1;
|
|
52
|
-
const totalEntries = Math.max(0, cache?.totalEntries ?? 0);
|
|
53
|
-
const start = Math.max(0, Math.min((pageSize * (pageNumber - 1)) + 1, totalEntries));
|
|
54
|
-
const end = Math.max(0, Math.min((start - 1) + pageSize, totalEntries));
|
|
55
|
-
const totalPages = Math.max(0, cache?.totalPages ?? 1);
|
|
56
|
-
const pages = this.filterActivePages(pageNumber, totalPages, maxAmountOfButtons);
|
|
57
|
-
return { start, end, totalEntries, totalPages, pages, pageNumber };
|
|
58
|
-
}), shareReplay({ refCount: true, bufferSize: 1 }));
|
|
59
|
-
}
|
|
60
|
-
observeCollectionChanges() {
|
|
61
|
-
if (this._subscription) {
|
|
62
|
-
this._subscription?.unsubscribe();
|
|
63
|
-
}
|
|
64
|
-
if (!this._collection) {
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
this._subscription = this._collection.raw$.subscribe(data => {
|
|
68
|
-
if (data) {
|
|
69
|
-
this._cache$.next(data);
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
calculatePages(pageNumber, totalPages, maxAmountOfButtons) {
|
|
74
|
-
const min = 1;
|
|
75
|
-
const max = totalPages;
|
|
76
|
-
const amount = Math.max(1, maxAmountOfButtons);
|
|
77
|
-
const start = Math.max(0, pageNumber - Math.floor(amount / 2));
|
|
78
|
-
const data = Array(amount)
|
|
79
|
-
.fill(0)
|
|
80
|
-
.map((_, index) => start + index);
|
|
81
|
-
// Validate if the minimum value less than
|
|
82
|
-
// the first value.
|
|
83
|
-
if (data[0] < min) {
|
|
84
|
-
return data.map(item => item + 1);
|
|
85
|
-
}
|
|
86
|
-
// Calculate the difference with the max
|
|
87
|
-
// if this value is higher than 0 we should minus it.
|
|
88
|
-
const lastValueInArray = data[data.length - 1];
|
|
89
|
-
const differenceWithMax = lastValueInArray - max;
|
|
90
|
-
if (differenceWithMax > 0) {
|
|
91
|
-
return data.map(item => item - differenceWithMax);
|
|
92
|
-
}
|
|
93
|
-
// Just return the default data.
|
|
94
|
-
return data;
|
|
95
|
-
}
|
|
96
|
-
filterActivePages(pageNumber, totalPages, maxAmountOfButtons) {
|
|
97
|
-
return this.calculatePages(pageNumber, totalPages, maxAmountOfButtons)
|
|
98
|
-
.filter(page => page > 0 && page <= totalPages)
|
|
99
|
-
.map(page => ({ page, active: pageNumber === page }));
|
|
100
|
-
}
|
|
101
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbCollectionsPager, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
102
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BbCollectionsPager, isStandalone: true, selector: "bb-collections-pager", inputs: { maxAmountOfButtons: ["maxAmountOfButtons", "maxAmountOfButtons", numberAttribute], collection: "collection" }, host: { classAttribute: "bb-collections-pager" }, ngImport: i0, template: "@if (data$ | async; as data) {\n <div [bb-localize-string]=\"'collection.showing_label' | bbLocalize\"\n class=\"bb-collections-pager-text\">\n <strong *bbLocalizeTemplate=\"'start'\">{{ data?.start }}</strong>\n <strong *bbLocalizeTemplate=\"'end'\">{{ data?.end }}</strong>\n <strong *bbLocalizeTemplate=\"'total'\">{{ data?.totalEntries }}</strong>\n </div>\n\n <div class=\"bb-collections-pager-container\">\n <ul class=\"bb-collections-pager-list\">\n <li class=\"bb-collections-pager-item\"\n title=\"Previous page\">\n <button [disabled]=\"data?.pageNumber <= 1\"\n (click)=\"setPage(data?.pageNumber - 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow first\"\n type=\"button\">\n ←\n </button>\n </li>\n @for (item of data?.pages; track item?.page) {\n <li [title]=\"'Page ' + item?.page\"\n class=\"bb-collections-pager-item\">\n <button [class.active]=\"item?.active\"\n (click)=\"setPage(item?.page, data?.totalPages)\"\n class=\"bb-collections-pager-button\"\n type=\"button\">\n {{ item?.page }}\n </button>\n </li>\n }\n <li class=\"bb-collections-pager-item\"\n title=\"Next page\">\n <button [disabled]=\"data?.pageNumber >= data?.totalPages\"\n (click)=\"setPage(data?.pageNumber + 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow last\"\n type=\"button\">\n →\n </button>\n </li>\n </ul>\n </div>\n}\n", styles: [".bb-collections-pager{display:flex;align-items:center;font-size:.875rem;flex-direction:column-reverse}.bb-collections-pager-text{display:block;margin-top:.75rem}.bb-collections-pager-text>strong{font-weight:500}.bb-collections-pager-container{width:100%;display:flex;overflow-x:auto;align-items:center;justify-content:center}.bb-collections-pager-list{display:flex;align-items:center;border-radius:.5rem;background-color:#fff;border:1px solid hsl(213,8%,74%);box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-collections-pager-item:not(:last-child){border-right:1px solid hsl(213,8%,74%)}.bb-collections-pager-button{height:2rem;border:none;display:flex;appearance:none;min-height:2rem;min-width:2.5rem;-webkit-user-select:none;user-select:none;padding:0 .25rem;align-items:center;justify-content:center;background-color:transparent}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus,.bb-collections-pager-button:active,.bb-collections-pager-button.active{font-weight:400;color:var(--bb-collections-pager-color)}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus{background-color:var(--bb-collections-pager-hover-background-color)}.bb-collections-pager-button:active,.bb-collections-pager-button.active{background-color:var(--bb-collections-pager-active-background-color)}.bb-collections-pager-button:not(.arrow):focus,.bb-collections-pager-button:not(.arrow):active{box-shadow:var(--bb-collections-pager-focus-box-shadow)}.bb-collections-pager-button:not(.arrow):focus,.bb-collections-pager-button:not(.arrow):active,.bb-collections-pager-button:not(.arrow).active{outline:1px solid var(--bb-collections-pager-outline-color)}.bb-collections-pager-button.arrow{font-weight:500}.bb-collections-pager-button.arrow.first{border-top-left-radius:calc(.5rem - 1px);border-bottom-left-radius:calc(.5rem - 1px)}.bb-collections-pager-button.arrow.last{border-top-right-radius:calc(.5rem - 1px);border-bottom-right-radius:calc(.5rem - 1px)}.bb-collections-pager-button:disabled{color:#111;outline:none;opacity:.25;cursor:default;pointer-events:none;background-color:transparent}@media only screen and (min-width: 768px){.bb-collections-pager{flex-wrap:wrap;align-items:center;flex-direction:row;justify-content:space-between}.bb-collections-pager-text{margin-top:0}.bb-collections-pager-container{width:auto;overflow-x:unset}}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: BbLocalizeString, selector: "[bb-localize-string]", inputs: ["substitutions", "bb-localize-string"] }, { kind: "pipe", type: BbLocalize, name: "bbLocalize" }, { kind: "directive", type: BbLocalizeTemplate, selector: "[bbLocalizeTemplate]", inputs: ["bbLocalizeTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
103
|
-
}
|
|
104
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbCollectionsPager, decorators: [{
|
|
105
|
-
type: Component,
|
|
106
|
-
args: [{ selector: 'bb-collections-pager', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-collections-pager' }, preserveWhitespaces: false, standalone: true, imports: [AsyncPipe, BbLocalizeString, BbLocalize, BbLocalizeTemplate], template: "@if (data$ | async; as data) {\n <div [bb-localize-string]=\"'collection.showing_label' | bbLocalize\"\n class=\"bb-collections-pager-text\">\n <strong *bbLocalizeTemplate=\"'start'\">{{ data?.start }}</strong>\n <strong *bbLocalizeTemplate=\"'end'\">{{ data?.end }}</strong>\n <strong *bbLocalizeTemplate=\"'total'\">{{ data?.totalEntries }}</strong>\n </div>\n\n <div class=\"bb-collections-pager-container\">\n <ul class=\"bb-collections-pager-list\">\n <li class=\"bb-collections-pager-item\"\n title=\"Previous page\">\n <button [disabled]=\"data?.pageNumber <= 1\"\n (click)=\"setPage(data?.pageNumber - 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow first\"\n type=\"button\">\n ←\n </button>\n </li>\n @for (item of data?.pages; track item?.page) {\n <li [title]=\"'Page ' + item?.page\"\n class=\"bb-collections-pager-item\">\n <button [class.active]=\"item?.active\"\n (click)=\"setPage(item?.page, data?.totalPages)\"\n class=\"bb-collections-pager-button\"\n type=\"button\">\n {{ item?.page }}\n </button>\n </li>\n }\n <li class=\"bb-collections-pager-item\"\n title=\"Next page\">\n <button [disabled]=\"data?.pageNumber >= data?.totalPages\"\n (click)=\"setPage(data?.pageNumber + 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow last\"\n type=\"button\">\n →\n </button>\n </li>\n </ul>\n </div>\n}\n", styles: [".bb-collections-pager{display:flex;align-items:center;font-size:.875rem;flex-direction:column-reverse}.bb-collections-pager-text{display:block;margin-top:.75rem}.bb-collections-pager-text>strong{font-weight:500}.bb-collections-pager-container{width:100%;display:flex;overflow-x:auto;align-items:center;justify-content:center}.bb-collections-pager-list{display:flex;align-items:center;border-radius:.5rem;background-color:#fff;border:1px solid hsl(213,8%,74%);box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-collections-pager-item:not(:last-child){border-right:1px solid hsl(213,8%,74%)}.bb-collections-pager-button{height:2rem;border:none;display:flex;appearance:none;min-height:2rem;min-width:2.5rem;-webkit-user-select:none;user-select:none;padding:0 .25rem;align-items:center;justify-content:center;background-color:transparent}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus,.bb-collections-pager-button:active,.bb-collections-pager-button.active{font-weight:400;color:var(--bb-collections-pager-color)}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus{background-color:var(--bb-collections-pager-hover-background-color)}.bb-collections-pager-button:active,.bb-collections-pager-button.active{background-color:var(--bb-collections-pager-active-background-color)}.bb-collections-pager-button:not(.arrow):focus,.bb-collections-pager-button:not(.arrow):active{box-shadow:var(--bb-collections-pager-focus-box-shadow)}.bb-collections-pager-button:not(.arrow):focus,.bb-collections-pager-button:not(.arrow):active,.bb-collections-pager-button:not(.arrow).active{outline:1px solid var(--bb-collections-pager-outline-color)}.bb-collections-pager-button.arrow{font-weight:500}.bb-collections-pager-button.arrow.first{border-top-left-radius:calc(.5rem - 1px);border-bottom-left-radius:calc(.5rem - 1px)}.bb-collections-pager-button.arrow.last{border-top-right-radius:calc(.5rem - 1px);border-bottom-right-radius:calc(.5rem - 1px)}.bb-collections-pager-button:disabled{color:#111;outline:none;opacity:.25;cursor:default;pointer-events:none;background-color:transparent}@media only screen and (min-width: 768px){.bb-collections-pager{flex-wrap:wrap;align-items:center;flex-direction:row;justify-content:space-between}.bb-collections-pager-text{margin-top:0}.bb-collections-pager-container{width:auto;overflow-x:unset}}\n"] }]
|
|
107
|
-
}], propDecorators: { maxAmountOfButtons: [{
|
|
108
|
-
type: Input,
|
|
109
|
-
args: [{ transform: numberAttribute }]
|
|
110
|
-
}], collection: [{
|
|
111
|
-
type: Input,
|
|
112
|
-
args: [{ required: true }]
|
|
113
|
-
}] } });
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbnMtcGFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb2xsZWN0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtcGFnZXIvY29sbGVjdGlvbnMtcGFnZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb2xsZWN0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtcGFnZXIvY29sbGVjdGlvbnMtcGFnZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFxQixpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUMsVUFBVSxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFFbEcsT0FBTyxFQUFDLGVBQWUsRUFBMkIsTUFBTSxNQUFNLENBQUM7QUFDL0QsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFDLEdBQUcsRUFBRSxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0saUJBQWlCLENBQUM7O0FBYTFDLE1BQU0sT0FBTyxrQkFBa0I7SUFFM0IsSUFDSSxrQkFBa0IsQ0FBQyxLQUFhO1FBQ2hDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxF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QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUMsdUJBQ2xCLEtBQUssY0FDZCxJQUFJLFdBQ1AsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixDQUFDOzhCQUtsRSxrQkFBa0I7c0JBRHJCLEtBQUs7dUJBQUMsRUFBQyxTQUFTLEVBQUUsZUFBZSxFQUFDO2dCQVUvQixVQUFVO3NCQURiLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgbnVtYmVyQXR0cmlidXRlLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYkxvY2FsaXplLCBCYkxvY2FsaXplU3RyaW5nLCBCYkxvY2FsaXplVGVtcGxhdGV9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uL2xvY2FsaXplJztcbmltcG9ydCB7Q29sbGVjdGlvbkRhdGF9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvY29sbGVjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3RNYXB9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uL3J4anMnO1xuaW1wb3J0IHttYXAsIHNoYXJlUmVwbGF5fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0NvbGxlY3Rpb259IGZyb20gJy4uLy4uL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHtBc3luY1BpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmItY29sbGVjdGlvbnMtcGFnZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2xsZWN0aW9ucy1wYWdlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29sbGVjdGlvbnMtcGFnZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHsnY2xhc3MnOiAnYmItY29sbGVjdGlvbnMtcGFnZXInfSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtBc3luY1BpcGUsIEJiTG9jYWxpemVTdHJpbmcsIEJiTG9jYWxpemUsIEJiTG9jYWxpemVUZW1wbGF0ZV1cbn0pXG5leHBvcnQgY2xhc3MgQmJDb2xsZWN0aW9uc1BhZ2VyIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgQElucHV0KHt0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZX0pXG4gICAgc2V0IG1heEFtb3VudE9mQnV0dG9ucyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX21heEFtb3VudE9mQnV0dG9ucyQubmV4dChNYXRoLm1heCgxLCB2YWx1ZSkpO1xuICAgIH1cblxuICAgIGdldCBtYXhBbW91bnRPZkJ1dHRvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXhBbW91bnRPZkJ1dHRvbnMkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pXG4gICAgc2V0IGNvbGxlY3Rpb24oY29sbGVjdGlvbjogQ29sbGVjdGlvbjx1bmtub3duPiB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5fY29sbGVjdGlvbiA9IGNvbGxlY3Rpb247XG4gICAgICAgIHRoaXMub2JzZXJ2ZUNvbGxlY3Rpb25DaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbGxlY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2xsZWN0aW9uO1xuICAgIH1cblxuICAgIC8vIERhdGEuXG4gICAgZGF0YSQ6IE9ic2VydmFibGU8e1xuICAgICAgICBzdGFydD86IG51bWJlcixcbiAgICAgICAgZW5kPzogbnVtYmVyLFxuICAgICAgICB0b3RhbEVudHJpZXM/OiBudW1iZXIsXG4gICAgICAgIHRvdGFsUGFnZXM/OiBudW1iZXIsXG4gICAgICAgIHBhZ2VOdW1iZXI/OiBudW1iZXIsXG4gICAgICAgIHBhZ2VzPzogeyBwYWdlOiBudW1iZXIsIGFjdGl2ZTogYm9vbGVhbiB9W11cbiAgICB9PjtcblxuICAgIC8vIFN0YXRlIGFuZCBzdWJzY3JpcHRpb25zLlxuICAgIHByaXZhdGUgX2NvbGxlY3Rpb246IENvbGxlY3Rpb248dW5rbm93bj4gfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX2NhY2hlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFydGlhbDxDb2xsZWN0aW9uRGF0YTx1bmtub3duPj4+KHt9KTtcbiAgICBwcml2YXRlIF9tYXhBbW91bnRPZkJ1dHRvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDMpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc2V0RGF0YSgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgc2V0UGFnZShwYWdlTnVtYmVyOiBudW1iZXIsIHRvdGFsUGFnZXM6IG51bWJlcikge1xuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIG5ldyB2YWx1ZS5cbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBNYXRoLm1pbihcbiAgICAgICAgICAgIHRvdGFsUGFnZXMsXG4gICAgICAgICAgICBNYXRoLm1heCgxLCBwYWdlTnVtYmVyKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFZhbGlkYXRlIHRoZSB2YWx1ZSBpcyBhY3R1YWxseSBkaWZmZXJlbnQuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMuX2NvbGxlY3Rpb24/LnBhZ2VOdW1iZXJDb250cm9sPy52YWx1ZTtcbiAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSA9PT0gbmV3VmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NvbGxlY3Rpb24/LnBhZ2VOdW1iZXJDb250cm9sPy5zZXRWYWx1ZShwYWdlTnVtYmVyKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERhdGEoKSB7XG4gICAgICAgIHRoaXMuZGF0YSQgPSBjb21iaW5lTGF0ZXN0TWFwKHtcbiAgICAgICAgICAgIGNhY2hlOiB0aGlzLl9jYWNoZSQsXG4gICAgICAgICAgICBtYXhBbW91bnRPZkJ1dHRvbnM6IHRoaXMuX21heEFtb3VudE9mQnV0dG9ucyRcbiAgICAgICAgfSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoe2NhY2hlLCBtYXhBbW91bnRPZkJ1dHRvbnN9KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFnZVNpemUgPSBjYWNoZT8ucGFnZVNpemUgPz8gMTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYWdlTnVtYmVyID0gY2FjaGU/LnBhZ2VOdW1iZXIgPz8gMTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHRvdGFsRW50cmllcyA9IE1hdGgubWF4KDAsIGNhY2hlPy50b3RhbEVudHJpZXMgPz8gMCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBNYXRoLm1heCgwLCBNYXRoLm1pbigocGFnZVNpemUgKiAocGFnZU51bWJlciAtIDEpKSArIDEsIHRvdGFsRW50cmllcykpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IE1hdGgubWF4KDAsIE1hdGgubWluKChzdGFydCAtIDEpICsgcGFnZVNpemUsIHRvdGFsRW50cmllcykpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvdGFsUGFnZXMgPSBNYXRoLm1heCgwLCBjYWNoZT8udG90YWxQYWdlcyA/PyAxKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2VzID0gdGhpcy5maWx0ZXJBY3RpdmVQYWdlcyhwYWdlTnVtYmVyLCB0b3RhbFBhZ2VzLCBtYXhBbW91bnRPZkJ1dHRvbnMpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtzdGFydCwgZW5kLCB0b3RhbEVudHJpZXMsIHRvdGFsUGFnZXMsIHBhZ2VzLCBwYWdlTnVtYmVyfTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc2hhcmVSZXBsYXkoe3JlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9ic2VydmVDb2xsZWN0aW9uQ2hhbmdlcygpIHtcbiAgICAgICAgaWYgKHRoaXMuX3N1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLl9jb2xsZWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSB0aGlzLl9jb2xsZWN0aW9uLnJhdyQuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZSQubmV4dChkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVQYWdlcyhwYWdlTnVtYmVyOiBudW1iZXIsIHRvdGFsUGFnZXM6IG51bWJlciwgbWF4QW1vdW50T2ZCdXR0b25zOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgbWluID0gMTtcbiAgICAgICAgY29uc3QgbWF4ID0gdG90YWxQYWdlcztcbiAgICAgICAgY29uc3QgYW1vdW50ID0gTWF0aC5tYXgoMSwgbWF4QW1vdW50T2ZCdXR0b25zKTtcblxuICAgICAgICBjb25zdCBzdGFydCA9IE1hdGgubWF4KDAsIHBhZ2VOdW1iZXIgLSBNYXRoLmZsb29yKGFtb3VudCAvIDIpKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IEFycmF5KGFtb3VudClcbiAgICAgICAgICAgIC5maWxsKDApXG4gICAgICAgICAgICAubWFwKChfLCBpbmRleCkgPT4gc3RhcnQgKyBpbmRleCk7XG5cbiAgICAgICAgLy8gVmFsaWRhdGUgaWYgdGhlIG1pbmltdW0gdmFsdWUgbGVzcyB0aGFuXG4gICAgICAgIC8vIHRoZSBmaXJzdCB2YWx1ZS5cbiAgICAgICAgaWYgKGRhdGFbMF0gPCBtaW4pIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhLm1hcChpdGVtID0+IGl0ZW0gKyAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgZGlmZmVyZW5jZSB3aXRoIHRoZSBtYXhcbiAgICAgICAgLy8gaWYgdGhpcyB2YWx1ZSBpcyBoaWdoZXIgdGhhbiAwIHdlIHNob3VsZCBtaW51cyBpdC5cbiAgICAgICAgY29uc3QgbGFzdFZhbHVlSW5BcnJheSA9IGRhdGFbZGF0YS5sZW5ndGggLSAxXTtcbiAgICAgICAgY29uc3QgZGlmZmVyZW5jZVdpdGhNYXggPSBsYXN0VmFsdWVJbkFycmF5IC0gbWF4O1xuICAgICAgICBpZiAoZGlmZmVyZW5jZVdpdGhNYXggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YS5tYXAoaXRlbSA9PiBpdGVtIC0gZGlmZmVyZW5jZVdpdGhNYXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSnVzdCByZXR1cm4gdGhlIGRlZmF1bHQgZGF0YS5cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaWx0ZXJBY3RpdmVQYWdlcyhwYWdlTnVtYmVyOiBudW1iZXIsIHRvdGFsUGFnZXM6IG51bWJlciwgbWF4QW1vdW50T2ZCdXR0b25zOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsY3VsYXRlUGFnZXMocGFnZU51bWJlciwgdG90YWxQYWdlcywgbWF4QW1vdW50T2ZCdXR0b25zKVxuICAgICAgICAgICAgLmZpbHRlcihwYWdlID0+IHBhZ2UgPiAwICYmIHBhZ2UgPD0gdG90YWxQYWdlcylcbiAgICAgICAgICAgIC5tYXAocGFnZSA9PiAoe3BhZ2UsIGFjdGl2ZTogcGFnZU51bWJlciA9PT0gcGFnZX0pKTtcbiAgICB9XG5cbn1cbiIsIkBpZiAoZGF0YSQgfCBhc3luYzsgYXMgZGF0YSkge1xuICAgIDxkaXYgW2JiLWxvY2FsaXplLXN0cmluZ109XCInY29sbGVjdGlvbi5zaG93aW5nX2xhYmVsJyB8IGJiTG9jYWxpemVcIlxuICAgICAgICAgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy1wYWdlci10ZXh0XCI+XG4gICAgICAgIDxzdHJvbmcgKmJiTG9jYWxpemVUZW1wbGF0ZT1cIidzdGFydCdcIj57eyBkYXRhPy5zdGFydCB9fTwvc3Ryb25nPlxuICAgICAgICA8c3Ryb25nICpiYkxvY2FsaXplVGVtcGxhdGU9XCInZW5kJ1wiPnt7IGRhdGE/LmVuZCB9fTwvc3Ryb25nPlxuICAgICAgICA8c3Ryb25nICpiYkxvY2FsaXplVGVtcGxhdGU9XCIndG90YWwnXCI+e3sgZGF0YT8udG90YWxFbnRyaWVzIH19PC9zdHJvbmc+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYmItY29sbGVjdGlvbnMtcGFnZXItY29udGFpbmVyXCI+XG4gICAgICAgIDx1bCBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXBhZ2VyLWxpc3RcIj5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXBhZ2VyLWl0ZW1cIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwiUHJldmlvdXMgcGFnZVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImRhdGE/LnBhZ2VOdW1iZXIgPD0gMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0UGFnZShkYXRhPy5wYWdlTnVtYmVyIC0gMSwgZGF0YT8udG90YWxQYWdlcylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy1wYWdlci1idXR0b24gYXJyb3cgZmlyc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAmIzg1OTI7XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBkYXRhPy5wYWdlczsgdHJhY2sgaXRlbT8ucGFnZSkge1xuICAgICAgICAgICAgICAgIDxsaSBbdGl0bGVdPVwiJ1BhZ2UgJyArIGl0ZW0/LnBhZ2VcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXBhZ2VyLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbY2xhc3MuYWN0aXZlXT1cIml0ZW0/LmFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldFBhZ2UoaXRlbT8ucGFnZSwgZGF0YT8udG90YWxQYWdlcylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmItY29sbGVjdGlvbnMtcGFnZXItYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtPy5wYWdlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy1wYWdlci1pdGVtXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIk5leHQgcGFnZVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImRhdGE/LnBhZ2VOdW1iZXIgPj0gZGF0YT8udG90YWxQYWdlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0UGFnZShkYXRhPy5wYWdlTnVtYmVyICsgMSwgZGF0YT8udG90YWxQYWdlcylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy1wYWdlci1idXR0b24gYXJyb3cgbGFzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICYjODU5NDtcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG59XG4iXX0=
|