@onecx/angular-accelerator 4.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/assets/i18n/de.json +130 -0
- package/assets/i18n/en.json +130 -0
- package/assets/images/placeholder.png +0 -0
- package/assets/styles.scss +8 -0
- package/esm2020/index.mjs +49 -0
- package/esm2020/lib/angular-accelerator-primeng.module.mjs +83 -0
- package/esm2020/lib/angular-accelerator.module.mjs +209 -0
- package/esm2020/lib/components/column-group-selection/column-group-selection.component.mjs +72 -0
- package/esm2020/lib/components/custom-group-column-selector/custom-group-column-selector.component.mjs +108 -0
- package/esm2020/lib/components/data-layout-selection/data-layout-selection.component.mjs +45 -0
- package/esm2020/lib/components/data-list-grid/data-list-grid.component.mjs +358 -0
- package/esm2020/lib/components/data-list-grid-sorting/data-list-grid-sorting.component.mjs +92 -0
- package/esm2020/lib/components/data-sort-base/data-sort-base.mjs +110 -0
- package/esm2020/lib/components/data-table/data-table.component.mjs +350 -0
- package/esm2020/lib/components/data-view/data-view.component.mjs +355 -0
- package/esm2020/lib/components/diagram/diagram.component.mjs +136 -0
- package/esm2020/lib/components/group-by-count-diagram/group-by-count-diagram.component.mjs +109 -0
- package/esm2020/lib/components/interactive-data-view/interactive-data-view.component.mjs +342 -0
- package/esm2020/lib/components/page-header/page-header.component.mjs +189 -0
- package/esm2020/lib/components/search-config/search-config.component.mjs +34 -0
- package/esm2020/lib/components/search-header/search-header.component.mjs +136 -0
- package/esm2020/lib/directives/if-breakpoint.directive.mjs +39 -0
- package/esm2020/lib/directives/if-permission.directive.mjs +53 -0
- package/esm2020/lib/functions/flatten-object.mjs +20 -0
- package/esm2020/lib/model/breadcrumb-menu-item.model.mjs +2 -0
- package/esm2020/lib/model/column-type.model.mjs +9 -0
- package/esm2020/lib/model/data-action.mjs +2 -0
- package/esm2020/lib/model/data-column-name-id.model.mjs +2 -0
- package/esm2020/lib/model/data-sort-direction.mjs +2 -0
- package/esm2020/lib/model/data-table-column.model.mjs +2 -0
- package/esm2020/lib/model/diagram-column.mjs +2 -0
- package/esm2020/lib/model/diagram-data.mjs +2 -0
- package/esm2020/lib/model/diagram-type.mjs +2 -0
- package/esm2020/lib/model/search-config-info.mjs +2 -0
- package/esm2020/lib/pipes/dynamic.pipe.mjs +58 -0
- package/esm2020/lib/pipes/ocxtimeago.pipe.mjs +15 -0
- package/esm2020/lib/services/breadcrumb.service.mjs +79 -0
- package/esm2020/lib/services/translation-cache.service.mjs +54 -0
- package/esm2020/lib/utils/async-translate-loader.utils.mjs +12 -0
- package/esm2020/lib/utils/caching-translate-loader.utils.mjs +15 -0
- package/esm2020/lib/utils/colorutils.mjs +19 -0
- package/esm2020/lib/utils/create-translate-loader.utils.mjs +23 -0
- package/esm2020/lib/utils/dateutils.mjs +32 -0
- package/esm2020/lib/utils/objectutils.mjs +30 -0
- package/esm2020/lib/utils/ocxtimeagointl.utils.mjs +34 -0
- package/esm2020/lib/utils/primeicon.utils.mjs +2 -0
- package/esm2020/lib/utils/translate.combined.loader.mjs +36 -0
- package/esm2020/onecx-angular-accelerator.mjs +5 -0
- package/esm2020/testing/column-group-selection.harness.mjs +10 -0
- package/esm2020/testing/custom-group-column-selector.harness.mjs +31 -0
- package/esm2020/testing/data-layout-selection.harness.mjs +33 -0
- package/esm2020/testing/data-list-grid.harness.mjs +47 -0
- package/esm2020/testing/data-table.harness.mjs +57 -0
- package/esm2020/testing/data-view.harness.mjs +12 -0
- package/esm2020/testing/default-grid-item.harness.mjs +24 -0
- package/esm2020/testing/default-list-item.harness.mjs +24 -0
- package/esm2020/testing/diagram.harness.mjs +22 -0
- package/esm2020/testing/index.mjs +17 -0
- package/esm2020/testing/interactive-data-view.harness.mjs +19 -0
- package/esm2020/testing/more-actions-menu-button.harness.mjs +35 -0
- package/esm2020/testing/onecx-angular-accelerator-testing.mjs +5 -0
- package/esm2020/testing/page-header.harness.mjs +36 -0
- package/esm2020/testing/search-config.harness.mjs +10 -0
- package/fesm2015/onecx-angular-accelerator-testing.mjs +430 -0
- package/fesm2015/onecx-angular-accelerator-testing.mjs.map +1 -0
- package/fesm2015/onecx-angular-accelerator.mjs +3118 -0
- package/fesm2015/onecx-angular-accelerator.mjs.map +1 -0
- package/fesm2020/onecx-angular-accelerator-testing.mjs +338 -0
- package/fesm2020/onecx-angular-accelerator-testing.mjs.map +1 -0
- package/fesm2020/onecx-angular-accelerator.mjs +3085 -0
- package/fesm2020/onecx-angular-accelerator.mjs.map +1 -0
- package/index.d.ts +38 -0
- package/lib/angular-accelerator-primeng.module.d.ts +16 -0
- package/lib/angular-accelerator.module.d.ts +32 -0
- package/lib/components/column-group-selection/column-group-selection.component.d.ts +28 -0
- package/lib/components/custom-group-column-selector/custom-group-column-selector.component.d.ts +45 -0
- package/lib/components/data-layout-selection/data-layout-selection.component.d.ts +25 -0
- package/lib/components/data-list-grid/data-list-grid.component.d.ts +120 -0
- package/lib/components/data-list-grid-sorting/data-list-grid-sorting.component.d.ts +30 -0
- package/lib/components/data-sort-base/data-sort-base.d.ts +32 -0
- package/lib/components/data-table/data-table.component.d.ts +124 -0
- package/lib/components/data-view/data-view.component.d.ts +112 -0
- package/lib/components/diagram/diagram.component.d.ts +43 -0
- package/lib/components/group-by-count-diagram/group-by-count-diagram.component.d.ts +39 -0
- package/lib/components/interactive-data-view/interactive-data-view.component.d.ts +108 -0
- package/lib/components/page-header/page-header.component.d.ts +90 -0
- package/lib/components/search-config/search-config.component.d.ts +16 -0
- package/lib/components/search-header/search-header.component.d.ts +46 -0
- package/lib/directives/if-breakpoint.directive.d.ts +12 -0
- package/lib/directives/if-permission.directive.d.ts +18 -0
- package/lib/functions/flatten-object.d.ts +14 -0
- package/lib/model/breadcrumb-menu-item.model.d.ts +60 -0
- package/lib/model/column-type.model.d.ts +7 -0
- package/lib/model/data-action.d.ts +9 -0
- package/lib/model/data-column-name-id.model.d.ts +4 -0
- package/lib/model/data-sort-direction.d.ts +5 -0
- package/lib/model/data-table-column.model.d.ts +9 -0
- package/lib/model/diagram-column.d.ts +5 -0
- package/lib/model/diagram-data.d.ts +4 -0
- package/lib/model/diagram-type.d.ts +5 -0
- package/lib/model/search-config-info.d.ts +4 -0
- package/lib/pipes/dynamic.pipe.d.ts +13 -0
- package/lib/pipes/ocxtimeago.pipe.d.ts +6 -0
- package/lib/services/breadcrumb.service.d.ts +20 -0
- package/lib/services/translation-cache.service.d.ts +12 -0
- package/lib/utils/async-translate-loader.utils.d.ts +9 -0
- package/lib/utils/caching-translate-loader.utils.d.ts +13 -0
- package/lib/utils/colorutils.d.ts +12 -0
- package/lib/utils/create-translate-loader.utils.d.ts +5 -0
- package/lib/utils/dateutils.d.ts +9 -0
- package/lib/utils/objectutils.d.ts +4 -0
- package/lib/utils/ocxtimeagointl.utils.d.ts +9 -0
- package/lib/utils/primeicon.utils.d.ts +5 -0
- package/lib/utils/translate.combined.loader.d.ts +9 -0
- package/package.json +55 -0
- package/testing/column-group-selection.harness.d.ts +6 -0
- package/testing/custom-group-column-selector.harness.d.ts +14 -0
- package/testing/data-layout-selection.harness.d.ts +11 -0
- package/testing/data-list-grid.harness.d.ts +15 -0
- package/testing/data-table.harness.d.ts +17 -0
- package/testing/data-view.harness.d.ts +8 -0
- package/testing/default-grid-item.harness.d.ts +11 -0
- package/testing/default-list-item.harness.d.ts +12 -0
- package/testing/diagram.harness.d.ts +10 -0
- package/testing/index.d.ts +16 -0
- package/testing/interactive-data-view.harness.d.ts +15 -0
- package/testing/more-actions-menu-button.harness.d.ts +10 -0
- package/testing/page-header.harness.d.ts +13 -0
- package/testing/search-config.harness.d.ts +6 -0
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { CUSTOM_ELEMENTS_SCHEMA, LOCALE_ID, NgModule, importProvidersFrom } from '@angular/core';
|
|
3
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { RouterModule } from '@angular/router';
|
|
5
|
+
import { HttpClient } from '@angular/common/http';
|
|
6
|
+
import { MissingTranslationHandler, TranslateLoader, TranslateModule, } from '@ngx-translate/core';
|
|
7
|
+
import { TimeagoClock, TimeagoCustomFormatter, TimeagoDefaultClock, TimeagoFormatter, TimeagoIntl, TimeagoModule, } from 'ngx-timeago';
|
|
8
|
+
import { AppStateService, UserService } from '@onecx/angular-integration-interface';
|
|
9
|
+
import { AngularAcceleratorPrimeNgModule } from './angular-accelerator-primeng.module';
|
|
10
|
+
import { ColumnGroupSelectionComponent } from './components/column-group-selection/column-group-selection.component';
|
|
11
|
+
import { CustomGroupColumnSelectorComponent } from './components/custom-group-column-selector/custom-group-column-selector.component';
|
|
12
|
+
import { DataLayoutSelectionComponent } from './components/data-layout-selection/data-layout-selection.component';
|
|
13
|
+
import { DataListGridSortingComponent } from './components/data-list-grid-sorting/data-list-grid-sorting.component';
|
|
14
|
+
import { DataListGridComponent } from './components/data-list-grid/data-list-grid.component';
|
|
15
|
+
import { DataTableComponent } from './components/data-table/data-table.component';
|
|
16
|
+
import { DataViewComponent } from './components/data-view/data-view.component';
|
|
17
|
+
import { InteractiveDataViewComponent } from './components/interactive-data-view/interactive-data-view.component';
|
|
18
|
+
import { SearchConfigComponent } from './components/search-config/search-config.component';
|
|
19
|
+
import { PageHeaderComponent } from './components/page-header/page-header.component';
|
|
20
|
+
import { SearchHeaderComponent } from './components/search-header/search-header.component';
|
|
21
|
+
import { GroupByCountDiagramComponent } from './components/group-by-count-diagram/group-by-count-diagram.component';
|
|
22
|
+
import { DiagramComponent } from './components/diagram/diagram.component';
|
|
23
|
+
import { DynamicPipe } from './pipes/dynamic.pipe';
|
|
24
|
+
import { IfPermissionDirective } from './directives/if-permission.directive';
|
|
25
|
+
import { IfBreakpointDirective } from './directives/if-breakpoint.directive';
|
|
26
|
+
import { OcxTimeAgoPipe } from './pipes/ocxtimeago.pipe';
|
|
27
|
+
import { OcxTimeagoIntl } from './utils/ocxtimeagointl.utils';
|
|
28
|
+
import { createTranslateLoader } from './utils/create-translate-loader.utils';
|
|
29
|
+
import { TranslationCacheService } from './services/translation-cache.service';
|
|
30
|
+
import * as i0 from "@angular/core";
|
|
31
|
+
import * as i1 from "@ngx-translate/core";
|
|
32
|
+
export class AngularAcceleratorMissingTranslationHandler {
|
|
33
|
+
handle(params) {
|
|
34
|
+
console.log(`Missing translation for ${params.key}`, params);
|
|
35
|
+
return params.key;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export class AngularAcceleratorModule {
|
|
39
|
+
}
|
|
40
|
+
AngularAcceleratorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AngularAcceleratorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
41
|
+
AngularAcceleratorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: AngularAcceleratorModule, declarations: [ColumnGroupSelectionComponent,
|
|
42
|
+
CustomGroupColumnSelectorComponent,
|
|
43
|
+
DataLayoutSelectionComponent,
|
|
44
|
+
DataListGridSortingComponent,
|
|
45
|
+
DataListGridComponent,
|
|
46
|
+
DataTableComponent,
|
|
47
|
+
DataViewComponent,
|
|
48
|
+
InteractiveDataViewComponent,
|
|
49
|
+
SearchConfigComponent,
|
|
50
|
+
PageHeaderComponent,
|
|
51
|
+
DynamicPipe,
|
|
52
|
+
SearchHeaderComponent,
|
|
53
|
+
DiagramComponent,
|
|
54
|
+
GroupByCountDiagramComponent,
|
|
55
|
+
IfPermissionDirective,
|
|
56
|
+
IfBreakpointDirective,
|
|
57
|
+
OcxTimeAgoPipe], imports: [CommonModule,
|
|
58
|
+
AngularAcceleratorPrimeNgModule, i1.TranslateModule, FormsModule,
|
|
59
|
+
RouterModule,
|
|
60
|
+
ReactiveFormsModule], exports: [ColumnGroupSelectionComponent,
|
|
61
|
+
CustomGroupColumnSelectorComponent,
|
|
62
|
+
DataLayoutSelectionComponent,
|
|
63
|
+
DataListGridComponent,
|
|
64
|
+
DataTableComponent,
|
|
65
|
+
DataViewComponent,
|
|
66
|
+
InteractiveDataViewComponent,
|
|
67
|
+
SearchConfigComponent,
|
|
68
|
+
PageHeaderComponent,
|
|
69
|
+
SearchHeaderComponent,
|
|
70
|
+
DiagramComponent,
|
|
71
|
+
GroupByCountDiagramComponent,
|
|
72
|
+
IfPermissionDirective,
|
|
73
|
+
IfBreakpointDirective,
|
|
74
|
+
OcxTimeAgoPipe] });
|
|
75
|
+
AngularAcceleratorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AngularAcceleratorModule, providers: [
|
|
76
|
+
{
|
|
77
|
+
provide: LOCALE_ID,
|
|
78
|
+
useFactory: (UserService) => {
|
|
79
|
+
return UserService.lang$.getValue();
|
|
80
|
+
},
|
|
81
|
+
deps: [UserService],
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
provide: TimeagoIntl,
|
|
85
|
+
useFactory: (userService) => {
|
|
86
|
+
return new OcxTimeagoIntl(userService);
|
|
87
|
+
},
|
|
88
|
+
deps: [UserService],
|
|
89
|
+
},
|
|
90
|
+
importProvidersFrom(TimeagoModule),
|
|
91
|
+
{
|
|
92
|
+
provide: TimeagoFormatter,
|
|
93
|
+
useFactory: (TimeagoIntl) => {
|
|
94
|
+
return new TimeagoCustomFormatter(TimeagoIntl);
|
|
95
|
+
},
|
|
96
|
+
deps: [TimeagoIntl],
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
provide: TimeagoClock,
|
|
100
|
+
useClass: TimeagoDefaultClock,
|
|
101
|
+
},
|
|
102
|
+
], imports: [CommonModule,
|
|
103
|
+
AngularAcceleratorPrimeNgModule,
|
|
104
|
+
TranslateModule.forRoot({
|
|
105
|
+
isolate: true,
|
|
106
|
+
loader: {
|
|
107
|
+
provide: TranslateLoader,
|
|
108
|
+
useFactory: createTranslateLoader,
|
|
109
|
+
deps: [HttpClient, AppStateService, TranslationCacheService],
|
|
110
|
+
},
|
|
111
|
+
missingTranslationHandler: {
|
|
112
|
+
provide: MissingTranslationHandler,
|
|
113
|
+
useClass: AngularAcceleratorMissingTranslationHandler,
|
|
114
|
+
},
|
|
115
|
+
}),
|
|
116
|
+
FormsModule,
|
|
117
|
+
RouterModule,
|
|
118
|
+
ReactiveFormsModule] });
|
|
119
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AngularAcceleratorModule, decorators: [{
|
|
120
|
+
type: NgModule,
|
|
121
|
+
args: [{
|
|
122
|
+
imports: [
|
|
123
|
+
CommonModule,
|
|
124
|
+
AngularAcceleratorPrimeNgModule,
|
|
125
|
+
TranslateModule.forRoot({
|
|
126
|
+
isolate: true,
|
|
127
|
+
loader: {
|
|
128
|
+
provide: TranslateLoader,
|
|
129
|
+
useFactory: createTranslateLoader,
|
|
130
|
+
deps: [HttpClient, AppStateService, TranslationCacheService],
|
|
131
|
+
},
|
|
132
|
+
missingTranslationHandler: {
|
|
133
|
+
provide: MissingTranslationHandler,
|
|
134
|
+
useClass: AngularAcceleratorMissingTranslationHandler,
|
|
135
|
+
},
|
|
136
|
+
}),
|
|
137
|
+
FormsModule,
|
|
138
|
+
RouterModule,
|
|
139
|
+
ReactiveFormsModule,
|
|
140
|
+
],
|
|
141
|
+
declarations: [
|
|
142
|
+
ColumnGroupSelectionComponent,
|
|
143
|
+
CustomGroupColumnSelectorComponent,
|
|
144
|
+
DataLayoutSelectionComponent,
|
|
145
|
+
DataListGridSortingComponent,
|
|
146
|
+
DataListGridComponent,
|
|
147
|
+
DataTableComponent,
|
|
148
|
+
DataViewComponent,
|
|
149
|
+
InteractiveDataViewComponent,
|
|
150
|
+
SearchConfigComponent,
|
|
151
|
+
PageHeaderComponent,
|
|
152
|
+
DynamicPipe,
|
|
153
|
+
SearchHeaderComponent,
|
|
154
|
+
DiagramComponent,
|
|
155
|
+
GroupByCountDiagramComponent,
|
|
156
|
+
IfPermissionDirective,
|
|
157
|
+
IfBreakpointDirective,
|
|
158
|
+
OcxTimeAgoPipe,
|
|
159
|
+
],
|
|
160
|
+
providers: [
|
|
161
|
+
{
|
|
162
|
+
provide: LOCALE_ID,
|
|
163
|
+
useFactory: (UserService) => {
|
|
164
|
+
return UserService.lang$.getValue();
|
|
165
|
+
},
|
|
166
|
+
deps: [UserService],
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
provide: TimeagoIntl,
|
|
170
|
+
useFactory: (userService) => {
|
|
171
|
+
return new OcxTimeagoIntl(userService);
|
|
172
|
+
},
|
|
173
|
+
deps: [UserService],
|
|
174
|
+
},
|
|
175
|
+
importProvidersFrom(TimeagoModule),
|
|
176
|
+
{
|
|
177
|
+
provide: TimeagoFormatter,
|
|
178
|
+
useFactory: (TimeagoIntl) => {
|
|
179
|
+
return new TimeagoCustomFormatter(TimeagoIntl);
|
|
180
|
+
},
|
|
181
|
+
deps: [TimeagoIntl],
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
provide: TimeagoClock,
|
|
185
|
+
useClass: TimeagoDefaultClock,
|
|
186
|
+
},
|
|
187
|
+
],
|
|
188
|
+
exports: [
|
|
189
|
+
ColumnGroupSelectionComponent,
|
|
190
|
+
CustomGroupColumnSelectorComponent,
|
|
191
|
+
DataLayoutSelectionComponent,
|
|
192
|
+
DataListGridComponent,
|
|
193
|
+
DataTableComponent,
|
|
194
|
+
DataViewComponent,
|
|
195
|
+
InteractiveDataViewComponent,
|
|
196
|
+
SearchConfigComponent,
|
|
197
|
+
PageHeaderComponent,
|
|
198
|
+
SearchHeaderComponent,
|
|
199
|
+
DiagramComponent,
|
|
200
|
+
GroupByCountDiagramComponent,
|
|
201
|
+
IfPermissionDirective,
|
|
202
|
+
IfBreakpointDirective,
|
|
203
|
+
OcxTimeAgoPipe,
|
|
204
|
+
// DataListGridSortingComponent,
|
|
205
|
+
],
|
|
206
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
207
|
+
}]
|
|
208
|
+
}] });
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1hY2NlbGVyYXRvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9hbmd1bGFyLWFjY2VsZXJhdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDaEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUNMLHlCQUF5QixFQUV6QixlQUFlLEVBQ2YsZUFBZSxHQUNoQixNQUFNLHFCQUFxQixDQUFBO0FBQzVCLE9BQU8sRUFDTCxZQUFZLEVBQ1osc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLGFBQWEsR0FDZCxNQUFNLGFBQWEsQ0FBQTtBQUVwQixPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBRW5GLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ3RGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHNFQUFzRSxDQUFBO0FBQ3BILE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGtGQUFrRixDQUFBO0FBQ3JJLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9FQUFvRSxDQUFBO0FBQ2pILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHNFQUFzRSxDQUFBO0FBQ25ILE9BQU8sRUFB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d0JBQ3JCLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQixnQkFBZ0I7d0JBQ2hCLDRCQUE0Qjt3QkFDNUIscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLGNBQWM7d0JBQ2QsZ0NBQWdDO3FCQUNqQztvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBMT0NBTEVfSUQsIE5nTW9kdWxlLCBpbXBvcnRQcm92aWRlcnNGcm9tIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQge1xuICBNaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyLFxuICBNaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyUGFyYW1zLFxuICBUcmFuc2xhdGVMb2FkZXIsXG4gIFRyYW5zbGF0ZU1vZHVsZSxcbn0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7XG4gIFRpbWVhZ29DbG9jayxcbiAgVGltZWFnb0N1c3RvbUZvcm1hdHRlcixcbiAgVGltZWFnb0RlZmF1bHRDbG9jayxcbiAgVGltZWFnb0Zvcm1hdHRlcixcbiAgVGltZWFnb0ludGwsXG4gIFRpbWVhZ29Nb2R1bGUsXG59IGZyb20gJ25neC10aW1lYWdvJ1xuXG5pbXBvcnQgeyBBcHBTdGF0ZVNlcnZpY2UsIFVzZXJTZXJ2aWNlIH0gZnJvbSAnQG9uZWN4L2FuZ3VsYXItaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuXG5pbXBvcnQgeyBBbmd1bGFyQWNjZWxlcmF0b3JQcmltZU5nTW9kdWxlIH0gZnJvbSAnLi9hbmd1bGFyLWFjY2VsZXJhdG9yLXByaW1lbmcubW9kdWxlJ1xuaW1wb3J0IHsgQ29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sdW1uLWdyb3VwLXNlbGVjdGlvbi9jb2x1bW4tZ3JvdXAtc2VsZWN0aW9uLmNvbXBvbmVudCdcbmltcG9ydCB7IEN1c3RvbUdyb3VwQ29sdW1uU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLWdyb3VwLWNvbHVtbi1zZWxlY3Rvci9jdXN0b20tZ3JvdXAtY29sdW1uLXNlbGVjdG9yLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGFMYXlvdXRTZWxlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS1sYXlvdXQtc2VsZWN0aW9uL2RhdGEtbGF5b3V0LXNlbGVjdGlvbi5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhTGlzdEdyaWRTb3J0aW5nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGEtbGlzdC1ncmlkLXNvcnRpbmcvZGF0YS1saXN0LWdyaWQtc29ydGluZy5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhTGlzdEdyaWRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS1saXN0LWdyaWQvZGF0YS1saXN0LWdyaWQuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRhLXZpZXcvZGF0YS12aWV3LmNvbXBvbmVudCdcbmltcG9ydCB7IEludGVyYWN0aXZlRGF0YVZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaW50ZXJhY3RpdmUtZGF0YS12aWV3L2ludGVyYWN0aXZlLWRhdGEtdmlldy5jb21wb25lbnQnXG5pbXBvcnQgeyBTZWFyY2hDb25maWdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VhcmNoLWNvbmZpZy9zZWFyY2gtY29uZmlnLmNvbXBvbmVudCdcbmltcG9ydCB7IFBhZ2VIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFnZS1oZWFkZXIvcGFnZS1oZWFkZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgU2VhcmNoSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NlYXJjaC1oZWFkZXIvc2VhcmNoLWhlYWRlci5jb21wb25lbnQnXG5pbXBvcnQgeyBHcm91cEJ5Q291bnREaWFncmFtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dyb3VwLWJ5LWNvdW50LWRpYWdyYW0vZ3JvdXAtYnktY291bnQtZGlhZ3JhbS5jb21wb25lbnQnXG5pbXBvcnQgeyBEaWFncmFtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RpYWdyYW0vZGlhZ3JhbS5jb21wb25lbnQnXG5pbXBvcnQgeyBEeW5hbWljUGlwZSB9IGZyb20gJy4vcGlwZXMvZHluYW1pYy5waXBlJ1xuaW1wb3J0IHsgSWZQZXJtaXNzaW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2lmLXBlcm1pc3Npb24uZGlyZWN0aXZlJ1xuaW1wb3J0IHsgSWZCcmVha3BvaW50RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2lmLWJyZWFrcG9pbnQuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgT2N4VGltZUFnb1BpcGUgfSBmcm9tICcuL3BpcGVzL29jeHRpbWVhZ28ucGlwZSdcbmltcG9ydCB7IE9jeFRpbWVhZ29JbnRsIH0gZnJvbSAnLi91dGlscy9vY3h0aW1lYWdvaW50bC51dGlscydcbmltcG9ydCB7IGNyZWF0ZVRyYW5zbGF0ZUxvYWRlciB9IGZyb20gJy4vdXRpbHMvY3JlYXRlLXRyYW5zbGF0ZS1sb2FkZXIudXRpbHMnXG5pbXBvcnQgeyBUcmFuc2xhdGlvbkNhY2hlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdHJhbnNsYXRpb24tY2FjaGUuc2VydmljZSdcblxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJBY2NlbGVyYXRvck1pc3NpbmdUcmFuc2xhdGlvbkhhbmRsZXIgaW1wbGVtZW50cyBNaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyIHtcbiAgaGFuZGxlKHBhcmFtczogTWlzc2luZ1RyYW5zbGF0aW9uSGFuZGxlclBhcmFtcykge1xuICAgIGNvbnNvbGUubG9nKGBNaXNzaW5nIHRyYW5zbGF0aW9uIGZvciAke3BhcmFtcy5rZXl9YCwgcGFyYW1zKVxuICAgIHJldHVybiBwYXJhbXMua2V5XG4gIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBbmd1bGFyQWNjZWxlcmF0b3JQcmltZU5nTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JSb290KHtcbiAgICAgIGlzb2xhdGU6IHRydWUsXG4gICAgICBsb2FkZXI6IHtcbiAgICAgICAgcHJvdmlkZTogVHJhbnNsYXRlTG9hZGVyLFxuICAgICAgICB1c2VGYWN0b3J5OiBjcmVhdGVUcmFuc2xhdGVMb2FkZXIsXG4gICAgICAgIGRlcHM6IFtIdHRwQ2xpZW50LCBBcHBTdGF0ZVNlcnZpY2UsIFRyYW5zbGF0aW9uQ2FjaGVTZXJ2aWNlXSxcbiAgICAgIH0sXG4gICAgICBtaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyOiB7XG4gICAgICAgIHByb3ZpZGU6IE1pc3NpbmdUcmFuc2xhdGlvbkhhbmRsZXIsXG4gICAgICAgIHVzZUNsYXNzOiBBbmd1bGFyQWNjZWxlcmF0b3JNaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQ29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnQsXG4gICAgQ3VzdG9tR3JvdXBDb2x1bW5TZWxlY3RvckNvbXBvbmVudCxcbiAgICBEYXRhTGF5b3V0U2VsZWN0aW9uQ29tcG9uZW50LFxuICAgIERhdGFMaXN0R3JpZFNvcnRpbmdDb21wb25lbnQsXG4gICAgRGF0YUxpc3RHcmlkQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICBEYXRhVmlld0NvbXBvbmVudCxcbiAgICBJbnRlcmFjdGl2ZURhdGFWaWV3Q29tcG9uZW50LFxuICAgIFNlYXJjaENvbmZpZ0NvbXBvbmVudCxcbiAgICBQYWdlSGVhZGVyQ29tcG9uZW50LFxuICAgIER5bmFtaWNQaXBlLFxuICAgIFNlYXJjaEhlYWRlckNvbXBvbmVudCxcbiAgICBEaWFncmFtQ29tcG9uZW50LFxuICAgIEdyb3VwQnlDb3VudERpYWdyYW1Db21wb25lbnQsXG4gICAgSWZQZXJtaXNzaW9uRGlyZWN0aXZlLFxuICAgIElmQnJlYWtwb2ludERpcmVjdGl2ZSxcbiAgICBPY3hUaW1lQWdvUGlwZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTE9DQUxFX0lELFxuICAgICAgdXNlRmFjdG9yeTogKFVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSkgPT4ge1xuICAgICAgICByZXR1cm4gVXNlclNlcnZpY2UubGFuZyQuZ2V0VmFsdWUoKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFtVc2VyU2VydmljZV0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBUaW1lYWdvSW50bCxcbiAgICAgIHVzZUZhY3Rvcnk6ICh1c2VyU2VydmljZTogVXNlclNlcnZpY2UpID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPY3hUaW1lYWdvSW50bCh1c2VyU2VydmljZSlcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbVXNlclNlcnZpY2VdLFxuICAgIH0sXG4gICAgaW1wb3J0UHJvdmlkZXJzRnJvbShUaW1lYWdvTW9kdWxlKSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBUaW1lYWdvRm9ybWF0dGVyLFxuICAgICAgdXNlRmFjdG9yeTogKFRpbWVhZ29JbnRsOiBUaW1lYWdvSW50bCkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFRpbWVhZ29DdXN0b21Gb3JtYXR0ZXIoVGltZWFnb0ludGwpXG4gICAgICB9LFxuICAgICAgZGVwczogW1RpbWVhZ29JbnRsXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFRpbWVhZ29DbG9jayxcbiAgICAgIHVzZUNsYXNzOiBUaW1lYWdvRGVmYXVsdENsb2NrLFxuICAgIH0sXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBDb2x1bW5Hcm91cFNlbGVjdGlvbkNvbXBvbmVudCxcbiAgICBDdXN0b21Hcm91cENvbHVtblNlbGVjdG9yQ29tcG9uZW50LFxuICAgIERhdGFMYXlvdXRTZWxlY3Rpb25Db21wb25lbnQsXG4gICAgRGF0YUxpc3RHcmlkQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICBEYXRhVmlld0NvbXBvbmVudCxcbiAgICBJbnRlcmFjdGl2ZURhdGFWaWV3Q29tcG9uZW50LFxuICAgIFNlYXJjaENvbmZpZ0NvbXBvbmVudCxcbiAgICBQYWdlSGVhZGVyQ29tcG9uZW50LFxuICAgIFNlYXJjaEhlYWRlckNvbXBvbmVudCxcbiAgICBEaWFncmFtQ29tcG9uZW50LFxuICAgIEdyb3VwQnlDb3VudERpYWdyYW1Db21wb25lbnQsXG4gICAgSWZQZXJtaXNzaW9uRGlyZWN0aXZlLFxuICAgIElmQnJlYWtwb2ludERpcmVjdGl2ZSxcbiAgICBPY3hUaW1lQWdvUGlwZSxcbiAgICAvLyBEYXRhTGlzdEdyaWRTb3J0aW5nQ29tcG9uZW50LFxuICBdLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJBY2NlbGVyYXRvck1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, combineLatest, map } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "primeng/dropdown";
|
|
6
|
+
import * as i3 from "primeng/api";
|
|
7
|
+
import * as i4 from "@angular/forms";
|
|
8
|
+
import * as i5 from "@ngx-translate/core";
|
|
9
|
+
export class ColumnGroupSelectionComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.selectedGroupKey$ = new BehaviorSubject('');
|
|
12
|
+
this.columns$ = new BehaviorSubject([]);
|
|
13
|
+
this.placeholderKey = '';
|
|
14
|
+
this.defaultGroupKey = '';
|
|
15
|
+
this.customGroupKey = '';
|
|
16
|
+
this.groupSelectionChanged = new EventEmitter();
|
|
17
|
+
}
|
|
18
|
+
get selectedGroupKey() {
|
|
19
|
+
return this.selectedGroupKey$.getValue();
|
|
20
|
+
}
|
|
21
|
+
set selectedGroupKey(value) {
|
|
22
|
+
this.selectedGroupKey$.next(value);
|
|
23
|
+
}
|
|
24
|
+
get columns() {
|
|
25
|
+
return this.columns$.getValue();
|
|
26
|
+
}
|
|
27
|
+
set columns(value) {
|
|
28
|
+
this.columns$.next(value);
|
|
29
|
+
}
|
|
30
|
+
ngOnInit() {
|
|
31
|
+
this.allGroupKeys$ = combineLatest([this.columns$, this.selectedGroupKey$]).pipe(map(([columns, selectedGroupKey]) => columns
|
|
32
|
+
.map((keys) => keys.predefinedGroupKeys || [])
|
|
33
|
+
.flat()
|
|
34
|
+
.concat([this.defaultGroupKey])
|
|
35
|
+
.concat([selectedGroupKey])
|
|
36
|
+
.filter((value) => !!value)
|
|
37
|
+
.filter((value, index, self) => self.indexOf(value) === index && value != null)));
|
|
38
|
+
}
|
|
39
|
+
changeGroupSelection(event) {
|
|
40
|
+
if (event.value === this.customGroupKey) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const activeColumns = this.columns.filter((c) => c.predefinedGroupKeys?.includes(event.value));
|
|
44
|
+
this.groupSelectionChanged.emit({ activeColumns, groupKey: event.value });
|
|
45
|
+
}
|
|
46
|
+
clearGroupSelection() {
|
|
47
|
+
let activeColumns = this.columns;
|
|
48
|
+
if (this.defaultGroupKey) {
|
|
49
|
+
activeColumns = this.columns.filter((column) => column.predefinedGroupKeys?.includes(this.defaultGroupKey));
|
|
50
|
+
}
|
|
51
|
+
this.groupSelectionChanged.emit({ activeColumns, groupKey: this.defaultGroupKey });
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
ColumnGroupSelectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnGroupSelectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
55
|
+
ColumnGroupSelectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ColumnGroupSelectionComponent, selector: "ocx-column-group-selection", inputs: { selectedGroupKey: "selectedGroupKey", columns: "columns", placeholderKey: "placeholderKey", defaultGroupKey: "defaultGroupKey", customGroupKey: "customGroupKey" }, outputs: { groupSelectionChanged: "groupSelectionChanged" }, ngImport: i0, template: "<span class=\"p-float-label\">\n <p-dropdown\n id=\"columnGroupSelectionDropdown\"\n *ngIf=\"(allGroupKeys$ | async)?.length\"\n (onClear)=\"clearGroupSelection()\"\n (onChange)=\"changeGroupSelection($event)\"\n [options]=\"(allGroupKeys$ | async) || []\"\n [placeholder]=\"placeholderKey | translate\"\n [showClear]=\"selectedGroupKey !== defaultGroupKey\"\n [(ngModel)]=\"selectedGroupKey\"\n >\n <ng-template let-item pTemplate=\"item\"> {{ item ? (item | translate) : ''}} </ng-template>\n <ng-template let-item pTemplate=\"selectedItem\"> {{ item ? (item | translate) : ''}} </ng-template>\n </p-dropdown>\n <label *ngIf=\"(allGroupKeys$ | async)?.length\" for=\"columnGroupSelectionDropdown\"\n >{{ (\"OCX_CUSTOM_GROUP_COLUMN_SELECTOR.DROPDOWN_LABEL\" | translate) }}</label\n >\n</span>\n", styles: [":host ::ng-deep .p-dropdown{min-width:12rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "overlayDirection", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnGroupSelectionComponent, decorators: [{
|
|
57
|
+
type: Component,
|
|
58
|
+
args: [{ selector: 'ocx-column-group-selection', template: "<span class=\"p-float-label\">\n <p-dropdown\n id=\"columnGroupSelectionDropdown\"\n *ngIf=\"(allGroupKeys$ | async)?.length\"\n (onClear)=\"clearGroupSelection()\"\n (onChange)=\"changeGroupSelection($event)\"\n [options]=\"(allGroupKeys$ | async) || []\"\n [placeholder]=\"placeholderKey | translate\"\n [showClear]=\"selectedGroupKey !== defaultGroupKey\"\n [(ngModel)]=\"selectedGroupKey\"\n >\n <ng-template let-item pTemplate=\"item\"> {{ item ? (item | translate) : ''}} </ng-template>\n <ng-template let-item pTemplate=\"selectedItem\"> {{ item ? (item | translate) : ''}} </ng-template>\n </p-dropdown>\n <label *ngIf=\"(allGroupKeys$ | async)?.length\" for=\"columnGroupSelectionDropdown\"\n >{{ (\"OCX_CUSTOM_GROUP_COLUMN_SELECTOR.DROPDOWN_LABEL\" | translate) }}</label\n >\n</span>\n", styles: [":host ::ng-deep .p-dropdown{min-width:12rem}\n"] }]
|
|
59
|
+
}], propDecorators: { selectedGroupKey: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}], columns: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}], placeholderKey: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}], defaultGroupKey: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], customGroupKey: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], groupSelectionChanged: [{
|
|
70
|
+
type: Output
|
|
71
|
+
}] } });
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWdyb3VwLXNlbGVjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2NvbHVtbi1ncm91cC1zZWxlY3Rpb24vY29sdW1uLWdyb3VwLXNlbGVjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2NvbHVtbi1ncm91cC1zZWxlY3Rpb24vY29sdW1uLWdyb3VwLXNlbGVjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQTs7Ozs7OztBQVN0RSxNQUFNLE9BQU8sNkJBQTZCO0lBTDFDO1FBTUUsc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUE7UUFTbkQsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFvQixFQUFFLENBQUMsQ0FBQTtRQVE1QyxtQkFBYyxHQUFHLEVBQUUsQ0FBQTtRQUNuQixvQkFBZSxHQUFHLEVBQUUsQ0FBQTtRQUNwQixtQkFBYyxHQUFHLEVBQUUsQ0FBQTtRQUVsQiwwQkFBcUIsR0FBNkMsSUFBSSxZQUFZLEVBQUUsQ0FBQTtLQWlDL0Y7SUFyREMsSUFDSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDMUMsQ0FBQztJQUNELElBQUksZ0JBQWdCLENBQUMsS0FBYTtRQUNoQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3BDLENBQUM7SUFHRCxJQUNJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDakMsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQXdCO1FBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzNCLENBQUM7SUFTRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM5RSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsQ0FDbEMsT0FBTzthQUNKLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQzthQUM3QyxJQUFJLEVBQUU7YUFDTixNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDOUIsTUFBTSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzthQUMxQixNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7YUFDMUIsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FDbEYsQ0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQXdCO1FBQzNDLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZDLE9BQU07U0FDUDtRQUNELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQzlGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO0lBQzNFLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQTtRQUNoQyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFBO1NBQzVHO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUE7SUFDcEYsQ0FBQzs7MkhBdERVLDZCQUE2QjsrR0FBN0IsNkJBQTZCLDZTQ1YxQyxvMEJBa0JBOzRGRFJhLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFFRSw0QkFBNEI7OEJBTWxDLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFVRixPQUFPO3NCQURWLEtBQUs7Z0JBT0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUkscUJBQXFCO3NCQUE5QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBEYXRhVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi9tb2RlbC9kYXRhLXRhYmxlLWNvbHVtbi5tb2RlbCdcblxuZXhwb3J0IHR5cGUgR3JvdXBTZWxlY3Rpb25DaGFuZ2VkRXZlbnQgPSB7IGFjdGl2ZUNvbHVtbnM6IERhdGFUYWJsZUNvbHVtbltdOyBncm91cEtleTogc3RyaW5nIH1cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vY29sdW1uLWdyb3VwLXNlbGVjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHNlbGVjdG9yOiAnb2N4LWNvbHVtbi1ncm91cC1zZWxlY3Rpb24nLFxuICBzdHlsZVVybHM6IFsnLi9jb2x1bW4tZ3JvdXAtc2VsZWN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvbHVtbkdyb3VwU2VsZWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgc2VsZWN0ZWRHcm91cEtleSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpXG4gIEBJbnB1dCgpXG4gIGdldCBzZWxlY3RlZEdyb3VwS2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRHcm91cEtleSQuZ2V0VmFsdWUoKVxuICB9XG4gIHNldCBzZWxlY3RlZEdyb3VwS2V5KHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBLZXkkLm5leHQodmFsdWUpXG4gIH1cblxuICBjb2x1bW5zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0YVRhYmxlQ29sdW1uW10+KFtdKVxuICBASW5wdXQoKVxuICBnZXQgY29sdW1ucygpOiBEYXRhVGFibGVDb2x1bW5bXSB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1ucyQuZ2V0VmFsdWUoKVxuICB9XG4gIHNldCBjb2x1bW5zKHZhbHVlOiBEYXRhVGFibGVDb2x1bW5bXSkge1xuICAgIHRoaXMuY29sdW1ucyQubmV4dCh2YWx1ZSlcbiAgfVxuICBASW5wdXQoKSBwbGFjZWhvbGRlcktleSA9ICcnXG4gIEBJbnB1dCgpIGRlZmF1bHRHcm91cEtleSA9ICcnXG4gIEBJbnB1dCgpIGN1c3RvbUdyb3VwS2V5ID0gJydcblxuICBAT3V0cHV0KCkgZ3JvdXBTZWxlY3Rpb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8R3JvdXBTZWxlY3Rpb25DaGFuZ2VkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgYWxsR3JvdXBLZXlzJDogT2JzZXJ2YWJsZTxzdHJpbmdbXT4gfCB1bmRlZmluZWRcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFsbEdyb3VwS2V5cyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmNvbHVtbnMkLCB0aGlzLnNlbGVjdGVkR3JvdXBLZXkkXSkucGlwZShcbiAgICAgIG1hcCgoW2NvbHVtbnMsIHNlbGVjdGVkR3JvdXBLZXldKSA9PlxuICAgICAgICBjb2x1bW5zXG4gICAgICAgICAgLm1hcCgoa2V5cykgPT4ga2V5cy5wcmVkZWZpbmVkR3JvdXBLZXlzIHx8IFtdKVxuICAgICAgICAgIC5mbGF0KClcbiAgICAgICAgICAuY29uY2F0KFt0aGlzLmRlZmF1bHRHcm91cEtleV0pXG4gICAgICAgICAgLmNvbmNhdChbc2VsZWN0ZWRHcm91cEtleV0pXG4gICAgICAgICAgLmZpbHRlcigodmFsdWUpID0+ICEhdmFsdWUpXG4gICAgICAgICAgLmZpbHRlcigodmFsdWUsIGluZGV4LCBzZWxmKSA9PiBzZWxmLmluZGV4T2YodmFsdWUpID09PSBpbmRleCAmJiB2YWx1ZSAhPSBudWxsKVxuICAgICAgKVxuICAgIClcbiAgfVxuXG4gIGNoYW5nZUdyb3VwU2VsZWN0aW9uKGV2ZW50OiB7IHZhbHVlOiBzdHJpbmcgfSkge1xuICAgIGlmIChldmVudC52YWx1ZSA9PT0gdGhpcy5jdXN0b21Hcm91cEtleSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IGFjdGl2ZUNvbHVtbnMgPSB0aGlzLmNvbHVtbnMuZmlsdGVyKChjKSA9PiBjLnByZWRlZmluZWRHcm91cEtleXM/LmluY2x1ZGVzKGV2ZW50LnZhbHVlKSlcbiAgICB0aGlzLmdyb3VwU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHsgYWN0aXZlQ29sdW1ucywgZ3JvdXBLZXk6IGV2ZW50LnZhbHVlIH0pXG4gIH1cblxuICBjbGVhckdyb3VwU2VsZWN0aW9uKCkge1xuICAgIGxldCBhY3RpdmVDb2x1bW5zID0gdGhpcy5jb2x1bW5zXG4gICAgaWYgKHRoaXMuZGVmYXVsdEdyb3VwS2V5KSB7XG4gICAgICBhY3RpdmVDb2x1bW5zID0gdGhpcy5jb2x1bW5zLmZpbHRlcigoY29sdW1uKSA9PiBjb2x1bW4ucHJlZGVmaW5lZEdyb3VwS2V5cz8uaW5jbHVkZXModGhpcy5kZWZhdWx0R3JvdXBLZXkpKVxuICAgIH1cbiAgICB0aGlzLmdyb3VwU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHsgYWN0aXZlQ29sdW1ucywgZ3JvdXBLZXk6IHRoaXMuZGVmYXVsdEdyb3VwS2V5IH0pXG4gIH1cbn1cbiIsIjxzcGFuIGNsYXNzPVwicC1mbG9hdC1sYWJlbFwiPlxuICA8cC1kcm9wZG93blxuICAgIGlkPVwiY29sdW1uR3JvdXBTZWxlY3Rpb25Ecm9wZG93blwiXG4gICAgKm5nSWY9XCIoYWxsR3JvdXBLZXlzJCB8IGFzeW5jKT8ubGVuZ3RoXCJcbiAgICAob25DbGVhcik9XCJjbGVhckdyb3VwU2VsZWN0aW9uKClcIlxuICAgIChvbkNoYW5nZSk9XCJjaGFuZ2VHcm91cFNlbGVjdGlvbigkZXZlbnQpXCJcbiAgICBbb3B0aW9uc109XCIoYWxsR3JvdXBLZXlzJCB8IGFzeW5jKSB8fCBbXVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyS2V5IHwgdHJhbnNsYXRlXCJcbiAgICBbc2hvd0NsZWFyXT1cInNlbGVjdGVkR3JvdXBLZXkgIT09IGRlZmF1bHRHcm91cEtleVwiXG4gICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEdyb3VwS2V5XCJcbiAgPlxuICAgIDxuZy10ZW1wbGF0ZSBsZXQtaXRlbSBwVGVtcGxhdGU9XCJpdGVtXCI+IHt7IGl0ZW0gPyAoaXRlbSB8IHRyYW5zbGF0ZSkgOiAnJ319IDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIGxldC1pdGVtIHBUZW1wbGF0ZT1cInNlbGVjdGVkSXRlbVwiPiB7eyBpdGVtID8gKGl0ZW0gfCB0cmFuc2xhdGUpIDogJyd9fSA8L25nLXRlbXBsYXRlPlxuICA8L3AtZHJvcGRvd24+XG4gIDxsYWJlbCAqbmdJZj1cIihhbGxHcm91cEtleXMkIHwgYXN5bmMpPy5sZW5ndGhcIiBmb3I9XCJjb2x1bW5Hcm91cFNlbGVjdGlvbkRyb3Bkb3duXCJcbiAgICA+e3sgKFwiT0NYX0NVU1RPTV9HUk9VUF9DT0xVTU5fU0VMRUNUT1IuRFJPUERPV05fTEFCRUxcIiB8IHRyYW5zbGF0ZSkgfX08L2xhYmVsXG4gID5cbjwvc3Bhbj5cbiJdfQ==
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@ngx-translate/core";
|
|
5
|
+
import * as i2 from "primeng/api";
|
|
6
|
+
import * as i3 from "primeng/button";
|
|
7
|
+
import * as i4 from "primeng/dialog";
|
|
8
|
+
import * as i5 from "primeng/picklist";
|
|
9
|
+
import * as i6 from "primeng/selectbutton";
|
|
10
|
+
import * as i7 from "@angular/forms";
|
|
11
|
+
export class CustomGroupColumnSelectorComponent {
|
|
12
|
+
constructor(translate) {
|
|
13
|
+
this.translate = translate;
|
|
14
|
+
this.columns = [];
|
|
15
|
+
this.displayedColumns = [];
|
|
16
|
+
this.dialogTitle = '';
|
|
17
|
+
this.openButtonTitle = '';
|
|
18
|
+
this.saveButtonLabel = '';
|
|
19
|
+
this.cancelButtonLabel = '';
|
|
20
|
+
this.activeColumnsLabel = '';
|
|
21
|
+
this.inactiveColumnsLabel = '';
|
|
22
|
+
this.frozenActionColumn = false;
|
|
23
|
+
this.actionColumnPosition = 'right';
|
|
24
|
+
this.columnSelectionChanged = new EventEmitter();
|
|
25
|
+
this.actionColumnConfigChanged = new EventEmitter();
|
|
26
|
+
this.hiddenColumnsModel = [];
|
|
27
|
+
this.displayedColumnsModel = [];
|
|
28
|
+
this.frozenActionColumnModel = false;
|
|
29
|
+
this.actionColumnPositionModel = 'right';
|
|
30
|
+
this.visible = false;
|
|
31
|
+
this.alignmentOptions = [
|
|
32
|
+
{
|
|
33
|
+
label: 'OCX_CUSTOM_GROUP_COLUMN_SELECTOR.CONFIGURE_ACTION_COLUMN.LEFT',
|
|
34
|
+
value: 'left',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
label: 'OCX_CUSTOM_GROUP_COLUMN_SELECTOR.CONFIGURE_ACTION_COLUMN.RIGHT',
|
|
38
|
+
value: 'right',
|
|
39
|
+
},
|
|
40
|
+
];
|
|
41
|
+
this.frozenOptions = [
|
|
42
|
+
{
|
|
43
|
+
label: 'OCX_CUSTOM_GROUP_COLUMN_SELECTOR.CONFIGURE_ACTION_COLUMN.YES',
|
|
44
|
+
value: true,
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
label: 'OCX_CUSTOM_GROUP_COLUMN_SELECTOR.CONFIGURE_ACTION_COLUMN.NO',
|
|
48
|
+
value: false,
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
}
|
|
52
|
+
onOpenCustomGroupColumnSelectionDialogClick() {
|
|
53
|
+
this.displayedColumnsModel = [...this.displayedColumns];
|
|
54
|
+
this.hiddenColumnsModel = this.columns.filter((column) => !this.displayedColumnsModel.map((c) => c.id).includes(column.id));
|
|
55
|
+
this.frozenActionColumnModel = this.frozenActionColumn;
|
|
56
|
+
this.actionColumnPositionModel = this.actionColumnPosition;
|
|
57
|
+
this.visible = true;
|
|
58
|
+
}
|
|
59
|
+
onSaveClick() {
|
|
60
|
+
this.visible = false;
|
|
61
|
+
const colIdsBefore = this.displayedColumns.map((column) => column.id);
|
|
62
|
+
const colIdsAfter = this.displayedColumnsModel.map((column) => column.id);
|
|
63
|
+
if (!colIdsAfter.every((colId, i) => colId === colIdsBefore[i])) {
|
|
64
|
+
this.columnSelectionChanged.emit({ activeColumns: [...this.displayedColumnsModel] });
|
|
65
|
+
}
|
|
66
|
+
if (this.frozenActionColumn != this.frozenActionColumnModel ||
|
|
67
|
+
this.actionColumnPosition != this.actionColumnPositionModel) {
|
|
68
|
+
this.actionColumnConfigChanged.emit({
|
|
69
|
+
frozenActionColumn: this.frozenActionColumnModel,
|
|
70
|
+
actionColumnPosition: this.actionColumnPositionModel,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
onCancelClick() {
|
|
75
|
+
this.visible = false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
CustomGroupColumnSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomGroupColumnSelectorComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
79
|
+
CustomGroupColumnSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CustomGroupColumnSelectorComponent, selector: "ocx-custom-group-column-selector", inputs: { columns: "columns", displayedColumns: "displayedColumns", dialogTitle: "dialogTitle", openButtonTitle: "openButtonTitle", saveButtonLabel: "saveButtonLabel", cancelButtonLabel: "cancelButtonLabel", activeColumnsLabel: "activeColumnsLabel", inactiveColumnsLabel: "inactiveColumnsLabel", frozenActionColumn: "frozenActionColumn", actionColumnPosition: "actionColumnPosition" }, outputs: { columnSelectionChanged: "columnSelectionChanged", actionColumnConfigChanged: "actionColumnConfigChanged" }, ngImport: i0, template: "<p-button\n id=\"customGroupColumnSelectorButton\"\n type=\"button\"\n (click)=\"onOpenCustomGroupColumnSelectionDialogClick()\"\n [title]=\"openButtonTitle || ('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.OPEN_BUTTON_DETAIL' | translate)\"\n icon=\"pi pi-cog\"\n styleClass=\"p-button\"\n [ariaLabel]=\"openButtonTitle || ('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.OPEN_BUTTON_DETAIL' | translate)\"\n></p-button>\n\n<p-dialog header=\"Header\" [(visible)]=\"visible\" [style]=\"{ width: '70%' }\" [modal]=\"true\" [closeAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.CLOSE' | translate)\">\n <ng-template pTemplate=\"header\">\n <span class=\"text-xl font-bold\"\n >{{ dialogTitle || ('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.DIALOG_TITLE' | translate) }}</span\n >\n </ng-template>\n\n <p-pickList\n [source]=\"displayedColumnsModel\"\n [target]=\"hiddenColumnsModel\"\n [sourceHeader]=\"activeColumnsLabel || ('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ACTIVE_COLUMNS_LABEL' | translate)\"\n [targetHeader]=\"inactiveColumnsLabel || ('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.INACTIVE_COLUMNS_LABEL' | translate)\"\n [dragdrop]=\"true\"\n [responsive]=\"false\"\n [sourceStyle]=\"{ height: '300px' }\"\n [targetStyle]=\"{ height: '300px' }\"\n [upButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.UP' | translate)\"\n [topButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.TOP' | translate)\"\n [downButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.DOWN' | translate)\"\n [bottomButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.BOTTOM' | translate)\"\n [rightButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.RIGHT' | translate)\"\n [allRightButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.ALL_RIGHT' | translate)\"\n [leftButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.LEFT' | translate)\"\n [allLeftButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.ALL_LEFT' | translate)\"\n >\n <ng-template let-item pTemplate=\"item\">\n <div>{{ item.nameKey | translate }}</div>\n </ng-template>\n </p-pickList>\n\n <div class=\"pt-4\">\n <p class=\"text-xl font-bold\">{{'OCX_CUSTOM_GROUP_COLUMN_SELECTOR.CONFIGURE_ACTION_COLUMN.TITLE' | translate}}</p>\n <div class=\"flex gap-6 px-3\">\n <div>\n <p class=\"mb-1\">{{'OCX_CUSTOM_GROUP_COLUMN_SELECTOR.CONFIGURE_ACTION_COLUMN.FREEZE' | translate}}</p>\n <p-selectButton\n [options]=\"frozenOptions\"\n [(ngModel)]=\"frozenActionColumnModel\"\n optionLabel=\"label\"\n optionValue=\"value\"\n id=\"frozenActionColumn\"\n name=\"frozen-action-column-select-button\"\n >\n <ng-template let-option pTemplate> {{option.label | translate}} </ng-template>\n </p-selectButton>\n </div>\n <div>\n <p class=\"mb-1\">{{'OCX_CUSTOM_GROUP_COLUMN_SELECTOR.CONFIGURE_ACTION_COLUMN.POSITION' | translate}}</p>\n <p-selectButton\n [options]=\"alignmentOptions\"\n [(ngModel)]=\"actionColumnPositionModel\"\n optionLabel=\"label\"\n optionValue=\"value\"\n id=\"actionColumnPosition\"\n class=\"mt-2\"\n name=\"action-column-position-select-button\"\n >\n <ng-template let-option pTemplate> {{option.label | translate}} </ng-template>\n </p-selectButton>\n </div>\n </div>\n </div>\n\n <ng-template pTemplate=\"footer\">\n <p-button\n id=\"cancelButton\"\n (onClick)=\"onCancelClick()\"\n [label]=\"cancelButtonLabel || ('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.CANCEL_BUTTON_LABEL' | translate)\"\n styleClass=\"p-button\"\n ></p-button>\n <p-button\n id=\"saveButton\"\n (onClick)=\"onSaveClick()\"\n [label]=\"saveButtonLabel || ('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.SAVE_BUTTON_LABEL' | translate)\"\n ></p-button>\n </ng-template>\n</p-dialog>\n", styles: ["::ng-deep .p-buttonset .p-button{min-width:auto}::ng-deep .p-buttonset{display:flex}::ng-deep .p-picklist-item.cdk-drag-preview{z-index:2000!important}.p-button{height:100%}\n"], dependencies: [{ kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass", "ariaLabel"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: i4.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "component", type: i5.PickList, selector: "p-pickList", inputs: ["source", "target", "sourceHeader", "rightButtonAriaLabel", "leftButtonAriaLabel", "allRightButtonAriaLabel", "allLeftButtonAriaLabel", "upButtonAriaLabel", "downButtonAriaLabel", "topButtonAriaLabel", "bottomButtonAriaLabel", "targetHeader", "responsive", "filterBy", "filterLocale", "trackBy", "sourceTrackBy", "targetTrackBy", "showSourceFilter", "showTargetFilter", "metaKeySelection", "dragdrop", "style", "styleClass", "sourceStyle", "targetStyle", "showSourceControls", "showTargetControls", "sourceFilterPlaceholder", "targetFilterPlaceholder", "disabled", "ariaSourceFilterLabel", "ariaTargetFilterLabel", "filterMatchMode", "breakpoint", "stripedRows", "keepSelection"], outputs: ["onMoveToSource", "onMoveAllToSource", "onMoveAllToTarget", "onMoveToTarget", "onSourceReorder", "onTargetReorder", "onSourceSelect", "onTargetSelect", "onSourceFilter", "onTargetFilter"] }, { kind: "component", type: i6.SelectButton, selector: "p-selectButton", inputs: ["options", "optionLabel", "optionValue", "optionDisabled", "tabindex", "multiple", "style", "styleClass", "ariaLabelledBy", "disabled", "dataKey"], outputs: ["onOptionClick", "onChange"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
|
|
80
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomGroupColumnSelectorComponent, decorators: [{
|
|
81
|
+
type: Component,
|
|
82
|
+
args: [{ selector: 'ocx-custom-group-column-selector', template: "<p-button\n id=\"customGroupColumnSelectorButton\"\n type=\"button\"\n (click)=\"onOpenCustomGroupColumnSelectionDialogClick()\"\n [title]=\"openButtonTitle || ('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.OPEN_BUTTON_DETAIL' | translate)\"\n icon=\"pi pi-cog\"\n styleClass=\"p-button\"\n [ariaLabel]=\"openButtonTitle || ('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.OPEN_BUTTON_DETAIL' | translate)\"\n></p-button>\n\n<p-dialog header=\"Header\" [(visible)]=\"visible\" [style]=\"{ width: '70%' }\" [modal]=\"true\" [closeAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.CLOSE' | translate)\">\n <ng-template pTemplate=\"header\">\n <span class=\"text-xl font-bold\"\n >{{ dialogTitle || ('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.DIALOG_TITLE' | translate) }}</span\n >\n </ng-template>\n\n <p-pickList\n [source]=\"displayedColumnsModel\"\n [target]=\"hiddenColumnsModel\"\n [sourceHeader]=\"activeColumnsLabel || ('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ACTIVE_COLUMNS_LABEL' | translate)\"\n [targetHeader]=\"inactiveColumnsLabel || ('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.INACTIVE_COLUMNS_LABEL' | translate)\"\n [dragdrop]=\"true\"\n [responsive]=\"false\"\n [sourceStyle]=\"{ height: '300px' }\"\n [targetStyle]=\"{ height: '300px' }\"\n [upButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.UP' | translate)\"\n [topButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.TOP' | translate)\"\n [downButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.DOWN' | translate)\"\n [bottomButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.BOTTOM' | translate)\"\n [rightButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.RIGHT' | translate)\"\n [allRightButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.ALL_RIGHT' | translate)\"\n [leftButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.LEFT' | translate)\"\n [allLeftButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.ALL_LEFT' | translate)\"\n >\n <ng-template let-item pTemplate=\"item\">\n <div>{{ item.nameKey | translate }}</div>\n </ng-template>\n </p-pickList>\n\n <div class=\"pt-4\">\n <p class=\"text-xl font-bold\">{{'OCX_CUSTOM_GROUP_COLUMN_SELECTOR.CONFIGURE_ACTION_COLUMN.TITLE' | translate}}</p>\n <div class=\"flex gap-6 px-3\">\n <div>\n <p class=\"mb-1\">{{'OCX_CUSTOM_GROUP_COLUMN_SELECTOR.CONFIGURE_ACTION_COLUMN.FREEZE' | translate}}</p>\n <p-selectButton\n [options]=\"frozenOptions\"\n [(ngModel)]=\"frozenActionColumnModel\"\n optionLabel=\"label\"\n optionValue=\"value\"\n id=\"frozenActionColumn\"\n name=\"frozen-action-column-select-button\"\n >\n <ng-template let-option pTemplate> {{option.label | translate}} </ng-template>\n </p-selectButton>\n </div>\n <div>\n <p class=\"mb-1\">{{'OCX_CUSTOM_GROUP_COLUMN_SELECTOR.CONFIGURE_ACTION_COLUMN.POSITION' | translate}}</p>\n <p-selectButton\n [options]=\"alignmentOptions\"\n [(ngModel)]=\"actionColumnPositionModel\"\n optionLabel=\"label\"\n optionValue=\"value\"\n id=\"actionColumnPosition\"\n class=\"mt-2\"\n name=\"action-column-position-select-button\"\n >\n <ng-template let-option pTemplate> {{option.label | translate}} </ng-template>\n </p-selectButton>\n </div>\n </div>\n </div>\n\n <ng-template pTemplate=\"footer\">\n <p-button\n id=\"cancelButton\"\n (onClick)=\"onCancelClick()\"\n [label]=\"cancelButtonLabel || ('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.CANCEL_BUTTON_LABEL' | translate)\"\n styleClass=\"p-button\"\n ></p-button>\n <p-button\n id=\"saveButton\"\n (onClick)=\"onSaveClick()\"\n [label]=\"saveButtonLabel || ('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.SAVE_BUTTON_LABEL' | translate)\"\n ></p-button>\n </ng-template>\n</p-dialog>\n", styles: ["::ng-deep .p-buttonset .p-button{min-width:auto}::ng-deep .p-buttonset{display:flex}::ng-deep .p-picklist-item.cdk-drag-preview{z-index:2000!important}.p-button{height:100%}\n"] }]
|
|
83
|
+
}], ctorParameters: function () { return [{ type: i1.TranslateService }]; }, propDecorators: { columns: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], displayedColumns: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], dialogTitle: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], openButtonTitle: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], saveButtonLabel: [{
|
|
92
|
+
type: Input
|
|
93
|
+
}], cancelButtonLabel: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], activeColumnsLabel: [{
|
|
96
|
+
type: Input
|
|
97
|
+
}], inactiveColumnsLabel: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}], frozenActionColumn: [{
|
|
100
|
+
type: Input
|
|
101
|
+
}], actionColumnPosition: [{
|
|
102
|
+
type: Input
|
|
103
|
+
}], columnSelectionChanged: [{
|
|
104
|
+
type: Output
|
|
105
|
+
}], actionColumnConfigChanged: [{
|
|
106
|
+
type: Output
|
|
107
|
+
}] } });
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWdyb3VwLWNvbHVtbi1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1ncm91cC1jb2x1bW4tc2VsZWN0b3IvY3VzdG9tLWdyb3VwLWNvbHVtbi1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1ncm91cC1jb2x1bW4tc2VsZWN0b3IvY3VzdG9tLWdyb3VwLWNvbHVtbi1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBOzs7Ozs7Ozs7QUFjdEQsTUFBTSxPQUFPLGtDQUFrQztJQTBDN0MsWUFBb0IsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUF6Q3RDLFlBQU8sR0FBc0IsRUFBRSxDQUFBO1FBQy9CLHFCQUFnQixHQUFzQixFQUFFLENBQUE7UUFDeEMsZ0JBQVcsR0FBRyxFQUFFLENBQUE7UUFDaEIsb0JBQWUsR0FBRyxFQUFFLENBQUE7UUFDcEIsb0JBQWUsR0FBRyxFQUFFLENBQUE7UUFDcEIsc0JBQWlCLEdBQUcsRUFBRSxDQUFBO1FBQ3RCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQTtRQUN2Qix5QkFBb0IsR0FBRyxFQUFFLENBQUE7UUFDekIsdUJBQWtCLEdBQUcsS0FBSyxDQUFBO1FBQzFCLHlCQUFvQixHQUFxQixPQUFPLENBQUE7UUFFL0MsMkJBQXNCLEdBQThDLElBQUksWUFBWSxFQUFFLENB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Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFFSSxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBQ0cseUJBQXlCO3NCQUFsQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBEYXRhVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi9tb2RlbC9kYXRhLXRhYmxlLWNvbHVtbi5tb2RlbCdcblxuZXhwb3J0IHR5cGUgQ29sdW1uU2VsZWN0aW9uQ2hhbmdlZEV2ZW50ID0geyBhY3RpdmVDb2x1bW5zOiBEYXRhVGFibGVDb2x1bW5bXSB9XG5leHBvcnQgdHlwZSBBY3Rpb25Db2x1bW5DaGFuZ2VkRXZlbnQgPSB7XG4gIGZyb3plbkFjdGlvbkNvbHVtbjogYm9vbGVhblxuICBhY3Rpb25Db2x1bW5Qb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0J1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvY3gtY3VzdG9tLWdyb3VwLWNvbHVtbi1zZWxlY3RvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tZ3JvdXAtY29sdW1uLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3VzdG9tLWdyb3VwLWNvbHVtbi1zZWxlY3Rvci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21Hcm91cENvbHVtblNlbGVjdG9yQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY29sdW1uczogRGF0YVRhYmxlQ29sdW1uW10gPSBbXVxuICBASW5wdXQoKSBkaXNwbGF5ZWRDb2x1bW5zOiBEYXRhVGFibGVDb2x1bW5bXSA9IFtdXG4gIEBJbnB1dCgpIGRpYWxvZ1RpdGxlID0gJydcbiAgQElucHV0KCkgb3BlbkJ1dHRvblRpdGxlID0gJydcbiAgQElucHV0KCkgc2F2ZUJ1dHRvbkxhYmVsID0gJydcbiAgQElucHV0KCkgY2FuY2VsQnV0dG9uTGFiZWwgPSAnJ1xuICBASW5wdXQoKSBhY3RpdmVDb2x1bW5zTGFiZWwgPSAnJ1xuICBASW5wdXQoKSBpbmFjdGl2ZUNvbHVtbnNMYWJlbCA9ICcnXG4gIEBJbnB1dCgpIGZyb3plbkFjdGlvbkNvbHVtbiA9IGZhbHNlXG4gIEBJbnB1dCgpIGFjdGlvbkNvbHVtblBvc2l0aW9uOiAnbGVmdCcgfCAncmlnaHQnID0gJ3JpZ2h0J1xuXG4gIEBPdXRwdXQoKSBjb2x1bW5TZWxlY3Rpb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q29sdW1uU2VsZWN0aW9uQ2hhbmdlZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAT3V0cHV0KCkgYWN0aW9uQ29sdW1uQ29uZmlnQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFjdGlvbkNvbHVtbkNoYW5nZWRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKClcblxuICBoaWRkZW5Db2x1bW5zTW9kZWw6IERhdGFUYWJsZUNvbHVtbltdID0gW11cbiAgZGlzcGxheWVkQ29sdW1uc01vZGVsOiBEYXRhVGFibGVDb2x1bW5bXSA9IFtdXG4gIGZyb3plbkFjdGlvbkNvbHVtbk1vZGVsID0gZmFsc2VcbiAgYWN0aW9uQ29sdW1uUG9zaXRpb25Nb2RlbDogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdyaWdodCdcbiAgdmlzaWJsZSA9IGZhbHNlXG4gIGFsaWdubWVudE9wdGlvbnMgPSBbXG4gICAge1xuICAgICAgbGFiZWw6ICdPQ1hfQ1VTVE9NX0dST1VQX0NPTFVNTl9TRUxFQ1RPUi5DT05GSUdVUkVfQUNUSU9OX0NPTFVNTi5MRUZUJyxcbiAgICAgIHZhbHVlOiAnbGVmdCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ09DWF9DVVNUT01fR1JPVVBfQ09MVU1OX1NFTEVDVE9SLkNPTkZJR1VSRV9BQ1RJT05fQ09MVU1OLlJJR0hUJyxcbiAgICAgIHZhbHVlOiAncmlnaHQnLFxuICAgIH0sXG4gIF1cblxuICBmcm96ZW5PcHRpb25zID0gW1xuICAgIHtcbiAgICAgIGxhYmVsOiAnT0NYX0NVU1RPTV9HUk9VUF9DT0xVTU5fU0VMRUNUT1IuQ09ORklHVVJFX0FDVElPTl9DT0xVTU4uWUVTJyxcbiAgICAgIHZhbHVlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdPQ1hfQ1VTVE9NX0dST1VQX0NPTFVNTl9TRUxFQ1RPUi5DT05GSUdVUkVfQUNUSU9OX0NPTFVNTi5OTycsXG4gICAgICB2YWx1ZTogZmFsc2UsXG4gICAgfSxcbiAgXVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gIG9uT3BlbkN1c3RvbUdyb3VwQ29sdW1uU2VsZWN0aW9uRGlhbG9nQ2xpY2soKSB7XG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zTW9kZWwgPSBbLi4udGhpcy5kaXNwbGF5ZWRDb2x1bW5zXVxuICAgIHRoaXMuaGlkZGVuQ29sdW1uc01vZGVsID0gdGhpcy5jb2x1bW5zLmZpbHRlcihcbiAgICAgIChjb2x1bW4pID0+ICF0aGlzLmRpc3BsYXllZENvbHVtbnNNb2RlbC5tYXAoKGMpID0+IGMuaWQpLmluY2x1ZGVzKGNvbHVtbi5pZClcbiAgICApXG4gICAgdGhpcy5mcm96ZW5BY3Rpb25Db2x1bW5Nb2RlbCA9IHRoaXMuZnJvemVuQWN0aW9uQ29sdW1uXG4gICAgdGhpcy5hY3Rpb25Db2x1bW5Qb3NpdGlvbk1vZGVsID0gdGhpcy5hY3Rpb25Db2x1bW5Qb3NpdGlvblxuICAgIHRoaXMudmlzaWJsZSA9IHRydWVcbiAgfVxuXG4gIG9uU2F2ZUNsaWNrKCkge1xuICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlXG4gICAgY29uc3QgY29sSWRzQmVmb3JlID0gdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLm1hcCgoY29sdW1uKSA9PiBjb2x1bW4uaWQpXG4gICAgY29uc3QgY29sSWRzQWZ0ZXIgPSB0aGlzLmRpc3BsYXllZENvbHVtbnNNb2RlbC5tYXAoKGNvbHVtbikgPT4gY29sdW1uLmlkKVxuXG4gICAgaWYgKCFjb2xJZHNBZnRlci5ldmVyeSgoY29sSWQsIGkpID0+IGNvbElkID09PSBjb2xJZHNCZWZvcmVbaV0pKSB7XG4gICAgICB0aGlzLmNvbHVtblNlbGVjdGlvbkNoYW5nZWQuZW1pdCh7IGFjdGl2ZUNvbHVtbnM6IFsuLi50aGlzLmRpc3BsYXllZENvbHVtbnNNb2RlbF0gfSlcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmZyb3plbkFjdGlvbkNvbHVtbiAhPSB0aGlzLmZyb3plbkFjdGlvbkNvbHVtbk1vZGVsIHx8XG4gICAgICB0aGlzLmFjdGlvbkNvbHVtblBvc2l0aW9uICE9IHRoaXMuYWN0aW9uQ29sdW1uUG9zaXRpb25Nb2RlbFxuICAgICkge1xuICAgICAgdGhpcy5hY3Rpb25Db2x1bW5Db25maWdDaGFuZ2VkLmVtaXQoe1xuICAgICAgICBmcm96ZW5BY3Rpb25Db2x1bW46IHRoaXMuZnJvemVuQWN0aW9uQ29sdW1uTW9kZWwsXG4gICAgICAgIGFjdGlvbkNvbHVtblBvc2l0aW9uOiB0aGlzLmFjdGlvbkNvbHVtblBvc2l0aW9uTW9kZWwsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIG9uQ2FuY2VsQ2xpY2soKSB7XG4gICAgdGhpcy52aXNpYmxlID0gZmFsc2VcbiAgfVxufVxuIiwiPHAtYnV0dG9uXG4gIGlkPVwiY3VzdG9tR3JvdXBDb2x1bW5TZWxlY3RvckJ1dHRvblwiXG4gIHR5cGU9XCJidXR0b25cIlxuICAoY2xpY2spPVwib25PcGVuQ3VzdG9tR3JvdXBDb2x1bW5TZWxlY3Rpb25EaWFsb2dDbGljaygpXCJcbiAgW3RpdGxlXT1cIm9wZW5CdXR0b25UaXRsZSB8fCAoJ09DWF9DVVNUT01fR1JPVVBfQ09MVU1OX1NFTEVDVE9SLk9QRU5fQlVUVE9OX0RFVEFJTCcgfCB0cmFuc2xhdGUpXCJcbiAgaWNvbj1cInBpIHBpLWNvZ1wiXG4gIHN0eWxlQ2xhc3M9XCJwLWJ1dHRvblwiXG4gIFthcmlhTGFiZWxdPVwib3BlbkJ1dHRvblRpdGxlIHx8ICgnT0NYX0NVU1RPTV9HUk9VUF9DT0xVTU5fU0VMRUNUT1IuT1BFTl9CVVRUT05fREVUQUlMJyB8IHRyYW5zbGF0ZSlcIlxuPjwvcC1idXR0b24+XG5cbjxwLWRpYWxvZyBoZWFkZXI9XCJIZWFkZXJcIiBbKHZpc2libGUpXT1cInZpc2libGVcIiBbc3R5bGVdPVwieyB3aWR0aDogJzcwJScgfVwiIFttb2RhbF09XCJ0cnVlXCIgW2Nsb3NlQXJpYUxhYmVsXT1cIignT0NYX0NVU1RPTV9HUk9VUF9DT0xVTU5fU0VMRUNUT1IuQVJJQV9MQUJFTFMuQ0xPU0UnIHwgdHJhbnNsYXRlKVwiPlxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXhsIGZvbnQtYm9sZFwiXG4gICAgICA+e3sgZGlhbG9nVGl0bGUgfHwgKCdPQ1hfQ1VTVE9NX0dST1VQX0NPTFVNTl9TRUxFQ1RPUi5ESUFMT0dfVElUTEUnIHwgdHJhbnNsYXRlKSB9fTwvc3BhblxuICAgID5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8cC1waWNrTGlzdFxuICAgIFtzb3VyY2VdPVwiZGlzcGxheWVkQ29sdW1uc01vZGVsXCJcbiAgICBbdGFyZ2V0XT1cImhpZGRlbkNvbHVtbnNNb2RlbFwiXG4gICAgW3NvdXJjZUhlYWRlcl09XCJhY3RpdmVDb2x1bW5zTGFiZWwgfHwgKCdPQ1hfQ1VTVE9NX0dST1VQX0NPTFVNTl9TRUxFQ1RPUi5BQ1RJVkVfQ09MVU1OU19MQUJFTCcgfCB0cmFuc2xhdGUpXCJcbiAgICBbdGFyZ2V0SGVhZGVyXT1cImluYWN0aXZlQ29sdW1uc0xhYmVsIHx8ICgnT0NYX0NVU1RPTV9HUk9VUF9DT0xVTU5fU0VMRUNUT1IuSU5BQ1RJVkVfQ09MVU1OU19MQUJFTCcgfCB0cmFuc2xhdGUpXCJcbiAgICBbZHJhZ2Ryb3BdPVwidHJ1ZVwiXG4gICAgW3Jlc3BvbnNpdmVdPVwiZmFsc2VcIlxuICAgIFtzb3VyY2VTdHlsZV09XCJ7IGhlaWdodDogJzMwMHB4JyB9XCJcbiAgICBbdGFyZ2V0U3R5bGVdPVwieyBoZWlnaHQ6ICczMDBweCcgfVwiXG4gICAgW3VwQnV0dG9uQXJpYUxhYmVsXT1cIignT0NYX0NVU1RPTV9HUk9VUF9DT0xVTU5fU0VMRUNUT1IuQVJJQV9MQUJFTFMuVVAnIHwgdHJhbnNsYXRlKVwiXG4gICAgW3RvcEJ1dHRvbkFyaWFMYWJlbF09XCIoJ09DWF9DVVNUT01fR1JPVVBfQ09MVU1OX1NFTEVDVE9SLkFSSUFfTEFCRUxTLlRPUCcgfCB0cmFuc2xhdGUpXCJcbiAgICBbZG93bkJ1dHRvbkFyaWFMYWJlbF09XCIoJ09DWF9DVVNUT01fR1JPVVBfQ09MVU1OX1NFTEVDVE9SLkFSSUFfTEFCRUxTLkRPV04nIHwgdHJhbnNsYXRlKVwiXG4gICAgW2JvdHRvbUJ1dHRvbkFyaWFMYWJlbF09XCIoJ09DWF9DVVNUT01fR1JPVVBfQ09MVU1OX1NFTEVDVE9SLkFSSUFfTEFCRUxTLkJPVFRPTScgfCB0cmFuc2xhdGUpXCJcbiAgICBbcmlnaHRCdXR0b25BcmlhTGFiZWxdPVwiKCdPQ1hfQ1VTVE9NX0dST1VQX0NPTFVNTl9TRUxFQ1RPUi5BUklBX0xBQkVMUy5SSUdIVCcgfCB0cmFuc2xhdGUpXCJcbiAgICBbYWxsUmlnaHRCdXR0b25BcmlhTGFiZWxdPVwiKCdPQ1hfQ1VTVE9NX0dST1VQX0NPTFVNTl9TRUxFQ1RPUi5BUklBX0xBQkVMUy5BTExfUklHSFQnIHwgdHJhbnNsYXRlKVwiXG4gICAgW2xlZnRCdXR0b25BcmlhTGFiZWxdPVwiKCdPQ1hfQ1VTVE9NX0dST1VQX0NPTFVNTl9TRUxFQ1RPUi5BUklBX0xBQkVMUy5MRUZUJyB8IHRyYW5zbGF0ZSlcIlxuICAgIFthbGxMZWZ0QnV0dG9uQXJpYUxhYmVsXT1cIignT0NYX0NVU1RPTV9HUk9VUF9DT0xVTU5fU0VMRUNUT1IuQVJJQV9MQUJFTFMuQUxMX0xFRlQnIHwgdHJhbnNsYXRlKVwiXG4gID5cbiAgICA8bmctdGVtcGxhdGUgbGV0LWl0ZW0gcFRlbXBsYXRlPVwiaXRlbVwiPlxuICAgICAgPGRpdj57eyBpdGVtLm5hbWVLZXkgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3AtcGlja0xpc3Q+XG5cbiAgPGRpdiBjbGFzcz1cInB0LTRcIj5cbiAgICA8cCBjbGFzcz1cInRleHQteGwgZm9udC1ib2xkXCI+e3snT0NYX0NVU1RPTV9HUk9VUF9DT0xVTU5fU0VMRUNUT1IuQ09ORklHVVJFX0FDVElPTl9DT0xVTU4uVElUTEUnIHwgdHJhbnNsYXRlfX08L3A+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTYgcHgtM1wiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPHAgY2xhc3M9XCJtYi0xXCI+e3snT0NYX0NVU1RPTV9HUk9VUF9DT0xVTU5fU0VMRUNUT1IuQ09ORklHVVJFX0FDVElPTl9DT0xVTU4uRlJFRVpFJyB8IHRyYW5zbGF0ZX19PC9wPlxuICAgICAgICA8cC1zZWxlY3RCdXR0b25cbiAgICAgICAgICBbb3B0aW9uc109XCJmcm96ZW5PcHRpb25zXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImZyb3plbkFjdGlvbkNvbHVtbk1vZGVsXCJcbiAgICAgICAgICBvcHRpb25MYWJlbD1cImxhYmVsXCJcbiAgICAgICAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgICBpZD1cImZyb3plbkFjdGlvbkNvbHVtblwiXG4gICAgICAgICAgbmFtZT1cImZyb3plbi1hY3Rpb24tY29sdW1uLXNlbGVjdC1idXR0b25cIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1vcHRpb24gcFRlbXBsYXRlPiB7e29wdGlvbi5sYWJlbCB8IHRyYW5zbGF0ZX19IDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvcC1zZWxlY3RCdXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxwIGNsYXNzPVwibWItMVwiPnt7J09DWF9DVVNUT01fR1JPVVBfQ09MVU1OX1NFTEVDVE9SLkNPTkZJR1VSRV9BQ1RJT05fQ09MVU1OLlBPU0lUSU9OJyB8IHRyYW5zbGF0ZX19PC9wPlxuICAgICAgICA8cC1zZWxlY3RCdXR0b25cbiAgICAgICAgICBbb3B0aW9uc109XCJhbGlnbm1lbnRPcHRpb25zXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImFjdGlvbkNvbHVtblBvc2l0aW9uTW9kZWxcIlxuICAgICAgICAgIG9wdGlvbkxhYmVsPVwibGFiZWxcIlxuICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIlxuICAgICAgICAgIGlkPVwiYWN0aW9uQ29sdW1uUG9zaXRpb25cIlxuICAgICAgICAgIGNsYXNzPVwibXQtMlwiXG4gICAgICAgICAgbmFtZT1cImFjdGlvbi1jb2x1bW4tcG9zaXRpb24tc2VsZWN0LWJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LW9wdGlvbiBwVGVtcGxhdGU+IHt7b3B0aW9uLmxhYmVsIHwgdHJhbnNsYXRlfX0gPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9wLXNlbGVjdEJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XG4gICAgPHAtYnV0dG9uXG4gICAgICBpZD1cImNhbmNlbEJ1dHRvblwiXG4gICAgICAob25DbGljayk9XCJvbkNhbmNlbENsaWNrKClcIlxuICAgICAgW2xhYmVsXT1cImNhbmNlbEJ1dHRvbkxhYmVsIHx8ICgnT0NYX0NVU1RPTV9HUk9VUF9DT0xVTU5fU0VMRUNUT1IuQ0FOQ0VMX0JVVFRPTl9MQUJFTCcgfCB0cmFuc2xhdGUpXCJcbiAgICAgIHN0eWxlQ2xhc3M9XCJwLWJ1dHRvblwiXG4gICAgPjwvcC1idXR0b24+XG4gICAgPHAtYnV0dG9uXG4gICAgICBpZD1cInNhdmVCdXR0b25cIlxuICAgICAgKG9uQ2xpY2spPVwib25TYXZlQ2xpY2soKVwiXG4gICAgICBbbGFiZWxdPVwic2F2ZUJ1dHRvbkxhYmVsIHx8ICgnT0NYX0NVU1RPTV9HUk9VUF9DT0xVTU5fU0VMRUNUT1IuU0FWRV9CVVRUT05fTEFCRUwnIHwgdHJhbnNsYXRlKVwiXG4gICAgPjwvcC1idXR0b24+XG4gIDwvbmctdGVtcGxhdGU+XG48L3AtZGlhbG9nPlxuIl19
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { PrimeIcons } from 'primeng/api';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "primeng/selectbutton";
|
|
6
|
+
import * as i3 from "@angular/forms";
|
|
7
|
+
import * as i4 from "@ngx-translate/core";
|
|
8
|
+
const ALL_VIEW_LAYOUTS = [
|
|
9
|
+
{ icon: PrimeIcons.LIST, layout: 'list', titleKey: 'OCX_DATA_LAYOUT_SELECTION.LAYOUT.LIST' },
|
|
10
|
+
{ icon: PrimeIcons.TH_LARGE, layout: 'grid', titleKey: 'OCX_DATA_LAYOUT_SELECTION.LAYOUT.GRID' },
|
|
11
|
+
{ icon: PrimeIcons.TABLE, layout: 'table', titleKey: 'OCX_DATA_LAYOUT_SELECTION.LAYOUT.TABLE' },
|
|
12
|
+
];
|
|
13
|
+
export class DataLayoutSelectionComponent {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.supportedViewLayouts = [];
|
|
16
|
+
this.dataViewLayoutChange = new EventEmitter();
|
|
17
|
+
this.viewingLayouts = [];
|
|
18
|
+
}
|
|
19
|
+
set layout(value) {
|
|
20
|
+
this.selectedViewLayout = this.viewingLayouts.find((v) => v.layout === value);
|
|
21
|
+
}
|
|
22
|
+
get layout() {
|
|
23
|
+
return this.selectedViewLayout?.layout || 'table';
|
|
24
|
+
}
|
|
25
|
+
ngOnInit() {
|
|
26
|
+
this.viewingLayouts = ALL_VIEW_LAYOUTS.filter((vl) => this.supportedViewLayouts.includes(vl.layout));
|
|
27
|
+
this.layout = 'table';
|
|
28
|
+
}
|
|
29
|
+
onDataViewLayoutChange(event) {
|
|
30
|
+
this.dataViewLayoutChange.emit(event.layout);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
DataLayoutSelectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DataLayoutSelectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
+
DataLayoutSelectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DataLayoutSelectionComponent, selector: "ocx-data-layout-selection", inputs: { supportedViewLayouts: "supportedViewLayouts", layout: "layout" }, outputs: { dataViewLayoutChange: "dataViewLayoutChange" }, ngImport: i0, template: "<div class=\"flex flex-wrap justify-content-between align-items-center py-1 gap-2\">\n <p-selectButton\n *ngIf=\"viewingLayouts.length > 1\"\n [options]=\"viewingLayouts\"\n [(ngModel)]=\"selectedViewLayout\"\n optionLabel=\"icon\"\n (onChange)=\"onDataViewLayoutChange($event.value)\"\n >\n <ng-template let-item>\n <i [class]=\"item.icon\" [title]=\"item.title || (item.titleKey | translate)\"></i>\n </ng-template>\n </p-selectButton>\n</div>\n", styles: ["::ng-deep .p-buttonset .p-button{min-width:auto}::ng-deep .p-buttonset{display:flex}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.SelectButton, selector: "p-selectButton", inputs: ["options", "optionLabel", "optionValue", "optionDisabled", "tabindex", "multiple", "style", "styleClass", "ariaLabelledBy", "disabled", "dataKey"], outputs: ["onOptionClick", "onChange"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DataLayoutSelectionComponent, decorators: [{
|
|
36
|
+
type: Component,
|
|
37
|
+
args: [{ selector: 'ocx-data-layout-selection', template: "<div class=\"flex flex-wrap justify-content-between align-items-center py-1 gap-2\">\n <p-selectButton\n *ngIf=\"viewingLayouts.length > 1\"\n [options]=\"viewingLayouts\"\n [(ngModel)]=\"selectedViewLayout\"\n optionLabel=\"icon\"\n (onChange)=\"onDataViewLayoutChange($event.value)\"\n >\n <ng-template let-item>\n <i [class]=\"item.icon\" [title]=\"item.title || (item.titleKey | translate)\"></i>\n </ng-template>\n </p-selectButton>\n</div>\n", styles: ["::ng-deep .p-buttonset .p-button{min-width:auto}::ng-deep .p-buttonset{display:flex}\n"] }]
|
|
38
|
+
}], propDecorators: { supportedViewLayouts: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], layout: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], dataViewLayoutChange: [{
|
|
43
|
+
type: Output
|
|
44
|
+
}] } });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1sYXlvdXQtc2VsZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1hY2NlbGVyYXRvci9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS1sYXlvdXQtc2VsZWN0aW9uL2RhdGEtbGF5b3V0LXNlbGVjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtbGF5b3V0LXNlbGVjdGlvbi9kYXRhLWxheW91dC1zZWxlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFBOzs7Ozs7QUFVeEMsTUFBTSxnQkFBZ0IsR0FBcUI7SUFDekMsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSx1Q0FBdUMsRUFBRTtJQUM1RixFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLHVDQUF1QyxFQUFFO0lBQ2hHLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsd0NBQXdDLEVBQUU7Q0FDaEcsQ0FBQTtBQU9ELE1BQU0sT0FBTyw0QkFBNEI7SUFMekM7UUFNVyx5QkFBb0IsR0FBa0IsRUFBRSxDQUFBO1FBU3ZDLHlCQUFvQixHQUE0QyxJQUFJLFlBQVksRUFBRSxDQUFBO1FBRTVGLG1CQUFjLEdBQXFCLEVBQUUsQ0FBQTtLQVd0QztJQXJCQyxJQUNJLE1BQU0sQ0FBQyxLQUFnQztRQUN6QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLENBQUE7SUFDL0UsQ0FBQztJQUNELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sSUFBSSxPQUFPLENBQUE7SUFDbkQsQ0FBQztJQU9ELFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUNwRyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQTtJQUN2QixDQUFDO0lBRUQsc0JBQXNCLENBQUMsS0FBNkQ7UUFDbEYsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDOUMsQ0FBQzs7MEhBdEJVLDRCQUE0Qjs4R0FBNUIsNEJBQTRCLHdNQ3RCekMsOGRBYUE7NEZEU2EsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLDJCQUEyQjs4QkFLNUIsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUVGLE1BQU07c0JBRFQsS0FBSztnQkFRSSxvQkFBb0I7c0JBQTdCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFByaW1lSWNvbnMgfSBmcm9tICdwcmltZW5nL2FwaSdcbmltcG9ydCB7IFByaW1lSWNvbiB9IGZyb20gJy4uLy4uL3V0aWxzL3ByaW1laWNvbi51dGlscydcblxuaW50ZXJmYWNlIFZpZXdpbmdMYXlvdXRzIHtcbiAgaWNvbjogUHJpbWVJY29uXG4gIGxheW91dDogJ2dyaWQnIHwgJ2xpc3QnIHwgJ3RhYmxlJ1xuICB0aXRsZT86IHN0cmluZ1xuICB0aXRsZUtleTogc3RyaW5nXG59XG5cbmNvbnN0IEFMTF9WSUVXX0xBWU9VVFM6IFZpZXdpbmdMYXlvdXRzW10gPSBbXG4gIHsgaWNvbjogUHJpbWVJY29ucy5MSVNULCBsYXlvdXQ6ICdsaXN0JywgdGl0bGVLZXk6ICdPQ1hfREFUQV9MQVlPVVRfU0VMRUNUSU9OLkxBWU9VVC5MSVNUJyB9LFxuICB7IGljb246IFByaW1lSWNvbnMuVEhfTEFSR0UsIGxheW91dDogJ2dyaWQnLCB0aXRsZUtleTogJ09DWF9EQVRBX0xBWU9VVF9TRUxFQ1RJT04uTEFZT1VULkdSSUQnIH0sXG4gIHsgaWNvbjogUHJpbWVJY29ucy5UQUJMRSwgbGF5b3V0OiAndGFibGUnLCB0aXRsZUtleTogJ09DWF9EQVRBX0xBWU9VVF9TRUxFQ1RJT04uTEFZT1VULlRBQkxFJyB9LFxuXVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvY3gtZGF0YS1sYXlvdXQtc2VsZWN0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtbGF5b3V0LXNlbGVjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGEtbGF5b3V0LXNlbGVjdGlvbi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhTGF5b3V0U2VsZWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgc3VwcG9ydGVkVmlld0xheW91dHM6IEFycmF5PHN0cmluZz4gPSBbXVxuICBASW5wdXQoKVxuICBzZXQgbGF5b3V0KHZhbHVlOiAnZ3JpZCcgfCAnbGlzdCcgfCAndGFibGUnKSB7XG4gICAgdGhpcy5zZWxlY3RlZFZpZXdMYXlvdXQgPSB0aGlzLnZpZXdpbmdMYXlvdXRzLmZpbmQoKHYpID0+IHYubGF5b3V0ID09PSB2YWx1ZSlcbiAgfVxuICBnZXQgbGF5b3V0KCk6ICdncmlkJyB8ICdsaXN0JyB8ICd0YWJsZScge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVmlld0xheW91dD8ubGF5b3V0IHx8ICd0YWJsZSdcbiAgfVxuXG4gIEBPdXRwdXQoKSBkYXRhVmlld0xheW91dENoYW5nZTogRXZlbnRFbWl0dGVyPCdncmlkJyB8ICdsaXN0JyB8ICd0YWJsZSc+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgdmlld2luZ0xheW91dHM6IFZpZXdpbmdMYXlvdXRzW10gPSBbXVxuICBzZWxlY3RlZFZpZXdMYXlvdXQ6IFZpZXdpbmdMYXlvdXRzIHwgdW5kZWZpbmVkXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy52aWV3aW5nTGF5b3V0cyA9IEFMTF9WSUVXX0xBWU9VVFMuZmlsdGVyKCh2bCkgPT4gdGhpcy5zdXBwb3J0ZWRWaWV3TGF5b3V0cy5pbmNsdWRlcyh2bC5sYXlvdXQpKVxuICAgIHRoaXMubGF5b3V0ID0gJ3RhYmxlJ1xuICB9XG5cbiAgb25EYXRhVmlld0xheW91dENoYW5nZShldmVudDogeyBpY29uOiBQcmltZUljb247IGxheW91dDogJ2dyaWQnIHwgJ2xpc3QnIHwgJ3RhYmxlJyB9KTogdm9pZCB7XG4gICAgdGhpcy5kYXRhVmlld0xheW91dENoYW5nZS5lbWl0KGV2ZW50LmxheW91dClcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBweS0xIGdhcC0yXCI+XG4gIDxwLXNlbGVjdEJ1dHRvblxuICAgICpuZ0lmPVwidmlld2luZ0xheW91dHMubGVuZ3RoID4gMVwiXG4gICAgW29wdGlvbnNdPVwidmlld2luZ0xheW91dHNcIlxuICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRWaWV3TGF5b3V0XCJcbiAgICBvcHRpb25MYWJlbD1cImljb25cIlxuICAgIChvbkNoYW5nZSk9XCJvbkRhdGFWaWV3TGF5b3V0Q2hhbmdlKCRldmVudC52YWx1ZSlcIlxuICA+XG4gICAgPG5nLXRlbXBsYXRlIGxldC1pdGVtPlxuICAgICAgPGkgW2NsYXNzXT1cIml0ZW0uaWNvblwiIFt0aXRsZV09XCJpdGVtLnRpdGxlIHx8IChpdGVtLnRpdGxlS2V5IHwgdHJhbnNsYXRlKVwiPjwvaT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3Atc2VsZWN0QnV0dG9uPlxuPC9kaXY+XG4iXX0=
|