@one-paragon/angular-utilities 1.2.12 → 1.2.13
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/action-state/action-state-spinner/action-state-spinner.component.d.ts +12 -0
- package/action-state/action-state-ui/action-state-ui.module.d.ts +7 -0
- package/{src/action-state/index.ts → action-state/index.d.ts} +4 -8
- package/action-state/ngrx-ext/ngrx-ext.module.d.ts +8 -0
- package/action-state/ngrx.d.ts +31 -0
- package/esm2022/action-state/action-state-spinner/action-state-spinner.component.mjs +24 -0
- package/esm2022/action-state/action-state-ui/action-state-ui.module.mjs +20 -0
- package/esm2022/action-state/index.mjs +8 -0
- package/esm2022/action-state/ngrx-ext/ngrx-ext.module.mjs +23 -0
- package/esm2022/action-state/ngrx.mjs +47 -0
- package/esm2022/http-request-state/HttpRequestStateFactory.mjs +51 -0
- package/esm2022/http-request-state/HttpRequestStateStore.mjs +121 -0
- package/esm2022/http-request-state/directives/HttpStateDirectiveBase.mjs +30 -0
- package/esm2022/http-request-state/directives/http-error-state-directive.mjs +23 -0
- package/esm2022/http-request-state/directives/http-inProgress-state-directive.mjs +23 -0
- package/esm2022/http-request-state/directives/http-notStarted-state-directive.mjs +23 -0
- package/esm2022/http-request-state/directives/http-success-state-directive.mjs +29 -0
- package/esm2022/http-request-state/directives/index.mjs +6 -0
- package/esm2022/http-request-state/directives/request-state-directive.mjs +61 -0
- package/esm2022/http-request-state/helpers.mjs +22 -0
- package/esm2022/http-request-state/http-request-state.mjs +39 -0
- package/esm2022/http-request-state/http-state-module.mjs +40 -0
- package/esm2022/http-request-state/index.mjs +7 -0
- package/esm2022/http-request-state/rxjs/getRequestorBody.mjs +4 -0
- package/esm2022/http-request-state/rxjs/getRequestorState.mjs +3 -0
- package/esm2022/http-request-state/rxjs/index.mjs +5 -0
- package/esm2022/http-request-state/rxjs/tapError.mjs +12 -0
- package/esm2022/http-request-state/rxjs/tapSuccess.mjs +12 -0
- package/esm2022/http-request-state/types.mjs +16 -0
- package/esm2022/ngrx/actionable-selector.mjs +71 -0
- package/esm2022/ngrx/index.mjs +2 -0
- package/esm2022/one-paragon-angular-utilities.mjs +5 -0
- package/esm2022/public-api.mjs +20 -0
- package/esm2022/rxjs/defaultShareReplay.mjs +7 -0
- package/esm2022/rxjs/index.mjs +6 -0
- package/esm2022/rxjs/mapError.mjs +8 -0
- package/esm2022/rxjs/rxjs-operators.mjs +92 -0
- package/esm2022/rxjs/subjectifier.mjs +15 -0
- package/esm2022/rxjs/subscriber.directive.mjs +50 -0
- package/esm2022/table-builder/classes/DefaultSettings.mjs +6 -0
- package/esm2022/table-builder/classes/MatTableObservableDataSource.mjs +23 -0
- package/esm2022/table-builder/classes/TableBuilderConfig.mjs +18 -0
- package/esm2022/table-builder/classes/TableBuilderDataSource.mjs +45 -0
- package/esm2022/table-builder/classes/TableState.mjs +49 -0
- package/esm2022/table-builder/classes/data-store.mjs +15 -0
- package/esm2022/table-builder/classes/display-col.mjs +2 -0
- package/esm2022/table-builder/classes/filter-info.mjs +61 -0
- package/esm2022/table-builder/classes/table-builder-general-settings.mjs +112 -0
- package/esm2022/table-builder/classes/table-builder.mjs +77 -0
- package/esm2022/table-builder/classes/table-store.mjs +383 -0
- package/esm2022/table-builder/components/array-column.component.mjs +53 -0
- package/esm2022/table-builder/components/column-builder/column-builder.component.mjs +134 -0
- package/esm2022/table-builder/components/column-builder/column-helpers.mjs +45 -0
- package/esm2022/table-builder/components/date-filter/date-filter.component.mjs +29 -0
- package/esm2022/table-builder/components/date-time-filter/date-time-filter.component.mjs +24 -0
- package/esm2022/table-builder/components/filter/filter.component.mjs +64 -0
- package/esm2022/table-builder/components/filter/in-list/in-list-filter.component.mjs +102 -0
- package/esm2022/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +47 -0
- package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +301 -0
- package/esm2022/table-builder/components/generic-table/paginator.component.mjs +100 -0
- package/esm2022/table-builder/components/group-by-list/group-by-list.component.mjs +21 -0
- package/esm2022/table-builder/components/header-menu/header-menu.component.mjs +103 -0
- package/esm2022/table-builder/components/in-filter/in-filter.component.mjs +65 -0
- package/esm2022/table-builder/components/index.mjs +10 -0
- package/esm2022/table-builder/components/initialization-component/initialization-component.mjs +47 -0
- package/esm2022/table-builder/components/link-column.component.mjs +74 -0
- package/esm2022/table-builder/components/number-filter/number-filter.component.mjs +29 -0
- package/esm2022/table-builder/components/profiles-menu/profiles-menu.component.mjs +64 -0
- package/esm2022/table-builder/components/scroll-strategy.mjs +60 -0
- package/esm2022/table-builder/components/sort-menu/sort-menu.component-store.mjs +46 -0
- package/esm2022/table-builder/components/sort-menu/sort-menu.component.mjs +82 -0
- package/esm2022/table-builder/components/table-container/table-container-imports.mjs +26 -0
- package/esm2022/table-builder/components/table-container/table-container.helpers/data-state.helpers.mjs +135 -0
- package/esm2022/table-builder/components/table-container/table-container.helpers/filter-state.helpers.mjs +83 -0
- package/esm2022/table-builder/components/table-container/table-container.helpers/groupBy.helpers.mjs +71 -0
- package/esm2022/table-builder/components/table-container/table-container.helpers/sort-state.helpers.mjs +36 -0
- package/esm2022/table-builder/components/table-container/table-container.mjs +327 -0
- package/esm2022/table-builder/components/table-container/tableProps.mjs +8 -0
- package/esm2022/table-builder/components/table-container/virtual-scroll-container.mjs +151 -0
- package/esm2022/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +44 -0
- package/esm2022/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +36 -0
- package/esm2022/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +25 -0
- package/esm2022/table-builder/directives/custom-cell-directive.mjs +73 -0
- package/esm2022/table-builder/directives/index.mjs +6 -0
- package/esm2022/table-builder/directives/multi-sort.directive.mjs +50 -0
- package/esm2022/table-builder/directives/resize-column.directive.mjs +87 -0
- package/esm2022/table-builder/directives/table-wrapper.directive.mjs +18 -0
- package/esm2022/table-builder/directives/tb-filter.directive.mjs +396 -0
- package/esm2022/table-builder/enums/filterTypes.mjs +29 -0
- package/esm2022/table-builder/functions/boolean-filter-function.mjs +10 -0
- package/esm2022/table-builder/functions/date-filter-function.mjs +58 -0
- package/esm2022/table-builder/functions/download-data.mjs +12 -0
- package/esm2022/table-builder/functions/null-filter-function.mjs +8 -0
- package/esm2022/table-builder/functions/number-filter-function.mjs +32 -0
- package/esm2022/table-builder/functions/sort-data-function.mjs +17 -0
- package/esm2022/table-builder/functions/string-filter-function.mjs +41 -0
- package/esm2022/table-builder/interfaces/ColumnInfo.mjs +2 -0
- package/esm2022/table-builder/interfaces/dictionary.mjs +2 -0
- package/esm2022/table-builder/interfaces/report-def.mjs +50 -0
- package/esm2022/table-builder/ngrx/tableBuilderStateStore.mjs +154 -0
- package/esm2022/table-builder/pipes/column-total.pipe.mjs +22 -0
- package/esm2022/table-builder/pipes/format-filter-type.pipe.mjs +18 -0
- package/esm2022/table-builder/pipes/format-filter-value.pipe.mjs +43 -0
- package/esm2022/table-builder/pipes/key-display.mjs +18 -0
- package/esm2022/table-builder/services/export-to-csv.service.mjs +75 -0
- package/esm2022/table-builder/services/link-creator.service.mjs +50 -0
- package/esm2022/table-builder/services/table-template-service.mjs +60 -0
- package/esm2022/table-builder/services/transform-creator.mjs +100 -0
- package/esm2022/table-builder/table-builder.module.mjs +124 -0
- package/esm2022/utilities/array-helpers.mjs +14 -0
- package/esm2022/utilities/directives/auto-focus.directive.mjs +25 -0
- package/esm2022/utilities/directives/clickEmitterDirective.mjs +22 -0
- package/esm2022/utilities/directives/clickSubject.mjs +29 -0
- package/esm2022/utilities/directives/conditional-classes.directive.mjs +36 -0
- package/esm2022/utilities/directives/dialog-service.mjs +21 -0
- package/esm2022/utilities/directives/dialog.mjs +145 -0
- package/esm2022/utilities/directives/mat-toggle-group-directive.mjs +59 -0
- package/esm2022/utilities/directives/prevent-enter.directive.mjs +20 -0
- package/esm2022/utilities/directives/stop-propagation.directive.mjs +26 -0
- package/esm2022/utilities/directives/styler.mjs +41 -0
- package/esm2022/utilities/directives/trim-whitespace.directive.mjs +28 -0
- package/esm2022/utilities/index.mjs +16 -0
- package/esm2022/utilities/module.mjs +90 -0
- package/esm2022/utilities/pipes/function.pipe.mjs +22 -0
- package/esm2022/utilities/pipes/phone.pipe.mjs +20 -0
- package/esm2022/utilities/pipes/space-case.pipes.mjs +28 -0
- package/fesm2022/one-paragon-angular-utilities.mjs +5670 -0
- package/fesm2022/one-paragon-angular-utilities.mjs.map +1 -0
- package/http-request-state/HttpRequestStateFactory.d.ts +17 -0
- package/http-request-state/HttpRequestStateStore.d.ts +54 -0
- package/http-request-state/directives/HttpStateDirectiveBase.d.ts +14 -0
- package/http-request-state/directives/http-error-state-directive.d.ts +9 -0
- package/http-request-state/directives/http-inProgress-state-directive.d.ts +9 -0
- package/http-request-state/directives/http-notStarted-state-directive.d.ts +9 -0
- package/http-request-state/directives/http-success-state-directive.d.ts +16 -0
- package/{src/http-request-state/directives/index.ts → http-request-state/directives/index.d.ts} +5 -5
- package/http-request-state/directives/request-state-directive.d.ts +34 -0
- package/http-request-state/helpers.d.ts +9 -0
- package/http-request-state/http-request-state.d.ts +12 -0
- package/http-request-state/http-state-module.d.ts +11 -0
- package/{src/http-request-state/index.ts → http-request-state/index.d.ts} +6 -6
- package/http-request-state/rxjs/getRequestorBody.d.ts +3 -0
- package/http-request-state/rxjs/getRequestorState.d.ts +3 -0
- package/{src/http-request-state/rxjs/index.ts → http-request-state/rxjs/index.d.ts} +4 -4
- package/http-request-state/rxjs/tapError.d.ts +3 -0
- package/http-request-state/rxjs/tapSuccess.d.ts +3 -0
- package/http-request-state/types.d.ts +41 -0
- package/index.d.ts +5 -0
- package/ngrx/actionable-selector.d.ts +17 -0
- package/ngrx/index.d.ts +1 -0
- package/package.json +30 -16
- package/{src/public-api.ts → public-api.d.ts} +16 -35
- package/rxjs/defaultShareReplay.d.ts +2 -0
- package/{src/rxjs/index.ts → rxjs/index.d.ts} +5 -5
- package/rxjs/mapError.d.ts +2 -0
- package/rxjs/rxjs-operators.d.ts +13 -0
- package/rxjs/subjectifier.d.ts +8 -0
- package/rxjs/subscriber.directive.d.ts +14 -0
- package/table-builder/classes/DefaultSettings.d.ts +9 -0
- package/table-builder/classes/MatTableObservableDataSource.d.ts +9 -0
- package/table-builder/classes/TableBuilderConfig.d.ts +21 -0
- package/table-builder/classes/TableBuilderDataSource.d.ts +12 -0
- package/table-builder/classes/TableState.d.ts +67 -0
- package/table-builder/classes/data-store.d.ts +8 -0
- package/{src/table-builder/classes/display-col.ts → table-builder/classes/display-col.d.ts} +5 -5
- package/table-builder/classes/filter-info.d.ts +35 -0
- package/table-builder/classes/table-builder-general-settings.d.ts +78 -0
- package/table-builder/classes/table-builder.d.ts +18 -0
- package/table-builder/classes/table-store.d.ts +138 -0
- package/table-builder/components/array-column.component.d.ts +15 -0
- package/table-builder/components/column-builder/column-builder.component.d.ts +47 -0
- package/table-builder/components/column-builder/column-helpers.d.ts +36 -0
- package/table-builder/components/date-filter/date-filter.component.d.ts +37 -0
- package/table-builder/components/date-time-filter/date-time-filter.component.d.ts +37 -0
- package/table-builder/components/filter/filter.component.d.ts +46 -0
- package/table-builder/components/filter/in-list/in-list-filter.component.d.ts +24 -0
- package/table-builder/components/gen-col-displayer/gen-col-displayer.component.d.ts +17 -0
- package/table-builder/components/generic-table/generic-table.component.d.ts +83 -0
- package/table-builder/components/generic-table/paginator.component.d.ts +30 -0
- package/table-builder/components/group-by-list/group-by-list.component.d.ts +7 -0
- package/table-builder/components/header-menu/header-menu.component.d.ts +51 -0
- package/table-builder/components/in-filter/in-filter.component.d.ts +20 -0
- package/{src/table-builder/components/index.ts → table-builder/components/index.d.ts} +9 -9
- package/table-builder/components/initialization-component/initialization-component.d.ts +13 -0
- package/table-builder/components/link-column.component.d.ts +25 -0
- package/table-builder/components/number-filter/number-filter.component.d.ts +39 -0
- package/table-builder/components/profiles-menu/profiles-menu.component.d.ts +32 -0
- package/table-builder/components/scroll-strategy.d.ts +22 -0
- package/table-builder/components/sort-menu/sort-menu.component-store.d.ts +24 -0
- package/table-builder/components/sort-menu/sort-menu.component.d.ts +24 -0
- package/{src/table-builder/components/table-container/table-container-imports.ts → table-builder/components/table-container/table-container-imports.d.ts} +14 -32
- package/table-builder/components/table-container/table-container.d.ts +79 -0
- package/table-builder/components/table-container/table-container.helpers/data-state.helpers.d.ts +6 -0
- package/table-builder/components/table-container/table-container.helpers/filter-state.helpers.d.ts +17 -0
- package/table-builder/components/table-container/table-container.helpers/groupBy.helpers.d.ts +17 -0
- package/table-builder/components/table-container/table-container.helpers/sort-state.helpers.d.ts +8 -0
- package/table-builder/components/table-container/tableProps.d.ts +12 -0
- package/table-builder/components/table-container/virtual-scroll-container.d.ts +35 -0
- package/table-builder/components/table-container-filter/filter-list/filter-list.component.d.ts +15 -0
- package/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.d.ts +12 -0
- package/table-builder/components/table-container-filter/table-wrapper-filter-store.d.ts +14 -0
- package/table-builder/directives/custom-cell-directive.d.ts +33 -0
- package/{src/table-builder/directives/index.ts → table-builder/directives/index.d.ts} +5 -6
- package/table-builder/directives/multi-sort.directive.d.ts +10 -0
- package/table-builder/directives/resize-column.directive.d.ts +43 -0
- package/table-builder/directives/table-wrapper.directive.d.ts +8 -0
- package/table-builder/directives/tb-filter.directive.d.ts +115 -0
- package/table-builder/enums/filterTypes.d.ts +36 -0
- package/table-builder/functions/boolean-filter-function.d.ts +3 -0
- package/table-builder/functions/date-filter-function.d.ts +4 -0
- package/table-builder/functions/download-data.d.ts +1 -0
- package/table-builder/functions/null-filter-function.d.ts +2 -0
- package/table-builder/functions/number-filter-function.d.ts +4 -0
- package/table-builder/functions/sort-data-function.d.ts +6 -0
- package/table-builder/functions/string-filter-function.d.ts +5 -0
- package/{src/table-builder/interfaces/ColumnInfo.ts → table-builder/interfaces/ColumnInfo.d.ts} +6 -7
- package/{src/table-builder/interfaces/dictionary.ts → table-builder/interfaces/dictionary.d.ts} +3 -3
- package/table-builder/interfaces/report-def.d.ts +147 -0
- package/table-builder/ngrx/tableBuilderStateStore.d.ts +70 -0
- package/table-builder/pipes/column-total.pipe.d.ts +8 -0
- package/table-builder/pipes/format-filter-type.pipe.d.ts +8 -0
- package/table-builder/pipes/format-filter-value.pipe.d.ts +12 -0
- package/table-builder/pipes/key-display.d.ts +10 -0
- package/table-builder/services/export-to-csv.service.d.ts +14 -0
- package/table-builder/services/link-creator.service.d.ts +16 -0
- package/table-builder/services/table-template-service.d.ts +14 -0
- package/table-builder/services/transform-creator.d.ts +16 -0
- package/table-builder/table-builder.module.d.ts +21 -0
- package/utilities/array-helpers.d.ts +1 -0
- package/utilities/directives/auto-focus.directive.d.ts +9 -0
- package/utilities/directives/clickEmitterDirective.d.ts +7 -0
- package/utilities/directives/clickSubject.d.ts +9 -0
- package/utilities/directives/conditional-classes.directive.d.ts +13 -0
- package/utilities/directives/dialog-service.d.ts +10 -0
- package/utilities/directives/dialog.d.ts +44 -0
- package/utilities/directives/mat-toggle-group-directive.d.ts +21 -0
- package/utilities/directives/prevent-enter.directive.d.ts +6 -0
- package/utilities/directives/stop-propagation.directive.d.ts +7 -0
- package/utilities/directives/styler.d.ts +15 -0
- package/utilities/directives/trim-whitespace.directive.d.ts +7 -0
- package/{src/utilities/index.ts → utilities/index.d.ts} +15 -22
- package/utilities/module.d.ts +19 -0
- package/utilities/pipes/function.pipe.d.ts +7 -0
- package/utilities/pipes/phone.pipe.d.ts +7 -0
- package/utilities/pipes/space-case.pipes.d.ts +17 -0
- package/karma.conf.js +0 -44
- package/ng-package.json +0 -7
- package/src/action-state/action-state-spinner/action-state-spinner.component.css +0 -16
- package/src/action-state/action-state-spinner/action-state-spinner.component.html +0 -6
- package/src/action-state/action-state-spinner/action-state-spinner.component.spec.ts +0 -25
- package/src/action-state/action-state-spinner/action-state-spinner.component.ts +0 -26
- package/src/action-state/action-state-ui/action-state-ui.module.ts +0 -13
- package/src/action-state/ngrx-ext/ngrx-ext.module.ts +0 -15
- package/src/action-state/ngrx.ts +0 -69
- package/src/http-request-state/HttpRequestStateFactory.ts +0 -66
- package/src/http-request-state/HttpRequestStateStore.ts +0 -173
- package/src/http-request-state/directives/HttpStateDirectiveBase.ts +0 -29
- package/src/http-request-state/directives/http-error-state-directive.ts +0 -21
- package/src/http-request-state/directives/http-inProgress-state-directive.ts +0 -19
- package/src/http-request-state/directives/http-notStarted-state-directive.ts +0 -19
- package/src/http-request-state/directives/http-success-state-directive.ts +0 -29
- package/src/http-request-state/directives/request-state-directive.spec.ts +0 -72
- package/src/http-request-state/directives/request-state-directive.ts +0 -78
- package/src/http-request-state/helpers.ts +0 -30
- package/src/http-request-state/http-request-state.ts +0 -69
- package/src/http-request-state/http-state-module.ts +0 -23
- package/src/http-request-state/observable.spec.ts +0 -43
- package/src/http-request-state/rxjs/getRequestorBody.ts +0 -10
- package/src/http-request-state/rxjs/getRequestorState.ts +0 -8
- package/src/http-request-state/rxjs/tapError.ts +0 -16
- package/src/http-request-state/rxjs/tapSuccess.ts +0 -16
- package/src/http-request-state/strategies.spec.ts +0 -42
- package/src/http-request-state/types.ts +0 -55
- package/src/ngrx/actionable-selector.ts +0 -95
- package/src/ngrx/index.ts +0 -1
- package/src/rxjs/defaultShareReplay.ts +0 -8
- package/src/rxjs/mapError.ts +0 -8
- package/src/rxjs/rxjs-operators.ts +0 -132
- package/src/rxjs/subjectifier.ts +0 -17
- package/src/rxjs/subscriber.directive.ts +0 -57
- package/src/specs/clickSubject.spec.ts +0 -95
- package/src/specs/dialog.spec.ts +0 -101
- package/src/specs/toggleGroupDirective.spec.ts +0 -229
- package/src/table-builder/classes/DefaultSettings.ts +0 -11
- package/src/table-builder/classes/MatTableObservableDataSource.ts +0 -23
- package/src/table-builder/classes/TableBuilderConfig.ts +0 -35
- package/src/table-builder/classes/TableBuilderDataSource.ts +0 -80
- package/src/table-builder/classes/TableState.ts +0 -96
- package/src/table-builder/classes/data-store.ts +0 -10
- package/src/table-builder/classes/filter-info.ts +0 -108
- package/src/table-builder/classes/table-builder-general-settings.ts +0 -129
- package/src/table-builder/classes/table-builder.ts +0 -94
- package/src/table-builder/classes/table-store.ts +0 -471
- package/src/table-builder/components/array-column.component.ts +0 -36
- package/src/table-builder/components/column-builder/column-builder.component.html +0 -61
- package/src/table-builder/components/column-builder/column-builder.component.scss +0 -43
- package/src/table-builder/components/column-builder/column-builder.component.spec.ts +0 -49
- package/src/table-builder/components/column-builder/column-builder.component.ts +0 -135
- package/src/table-builder/components/column-builder/column-helpers.ts +0 -53
- package/src/table-builder/components/date-filter/date-filter.component.html +0 -23
- package/src/table-builder/components/date-filter/date-filter.component.ts +0 -24
- package/src/table-builder/components/date-time-filter/date-time-filter.component.html +0 -9
- package/src/table-builder/components/date-time-filter/date-time-filter.component.ts +0 -22
- package/src/table-builder/components/filter/filter.component.html +0 -91
- package/src/table-builder/components/filter/filter.component.scss +0 -64
- package/src/table-builder/components/filter/filter.component.spec.ts +0 -87
- package/src/table-builder/components/filter/filter.component.ts +0 -60
- package/src/table-builder/components/filter/in-list/in-list-filter.component.ts +0 -93
- package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.html +0 -55
- package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.scss +0 -57
- package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.ts +0 -59
- package/src/table-builder/components/generic-table/generic-table.component.html +0 -78
- package/src/table-builder/components/generic-table/generic-table.component.scss +0 -42
- package/src/table-builder/components/generic-table/generic-table.component.ts +0 -299
- package/src/table-builder/components/generic-table/paginator.component.ts +0 -99
- package/src/table-builder/components/group-by-list/group-by-list.component.css +0 -8
- package/src/table-builder/components/group-by-list/group-by-list.component.html +0 -12
- package/src/table-builder/components/group-by-list/group-by-list.component.spec.ts +0 -23
- package/src/table-builder/components/group-by-list/group-by-list.component.ts +0 -21
- package/src/table-builder/components/header-menu/header-menu.component.html +0 -104
- package/src/table-builder/components/header-menu/header-menu.component.scss +0 -96
- package/src/table-builder/components/header-menu/header-menu.component.ts +0 -99
- package/src/table-builder/components/in-filter/in-filter.component.css +0 -3
- package/src/table-builder/components/in-filter/in-filter.component.html +0 -20
- package/src/table-builder/components/in-filter/in-filter.component.ts +0 -66
- package/src/table-builder/components/initialization-component/initialization-component.html +0 -29
- package/src/table-builder/components/initialization-component/initialization-component.ts +0 -24
- package/src/table-builder/components/link-column.component.ts +0 -47
- package/src/table-builder/components/number-filter/number-filter.component.css +0 -10
- package/src/table-builder/components/number-filter/number-filter.component.html +0 -19
- package/src/table-builder/components/number-filter/number-filter.component.spec.ts +0 -30
- package/src/table-builder/components/number-filter/number-filter.component.ts +0 -25
- package/src/table-builder/components/profiles-menu/profiles-menu.component.html +0 -74
- package/src/table-builder/components/profiles-menu/profiles-menu.component.scss +0 -98
- package/src/table-builder/components/profiles-menu/profiles-menu.component.spec.ts +0 -23
- package/src/table-builder/components/profiles-menu/profiles-menu.component.ts +0 -65
- package/src/table-builder/components/scroll-strategy.ts +0 -76
- package/src/table-builder/components/sort-menu/sort-menu.component-store.ts +0 -66
- package/src/table-builder/components/sort-menu/sort-menu.component.html +0 -111
- package/src/table-builder/components/sort-menu/sort-menu.component.scss +0 -119
- package/src/table-builder/components/sort-menu/sort-menu.component.ts +0 -98
- package/src/table-builder/components/table-container/table-container.css +0 -54
- package/src/table-builder/components/table-container/table-container.helpers/data-state.helpers.ts +0 -141
- package/src/table-builder/components/table-container/table-container.helpers/filter-state.helpers.ts +0 -106
- package/src/table-builder/components/table-container/table-container.helpers/groupBy.helpers.ts +0 -86
- package/src/table-builder/components/table-container/table-container.helpers/sort-state.helpers.ts +0 -45
- package/src/table-builder/components/table-container/table-container.html +0 -95
- package/src/table-builder/components/table-container/table-container.spec.ts +0 -154
- package/src/table-builder/components/table-container/table-container.ts +0 -356
- package/src/table-builder/components/table-container/tableProps.ts +0 -20
- package/src/table-builder/components/table-container/virtual-scroll-container.ts +0 -145
- package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.html +0 -31
- package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.ts +0 -46
- package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.css +0 -42
- package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.html +0 -10
- package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.spec.ts +0 -86
- package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.ts +0 -34
- package/src/table-builder/components/table-container-filter/table-wrapper-filter-store.ts +0 -23
- package/src/table-builder/directives/custom-cell-directive.ts +0 -58
- package/src/table-builder/directives/multi-sort.directive.spec.ts +0 -124
- package/src/table-builder/directives/multi-sort.directive.ts +0 -51
- package/src/table-builder/directives/resize-column.directive.ts +0 -108
- package/src/table-builder/directives/table-wrapper.directive.ts +0 -14
- package/src/table-builder/directives/tb-filter.directive.ts +0 -396
- package/src/table-builder/enums/filterTypes.ts +0 -40
- package/src/table-builder/functions/boolean-filter-function.ts +0 -12
- package/src/table-builder/functions/date-filter-function.ts +0 -68
- package/src/table-builder/functions/download-data.ts +0 -11
- package/src/table-builder/functions/null-filter-function.ts +0 -9
- package/src/table-builder/functions/number-filter-function.ts +0 -41
- package/src/table-builder/functions/sort-data-function.ts +0 -23
- package/src/table-builder/functions/string-filter-function.ts +0 -51
- package/src/table-builder/interfaces/column-template.ts +0 -9
- package/src/table-builder/interfaces/report-def.ts +0 -155
- package/src/table-builder/ngrx/tableBuilderStateStore.ts +0 -199
- package/src/table-builder/pipes/column-total.pipe.ts +0 -17
- package/src/table-builder/pipes/format-filter-type.pipe.ts +0 -12
- package/src/table-builder/pipes/format-filter-value.pipe.ts +0 -42
- package/src/table-builder/pipes/key-display.ts +0 -16
- package/src/table-builder/services/export-to-csv.service.ts +0 -97
- package/src/table-builder/services/link-creator.service.ts +0 -67
- package/src/table-builder/services/table-template-service.ts +0 -59
- package/src/table-builder/services/transform-creator.ts +0 -95
- package/src/table-builder/specs/table-custom-filters.spec.ts +0 -262
- package/src/table-builder/styles/collapser.styles.scss +0 -16
- package/src/table-builder/table-builder.module.ts +0 -73
- package/src/test.ts +0 -17
- package/src/utilities/array-helpers.ts +0 -13
- package/src/utilities/directives/auto-focus.directive.ts +0 -21
- package/src/utilities/directives/clickEmitterDirective.ts +0 -16
- package/src/utilities/directives/clickSubject.ts +0 -20
- package/src/utilities/directives/conditional-classes.directive.ts +0 -36
- package/src/utilities/directives/dialog-service.ts +0 -19
- package/src/utilities/directives/dialog.ts +0 -144
- package/src/utilities/directives/mat-toggle-group-directive.ts +0 -61
- package/src/utilities/directives/prevent-enter.directive.ts +0 -13
- package/src/utilities/directives/stop-propagation.directive.ts +0 -20
- package/src/utilities/directives/styler.ts +0 -40
- package/src/utilities/directives/trim-whitespace.directive.ts +0 -21
- package/src/utilities/module.ts +0 -55
- package/src/utilities/pipes/function.pipe.ts +0 -16
- package/src/utilities/pipes/phone.pipe.ts +0 -15
- package/src/utilities/pipes/space-case.pipes.spec.ts +0 -47
- package/src/utilities/pipes/space-case.pipes.ts +0 -23
- package/tsconfig.lib.json +0 -19
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -17
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { FilterTypes } from '../enums/filterTypes';
|
|
2
|
+
import { isNull } from './null-filter-function';
|
|
3
|
+
const numberEqalsFunc = (filterInfo) => (val) => {
|
|
4
|
+
return val === filterInfo.filterValue;
|
|
5
|
+
};
|
|
6
|
+
const numberNotEqualFunc = (filterInfo) => (val) => {
|
|
7
|
+
return val !== filterInfo.filterValue;
|
|
8
|
+
};
|
|
9
|
+
const numberGreaterThanFunc = (filterInfo) => (val) => {
|
|
10
|
+
return val > filterInfo.filterValue;
|
|
11
|
+
};
|
|
12
|
+
const numberLessThanFunc = (filterInfo) => (val) => {
|
|
13
|
+
return val < filterInfo.filterValue;
|
|
14
|
+
};
|
|
15
|
+
const numberBetweenFunc = (filterInfo) => {
|
|
16
|
+
const startVal = Number(filterInfo.filterValue.Start);
|
|
17
|
+
const endVal = Number(filterInfo.filterValue.End);
|
|
18
|
+
return ((val) => (val > startVal) && (val < endVal));
|
|
19
|
+
};
|
|
20
|
+
export const multipleNumberValuesEqualsFunc = (filterInfo) => {
|
|
21
|
+
return ((val) => filterInfo.filterValue.some((value) => val === value));
|
|
22
|
+
};
|
|
23
|
+
export const NumberFilterFuncs = {
|
|
24
|
+
[FilterTypes.NumberEquals]: numberEqalsFunc,
|
|
25
|
+
[FilterTypes.NumberNotEqual]: numberNotEqualFunc,
|
|
26
|
+
[FilterTypes.NumberGreaterThan]: numberGreaterThanFunc,
|
|
27
|
+
[FilterTypes.NumberLessThan]: numberLessThanFunc,
|
|
28
|
+
[FilterTypes.NumberBetween]: numberBetweenFunc,
|
|
29
|
+
[FilterTypes.IsNull]: isNull,
|
|
30
|
+
[FilterTypes.In]: multipleNumberValuesEqualsFunc,
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWZpbHRlci1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2Z1bmN0aW9ucy9udW1iZXItZmlsdGVyLWZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQXFCLE1BQU0sc0JBQXNCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSWhELE1BQU0sZUFBZSxHQUFvQixDQUFDLFVBQStCLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBVyxFQUFZLEVBQUU7SUFDcEcsT0FBUSxHQUFHLEtBQUssVUFBVSxDQUFDLFdBQVcsQ0FBQztBQUMzQyxDQUFDLENBQUE7QUFFRCxNQUFNLGtCQUFrQixHQUFtQixDQUFDLFVBQStCLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBVyxFQUFZLEVBQUU7SUFDeEcsT0FBTyxHQUFHLEtBQUssVUFBVSxDQUFDLFdBQVcsQ0FBQztBQUN4QyxDQUFDLENBQUE7QUFFRCxNQUFPLHFCQUFxQixHQUFtQixDQUFDLFVBQStCLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBVyxFQUFZLEVBQUU7SUFDMUcsT0FBTyxHQUFHLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQztBQUN4QyxDQUFDLENBQUE7QUFFRCxNQUFNLGtCQUFrQixHQUFtQixDQUFDLFVBQStCLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBVyxFQUFZLEVBQUU7SUFDdEcsT0FBTyxHQUFHLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQztBQUN4QyxDQUFDLENBQUE7QUFFRCxNQUFPLGlCQUFpQixHQUFvQyxDQUFDLFVBQXVCLEVBQUUsRUFBRTtJQUN0RixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsRCxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUMsRUFBRSxDQUFBLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDckQsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQStCLENBQUMsVUFBcUIsRUFBRSxFQUFFO0lBQ2xHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBQyxFQUFFLENBQUEsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzdFLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFtQztJQUM3RCxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsRUFBRSxlQUFlO0lBQzNDLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLGtCQUFrQjtJQUNoRCxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLHFCQUFxQjtJQUN0RCxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxrQkFBa0I7SUFDaEQsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEVBQUUsaUJBQWlCO0lBQzlDLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU07SUFDNUIsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsOEJBQThCO0NBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSYW5nZSwgRmlsdGVyRnVuYywgRmlsdGVySW5mbywgRmlsdGVyRnVuY3MgfSBmcm9tICcuLi9jbGFzc2VzL2ZpbHRlci1pbmZvJztcclxuaW1wb3J0IHsgRmlsdGVyVHlwZXMsIE51bWJlckZpbHRlclR5cGVzIH0gZnJvbSAnLi4vZW51bXMvZmlsdGVyVHlwZXMnO1xyXG5pbXBvcnQgeyBpc051bGwgfSBmcm9tICcuL251bGwtZmlsdGVyLWZ1bmN0aW9uJztcclxuXHJcbnR5cGUgTnVtYmVyRmlsdGVyRnVuYyA9IEZpbHRlckZ1bmM8bnVtYmVyPlxyXG5cclxuY29uc3QgbnVtYmVyRXFhbHNGdW5jOk51bWJlckZpbHRlckZ1bmMgPSAoZmlsdGVySW5mbyA6IEZpbHRlckluZm88bnVtYmVyPikgPT4gKHZhbDogbnVtYmVyKTogYm9vbGVhbiAgPT57XHJcbiAgICByZXR1cm4gIHZhbCA9PT0gZmlsdGVySW5mby5maWx0ZXJWYWx1ZTtcclxufVxyXG5cclxuY29uc3QgbnVtYmVyTm90RXF1YWxGdW5jOk51bWJlckZpbHRlckZ1bmM9IChmaWx0ZXJJbmZvIDogRmlsdGVySW5mbzxudW1iZXI+KSA9PiAodmFsOiBudW1iZXIpOiBib29sZWFuICA9PntcclxuICByZXR1cm4gdmFsICE9PSBmaWx0ZXJJbmZvLmZpbHRlclZhbHVlO1xyXG59XHJcblxyXG5jb25zdCAgbnVtYmVyR3JlYXRlclRoYW5GdW5jOk51bWJlckZpbHRlckZ1bmM9IChmaWx0ZXJJbmZvIDogRmlsdGVySW5mbzxudW1iZXI+KSA9PiAodmFsOiBudW1iZXIpOiBib29sZWFuICA9PiB7XHJcbiAgICByZXR1cm4gdmFsID4gZmlsdGVySW5mby5maWx0ZXJWYWx1ZTtcclxufVxyXG5cclxuY29uc3QgbnVtYmVyTGVzc1RoYW5GdW5jOk51bWJlckZpbHRlckZ1bmM9IChmaWx0ZXJJbmZvIDogRmlsdGVySW5mbzxudW1iZXI+KSA9PiAodmFsOiBudW1iZXIpOiBib29sZWFuICA9PiB7XHJcbiAgICByZXR1cm4gdmFsIDwgZmlsdGVySW5mby5maWx0ZXJWYWx1ZTtcclxufVxyXG5cclxuY29uc3QgIG51bWJlckJldHdlZW5GdW5jOkZpbHRlckZ1bmM8UmFuZ2U8bnVtYmVyPixudW1iZXI+ID0gKGZpbHRlckluZm8gOiBGaWx0ZXJJbmZvKSA9PiB7XHJcbiAgY29uc3Qgc3RhcnRWYWwgPSBOdW1iZXIoZmlsdGVySW5mby5maWx0ZXJWYWx1ZS5TdGFydCk7XHJcbiAgY29uc3QgZW5kVmFsID0gTnVtYmVyKGZpbHRlckluZm8uZmlsdGVyVmFsdWUuRW5kKTtcclxuICByZXR1cm4gKCh2YWwpPT4odmFsID4gc3RhcnRWYWwpICYmICh2YWwgPCBlbmRWYWwpKTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IG11bHRpcGxlTnVtYmVyVmFsdWVzRXF1YWxzRnVuYzpGaWx0ZXJGdW5jPG51bWJlcltdLG51bWJlcj4gPSAoZmlsdGVySW5mbzpGaWx0ZXJJbmZvKSA9PiB7XHJcbiAgcmV0dXJuICgodmFsKT0+ZmlsdGVySW5mby5maWx0ZXJWYWx1ZS5zb21lKCh2YWx1ZTogYW55KSA9PiB2YWwgPT09IHZhbHVlKSk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBOdW1iZXJGaWx0ZXJGdW5jczogRmlsdGVyRnVuY3M8TnVtYmVyRmlsdGVyVHlwZXM+ID0ge1xyXG4gICAgW0ZpbHRlclR5cGVzLk51bWJlckVxdWFsc106IG51bWJlckVxYWxzRnVuYyxcclxuICAgIFtGaWx0ZXJUeXBlcy5OdW1iZXJOb3RFcXVhbF06IG51bWJlck5vdEVxdWFsRnVuYyxcclxuICAgIFtGaWx0ZXJUeXBlcy5OdW1iZXJHcmVhdGVyVGhhbl06IG51bWJlckdyZWF0ZXJUaGFuRnVuYyxcclxuICAgIFtGaWx0ZXJUeXBlcy5OdW1iZXJMZXNzVGhhbl06IG51bWJlckxlc3NUaGFuRnVuYyxcclxuICAgIFtGaWx0ZXJUeXBlcy5OdW1iZXJCZXR3ZWVuXTogbnVtYmVyQmV0d2VlbkZ1bmMsXHJcbiAgICBbRmlsdGVyVHlwZXMuSXNOdWxsXTogaXNOdWxsLFxyXG4gICAgW0ZpbHRlclR5cGVzLkluXTogbXVsdGlwbGVOdW1iZXJWYWx1ZXNFcXVhbHNGdW5jLFxyXG59O1xyXG4iXX0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { orderBy } from 'lodash';
|
|
2
|
+
export function sortData(data, sorted) {
|
|
3
|
+
const ordered = orderBy(data, sorted.map(r => r.active), sorted.map(r => r.direction));
|
|
4
|
+
return ordered;
|
|
5
|
+
}
|
|
6
|
+
export function filterData(data, filters, resetAll = false) {
|
|
7
|
+
for (let index = 0; index < data.length; index++) {
|
|
8
|
+
const element = data[index];
|
|
9
|
+
const hide = !filters.every(filter => filter(element));
|
|
10
|
+
if (hide || resetAll) {
|
|
11
|
+
element[tbNoShowSymbol] = hide;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return data;
|
|
15
|
+
}
|
|
16
|
+
export const tbNoShowSymbol = Symbol('tb_no_show');
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1kYXRhLWZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvZnVuY3Rpb25zL3NvcnQtZGF0YS1mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBS2pDLE1BQU0sVUFBVSxRQUFRLENBQUksSUFBUyxFQUFFLE1BQWM7SUFDbkQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBa0IsQ0FBRSxDQUFDLENBQUM7SUFDakcsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUksSUFBUyxFQUFFLE9BQXVCLEVBQUUsUUFBUSxHQUFHLEtBQUs7SUFDaEYsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNqRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDdkQsSUFBRyxJQUFJLElBQUksUUFBUSxFQUFDLENBQUM7WUFDbkIsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTb3J0IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NvcnRcIjtcclxuaW1wb3J0IHsgb3JkZXJCeSB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IFByZWRpY2F0ZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5leHBvcnQgdHlwZSBkaXJlYyA9ICdhc2MnIHwgJ2Rlc2MnIHwgYm9vbGVhbjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzb3J0RGF0YTxUPihkYXRhOiBUW10sIHNvcnRlZDogU29ydFtdKTogVFtdIHtcclxuICBjb25zdCBvcmRlcmVkID0gb3JkZXJCeShkYXRhLCBzb3J0ZWQubWFwKHIgPT4gci5hY3RpdmUpLCBzb3J0ZWQubWFwKHIgPT4gci5kaXJlY3Rpb24gYXMgZGlyZWMgKSk7XHJcbiAgcmV0dXJuIG9yZGVyZWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJEYXRhPFQ+KGRhdGE6IFRbXSwgZmlsdGVyczogUHJlZGljYXRlPFQ+W10sIHJlc2V0QWxsID0gZmFsc2Upe1xyXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBkYXRhLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IGRhdGFbaW5kZXhdO1xyXG4gICAgY29uc3QgaGlkZSA9ICFmaWx0ZXJzLmV2ZXJ5KGZpbHRlciA9PiBmaWx0ZXIoZWxlbWVudCkpO1xyXG4gICAgaWYoaGlkZSB8fCByZXNldEFsbCl7XHJcbiAgICAgIGVsZW1lbnRbdGJOb1Nob3dTeW1ib2xdID0gaGlkZTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGRhdGE7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCB0Yk5vU2hvd1N5bWJvbCA9IFN5bWJvbCgndGJfbm9fc2hvdycpO1xyXG4iXX0=
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { FilterTypes } from '../enums/filterTypes';
|
|
2
|
+
import { isNull } from './null-filter-function';
|
|
3
|
+
const stringEqualFunc = (filterInfo) => {
|
|
4
|
+
const equelsVal = prepareForStringCompare(filterInfo.filterValue);
|
|
5
|
+
return ((val) => prepareForStringCompare(val) === equelsVal);
|
|
6
|
+
};
|
|
7
|
+
const stringContainsFunc = (filterInfo) => {
|
|
8
|
+
const containsVal = prepareForStringCompare(filterInfo.filterValue);
|
|
9
|
+
return ((val) => prepareForStringCompare(val).includes(containsVal));
|
|
10
|
+
};
|
|
11
|
+
const stringDoesNotContainFunc = (filterInfo) => {
|
|
12
|
+
const doesNotContainVal = prepareForStringCompare(filterInfo.filterValue);
|
|
13
|
+
return ((val) => !prepareForStringCompare(val)?.includes(doesNotContainVal));
|
|
14
|
+
};
|
|
15
|
+
const stringStartsWithFunc = (filterInfo) => {
|
|
16
|
+
const startsWith = prepareForStringCompare(filterInfo.filterValue);
|
|
17
|
+
return ((val) => prepareForStringCompare(val).startsWith(startsWith));
|
|
18
|
+
};
|
|
19
|
+
const stringEndsWithFunc = (filterInfo) => {
|
|
20
|
+
const startsWith = prepareForStringCompare(filterInfo.filterValue);
|
|
21
|
+
return ((val) => prepareForStringCompare(val).endsWith(startsWith));
|
|
22
|
+
};
|
|
23
|
+
const multipleStringValuesEqualsFunc = (filterInfo) => {
|
|
24
|
+
const filterVals = filterInfo.filterValue.map((v) => prepareForStringCompare(v));
|
|
25
|
+
return ((val) => filterVals.some((s) => prepareForStringCompare(val) === s));
|
|
26
|
+
};
|
|
27
|
+
export const StringFilterFuncs = {
|
|
28
|
+
[FilterTypes.StringEquals]: stringEqualFunc,
|
|
29
|
+
[FilterTypes.StringContains]: stringContainsFunc,
|
|
30
|
+
[FilterTypes.StringDoesNotContain]: stringDoesNotContainFunc,
|
|
31
|
+
[FilterTypes.StringStartWith]: stringStartsWithFunc,
|
|
32
|
+
[FilterTypes.StringEndsWith]: stringEndsWithFunc,
|
|
33
|
+
[FilterTypes.IsNull]: isNull,
|
|
34
|
+
[FilterTypes.In]: multipleStringValuesEqualsFunc,
|
|
35
|
+
};
|
|
36
|
+
export const EnumFilterFuncs = {
|
|
37
|
+
[FilterTypes.IsNull]: isNull,
|
|
38
|
+
[FilterTypes.In]: multipleStringValuesEqualsFunc,
|
|
39
|
+
};
|
|
40
|
+
export const prepareForStringCompare = (val) => val?.toString().trim().toLowerCase();
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLWZpbHRlci1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2Z1bmN0aW9ucy9zdHJpbmctZmlsdGVyLWZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBbUIsV0FBVyxFQUFxQixNQUFNLHNCQUFzQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUdoRCxNQUFNLGVBQWUsR0FBc0IsQ0FBQyxVQUFxQixFQUFFLEVBQUU7SUFDbkUsTUFBTSxTQUFTLEdBQUcsdUJBQXVCLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBQyxFQUFFLENBQUEsdUJBQXVCLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxDQUFFLENBQUM7QUFDOUQsQ0FBQyxDQUFBO0FBRUQsTUFBTSxrQkFBa0IsR0FBc0IsQ0FBQyxVQUFxQixFQUFFLEVBQUU7SUFDdEUsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBQyxFQUFFLENBQUEsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7QUFDckUsQ0FBQyxDQUFBO0FBRUQsTUFBTSx3QkFBd0IsR0FBc0IsQ0FBQyxVQUFxQixFQUFFLEVBQUU7SUFDNUUsTUFBTSxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUUsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFDLEVBQUUsQ0FBQSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7QUFDN0UsQ0FBQyxDQUFBO0FBRUQsTUFBTSxvQkFBb0IsR0FBc0IsQ0FBQyxVQUFxQixFQUFFLEVBQUU7SUFDeEUsTUFBTSxVQUFVLEdBQUcsdUJBQXVCLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25FLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBQyxFQUFFLENBQUEsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDdEUsQ0FBQyxDQUFBO0FBRUQsTUFBTSxrQkFBa0IsR0FBc0IsQ0FBQyxVQUFxQixFQUFFLEVBQUU7SUFDdEUsTUFBTSxVQUFVLEdBQUcsdUJBQXVCLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25FLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBQyxFQUFFLENBQUEsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDcEUsQ0FBQyxDQUFBO0FBRUQsTUFBTSw4QkFBOEIsR0FBK0IsQ0FBQyxVQUFxQixFQUFFLEVBQUU7SUFDM0YsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUUsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUYsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBUSxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JGLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFtQztJQUM3RCxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsRUFBRSxlQUFlO0lBQzNDLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLGtCQUFrQjtJQUNoRCxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLHdCQUF3QjtJQUM1RCxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsRUFBRSxvQkFBb0I7SUFDbkQsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsa0JBQWtCO0lBQ2hELENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU07SUFDNUIsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsOEJBQThCO0NBQ25ELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQWlDO0lBQzNELENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU07SUFDNUIsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUcsOEJBQThCO0NBQ2xELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEdBQVMsRUFBUyxFQUFFLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsdGVyRnVuYywgRmlsdGVyRnVuY3MsIEZpbHRlckluZm8gfSBmcm9tICcuLi9jbGFzc2VzL2ZpbHRlci1pbmZvJztcclxuaW1wb3J0IHsgRW51bUZpbHRlclR5cGVzLCBGaWx0ZXJUeXBlcywgU3RyaW5nRmlsdGVyVHlwZXMgfSBmcm9tICcuLi9lbnVtcy9maWx0ZXJUeXBlcyc7XHJcbmltcG9ydCB7IGlzTnVsbCB9IGZyb20gJy4vbnVsbC1maWx0ZXItZnVuY3Rpb24nO1xyXG5cclxuXHJcbmNvbnN0IHN0cmluZ0VxdWFsRnVuYzpGaWx0ZXJGdW5jPHN0cmluZz4gPSAoZmlsdGVySW5mbzpGaWx0ZXJJbmZvKSA9PiB7XHJcbiAgY29uc3QgZXF1ZWxzVmFsID0gcHJlcGFyZUZvclN0cmluZ0NvbXBhcmUoZmlsdGVySW5mby5maWx0ZXJWYWx1ZSk7XHJcbiAgcmV0dXJuICgodmFsKT0+cHJlcGFyZUZvclN0cmluZ0NvbXBhcmUodmFsKSA9PT0gZXF1ZWxzVmFsICk7XHJcbn1cclxuXHJcbmNvbnN0IHN0cmluZ0NvbnRhaW5zRnVuYzpGaWx0ZXJGdW5jPHN0cmluZz4gPSAoZmlsdGVySW5mbzpGaWx0ZXJJbmZvKSA9PiB7XHJcbiAgY29uc3QgY29udGFpbnNWYWwgPSBwcmVwYXJlRm9yU3RyaW5nQ29tcGFyZShmaWx0ZXJJbmZvLmZpbHRlclZhbHVlKTtcclxuICByZXR1cm4gKCh2YWwpPT5wcmVwYXJlRm9yU3RyaW5nQ29tcGFyZSh2YWwpLmluY2x1ZGVzKGNvbnRhaW5zVmFsKSk7XHJcbn1cclxuXHJcbmNvbnN0IHN0cmluZ0RvZXNOb3RDb250YWluRnVuYzpGaWx0ZXJGdW5jPHN0cmluZz4gPSAoZmlsdGVySW5mbzpGaWx0ZXJJbmZvKSA9PiB7XHJcbiAgY29uc3QgZG9lc05vdENvbnRhaW5WYWwgPSBwcmVwYXJlRm9yU3RyaW5nQ29tcGFyZShmaWx0ZXJJbmZvLmZpbHRlclZhbHVlKTtcclxuICByZXR1cm4gKCh2YWwpPT4hcHJlcGFyZUZvclN0cmluZ0NvbXBhcmUodmFsKT8uaW5jbHVkZXMoZG9lc05vdENvbnRhaW5WYWwpKTtcclxufVxyXG5cclxuY29uc3Qgc3RyaW5nU3RhcnRzV2l0aEZ1bmM6RmlsdGVyRnVuYzxzdHJpbmc+ID0gKGZpbHRlckluZm86RmlsdGVySW5mbykgPT4ge1xyXG4gIGNvbnN0IHN0YXJ0c1dpdGggPSBwcmVwYXJlRm9yU3RyaW5nQ29tcGFyZShmaWx0ZXJJbmZvLmZpbHRlclZhbHVlKTtcclxuICByZXR1cm4gKCh2YWwpPT5wcmVwYXJlRm9yU3RyaW5nQ29tcGFyZSh2YWwpLnN0YXJ0c1dpdGgoc3RhcnRzV2l0aCkpO1xyXG59XHJcblxyXG5jb25zdCBzdHJpbmdFbmRzV2l0aEZ1bmM6RmlsdGVyRnVuYzxzdHJpbmc+ID0gKGZpbHRlckluZm86RmlsdGVySW5mbykgPT4ge1xyXG4gIGNvbnN0IHN0YXJ0c1dpdGggPSBwcmVwYXJlRm9yU3RyaW5nQ29tcGFyZShmaWx0ZXJJbmZvLmZpbHRlclZhbHVlKTtcclxuICByZXR1cm4gKCh2YWwpPT5wcmVwYXJlRm9yU3RyaW5nQ29tcGFyZSh2YWwpLmVuZHNXaXRoKHN0YXJ0c1dpdGgpKTtcclxufVxyXG5cclxuY29uc3QgbXVsdGlwbGVTdHJpbmdWYWx1ZXNFcXVhbHNGdW5jOkZpbHRlckZ1bmM8c3RyaW5nW10sc3RyaW5nPiA9IChmaWx0ZXJJbmZvOkZpbHRlckluZm8pID0+IHtcclxuICBjb25zdCBmaWx0ZXJWYWxzID0gZmlsdGVySW5mby5maWx0ZXJWYWx1ZS5tYXAoICh2OiBzdHJpbmcpID0+IHByZXBhcmVGb3JTdHJpbmdDb21wYXJlKHYpKTtcclxuICByZXR1cm4gKCh2YWwpPT4gZmlsdGVyVmFscy5zb21lKChzOnN0cmluZykgPT4gcHJlcGFyZUZvclN0cmluZ0NvbXBhcmUodmFsKSA9PT0gcykpO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgU3RyaW5nRmlsdGVyRnVuY3M6IEZpbHRlckZ1bmNzPFN0cmluZ0ZpbHRlclR5cGVzPiA9IHtcclxuICAgIFtGaWx0ZXJUeXBlcy5TdHJpbmdFcXVhbHNdOiBzdHJpbmdFcXVhbEZ1bmMsXHJcbiAgICBbRmlsdGVyVHlwZXMuU3RyaW5nQ29udGFpbnNdOiBzdHJpbmdDb250YWluc0Z1bmMsXHJcbiAgICBbRmlsdGVyVHlwZXMuU3RyaW5nRG9lc05vdENvbnRhaW5dOiBzdHJpbmdEb2VzTm90Q29udGFpbkZ1bmMsXHJcbiAgICBbRmlsdGVyVHlwZXMuU3RyaW5nU3RhcnRXaXRoXTogc3RyaW5nU3RhcnRzV2l0aEZ1bmMsXHJcbiAgICBbRmlsdGVyVHlwZXMuU3RyaW5nRW5kc1dpdGhdOiBzdHJpbmdFbmRzV2l0aEZ1bmMsXHJcbiAgICBbRmlsdGVyVHlwZXMuSXNOdWxsXTogaXNOdWxsLFxyXG4gICAgW0ZpbHRlclR5cGVzLkluXTogbXVsdGlwbGVTdHJpbmdWYWx1ZXNFcXVhbHNGdW5jLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEVudW1GaWx0ZXJGdW5jczogRmlsdGVyRnVuY3M8RW51bUZpbHRlclR5cGVzPiA9IHtcclxuICBbRmlsdGVyVHlwZXMuSXNOdWxsXTogaXNOdWxsLFxyXG4gIFtGaWx0ZXJUeXBlcy5Jbl0gOiBtdWx0aXBsZVN0cmluZ1ZhbHVlc0VxdWFsc0Z1bmMsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgcHJlcGFyZUZvclN0cmluZ0NvbXBhcmUgPSAodmFsIDogYW55KTpzdHJpbmcgPT4gdmFsPy50b1N0cmluZygpLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sdW1uSW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2ludGVyZmFjZXMvQ29sdW1uSW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tQ2VsbERpcmVjdGl2ZSB9IGZyb20gXCIuLi9kaXJlY3RpdmVzL2N1c3RvbS1jZWxsLWRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQgeyBNZXRhRGF0YSB9IGZyb20gXCIuL3JlcG9ydC1kZWZcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uSW5mbyB7XHJcbiAgbWV0YURhdGE6IE1ldGFEYXRhO1xyXG4gIGN1c3RvbUNlbGw/OiBDdXN0b21DZWxsRGlyZWN0aXZlO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2ludGVyZmFjZXMvZGljdGlvbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBEaWN0aW9uYXJ5PFQ+IHtcclxuICBba2V5OiBzdHJpbmddOiBUO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export var FieldType;
|
|
2
|
+
(function (FieldType) {
|
|
3
|
+
FieldType[FieldType["Unknown"] = 0] = "Unknown";
|
|
4
|
+
FieldType[FieldType["Date"] = 1] = "Date";
|
|
5
|
+
FieldType[FieldType["Link"] = 2] = "Link";
|
|
6
|
+
FieldType[FieldType["ImageUrl"] = 3] = "ImageUrl";
|
|
7
|
+
FieldType[FieldType["Currency"] = 4] = "Currency";
|
|
8
|
+
FieldType[FieldType["Array"] = 5] = "Array";
|
|
9
|
+
FieldType[FieldType["Hidden"] = 6] = "Hidden";
|
|
10
|
+
FieldType[FieldType["Number"] = 7] = "Number";
|
|
11
|
+
FieldType[FieldType["String"] = 8] = "String";
|
|
12
|
+
FieldType[FieldType["Boolean"] = 9] = "Boolean";
|
|
13
|
+
FieldType[FieldType["PhoneNumber"] = 10] = "PhoneNumber";
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated For mapped properties use proper type (for sorting and filtering) with `map`.
|
|
16
|
+
* For unmapped properties use `FieldType.NotMapped` with map.
|
|
17
|
+
*/
|
|
18
|
+
FieldType[FieldType["Expression"] = 11] = "Expression";
|
|
19
|
+
FieldType[FieldType["Enum"] = 12] = "Enum";
|
|
20
|
+
FieldType[FieldType["DateTime"] = 13] = "DateTime";
|
|
21
|
+
FieldType[FieldType["NotMapped"] = 14] = "NotMapped";
|
|
22
|
+
})(FieldType || (FieldType = {}));
|
|
23
|
+
export var SortDirection;
|
|
24
|
+
(function (SortDirection) {
|
|
25
|
+
SortDirection["asc"] = "asc";
|
|
26
|
+
SortDirection["desc"] = "desc";
|
|
27
|
+
})(SortDirection || (SortDirection = {}));
|
|
28
|
+
export var Target;
|
|
29
|
+
(function (Target) {
|
|
30
|
+
Target["Blank"] = "_blank";
|
|
31
|
+
Target["Self"] = "_self";
|
|
32
|
+
Target["Parent"] = "_parent";
|
|
33
|
+
Target["Top"] = "_top";
|
|
34
|
+
})(Target || (Target = {}));
|
|
35
|
+
export var ArrayStyle;
|
|
36
|
+
(function (ArrayStyle) {
|
|
37
|
+
ArrayStyle[ArrayStyle["CommaDelimited"] = 0] = "CommaDelimited";
|
|
38
|
+
ArrayStyle[ArrayStyle["NewLine"] = 1] = "NewLine";
|
|
39
|
+
})(ArrayStyle || (ArrayStyle = {}));
|
|
40
|
+
export function metaDataArrToDict(arr, transform) {
|
|
41
|
+
const dict = {};
|
|
42
|
+
if (transform) {
|
|
43
|
+
arr.forEach(e => dict[e.key] = transform(e));
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
arr.forEach(e => dict[e.key] = e);
|
|
47
|
+
}
|
|
48
|
+
return dict;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWRlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2ludGVyZmFjZXMvcmVwb3J0LWRlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLENBQU4sSUFBWSxTQW9CWDtBQXBCRCxXQUFZLFNBQVM7SUFDakIsK0NBQVcsQ0FBQTtJQUNYLHlDQUFRLENBQUE7SUFDUix5Q0FBUSxDQUFBO0lBQ1IsaURBQVksQ0FBQTtJQUNaLGlEQUFZLENBQUE7SUFDWiwyQ0FBUyxDQUFBO0lBQ1QsNkNBQVUsQ0FBQTtJQUNWLDZDQUFVLENBQUE7SUFDViw2Q0FBVSxDQUFBO0lBQ1YsK0NBQVcsQ0FBQTtJQUNYLHdEQUFnQixDQUFBO0lBQ2hCOzs7T0FHRztJQUNILHNEQUFlLENBQUE7SUFDZiwwQ0FBUyxDQUFBO0lBQ1Qsa0RBQWEsQ0FBQTtJQUNiLG9EQUFjLENBQUE7QUFDbEIsQ0FBQyxFQXBCVyxTQUFTLEtBQVQsU0FBUyxRQW9CcEI7QUFFRCxNQUFNLENBQU4sSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3JCLDRCQUFVLENBQUE7SUFDViw4QkFBWSxDQUFBO0FBQ2hCLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QjtBQUVELE1BQU0sQ0FBTixJQUFZLE1BS1g7QUFMRCxXQUFZLE1BQU07SUFDaEIsMEJBQWdCLENBQUE7SUFDaEIsd0JBQWMsQ0FBQTtJQUNkLDRCQUFrQixDQUFBO0lBQ2xCLHNCQUFZLENBQUE7QUFDZCxDQUFDLEVBTFcsTUFBTSxLQUFOLE1BQU0sUUFLakI7QUFnR0QsTUFBTSxDQUFOLElBQVksVUFHWDtBQUhELFdBQVksVUFBVTtJQUNwQiwrREFBYyxDQUFBO0lBQ2QsaURBQU8sQ0FBQTtBQUNULENBQUMsRUFIVyxVQUFVLEtBQVYsVUFBVSxRQUdyQjtBQVNELE1BQU0sVUFBVSxpQkFBaUIsQ0FBZSxHQUFlLEVBQUUsU0FBK0I7SUFDOUYsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLElBQUcsU0FBUyxFQUFDLENBQUM7UUFDWixHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO1NBQU0sQ0FBQztRQUNOLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnLi9kaWN0aW9uYXJ5JztcclxuaW1wb3J0IHsgUGlwZVRyYW5zZm9ybSwgUHJlZGljYXRlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUYWJsZUJ1aWxkZXJFeHBvcnQgfSBmcm9tICcuLi9jbGFzc2VzL1RhYmxlQnVpbGRlckNvbmZpZyc7XHJcbmltcG9ydCB7IFF1ZXJ5UGFyYW1zSGFuZGxpbmcgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuXHJcbmV4cG9ydCBlbnVtIEZpZWxkVHlwZSB7XHJcbiAgICBVbmtub3duID0gMCxcclxuICAgIERhdGUgPSAxLFxyXG4gICAgTGluayA9IDIsXHJcbiAgICBJbWFnZVVybCA9IDMsXHJcbiAgICBDdXJyZW5jeSA9IDQsXHJcbiAgICBBcnJheSA9IDUsXHJcbiAgICBIaWRkZW4gPSA2LFxyXG4gICAgTnVtYmVyID0gNyxcclxuICAgIFN0cmluZyA9IDgsXHJcbiAgICBCb29sZWFuID0gOSxcclxuICAgIFBob25lTnVtYmVyID0gMTAsXHJcbiAgICAvKipcclxuICAgICAqIEBkZXByZWNhdGVkIEZvciBtYXBwZWQgcHJvcGVydGllcyB1c2UgcHJvcGVyIHR5cGUgKGZvciBzb3J0aW5nIGFuZCBmaWx0ZXJpbmcpIHdpdGggYG1hcGAuXHJcbiAgICAgKiBGb3IgdW5tYXBwZWQgcHJvcGVydGllcyB1c2UgYEZpZWxkVHlwZS5Ob3RNYXBwZWRgIHdpdGggbWFwLlxyXG4gICAgICovXHJcbiAgICBFeHByZXNzaW9uID0gMTEsXHJcbiAgICBFbnVtID0gMTIsXHJcbiAgICBEYXRlVGltZSA9IDEzLFxyXG4gICAgTm90TWFwcGVkID0gMTQsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFNvcnREaXJlY3Rpb24ge1xyXG4gICAgYXNjPSAnYXNjJyxcclxuICAgIGRlc2M9ICdkZXNjJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBUYXJnZXQge1xyXG4gIEJsYW5rID0gJ19ibGFuaycsXHJcbiAgU2VsZiA9ICdfc2VsZicsXHJcbiAgUGFyZW50ID0gJ19wYXJlbnQnLFxyXG4gIFRvcCA9ICdfdG9wJ1xyXG59XHJcblxyXG5pbnRlcmZhY2UgQmFzZU1ldGEgPFQgPSBhbnk+IHtcclxuICBkaXNwbGF5TmFtZT86IHN0cmluZztcclxuICBhZGRpdGlvbmFsPzogQWRkaXRpb25hbDxUPjtcclxuICBvcmRlcj86IG51bWJlcjtcclxuICBwcmVTb3J0PzogU29ydERlZjtcclxuICB3aWR0aD86IHN0cmluZztcclxuICBub0V4cG9ydD86IGJvb2xlYW47XHJcbiAgbm9GaWx0ZXI/OiBib29sZWFuO1xyXG4gIG5vU29ydD86IGJvb2xlYW47XHJcbiAgY3VzdG9tQ2VsbD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQGRlcHJlY2F0ZWQgUGxlYXNlIHVzZSBtYXAgaW5zdGVhZFxyXG4gICAqL1xyXG4gIHRyYW5zZm9ybT86ICgobzogVCwgLi4uYXJnczogYW55W10pPT4gYW55KSB8ICgobzogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk9PiBhbnkpIHwgUGlwZVRyYW5zZm9ybTtcclxuICBjbGljaz86IChlbGVtZW50OiBULCBrZXk6IHN0cmluZyApID0+IHZvaWQ7XHJcbiAgdGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIGNsYXNzZXM/OiBEaWN0aW9uYXJ5PFByZWRpY2F0ZTxUPj47XHJcbiAgdG9vbFRpcD86IHN0cmluZyB8ICgodDpUKSA9PiBzdHJpbmcpO1xyXG4gIHVzZUljb24/OiBib29sZWFuO1xyXG4gIG1hcD8gOiAodDpUKSA9PiBhbnk7XHJcbn1cclxuXHJcbmludGVyZmFjZSBNYXBwZWRNZXRhRGF0YTxUID0gYW55LCBBZGRpdGlvbmFsRmllbGRzIGV4dGVuZHMgc3RyaW5nW10gPSBbXT4gZXh0ZW5kcyBCYXNlTWV0YTxUPiB7XHJcbiAga2V5OiAoa2V5b2YgVCB8IEFkZGl0aW9uYWxGaWVsZHNbbnVtYmVyXSkgJiBzdHJpbmc7XHJcbiAgZmllbGRUeXBlOiBFeGNsdWRlPHR5cGVvZiBGaWVsZFR5cGVba2V5b2YgdHlwZW9mIEZpZWxkVHlwZV0sIEZpZWxkVHlwZS5Ob3RNYXBwZWQgfCBGaWVsZFR5cGUuRXhwcmVzc2lvbj47XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE1ldGFEYXRhPFQgPSBhbnksIEFkZGl0aW9uYWxGaWVsZHMgZXh0ZW5kcyBzdHJpbmdbXSA9IFtdPiA9IE1hcHBlZE1ldGFEYXRhPFQsIEFkZGl0aW9uYWxGaWVsZHM+IHwgTm90TWFwcGVkTWV0YURhdGE8VD47XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE5vdE1hcHBlZE1ldGFEYXRhPFQgPSBhbnk+IGV4dGVuZHMgQmFzZU1ldGE8VD4ge1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIGZpZWxkVHlwZTogRmllbGRUeXBlLk5vdE1hcHBlZCB8IEZpZWxkVHlwZS5FeHByZXNzaW9uO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgIFJlcG9ydERlZjxEYXRhVHlwZSA9IGFueT4ge1xyXG4gICAgZGF0YTogRGF0YVR5cGVbXTtcclxuICAgIG1ldGFEYXRhOiBNZXRhRGF0YSBbXTtcclxuICAgIHRvdGFsUmVjb3Jkcz86IG51bWJlcjtcclxuICAgIGNvdW50OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU29ydERlZiB7XHJcbiAgICBkaXJlY3Rpb246IFNvcnREaXJlY3Rpb247XHJcbiAgICBwcmVjZWRlbmNlPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlck9wdGlvbnMge1xyXG4gIGZpbHRlcmFibGVWYWx1ZXMgOiBzdHJpbmdbXVxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVRpbWVPcHRpb25zIHtcclxuICBmb3JtYXQ/OiBzdHJpbmc7XHJcbiAgaW5jbHVkZVNlY29uZHM/OiBib29sZWFuO1xyXG4gIGluY2x1ZGVNaWxsaXNlY29uZHM6IGJvb2xlYW47XHJcbn1cclxudHlwZSBpbnRlcnBvbGF0ZWRSb3V0ZSA9IHN0cmluZztcclxuZXhwb3J0IGludGVyZmFjZSBBZGRpdGlvbmFsPFQgPSBhbnk+IHtcclxuICBsaW5rPyA6IHtcclxuICAgIGJhc2U/OiBzdHJpbmc7XHJcbiAgICB1cmxLZXk/OiBzdHJpbmc7XHJcbiAgICB0YXJnZXQ/OiBUYXJnZXQ7XHJcbiAgICB1c2VSb3V0ZXJMaW5rPzogYm9vbGVhbjtcclxuICAgIC8qKlxyXG4gICAgICogSWYgeW91IHdhbnQgdG8gdXNlIGEgcm91dGUgd2l0aCBpbnRlcnBvbGF0ZWQgcGFyYW1zLCB5b3UgY2FuIHVzZSB0aGlzLiBXcmFwIHRoZSBwcm9wZXJ0eSBuYW1lIGluIGN1cmx5IGJyYWNlcy5cclxuICAgICAqIEZvciBleGFtcGxlLCBpZiBpbnRlcnBvbGF0ZWRSb3V0ZSA9IC91c2Vycy97aWR9L2VkaXQsIHtpZH0gd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRoZSB2YWx1ZSBvZiB0aGUgZWxlbWVudCdzIGlkIHByb3BlcnR5LlxyXG4gICAgICovXHJcbiAgICBpbnRlcnBvbGF0ZWRSb3V0ZT86IGludGVycG9sYXRlZFJvdXRlO1xyXG4gICAgcm91dGVyTGlua09wdGlvbnM/OntcclxuICAgICAgcXVlcnlQYXJhbXM/OiBbc3RyaW5nLCBpbnRlcnBvbGF0ZWRSb3V0ZV1bXTtcclxuICAgICAgZnJhZ21lbnQ/OiBzdHJpbmc7XHJcbiAgICAgIHByZXNlcnZlRnJhZ21lbnQ/OiBib29sZWFuO1xyXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nPzogUXVlcnlQYXJhbXNIYW5kbGluZztcclxuICAgIH1cclxuICB9XHJcbiAgZm9vdGVyPzogeyB0eXBlOiAnc3VtJyB9O1xyXG4gIGV4cG9ydD86IFRhYmxlQnVpbGRlckV4cG9ydDtcclxuICBkYXRlRm9ybWF0Pzogc3RyaW5nO1xyXG4gIGRhdGVUaW1lT3B0aW9ucz86ICBEYXRlVGltZU9wdGlvbnM7XHJcbiAgZmlsdGVyT3B0aW9ucz86IEZpbHRlck9wdGlvbnM7XHJcbiAgc3R5bGVzPzogRGljdGlvbmFyeTxzdHJpbmcgfCB7Y29uZGl0aW9uOiAodDpUKSA9PiBib29sZWFuIHwgdHJ1ZSwgdmFsdWU6ICh0OlQpID0+IHN0cmluZyB8IHN0cmluZ30+O1xyXG4gIGNvbHVtblBhcnRTdHlsZXM/OiB7XHJcbiAgICBoZWFkZXI/OiBEaWN0aW9uYXJ5PHN0cmluZz4sXHJcbiAgICBib2R5PzogRGljdGlvbmFyeTxzdHJpbmcgfCB7Y29uZGl0aW9uOiAodDogVCkgPT4gYm9vbGVhbiB8IHRydWUsIHZhbHVlOiAodDogVCkgPT4gc3RyaW5nIHwgc3RyaW5nfT4sXHJcbiAgICBmb290ZXI/OiBEaWN0aW9uYXJ5PHN0cmluZz4sXHJcbiAgfVxyXG4gIGNvbHVtblBhcnRDbGFzc2VzPzoge1xyXG4gICAgaGVhZGVyPzogRGljdGlvbmFyeTxQcmVkaWNhdGU8VD4+LFxyXG4gICAgZm9vdGVyPzogRGljdGlvbmFyeTxQcmVkaWNhdGU8VD4+LFxyXG4gIH1cclxuICBlbnVtTWFwPzoge1trZXk6bnVtYmVyXTpzdHJpbmd9O1xyXG4gIGJvb2xlYW4/IDoge1xyXG4gICAgc2hvd0ZvckZhbHNlPyA6IHRydWUgfCB7IGljb24gOiBzdHJpbmcgfSxcclxuICAgIGZvclRydWU/IDogeyBpY29uIDogc3RyaW5nIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEFycmF5U3R5bGUge1xyXG4gIENvbW1hRGVsaW1pdGVkLFxyXG4gIE5ld0xpbmVcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBcnJheUFkZGl0aW9uYWwgZXh0ZW5kcyBBZGRpdGlvbmFsIHtcclxuICAgIGxpbWl0PzogbnVtYmVyO1xyXG4gICAgYXJyYXlTdHlsZT86IEFycmF5U3R5bGU7XHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1ldGFEYXRhQXJyVG9EaWN0PFQgPSBNZXRhRGF0YT4oYXJyOiBNZXRhRGF0YVtdLCB0cmFuc2Zvcm0/OiAobSA6IE1ldGFEYXRhKSA9PiBUKTogRGljdGlvbmFyeTxUPntcclxuICBjb25zdCBkaWN0ID0ge307XHJcbiAgaWYodHJhbnNmb3JtKXtcclxuICAgIGFyci5mb3JFYWNoKGUgPT4gZGljdFtlLmtleV0gPSB0cmFuc2Zvcm0oZSkpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBhcnIuZm9yRWFjaChlID0+IGRpY3RbZS5rZXldID0gZSk7XHJcbiAgfVxyXG4gIHJldHVybiBkaWN0O1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { ComponentStore } from "@ngrx/component-store";
|
|
2
|
+
import { Injectable } from "@angular/core";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class TableBuilderStateStore extends ComponentStore {
|
|
5
|
+
constructor() {
|
|
6
|
+
super(loadGlobalStorageState() || defaultStorageState);
|
|
7
|
+
}
|
|
8
|
+
//selectors
|
|
9
|
+
$selectLocalTableProfile = (profileKey) => this.selectSignal(state => state.localProfiles[profileKey]);
|
|
10
|
+
$selectLocalTableStateForView = (tableId) => this.selectSignal(this.$selectLocalTableProfile(tableId), (profile) => {
|
|
11
|
+
if (profile?.current) {
|
|
12
|
+
return profile.states[profile.current];
|
|
13
|
+
}
|
|
14
|
+
if (profile?.localSavedState)
|
|
15
|
+
return profile.localSavedState;
|
|
16
|
+
return null;
|
|
17
|
+
});
|
|
18
|
+
$selectLocalProfileCurrentKey = (key) => this.selectSignal(this.$selectLocalTableProfile(key), (profile) => profile?.current);
|
|
19
|
+
$selectLocalProfileDefaultKey = (key) => this.selectSignal(this.$selectLocalTableProfile(key), (profile) => profile?.default);
|
|
20
|
+
$selectLocalProfileKeys = (tableId) => this.selectSignal(this.$selectLocalTableProfile(tableId), (profile) => Object.keys(profile?.states || {}));
|
|
21
|
+
// reducers
|
|
22
|
+
saveTableSettingsToLocalAndStorage = (tableId, stateName, tableState, asDefault) => {
|
|
23
|
+
this.saveTableStateToStorage(tableId, stateName, tableState, asDefault);
|
|
24
|
+
this.saveTableStateToLocal({ tableId, tableState, stateName, asDefault });
|
|
25
|
+
};
|
|
26
|
+
saveTableStateToLocal = this.updater((state, props) => {
|
|
27
|
+
let profile = state.localProfiles[props.tableId];
|
|
28
|
+
if (!profile?.states) {
|
|
29
|
+
profile = { states: {} };
|
|
30
|
+
}
|
|
31
|
+
if (!props.stateName) {
|
|
32
|
+
profile = { ...profile, localSavedState: props.tableState };
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
profile = { ...profile, states: { ...profile.states, [props.stateName]: props.tableState } };
|
|
36
|
+
}
|
|
37
|
+
if (props.asDefault) {
|
|
38
|
+
profile.default = props.stateName;
|
|
39
|
+
}
|
|
40
|
+
return { ...state, localProfiles: { ...state.localProfiles, [props.tableId]: profile } };
|
|
41
|
+
});
|
|
42
|
+
saveTableStateToStorage = (tableId, stateName, tableState, asDefault = false) => {
|
|
43
|
+
const globalSavedState = JSON.parse(localStorage.getItem('global-state-storage') ?? JSON.stringify(defaultStorageState));
|
|
44
|
+
globalSavedState.localProfiles[tableId] ??= { states: {} };
|
|
45
|
+
globalSavedState.localProfiles[tableId].states[stateName] = tableState;
|
|
46
|
+
if (asDefault) {
|
|
47
|
+
globalSavedState.localProfiles[tableId].default = stateName;
|
|
48
|
+
}
|
|
49
|
+
localStorage.setItem('global-state-storage', JSON.stringify(globalSavedState));
|
|
50
|
+
};
|
|
51
|
+
addNewStateToLocalAndStorage = (tableId, newStateName, tableState, asDefault) => {
|
|
52
|
+
this.saveTableSettingsToLocalAndStorage(tableId, newStateName, tableState, asDefault);
|
|
53
|
+
this.setLocalCurrentState({ tableId: tableId, currentStateKey: newStateName });
|
|
54
|
+
};
|
|
55
|
+
setLocalCurrentState = this.updater((state, props) => {
|
|
56
|
+
const profile = state.localProfiles[props.tableId] || { states: {} };
|
|
57
|
+
profile.current = props.currentStateKey;
|
|
58
|
+
return { ...state, localProfiles: { ...state.localProfiles, [props.tableId]: { ...profile } } };
|
|
59
|
+
});
|
|
60
|
+
setDefaultInLocalAndStorage = (tableId, newDefault) => {
|
|
61
|
+
this.setDefaultInLocal({ default: newDefault, key: tableId });
|
|
62
|
+
this.setDefaultInStorage(tableId, newDefault);
|
|
63
|
+
};
|
|
64
|
+
setDefaultInLocal = this.updater((state, props) => {
|
|
65
|
+
if (state.localProfiles[props.key]?.states[props.default]) {
|
|
66
|
+
return ({ ...state, localProfiles: { ...state.localProfiles, [props.key]: { ...state.localProfiles[props.key], default: props.default } } });
|
|
67
|
+
}
|
|
68
|
+
return state;
|
|
69
|
+
});
|
|
70
|
+
unsetDefaultFromLocalAndStorage = (tableId) => {
|
|
71
|
+
this.unsetDefaultFromLocal(tableId);
|
|
72
|
+
this.unsetDefaultFromStorage(tableId);
|
|
73
|
+
};
|
|
74
|
+
unsetDefaultFromLocal = (tableId) => {
|
|
75
|
+
this.patchState(tables => {
|
|
76
|
+
const profile = { ...tables.localProfiles[tableId] };
|
|
77
|
+
if (profile) {
|
|
78
|
+
delete profile.default;
|
|
79
|
+
}
|
|
80
|
+
return { ...tables, localProfiles: { ...tables.localProfiles, [tableId]: profile } };
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
unsetDefaultFromStorage = (tableId) => {
|
|
84
|
+
const globalSavedState = JSON.parse(localStorage.getItem('global-state-storage') ?? JSON.stringify(defaultStorageState));
|
|
85
|
+
if (globalSavedState.localProfiles[tableId]) {
|
|
86
|
+
delete globalSavedState.localProfiles[tableId].default;
|
|
87
|
+
localStorage.setItem('global-state-storage', JSON.stringify(globalSavedState));
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
setDefaultInStorage = (tableId, stateName) => {
|
|
91
|
+
const tableProfile = this.$selectLocalTableProfile(tableId)();
|
|
92
|
+
const globalSavedState = JSON.parse(localStorage.getItem('global-state-storage') ?? JSON.stringify(defaultStorageState));
|
|
93
|
+
let savedProfile = globalSavedState.localProfiles[stateName];
|
|
94
|
+
if (!savedProfile?.states) {
|
|
95
|
+
savedProfile = { default: stateName, states: tableProfile.states };
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
savedProfile.default = stateName;
|
|
99
|
+
}
|
|
100
|
+
globalSavedState.localProfiles[tableId] = savedProfile;
|
|
101
|
+
localStorage.setItem('global-state-storage', JSON.stringify(globalSavedState));
|
|
102
|
+
};
|
|
103
|
+
deleteLocalProfilesState = this.updater((state, props) => {
|
|
104
|
+
let profile = state.localProfiles[props.key];
|
|
105
|
+
if (profile) {
|
|
106
|
+
const current = profile.current === props.stateKey ? profile.default : profile.current;
|
|
107
|
+
profile = { ...profile, current, states: { ...profile.states } };
|
|
108
|
+
delete profile.states[props.stateKey];
|
|
109
|
+
if (current === props.stateKey) {
|
|
110
|
+
profile.current = undefined;
|
|
111
|
+
}
|
|
112
|
+
return { ...state, localProfiles: { ...state.localProfiles, [props.key]: profile } };
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
return state;
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
deleteProfileFromLocalAndStorage = (key, stateKey) => {
|
|
119
|
+
const globalSavedState = JSON.parse(localStorage.getItem('global-state-storage') ?? JSON.stringify(defaultStorageState));
|
|
120
|
+
if (!globalSavedState.localProfiles[key]) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
delete (globalSavedState.localProfiles[key].states ?? {})[stateKey];
|
|
125
|
+
}
|
|
126
|
+
if (globalSavedState.localProfiles[key].default === stateKey) {
|
|
127
|
+
globalSavedState.localProfiles[key].default = undefined;
|
|
128
|
+
}
|
|
129
|
+
localStorage.setItem('global-state-storage', JSON.stringify(globalSavedState));
|
|
130
|
+
this.deleteLocalProfilesState({ key, stateKey });
|
|
131
|
+
};
|
|
132
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TableBuilderStateStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
133
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TableBuilderStateStore, providedIn: 'root' });
|
|
134
|
+
}
|
|
135
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TableBuilderStateStore, decorators: [{
|
|
136
|
+
type: Injectable,
|
|
137
|
+
args: [{ providedIn: 'root' }]
|
|
138
|
+
}], ctorParameters: () => [] });
|
|
139
|
+
function loadGlobalStorageState() {
|
|
140
|
+
const storage = localStorage.getItem('global-state-storage');
|
|
141
|
+
if (storage) {
|
|
142
|
+
const s = JSON.parse(storage);
|
|
143
|
+
s.localProfiles ??= {};
|
|
144
|
+
for (const key in s.localProfiles) {
|
|
145
|
+
const profile = s.localProfiles[key];
|
|
146
|
+
s.localProfiles[key] = { ...profile, current: profile.default };
|
|
147
|
+
}
|
|
148
|
+
return { ...defaultStorageState, ...s };
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
export const defaultStorageState = {
|
|
152
|
+
localProfiles: {}
|
|
153
|
+
};
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVCdWlsZGVyU3RhdGVTdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL25ncngvdGFibGVCdWlsZGVyU3RhdGVTdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFPbkQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGNBQWtDO0lBQzVFO1FBQ0UsS0FBSyxDQUFDLHNCQUFzQixFQUFFLElBQUksbUJBQW1CLENBQUMsQ0FBQTtJQUN4RCxDQUFDO0lBRUQsV0FBVztJQUNYLHdCQUF3QixHQUFHLENBQUMsVUFBaUIsRUFBK0IsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDdkcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBRW5DLDZCQUE2QixHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUNwRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLEVBQ3RDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDVixJQUFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUNwQixPQUFRLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxJQUFHLE9BQU8sRUFBRSxlQUFlO1lBQUUsT0FBTyxPQUFPLENBQUMsZUFBZSxDQUFDO1FBQzVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUNGLENBQUE7SUFFRCw2QkFBNkIsR0FBRyxDQUFDLEdBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FDL0QsSUFBSSxD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LEdBQXdCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFnQyxDQUFDO1FBQ2xGLENBQUMsQ0FBQyxhQUFhLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLEtBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBQyxDQUFDO1lBQ2hDLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFhLENBQUE7UUFDNUUsQ0FBQztRQUNELE9BQU8sRUFBQyxHQUFHLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxFQUFDLENBQUM7SUFDeEMsQ0FBQztBQUNILENBQUM7QUFtQkQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQXVCO0lBQ3JELGFBQWEsRUFBRSxFQUFFO0NBQ2xCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gXCJAbmdyeC9jb21wb25lbnQtc3RvcmVcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgU2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZmlsdGVyLCB0YXAgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBjb25jYXRMYXRlc3RGcm9tIH0gZnJvbSAnQG5ncngvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL2RpY3Rpb25hcnlcIjtcclxuaW1wb3J0IHsgUGVyc2lzdGVkVGFibGVTdGF0ZSwgVGFibGVTdGF0ZSB9IGZyb20gXCIuLi9jbGFzc2VzL1RhYmxlU3RhdGVcIjtcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnfSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQnVpbGRlclN0YXRlU3RvcmUgZXh0ZW5kcyBDb21wb25lbnRTdG9yZTxHbG9iYWxTdG9yYWdlU3RhdGU+IHtcclxuICBjb25zdHJ1Y3Rvcigpe1xyXG4gICAgc3VwZXIobG9hZEdsb2JhbFN0b3JhZ2VTdGF0ZSgpIHx8IGRlZmF1bHRTdG9yYWdlU3RhdGUpXHJcbiAgfVxyXG5cclxuICAvL3NlbGVjdG9yc1xyXG4gICRzZWxlY3RMb2NhbFRhYmxlUHJvZmlsZSA9IChwcm9maWxlS2V5OnN0cmluZyk6IFNpZ25hbDxQcm9maWxlIHwgdW5kZWZpbmVkPiA9PiB0aGlzLnNlbGVjdFNpZ25hbChzdGF0ZSA9PiBcclxuICAgIHN0YXRlLmxvY2FsUHJvZmlsZXNbcHJvZmlsZUtleV0pO1xyXG5cclxuICAkc2VsZWN0TG9jYWxUYWJsZVN0YXRlRm9yVmlldyA9ICh0YWJsZUlkOiBzdHJpbmcpID0+IHRoaXMuc2VsZWN0U2lnbmFsKFxyXG4gICAgdGhpcy4kc2VsZWN0TG9jYWxUYWJsZVByb2ZpbGUodGFibGVJZCksXHJcbiAgICAocHJvZmlsZSkgPT4ge1xyXG4gICAgICBpZihwcm9maWxlPy5jdXJyZW50KSB7XHJcbiAgICAgICAgcmV0dXJuICBwcm9maWxlLnN0YXRlc1twcm9maWxlLmN1cnJlbnRdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHByb2ZpbGU/LmxvY2FsU2F2ZWRTdGF0ZSkgcmV0dXJuIHByb2ZpbGUubG9jYWxTYXZlZFN0YXRlO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICApXHJcblxyXG4gICRzZWxlY3RMb2NhbFByb2ZpbGVDdXJyZW50S2V5ID0gKGtleTpzdHJpbmcpID0+IHRoaXMuc2VsZWN0U2lnbmFsKFxyXG4gICAgdGhpcy4kc2VsZWN0TG9jYWxUYWJsZVByb2ZpbGUoa2V5KSxcclxuICAgIChwcm9maWxlKSA9PiBwcm9maWxlPy5jdXJyZW50KTtcclxuXHJcbiAgJHNlbGVjdExvY2FsUHJvZmlsZURlZmF1bHRLZXkgPSAoa2V5OnN0cmluZykgPT4gdGhpcy5zZWxlY3RTaWduYWwoXHJcbiAgICB0aGlzLiRzZWxlY3RMb2NhbFRhYmxlUHJvZmlsZShrZXkpLFxyXG4gICAgKHByb2ZpbGUpID0+IHByb2ZpbGU/LmRlZmF1bHQpO1xyXG5cclxuICAkc2VsZWN0TG9jYWxQcm9maWxlS2V5cyA9ICh0YWJsZUlkOnN0cmluZykgPT4gdGhpcy5zZWxlY3RTaWduYWwoXHJcbiAgICB0aGlzLiRzZWxlY3RMb2NhbFRhYmxlUHJvZmlsZSh0YWJsZUlkKSxcclxuICAgIChwcm9maWxlKSA9PiBPYmplY3Qua2V5cyhwcm9maWxlPy5zdGF0ZXMgfHwge30pXHJcbiAgKTtcclxuXHJcblxyXG4gIC8vIHJlZHVjZXJzXHJcbiAgXHJcblxyXG4gIHNhdmVUYWJsZVNldHRpbmdzVG9Mb2NhbEFuZFN0b3JhZ2UgPSAodGFibGVJZDogc3RyaW5nLCBzdGF0ZU5hbWU6IHN0cmluZywgdGFibGVTdGF0ZTogUGVyc2lzdGVkVGFibGVTdGF0ZSwgYXNEZWZhdWx0PzogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5zYXZlVGFibGVTdGF0ZVRvU3RvcmFnZSh0YWJsZUlkLCBzdGF0ZU5hbWUsIHRhYmxlU3RhdGUsIGFzRGVmYXVsdCk7XHJcbiAgICB0aGlzLnNhdmVUYWJsZVN0YXRlVG9Mb2NhbCh7IHRhYmxlSWQsIHRhYmxlU3RhdGUsIHN0YXRlTmFtZSwgYXNEZWZhdWx0IH0pO1xyXG4gIH1cclxuICBcclxuICBzYXZlVGFibGVTdGF0ZVRvTG9jYWwgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBwcm9wczogeyB0YWJsZUlkOiBzdHJpbmcsIHRhYmxlU3RhdGU6IFBlcnNpc3RlZFRhYmxlU3RhdGUsIHN0YXRlTmFtZT86IHN0cmluZywgYXNEZWZhdWx0PzogYm9vbGVhbiB9KSA9PiB7XHJcbiAgICBsZXQgcHJvZmlsZSA9IHN0YXRlLmxvY2FsUHJvZmlsZXNbcHJvcHMudGFibGVJZF07XHJcbiAgICBpZighcHJvZmlsZT8uc3RhdGVzKSB7XHJcbiAgICAgIHByb2ZpbGUgPSB7c3RhdGVzOnt9fTtcclxuICAgIH1cclxuICAgIGlmKCFwcm9wcy5zdGF0ZU5hbWUpe1xyXG4gICAgICBwcm9maWxlID0gey4uLnByb2ZpbGUsIGxvY2FsU2F2ZWRTdGF0ZTogcHJvcHMudGFibGVTdGF0ZSB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcHJvZmlsZSA9IHsuLi5wcm9maWxlLCBzdGF0ZXM6IHsuLi5wcm9maWxlLnN0YXRlcywgW3Byb3BzLnN0YXRlTmFtZV0gOiBwcm9wcy50YWJsZVN0YXRlfSB9O1xyXG4gICAgfVxyXG4gICAgaWYocHJvcHMuYXNEZWZhdWx0KXtcclxuICAgICAgcHJvZmlsZS5kZWZhdWx0ID0gcHJvcHMuc3RhdGVOYW1lO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgbG9jYWxQcm9maWxlczogey4uLnN0YXRlLmxvY2FsUHJvZmlsZXMsIFtwcm9wcy50YWJsZUlkXTogcHJvZmlsZX0gfVxyXG4gIH0pO1xyXG5cclxuICBzYXZlVGFibGVTdGF0ZVRvU3RvcmFnZSA9ICh0YWJsZUlkOiBzdHJpbmcsIHN0YXRlTmFtZTogc3RyaW5nLCB0YWJsZVN0YXRlOiBQZXJzaXN0ZWRUYWJsZVN0YXRlLCBhc0RlZmF1bHQgPSBmYWxzZSkgPT4ge1xyXG4gICAgY29uc3QgZ2xvYmFsU2F2ZWRTdGF0ZTogUGVyc2lzdGVkR2xvYmFsU3RvcmFnZVNhdGUgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdnbG9iYWwtc3RhdGUtc3RvcmFnZScpID8/IEpTT04uc3RyaW5naWZ5KGRlZmF1bHRTdG9yYWdlU3RhdGUpICk7XHJcbiAgICBnbG9iYWxTYXZlZFN0YXRlLmxvY2FsUHJvZmlsZXNbdGFibGVJZF0gPz89IHsgc3RhdGVzIDoge319XHJcbiAgICBnbG9iYWxTYXZlZFN0YXRlLmxvY2FsUHJvZmlsZXNbdGFibGVJZF0uc3RhdGVzW3N0YXRlTmFtZV0gPSB0YWJsZVN0YXRlO1xyXG4gICAgaWYoYXNEZWZhdWx0KXtcclxuICAgICAgZ2xvYmFsU2F2ZWRTdGF0ZS5sb2NhbFByb2ZpbGVzW3RhYmxlSWRdLmRlZmF1bHQgPSBzdGF0ZU5hbWU7XHJcbiAgICB9XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZ2xvYmFsLXN0YXRlLXN0b3JhZ2UnLCBKU09OLnN0cmluZ2lmeSggZ2xvYmFsU2F2ZWRTdGF0ZSkpO1xyXG4gIH1cclxuXHJcbiAgYWRkTmV3U3RhdGVUb0xvY2FsQW5kU3RvcmFnZSA9ICh0YWJsZUlkOiBzdHJpbmcsIG5ld1N0YXRlTmFtZTogc3RyaW5nLCB0YWJsZVN0YXRlOiBQZXJzaXN0ZWRUYWJsZVN0YXRlLCBhc0RlZmF1bHQ/OiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLnNhdmVUYWJsZVNldHRpbmdzVG9Mb2NhbEFuZFN0b3JhZ2UodGFibGVJZCwgbmV3U3RhdGVOYW1lLCB0YWJsZVN0YXRlLCBhc0RlZmF1bHQpO1xyXG4gICAgdGhpcy5zZXRMb2NhbEN1cnJlbnRTdGF0ZSh7IHRhYmxlSWQ6IHRhYmxlSWQsIGN1cnJlbnRTdGF0ZUtleTogbmV3U3RhdGVOYW1lfSk7XHJcbiAgfVxyXG5cclxuICBzZXRMb2NhbEN1cnJlbnRTdGF0ZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHByb3BzOiB7IHRhYmxlSWQ6IHN0cmluZywgY3VycmVudFN0YXRlS2V5OiBzdHJpbmcgfSkgPT4ge1xyXG4gICAgY29uc3QgcHJvZmlsZSA9IHN0YXRlLmxvY2FsUHJvZmlsZXNbcHJvcHMudGFibGVJZF0gfHwgeyBzdGF0ZXM6IHt9fTtcclxuICAgIHByb2ZpbGUuY3VycmVudCA9IHByb3BzLmN1cnJlbnRTdGF0ZUtleTtcclxuICAgIHJldHVybiB7Li4uc3RhdGUsIGxvY2FsUHJvZmlsZXM6IHsuLi5zdGF0ZS5sb2NhbFByb2ZpbGVzLCBbcHJvcHMudGFibGVJZF06IHsuLi5wcm9maWxlfX19O1xyXG4gIH0pO1xyXG5cclxuICBzZXREZWZhdWx0SW5Mb2NhbEFuZFN0b3JhZ2UgPSAodGFibGVJZDogc3RyaW5nLCBuZXdEZWZhdWx0OiBzdHJpbmcpID0+IHtcclxuICAgIHRoaXMuc2V0RGVmYXVsdEluTG9jYWwoeyBkZWZhdWx0OiBuZXdEZWZhdWx0LCBrZXk6IHRhYmxlSWQgfSk7XHJcbiAgICB0aGlzLnNldERlZmF1bHRJblN0b3JhZ2UodGFibGVJZCwgbmV3RGVmYXVsdCk7XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0SW5Mb2NhbCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHByb3BzOiB7IGtleTogc3RyaW5nLCBkZWZhdWx0OiBzdHJpbmcgfSkgPT4ge1xyXG4gICAgaWYoc3RhdGUubG9jYWxQcm9maWxlc1twcm9wcy5rZXldPy5zdGF0ZXNbcHJvcHMuZGVmYXVsdF0pIHtcclxuICAgICAgcmV0dXJuICh7Li4uc3RhdGUsIGxvY2FsUHJvZmlsZXM6IHsuLi5zdGF0ZS5sb2NhbFByb2ZpbGVzLCBbcHJvcHMua2V5XTogey4uLnN0YXRlLmxvY2FsUHJvZmlsZXNbcHJvcHMua2V5XSwgZGVmYXVsdDogcHJvcHMuZGVmYXVsdH0gfSB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBzdGF0ZTtcclxuICB9KTtcclxuICBcclxuICB1bnNldERlZmF1bHRGcm9tTG9jYWxBbmRTdG9yYWdlID0gKHRhYmxlSWQ6IHN0cmluZykgPT4ge1xyXG4gICAgdGhpcy51bnNldERlZmF1bHRGcm9tTG9jYWwodGFibGVJZCk7XHJcbiAgICB0aGlzLnVuc2V0RGVmYXVsdEZyb21TdG9yYWdlKHRhYmxlSWQpO1xyXG4gIH1cclxuXHJcbiAgdW5zZXREZWZhdWx0RnJvbUxvY2FsID0gKHRhYmxlSWQ6IHN0cmluZykgPT4ge1xyXG4gICAgdGhpcy5wYXRjaFN0YXRlKHRhYmxlcyA9PiB7XHJcbiAgICAgIGNvbnN0IHByb2ZpbGUgPSB7IC4uLnRhYmxlcy5sb2NhbFByb2ZpbGVzW3RhYmxlSWRdIH07XHJcbiAgICAgIGlmKHByb2ZpbGUpIHtcclxuICAgICAgICBkZWxldGUgcHJvZmlsZS5kZWZhdWx0O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB7IC4uLnRhYmxlcywgbG9jYWxQcm9maWxlczogeyAuLi50YWJsZXMubG9jYWxQcm9maWxlcywgW3RhYmxlSWRdOiBwcm9maWxlIH0gfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdW5zZXREZWZhdWx0RnJvbVN0b3JhZ2UgPSAodGFibGVJZDogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCBnbG9iYWxTYXZlZFN0YXRlOiBHbG9iYWxTdG9yYWdlU3RhdGUgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdnbG9iYWwtc3RhdGUtc3RvcmFnZScpID8/IEpTT04uc3RyaW5naWZ5KGRlZmF1bHRTdG9yYWdlU3RhdGUpICk7XHJcbiAgICBpZihnbG9iYWxTYXZlZFN0YXRlLmxvY2FsUHJvZmlsZXNbdGFibGVJZF0pIHtcclxuICAgICAgZGVsZXRlIGdsb2JhbFNhdmVkU3RhdGUubG9jYWxQcm9maWxlc1t0YWJsZUlkXS5kZWZhdWx0O1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZ2xvYmFsLXN0YXRlLXN0b3JhZ2UnLCBKU09OLnN0cmluZ2lmeSggZ2xvYmFsU2F2ZWRTdGF0ZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RGVmYXVsdEluU3RvcmFnZSA9ICh0YWJsZUlkOiBzdHJpbmcsIHN0YXRlTmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCB0YWJsZVByb2ZpbGUgPSB0aGlzLiRzZWxlY3RMb2NhbFRhYmxlUHJvZmlsZSh0YWJsZUlkKSgpO1xyXG4gICAgY29uc3QgZ2xvYmFsU2F2ZWRTdGF0ZTogR2xvYmFsU3RvcmFnZVN0YXRlID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZ2xvYmFsLXN0YXRlLXN0b3JhZ2UnKSA/PyBKU09OLnN0cmluZ2lmeShkZWZhdWx0U3RvcmFnZVN0YXRlKSApO1xyXG4gICAgbGV0IHNhdmVkUHJvZmlsZSA9IGdsb2JhbFNhdmVkU3RhdGUubG9jYWxQcm9maWxlc1tzdGF0ZU5hbWVdO1xyXG4gICAgaWYoIXNhdmVkUHJvZmlsZT8uc3RhdGVzKSB7XHJcbiAgICAgIHNhdmVkUHJvZmlsZSA9ICB7IGRlZmF1bHQ6IHN0YXRlTmFtZSwgc3RhdGVzIDogdGFibGVQcm9maWxlIS5zdGF0ZXMgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNhdmVkUHJvZmlsZS5kZWZhdWx0ID0gc3RhdGVOYW1lO1xyXG4gICAgfVxyXG4gICAgZ2xvYmFsU2F2ZWRTdGF0ZS5sb2NhbFByb2ZpbGVzW3RhYmxlSWRdID0gc2F2ZWRQcm9maWxlO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2dsb2JhbC1zdGF0ZS1zdG9yYWdlJywgSlNPTi5zdHJpbmdpZnkoIGdsb2JhbFNhdmVkU3RhdGUpKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUxvY2FsUHJvZmlsZXNTdGF0ZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHByb3BzOiB7IGtleTogc3RyaW5nLCBzdGF0ZUtleTogc3RyaW5nIH0pID0+IHtcclxuICAgIGxldCBwcm9maWxlID0gc3RhdGUubG9jYWxQcm9maWxlc1twcm9wcy5rZXldO1xyXG4gICAgaWYocHJvZmlsZSkge1xyXG4gICAgICBjb25zdCBjdXJyZW50ID0gcHJvZmlsZS5jdXJyZW50ID09PSBwcm9wcy5zdGF0ZUtleSA/IHByb2ZpbGUuZGVmYXVsdCA6IHByb2ZpbGUuY3VycmVudDtcclxuICAgICAgcHJvZmlsZSA9IHsuLi5wcm9maWxlLGN1cnJlbnQsIHN0YXRlczogeyAuLi5wcm9maWxlLnN0YXRlc319O1xyXG4gICAgICBkZWxldGUgcHJvZmlsZS5zdGF0ZXNbcHJvcHMuc3RhdGVLZXldO1xyXG4gICAgICBpZihjdXJyZW50ID09PSBwcm9wcy5zdGF0ZUtleSkge1xyXG4gICAgICAgIHByb2ZpbGUuY3VycmVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gey4uLnN0YXRlLCBsb2NhbFByb2ZpbGVzOiB7Li4uc3RhdGUubG9jYWxQcm9maWxlcywgW3Byb3BzLmtleV06IHByb2ZpbGV9IH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gc3RhdGU7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIGRlbGV0ZVByb2ZpbGVGcm9tTG9jYWxBbmRTdG9yYWdlID0gKGtleTogc3RyaW5nLCBzdGF0ZUtleTogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCBnbG9iYWxTYXZlZFN0YXRlOiBHbG9iYWxTdG9yYWdlU3RhdGUgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdnbG9iYWwtc3RhdGUtc3RvcmFnZScpID8/IEpTT04uc3RyaW5naWZ5KGRlZmF1bHRTdG9yYWdlU3RhdGUpICk7XHJcbiAgICBpZighZ2xvYmFsU2F2ZWRTdGF0ZS5sb2NhbFByb2ZpbGVzW2tleV0pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGVsZXRlIChnbG9iYWxTYXZlZFN0YXRlLmxvY2FsUHJvZmlsZXNba2V5XS5zdGF0ZXMgPz8ge30pW3N0YXRlS2V5XTtcclxuICAgIH1cclxuICAgIGlmKGdsb2JhbFNhdmVkU3RhdGUubG9jYWxQcm9maWxlc1trZXldLmRlZmF1bHQgPT09IHN0YXRlS2V5KSB7XHJcbiAgICAgIGdsb2JhbFNhdmVkU3RhdGUubG9jYWxQcm9maWxlc1trZXldLmRlZmF1bHQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZ2xvYmFsLXN0YXRlLXN0b3JhZ2UnLCBKU09OLnN0cmluZ2lmeSggZ2xvYmFsU2F2ZWRTdGF0ZSkpO1xyXG4gICAgdGhpcy5kZWxldGVMb2NhbFByb2ZpbGVzU3RhdGUoeyBrZXksIHN0YXRlS2V5IH0pXHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBsb2FkR2xvYmFsU3RvcmFnZVN0YXRlKCkgOiBHbG9iYWxTdG9yYWdlU3RhdGUgfCB2b2lkIHtcclxuICBjb25zdCBzdG9yYWdlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2dsb2JhbC1zdGF0ZS1zdG9yYWdlJyk7XHJcbiAgXHJcbiAgaWYoc3RvcmFnZSkge1xyXG4gICAgY29uc3QgczogR2xvYmFsU3RvcmFnZVN0YXRlID0gKEpTT04ucGFyc2Uoc3RvcmFnZSkgYXMgUGVyc2lzdGVkR2xvYmFsU3RvcmFnZVNhdGUpO1xyXG4gICAgcy5sb2NhbFByb2ZpbGVzID8/PSB7fTtcclxuICAgIGZvcihjb25zdCBrZXkgaW4gcy5sb2NhbFByb2ZpbGVzKXtcclxuICAgICAgY29uc3QgcHJvZmlsZSA9IHMubG9jYWxQcm9maWxlc1trZXldO1xyXG4gICAgICBzLmxvY2FsUHJvZmlsZXNba2V5XSA9IHsgLi4ucHJvZmlsZSwgY3VycmVudDogcHJvZmlsZS5kZWZhdWx0IH0gYXMgUHJvZmlsZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHsuLi5kZWZhdWx0U3RvcmFnZVN0YXRlLCAuLi5zfTtcclxuICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBQZXJzaXN0ZWRQcm9maWxlIHtcclxuICBzdGF0ZXM6IERpY3Rpb25hcnk8UGVyc2lzdGVkVGFibGVTdGF0ZT47XHJcbiAgZGVmYXVsdD86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGUgZXh0ZW5kcyBQZXJzaXN0ZWRQcm9maWxlIHtcclxuICBjdXJyZW50Pzogc3RyaW5nO1xyXG4gIGxvY2FsU2F2ZWRTdGF0ZT86IFBlcnNpc3RlZFRhYmxlU3RhdGU7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR2xvYmFsU3RvcmFnZVN0YXRlIHtcclxuICBsb2NhbFByb2ZpbGVzOiBEaWN0aW9uYXJ5PFByb2ZpbGU+O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgUGVyc2lzdGVkR2xvYmFsU3RvcmFnZVNhdGUge1xyXG4gIGxvY2FsUHJvZmlsZXM6IERpY3Rpb25hcnk8UGVyc2lzdGVkUHJvZmlsZT47XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBkZWZhdWx0U3RvcmFnZVN0YXRlOiBHbG9iYWxTdG9yYWdlU3RhdGUgPSB7XHJcbiAgbG9jYWxQcm9maWxlczoge31cclxufSJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { sumBy } from 'lodash';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ColumnTotalPipe {
|
|
5
|
+
transform(data, metaData) {
|
|
6
|
+
const dataToCalculate = data.filter(d => !d.isGroupHeader);
|
|
7
|
+
switch (metaData.additional.footer.type) {
|
|
8
|
+
case 'sum':
|
|
9
|
+
return sumBy(dataToCalculate, metaData.key);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ColumnTotalPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
13
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: ColumnTotalPipe, isStandalone: true, name: "columnTotal" });
|
|
14
|
+
}
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ColumnTotalPipe, decorators: [{
|
|
16
|
+
type: Pipe,
|
|
17
|
+
args: [{
|
|
18
|
+
name: 'columnTotal',
|
|
19
|
+
standalone: true
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXRvdGFsLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9waXBlcy9jb2x1bW4tdG90YWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sUUFBUSxDQUFDOztBQU03QixNQUFNLE9BQU8sZUFBZTtJQUMxQixTQUFTLENBQUMsSUFBVyxFQUFFLFFBQWtCO1FBQ3ZDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUMxRCxRQUFRLFFBQVEsQ0FBQyxVQUFXLENBQUMsTUFBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzFDLEtBQUssS0FBSztnQkFDVixPQUFPLEtBQUssQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO3VHQVBVLGVBQWU7cUdBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFKM0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsYUFBYTtvQkFDakIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZXRhRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7c3VtQnl9IGZyb20gJ2xvZGFzaCc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2NvbHVtblRvdGFsJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWVcclxuICB9KVxyXG5leHBvcnQgY2xhc3MgQ29sdW1uVG90YWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtKGRhdGE6IGFueVtdLCBtZXRhRGF0YTogTWV0YURhdGEpIHtcclxuICAgIGNvbnN0IGRhdGFUb0NhbGN1bGF0ZSA9IGRhdGEuZmlsdGVyKGQgPT4gIWQuaXNHcm91cEhlYWRlcilcclxuICAgIHN3aXRjaCAobWV0YURhdGEuYWRkaXRpb25hbCEuZm9vdGVyIS50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ3N1bSc6XHJcbiAgICAgIHJldHVybiBzdW1CeShkYXRhVG9DYWxjdWxhdGUsIG1ldGFEYXRhLmtleSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { FilterTypes } from '../enums/filterTypes';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class FormatFilterTypePipe {
|
|
5
|
+
transform(filterType, value) {
|
|
6
|
+
if (filterType === FilterTypes.IsNull) {
|
|
7
|
+
return value ? filterType : 'Is Not Blank';
|
|
8
|
+
}
|
|
9
|
+
return filterType;
|
|
10
|
+
}
|
|
11
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FormatFilterTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
12
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: FormatFilterTypePipe, isStandalone: true, name: "formatFilterType" });
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FormatFilterTypePipe, decorators: [{
|
|
15
|
+
type: Pipe,
|
|
16
|
+
args: [{ name: 'formatFilterType', standalone: true }]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWZpbHRlci10eXBlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9waXBlcy9mb3JtYXQtZmlsdGVyLXR5cGUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRy9ELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsU0FBUyxDQUFDLFVBQXNCLEVBQUUsS0FBVTtRQUMxQyxJQUFHLFVBQVUsS0FBSyxXQUFXLENBQUMsTUFBTSxFQUFDLENBQUM7WUFDcEMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFBO1FBQzVDLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO3VHQU5VLG9CQUFvQjtxR0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQURoQyxJQUFJO21CQUFDLEVBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZpbHRlclR5cGUsIEZpbHRlclR5cGVzIH0gZnJvbSAnLi4vZW51bXMvZmlsdGVyVHlwZXMnO1xyXG5cclxuQFBpcGUoe25hbWU6ICdmb3JtYXRGaWx0ZXJUeXBlJywgc3RhbmRhbG9uZTogdHJ1ZX0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtYXRGaWx0ZXJUeXBlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybShmaWx0ZXJUeXBlOiBGaWx0ZXJUeXBlLCB2YWx1ZTogYW55KXtcclxuICAgIGlmKGZpbHRlclR5cGUgPT09IEZpbHRlclR5cGVzLklzTnVsbCl7XHJcbiAgICAgIHJldHVybiB2YWx1ZSA/IGZpbHRlclR5cGUgOiAnSXMgTm90IEJsYW5rJ1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpbHRlclR5cGU7XHJcbiAgfVxyXG59Il19
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Pipe, inject } from '@angular/core';
|
|
2
|
+
import { TableStore } from '../classes/table-store';
|
|
3
|
+
import { map } from 'rxjs/operators';
|
|
4
|
+
import { FieldType } from '../interfaces/report-def';
|
|
5
|
+
import { DatePipe } from '@angular/common';
|
|
6
|
+
import { FilterTypes } from '../enums/filterTypes';
|
|
7
|
+
import { spaceCase } from '../../utilities/pipes/space-case.pipes';
|
|
8
|
+
import { DateTimeFilterFuncs } from '../functions/date-filter-function';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class FormatFilterValuePipe {
|
|
11
|
+
tableState = inject(TableStore);
|
|
12
|
+
datePipe = inject(DatePipe);
|
|
13
|
+
transform(value, key, filterType) {
|
|
14
|
+
return this.tableState.getMetaData$(key).pipe(map(md => {
|
|
15
|
+
if (filterType === FilterTypes.IsNull) {
|
|
16
|
+
return '';
|
|
17
|
+
}
|
|
18
|
+
if (value && (filterType === FilterTypes.In)) {
|
|
19
|
+
if (md.fieldType === FieldType.Enum) {
|
|
20
|
+
return value.map((v) => spaceCase(md.additional.enumMap[v])).join(', ') ?? value;
|
|
21
|
+
}
|
|
22
|
+
return value.join(', ') ?? value;
|
|
23
|
+
}
|
|
24
|
+
if (filterType === FilterTypes.NumberBetween) {
|
|
25
|
+
return value.Start + ' - ' + value.End;
|
|
26
|
+
}
|
|
27
|
+
if (md.fieldType === FieldType.Date) {
|
|
28
|
+
return this.datePipe.transform(value, 'MM/dd/yy');
|
|
29
|
+
}
|
|
30
|
+
if (md.fieldType === FieldType.DateTime) {
|
|
31
|
+
return !!DateTimeFilterFuncs[filterType] ? this.datePipe.transform(value, 'short') : this.datePipe.transform(value, 'MM/dd/yy');
|
|
32
|
+
}
|
|
33
|
+
return value;
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FormatFilterValuePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
37
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: FormatFilterValuePipe, isStandalone: true, name: "formatFilterValue" });
|
|
38
|
+
}
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FormatFilterValuePipe, decorators: [{
|
|
40
|
+
type: Pipe,
|
|
41
|
+
args: [{ name: 'formatFilterValue', standalone: true }]
|
|
42
|
+
}] });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWZpbHRlci12YWx1ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvcGlwZXMvZm9ybWF0LWZpbHRlci12YWx1ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFcEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFJeEUsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hCLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFcEMsU0FBUyxDQUFDLEtBQVUsRUFBRSxHQUFXLEVBQUUsVUFBc0I7UUFDdkQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzNDLEdBQUcsQ0FBRSxFQUFFLENBQUMsRUFBRTtZQUNSLElBQUcsVUFBVSxLQUFLLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDckMsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsSUFBRyxLQUFLLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVyxDQUFDLEVBQUUsQ0FBRSxFQUFDLENBQUM7Z0JBQzVDLElBQUcsRUFBRSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ25DLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBRSxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxVQUFXLENBQUMsT0FBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDO2dCQUMzRixDQUFDO2dCQUNELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUM7WUFDbkMsQ0FBQztZQUNELElBQUcsVUFBVSxLQUFLLFdBQVcsQ0FBQyxhQUFhLEVBQUMsQ0FBQztnQkFDM0MsT0FBTyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQ3pDLENBQUM7WUFDRCxJQUFHLEVBQUUsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLElBQUksRUFBQyxDQUFDO2dCQUNsQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNwRCxDQUFDO1lBQ0QsSUFBRyxFQUFFLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxRQUFRLEVBQUMsQ0FBQztnQkFDdEMsT0FBTyxDQUFDLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ2xJLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQTtRQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO3VHQTVCVSxxQkFBcUI7cUdBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFEakMsSUFBSTttQkFBQyxFQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRmlsdGVyVHlwZSwgRmlsdGVyVHlwZXMgfSBmcm9tICcuLi9lbnVtcy9maWx0ZXJUeXBlcyc7XHJcbmltcG9ydCB7IHNwYWNlQ2FzZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9waXBlcy9zcGFjZS1jYXNlLnBpcGVzJztcclxuaW1wb3J0IHsgRGF0ZVRpbWVGaWx0ZXJGdW5jcyB9IGZyb20gJy4uL2Z1bmN0aW9ucy9kYXRlLWZpbHRlci1mdW5jdGlvbic7XHJcblxyXG5cclxuQFBpcGUoe25hbWU6ICdmb3JtYXRGaWx0ZXJWYWx1ZScsIHN0YW5kYWxvbmU6IHRydWV9KVxyXG5leHBvcnQgY2xhc3MgRm9ybWF0RmlsdGVyVmFsdWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdGFibGVTdGF0ZSA9IGluamVjdChUYWJsZVN0b3JlKTtcclxuICBwcml2YXRlIGRhdGVQaXBlID0gaW5qZWN0KERhdGVQaXBlKTtcclxuXHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIGtleTogc3RyaW5nLCBmaWx0ZXJUeXBlOiBGaWx0ZXJUeXBlKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlU3RhdGUuZ2V0TWV0YURhdGEkKGtleSkucGlwZShcclxuICAgICAgbWFwKCBtZCA9PiB7XHJcbiAgICAgICAgaWYoZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZXMuSXNOdWxsKSB7XHJcbiAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHZhbHVlICYmIChmaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlcy5JbiApKXtcclxuICAgICAgICAgIGlmKG1kLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkVudW0pIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcCggKHY6IGFueSkgPT4gc3BhY2VDYXNlKG1kLmFkZGl0aW9uYWwhLmVudW1NYXAhW3ZdKSkuam9pbignLCAnKSA/PyB2YWx1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB2YWx1ZS5qb2luKCcsICcpID8/IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihmaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlcy5OdW1iZXJCZXR3ZWVuKXtcclxuICAgICAgICAgIHJldHVybiB2YWx1ZS5TdGFydCArICcgLSAnICsgdmFsdWUuRW5kO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihtZC5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5EYXRlKXtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgJ01NL2RkL3l5Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKG1kLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkRhdGVUaW1lKXtcclxuICAgICAgICAgIHJldHVybiAhIURhdGVUaW1lRmlsdGVyRnVuY3NbZmlsdGVyVHlwZV0gPyB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgJ3Nob3J0JykgOiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgJ01NL2RkL3l5Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB2YWx1ZVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Pipe, inject } from '@angular/core';
|
|
2
|
+
import { TableStore } from '../classes/table-store';
|
|
3
|
+
import { spaceCase } from '../../utilities/pipes/space-case.pipes';
|
|
4
|
+
import { map } from 'rxjs/operators';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class KeyDisplayPipe {
|
|
7
|
+
tableState = inject(TableStore);
|
|
8
|
+
transform(key) {
|
|
9
|
+
return this.tableState.getMetaData$(key).pipe(map(metaData => metaData.displayName || spaceCase(key)));
|
|
10
|
+
}
|
|
11
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: KeyDisplayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
12
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: KeyDisplayPipe, isStandalone: true, name: "keyDisplay" });
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: KeyDisplayPipe, decorators: [{
|
|
15
|
+
type: Pipe,
|
|
16
|
+
args: [{ name: 'keyDisplay', standalone: true }]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LWRpc3BsYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9waXBlcy9rZXktZGlzcGxheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUVuRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBR3JDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFaEMsU0FBUyxDQUFDLEdBQVc7UUFDbkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzNDLEdBQUcsQ0FBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ3pELENBQUM7SUFDSixDQUFDO3VHQVBVLGNBQWM7cUdBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEMUIsSUFBSTttQkFBQyxFQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XHJcbmltcG9ydCB7IHNwYWNlQ2FzZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9waXBlcy9zcGFjZS1jYXNlLnBpcGVzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5AUGlwZSh7bmFtZTogJ2tleURpc3BsYXknLCBzdGFuZGFsb25lOiB0cnVlfSlcclxuZXhwb3J0IGNsYXNzIEtleURpc3BsYXlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRhYmxlU3RhdGUgPSBpbmplY3QoVGFibGVTdG9yZSk7XG5cclxuICB0cmFuc2Zvcm0oa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGVTdGF0ZS5nZXRNZXRhRGF0YSQoa2V5KS5waXBlKFxyXG4gICAgICBtYXAoIG1ldGFEYXRhID0+IG1ldGFEYXRhLmRpc3BsYXlOYW1lIHx8IHNwYWNlQ2FzZShrZXkpKVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { DatePipe } from '@angular/common';
|
|
2
|
+
import { Injectable, inject } from '@angular/core';
|
|
3
|
+
import { TableStore } from '../classes/table-store';
|
|
4
|
+
import { TableBuilderConfigToken } from '../classes/TableBuilderConfig';
|
|
5
|
+
import { downloadData } from '../functions/download-data';
|
|
6
|
+
import { ArrayStyle, FieldType } from '../interfaces/report-def';
|
|
7
|
+
import { isPipe } from './transform-creator';
|
|
8
|
+
import { get } from 'lodash';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class ExportToCsvService {
|
|
11
|
+
state = inject(TableStore);
|
|
12
|
+
config = inject(TableBuilderConfigToken);
|
|
13
|
+
datePipe = inject(DatePipe);
|
|
14
|
+
exportToCsv = (data) => {
|
|
15
|
+
const hiddenKeys = this.state.selectSignal(s => s.hiddenKeys)();
|
|
16
|
+
const meta = this.state.$metaDataArray().filter(md => !md.noExport && !hiddenKeys.includes(md.key));
|
|
17
|
+
const csv = this.csvData(data, meta);
|
|
18
|
+
downloadData(csv, 'export.csv', 'text/csv');
|
|
19
|
+
};
|
|
20
|
+
csvData = (data, metaData) => {
|
|
21
|
+
const res = data.map(row => metaData.map(meta => this.metaToField(meta, row)).join(','));
|
|
22
|
+
res.unshift(metaData.map(meta => meta.displayName || meta.key).join(','));
|
|
23
|
+
return res.join('\n');
|
|
24
|
+
};
|
|
25
|
+
metaToField = (meta, row) => {
|
|
26
|
+
let val = get(row, meta.key);
|
|
27
|
+
if (val == null && !meta.transform)
|
|
28
|
+
return val;
|
|
29
|
+
if (meta.transform && meta.fieldType !== FieldType.Expression) {
|
|
30
|
+
const transform = meta.transform;
|
|
31
|
+
return isPipe(transform) ? transform.transform(val) : transform(val);
|
|
32
|
+
}
|
|
33
|
+
if (meta.map) {
|
|
34
|
+
return meta.map(row);
|
|
35
|
+
}
|
|
36
|
+
switch (meta.fieldType) {
|
|
37
|
+
case FieldType.Date:
|
|
38
|
+
const dateFormat = meta.additional?.export?.dateFormat || this.config?.export?.dateFormat || meta.additional?.dateFormat;
|
|
39
|
+
val = this.transform(val, dateFormat);
|
|
40
|
+
break;
|
|
41
|
+
case FieldType.DateTime:
|
|
42
|
+
const dateTimeFormat = meta.additional?.export?.dateTimeFormat || this.config?.export?.dateTimeFormat || meta.additional?.dateTimeOptions?.format;
|
|
43
|
+
val = this.transform(val, dateTimeFormat);
|
|
44
|
+
break;
|
|
45
|
+
case FieldType.String:
|
|
46
|
+
const prepend = meta.additional?.export?.prepend || this.config?.export?.prepend || '';
|
|
47
|
+
val = prepend + val;
|
|
48
|
+
break;
|
|
49
|
+
case FieldType.Array:
|
|
50
|
+
const additional = meta.additional;
|
|
51
|
+
val = val.slice(0, additional.limit).join(additional.arrayStyle === ArrayStyle.NewLine ? '\n' : ', ');
|
|
52
|
+
break;
|
|
53
|
+
case FieldType.Expression:
|
|
54
|
+
val = meta.transform(row);
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
if (typeof val === 'string' && (val.includes(',') || val.includes('"') || val.includes('\n'))) {
|
|
58
|
+
val = val.replaceAll('"', '""');
|
|
59
|
+
val = '"' + val + '"';
|
|
60
|
+
}
|
|
61
|
+
return val;
|
|
62
|
+
};
|
|
63
|
+
transform(val, dateFormat) {
|
|
64
|
+
if (this.config.transformers && this.config.transformers[FieldType.Date]) {
|
|
65
|
+
return this.config.transformers[FieldType.Date](val);
|
|
66
|
+
}
|
|
67
|
+
return this.datePipe.transform(val, dateFormat);
|
|
68
|
+
}
|
|
69
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ExportToCsvService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
70
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ExportToCsvService });
|
|
71
|
+
}
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ExportToCsvService, decorators: [{
|
|
73
|
+
type: Injectable
|
|
74
|
+
}] });
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LXRvLWNzdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvc2VydmljZXMvZXhwb3J0LXRvLWNzdi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUluRCxPQUFPLEVBQXNCLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQW1CLFVBQVUsRUFBRSxTQUFTLEVBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUU1RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7QUFHN0IsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25CLE1BQU0sR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUN6QyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBR3BDLFdBQVcsR0FBRyxDQUFDLElBQVMsRUFBRSxFQUFFO1FBQzFCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDaEUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQyxN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QUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDbEQsQ0FBQzt1R0E5RFUsa0JBQWtCOzJHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpcnN0LCBtYXAgIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0fSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgb3JkZXJTdGF0ZU1ldGFEYXRhLCBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XHJcbmltcG9ydCB7IFRhYmxlQnVpbGRlckNvbmZpZ1Rva2VuIH0gZnJvbSAnLi4vY2xhc3Nlcy9UYWJsZUJ1aWxkZXJDb25maWcnO1xyXG5pbXBvcnQgeyBkb3dubG9hZERhdGEgfSBmcm9tICcuLi9mdW5jdGlvbnMvZG93bmxvYWQtZGF0YSc7XHJcbmltcG9ydCB7IEFycmF5QWRkaXRpb25hbCwgQXJyYXlTdHlsZSwgRmllbGRUeXBlLCBNZXRhRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7IFRhYmxlU3RhdGUgfSBmcm9tICcuLi9jbGFzc2VzL1RhYmxlU3RhdGUnO1xyXG5pbXBvcnQgeyBpc1BpcGUgfSBmcm9tICcuL3RyYW5zZm9ybS1jcmVhdG9yJztcclxuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEV4cG9ydFRvQ3N2U2VydmljZTxUPiB7XHJcbiAgc3RhdGUgPSBpbmplY3QoVGFibGVTdG9yZSk7XHJcbiAgcHJpdmF0ZSBjb25maWcgPSBpbmplY3QoVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4pO1xyXG4gIHByaXZhdGUgZGF0ZVBpcGUgPSBpbmplY3QoRGF0ZVBpcGUpO1xyXG5cclxuXHJcbiAgZXhwb3J0VG9Dc3YgPSAoZGF0YTogVFtdKSA9PiB7XHJcbiAgICBjb25zdCBoaWRkZW5LZXlzID0gdGhpcy5zdGF0ZS5zZWxlY3RTaWduYWwocyA9PiBzLmhpZGRlbktleXMpKCk7XHJcbiAgICBjb25zdCBtZXRhID0gdGhpcy5zdGF0ZS4kbWV0YURhdGFBcnJheSgpLmZpbHRlcihtZCA9PiAhbWQubm9FeHBvcnQgJiYgIWhpZGRlbktleXMuaW5jbHVkZXMobWQua2V5KSk7XHJcbiAgICBjb25zdCBjc3YgPSB0aGlzLmNzdkRhdGEoZGF0YSwgbWV0YSk7XHJcbiAgICBkb3dubG9hZERhdGEoY3N2LCdleHBvcnQuY3N2JywgJ3RleHQvY3N2JykgO1xyXG4gIH1cclxuXHJcbiAgY3N2RGF0YSA9IChkYXRhOkFycmF5PFQ+LCBtZXRhRGF0YTogTWV0YURhdGE8VD5bXSkgPT4ge1xyXG4gICAgY29uc3QgcmVzID0gZGF0YS5tYXAocm93ID0+IG1ldGFEYXRhLm1hcChtZXRhID0+IHRoaXMubWV0YVRvRmllbGQobWV0YSwgcm93KSkuam9pbignLCcpKTtcclxuICAgIHJlcy51bnNoaWZ0KG1ldGFEYXRhLm1hcChtZXRhID0+IG1ldGEuZGlzcGxheU5hbWUgfHwgbWV0YS5rZXkpLmpvaW4oJywnKSk7XHJcbiAgICByZXR1cm4gcmVzLmpvaW4oJ1xcbicpO1xyXG4gIH1cclxuXHJcbiAgbWV0YVRvRmllbGQgPSAobWV0YTogTWV0YURhdGE8VD4sIHJvdzogVCkgPT4ge1xyXG4gICAgbGV0IHZhbDogYW55ID0gZ2V0KCByb3csbWV0YS5rZXkpO1xyXG4gICAgaWYgKHZhbCA9PSBudWxsICYmICFtZXRhLnRyYW5zZm9ybSkgcmV0dXJuIHZhbFxyXG4gICAgaWYobWV0YS50cmFuc2Zvcm0gJiYgbWV0YS5maWVsZFR5cGUgIT09IEZpZWxkVHlwZS5FeHByZXNzaW9uKXtcclxuICAgICAgY29uc3QgdHJhbnNmb3JtID0gbWV0YS50cmFuc2Zvcm0gYXMgYW55O1xyXG4gICAgICByZXR1cm4gIGlzUGlwZSh0cmFuc2Zvcm0pID8gdHJhbnNmb3JtLnRyYW5zZm9ybSh2YWwpIDogdHJhbnNmb3JtKHZhbCk7XHJcbiAgICB9XHJcbiAgICBpZihtZXRhLm1hcCl7XHJcbiAgICAgIHJldHVybiBtZXRhLm1hcChyb3cpO1xyXG4gICAgfVxyXG4gICAgc3dpdGNoIChtZXRhLmZpZWxkVHlwZSkge1xyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5EYXRlOlxyXG4gICAgICAgIGNvbnN0IGRhdGVGb3JtYXQgPSBtZXRhLmFkZGl0aW9uYWw/LmV4cG9ydD8uZGF0ZUZvcm1hdCB8fCB0aGlzLmNvbmZpZz8uZXhwb3J0Py5kYXRlRm9ybWF0IHx8IG1ldGEuYWRkaXRpb25hbD8uZGF0ZUZvcm1hdDtcclxuICAgICAgICB2YWwgPSB0aGlzLnRyYW5zZm9ybSh2YWwsIGRhdGVGb3JtYXQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5EYXRlVGltZTpcclxuICAgICAgICBjb25zdCBkYXRlVGltZUZvcm1hdCA9IG1ldGEuYWRkaXRpb25hbD8uZXhwb3J0Py5kYXRlVGltZUZvcm1hdCB8fCB0aGlzLmNvbmZpZz8uZXhwb3J0Py5kYXRlVGltZUZvcm1hdCB8fCBtZXRhLmFkZGl0aW9uYWw/LmRhdGVUaW1lT3B0aW9ucz8uZm9ybWF0O1xyXG4gICAgICAgIHZhbCA9IHRoaXMudHJhbnNmb3JtKHZhbCwgZGF0ZVRpbWVGb3JtYXQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5TdHJpbmc6XHJcbiAgICAgICAgY29uc3QgcHJlcGVuZDogc3RyaW5nID0gbWV0YS5hZGRpdGlvbmFsPy5leHBvcnQ/LnByZXBlbmQgfHwgdGhpcy5jb25maWc/LmV4cG9ydD8ucHJlcGVuZCB8fCAnJztcclxuICAgICAgICB2YWwgPSBwcmVwZW5kICsgdmFsO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5BcnJheTpcclxuICAgICAgICBjb25zdCBhZGRpdGlvbmFsID0gbWV0YS5hZGRpdGlvbmFsIGFzIEFycmF5QWRkaXRpb25hbDtcclxuICAgICAgICB2YWwgPSAodmFsIGFzIEFycmF5PHN0cmluZz4pLnNsaWNlKDAsYWRkaXRpb25hbC5saW1pdCkuam9pbihhZGRpdGlvbmFsLmFycmF5U3R5bGUgPT09IEFycmF5U3R5bGUuTmV3TGluZSA/ICdcXG4nIDogJywgJyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkV4cHJlc3Npb246XHJcbiAgICAgICAgdmFsID0gKG1ldGEudHJhbnNmb3JtIGFzIGFueSkocm93KTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyAmJiAodmFsLmluY2x1ZGVzKCcsJykgfHwgdmFsLmluY2x1ZGVzKCdcIicpIHx8IHZhbC5pbmNsdWRlcygnXFxuJykpKSB7XHJcbiAgICAgIHZhbCA9IHZhbC5yZXBsYWNlQWxsKCdcIicsICdcIlwiJyk7XHJcbiAgICAgIHZhbCA9ICdcIicgKyB2YWwgKyAnXCInO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJhbnNmb3JtKHZhbDogYW55LCBkYXRlRm9ybWF0OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmNvbmZpZy50cmFuc2Zvcm1lcnMgJiYgdGhpcy5jb25maWcudHJhbnNmb3JtZXJzW0ZpZWxkVHlwZS5EYXRlXSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25maWcudHJhbnNmb3JtZXJzW0ZpZWxkVHlwZS5EYXRlXSEodmFsKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh2YWwsIGRhdGVGb3JtYXQpO1xyXG4gIH1cclxufVxyXG4iXX0=
|