@ng-atomic/common 19.0.0-preview.9 → 19.1.1
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/directives/fallback-src/index.d.ts +12 -1
- package/directives/ios-safari-scroll-buggyfill/index.d.ts +18 -2
- package/directives/molecules/column/index.d.ts +70 -1
- package/directives/resize-column/index.d.ts +24 -1
- package/fesm2022/ng-atomic-common-directives-fallback-src.mjs +3 -3
- package/fesm2022/ng-atomic-common-directives-fallback-src.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-directives-ios-safari-scroll-buggyfill.mjs +7 -7
- package/fesm2022/ng-atomic-common-directives-ios-safari-scroll-buggyfill.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-directives-molecules-column.mjs +7 -7
- package/fesm2022/ng-atomic-common-directives-molecules-column.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-directives-resize-column.mjs +6 -6
- package/fesm2022/ng-atomic-common-directives-resize-column.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-interceptors-authorization.mjs +3 -3
- package/fesm2022/ng-atomic-common-interceptors-authorization.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-interceptors-throttle.mjs +6 -6
- package/fesm2022/ng-atomic-common-interceptors-throttle.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-interceptors-token.mjs +3 -3
- package/fesm2022/ng-atomic-common-interceptors-token.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-interceptors.mjs +4 -4
- package/fesm2022/ng-atomic-common-interceptors.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-models.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-actions.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-actions.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-auto-columns.mjs +4 -4
- package/fesm2022/ng-atomic-common-pipes-auto-columns.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-columns.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-columns.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-data-accessor.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-data-accessor.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-domain.mjs +17 -7
- package/fesm2022/ng-atomic-common-pipes-domain.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-error.mjs +11 -6
- package/fesm2022/ng-atomic-common-pipes-error.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-expression.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-expression.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-grouped-by.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-grouped-by.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-index-length.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-index-length.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-index.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-index.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-keys.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-keys.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-map.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-map.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-page.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-page.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-pagination.mjs +4 -4
- package/fesm2022/ng-atomic-common-pipes-pagination.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-query.mjs +4 -4
- package/fesm2022/ng-atomic-common-pipes-query.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-resolve-columns.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-resolve-columns.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-secret.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-secret.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-select-id.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-select-id.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-signal.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-signal.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-smart-field.mjs +7 -4
- package/fesm2022/ng-atomic-common-pipes-smart-field.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-sort-by.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-sort-by.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-sort.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-sort.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-style.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-style.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-yen.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-yen.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-app.mjs +6 -6
- package/fesm2022/ng-atomic-common-services-app.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-auth.mjs +29 -6
- package/fesm2022/ng-atomic-common-services-auth.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-breakpoint.mjs +3 -3
- package/fesm2022/ng-atomic-common-services-breakpoint.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-chips-manager.mjs +3 -3
- package/fesm2022/ng-atomic-common-services-chips-manager.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-csv.mjs +3 -3
- package/fesm2022/ng-atomic-common-services-csv.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-editing.mjs +56 -0
- package/fesm2022/ng-atomic-common-services-editing.mjs.map +1 -0
- package/fesm2022/ng-atomic-common-services-fab.mjs +3 -3
- package/fesm2022/ng-atomic-common-services-fab.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-form-_index.mjs +3 -3
- package/fesm2022/ng-atomic-common-services-form-_index.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-form-columns.mjs +3 -3
- package/fesm2022/ng-atomic-common-services-form-columns.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-form-json-schema.mjs +127 -19
- package/fesm2022/ng-atomic-common-services-form-json-schema.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-form-pagination.mjs +3 -3
- package/fesm2022/ng-atomic-common-services-form-pagination.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-form-sort.mjs +3 -3
- package/fesm2022/ng-atomic-common-services-form-sort.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-form.mjs +37 -2
- package/fesm2022/ng-atomic-common-services-form.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-initializer.mjs +3 -3
- package/fesm2022/ng-atomic-common-services-initializer.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-language.mjs +3 -3
- package/fesm2022/ng-atomic-common-services-language.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-loading.mjs +6 -6
- package/fesm2022/ng-atomic-common-services-loading.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-navigation-history.mjs +3 -3
- package/fesm2022/ng-atomic-common-services-navigation-history.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-query-resolver.mjs +7 -7
- package/fesm2022/ng-atomic-common-services-query-resolver.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-root-property.mjs +9 -9
- package/fesm2022/ng-atomic-common-services-root-property.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-router.mjs +3 -3
- package/fesm2022/ng-atomic-common-services-router.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-secret.mjs +3 -3
- package/fesm2022/ng-atomic-common-services-secret.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-sheets-actions.mjs +5 -5
- package/fesm2022/ng-atomic-common-services-sheets-actions.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-sheets.mjs +11 -14
- package/fesm2022/ng-atomic-common-services-sheets.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-side-app.mjs +6 -6
- package/fesm2022/ng-atomic-common-services-side-app.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-side-nav-mode.mjs +3 -3
- package/fesm2022/ng-atomic-common-services-side-nav-mode.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-snack-bar.mjs +7 -7
- package/fesm2022/ng-atomic-common-services-snack-bar.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-spreadsheet.mjs +433 -197
- package/fesm2022/ng-atomic-common-services-spreadsheet.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-ui.mjs +45 -19
- package/fesm2022/ng-atomic-common-services-ui.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-stores-entities.mjs +19 -18
- package/fesm2022/ng-atomic-common-stores-entities.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-stores-entity.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-stores-pagination.mjs +3 -3
- package/fesm2022/ng-atomic-common-stores-pagination.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-stores-query.mjs +3 -3
- package/fesm2022/ng-atomic-common-stores-query.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-stores-selection.mjs +3 -3
- package/fesm2022/ng-atomic-common-stores-selection.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-stores-sort.mjs +3 -3
- package/fesm2022/ng-atomic-common-stores-sort.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-utils.mjs +22 -12
- package/fesm2022/ng-atomic-common-utils.mjs.map +1 -1
- package/fesm2022/ng-atomic-common.mjs +340 -50
- package/fesm2022/ng-atomic-common.mjs.map +1 -1
- package/index.d.ts +111 -1
- package/interceptors/authorization/index.d.ts +20 -1
- package/interceptors/index.d.ts +10 -1
- package/interceptors/throttle/index.d.ts +25 -1
- package/interceptors/token/index.d.ts +17 -1
- package/models/index.d.ts +32 -11
- package/package.json +15 -35
- package/pipes/actions/index.d.ts +11 -1
- package/pipes/auto-columns/index.d.ts +10 -1
- package/pipes/columns/index.d.ts +12 -1
- package/pipes/data-accessor/index.d.ts +23 -1
- package/pipes/domain/index.d.ts +72 -1
- package/pipes/error/index.d.ts +21 -1
- package/pipes/expression/index.d.ts +13 -1
- package/pipes/grouped-by/index.d.ts +13 -1
- package/pipes/index/index.d.ts +17 -1
- package/pipes/index-length/index.d.ts +15 -1
- package/pipes/keys/index.d.ts +12 -1
- package/pipes/map/index.d.ts +10 -1
- package/pipes/page/index.d.ts +14 -1
- package/pipes/pagination/index.d.ts +28 -1
- package/pipes/query/index.d.ts +14 -1
- package/pipes/resolve-columns/index.d.ts +14 -1
- package/pipes/secret/index.d.ts +11 -1
- package/pipes/select-id/index.d.ts +16 -1
- package/pipes/signal/index.d.ts +15 -1
- package/pipes/smart-field/index.d.ts +102 -1
- package/pipes/sort/index.d.ts +11 -1
- package/pipes/sort-by/index.d.ts +20 -1
- package/pipes/style/index.d.ts +22 -1
- package/pipes/yen/index.d.ts +10 -1
- package/services/app/index.d.ts +37 -1
- package/services/auth/index.d.ts +56 -1
- package/services/breakpoint/index.d.ts +35 -1
- package/services/chips-manager/index.d.ts +14 -1
- package/services/csv/index.d.ts +9 -1
- package/services/editing/index.d.ts +30 -0
- package/services/fab/index.d.ts +22 -1
- package/services/form/_index/index.d.ts +61 -1
- package/services/form/columns/index.d.ts +68 -1
- package/services/form/index.d.ts +34 -1
- package/services/form/json-schema/index.d.ts +73 -1
- package/services/form/pagination/index.d.ts +21 -1
- package/services/form/sort/index.d.ts +21 -1
- package/services/initializer/index.d.ts +24 -1
- package/services/language/index.d.ts +16 -1
- package/services/loading/index.d.ts +33 -1
- package/services/navigation-history/index.d.ts +17 -1
- package/services/query-resolver/index.d.ts +32 -1
- package/services/root-property/index.d.ts +100 -2
- package/services/router/index.d.ts +15 -1
- package/services/secret/index.d.ts +9 -1
- package/services/sheets/actions/index.d.ts +12 -1
- package/services/sheets/index.d.ts +20 -2
- package/services/side-app/index.d.ts +24 -1
- package/services/side-nav-mode/index.d.ts +16 -1
- package/services/snack-bar/index.d.ts +22 -2
- package/services/spreadsheet/index.d.ts +307 -4
- package/services/ui/index.d.ts +104 -2
- package/stores/entities/index.d.ts +169 -6
- package/stores/entity/index.d.ts +31 -1
- package/stores/pagination/index.d.ts +24 -1
- package/stores/query/index.d.ts +22 -1
- package/stores/selection/index.d.ts +28 -1
- package/stores/sort/index.d.ts +25 -1
- package/utils/index.d.ts +236 -13
- package/common.module.d.ts +0 -15
- package/directives/fallback-src/fallback-src.directive.d.ts +0 -9
- package/directives/ios-safari-scroll-buggyfill/ios-safari-scroll-buggyfill.directive.d.ts +0 -8
- package/directives/ios-safari-scroll-buggyfill/ios-safari-scroll-buggyfill.module.d.ts +0 -8
- package/directives/molecules/column/column.molecule.d.ts +0 -67
- package/directives/resize-column/resize-column.directive.d.ts +0 -21
- package/directives/resize-column/resize-handle.component.d.ts +0 -5
- package/interceptors/authorization/authorization.interceptor.d.ts +0 -16
- package/interceptors/interceptors.module.d.ts +0 -7
- package/interceptors/throttle/throttle.interceptor.d.ts +0 -23
- package/interceptors/token/authorization.interceptor.d.ts +0 -13
- package/models/menu-item.d.ts +0 -4
- package/pipes/actions/actions.pipe.d.ts +0 -8
- package/pipes/auto-columns/auto-columns.pipe.d.ts +0 -7
- package/pipes/columns/columns.pipe.d.ts +0 -9
- package/pipes/data-accessor/data-accessor.pipe.d.ts +0 -19
- package/pipes/domain/domain.pipe.d.ts +0 -59
- package/pipes/error/error.pipe.d.ts +0 -16
- package/pipes/expression/expression.pipe.d.ts +0 -9
- package/pipes/grouped-by/grouped-by.pipe.d.ts +0 -10
- package/pipes/index/index.pipe.d.ts +0 -11
- package/pipes/index-length/index-length.pipe.d.ts +0 -10
- package/pipes/keys/keys.pipe.d.ts +0 -9
- package/pipes/map/map.pipe.d.ts +0 -7
- package/pipes/page/page.pipe.d.ts +0 -11
- package/pipes/pagination/pagination.pipe.d.ts +0 -25
- package/pipes/query/query.pipe.d.ts +0 -11
- package/pipes/resolve-columns/resolve-columns.pipe.d.ts +0 -11
- package/pipes/secret/secret.pipe.d.ts +0 -8
- package/pipes/select-id/select-id.pipe.d.ts +0 -12
- package/pipes/signal/signal.pipe.d.ts +0 -11
- package/pipes/smart-field/smart-field.pipe.d.ts +0 -98
- package/pipes/sort/sort.pipe.d.ts +0 -8
- package/pipes/sort-by/sort-by.pipe.d.ts +0 -17
- package/pipes/style/style.pipe.d.ts +0 -18
- package/pipes/yen/yen.pipe.d.ts +0 -7
- package/services/app/app.service.d.ts +0 -34
- package/services/auth/auth.service.d.ts +0 -48
- package/services/breakpoint/breakpoint.service.d.ts +0 -29
- package/services/chips-manager/chips.manager.d.ts +0 -11
- package/services/csv/csv.service.d.ts +0 -6
- package/services/fab/fab.service.d.ts +0 -18
- package/services/form/_index/index.service.d.ts +0 -64
- package/services/form/columns/columns.service.d.ts +0 -63
- package/services/form/form.service.d.ts +0 -7
- package/services/form/json-schema/json-schema.d.ts +0 -2
- package/services/form/json-schema/json-schema.service.d.ts +0 -65
- package/services/form/pagination/pagination.service.d.ts +0 -16
- package/services/form/sort/sort.service.d.ts +0 -17
- package/services/initializer/initializer.service.d.ts +0 -22
- package/services/language/language.service.d.ts +0 -12
- package/services/loading/loading.service.d.ts +0 -30
- package/services/navigation-history/navigation-history.service.d.ts +0 -14
- package/services/query-resolver/query-resolver.service.d.ts +0 -27
- package/services/root-property/root-property.di.d.ts +0 -1
- package/services/root-property/root-property.service.d.ts +0 -94
- package/services/router/router.service.d.ts +0 -10
- package/services/secret/secret.service.d.ts +0 -6
- package/services/sheets/actions/actions.sheet.d.ts +0 -9
- package/services/sheets/sheets.module.d.ts +0 -11
- package/services/sheets/sheets.service.d.ts +0 -10
- package/services/side-app/side-app.service.d.ts +0 -21
- package/services/side-nav-mode/side-nav-mode.service.d.ts +0 -12
- package/services/snack-bar/snack-bar.module.d.ts +0 -8
- package/services/snack-bar/snack-bar.service.d.ts +0 -11
- package/services/spreadsheet/directives/grid-cell.directive.d.ts +0 -41
- package/services/spreadsheet/directives/index.d.ts +0 -1
- package/services/spreadsheet/features/clipboard.service.d.ts +0 -15
- package/services/spreadsheet/features/data.service.d.ts +0 -16
- package/services/spreadsheet/features/editor.service.d.ts +0 -22
- package/services/spreadsheet/features/grid.service.d.ts +0 -17
- package/services/spreadsheet/features/index.d.ts +0 -7
- package/services/spreadsheet/features/navigation.service.d.ts +0 -17
- package/services/spreadsheet/features/protection.service.d.ts +0 -24
- package/services/spreadsheet/features/selection.service.d.ts +0 -40
- package/services/spreadsheet/models/cell.model.d.ts +0 -17
- package/services/spreadsheet/models/index.d.ts +0 -1
- package/services/spreadsheet/spreadsheet.service.d.ts +0 -29
- package/services/ui/ui.helpers.d.ts +0 -32
- package/services/ui/ui.service.d.ts +0 -22
- package/stores/entities/di.d.ts +0 -23
- package/stores/entities/entity-store-adapter.d.ts +0 -28
- package/stores/entities/entity-store-manager.d.ts +0 -12
- package/stores/entities/entity-store.d.ts +0 -71
- package/stores/entities/proxy-id.service.d.ts +0 -10
- package/stores/entities/task-composer.d.ts +0 -35
- package/stores/entity/entity.store.d.ts +0 -26
- package/stores/pagination/pagination.store.d.ts +0 -19
- package/stores/query/query.store.d.ts +0 -17
- package/stores/selection/selection.store.d.ts +0 -23
- package/stores/sort/sort.store.d.ts +0 -20
- package/utils/comma/comma.d.ts +0 -3
- package/utils/comma/index.d.ts +0 -1
- package/utils/compare-by-id/compare-by-id.d.ts +0 -5
- package/utils/compare-by-id/index.d.ts +0 -1
- package/utils/date-utils/date-utils.d.ts +0 -10
- package/utils/date-utils/index.d.ts +0 -1
- package/utils/diff/diff.d.ts +0 -5
- package/utils/diff/index.d.ts +0 -1
- package/utils/expression/expression.transformer.d.ts +0 -12
- package/utils/expression/index.d.ts +0 -1
- package/utils/form/form.d.ts +0 -10
- package/utils/form/index.d.ts +0 -1
- package/utils/get/get.d.ts +0 -6
- package/utils/get/index.d.ts +0 -1
- package/utils/inject/index.d.ts +0 -1
- package/utils/inject/inject.d.ts +0 -76
- package/utils/mat-dayjs-date/dayjs-date.adapter.d.ts +0 -60
- package/utils/mat-dayjs-date/dayjs-date.formats.d.ts +0 -5
- package/utils/mat-dayjs-date/dayjs-date.module.d.ts +0 -8
- package/utils/mat-dayjs-date/dayjs-jp-providers.d.ts +0 -10
- package/utils/mat-dayjs-date/index.d.ts +0 -4
- package/utils/page/index.d.ts +0 -1
- package/utils/page/page.d.ts +0 -11
- package/utils/router/index.d.ts +0 -1
- package/utils/router/router.d.ts +0 -4
- package/utils/time.d.ts +0 -1
- package/utils/to-object/index.d.ts +0 -1
- package/utils/to-object/to-object.d.ts +0 -1
|
@@ -1,48 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable,
|
|
2
|
+
import { NgModule, importProvidersFrom, signal, computed, Injectable, inject, ElementRef, input, output, effect, Directive } from '@angular/core';
|
|
3
3
|
import { MatDialogModule } from '@angular/material/dialog';
|
|
4
4
|
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
class SheetService {
|
|
9
|
-
constructor(bottomSheet) {
|
|
10
|
-
this.bottomSheet = bottomSheet;
|
|
11
|
-
}
|
|
12
|
-
async openActions(actions) {
|
|
13
|
-
return import('@ng-atomic/common/services/sheets/actions').then(({ ActionsSheet }) => {
|
|
14
|
-
return this.bottomSheet.open(ActionsSheet, { data: actions });
|
|
15
|
-
}).then((ref) => {
|
|
16
|
-
return ref.afterDismissed().toPromise();
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: SheetService, deps: [{ token: i1.MatBottomSheet }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
20
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: SheetService }); }
|
|
21
|
-
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: SheetService, decorators: [{
|
|
23
|
-
type: Injectable
|
|
24
|
-
}], ctorParameters: () => [{ type: i1.MatBottomSheet }] });
|
|
25
|
-
|
|
26
|
-
class NgAtomicSheetsModule {
|
|
27
|
-
static forRoot() {
|
|
28
|
-
return {
|
|
29
|
-
ngModule: NgAtomicSheetsModule,
|
|
30
|
-
providers: [],
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgAtomicSheetsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
34
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.4", ngImport: i0, type: NgAtomicSheetsModule, imports: [MatBottomSheetModule] }); }
|
|
35
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgAtomicSheetsModule, providers: [SheetService], imports: [MatBottomSheetModule] }); }
|
|
36
|
-
}
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgAtomicSheetsModule, decorators: [{
|
|
38
|
-
type: NgModule,
|
|
39
|
-
args: [{
|
|
40
|
-
imports: [
|
|
41
|
-
MatBottomSheetModule
|
|
42
|
-
],
|
|
43
|
-
providers: [SheetService]
|
|
44
|
-
}]
|
|
45
|
-
}] });
|
|
5
|
+
import { NgAtomicSheetsModule } from '@ng-atomic/common/services/sheets';
|
|
6
|
+
import { toObservable } from '@angular/core/rxjs-interop';
|
|
7
|
+
import { Observable } from 'rxjs';
|
|
46
8
|
|
|
47
9
|
class NgAtomicCommonModule {
|
|
48
10
|
static forRoot() {
|
|
@@ -51,20 +13,21 @@ class NgAtomicCommonModule {
|
|
|
51
13
|
providers: [],
|
|
52
14
|
};
|
|
53
15
|
}
|
|
54
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
55
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
56
|
-
MatSnackBarModule,
|
|
57
|
-
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: NgAtomicCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
17
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.5", ngImport: i0, type: NgAtomicCommonModule, imports: [MatDialogModule,
|
|
18
|
+
MatSnackBarModule,
|
|
19
|
+
NgAtomicSheetsModule] }); }
|
|
20
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: NgAtomicCommonModule, imports: [MatDialogModule,
|
|
58
21
|
MatSnackBarModule,
|
|
59
|
-
NgAtomicSheetsModule
|
|
22
|
+
NgAtomicSheetsModule] }); }
|
|
60
23
|
}
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: NgAtomicCommonModule, decorators: [{
|
|
62
25
|
type: NgModule,
|
|
63
26
|
args: [{
|
|
64
27
|
imports: [
|
|
65
28
|
MatDialogModule,
|
|
66
29
|
MatSnackBarModule,
|
|
67
|
-
NgAtomicSheetsModule
|
|
30
|
+
NgAtomicSheetsModule,
|
|
68
31
|
]
|
|
69
32
|
}]
|
|
70
33
|
}] });
|
|
@@ -72,9 +35,336 @@ function provideNgAtomicCommon() {
|
|
|
72
35
|
return importProvidersFrom(NgAtomicCommonModule.forRoot());
|
|
73
36
|
}
|
|
74
37
|
|
|
38
|
+
/**
|
|
39
|
+
* EditingStateManager Service
|
|
40
|
+
*
|
|
41
|
+
* Manages global editing state for preventing data updates during cell editing.
|
|
42
|
+
* Uses Angular Signals for reactive state management.
|
|
43
|
+
*/
|
|
44
|
+
class EditingStateManager {
|
|
45
|
+
constructor() {
|
|
46
|
+
this.editingCells = signal([]);
|
|
47
|
+
this.isEditing = computed(() => this.editingCells().length > 0);
|
|
48
|
+
this.isEditing$ = toObservable(this.isEditing);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Start editing a cell
|
|
52
|
+
* @param rowId Row identifier
|
|
53
|
+
* @param columnId Column identifier
|
|
54
|
+
*/
|
|
55
|
+
startEditing(rowId, columnId) {
|
|
56
|
+
const cellKey = `${rowId}-${columnId}`;
|
|
57
|
+
this.editingCells.update(cells => {
|
|
58
|
+
const newCells = new Set(cells);
|
|
59
|
+
newCells.add(cellKey);
|
|
60
|
+
return [...newCells];
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Stop editing a cell
|
|
65
|
+
* @param rowId Row identifier
|
|
66
|
+
* @param columnId Column identifier
|
|
67
|
+
*/
|
|
68
|
+
stopEditing(rowId, columnId) {
|
|
69
|
+
const cellKey = `${rowId}-${columnId}`;
|
|
70
|
+
this.editingCells.update(cells => {
|
|
71
|
+
const newCells = new Set(cells);
|
|
72
|
+
newCells.delete(cellKey);
|
|
73
|
+
return [...newCells];
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: EditingStateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
77
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: EditingStateManager, providedIn: 'root' }); }
|
|
78
|
+
}
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: EditingStateManager, decorators: [{
|
|
80
|
+
type: Injectable,
|
|
81
|
+
args: [{ providedIn: 'root' }]
|
|
82
|
+
}] });
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Custom RxJS operator that pauses data flow when editing is active.
|
|
86
|
+
*
|
|
87
|
+
* When editing starts, incoming values are buffered.
|
|
88
|
+
* When editing ends, the latest buffered value is emitted.
|
|
89
|
+
*
|
|
90
|
+
* @param editingStateManager The EditingStateManager service instance
|
|
91
|
+
* @returns An operator function that can be used in RxJS pipe
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* dataStream$.pipe(
|
|
96
|
+
* pauseWhenEditing(this.editingStateManager),
|
|
97
|
+
* // ... other operators
|
|
98
|
+
* )
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
function pauseWhenEditing(editingStateManager) {
|
|
102
|
+
return (source) => {
|
|
103
|
+
return new Observable(observer => {
|
|
104
|
+
let pendingValues = [];
|
|
105
|
+
let isEditing = false;
|
|
106
|
+
// Subscribe to editing state changes
|
|
107
|
+
const editingSub = editingStateManager.isEditing$.subscribe(editing => {
|
|
108
|
+
const wasEditing = isEditing;
|
|
109
|
+
isEditing = editing;
|
|
110
|
+
console.debug('[pauseWhenEditing] Editing state changed:', { wasEditing, isEditing, pendingCount: pendingValues.length });
|
|
111
|
+
// When editing ends, emit the latest pending value
|
|
112
|
+
if (wasEditing && !isEditing && pendingValues.length > 0) {
|
|
113
|
+
// Emit only the latest value (discard older updates)
|
|
114
|
+
const latestValue = pendingValues[pendingValues.length - 1];
|
|
115
|
+
pendingValues = [];
|
|
116
|
+
console.debug('[pauseWhenEditing] Emitting pending value after edit end');
|
|
117
|
+
observer.next(latestValue);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
// Subscribe to the source data stream
|
|
121
|
+
const sourceSub = source.subscribe({
|
|
122
|
+
next: value => {
|
|
123
|
+
if (!isEditing) {
|
|
124
|
+
// Pass through immediately when not editing
|
|
125
|
+
console.debug('[pauseWhenEditing] Passing through value (not editing)');
|
|
126
|
+
observer.next(value);
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
error: err => observer.error(err),
|
|
130
|
+
complete: () => observer.complete()
|
|
131
|
+
});
|
|
132
|
+
// Cleanup subscriptions
|
|
133
|
+
return () => {
|
|
134
|
+
editingSub.unsubscribe();
|
|
135
|
+
sourceSub.unsubscribe();
|
|
136
|
+
};
|
|
137
|
+
});
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Alternative operator that buffers ALL updates during editing.
|
|
142
|
+
*
|
|
143
|
+
* When editing ends, all buffered values are emitted in sequence.
|
|
144
|
+
* This preserves the complete update history.
|
|
145
|
+
*
|
|
146
|
+
* @param editingStateManager The EditingStateManager service instance
|
|
147
|
+
* @returns An operator function that can be used in RxJS pipe
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* ```typescript
|
|
151
|
+
* dataStream$.pipe(
|
|
152
|
+
* bufferWhenEditing(this.editingStateManager),
|
|
153
|
+
* // ... other operators
|
|
154
|
+
* )
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
function bufferWhenEditing(editingStateManager) {
|
|
158
|
+
return (source) => {
|
|
159
|
+
return new Observable(observer => {
|
|
160
|
+
const buffer = [];
|
|
161
|
+
let isEditing = false;
|
|
162
|
+
// Subscribe to editing state changes
|
|
163
|
+
const editingSub = editingStateManager.isEditing$.subscribe(editing => {
|
|
164
|
+
const wasEditing = isEditing;
|
|
165
|
+
isEditing = editing;
|
|
166
|
+
// When editing ends, emit all buffered values
|
|
167
|
+
if (wasEditing && !isEditing && buffer.length > 0) {
|
|
168
|
+
buffer.forEach(value => observer.next(value));
|
|
169
|
+
buffer.length = 0; // Clear the buffer
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
// Subscribe to the source data stream
|
|
173
|
+
const sourceSub = source.subscribe({
|
|
174
|
+
next: value => {
|
|
175
|
+
if (!isEditing) {
|
|
176
|
+
observer.next(value);
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
buffer.push(value);
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
error: err => observer.error(err),
|
|
183
|
+
complete: () => observer.complete()
|
|
184
|
+
});
|
|
185
|
+
// Cleanup subscriptions
|
|
186
|
+
return () => {
|
|
187
|
+
editingSub.unsubscribe();
|
|
188
|
+
sourceSub.unsubscribe();
|
|
189
|
+
};
|
|
190
|
+
});
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
class ActiveControlEventHandlers {
|
|
195
|
+
constructor(hostElement, isActive, onActiveChange) {
|
|
196
|
+
this.hostElement = hostElement;
|
|
197
|
+
this.isActive = isActive;
|
|
198
|
+
this.onActiveChange = onActiveChange;
|
|
199
|
+
this.cleanupFunctions = [];
|
|
200
|
+
}
|
|
201
|
+
setupAll() {
|
|
202
|
+
this.setupClickHandlers();
|
|
203
|
+
this.setupPreventionHandlers();
|
|
204
|
+
return this.cleanupFunctions;
|
|
205
|
+
}
|
|
206
|
+
setupClickHandlers() {
|
|
207
|
+
// ホスト要素クリック
|
|
208
|
+
const mousedownHandler = (e) => {
|
|
209
|
+
this.toggleActive();
|
|
210
|
+
e.stopPropagation();
|
|
211
|
+
};
|
|
212
|
+
this.addEventListener(this.hostElement, 'mousedown', mousedownHandler);
|
|
213
|
+
// 外部クリック
|
|
214
|
+
const documentClickListener = (e) => {
|
|
215
|
+
if (!this.hostElement.contains(e.target) && this.isActive()) {
|
|
216
|
+
this.setActive(false);
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
document.addEventListener('mousedown', documentClickListener, { capture: true });
|
|
220
|
+
this.cleanupFunctions.push(() => document.removeEventListener('mousedown', documentClickListener, { capture: true }));
|
|
221
|
+
}
|
|
222
|
+
setupPreventionHandlers() {
|
|
223
|
+
// ホイールイベント
|
|
224
|
+
this.addEventListener(this.hostElement, 'wheel', (e) => {
|
|
225
|
+
if (this.isActive()) {
|
|
226
|
+
e.preventDefault();
|
|
227
|
+
e.stopPropagation();
|
|
228
|
+
}
|
|
229
|
+
}, { passive: false });
|
|
230
|
+
// タッチイベント
|
|
231
|
+
const touchHandler = (e) => {
|
|
232
|
+
if (!this.isActive())
|
|
233
|
+
return;
|
|
234
|
+
if (e.touches.length > 1) {
|
|
235
|
+
e.preventDefault();
|
|
236
|
+
e.stopPropagation();
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
e.stopPropagation();
|
|
240
|
+
}
|
|
241
|
+
};
|
|
242
|
+
this.addEventListener(this.hostElement, 'touchstart', touchHandler, { passive: false });
|
|
243
|
+
this.addEventListener(this.hostElement, 'touchmove', touchHandler, { passive: false });
|
|
244
|
+
// ジェスチャーイベント
|
|
245
|
+
const gestureHandler = (e) => {
|
|
246
|
+
if (this.isActive()) {
|
|
247
|
+
e.preventDefault();
|
|
248
|
+
e.stopPropagation();
|
|
249
|
+
}
|
|
250
|
+
};
|
|
251
|
+
['gesturestart', 'gesturechange', 'gestureend'].forEach(eventName => {
|
|
252
|
+
this.addEventListener(this.hostElement, eventName, gestureHandler, { passive: false });
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
addEventListener(element, event, handler, options) {
|
|
256
|
+
element.addEventListener(event, handler, options);
|
|
257
|
+
this.cleanupFunctions.push(() => element.removeEventListener(event, handler, options));
|
|
258
|
+
}
|
|
259
|
+
toggleActive() {
|
|
260
|
+
this.setActive(!this.isActive());
|
|
261
|
+
}
|
|
262
|
+
setActive(active) {
|
|
263
|
+
this.isActive.set(active);
|
|
264
|
+
this.onActiveChange(active);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
class ScrollControl {
|
|
269
|
+
constructor(scrollElement, isActive) {
|
|
270
|
+
this.scrollElement = scrollElement;
|
|
271
|
+
this.isActive = isActive;
|
|
272
|
+
this.lockedScrollTop = 0;
|
|
273
|
+
}
|
|
274
|
+
setup() {
|
|
275
|
+
const cleanups = [];
|
|
276
|
+
// アクティブ状態の監視
|
|
277
|
+
let previousActive = this.isActive();
|
|
278
|
+
const checkActiveState = () => {
|
|
279
|
+
const currentActive = this.isActive();
|
|
280
|
+
if (previousActive !== currentActive && !currentActive) {
|
|
281
|
+
this.lockedScrollTop = this.scrollElement.scrollTop;
|
|
282
|
+
}
|
|
283
|
+
previousActive = currentActive;
|
|
284
|
+
this.rafId = requestAnimationFrame(checkActiveState);
|
|
285
|
+
};
|
|
286
|
+
checkActiveState();
|
|
287
|
+
cleanups.push(() => {
|
|
288
|
+
if (this.rafId !== undefined) {
|
|
289
|
+
cancelAnimationFrame(this.rafId);
|
|
290
|
+
}
|
|
291
|
+
});
|
|
292
|
+
// スクロールイベント監視
|
|
293
|
+
const scrollHandler = () => {
|
|
294
|
+
if (!this.isActive()) {
|
|
295
|
+
this.scrollElement.scrollTop = this.lockedScrollTop;
|
|
296
|
+
}
|
|
297
|
+
};
|
|
298
|
+
this.scrollElement.addEventListener('scroll', scrollHandler);
|
|
299
|
+
cleanups.push(() => this.scrollElement.removeEventListener('scroll', scrollHandler));
|
|
300
|
+
return cleanups;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* アクティブ状態を管理するディレクティブ
|
|
306
|
+
*
|
|
307
|
+
* クリックでアクティブ化、外部クリックで非アクティブ化し、
|
|
308
|
+
* スクロール位置の固定やイベント伝播の制御を行います。
|
|
309
|
+
*
|
|
310
|
+
* @example
|
|
311
|
+
* ```html
|
|
312
|
+
* <div appActiveControl
|
|
313
|
+
* [scrollSelector]="'.xterm-viewport'"
|
|
314
|
+
* (activeChange)="onActiveChange($event)">
|
|
315
|
+
* <!-- content -->
|
|
316
|
+
* </div>
|
|
317
|
+
* ```
|
|
318
|
+
*/
|
|
319
|
+
class ActiveControlDirective {
|
|
320
|
+
constructor() {
|
|
321
|
+
this.el = inject(ElementRef);
|
|
322
|
+
this.scrollSelector = input();
|
|
323
|
+
this.activeChange = output();
|
|
324
|
+
this.isActive = signal(false);
|
|
325
|
+
this.cleanupFunctions = [];
|
|
326
|
+
effect(() => {
|
|
327
|
+
setTimeout(() => this.initialize(), 100);
|
|
328
|
+
}, { allowSignalWrites: true });
|
|
329
|
+
}
|
|
330
|
+
ngOnDestroy() {
|
|
331
|
+
this.cleanupFunctions.forEach(cleanup => cleanup());
|
|
332
|
+
}
|
|
333
|
+
initialize() {
|
|
334
|
+
const hostElement = this.el.nativeElement;
|
|
335
|
+
// イベントハンドラーのセットアップ
|
|
336
|
+
const eventHandlers = new ActiveControlEventHandlers(hostElement, this.isActive, (active) => this.activeChange.emit(active));
|
|
337
|
+
this.cleanupFunctions.push(...eventHandlers.setupAll());
|
|
338
|
+
// スクロール制御のセットアップ(オプション)
|
|
339
|
+
const scrollSelector = this.scrollSelector();
|
|
340
|
+
if (scrollSelector) {
|
|
341
|
+
const scrollElement = hostElement.querySelector(scrollSelector);
|
|
342
|
+
if (scrollElement) {
|
|
343
|
+
const scrollControl = new ScrollControl(scrollElement, this.isActive);
|
|
344
|
+
this.cleanupFunctions.push(...scrollControl.setup());
|
|
345
|
+
}
|
|
346
|
+
else {
|
|
347
|
+
console.warn(`ActiveControlDirective: scroll element not found: ${scrollSelector}`);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: ActiveControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
352
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.5", type: ActiveControlDirective, isStandalone: true, selector: "[appActiveControl]", inputs: { scrollSelector: { classPropertyName: "scrollSelector", publicName: "scrollSelector", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeChange: "activeChange" }, host: { properties: { "class.active": "isActive()" } }, ngImport: i0 }); }
|
|
353
|
+
}
|
|
354
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: ActiveControlDirective, decorators: [{
|
|
355
|
+
type: Directive,
|
|
356
|
+
args: [{
|
|
357
|
+
selector: '[appActiveControl]',
|
|
358
|
+
standalone: true,
|
|
359
|
+
host: {
|
|
360
|
+
'[class.active]': 'isActive()',
|
|
361
|
+
}
|
|
362
|
+
}]
|
|
363
|
+
}], ctorParameters: () => [] });
|
|
364
|
+
|
|
75
365
|
/**
|
|
76
366
|
* Generated bundle index. Do not edit.
|
|
77
367
|
*/
|
|
78
368
|
|
|
79
|
-
export { NgAtomicCommonModule, provideNgAtomicCommon };
|
|
369
|
+
export { ActiveControlDirective, EditingStateManager, NgAtomicCommonModule, bufferWhenEditing, pauseWhenEditing, provideNgAtomicCommon };
|
|
80
370
|
//# sourceMappingURL=ng-atomic-common.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/sheets/sheets.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/sheets/sheets.module.ts","../../../../../packages/@ng-atomic/common/src/lib/common.module.ts","../../../../../packages/@ng-atomic/common/src/lib/ng-atomic-common.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { MatBottomSheet, MatBottomSheetRef } from '@angular/material/bottom-sheet';\nimport { Action } from '@ng-atomic/core';\n\n@Injectable()\nexport class SheetService {\n\n constructor(private bottomSheet: MatBottomSheet) { }\n\n async openActions(actions: Action[]): Promise<Action | null> {\n return import('@ng-atomic/common/services/sheets/actions').then(({ActionsSheet}) => {\n return this.bottomSheet.open(ActionsSheet, {data: actions});\n }).then((ref: MatBottomSheetRef) => {\n return ref.afterDismissed().toPromise();\n });\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\nimport { SheetService } from \"./sheets.service\";\n\n@NgModule({\n imports: [\n MatBottomSheetModule\n ],\n providers: [SheetService]\n})\nexport class NgAtomicSheetsModule {\n static forRoot() {\n return {\n ngModule: NgAtomicSheetsModule,\n providers: [\n\n ],\n };\n }\n}","import { EnvironmentProviders, importProvidersFrom, NgModule } from \"@angular/core\";\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { NgAtomicSheetsModule } from \"./services/sheets\";\n\n\n@NgModule({\n imports: [\n MatDialogModule,\n MatSnackBarModule,\n NgAtomicSheetsModule.forRoot(),\n ]\n})\nexport class NgAtomicCommonModule {\n static forRoot() {\n return {\n ngModule: NgAtomicCommonModule,\n providers: [\n ],\n }\n }\n}\n\nexport function provideNgAtomicCommon(): EnvironmentProviders {\n return importProvidersFrom(NgAtomicCommonModule.forRoot());\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.NgAtomicSheetsModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-atomic-common.mjs","sources":["../tmp-esm2022/common.module.js","../tmp-esm2022/services/editing/editing-state-manager.service.js","../tmp-esm2022/operators/pause-when-editing.operator.js","../tmp-esm2022/directives/active-control/handlers/event-handlers.js","../tmp-esm2022/directives/active-control/handlers/scroll-control.js","../tmp-esm2022/directives/active-control/active-control.directive.js","../tmp-esm2022/ng-atomic-common.js"],"sourcesContent":["import { importProvidersFrom, NgModule } from \"@angular/core\";\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { NgAtomicSheetsModule } from \"@ng-atomic/common/services/sheets\";\nimport * as i0 from \"@angular/core\";\nexport class NgAtomicCommonModule {\n static forRoot() {\n return {\n ngModule: NgAtomicCommonModule,\n providers: [],\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: NgAtomicCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: NgAtomicCommonModule, imports: [MatDialogModule,\n MatSnackBarModule,\n NgAtomicSheetsModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: NgAtomicCommonModule, imports: [MatDialogModule,\n MatSnackBarModule,\n NgAtomicSheetsModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: NgAtomicCommonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n MatDialogModule,\n MatSnackBarModule,\n NgAtomicSheetsModule,\n ]\n }]\n }] });\nexport function provideNgAtomicCommon() {\n return importProvidersFrom(NgAtomicCommonModule.forRoot());\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvY29tbW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdCLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBVXpFLE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixTQUFTLEVBQUUsRUFDVjtTQUNGLENBQUE7SUFDSCxDQUFDOzhHQVBVLG9CQUFvQjsrR0FBcEIsb0JBQW9CLFlBTDdCLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsb0JBQW9COytHQUdYLG9CQUFvQixZQUw3QixlQUFlO1lBQ2YsaUJBQWlCO1lBQ2pCLG9CQUFvQjs7MkZBR1gsb0JBQW9CO2tCQVBoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsb0JBQW9CO3FCQUNyQjtpQkFDRjs7QUFXRCxNQUFNLFVBQVUscUJBQXFCO0lBQ25DLE9BQU8sbUJBQW1CLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUM3RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRQcm92aWRlcnMsIGltcG9ydFByb3ZpZGVyc0Zyb20sIE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRTbmFja0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBOZ0F0b21pY1NoZWV0c01vZHVsZSB9IGZyb20gXCJAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy9zaGVldHNcIjtcblxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgIE1hdFNuYWNrQmFyTW9kdWxlLFxuICAgIE5nQXRvbWljU2hlZXRzTW9kdWxlLFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE5nQXRvbWljQ29tbW9uTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBOZ0F0b21pY0NvbW1vbk1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgXSxcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVOZ0F0b21pY0NvbW1vbigpOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIHJldHVybiBpbXBvcnRQcm92aWRlcnNGcm9tKE5nQXRvbWljQ29tbW9uTW9kdWxlLmZvclJvb3QoKSk7XG59XG4iXX0=","import { Injectable, signal, computed } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport * as i0 from \"@angular/core\";\n/**\n * EditingStateManager Service\n *\n * Manages global editing state for preventing data updates during cell editing.\n * Uses Angular Signals for reactive state management.\n */\nexport class EditingStateManager {\n constructor() {\n this.editingCells = signal([]);\n this.isEditing = computed(() => this.editingCells().length > 0);\n this.isEditing$ = toObservable(this.isEditing);\n }\n /**\n * Start editing a cell\n * @param rowId Row identifier\n * @param columnId Column identifier\n */\n startEditing(rowId, columnId) {\n const cellKey = `${rowId}-${columnId}`;\n this.editingCells.update(cells => {\n const newCells = new Set(cells);\n newCells.add(cellKey);\n return [...newCells];\n });\n }\n /**\n * Stop editing a cell\n * @param rowId Row identifier\n * @param columnId Column identifier\n */\n stopEditing(rowId, columnId) {\n const cellKey = `${rowId}-${columnId}`;\n this.editingCells.update(cells => {\n const newCells = new Set(cells);\n newCells.delete(cellKey);\n return [...newCells];\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: EditingStateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: EditingStateManager, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: EditingStateManager, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGluZy1zdGF0ZS1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2VkaXRpbmcvZWRpdGluZy1zdGF0ZS1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFMUQ7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBRW1CLGlCQUFZLEdBQUcsTUFBTSxDQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzRCxlQUFVLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztLQTZCcEQ7SUEzQkM7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxLQUFzQixFQUFFLFFBQWdCO1FBQ25ELE1BQU0sT0FBTyxHQUFHLEdBQUcsS0FBSyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9CLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsT0FBTyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxLQUFzQixFQUFFLFFBQWdCO1FBQ2xELE1BQU0sT0FBTyxHQUFHLEdBQUcsS0FBSyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9CLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDekIsT0FBTyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQS9CVSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUROLE1BQU07OzJGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsLCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG4vKipcbiAqIEVkaXRpbmdTdGF0ZU1hbmFnZXIgU2VydmljZVxuICogXG4gKiBNYW5hZ2VzIGdsb2JhbCBlZGl0aW5nIHN0YXRlIGZvciBwcmV2ZW50aW5nIGRhdGEgdXBkYXRlcyBkdXJpbmcgY2VsbCBlZGl0aW5nLlxuICogVXNlcyBBbmd1bGFyIFNpZ25hbHMgZm9yIHJlYWN0aXZlIHN0YXRlIG1hbmFnZW1lbnQuXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgRWRpdGluZ1N0YXRlTWFuYWdlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWRpdGluZ0NlbGxzID0gc2lnbmFsPHN0cmluZ1tdPihbXSk7XG4gIHJlYWRvbmx5IGlzRWRpdGluZyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZWRpdGluZ0NlbGxzKCkubGVuZ3RoID4gMCk7XG4gIHJlYWRvbmx5IGlzRWRpdGluZyQgPSB0b09ic2VydmFibGUodGhpcy5pc0VkaXRpbmcpO1xuICBcbiAgLyoqXG4gICAqIFN0YXJ0IGVkaXRpbmcgYSBjZWxsXG4gICAqIEBwYXJhbSByb3dJZCBSb3cgaWRlbnRpZmllclxuICAgKiBAcGFyYW0gY29sdW1uSWQgQ29sdW1uIGlkZW50aWZpZXJcbiAgICovXG4gIHN0YXJ0RWRpdGluZyhyb3dJZDogc3RyaW5nIHwgbnVtYmVyLCBjb2x1bW5JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY2VsbEtleSA9IGAke3Jvd0lkfS0ke2NvbHVtbklkfWA7XG4gICAgdGhpcy5lZGl0aW5nQ2VsbHMudXBkYXRlKGNlbGxzID0+IHtcbiAgICAgIGNvbnN0IG5ld0NlbGxzID0gbmV3IFNldChjZWxscyk7XG4gICAgICBuZXdDZWxscy5hZGQoY2VsbEtleSk7XG4gICAgICByZXR1cm4gWy4uLm5ld0NlbGxzXTtcbiAgICB9KTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIFN0b3AgZWRpdGluZyBhIGNlbGxcbiAgICogQHBhcmFtIHJvd0lkIFJvdyBpZGVudGlmaWVyXG4gICAqIEBwYXJhbSBjb2x1bW5JZCBDb2x1bW4gaWRlbnRpZmllclxuICAgKi9cbiAgc3RvcEVkaXRpbmcocm93SWQ6IHN0cmluZyB8IG51bWJlciwgY29sdW1uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGNlbGxLZXkgPSBgJHtyb3dJZH0tJHtjb2x1bW5JZH1gO1xuICAgIHRoaXMuZWRpdGluZ0NlbGxzLnVwZGF0ZShjZWxscyA9PiB7XG4gICAgICBjb25zdCBuZXdDZWxscyA9IG5ldyBTZXQoY2VsbHMpO1xuICAgICAgbmV3Q2VsbHMuZGVsZXRlKGNlbGxLZXkpO1xuICAgICAgcmV0dXJuIFsuLi5uZXdDZWxsc107XG4gICAgfSk7XG4gIH1cbn0iXX0=","import { Observable } from 'rxjs';\n/**\n * Custom RxJS operator that pauses data flow when editing is active.\n *\n * When editing starts, incoming values are buffered.\n * When editing ends, the latest buffered value is emitted.\n *\n * @param editingStateManager The EditingStateManager service instance\n * @returns An operator function that can be used in RxJS pipe\n *\n * @example\n * ```typescript\n * dataStream$.pipe(\n * pauseWhenEditing(this.editingStateManager),\n * // ... other operators\n * )\n * ```\n */\nexport function pauseWhenEditing(editingStateManager) {\n return (source) => {\n return new Observable(observer => {\n let pendingValues = [];\n let isEditing = false;\n // Subscribe to editing state changes\n const editingSub = editingStateManager.isEditing$.subscribe(editing => {\n const wasEditing = isEditing;\n isEditing = editing;\n console.debug('[pauseWhenEditing] Editing state changed:', { wasEditing, isEditing, pendingCount: pendingValues.length });\n // When editing ends, emit the latest pending value\n if (wasEditing && !isEditing && pendingValues.length > 0) {\n // Emit only the latest value (discard older updates)\n const latestValue = pendingValues[pendingValues.length - 1];\n pendingValues = [];\n console.debug('[pauseWhenEditing] Emitting pending value after edit end');\n observer.next(latestValue);\n }\n });\n // Subscribe to the source data stream\n const sourceSub = source.subscribe({\n next: value => {\n if (!isEditing) {\n // Pass through immediately when not editing\n console.debug('[pauseWhenEditing] Passing through value (not editing)');\n observer.next(value);\n }\n },\n error: err => observer.error(err),\n complete: () => observer.complete()\n });\n // Cleanup subscriptions\n return () => {\n editingSub.unsubscribe();\n sourceSub.unsubscribe();\n };\n });\n };\n}\n/**\n * Alternative operator that buffers ALL updates during editing.\n *\n * When editing ends, all buffered values are emitted in sequence.\n * This preserves the complete update history.\n *\n * @param editingStateManager The EditingStateManager service instance\n * @returns An operator function that can be used in RxJS pipe\n *\n * @example\n * ```typescript\n * dataStream$.pipe(\n * bufferWhenEditing(this.editingStateManager),\n * // ... other operators\n * )\n * ```\n */\nexport function bufferWhenEditing(editingStateManager) {\n return (source) => {\n return new Observable(observer => {\n const buffer = [];\n let isEditing = false;\n // Subscribe to editing state changes\n const editingSub = editingStateManager.isEditing$.subscribe(editing => {\n const wasEditing = isEditing;\n isEditing = editing;\n // When editing ends, emit all buffered values\n if (wasEditing && !isEditing && buffer.length > 0) {\n buffer.forEach(value => observer.next(value));\n buffer.length = 0; // Clear the buffer\n }\n });\n // Subscribe to the source data stream\n const sourceSub = source.subscribe({\n next: value => {\n if (!isEditing) {\n observer.next(value);\n }\n else {\n buffer.push(value);\n }\n },\n error: err => observer.error(err),\n complete: () => observer.complete()\n });\n // Cleanup subscriptions\n return () => {\n editingSub.unsubscribe();\n sourceSub.unsubscribe();\n };\n });\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF1c2Utd2hlbi1lZGl0aW5nLm9wZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9vcGVyYXRvcnMvcGF1c2Utd2hlbi1lZGl0aW5nLm9wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBRzVEOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixtQkFBd0M7SUFFeEMsT0FBTyxDQUFDLE1BQXFCLEVBQUUsRUFBRTtRQUMvQixPQUFPLElBQUksVUFBVSxDQUFJLFFBQVEsQ0FBQyxFQUFFO1lBQ2xDLElBQUksYUFBYSxHQUFRLEVBQUUsQ0FBQztZQUM1QixJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFFdEIscUNBQXFDO1lBQ3JDLE1BQU0sVUFBVSxHQUFHLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ3BFLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQztnQkFDN0IsU0FBUyxHQUFHLE9BQU8sQ0FBQztnQkFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQywyQ0FBMkMsRUFBRSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2dCQUUxSCxtREFBbUQ7Z0JBQ25ELElBQUksVUFBVSxJQUFJLENBQUMsU0FBUyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3pELHFEQUFxRDtvQkFDckQsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQzVELGFBQWEsR0FBRyxFQUFFLENBQUM7b0JBQ25CLE9BQU8sQ0FBQyxLQUFLLENB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cmF0b3JGdW5jdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRWRpdGluZ1N0YXRlTWFuYWdlciB9IGZyb20gJy4uL3NlcnZpY2VzL2VkaXRpbmcvZWRpdGluZy1zdGF0ZS1tYW5hZ2VyLnNlcnZpY2UnO1xuXG4vKipcbiAqIEN1c3RvbSBSeEpTIG9wZXJhdG9yIHRoYXQgcGF1c2VzIGRhdGEgZmxvdyB3aGVuIGVkaXRpbmcgaXMgYWN0aXZlLlxuICogXG4gKiBXaGVuIGVkaXRpbmcgc3RhcnRzLCBpbmNvbWluZyB2YWx1ZXMgYXJlIGJ1ZmZlcmVkLlxuICogV2hlbiBlZGl0aW5nIGVuZHMsIHRoZSBsYXRlc3QgYnVmZmVyZWQgdmFsdWUgaXMgZW1pdHRlZC5cbiAqIFxuICogQHBhcmFtIGVkaXRpbmdTdGF0ZU1hbmFnZXIgVGhlIEVkaXRpbmdTdGF0ZU1hbmFnZXIgc2VydmljZSBpbnN0YW5jZVxuICogQHJldHVybnMgQW4gb3BlcmF0b3IgZnVuY3Rpb24gdGhhdCBjYW4gYmUgdXNlZCBpbiBSeEpTIHBpcGVcbiAqIFxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGRhdGFTdHJlYW0kLnBpcGUoXG4gKiAgIHBhdXNlV2hlbkVkaXRpbmcodGhpcy5lZGl0aW5nU3RhdGVNYW5hZ2VyKSxcbiAqICAgLy8gLi4uIG90aGVyIG9wZXJhdG9yc1xuICogKVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXVzZVdoZW5FZGl0aW5nPFQ+KFxuICBlZGl0aW5nU3RhdGVNYW5hZ2VyOiBFZGl0aW5nU3RhdGVNYW5hZ2VyXG4pOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICByZXR1cm4gKHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxUPihvYnNlcnZlciA9PiB7XG4gICAgICBsZXQgcGVuZGluZ1ZhbHVlczogVFtdID0gW107XG4gICAgICBsZXQgaXNFZGl0aW5nID0gZmFsc2U7XG4gICAgICBcbiAgICAgIC8vIFN1YnNjcmliZSB0byBlZGl0aW5nIHN0YXRlIGNoYW5nZXNcbiAgICAgIGNvbnN0IGVkaXRpbmdTdWIgPSBlZGl0aW5nU3RhdGVNYW5hZ2VyLmlzRWRpdGluZyQuc3Vic2NyaWJlKGVkaXRpbmcgPT4ge1xuICAgICAgICBjb25zdCB3YXNFZGl0aW5nID0gaXNFZGl0aW5nO1xuICAgICAgICBpc0VkaXRpbmcgPSBlZGl0aW5nO1xuICAgICAgICBjb25zb2xlLmRlYnVnKCdbcGF1c2VXaGVuRWRpdGluZ10gRWRpdGluZyBzdGF0ZSBjaGFuZ2VkOicsIHsgd2FzRWRpdGluZywgaXNFZGl0aW5nLCBwZW5kaW5nQ291bnQ6IHBlbmRpbmdWYWx1ZXMubGVuZ3RoIH0pO1xuICAgICAgICBcbiAgICAgICAgLy8gV2hlbiBlZGl0aW5nIGVuZHMsIGVtaXQgdGhlIGxhdGVzdCBwZW5kaW5nIHZhbHVlXG4gICAgICAgIGlmICh3YXNFZGl0aW5nICYmICFpc0VkaXRpbmcgJiYgcGVuZGluZ1ZhbHVlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgLy8gRW1pdCBvbmx5IHRoZSBsYXRlc3QgdmFsdWUgKGRpc2NhcmQgb2xkZXIgdXBkYXRlcylcbiAgICAgICAgICBjb25zdCBsYXRlc3RWYWx1ZSA9IHBlbmRpbmdWYWx1ZXNbcGVuZGluZ1ZhbHVlcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICBwZW5kaW5nVmFsdWVzID0gW107XG4gICAgICAgICAgY29uc29sZS5kZWJ1ZygnW3BhdXNlV2hlbkVkaXRpbmddIEVtaXR0aW5nIHBlbmRpbmcgdmFsdWUgYWZ0ZXIgZWRpdCBlbmQnKTtcbiAgICAgICAgICBvYnNlcnZlci5uZXh0KGxhdGVzdFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIC8vIFN1YnNjcmliZSB0byB0aGUgc291cmNlIGRhdGEgc3RyZWFtXG4gICAgICBjb25zdCBzb3VyY2VTdWIgPSBzb3VyY2Uuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogdmFsdWUgPT4ge1xuICAgICAgICAgIGlmICghaXNFZGl0aW5nKSB7XG4gICAgICAgICAgICAvLyBQYXNzIHRocm91Z2ggaW1tZWRpYXRlbHkgd2hlbiBub3QgZWRpdGluZ1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygnW3BhdXNlV2hlbkVkaXRpbmddIFBhc3NpbmcgdGhyb3VnaCB2YWx1ZSAobm90IGVkaXRpbmcpJyk7XG4gICAgICAgICAgICBvYnNlcnZlci5uZXh0KHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnIgPT4gb2JzZXJ2ZXIuZXJyb3IoZXJyKSxcbiAgICAgICAgY29tcGxldGU6ICgpID0+IG9ic2VydmVyLmNvbXBsZXRlKClcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICAvLyBDbGVhbnVwIHN1YnNjcmlwdGlvbnNcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGVkaXRpbmdTdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgc291cmNlU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9O1xuICAgIH0pO1xuICB9O1xufVxuXG4vKipcbiAqIEFsdGVybmF0aXZlIG9wZXJhdG9yIHRoYXQgYnVmZmVycyBBTEwgdXBkYXRlcyBkdXJpbmcgZWRpdGluZy5cbiAqIFxuICogV2hlbiBlZGl0aW5nIGVuZHMsIGFsbCBidWZmZXJlZCB2YWx1ZXMgYXJlIGVtaXR0ZWQgaW4gc2VxdWVuY2UuXG4gKiBUaGlzIHByZXNlcnZlcyB0aGUgY29tcGxldGUgdXBkYXRlIGhpc3RvcnkuXG4gKiBcbiAqIEBwYXJhbSBlZGl0aW5nU3RhdGVNYW5hZ2VyIFRoZSBFZGl0aW5nU3RhdGVNYW5hZ2VyIHNlcnZpY2UgaW5zdGFuY2VcbiAqIEByZXR1cm5zIEFuIG9wZXJhdG9yIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIHVzZWQgaW4gUnhKUyBwaXBlXG4gKiBcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBkYXRhU3RyZWFtJC5waXBlKFxuICogICBidWZmZXJXaGVuRWRpdGluZyh0aGlzLmVkaXRpbmdTdGF0ZU1hbmFnZXIpLFxuICogICAvLyAuLi4gb3RoZXIgb3BlcmF0b3JzXG4gKiApXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1ZmZlcldoZW5FZGl0aW5nPFQ+KFxuICBlZGl0aW5nU3RhdGVNYW5hZ2VyOiBFZGl0aW5nU3RhdGVNYW5hZ2VyXG4pOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICByZXR1cm4gKHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxUPihvYnNlcnZlciA9PiB7XG4gICAgICBjb25zdCBidWZmZXI6IFRbXSA9IFtdO1xuICAgICAgbGV0IGlzRWRpdGluZyA9IGZhbHNlO1xuICAgICAgXG4gICAgICAvLyBTdWJzY3JpYmUgdG8gZWRpdGluZyBzdGF0ZSBjaGFuZ2VzXG4gICAgICBjb25zdCBlZGl0aW5nU3ViID0gZWRpdGluZ1N0YXRlTWFuYWdlci5pc0VkaXRpbmckLnN1YnNjcmliZShlZGl0aW5nID0+IHtcbiAgICAgICAgY29uc3Qgd2FzRWRpdGluZyA9IGlzRWRpdGluZztcbiAgICAgICAgaXNFZGl0aW5nID0gZWRpdGluZztcbiAgICAgICAgXG4gICAgICAgIC8vIFdoZW4gZWRpdGluZyBlbmRzLCBlbWl0IGFsbCBidWZmZXJlZCB2YWx1ZXNcbiAgICAgICAgaWYgKHdhc0VkaXRpbmcgJiYgIWlzRWRpdGluZyAmJiBidWZmZXIubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGJ1ZmZlci5mb3JFYWNoKHZhbHVlID0+IG9ic2VydmVyLm5leHQodmFsdWUpKTtcbiAgICAgICAgICBidWZmZXIubGVuZ3RoID0gMDsgLy8gQ2xlYXIgdGhlIGJ1ZmZlclxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgLy8gU3Vic2NyaWJlIHRvIHRoZSBzb3VyY2UgZGF0YSBzdHJlYW1cbiAgICAgIGNvbnN0IHNvdXJjZVN1YiA9IHNvdXJjZS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiB2YWx1ZSA9PiB7XG4gICAgICAgICAgaWYgKCFpc0VkaXRpbmcpIHtcbiAgICAgICAgICAgIG9ic2VydmVyLm5leHQodmFsdWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBidWZmZXIucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZXJyID0+IG9ic2VydmVyLmVycm9yKGVyciksXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiBvYnNlcnZlci5jb21wbGV0ZSgpXG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgLy8gQ2xlYW51cCBzdWJzY3JpcHRpb25zXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBlZGl0aW5nU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHNvdXJjZVN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfTtcbn0iXX0=","export class ActiveControlEventHandlers {\n constructor(hostElement, isActive, onActiveChange) {\n this.hostElement = hostElement;\n this.isActive = isActive;\n this.onActiveChange = onActiveChange;\n this.cleanupFunctions = [];\n }\n setupAll() {\n this.setupClickHandlers();\n this.setupPreventionHandlers();\n return this.cleanupFunctions;\n }\n setupClickHandlers() {\n // ホスト要素クリック\n const mousedownHandler = (e) => {\n this.toggleActive();\n e.stopPropagation();\n };\n this.addEventListener(this.hostElement, 'mousedown', mousedownHandler);\n // 外部クリック\n const documentClickListener = (e) => {\n if (!this.hostElement.contains(e.target) && this.isActive()) {\n this.setActive(false);\n }\n };\n document.addEventListener('mousedown', documentClickListener, { capture: true });\n this.cleanupFunctions.push(() => document.removeEventListener('mousedown', documentClickListener, { capture: true }));\n }\n setupPreventionHandlers() {\n // ホイールイベント\n this.addEventListener(this.hostElement, 'wheel', (e) => {\n if (this.isActive()) {\n e.preventDefault();\n e.stopPropagation();\n }\n }, { passive: false });\n // タッチイベント\n const touchHandler = (e) => {\n if (!this.isActive())\n return;\n if (e.touches.length > 1) {\n e.preventDefault();\n e.stopPropagation();\n }\n else {\n e.stopPropagation();\n }\n };\n this.addEventListener(this.hostElement, 'touchstart', touchHandler, { passive: false });\n this.addEventListener(this.hostElement, 'touchmove', touchHandler, { passive: false });\n // ジェスチャーイベント\n const gestureHandler = (e) => {\n if (this.isActive()) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n ['gesturestart', 'gesturechange', 'gestureend'].forEach(eventName => {\n this.addEventListener(this.hostElement, eventName, gestureHandler, { passive: false });\n });\n }\n addEventListener(element, event, handler, options) {\n element.addEventListener(event, handler, options);\n this.cleanupFunctions.push(() => element.removeEventListener(event, handler, options));\n }\n toggleActive() {\n this.setActive(!this.isActive());\n }\n setActive(active) {\n this.isActive.set(active);\n this.onActiveChange(active);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtaGFuZGxlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL2RpcmVjdGl2ZXMvYWN0aXZlLWNvbnRyb2wvaGFuZGxlcnMvZXZlbnQtaGFuZGxlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLDBCQUEwQjtJQUdyQyxZQUNVLFdBQXdCLEVBQ3hCLFFBQWlDLEVBQ2pDLGNBQXlDO1FBRnpDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENBQXlCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUEyQjtRQUwzQyxxQkFBZ0IsR0FBc0IsRUFBRSxDQUFDO0lBTTlDLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixZQUFZO1FBQ1osTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQWEsRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFFdkUsU0FBUztRQUNULE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFhLEVBQUUsRUFBRTtZQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQWMsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO2dCQUNwRSxJQUFJLENBQUMsU0FB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UUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgQ2xlYW51cEZ1bmN0aW9uID0gKCkgPT4gdm9pZDtcblxuZXhwb3J0IGNsYXNzIEFjdGl2ZUNvbnRyb2xFdmVudEhhbmRsZXJzIHtcbiAgcHJpdmF0ZSBjbGVhbnVwRnVuY3Rpb25zOiBDbGVhbnVwRnVuY3Rpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIHByaXZhdGUgaXNBY3RpdmU6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+LFxuICAgIHByaXZhdGUgb25BY3RpdmVDaGFuZ2U6IChhY3RpdmU6IGJvb2xlYW4pID0+IHZvaWRcbiAgKSB7fVxuXG4gIHNldHVwQWxsKCk6IENsZWFudXBGdW5jdGlvbltdIHtcbiAgICB0aGlzLnNldHVwQ2xpY2tIYW5kbGVycygpO1xuICAgIHRoaXMuc2V0dXBQcmV2ZW50aW9uSGFuZGxlcnMoKTtcbiAgICByZXR1cm4gdGhpcy5jbGVhbnVwRnVuY3Rpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cENsaWNrSGFuZGxlcnMoKTogdm9pZCB7XG4gICAgLy8g44Ob44K544OI6KaB57Sg44Kv44Oq44OD44KvXG4gICAgY29uc3QgbW91c2Vkb3duSGFuZGxlciA9IChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICB0aGlzLnRvZ2dsZUFjdGl2ZSgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9O1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmhvc3RFbGVtZW50LCAnbW91c2Vkb3duJywgbW91c2Vkb3duSGFuZGxlcik7XG5cbiAgICAvLyDlpJbpg6jjgq/jg6rjg4Pjgq9cbiAgICBjb25zdCBkb2N1bWVudENsaWNrTGlzdGVuZXIgPSAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmhvc3RFbGVtZW50LmNvbnRhaW5zKGUudGFyZ2V0IGFzIE5vZGUpICYmIHRoaXMuaXNBY3RpdmUoKSkge1xuICAgICAgICB0aGlzLnNldEFjdGl2ZShmYWxzZSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBkb2N1bWVudENsaWNrTGlzdGVuZXIsIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICB0aGlzLmNsZWFudXBGdW5jdGlvbnMucHVzaCgoKSA9PlxuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZG9jdW1lbnRDbGlja0xpc3RlbmVyLCB7IGNhcHR1cmU6IHRydWUgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cFByZXZlbnRpb25IYW5kbGVycygpOiB2b2lkIHtcbiAgICAvLyDjg5vjgqTjg7zjg6vjgqTjg5njg7Pjg4hcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5ob3N0RWxlbWVudCwgJ3doZWVsJywgKGU6IFdoZWVsRXZlbnQpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzQWN0aXZlKCkpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgfVxuICAgIH0sIHsgcGFzc2l2ZTogZmFsc2UgfSk7XG5cbiAgICAvLyDjgr/jg4Pjg4HjgqTjg5njg7Pjg4hcbiAgICBjb25zdCB0b3VjaEhhbmRsZXIgPSAoZTogVG91Y2hFdmVudCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmlzQWN0aXZlKCkpIHJldHVybjtcblxuICAgICAgaWYgKGUudG91Y2hlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5ob3N0RWxlbWVudCwgJ3RvdWNoc3RhcnQnLCB0b3VjaEhhbmRsZXIsIHsgcGFzc2l2ZTogZmFsc2UgfSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKHRoaXMuaG9zdEVsZW1lbnQsICd0b3VjaG1vdmUnLCB0b3VjaEhhbmRsZXIsIHsgcGFzc2l2ZTogZmFsc2UgfSk7XG5cbiAgICAvLyDjgrjjgqfjgrnjg4Hjg6Pjg7zjgqTjg5njg7Pjg4hcbiAgICBjb25zdCBnZXN0dXJlSGFuZGxlciA9IChlOiBFdmVudCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNBY3RpdmUoKSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBbJ2dlc3R1cmVzdGFydCcsICdnZXN0dXJlY2hhbmdlJywgJ2dlc3R1cmVlbmQnXS5mb3JFYWNoKGV2ZW50TmFtZSA9PiB7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5ob3N0RWxlbWVudCwgZXZlbnROYW1lLCBnZXN0dXJlSGFuZGxlciwgeyBwYXNzaXZlOiBmYWxzZSB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRXZlbnRMaXN0ZW5lcihcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudCB8IERvY3VtZW50LFxuICAgIGV2ZW50OiBzdHJpbmcsXG4gICAgaGFuZGxlcjogRXZlbnRMaXN0ZW5lcixcbiAgICBvcHRpb25zPzogQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnNcbiAgKTogdm9pZCB7XG4gICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBoYW5kbGVyLCBvcHRpb25zKTtcbiAgICB0aGlzLmNsZWFudXBGdW5jdGlvbnMucHVzaCgoKSA9PiBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIGhhbmRsZXIsIG9wdGlvbnMpKTtcbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlQWN0aXZlKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0QWN0aXZlKCF0aGlzLmlzQWN0aXZlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3RpdmUoYWN0aXZlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0FjdGl2ZS5zZXQoYWN0aXZlKTtcbiAgICB0aGlzLm9uQWN0aXZlQ2hhbmdlKGFjdGl2ZSk7XG4gIH1cbn1cbiJdfQ==","export class ScrollControl {\n constructor(scrollElement, isActive) {\n this.scrollElement = scrollElement;\n this.isActive = isActive;\n this.lockedScrollTop = 0;\n }\n setup() {\n const cleanups = [];\n // アクティブ状態の監視\n let previousActive = this.isActive();\n const checkActiveState = () => {\n const currentActive = this.isActive();\n if (previousActive !== currentActive && !currentActive) {\n this.lockedScrollTop = this.scrollElement.scrollTop;\n }\n previousActive = currentActive;\n this.rafId = requestAnimationFrame(checkActiveState);\n };\n checkActiveState();\n cleanups.push(() => {\n if (this.rafId !== undefined) {\n cancelAnimationFrame(this.rafId);\n }\n });\n // スクロールイベント監視\n const scrollHandler = () => {\n if (!this.isActive()) {\n this.scrollElement.scrollTop = this.lockedScrollTop;\n }\n };\n this.scrollElement.addEventListener('scroll', scrollHandler);\n cleanups.push(() => this.scrollElement.removeEventListener('scroll', scrollHandler));\n return cleanups;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLWNvbnRyb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL2RpcmVjdGl2ZXMvYWN0aXZlLWNvbnRyb2wvaGFuZGxlcnMvc2Nyb2xsLWNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLGFBQWE7SUFJeEIsWUFDVSxhQUEwQixFQUMxQixRQUF5QjtRQUR6QixrQkFBYSxHQUFiLGFBQWEsQ0FBYTtRQUMxQixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUwzQixvQkFBZSxHQUFHLENBQUMsQ0FBQztJQU16QixDQUFDO0lBRUosS0FBSztRQUNILE1BQU0sUUFBUSxHQUFzQixFQUFFLENBQUM7UUFFdkMsYUFBYTtRQUNiLElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsRUFBRTtZQUM1QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEMsSUFBSSxjQUFjLEtBQUssYUFBYSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7WUFDdEQsQ0FBQztZQUNELGNBQWMsR0FBRyxhQUFhLENBQUM7WUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQztRQUNGLGdCQUFnQixFQUFFLENBQUM7UUFDbkIsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDakIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUM3QixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsY0FBYztRQUNkLE1BQU0sYUFBYSxHQUFHLEdBQUcsRUFBRTtZQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDdEQsQ0FBQztRQUNILENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzdELFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUVyRixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENsZWFudXBGdW5jdGlvbiB9IGZyb20gJy4vZXZlbnQtaGFuZGxlcnMnO1xuXG5leHBvcnQgY2xhc3MgU2Nyb2xsQ29udHJvbCB7XG4gIHByaXZhdGUgbG9ja2VkU2Nyb2xsVG9wID0gMDtcbiAgcHJpdmF0ZSByYWZJZD86IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNjcm9sbEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIHByaXZhdGUgaXNBY3RpdmU6IFNpZ25hbDxib29sZWFuPlxuICApIHt9XG5cbiAgc2V0dXAoKTogQ2xlYW51cEZ1bmN0aW9uW10ge1xuICAgIGNvbnN0IGNsZWFudXBzOiBDbGVhbnVwRnVuY3Rpb25bXSA9IFtdO1xuXG4gICAgLy8g44Ki44Kv44OG44Kj44OW54q25oWL44Gu55uj6KaWXG4gICAgbGV0IHByZXZpb3VzQWN0aXZlID0gdGhpcy5pc0FjdGl2ZSgpO1xuICAgIGNvbnN0IGNoZWNrQWN0aXZlU3RhdGUgPSAoKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50QWN0aXZlID0gdGhpcy5pc0FjdGl2ZSgpO1xuICAgICAgaWYgKHByZXZpb3VzQWN0aXZlICE9PSBjdXJyZW50QWN0aXZlICYmICFjdXJyZW50QWN0aXZlKSB7XG4gICAgICAgIHRoaXMubG9ja2VkU2Nyb2xsVG9wID0gdGhpcy5zY3JvbGxFbGVtZW50LnNjcm9sbFRvcDtcbiAgICAgIH1cbiAgICAgIHByZXZpb3VzQWN0aXZlID0gY3VycmVudEFjdGl2ZTtcbiAgICAgIHRoaXMucmFmSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2hlY2tBY3RpdmVTdGF0ZSk7XG4gICAgfTtcbiAgICBjaGVja0FjdGl2ZVN0YXRlKCk7XG4gICAgY2xlYW51cHMucHVzaCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5yYWZJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmSWQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8g44K544Kv44Ot44O844Or44Kk44OZ44Oz44OI55uj6KaWXG4gICAgY29uc3Qgc2Nyb2xsSGFuZGxlciA9ICgpID0+IHtcbiAgICAgIGlmICghdGhpcy5pc0FjdGl2ZSgpKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3AgPSB0aGlzLmxvY2tlZFNjcm9sbFRvcDtcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMuc2Nyb2xsRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBzY3JvbGxIYW5kbGVyKTtcbiAgICBjbGVhbnVwcy5wdXNoKCgpID0+IHRoaXMuc2Nyb2xsRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBzY3JvbGxIYW5kbGVyKSk7XG5cbiAgICByZXR1cm4gY2xlYW51cHM7XG4gIH1cbn1cbiJdfQ==","import { Directive, ElementRef, input, output, effect, signal, inject } from '@angular/core';\nimport { ActiveControlEventHandlers, ScrollControl } from './handlers';\nimport * as i0 from \"@angular/core\";\n/**\n * アクティブ状態を管理するディレクティブ\n *\n * クリックでアクティブ化、外部クリックで非アクティブ化し、\n * スクロール位置の固定やイベント伝播の制御を行います。\n *\n * @example\n * ```html\n * <div appActiveControl\n * [scrollSelector]=\"'.xterm-viewport'\"\n * (activeChange)=\"onActiveChange($event)\">\n * <!-- content -->\n * </div>\n * ```\n */\nexport class ActiveControlDirective {\n constructor() {\n this.el = inject(ElementRef);\n this.scrollSelector = input();\n this.activeChange = output();\n this.isActive = signal(false);\n this.cleanupFunctions = [];\n effect(() => {\n setTimeout(() => this.initialize(), 100);\n }, { allowSignalWrites: true });\n }\n ngOnDestroy() {\n this.cleanupFunctions.forEach(cleanup => cleanup());\n }\n initialize() {\n const hostElement = this.el.nativeElement;\n // イベントハンドラーのセットアップ\n const eventHandlers = new ActiveControlEventHandlers(hostElement, this.isActive, (active) => this.activeChange.emit(active));\n this.cleanupFunctions.push(...eventHandlers.setupAll());\n // スクロール制御のセットアップ(オプション)\n const scrollSelector = this.scrollSelector();\n if (scrollSelector) {\n const scrollElement = hostElement.querySelector(scrollSelector);\n if (scrollElement) {\n const scrollControl = new ScrollControl(scrollElement, this.isActive);\n this.cleanupFunctions.push(...scrollControl.setup());\n }\n else {\n console.warn(`ActiveControlDirective: scroll element not found: ${scrollSelector}`);\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ActiveControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.5\", type: ActiveControlDirective, isStandalone: true, selector: \"[appActiveControl]\", inputs: { scrollSelector: { classPropertyName: \"scrollSelector\", publicName: \"scrollSelector\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeChange: \"activeChange\" }, host: { properties: { \"class.active\": \"isActive()\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ActiveControlDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[appActiveControl]',\n standalone: true,\n host: {\n '[class.active]': 'isActive()',\n }\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWNvbnRyb2wuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9kaXJlY3RpdmVzL2FjdGl2ZS1jb250cm9sL2FjdGl2ZS1jb250cm9sLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7O0FBRXZFOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBUUgsTUFBTSxPQUFPLHNCQUFzQjtJQVFqQztRQVBpQixPQUFFLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLG1CQUFjLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDakMsaUJBQVksR0FBRyxNQUFNLEVBQVcsQ0FBQztRQUNqQyxhQUFRLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRW5DLHFCQUFnQixHQUFtQixFQUFFLENBQUM7UUFHNUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0MsQ0FBQyxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTyxVQUFVO1FBQ2hCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBNEIsQ0FBQztRQUV6RCxtQkFBbUI7UUFDbkIsTUFBTSxhQUFhLEdBQUcsSUFBSSwwQkFBMEIsQ0FDbEQsV0FBVyxFQUNYLElBQUksQ0FBQyxRQUFRLEVBQ2IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUMzQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRXhELHdCQUF3QjtRQUN4QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDN0MsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQixNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBZ0IsQ0FBQztZQUMvRSxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNsQixNQUFNLGFBQWEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN0RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDdkQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMscURBQXFELGNBQWMsRUFBRSxDQUFDLENBQUM7WUFDdEYsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOzhHQXhDVSxzQkFBc0I7a0dBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFQbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNKLGdCQUFnQixFQUFFLFlBQVk7cUJBQy9CO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbnB1dCwgb3V0cHV0LCBlZmZlY3QsIHNpZ25hbCwgT25EZXN0cm95LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2ZUNvbnRyb2xFdmVudEhhbmRsZXJzLCBTY3JvbGxDb250cm9sIH0gZnJvbSAnLi9oYW5kbGVycyc7XG5cbi8qKlxuICog44Ki44Kv44OG44Kj44OW54q25oWL44KS566h55CG44GZ44KL44OH44Kj44Os44Kv44OG44Kj44OWXG4gKlxuICog44Kv44Oq44OD44Kv44Gn44Ki44Kv44OG44Kj44OW5YyW44CB5aSW6YOo44Kv44Oq44OD44Kv44Gn6Z2e44Ki44Kv44OG44Kj44OW5YyW44GX44CBXG4gKiDjgrnjgq/jg63jg7zjg6vkvY3nva7jga7lm7rlrprjgoTjgqTjg5njg7Pjg4jkvJ3mkq3jga7liLblvqHjgpLooYzjgYTjgb7jgZnjgIJcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPGRpdiBhcHBBY3RpdmVDb250cm9sXG4gKiAgICAgIFtzY3JvbGxTZWxlY3Rvcl09XCInLnh0ZXJtLXZpZXdwb3J0J1wiXG4gKiAgICAgIChhY3RpdmVDaGFuZ2UpPVwib25BY3RpdmVDaGFuZ2UoJGV2ZW50KVwiPlxuICogICA8IS0tIGNvbnRlbnQgLS0+XG4gKiA8L2Rpdj5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXBwQWN0aXZlQ29udHJvbF0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5hY3RpdmVdJzogJ2lzQWN0aXZlKCknLFxuICB9XG59KVxuZXhwb3J0IGNsYXNzIEFjdGl2ZUNvbnRyb2xEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICByZWFkb25seSBzY3JvbGxTZWxlY3RvciA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgYWN0aXZlQ2hhbmdlID0gb3V0cHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGlzQWN0aXZlID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICBwcml2YXRlIGNsZWFudXBGdW5jdGlvbnM6ICgoKSA9PiB2b2lkKVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5pbml0aWFsaXplKCksIDEwMCk7XG4gICAgfSwgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYW51cEZ1bmN0aW9ucy5mb3JFYWNoKGNsZWFudXAgPT4gY2xlYW51cCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBob3N0RWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblxuICAgIC8vIOOCpOODmeODs+ODiOODj+ODs+ODieODqeODvOOBruOCu+ODg+ODiOOCouODg+ODl1xuICAgIGNvbnN0IGV2ZW50SGFuZGxlcnMgPSBuZXcgQWN0aXZlQ29udHJvbEV2ZW50SGFuZGxlcnMoXG4gICAgICBob3N0RWxlbWVudCxcbiAgICAgIHRoaXMuaXNBY3RpdmUsXG4gICAgICAoYWN0aXZlKSA9PiB0aGlzLmFjdGl2ZUNoYW5nZS5lbWl0KGFjdGl2ZSlcbiAgICApO1xuICAgIHRoaXMuY2xlYW51cEZ1bmN0aW9ucy5wdXNoKC4uLmV2ZW50SGFuZGxlcnMuc2V0dXBBbGwoKSk7XG5cbiAgICAvLyDjgrnjgq/jg63jg7zjg6vliLblvqHjga7jgrvjg4Pjg4jjgqLjg4Pjg5fvvIjjgqrjg5fjgrfjg6fjg7PvvIlcbiAgICBjb25zdCBzY3JvbGxTZWxlY3RvciA9IHRoaXMuc2Nyb2xsU2VsZWN0b3IoKTtcbiAgICBpZiAoc2Nyb2xsU2VsZWN0b3IpIHtcbiAgICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSBob3N0RWxlbWVudC5xdWVyeVNlbGVjdG9yKHNjcm9sbFNlbGVjdG9yKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGlmIChzY3JvbGxFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHNjcm9sbENvbnRyb2wgPSBuZXcgU2Nyb2xsQ29udHJvbChzY3JvbGxFbGVtZW50LCB0aGlzLmlzQWN0aXZlKTtcbiAgICAgICAgdGhpcy5jbGVhbnVwRnVuY3Rpb25zLnB1c2goLi4uc2Nyb2xsQ29udHJvbC5zZXR1cCgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgQWN0aXZlQ29udHJvbERpcmVjdGl2ZTogc2Nyb2xsIGVsZW1lbnQgbm90IGZvdW5kOiAke3Njcm9sbFNlbGVjdG9yfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvbmctYXRvbWljLWNvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|