aril 0.0.82 → 0.0.83

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.
@@ -1,57 +1,85 @@
1
1
  import { NgFor, NgForOf, NgStyle, NgTemplateOutlet } from '@angular/common';
2
2
  import { NgModule } from '@angular/core';
3
- import { FormsModule } from '@angular/forms';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { ButtonModule } from 'primeng/button';
5
+ import { MenuModule } from 'primeng/menu';
6
+ import { OrderListModule } from 'primeng/orderlist';
7
+ import { OverlayPanelModule } from 'primeng/overlaypanel';
4
8
  import { TableModule } from 'primeng/table';
5
9
  import { TooltipModule } from 'primeng/tooltip';
6
10
  import { ButtonComponent } from 'aril/ui/button';
11
+ import { CheckboxComponent } from 'aril/ui/checkbox';
12
+ import { FieldComponent } from 'aril/ui/field';
13
+ import { ARiLFormModule } from 'aril/ui/form';
14
+ import { RadioButtonComponent } from 'aril/ui/radioButton';
7
15
  import { TextComponent } from 'aril/ui/text';
8
16
  import { TableColumnComponent } from './src/table-column.component';
9
17
  import { TableComponent } from './src/table.component';
10
- import { MenuModule } from 'primeng/menu';
11
- import { ButtonModule } from 'primeng/button';
12
18
  import * as i0 from "@angular/core";
13
- export * from './src/table.component';
19
+ export * from './src/interfaces';
14
20
  export * from './src/table-column.component';
21
+ export * from './src/table.component';
15
22
  const components = [TableComponent, TableColumnComponent];
16
23
  export class ARiLTableModule {
17
24
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ARiLTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
18
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: ARiLTableModule, declarations: [TableComponent, TableColumnComponent], imports: [TableModule,
19
- TooltipModule,
25
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: ARiLTableModule, declarations: [TableComponent, TableColumnComponent], imports: [ARiLFormModule,
20
26
  ButtonComponent,
21
- TextComponent,
27
+ ButtonModule,
28
+ CheckboxComponent,
29
+ FieldComponent,
22
30
  FormsModule,
31
+ MenuModule,
23
32
  NgFor,
24
33
  NgForOf,
25
34
  NgStyle,
26
35
  NgTemplateOutlet,
27
- ButtonModule,
28
- MenuModule], exports: [TableComponent, TableColumnComponent] }); }
29
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ARiLTableModule, imports: [TableModule,
30
- TooltipModule,
31
- ButtonComponent,
36
+ OrderListModule,
37
+ OverlayPanelModule,
38
+ RadioButtonComponent,
39
+ ReactiveFormsModule,
40
+ TableModule,
32
41
  TextComponent,
33
- FormsModule,
42
+ TooltipModule], exports: [TableComponent, TableColumnComponent] }); }
43
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ARiLTableModule, imports: [ARiLFormModule,
44
+ ButtonComponent,
34
45
  ButtonModule,
35
- MenuModule] }); }
46
+ CheckboxComponent,
47
+ FieldComponent,
48
+ FormsModule,
49
+ MenuModule,
50
+ OrderListModule,
51
+ OverlayPanelModule,
52
+ RadioButtonComponent,
53
+ ReactiveFormsModule,
54
+ TableModule,
55
+ TextComponent,
56
+ TooltipModule] }); }
36
57
  }
37
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ARiLTableModule, decorators: [{
38
59
  type: NgModule,
39
60
  args: [{
40
61
  imports: [
41
- TableModule,
42
- TooltipModule,
62
+ ARiLFormModule,
43
63
  ButtonComponent,
44
- TextComponent,
64
+ ButtonModule,
65
+ CheckboxComponent,
66
+ FieldComponent,
45
67
  FormsModule,
68
+ MenuModule,
46
69
  NgFor,
47
70
  NgForOf,
48
71
  NgStyle,
49
72
  NgTemplateOutlet,
50
- ButtonModule,
51
- MenuModule
73
+ OrderListModule,
74
+ OverlayPanelModule,
75
+ RadioButtonComponent,
76
+ ReactiveFormsModule,
77
+ TableModule,
78
+ TextComponent,
79
+ TooltipModule
52
80
  ],
53
81
  exports: [components],
54
82
  declarations: [components]
55
83
  }]
56
84
  }] });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL3RhYmxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQVEsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFOUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDhCQUE4QixDQUFDO0FBRTdDLE1BQU0sVUFBVSxHQUFHLENBQUMsY0FBYyxFQUFFLG9CQUFvQixDQUFDLENBQUM7QUFtQjFELE1BQU0sT0FBTyxlQUFlOzhHQUFmLGVBQWU7K0dBQWYsZUFBZSxpQkFuQlIsY0FBYyxFQUFFLG9CQUFvQixhQUl0RCxXQUFXO1lBQ1gsYUFBYTtZQUNiLGVBQWU7WUFDZixhQUFhO1lBQ2IsV0FBVztZQUNYLEtBQUs7WUFDTCxPQUFPO1lBQ1AsT0FBTztZQUNQLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osVUFBVSxhQWRRLGNBQWMsRUFBRSxvQkFBb0I7K0dBbUIzQyxlQUFlLFlBZjFCLFdBQVc7WUFDWCxhQUFhO1lBQ2IsZUFBZTtZQUNmLGFBQWE7WUFDYixXQUFXO1lBS1gsWUFBWTtZQUNaLFVBQVU7OzJGQUtDLGVBQWU7a0JBakIzQixRQUFRO21CQUFDO29CQUNULE9BQU8sRUFBRTt3QkFDUixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixhQUFhO3dCQUNiLFdBQVc7d0JBQ1gsS0FBSzt3QkFDTCxPQUFPO3dCQUNQLE9BQU87d0JBQ1AsZ0JBQWdCO3dCQUNoQixZQUFZO3dCQUNaLFVBQVU7cUJBQ1Y7b0JBQ0QsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDO29CQUNyQixZQUFZLEVBQUUsQ0FBQyxVQUFVLENBQUM7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdGb3IsIE5nRm9yT2YsIE5nU3R5bGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IFRhYmxlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XHJcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xyXG5cclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS9idXR0b24nO1xyXG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS90ZXh0JztcclxuXHJcbmltcG9ydCB7IFRhYmxlQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9zcmMvdGFibGUtY29sdW1uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9zcmMvdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWVudSwgTWVudU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvbWVudSc7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3RhYmxlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3RhYmxlLWNvbHVtbi5jb21wb25lbnQnO1xyXG5cclxuY29uc3QgY29tcG9uZW50cyA9IFtUYWJsZUNvbXBvbmVudCwgVGFibGVDb2x1bW5Db21wb25lbnRdO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuXHRpbXBvcnRzOiBbXHJcblx0XHRUYWJsZU1vZHVsZSxcclxuXHRcdFRvb2x0aXBNb2R1bGUsXHJcblx0XHRCdXR0b25Db21wb25lbnQsXHJcblx0XHRUZXh0Q29tcG9uZW50LFxyXG5cdFx0Rm9ybXNNb2R1bGUsXHJcblx0XHROZ0ZvcixcclxuXHRcdE5nRm9yT2YsXHJcblx0XHROZ1N0eWxlLFxyXG5cdFx0TmdUZW1wbGF0ZU91dGxldCxcclxuXHRcdEJ1dHRvbk1vZHVsZSxcclxuXHRcdE1lbnVNb2R1bGVcclxuXHRdLFxyXG5cdGV4cG9ydHM6IFtjb21wb25lbnRzXSxcclxuXHRkZWNsYXJhdGlvbnM6IFtjb21wb25lbnRzXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVJpTFRhYmxlTW9kdWxlIHt9XHJcbiJdfQ==
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL3RhYmxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUV2RCxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx1QkFBdUIsQ0FBQztBQUV0QyxNQUFNLFVBQVUsR0FBRyxDQUFDLGNBQWMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0FBMEIxRCxNQUFNLE9BQU8sZUFBZTs4R0FBZixlQUFlOytHQUFmLGVBQWUsaUJBMUJSLGNBQWMsRUFBRSxvQkFBb0IsYUFJdEQsY0FBYztZQUNkLGVBQWU7WUFDZixZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLGNBQWM7WUFDZCxXQUFXO1lBQ1gsVUFBVTtZQUNWLEtBQUs7WUFDTCxPQUFPO1lBQ1AsT0FBTztZQUNQLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLG9CQUFvQjtZQUNwQixtQkFBbUI7WUFDbkIsV0FBVztZQUNYLGFBQWE7WUFDYixhQUFhLGFBckJLLGNBQWMsRUFBRSxvQkFBb0I7K0dBMEIzQyxlQUFlLFlBdEIxQixjQUFjO1lBQ2QsZUFBZTtZQUNmLFlBQVk7WUFDWixpQkFBaUI7WUFDakIsY0FBYztZQUNkLFdBQVc7WUFDWCxVQUFVO1lBS1YsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLFdBQVc7WUFDWCxhQUFhO1lBQ2IsYUFBYTs7MkZBS0YsZUFBZTtrQkF4QjNCLFFBQVE7bUJBQUM7b0JBQ1QsT0FBTyxFQUFFO3dCQUNSLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLFVBQVU7d0JBQ1YsS0FBSzt3QkFDTCxPQUFPO3dCQUNQLE9BQU87d0JBQ1AsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixhQUFhO3FCQUNiO29CQUNELE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQztvQkFDckIsWUFBWSxFQUFFLENBQUMsVUFBVSxDQUFDO2lCQUMxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nRm9yLCBOZ0Zvck9mLCBOZ1N0eWxlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IE1lbnVNb2R1bGUgfSBmcm9tICdwcmltZW5nL21lbnUnO1xyXG5pbXBvcnQgeyBPcmRlckxpc3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL29yZGVybGlzdCc7XHJcbmltcG9ydCB7IE92ZXJsYXlQYW5lbE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvb3ZlcmxheXBhbmVsJztcclxuaW1wb3J0IHsgVGFibGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcclxuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XHJcblxyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdhcmlsL3VpL2J1dHRvbic7XHJcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS9jaGVja2JveCc7XHJcbmltcG9ydCB7IEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS9maWVsZCc7XHJcbmltcG9ydCB7IEFSaUxGb3JtTW9kdWxlIH0gZnJvbSAnYXJpbC91aS9mb3JtJztcclxuaW1wb3J0IHsgUmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICdhcmlsL3VpL3JhZGlvQnV0dG9uJztcclxuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJ2FyaWwvdWkvdGV4dCc7XHJcblxyXG5pbXBvcnQgeyBUYWJsZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vc3JjL3RhYmxlLWNvbHVtbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vc3JjL3RhYmxlLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL3NyYy9pbnRlcmZhY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9zcmMvdGFibGUtY29sdW1uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3RhYmxlLmNvbXBvbmVudCc7XHJcblxyXG5jb25zdCBjb21wb25lbnRzID0gW1RhYmxlQ29tcG9uZW50LCBUYWJsZUNvbHVtbkNvbXBvbmVudF07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG5cdGltcG9ydHM6IFtcclxuXHRcdEFSaUxGb3JtTW9kdWxlLFxyXG5cdFx0QnV0dG9uQ29tcG9uZW50LFxyXG5cdFx0QnV0dG9uTW9kdWxlLFxyXG5cdFx0Q2hlY2tib3hDb21wb25lbnQsXHJcblx0XHRGaWVsZENvbXBvbmVudCxcclxuXHRcdEZvcm1zTW9kdWxlLFxyXG5cdFx0TWVudU1vZHVsZSxcclxuXHRcdE5nRm9yLFxyXG5cdFx0TmdGb3JPZixcclxuXHRcdE5nU3R5bGUsXHJcblx0XHROZ1RlbXBsYXRlT3V0bGV0LFxyXG5cdFx0T3JkZXJMaXN0TW9kdWxlLFxyXG5cdFx0T3ZlcmxheVBhbmVsTW9kdWxlLFxyXG5cdFx0UmFkaW9CdXR0b25Db21wb25lbnQsXHJcblx0XHRSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG5cdFx0VGFibGVNb2R1bGUsXHJcblx0XHRUZXh0Q29tcG9uZW50LFxyXG5cdFx0VG9vbHRpcE1vZHVsZVxyXG5cdF0sXHJcblx0ZXhwb3J0czogW2NvbXBvbmVudHNdLFxyXG5cdGRlY2xhcmF0aW9uczogW2NvbXBvbmVudHNdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBUmlMVGFibGVNb2R1bGUge31cclxuIl19
@@ -0,0 +1,19 @@
1
+ export var DateFormat;
2
+ (function (DateFormat) {
3
+ DateFormat["Hour"] = "hh:mm";
4
+ DateFormat["Time"] = "dd/MMMM/yyyy hh:mm";
5
+ DateFormat["Second"] = "dd/MMMM/yyyy hh:mm:ss";
6
+ DateFormat["Minute"] = "dd/MMMM/yyyy hh:mm";
7
+ DateFormat["Day"] = "dd/MMMM/yyyy";
8
+ DateFormat["OnlyDay"] = "dd";
9
+ DateFormat["Month"] = "MMMM/yyyy";
10
+ DateFormat["MonthInt"] = "MM/yyyy";
11
+ DateFormat["OnlyMonth"] = "MMMM";
12
+ DateFormat["Year"] = "yyyy";
13
+ })(DateFormat || (DateFormat = {}));
14
+ export var ExportType;
15
+ (function (ExportType) {
16
+ ExportType["Csv"] = "CSV";
17
+ ExportType["Excel"] = "EXCEL";
18
+ })(ExportType || (ExportType = {}));
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdWkvdGFibGUvc3JjL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0NBLE1BQU0sQ0FBTixJQUFZLFVBV1g7QUFYRCxXQUFZLFVBQVU7SUFDckIsNEJBQWMsQ0FBQTtJQUNkLHlDQUEyQixDQUFBO0lBQzNCLDhDQUFnQyxDQUFBO0lBQ2hDLDJDQUE2QixDQUFBO0lBQzdCLGtDQUFvQixDQUFBO0lBQ3BCLDRCQUFjLENBQUE7SUFDZCxpQ0FBbUIsQ0FBQTtJQUNuQixrQ0FBb0IsQ0FBQTtJQUNwQixnQ0FBa0IsQ0FBQTtJQUNsQiwyQkFBYSxDQUFBO0FBQ2QsQ0FBQyxFQVhXLFVBQVUsS0FBVixVQUFVLFFBV3JCO0FBRUQsTUFBTSxDQUFOLElBQVksVUFHWDtBQUhELFdBQVksVUFBVTtJQUNyQix5QkFBVyxDQUFBO0lBQ1gsNkJBQWUsQ0FBQTtBQUNoQixDQUFDLEVBSFcsVUFBVSxLQUFWLFVBQVUsUUFHckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vKipcclxuICogYGV4cG9ydExhYmVsYCBkb3N5YSBpc21pXHJcbiAqXHJcbiAqIGByb3V0ZWAgc2VydmljZSBwYXRoXHJcbiAqXHJcbiAqIGBwYXJhbXNgIHNlcnZpY2UgcGF5bG9hZFxyXG4gKlxyXG4gKiBgZGF0ZUNvbHVtbkZvcm1hdE1hcGAgY29sdW1uIHZhbHVlIERhdGUgaXNlIGZvcm1hdCB2ZXJpbG1lbGkge0BsaW5rIERhdGVGb3JtYXR9XHJcbiAqXHJcbiAqIGBleGNsdWRlZEZpZWxkc2AgZXhwb3J0IGVkaWxtZW1lc2kgaXN0ZW5lbiBmaWVsZCdsYXJcclxuICpcclxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcmlsLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvTlREL3BhZ2VzLzg0MjIwMzEzOS9CYXRjaCtFeGNlbCtDU1YrRXhwb3J0K0Zyb20rQ29udHJvbGxlcnN9XHJcbiAqXHJcbiAqIEB1c2FnZU5vdGVzXHJcbiAqICMjIyBLdWxsYW7EsW0gw5ZybmXEn2lcclxuICpcclxuICogYGBgXHJcbiAqIDxpIHJvbGU9XCJidXR0b25cIiBjbGFzcz1cInBpIHBpLWZpbGUtZXhwb3J0XCIgKGNsaWNrKT1cInRhYmxlUmVmLnRvZ2dsZUV4cG9ydCgkZXZlbnQpXCI+PC9pPlxyXG4gKiBcclxuICogPGFyaWwtdGFibGVcclxuICogICAgICAjdGFibGVSZWZcclxuICogICAgICBbZXhwb3J0Q29uZmlnXT1cIntcclxuICpcdFx0XHRleHBvcnRMYWJlbDogJ1TDvGtldGltIExpc3Rlc2knLFxyXG4gKlx0XHRcdHJvdXRlOiAnY29uc3VtcHRpb25zL3NlYXJjaCcsXHJcbiAqXHRcdFx0cGFyYW1zOiBbZm9ybS52YWx1ZV0sXHJcbiAqXHRcdFx0ZXhjbHVkZWRGaWVsZHM6IFsnaWQnXVxyXG4gKlx0XHRcdGRhdGVDb2x1bW5Gb3JtYXRNYXA6IHsgc3RhcnREYXRlOiBEYXRlRm9ybWF0LlllYXIsIGVuZERhdGU6IERhdGVGb3JtYXQuSG91ciB9XHJcbiAqICAgICAgfVwiPlxyXG4gKiBgYGBcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXhwb3J0T3B0aW9ucyBleHRlbmRzIE9taXQ8RXhwb3J0UmVxdWVzdCwgJ2V4cG9ydFR5cGUnIHwgJ2hlYWRlck5hbWVzJyB8ICdvdXRwdXRGaWVsZHMnPiB7XHJcblx0ZXhjbHVkZWRGaWVsZHM/OiBzdHJpbmdbXTtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRGF0ZUZvcm1hdCB7XHJcblx0SG91ciA9ICdoaDptbScsXHJcblx0VGltZSA9ICdkZC9NTU1NL3l5eXkgaGg6bW0nLFxyXG5cdFNlY29uZCA9ICdkZC9NTU1NL3l5eXkgaGg6bW06c3MnLFxyXG5cdE1pbnV0ZSA9ICdkZC9NTU1NL3l5eXkgaGg6bW0nLFxyXG5cdERheSA9ICdkZC9NTU1NL3l5eXknLFxyXG5cdE9ubHlEYXkgPSAnZGQnLFxyXG5cdE1vbnRoID0gJ01NTU0veXl5eScsXHJcblx0TW9udGhJbnQgPSAnTU0veXl5eScsXHJcblx0T25seU1vbnRoID0gJ01NTU0nLFxyXG5cdFllYXIgPSAneXl5eSdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRXhwb3J0VHlwZSB7XHJcblx0Q3N2ID0gJ0NTVicsXHJcblx0RXhjZWwgPSAnRVhDRUwnXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXhwb3J0UmVxdWVzdCB7XHJcblx0ZXhwb3J0VHlwZTogRXhwb3J0VHlwZTtcclxuXHRleHBvcnRMYWJlbDogc3RyaW5nO1xyXG5cdHJvdXRlOiBzdHJpbmc7XHJcblx0cGFyYW1zOiBBcnJheTxhbnk+O1xyXG5cdGhlYWRlck5hbWVzOiBzdHJpbmdbXTtcclxuXHRvdXRwdXRGaWVsZHM6IHN0cmluZ1tdO1xyXG5cdGNvbHVtbkZpZWxkVmFsdWVNYXA/OiBDb2x1bW5GaWVsZFZhbHVlTWFwIHwgc3RyaW5nO1xyXG5cdGRhdGVDb2x1bW5Gb3JtYXRNYXA/OiBEYXRlQ29sdW1uRm9ybWF0TWFwO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEV4cG9ydEZvcm0ge1xyXG5cdGV4cG9ydFR5cGU6IEZvcm1Db250cm9sPEV4cG9ydFR5cGU+O1xyXG5cdGV4cG9ydExhYmVsOiBGb3JtQ29udHJvbDxzdHJpbmc+O1xyXG5cdGNvbHVtbnM6IEZvcm1BcnJheTxGb3JtR3JvdXA8Q29sRm9ybT4+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbEZvcm0ge1xyXG5cdGNoZWNrZWQ6IEZvcm1Db250cm9sPGJvb2xlYW4+O1xyXG5cdHRpdGxlOiBGb3JtQ29udHJvbDxzdHJpbmc+O1xyXG5cdGRhdGFLZXk6IEZvcm1Db250cm9sPHN0cmluZz47XHJcbn1cclxuXHJcbmludGVyZmFjZSBDb2x1bW5GaWVsZFZhbHVlTWFwIHtcclxuXHRba2V5OiBzdHJpbmddOiBDb2x1bW5GaWVsZFZhbHVlTWFwIHwgc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgRGF0ZUNvbHVtbkZvcm1hdE1hcCB7XHJcblx0W2tleTogc3RyaW5nXTogRGF0ZUZvcm1hdDtcclxufVxyXG4iXX0=
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
22
22
  type: ContentChild,
23
23
  args: [TemplateRef]
24
24
  }] } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdWkvdGFibGUvc3JjL3RhYmxlLWNvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFzQjVFLE1BQU0sT0FBTyxvQkFBb0I7SUFKakM7UUFLQyxTQUFJLEdBQUcsS0FBSyxDQUFhLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDakMsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUNsQyxXQUFNLEdBQUcsS0FBSyxFQUFjLENBQUM7UUFDN0Isd0JBQW1CLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQzVDLG9CQUFlLEdBQUcsS0FBSyxFQUFvQixDQUFDO0tBRzVDOzhHQVRZLG9CQUFvQjtrR0FBcEIsb0JBQW9CLG80QkFRbEIsV0FBVyxnREFWZiw2QkFBNkI7OzJGQUUzQixvQkFBb0I7a0JBSmhDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFLDZCQUE2QjtpQkFDdkM7OEJBUzJCLFFBQVE7c0JBQWxDLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBUZW1wbGF0ZVJlZiwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbnR5cGUgVmFsdWVUeXBlcyA9ICd0ZXh0JyB8ICdudW1lcmljJyB8ICdkYXRlJyB8ICdib29sZWFuJyB8ICdjdXN0b20nIHwgJ29wZXJhdGlvbnMnO1xyXG5leHBvcnQgdHlwZSBBbGlnblR5cGVzID0gJ2xlZnQnIHwgJ3JpZ2h0JyB8ICdjZW50ZXInO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUNvbHVtbnMge1xyXG5cdF9yZXN1bHRzOiBBcnJheTxUYWJsZUNvbHVtbj47XHJcbn1cclxuaW50ZXJmYWNlIFRhYmxlQ29sdW1uIHtcclxuXHRmaWVsZDogc3RyaW5nO1xyXG5cdGhlYWRlcjogc3RyaW5nO1xyXG5cdHR5cGU6IFZhbHVlVHlwZXM7XHJcblx0aXNPcGVyYXRpb24/OiBib29sZWFuO1xyXG5cdGlzU2hvd0hlYWRlclRvb2x0aXA/OiBib29sZWFuO1xyXG5cdHRvb2x0aXBUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XHJcblx0dGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXJpbC10YWJsZS1jb2x1bW4nLFxyXG5cdHRlbXBsYXRlOiBgIDxuZy1jb250ZW50PjwvbmctY29udGVudD4gYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5Db21wb25lbnQge1xyXG5cdHR5cGUgPSBpbnB1dDxWYWx1ZVR5cGVzPigndGV4dCcpO1xyXG5cdGZpZWxkID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xyXG5cdGhlYWRlciA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcclxuXHR0QWxpZ24gPSBpbnB1dDxBbGlnblR5cGVzPigpO1xyXG5cdGlzU2hvd0hlYWRlclRvb2x0aXAgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0dG9vbHRpcFRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8YW55Pj4oKTtcclxuXHJcblx0QENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZikgdGVtcGxhdGU6IGFueTtcclxufVxyXG4iXX0=
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdWkvdGFibGUvc3JjL3RhYmxlLWNvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFzQnpGLE1BQU0sT0FBTyxvQkFBb0I7SUFKakM7UUFLQyxTQUFJLEdBQUcsS0FBSyxDQUFhLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDakMsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUNsQyxXQUFNLEdBQUcsS0FBSyxFQUFjLENBQUM7UUFDN0Isd0JBQW1CLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQzVDLG9CQUFlLEdBQUcsS0FBSyxFQUFvQixDQUFDO0tBRzVDOzhHQVRZLG9CQUFvQjtrR0FBcEIsb0JBQW9CLG80QkFRbEIsV0FBVyxnREFWZiw2QkFBNkI7OzJGQUUzQixvQkFBb0I7a0JBSmhDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFLDZCQUE2QjtpQkFDdkM7OEJBUzJCLFFBQVE7c0JBQWxDLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dFNpZ25hbCwgVGVtcGxhdGVSZWYsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG50eXBlIFZhbHVlVHlwZXMgPSAndGV4dCcgfCAnbnVtZXJpYycgfCAnZGF0ZScgfCAnYm9vbGVhbicgfCAnY3VzdG9tJyB8ICdvcGVyYXRpb25zJztcclxuZXhwb3J0IHR5cGUgQWxpZ25UeXBlcyA9ICdsZWZ0JyB8ICdyaWdodCcgfCAnY2VudGVyJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVDb2x1bW5zIHtcclxuXHRfcmVzdWx0czogQXJyYXk8VGFibGVDb2x1bW4+O1xyXG59XHJcbmludGVyZmFjZSBUYWJsZUNvbHVtbiB7XHJcblx0ZmllbGQ6IElucHV0U2lnbmFsPHN0cmluZz47XHJcblx0aGVhZGVyOiBJbnB1dFNpZ25hbDxzdHJpbmc+O1xyXG5cdHR5cGU6IElucHV0U2lnbmFsPFZhbHVlVHlwZXM+O1xyXG5cdGlzT3BlcmF0aW9uPzogYm9vbGVhbjtcclxuXHRpc1Nob3dIZWFkZXJUb29sdGlwPzogYm9vbGVhbjtcclxuXHR0b29sdGlwVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cdHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FyaWwtdGFibGUtY29sdW1uJyxcclxuXHR0ZW1wbGF0ZTogYCA8bmctY29udGVudD48L25nLWNvbnRlbnQ+IGBcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29sdW1uQ29tcG9uZW50IHtcclxuXHR0eXBlID0gaW5wdXQ8VmFsdWVUeXBlcz4oJ3RleHQnKTtcclxuXHRmaWVsZCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcclxuXHRoZWFkZXIgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XHJcblx0dEFsaWduID0gaW5wdXQ8QWxpZ25UeXBlcz4oKTtcclxuXHRpc1Nob3dIZWFkZXJUb29sdGlwID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdHRvb2x0aXBUZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4+KCk7XHJcblxyXG5cdEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpIHRlbXBsYXRlOiBhbnk7XHJcbn1cclxuIl19
@@ -1,16 +1,29 @@
1
1
  import { Component, ContentChildren, EventEmitter, Input, Output, ViewChild, effect, input } from '@angular/core';
2
+ import { Validators } from '@angular/forms';
3
+ import { OverlayPanel } from 'primeng/overlaypanel';
2
4
  import { Table } from 'primeng/table';
3
- import * as FileSaver from 'file-saver';
4
- import jsPDF from 'jspdf';
5
- import autoTable from 'jspdf-autotable';
5
+ import { saveAs } from 'file-saver';
6
+ import { firstValueFrom, switchMap } from 'rxjs';
7
+ import { API_CONFIGS } from 'aril/boot/config/api';
6
8
  import { ProxyTypes } from 'aril/http';
7
9
  import { tranlations } from './i18n';
10
+ import { ExportType } from './interfaces';
8
11
  import { TableColumnComponent } from './table-column.component';
9
12
  import * as i0 from "@angular/core";
10
- import * as i1 from "primeng/api";
11
- import * as i2 from "primeng/table";
12
- import * as i3 from "primeng/tooltip";
13
- import * as i4 from "@angular/common";
13
+ import * as i1 from "@angular/common/http";
14
+ import * as i2 from "@angular/forms";
15
+ import * as i3 from "primeng/api";
16
+ import * as i4 from "aril/ui/form";
17
+ import * as i5 from "aril/ui/button";
18
+ import * as i6 from "aril/ui/checkbox";
19
+ import * as i7 from "aril/ui/field";
20
+ import * as i8 from "primeng/tooltip";
21
+ import * as i9 from "@angular/common";
22
+ import * as i10 from "primeng/orderlist";
23
+ import * as i11 from "primeng/overlaypanel";
24
+ import * as i12 from "aril/ui/radioButton";
25
+ import * as i13 from "primeng/table";
26
+ import * as i14 from "aril/ui/text";
14
27
  /* TODO :
15
28
  * server-side-proxy (ProxyTypes.ServerSide)
16
29
  * search & colum filter & sort
@@ -19,9 +32,10 @@ import * as i4 from "@angular/common";
19
32
  */
20
33
  const pageOptions = [10, 20, 50, 100];
21
34
  export class TableComponent {
22
- constructor(primengConfig, cdr) {
35
+ constructor(http, fb, primengConfig) {
36
+ this.http = http;
37
+ this.fb = fb;
23
38
  this.primengConfig = primengConfig;
24
- this.cdr = cdr;
25
39
  this.onPageEvent = new EventEmitter();
26
40
  this.selectionEvent = new EventEmitter();
27
41
  this.kebabMenuItems = [];
@@ -42,8 +56,17 @@ export class TableComponent {
42
56
  this.isFirstRowSelected = input(false);
43
57
  this.dataKey = input('');
44
58
  this.selectedRowsInput = input([]);
59
+ /**
60
+ * @see {@link ExportOptions}
61
+ */
62
+ this.exportConfig = input();
63
+ this.exportTypeOptions = [
64
+ { key: ExportType.Excel, label: 'Excel', fileExtension: '.xlsx' },
65
+ { key: ExportType.Csv, label: 'Csv', fileExtension: '.csv' }
66
+ ];
45
67
  this.pageOptions = pageOptions;
46
68
  this.exportColumns = [];
69
+ this.toggleExport = (event) => this.op.toggle(event);
47
70
  this.primengConfig.setTranslation(tranlations);
48
71
  effect(() => {
49
72
  if (this.isFirstRowSelected() && this.data()) {
@@ -56,57 +79,80 @@ export class TableComponent {
56
79
  this.selectedRows = this.selectedRowsInput();
57
80
  }
58
81
  });
59
- }
60
- ngAfterViewInit() {
61
- if (this.columns) {
62
- this.exportColumns = this.columns._results.map((col) => ({ title: col.header, dataKey: col.field }));
63
- }
64
- }
65
- excelExport() {
66
- import('xlsx').then((xlsx) => {
67
- const worksheet = xlsx.utils.json_to_sheet(this.data());
68
- const workbook = { Sheets: { data: worksheet }, SheetNames: ['data'] };
69
- const excelBuffer = xlsx.write(workbook, { bookType: 'xlsx', type: 'array' });
70
- this.saveAsExcelFile(excelBuffer, !this.exportFileName ? this.exportFileName : 'excel_worksheet');
82
+ effect(() => {
83
+ if (this.exportConfig()) {
84
+ this.createExportForm();
85
+ }
71
86
  });
72
87
  }
73
- saveAsExcelFile(buffer, fileName) {
74
- const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';
75
- const EXCEL_EXTENSION = '.xlsx';
76
- const data = new Blob([buffer], {
77
- type: EXCEL_TYPE
88
+ createExportForm() {
89
+ const { exportLabel } = this.exportConfig();
90
+ this.exportForm = this.fb.group({
91
+ exportType: this.fb.control(ExportType.Excel, Validators.required),
92
+ exportLabel: this.fb.control(exportLabel, Validators.required),
93
+ columns: this.fb.array([])
78
94
  });
79
- FileSaver.saveAs(data, fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION);
80
- }
81
- async exportPdf() {
82
- const doc = new jsPDF('portrait', 'px', 'a4');
83
- autoTable(doc, {
84
- columns: this.exportColumns,
85
- body: this.data()
95
+ this.columns._results
96
+ .filter((col) => col.type() !== 'operations')
97
+ .filter((col) => {
98
+ const exportConfig = this.exportConfig();
99
+ const excludedFields = exportConfig?.excludedFields ?? [];
100
+ return !excludedFields.includes(col.field());
101
+ })
102
+ .forEach((col) => {
103
+ const colGroup = this.fb.group({
104
+ checked: this.fb.control(true),
105
+ title: this.fb.control(col.header()),
106
+ dataKey: this.fb.control(col.field())
107
+ });
108
+ this.exportForm.controls.columns.push(colGroup);
86
109
  });
87
- doc.save(`${this.exportFileName}_export_${new Date().getTime()}.pdf`);
110
+ }
111
+ async export() {
112
+ const { exportType, exportLabel, columns } = this.exportForm.value;
113
+ const { route, params, columnFieldValueMap, dateColumnFormatMap } = this.exportConfig();
114
+ const checkedColumns = columns.filter((t) => t.checked);
115
+ const fileExtension = this.exportTypeOptions.find((t) => t.key === exportType)?.fileExtension;
116
+ const request = {
117
+ route: route,
118
+ params: params,
119
+ exportType: exportType,
120
+ exportLabel: exportLabel,
121
+ columnFieldValueMap: columnFieldValueMap,
122
+ dateColumnFormatMap: dateColumnFormatMap,
123
+ headerNames: checkedColumns.map((col) => col.title),
124
+ outputFields: checkedColumns.map((col) => col.dataKey)
125
+ };
126
+ const response = await firstValueFrom(this.http.post(API_CONFIGS.api + '/batch-exporters/export', request).pipe(switchMap((res) => this.http.get(API_CONFIGS.api + '/bucket-objects/download', {
127
+ params: { url: res.url },
128
+ responseType: 'blob'
129
+ }))));
130
+ saveAs(response, `${exportLabel}-${new Date().getTime()}${fileExtension}`);
88
131
  }
89
132
  clear() {
90
133
  this.tableRef.value = [];
91
134
  this.tableRef.clear();
92
135
  }
93
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TableComponent, deps: [{ token: i1.PrimeNGConfig }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
94
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: TableComponent, selector: "aril-table", inputs: { kebabMenuItems: { classPropertyName: "kebabMenuItems", publicName: "kebabMenuItems", isSignal: false, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, checkboxSelection: { classPropertyName: "checkboxSelection", publicName: "checkboxSelection", isSignal: true, isRequired: false, transformFunction: null }, headerCheckboxSelection: { classPropertyName: "headerCheckboxSelection", publicName: "headerCheckboxSelection", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, proxy: { classPropertyName: "proxy", publicName: "proxy", isSignal: true, isRequired: false, transformFunction: null }, showFooter: { classPropertyName: "showFooter", publicName: "showFooter", isSignal: true, isRequired: false, transformFunction: null }, tAlign: { classPropertyName: "tAlign", publicName: "tAlign", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, showSearchTool: { classPropertyName: "showSearchTool", publicName: "showSearchTool", isSignal: true, isRequired: false, transformFunction: null }, showExportTool: { classPropertyName: "showExportTool", publicName: "showExportTool", isSignal: true, isRequired: false, transformFunction: null }, exportFileName: { classPropertyName: "exportFileName", publicName: "exportFileName", isSignal: true, isRequired: false, transformFunction: null }, noDataFoundLabel: { classPropertyName: "noDataFoundLabel", publicName: "noDataFoundLabel", isSignal: true, isRequired: false, transformFunction: null }, tableHeader: { classPropertyName: "tableHeader", publicName: "tableHeader", isSignal: true, isRequired: false, transformFunction: null }, showTableHeader: { classPropertyName: "showTableHeader", publicName: "showTableHeader", isSignal: true, isRequired: false, transformFunction: null }, isFirstRowSelected: { classPropertyName: "isFirstRowSelected", publicName: "isFirstRowSelected", isSignal: true, isRequired: false, transformFunction: null }, dataKey: { classPropertyName: "dataKey", publicName: "dataKey", isSignal: true, isRequired: false, transformFunction: null }, selectedRowsInput: { classPropertyName: "selectedRowsInput", publicName: "selectedRowsInput", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onPageEvent: "onPageEvent", selectionEvent: "selectionEvent" }, queries: [{ propertyName: "columns", predicate: TableColumnComponent }], viewQueries: [{ propertyName: "tableRef", first: true, predicate: Table, descendants: true }], ngImport: i0, template: "\r\n<p-table\r\n\t#ref\r\n\t[value]=\"data()\"\r\n\t[dataKey]=\"dataKey()\"\r\n\t[columns]=\"columns._results\"\r\n\t[rows]=\"pageSize()\"\r\n\t[rowHover]=\"true\"\r\n\t[paginator]=\"true\"\r\n\t[rowsPerPageOptions]=\"[10, 20, 50, 100]\"\r\n\t[filterDelay]=\"0\"\r\n\tsortMode=\"multiple\"\r\n\t[(selection)]=\"selectedRows\"\r\n\t(onPage)=\"onPageEvent.emit($event)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectedRows)\"\r\n\t[showCurrentPageReport]=\"true\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\tcurrentPageReportTemplate=\"Toplam : {totalRecords} kay\u0131t | Sayfa : {currentPage} / {totalPages}\"\r\n\tstyleClass=\"p-datatable-sm\">\r\n\t<!--@if (tableHeader() || showSearchTool() || showExportTool()) {\r\n\t\t<ng-template pTemplate=\"caption\">\r\n\t\t\t<div class=\"flex space-between\">\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t@if (tableHeader().length) {\r\n\t\t\t\t\t\t<div class=\"table-header\">\r\n\t\t\t\t\t\t\t{{ tableHeader() }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t<div class=\"flex justify-content-end align-items-center\">\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-text\r\n\t\t\t\t\t\t\t\ticon=\"SEARCH\"\r\n\t\t\t\t\t\t\t\ticonPos=\"left\"\r\n\t\t\t\t\t\t\t\tplaceholder=\"Arama\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"filterText\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"ref.filterGlobal($event.target.value, 'contains')\">\r\n\t\t\t\t\t\t\t</aril-text>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_EXCEL\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"XLS\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"excelExport()\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_PDF\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"PDF\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"exportPdf()\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (data() && kebabMenuItems.length > 0 ) {\r\n\t\t\t\t\t\t\t<div tools style=\"padding: 4px;margin-left: 4px;border:1px solid #6366f1;border-radius: 6px;background-color: #6366f1; color: white;\" >\r\n\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t[attr.role]=\"'none'\"\r\n\t\t\t\t\t\t\t\t\tclass=\"pi mr-1 header-icon pi-ellipsis-v\"\r\n\t\t\t\t\t\t\t\t\t(click)=\"bulkOperations.toggle($event);\"></i>\r\n\t\t\t\t\t\t\t\t<p-menu\r\n\t\t\t\t\t\t\t\t\t#bulkOperations\r\n\t\t\t\t\t\t\t\t\t[popup]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[model]=\"kebabMenuItems\"\r\n\t\t\t\t\t\t\t\t\tstyleClass=\"z-index: 9998899;\"\r\n\t\t\t\t\t\t\t\t\tappendTo=\"body\"></p-menu>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t}-->\r\n\t<ng-template pTemplate=\"header\" let-columns>\r\n\t\t<tr>\r\n\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t<th>\r\n\t\t\t\t\t@if(headerCheckboxSelection()) {\r\n\t\t\t\t\t\t<p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n\t\t\t\t\t}\r\n\t\t\t\t</th>\r\n\t\t\t}\r\n\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t@if (column.type() === 'operations') {\r\n\t\t\t\t\t<th>\r\n\t\t\t\t\t\t<div class=\"flex justify-content-center\">\u0130\u015Flemler</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t<th [pSortableColumn]=\"column.field()\">\r\n\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center\">\r\n\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t<i style=\"color: var(--primary-color); padding-top: 4px; padding-left: 4px;\" class=\"pi pi-question-circle\" [pTooltip]=\"column.tooltipTemplate()\" tooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t<!--<p-columnFilter\r\n\t\t\t\t\t\t\t\t\tdisplay=\"menu\"\r\n\t\t\t\t\t\t\t\t\t[type]=\"column.type()\"\r\n\t\t\t\t\t\t\t\t\t[field]=\"column.field()\"\r\n\t\t\t\t\t\t\t\t\t[showMatchModes]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[showOperator]=\"false\"\r\n\t\t\t\t\t\t\t\t\t[showAddButton]=\"true\">\r\n\t\t\t\t\t\t\t\t</p-columnFilter>-->\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<!-- custom filter for (date etc.)-->\r\n\t\t\t\t\t\t\t<!-- <p-columnFilter type=\"text\" [field]=\"col.field\" [matchModeOptions]=\"matchModeOptions\" [matchMode]=\"'custom-equals'\"></p-columnFilter> -->\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t</tr>\r\n\t</ng-template>\r\n\t<ng-template pTemplate=\"body\" let-item let-columns=\"columns\">\r\n\t\t@if (selectionMode()) {\r\n\t\t\t<tr [pSelectableRow]=\"item\">\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t} @else {\r\n\t\t\t<tr>\r\n\t\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t}\r\n\t</ng-template>\r\n\r\n\t@if (showFooter()) {\r\n\t\t<ng-template pTemplate=\"summary\">\r\n\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t</ng-template>\r\n\t}\r\n\r\n\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t<tr>\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">{{ noDataFoundLabel() }}</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n</p-table>\r\n", styles: [".justify-content-between{justify-content:initial!important}p-sorticon.p-element{padding-left:7px!important}\n"], dependencies: [{ kind: "component", type: i2.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i2.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "directive", type: i2.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "component", type: i2.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i2.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i2.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
136
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TableComponent, deps: [{ token: i1.HttpClient }, { token: i2.NonNullableFormBuilder }, { token: i3.PrimeNGConfig }], target: i0.ɵɵFactoryTarget.Component }); }
137
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: TableComponent, selector: "aril-table", inputs: { kebabMenuItems: { classPropertyName: "kebabMenuItems", publicName: "kebabMenuItems", isSignal: false, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, checkboxSelection: { classPropertyName: "checkboxSelection", publicName: "checkboxSelection", isSignal: true, isRequired: false, transformFunction: null }, headerCheckboxSelection: { classPropertyName: "headerCheckboxSelection", publicName: "headerCheckboxSelection", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, proxy: { classPropertyName: "proxy", publicName: "proxy", isSignal: true, isRequired: false, transformFunction: null }, showFooter: { classPropertyName: "showFooter", publicName: "showFooter", isSignal: true, isRequired: false, transformFunction: null }, tAlign: { classPropertyName: "tAlign", publicName: "tAlign", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, showSearchTool: { classPropertyName: "showSearchTool", publicName: "showSearchTool", isSignal: true, isRequired: false, transformFunction: null }, showExportTool: { classPropertyName: "showExportTool", publicName: "showExportTool", isSignal: true, isRequired: false, transformFunction: null }, exportFileName: { classPropertyName: "exportFileName", publicName: "exportFileName", isSignal: true, isRequired: false, transformFunction: null }, noDataFoundLabel: { classPropertyName: "noDataFoundLabel", publicName: "noDataFoundLabel", isSignal: true, isRequired: false, transformFunction: null }, tableHeader: { classPropertyName: "tableHeader", publicName: "tableHeader", isSignal: true, isRequired: false, transformFunction: null }, showTableHeader: { classPropertyName: "showTableHeader", publicName: "showTableHeader", isSignal: true, isRequired: false, transformFunction: null }, isFirstRowSelected: { classPropertyName: "isFirstRowSelected", publicName: "isFirstRowSelected", isSignal: true, isRequired: false, transformFunction: null }, dataKey: { classPropertyName: "dataKey", publicName: "dataKey", isSignal: true, isRequired: false, transformFunction: null }, selectedRowsInput: { classPropertyName: "selectedRowsInput", publicName: "selectedRowsInput", isSignal: true, isRequired: false, transformFunction: null }, exportConfig: { classPropertyName: "exportConfig", publicName: "exportConfig", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onPageEvent: "onPageEvent", selectionEvent: "selectionEvent" }, queries: [{ propertyName: "columns", predicate: TableColumnComponent }], viewQueries: [{ propertyName: "op", first: true, predicate: OverlayPanel, descendants: true }, { propertyName: "tableRef", first: true, predicate: Table, descendants: true }], ngImport: i0, template: "\r\n<p-table\r\n\t#ref\r\n\t[value]=\"data()\"\r\n\t[dataKey]=\"dataKey()\"\r\n\t[columns]=\"columns._results\"\r\n\t[rows]=\"pageSize()\"\r\n\t[rowHover]=\"true\"\r\n\t[paginator]=\"true\"\r\n\t[rowsPerPageOptions]=\"[10, 20, 50, 100]\"\r\n\t[filterDelay]=\"0\"\r\n\tsortMode=\"multiple\"\r\n\t[(selection)]=\"selectedRows\"\r\n\t(onPage)=\"onPageEvent.emit($event)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectedRows)\"\r\n\t[showCurrentPageReport]=\"true\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\tcurrentPageReportTemplate=\"Toplam : {totalRecords} kay\u0131t | Sayfa : {currentPage} / {totalPages}\"\r\n\tstyleClass=\"p-datatable-sm\">\r\n\t<!--@if (tableHeader() || showSearchTool() || showExportTool()) {\r\n\t\t<ng-template pTemplate=\"caption\">\r\n\t\t\t<div class=\"flex space-between\">\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t@if (tableHeader().length) {\r\n\t\t\t\t\t\t<div class=\"table-header\">\r\n\t\t\t\t\t\t\t{{ tableHeader() }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t<div class=\"flex justify-content-end align-items-center\">\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-text\r\n\t\t\t\t\t\t\t\ticon=\"SEARCH\"\r\n\t\t\t\t\t\t\t\ticonPos=\"left\"\r\n\t\t\t\t\t\t\t\tplaceholder=\"Arama\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"filterText\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"ref.filterGlobal($event.target.value, 'contains')\">\r\n\t\t\t\t\t\t\t</aril-text>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_EXCEL\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"XLS\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"excelExport()\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_PDF\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"PDF\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"exportPdf()\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (data() && kebabMenuItems.length > 0 ) {\r\n\t\t\t\t\t\t\t<div tools style=\"padding: 4px;margin-left: 4px;border:1px solid #6366f1;border-radius: 6px;background-color: #6366f1; color: white;\" >\r\n\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t[attr.role]=\"'none'\"\r\n\t\t\t\t\t\t\t\t\tclass=\"pi mr-1 header-icon pi-ellipsis-v\"\r\n\t\t\t\t\t\t\t\t\t(click)=\"bulkOperations.toggle($event);\"></i>\r\n\t\t\t\t\t\t\t\t<p-menu\r\n\t\t\t\t\t\t\t\t\t#bulkOperations\r\n\t\t\t\t\t\t\t\t\t[popup]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[model]=\"kebabMenuItems\"\r\n\t\t\t\t\t\t\t\t\tstyleClass=\"z-index: 9998899;\"\r\n\t\t\t\t\t\t\t\t\tappendTo=\"body\"></p-menu>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t}-->\r\n\t<ng-template pTemplate=\"header\" let-columns>\r\n\t\t<tr>\r\n\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t<th>\r\n\t\t\t\t\t@if(headerCheckboxSelection()) {\r\n\t\t\t\t\t\t<p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n\t\t\t\t\t}\r\n\t\t\t\t</th>\r\n\t\t\t}\r\n\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t@if (column.type() === 'operations') {\r\n\t\t\t\t\t<th>\r\n\t\t\t\t\t\t<div class=\"flex justify-content-center\">\u0130\u015Flemler</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t<th [pSortableColumn]=\"column.field()\">\r\n\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t<i style=\"color: var(--primary-color); padding-top: 4px; padding-left: 4px;\" class=\"pi pi-question-circle\" [pTooltip]=\"column.tooltipTemplate()\" tooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t<!--<p-columnFilter\r\n\t\t\t\t\t\t\t\t\tdisplay=\"menu\"\r\n\t\t\t\t\t\t\t\t\t[type]=\"column.type()\"\r\n\t\t\t\t\t\t\t\t\t[field]=\"column.field()\"\r\n\t\t\t\t\t\t\t\t\t[showMatchModes]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[showOperator]=\"false\"\r\n\t\t\t\t\t\t\t\t\t[showAddButton]=\"true\">\r\n\t\t\t\t\t\t\t\t</p-columnFilter>-->\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<!-- custom filter for (date etc.)-->\r\n\t\t\t\t\t\t\t<!-- <p-columnFilter type=\"text\" [field]=\"col.field\" [matchModeOptions]=\"matchModeOptions\" [matchMode]=\"'custom-equals'\"></p-columnFilter> -->\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t</tr>\r\n\t</ng-template>\r\n\t<ng-template pTemplate=\"body\" let-item let-columns=\"columns\">\r\n\t\t@if (selectionMode()) {\r\n\t\t\t<tr [pSelectableRow]=\"item\">\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t} @else {\r\n\t\t\t<tr>\r\n\t\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t}\r\n\t</ng-template>\r\n\r\n\t@if (showFooter()) {\r\n\t\t<ng-template pTemplate=\"summary\">\r\n\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t</ng-template>\r\n\t}\r\n\r\n\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t<tr>\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">{{ noDataFoundLabel() }}</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n</p-table>\r\n\r\n<p-overlayPanel styleClass=\"export-overlay-panel\">\r\n\t@if (exportForm) {\r\n\t<aril-form [formGroup]=\"exportForm\" class=\"w-20rem\">\r\n\t\t<aril-field [label]=\"'Export Tipi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t<aril-radio-button formControlName=\"exportType\" [options]=\"exportTypeOptions\" />\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"'Dosya \u0130smi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t<aril-text class=\"w-full\" formControlName=\"exportLabel\" />\r\n\t\t</aril-field>\r\n\r\n\t\t<ng-container formArrayName=\"columns\">\r\n\t\t\t<p-orderList\r\n\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t[value]=\"exportForm.controls.columns.controls\"\r\n\t\t\t\t[listStyle]=\"{ 'max-height': '20rem' }\"\r\n\t\t\t\tfilterBy=\"value.title\">\r\n\t\t\t\t<ng-template let-col pTemplate=\"item\">\r\n\t\t\t\t\t<aril-checkbox [label]=\"col.value.title\" [formControl]=\"col.controls.checked\" />\r\n\t\t\t\t</ng-template>\r\n\t\t\t</p-orderList>\r\n\t\t</ng-container>\r\n\r\n\t\t<aril-button class=\"col-12\" label=\"Export\" color=\"primary\" (clickEvent)=\"export()\" />\r\n\t</aril-form>\r\n\t}\r\n</p-overlayPanel>\r\n", dependencies: [{ kind: "component", type: i4.FormComponent, selector: "aril-form", inputs: ["formGroup"] }, { kind: "component", type: i5.ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "outlined", "badge", "size", "icon", "color"], outputs: ["clickEvent"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i6.CheckboxComponent, selector: "aril-checkbox[ngModel], aril-checkbox[formControl], aril-checkbox[formControlName]", inputs: ["label", "tabindex"] }, { kind: "component", type: i7.FieldComponent, selector: "aril-field", inputs: ["label", "color", "labelWidth", "valueWidth", "labelPos", "markAsRequired", "cols"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i9.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i10.OrderList, selector: "p-orderList", inputs: ["header", "style", "styleClass", "tabindex", "ariaLabel", "ariaLabelledBy", "listStyle", "responsive", "filterBy", "filterPlaceholder", "filterLocale", "metaKeySelection", "dragdrop", "controlsPosition", "ariaFilterLabel", "filterMatchMode", "breakpoint", "stripedRows", "disabled", "trackBy", "selection", "value"], outputs: ["selectionChange", "onReorder", "onSelectionChange", "onFilterEvent", "onFocus", "onBlur"] }, { kind: "component", type: i11.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i12.RadioButtonComponent, selector: "aril-radio-button[ngModel], aril-radio-button[formControl], aril-radio-button[formControlName]", inputs: ["options", "tabindex", "align"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i13.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i13.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "directive", type: i13.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "component", type: i13.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i13.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i13.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "component", type: i14.TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }] }); }
95
138
  }
96
139
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TableComponent, decorators: [{
97
140
  type: Component,
98
- args: [{ selector: 'aril-table', template: "\r\n<p-table\r\n\t#ref\r\n\t[value]=\"data()\"\r\n\t[dataKey]=\"dataKey()\"\r\n\t[columns]=\"columns._results\"\r\n\t[rows]=\"pageSize()\"\r\n\t[rowHover]=\"true\"\r\n\t[paginator]=\"true\"\r\n\t[rowsPerPageOptions]=\"[10, 20, 50, 100]\"\r\n\t[filterDelay]=\"0\"\r\n\tsortMode=\"multiple\"\r\n\t[(selection)]=\"selectedRows\"\r\n\t(onPage)=\"onPageEvent.emit($event)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectedRows)\"\r\n\t[showCurrentPageReport]=\"true\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\tcurrentPageReportTemplate=\"Toplam : {totalRecords} kay\u0131t | Sayfa : {currentPage} / {totalPages}\"\r\n\tstyleClass=\"p-datatable-sm\">\r\n\t<!--@if (tableHeader() || showSearchTool() || showExportTool()) {\r\n\t\t<ng-template pTemplate=\"caption\">\r\n\t\t\t<div class=\"flex space-between\">\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t@if (tableHeader().length) {\r\n\t\t\t\t\t\t<div class=\"table-header\">\r\n\t\t\t\t\t\t\t{{ tableHeader() }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t<div class=\"flex justify-content-end align-items-center\">\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-text\r\n\t\t\t\t\t\t\t\ticon=\"SEARCH\"\r\n\t\t\t\t\t\t\t\ticonPos=\"left\"\r\n\t\t\t\t\t\t\t\tplaceholder=\"Arama\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"filterText\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"ref.filterGlobal($event.target.value, 'contains')\">\r\n\t\t\t\t\t\t\t</aril-text>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_EXCEL\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"XLS\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"excelExport()\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_PDF\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"PDF\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"exportPdf()\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (data() && kebabMenuItems.length > 0 ) {\r\n\t\t\t\t\t\t\t<div tools style=\"padding: 4px;margin-left: 4px;border:1px solid #6366f1;border-radius: 6px;background-color: #6366f1; color: white;\" >\r\n\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t[attr.role]=\"'none'\"\r\n\t\t\t\t\t\t\t\t\tclass=\"pi mr-1 header-icon pi-ellipsis-v\"\r\n\t\t\t\t\t\t\t\t\t(click)=\"bulkOperations.toggle($event);\"></i>\r\n\t\t\t\t\t\t\t\t<p-menu\r\n\t\t\t\t\t\t\t\t\t#bulkOperations\r\n\t\t\t\t\t\t\t\t\t[popup]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[model]=\"kebabMenuItems\"\r\n\t\t\t\t\t\t\t\t\tstyleClass=\"z-index: 9998899;\"\r\n\t\t\t\t\t\t\t\t\tappendTo=\"body\"></p-menu>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t}-->\r\n\t<ng-template pTemplate=\"header\" let-columns>\r\n\t\t<tr>\r\n\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t<th>\r\n\t\t\t\t\t@if(headerCheckboxSelection()) {\r\n\t\t\t\t\t\t<p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n\t\t\t\t\t}\r\n\t\t\t\t</th>\r\n\t\t\t}\r\n\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t@if (column.type() === 'operations') {\r\n\t\t\t\t\t<th>\r\n\t\t\t\t\t\t<div class=\"flex justify-content-center\">\u0130\u015Flemler</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t<th [pSortableColumn]=\"column.field()\">\r\n\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center\">\r\n\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t<i style=\"color: var(--primary-color); padding-top: 4px; padding-left: 4px;\" class=\"pi pi-question-circle\" [pTooltip]=\"column.tooltipTemplate()\" tooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t<!--<p-columnFilter\r\n\t\t\t\t\t\t\t\t\tdisplay=\"menu\"\r\n\t\t\t\t\t\t\t\t\t[type]=\"column.type()\"\r\n\t\t\t\t\t\t\t\t\t[field]=\"column.field()\"\r\n\t\t\t\t\t\t\t\t\t[showMatchModes]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[showOperator]=\"false\"\r\n\t\t\t\t\t\t\t\t\t[showAddButton]=\"true\">\r\n\t\t\t\t\t\t\t\t</p-columnFilter>-->\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<!-- custom filter for (date etc.)-->\r\n\t\t\t\t\t\t\t<!-- <p-columnFilter type=\"text\" [field]=\"col.field\" [matchModeOptions]=\"matchModeOptions\" [matchMode]=\"'custom-equals'\"></p-columnFilter> -->\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t</tr>\r\n\t</ng-template>\r\n\t<ng-template pTemplate=\"body\" let-item let-columns=\"columns\">\r\n\t\t@if (selectionMode()) {\r\n\t\t\t<tr [pSelectableRow]=\"item\">\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t} @else {\r\n\t\t\t<tr>\r\n\t\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t}\r\n\t</ng-template>\r\n\r\n\t@if (showFooter()) {\r\n\t\t<ng-template pTemplate=\"summary\">\r\n\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t</ng-template>\r\n\t}\r\n\r\n\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t<tr>\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">{{ noDataFoundLabel() }}</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n</p-table>\r\n", styles: [".justify-content-between{justify-content:initial!important}p-sorticon.p-element{padding-left:7px!important}\n"] }]
99
- }], ctorParameters: () => [{ type: i1.PrimeNGConfig }, { type: i0.ChangeDetectorRef }], propDecorators: { onPageEvent: [{
141
+ args: [{ selector: 'aril-table', template: "\r\n<p-table\r\n\t#ref\r\n\t[value]=\"data()\"\r\n\t[dataKey]=\"dataKey()\"\r\n\t[columns]=\"columns._results\"\r\n\t[rows]=\"pageSize()\"\r\n\t[rowHover]=\"true\"\r\n\t[paginator]=\"true\"\r\n\t[rowsPerPageOptions]=\"[10, 20, 50, 100]\"\r\n\t[filterDelay]=\"0\"\r\n\tsortMode=\"multiple\"\r\n\t[(selection)]=\"selectedRows\"\r\n\t(onPage)=\"onPageEvent.emit($event)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectedRows)\"\r\n\t[showCurrentPageReport]=\"true\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\tcurrentPageReportTemplate=\"Toplam : {totalRecords} kay\u0131t | Sayfa : {currentPage} / {totalPages}\"\r\n\tstyleClass=\"p-datatable-sm\">\r\n\t<!--@if (tableHeader() || showSearchTool() || showExportTool()) {\r\n\t\t<ng-template pTemplate=\"caption\">\r\n\t\t\t<div class=\"flex space-between\">\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t@if (tableHeader().length) {\r\n\t\t\t\t\t\t<div class=\"table-header\">\r\n\t\t\t\t\t\t\t{{ tableHeader() }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t<div class=\"flex justify-content-end align-items-center\">\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-text\r\n\t\t\t\t\t\t\t\ticon=\"SEARCH\"\r\n\t\t\t\t\t\t\t\ticonPos=\"left\"\r\n\t\t\t\t\t\t\t\tplaceholder=\"Arama\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"filterText\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"ref.filterGlobal($event.target.value, 'contains')\">\r\n\t\t\t\t\t\t\t</aril-text>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_EXCEL\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"XLS\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"excelExport()\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_PDF\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"PDF\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"exportPdf()\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (data() && kebabMenuItems.length > 0 ) {\r\n\t\t\t\t\t\t\t<div tools style=\"padding: 4px;margin-left: 4px;border:1px solid #6366f1;border-radius: 6px;background-color: #6366f1; color: white;\" >\r\n\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t[attr.role]=\"'none'\"\r\n\t\t\t\t\t\t\t\t\tclass=\"pi mr-1 header-icon pi-ellipsis-v\"\r\n\t\t\t\t\t\t\t\t\t(click)=\"bulkOperations.toggle($event);\"></i>\r\n\t\t\t\t\t\t\t\t<p-menu\r\n\t\t\t\t\t\t\t\t\t#bulkOperations\r\n\t\t\t\t\t\t\t\t\t[popup]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[model]=\"kebabMenuItems\"\r\n\t\t\t\t\t\t\t\t\tstyleClass=\"z-index: 9998899;\"\r\n\t\t\t\t\t\t\t\t\tappendTo=\"body\"></p-menu>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t}-->\r\n\t<ng-template pTemplate=\"header\" let-columns>\r\n\t\t<tr>\r\n\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t<th>\r\n\t\t\t\t\t@if(headerCheckboxSelection()) {\r\n\t\t\t\t\t\t<p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n\t\t\t\t\t}\r\n\t\t\t\t</th>\r\n\t\t\t}\r\n\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t@if (column.type() === 'operations') {\r\n\t\t\t\t\t<th>\r\n\t\t\t\t\t\t<div class=\"flex justify-content-center\">\u0130\u015Flemler</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t<th [pSortableColumn]=\"column.field()\">\r\n\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t<i style=\"color: var(--primary-color); padding-top: 4px; padding-left: 4px;\" class=\"pi pi-question-circle\" [pTooltip]=\"column.tooltipTemplate()\" tooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t<!--<p-columnFilter\r\n\t\t\t\t\t\t\t\t\tdisplay=\"menu\"\r\n\t\t\t\t\t\t\t\t\t[type]=\"column.type()\"\r\n\t\t\t\t\t\t\t\t\t[field]=\"column.field()\"\r\n\t\t\t\t\t\t\t\t\t[showMatchModes]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[showOperator]=\"false\"\r\n\t\t\t\t\t\t\t\t\t[showAddButton]=\"true\">\r\n\t\t\t\t\t\t\t\t</p-columnFilter>-->\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<!-- custom filter for (date etc.)-->\r\n\t\t\t\t\t\t\t<!-- <p-columnFilter type=\"text\" [field]=\"col.field\" [matchModeOptions]=\"matchModeOptions\" [matchMode]=\"'custom-equals'\"></p-columnFilter> -->\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t</tr>\r\n\t</ng-template>\r\n\t<ng-template pTemplate=\"body\" let-item let-columns=\"columns\">\r\n\t\t@if (selectionMode()) {\r\n\t\t\t<tr [pSelectableRow]=\"item\">\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t} @else {\r\n\t\t\t<tr>\r\n\t\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t}\r\n\t</ng-template>\r\n\r\n\t@if (showFooter()) {\r\n\t\t<ng-template pTemplate=\"summary\">\r\n\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t</ng-template>\r\n\t}\r\n\r\n\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t<tr>\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">{{ noDataFoundLabel() }}</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n</p-table>\r\n\r\n<p-overlayPanel styleClass=\"export-overlay-panel\">\r\n\t@if (exportForm) {\r\n\t<aril-form [formGroup]=\"exportForm\" class=\"w-20rem\">\r\n\t\t<aril-field [label]=\"'Export Tipi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t<aril-radio-button formControlName=\"exportType\" [options]=\"exportTypeOptions\" />\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"'Dosya \u0130smi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t<aril-text class=\"w-full\" formControlName=\"exportLabel\" />\r\n\t\t</aril-field>\r\n\r\n\t\t<ng-container formArrayName=\"columns\">\r\n\t\t\t<p-orderList\r\n\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t[value]=\"exportForm.controls.columns.controls\"\r\n\t\t\t\t[listStyle]=\"{ 'max-height': '20rem' }\"\r\n\t\t\t\tfilterBy=\"value.title\">\r\n\t\t\t\t<ng-template let-col pTemplate=\"item\">\r\n\t\t\t\t\t<aril-checkbox [label]=\"col.value.title\" [formControl]=\"col.controls.checked\" />\r\n\t\t\t\t</ng-template>\r\n\t\t\t</p-orderList>\r\n\t\t</ng-container>\r\n\r\n\t\t<aril-button class=\"col-12\" label=\"Export\" color=\"primary\" (clickEvent)=\"export()\" />\r\n\t</aril-form>\r\n\t}\r\n</p-overlayPanel>\r\n" }]
142
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.NonNullableFormBuilder }, { type: i3.PrimeNGConfig }], propDecorators: { onPageEvent: [{
100
143
  type: Output
101
144
  }], selectionEvent: [{
102
145
  type: Output
103
146
  }], columns: [{
104
147
  type: ContentChildren,
105
148
  args: [TableColumnComponent]
149
+ }], op: [{
150
+ type: ViewChild,
151
+ args: [OverlayPanel]
106
152
  }], tableRef: [{
107
153
  type: ViewChild,
108
154
  args: [Table]
109
155
  }], kebabMenuItems: [{
110
156
  type: Input
111
157
  }] } });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdOLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0QyxPQUFPLEtBQUssU0FBUyxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxTQUFTLE1BQU0saUJBQWlCLENBQUM7QUFFeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3JDLE9BQU8sRUFBYyxvQkFBb0IsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7O0FBRTFGOzs7OztHQUtHO0FBQ0gsTUFBTSxXQUFXLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQVUsQ0FBQztBQXdCL0MsTUFBTSxPQUFPLGNBQWM7SUE4QjFCLFlBQ1MsYUFBNEIsRUFDNUIsR0FBc0I7UUFEdEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUEvQnJCLGdCQUFXLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDekQsbUJBQWMsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUc3RCxtQkFBYyxHQUFlLEVBQUUsQ0FBQztR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Yyx5cUZBR1Qsb0JBQW9CLHVFQUMxQixLQUFLLGdEQzNEakIscS9MQTZKQTs7MkZEdEdhLGNBQWM7a0JBZDFCLFNBQVM7K0JBQ0MsWUFBWTtrSEFjWixXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ2dDLE9BQU87c0JBQTdDLGVBQWU7dUJBQUMsb0JBQW9CO2dCQUNuQixRQUFRO3NCQUF6QixTQUFTO3VCQUFDLEtBQUs7Z0JBQ1AsY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0QWZ0ZXJWaWV3SW5pdCxcclxuXHRDaGFuZ2VEZXRlY3RvclJlZixcclxuXHRDb21wb25lbnQsXHJcblx0Q29udGVudENoaWxkcmVuLFxyXG5cdEV2ZW50RW1pdHRlcixcclxuXHRJbnB1dCxcclxuXHRPdXRwdXQsXHJcblx0Vmlld0NoaWxkLFxyXG5cdGVmZmVjdCxcclxuXHRpbnB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTWVudUl0ZW0sIFByaW1lTkdDb25maWcgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XHJcblxyXG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCBqc1BERiBmcm9tICdqc3BkZic7XHJcbmltcG9ydCBhdXRvVGFibGUgZnJvbSAnanNwZGYtYXV0b3RhYmxlJztcclxuXHJcbmltcG9ydCB7IFByb3h5VHlwZXMgfSBmcm9tICdhcmlsL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgdHJhbmxhdGlvbnMgfSBmcm9tICcuL2kxOG4nO1xyXG5pbXBvcnQgeyBBbGlnblR5cGVzLCBUYWJsZUNvbHVtbkNvbXBvbmVudCwgVGFibGVDb2x1bW5zIH0gZnJvbSAnLi90YWJsZS1jb2x1bW4uY29tcG9uZW50JztcclxuXHJcbi8qIFRPRE8gOlxyXG4gKiBzZXJ2ZXItc2lkZS1wcm94eSAoUHJveHlUeXBlcy5TZXJ2ZXJTaWRlKVxyXG4gKiBzZWFyY2ggJiBjb2x1bSBmaWx0ZXIgJiBzb3J0XHJcbiAqIHBhZ2luYXRpb24gb3BlcmF0aW9uXHJcbiAqIFF1ZXJ5IFNpZ25hbHNcclxuICovXHJcbmNvbnN0IHBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0gYXMgY29uc3Q7XHJcblxyXG50eXBlIFNlbGVjdGlvblR5cGVzID0gJ3NpbmdsZScgfCAnbXVsdGlwbGUnO1xyXG5cclxuaW50ZXJmYWNlIElLZWJhYk1lbnVJdGVtIHtcclxuXHRpY29uOiBzdHJpbmc7XHJcblx0bGFiZWw6IHN0cmluZztcclxuXHRvbkNsaWNrOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXJpbC10YWJsZScsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZXM6IFtcclxuXHRcdGBcclxuXHRcdFx0Lmp1c3RpZnktY29udGVudC1iZXR3ZWVuIHtcclxuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGluaXRpYWwgIWltcG9ydGFudDtcclxuXHRcdFx0fVxyXG5cdFx0XHRwLXNvcnRpY29uLnAtZWxlbWVudCB7XHJcblx0XHRcdFx0cGFkZGluZy1sZWZ0OjdweCAhaW1wb3J0YW50O1xyXG5cdFx0XHR9XHJcblx0XHRgXHJcblx0XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHRAT3V0cHV0KCkgb25QYWdlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblx0QE91dHB1dCgpIHNlbGVjdGlvbkV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cdEBDb250ZW50Q2hpbGRyZW4oVGFibGVDb2x1bW5Db21wb25lbnQpIGNvbHVtbnMhOiBUYWJsZUNvbHVtbnM7XHJcblx0QFZpZXdDaGlsZChUYWJsZSkgdGFibGVSZWYhOiBUYWJsZTtcclxuXHRASW5wdXQoKSBrZWJhYk1lbnVJdGVtczogTWVudUl0ZW1bXSA9IFtdO1xyXG5cclxuXHRkYXRhID0gaW5wdXQucmVxdWlyZWQ8YW55W10+KCk7XHJcblx0Y2hlY2tib3hTZWxlY3Rpb24gPSBpbnB1dDxib29sZWFuPigpO1xyXG5cdGhlYWRlckNoZWNrYm94U2VsZWN0aW9uID0gaW5wdXQ8Ym9vbGVhbj4oKTtcclxuXHRwYWdlU2l6ZSA9IGlucHV0PCh0eXBlb2YgcGFnZU9wdGlvbnMpW251bWJlcl0+KDEwKTtcclxuXHRwcm94eSA9IGlucHV0PFByb3h5VHlwZXM+KFByb3h5VHlwZXMuTmF0aXZlKTtcclxuXHRzaG93Rm9vdGVyID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdHRBbGlnbiA9IGlucHV0PEFsaWduVHlwZXM+KCdsZWZ0Jyk7XHJcblx0c2VsZWN0aW9uTW9kZSA9IGlucHV0PFNlbGVjdGlvblR5cGVzPigpO1xyXG5cdHNob3dTZWFyY2hUb29sID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0c2hvd0V4cG9ydFRvb2wgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHRleHBvcnRGaWxlTmFtZSA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cdG5vRGF0YUZvdW5kTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCdObyBEYXRhIEZvdW5kJyk7XHJcblx0dGFibGVIZWFkZXIgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuXHRzaG93VGFibGVIZWFkZXIgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0aXNGaXJzdFJvd1NlbGVjdGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGRhdGFLZXkgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuXHRzZWxlY3RlZFJvd3NJbnB1dCA9IGlucHV0PGFueT4oW10pO1xyXG5cclxuXHRmaWx0ZXJUZXh0ITogc3RyaW5nO1xyXG5cdHNlbGVjdGVkUm93czogYW55O1xyXG5cdHBhZ2VPcHRpb25zID0gcGFnZU9wdGlvbnM7XHJcblx0ZXhwb3J0Q29sdW1uczogQXJyYXk8eyB0aXRsZTogc3RyaW5nOyBkYXRhS2V5OiBzdHJpbmcgfT4gPSBbXTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIHByaW1lbmdDb25maWc6IFByaW1lTkdDb25maWcsXHJcblx0XHRwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuXHQpIHtcclxuXHRcdHRoaXMucHJpbWVuZ0NvbmZpZy5zZXRUcmFuc2xhdGlvbih0cmFubGF0aW9ucyk7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuaXNGaXJzdFJvd1NlbGVjdGVkKCkgJiYgdGhpcy5kYXRhKCkpIHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkUm93cyA9IHRoaXMuZGF0YSgpWzBdO1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0aW9uRXZlbnQuZW1pdCh0aGlzLnNlbGVjdGVkUm93cyk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLnNlbGVjdGVkUm93c0lucHV0KCkpIHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkUm93cyA9IHRoaXMuc2VsZWN0ZWRSb3dzSW5wdXQoKVxyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLmNvbHVtbnMpIHtcclxuXHRcdFx0dGhpcy5leHBvcnRDb2x1bW5zID0gdGhpcy5jb2x1bW5zLl9yZXN1bHRzLm1hcCgoY29sKSA9PiAoeyB0aXRsZTogY29sLmhlYWRlciwgZGF0YUtleTogY29sLmZpZWxkIH0pKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGV4Y2VsRXhwb3J0KCkge1xyXG5cdFx0aW1wb3J0KCd4bHN4JykudGhlbigoeGxzeCkgPT4ge1xyXG5cdFx0XHRjb25zdCB3b3Jrc2hlZXQgPSB4bHN4LnV0aWxzLmpzb25fdG9fc2hlZXQodGhpcy5kYXRhKCkpO1xyXG5cdFx0XHRjb25zdCB3b3JrYm9vayA9IHsgU2hlZXRzOiB7IGRhdGE6IHdvcmtzaGVldCB9LCBTaGVldE5hbWVzOiBbJ2RhdGEnXSB9O1xyXG5cdFx0XHRjb25zdCBleGNlbEJ1ZmZlcjogYW55ID0geGxzeC53cml0ZSh3b3JrYm9vaywgeyBib29rVHlwZTogJ3hsc3gnLCB0eXBlOiAnYXJyYXknIH0pO1xyXG5cdFx0XHR0aGlzLnNhdmVBc0V4Y2VsRmlsZShleGNlbEJ1ZmZlciwgIXRoaXMuZXhwb3J0RmlsZU5hbWUgPyB0aGlzLmV4cG9ydEZpbGVOYW1lIDogJ2V4Y2VsX3dvcmtzaGVldCcpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRzYXZlQXNFeGNlbEZpbGUoYnVmZmVyOiBhbnksIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuXHRcdGNvbnN0IEVYQ0VMX1RZUEUgPSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7Y2hhcnNldD1VVEYtOCc7XHJcblx0XHRjb25zdCBFWENFTF9FWFRFTlNJT04gPSAnLnhsc3gnO1xyXG5cdFx0Y29uc3QgZGF0YTogQmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7XHJcblx0XHRcdHR5cGU6IEVYQ0VMX1RZUEVcclxuXHRcdH0pO1xyXG5cdFx0RmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBmaWxlTmFtZSArICdfZXhwb3J0XycgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIEVYQ0VMX0VYVEVOU0lPTik7XHJcblx0fVxyXG5cclxuXHRhc3luYyBleHBvcnRQZGYoKSB7XHJcblx0XHRjb25zdCBkb2MgPSBuZXcganNQREYoJ3BvcnRyYWl0JywgJ3B4JywgJ2E0Jyk7XHJcblx0XHRhdXRvVGFibGUoZG9jLCB7XHJcblx0XHRcdGNvbHVtbnM6IHRoaXMuZXhwb3J0Q29sdW1ucyxcclxuXHRcdFx0Ym9keTogdGhpcy5kYXRhKClcclxuXHRcdH0pO1xyXG5cdFx0ZG9jLnNhdmUoYCR7dGhpcy5leHBvcnRGaWxlTmFtZX1fZXhwb3J0XyR7bmV3IERhdGUoKS5nZXRUaW1lKCl9LnBkZmApO1xyXG5cdH1cclxuXHJcblx0Y2xlYXIoKSB7XHJcblx0XHR0aGlzLnRhYmxlUmVmLnZhbHVlID0gW107XHJcblx0XHR0aGlzLnRhYmxlUmVmLmNsZWFyKCk7XHJcblx0fVxyXG59XHJcbiIsIlxyXG48cC10YWJsZVxyXG5cdCNyZWZcclxuXHRbdmFsdWVdPVwiZGF0YSgpXCJcclxuXHRbZGF0YUtleV09XCJkYXRhS2V5KClcIlxyXG5cdFtjb2x1bW5zXT1cImNvbHVtbnMuX3Jlc3VsdHNcIlxyXG5cdFtyb3dzXT1cInBhZ2VTaXplKClcIlxyXG5cdFtyb3dIb3Zlcl09XCJ0cnVlXCJcclxuXHRbcGFnaW5hdG9yXT1cInRydWVcIlxyXG5cdFtyb3dzUGVyUGFnZU9wdGlvbnNdPVwiWzEwLCAyMCwgNTAsIDEwMF1cIlxyXG5cdFtmaWx0ZXJEZWxheV09XCIwXCJcclxuXHRzb3J0TW9kZT1cIm11bHRpcGxlXCJcclxuXHRbKHNlbGVjdGlvbildPVwic2VsZWN0ZWRSb3dzXCJcclxuXHQob25QYWdlKT1cIm9uUGFnZUV2ZW50LmVtaXQoJGV2ZW50KVwiXHJcblx0KHNlbGVjdGlvbkNoYW5nZSk9XCJzZWxlY3Rpb25FdmVudC5lbWl0KHNlbGVjdGVkUm93cylcIlxyXG5cdFtzaG93Q3VycmVudFBhZ2VSZXBvcnRdPVwidHJ1ZVwiXHJcblx0W3NlbGVjdGlvbk1vZGVdPVwic2VsZWN0aW9uTW9kZSgpXCJcclxuXHRjdXJyZW50UGFnZVJlcG9ydFRlbXBsYXRlPVwiVG9wbGFtIDoge3RvdGFsUmVjb3Jkc30ga2F5xLF0IHwgU2F5ZmEgOiB7Y3VycmVudFBhZ2V9IC8ge3RvdGFsUGFnZXN9XCJcclxuXHRzdHlsZUNsYXNzPVwicC1kYXRhdGFibGUtc21cIj5cclxuXHQ8IS0tQGlmICh0YWJsZUhlYWRlcigpIHx8IHNob3dTZWFyY2hUb29sKCkgfHwgc2hvd0V4cG9ydFRvb2woKSkge1xyXG5cdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNhcHRpb25cIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggc3BhY2UtYmV0d2VlblwiPlxyXG5cdFx0XHRcdDxkaXYgc3R5bGU9XCJmbGV4OiBhdXRvXCI+XHJcblx0XHRcdFx0XHRAaWYgKHRhYmxlSGVhZGVyKCkubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cclxuXHRcdFx0XHRcdFx0XHR7eyB0YWJsZUhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDxkaXYgc3R5bGU9XCJmbGV4OiBhdXRvXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRAaWYgKGZhbHNlKSB7XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtdGV4dFxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIlNFQVJDSFwiXHJcblx0XHRcdFx0XHRcdFx0XHRpY29uUG9zPVwibGVmdFwiXHJcblx0XHRcdFx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIkFyYW1hXCJcclxuXHRcdFx0XHRcdFx0XHRcdFtuZ01vZGVsXT1cImZpbHRlclRleHRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJtci0xXCJcclxuXHRcdFx0XHRcdFx0XHRcdChuZ01vZGVsQ2hhbmdlKT1cInJlZi5maWx0ZXJHbG9iYWwoJGV2ZW50LnRhcmdldC52YWx1ZSwgJ2NvbnRhaW5zJylcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L2FyaWwtdGV4dD5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRAaWYgKGZhbHNlKSB7XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIkZJTEVfRVhDRUxcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Y29sb3I9XCJwcmltYXJ5XCJcclxuXHRcdFx0XHRcdFx0XHRcdHBUb29sdGlwPVwiWExTXCJcclxuXHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXHJcblx0XHRcdFx0XHRcdFx0XHQoY2xpY2tFdmVudCk9XCJleGNlbEV4cG9ydCgpXCJcclxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwibXItMVwiPlxyXG5cdFx0XHRcdFx0XHRcdDwvYXJpbC1idXR0b24+XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIkZJTEVfUERGXCJcclxuXHRcdFx0XHRcdFx0XHRcdGNvbG9yPVwicHJpbWFyeVwiXHJcblx0XHRcdFx0XHRcdFx0XHRwVG9vbHRpcD1cIlBERlwiXHJcblx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG5cdFx0XHRcdFx0XHRcdFx0KGNsaWNrRXZlbnQpPVwiZXhwb3J0UGRmKClcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L2FyaWwtYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdEBpZiAoZGF0YSgpICYmIGtlYmFiTWVudUl0ZW1zLmxlbmd0aCA+IDAgKSB7XHJcblx0XHRcdFx0XHRcdFx0PGRpdiB0b29scyBzdHlsZT1cInBhZGRpbmc6IDRweDttYXJnaW4tbGVmdDogNHB4O2JvcmRlcjoxcHggc29saWQgIzYzNjZmMTtib3JkZXItcmFkaXVzOiA2cHg7YmFja2dyb3VuZC1jb2xvcjogIzYzNjZmMTsgY29sb3I6IHdoaXRlO1wiID5cclxuXHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFthdHRyLnJvbGVdPVwiJ25vbmUnXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBtci0xIGhlYWRlci1pY29uIHBpLWVsbGlwc2lzLXZcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwiYnVsa09wZXJhdGlvbnMudG9nZ2xlKCRldmVudCk7XCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHAtbWVudVxyXG5cdFx0XHRcdFx0XHRcdFx0XHQjYnVsa09wZXJhdGlvbnNcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3BvcHVwXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbbW9kZWxdPVwia2ViYWJNZW51SXRlbXNcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRzdHlsZUNsYXNzPVwiei1pbmRleDogOTk5ODg5OTtcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRhcHBlbmRUbz1cImJvZHlcIj48L3AtbWVudT5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHR9LS0+XHJcblx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHRAaWYgKGNoZWNrYm94U2VsZWN0aW9uKCkpIHtcclxuXHRcdFx0XHQ8dGg+XHJcblx0XHRcdFx0XHRAaWYoaGVhZGVyQ2hlY2tib3hTZWxlY3Rpb24oKSkge1xyXG5cdFx0XHRcdFx0XHQ8cC10YWJsZUhlYWRlckNoZWNrYm94PjwvcC10YWJsZUhlYWRlckNoZWNrYm94PlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdDwvdGg+XHJcblx0XHRcdH1cclxuXHRcdFx0QGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrICRpbmRleCkge1xyXG5cdFx0XHRcdEBpZiAoY29sdW1uLnR5cGUoKSA9PT0gJ29wZXJhdGlvbnMnKSB7XHJcblx0XHRcdFx0XHQ8dGg+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj7EsMWfbGVtbGVyPC9kaXY+XHJcblx0XHRcdFx0XHQ8L3RoPlxyXG5cdFx0XHRcdH0gQGVsc2Uge1xyXG5cdFx0XHRcdFx0PHRoIFtwU29ydGFibGVDb2x1bW5dPVwiY29sdW1uLmZpZWxkKClcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0e3sgY29sdW1uLmhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXhcIj5cclxuXHRcdFx0XHRcdFx0XHRcdEBpZiAoY29sdW1uLmlzU2hvd0hlYWRlclRvb2x0aXAoKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8aSBzdHlsZT1cImNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTsgcGFkZGluZy10b3A6IDRweDsgcGFkZGluZy1sZWZ0OiA0cHg7XCIgY2xhc3M9XCJwaSBwaS1xdWVzdGlvbi1jaXJjbGVcIiBbcFRvb2x0aXBdPVwiY29sdW1uLnRvb2x0aXBUZW1wbGF0ZSgpXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0PHAtc29ydEljb24gW2ZpZWxkXT1cImNvbHVtbi5maWVsZCgpXCI+PC9wLXNvcnRJY29uPlxyXG5cdFx0XHRcdFx0XHRcdFx0PCEtLTxwLWNvbHVtbkZpbHRlclxyXG5cdFx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5PVwibWVudVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFt0eXBlXT1cImNvbHVtbi50eXBlKClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbZmllbGRdPVwiY29sdW1uLmZpZWxkKClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbc2hvd01hdGNoTW9kZXNdPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtzaG93T3BlcmF0b3JdPVwiZmFsc2VcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbc2hvd0FkZEJ1dHRvbl09XCJ0cnVlXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3AtY29sdW1uRmlsdGVyPi0tPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdDwhLS0gY3VzdG9tIGZpbHRlciBmb3IgKGRhdGUgZXRjLiktLT5cclxuXHRcdFx0XHRcdFx0XHQ8IS0tIDxwLWNvbHVtbkZpbHRlciB0eXBlPVwidGV4dFwiIFtmaWVsZF09XCJjb2wuZmllbGRcIiBbbWF0Y2hNb2RlT3B0aW9uc109XCJtYXRjaE1vZGVPcHRpb25zXCIgW21hdGNoTW9kZV09XCInY3VzdG9tLWVxdWFscydcIj48L3AtY29sdW1uRmlsdGVyPiAtLT5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L3RoPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0PC90cj5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG5cdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWl0ZW0gbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCI+XHJcblx0XHRAaWYgKHNlbGVjdGlvbk1vZGUoKSkge1xyXG5cdFx0XHQ8dHIgW3BTZWxlY3RhYmxlUm93XT1cIml0ZW1cIj5cclxuXHRcdFx0XHRAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgJGluZGV4KSB7XHJcblx0XHRcdFx0XHQ8dGQgW25nU3R5bGVdPVwieyAndGV4dC1hbGlnbic6IGNvbHVtbi50eXBlKCkgPT09ICdvcGVyYXRpb25zJyA/ICdjZW50ZXInIDogY29sdW1uLnRBbGlnbigpIHx8IHRBbGlnbigpIH1cIj5cclxuXHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlIG5nRm9yIFtuZ0Zvck9mXT1cIltpdGVtXVwiIFtuZ0ZvclRlbXBsYXRlXT1cImNvbHVtbi50ZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8L3RkPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0PC90cj5cclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQ8dHI+XHJcblx0XHRcdFx0QGlmIChjaGVja2JveFNlbGVjdGlvbigpKSB7XHJcblx0XHRcdFx0XHQ8dGQ+XHJcblx0XHRcdFx0XHRcdDxwLXRhYmxlQ2hlY2tib3ggW3ZhbHVlXT1cIml0ZW1cIj48L3AtdGFibGVDaGVja2JveD5cclxuXHRcdFx0XHRcdDwvdGQ+XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgJGluZGV4KSB7XHJcblx0XHRcdFx0XHQ8dGQgW25nU3R5bGVdPVwieyAndGV4dC1hbGlnbic6IGNvbHVtbi50eXBlKCkgPT09ICdvcGVyYXRpb25zJyA/ICdjZW50ZXInIDogY29sdW1uLnRBbGlnbigpIHx8IHRBbGlnbigpIH1cIj5cclxuXHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlIG5nRm9yIFtuZ0Zvck9mXT1cIltpdGVtXVwiIFtuZ0ZvclRlbXBsYXRlXT1cImNvbHVtbi50ZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8L3RkPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0PC90cj5cclxuXHRcdH1cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG5cclxuXHRAaWYgKHNob3dGb290ZXIoKSkge1xyXG5cdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInN1bW1hcnlcIj5cclxuXHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Zvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XHJcblx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdH1cclxuXHJcblx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQgW2F0dHIuY29sc3Bhbl09XCJjb2x1bW5zLl9yZXN1bHRzLmxlbmd0aFwiPnt7IG5vRGF0YUZvdW5kTGFiZWwoKSB9fTwvdGQ+XHJcblx0XHQ8L3RyPlxyXG5cdDwvbmctdGVtcGxhdGU+XHJcbjwvcC10YWJsZT5cclxuIl19
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFxQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUcvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWpELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDckMsT0FBTyxFQUFxRCxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0YsT0FBTyxFQUFjLG9CQUFvQixFQUFnQixNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBRTFGOzs7OztHQUtHO0FBQ0gsTUFBTSxXQUFXLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQVUsQ0FBQztBQWMvQyxNQUFNLE9BQU8sY0FBYztJQTBDMUIsWUFDUyxJQUFn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LGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQsIGVmZmVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBOb25OdWxsYWJsZUZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgTWVudUl0ZW0sIFByaW1lTkdDb25maWcgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IE92ZXJsYXlQYW5lbCB9IGZyb20gJ3ByaW1lbmcvb3ZlcmxheXBhbmVsJztcclxuaW1wb3J0IHsgVGFibGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcclxuXHJcbmltcG9ydCB7IHNhdmVBcyB9IGZyb20gJ2ZpbGUtc2F2ZXInO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBBUElfQ09ORklHUyB9IGZyb20gJ2FyaWwvYm9vdC9jb25maWcvYXBpJztcclxuaW1wb3J0IHsgUHJveHlUeXBlcyB9IGZyb20gJ2FyaWwvaHR0cCc7XHJcblxyXG5pbXBvcnQgeyB0cmFubGF0aW9ucyB9IGZyb20gJy4vaTE4bic7XHJcbmltcG9ydCB7IENvbEZvcm0sIEV4cG9ydEZvcm0sIEV4cG9ydE9wdGlvbnMsIEV4cG9ydFJlcXVlc3QsIEV4cG9ydFR5cGUgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBBbGlnblR5cGVzLCBUYWJsZUNvbHVtbkNvbXBvbmVudCwgVGFibGVDb2x1bW5zIH0gZnJvbSAnLi90YWJsZS1jb2x1bW4uY29tcG9uZW50JztcclxuXHJcbi8qIFRPRE8gOlxyXG4gKiBzZXJ2ZXItc2lkZS1wcm94eSAoUHJveHlUeXBlcy5TZXJ2ZXJTaWRlKVxyXG4gKiBzZWFyY2ggJiBjb2x1bSBmaWx0ZXIgJiBzb3J0XHJcbiAqIHBhZ2luYXRpb24gb3BlcmF0aW9uXHJcbiAqIFF1ZXJ5IFNpZ25hbHNcclxuICovXHJcbmNvbnN0IHBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0gYXMgY29uc3Q7XHJcblxyXG50eXBlIFNlbGVjdGlvblR5cGVzID0gJ3NpbmdsZScgfCAnbXVsdGlwbGUnO1xyXG5cclxuaW50ZXJmYWNlIElLZWJhYk1lbnVJdGVtIHtcclxuXHRpY29uOiBzdHJpbmc7XHJcblx0bGFiZWw6IHN0cmluZztcclxuXHRvbkNsaWNrOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXJpbC10YWJsZScsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IHtcclxuXHRAT3V0cHV0KCkgb25QYWdlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblx0QE91dHB1dCgpIHNlbGVjdGlvbkV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cdEBDb250ZW50Q2hpbGRyZW4oVGFibGVDb2x1bW5Db21wb25lbnQpIGNvbHVtbnMhOiBUYWJsZUNvbHVtbnM7XHJcblx0QFZpZXdDaGlsZChPdmVybGF5UGFuZWwpIG9wITogT3ZlcmxheVBhbmVsO1xyXG5cdEBWaWV3Q2hpbGQoVGFibGUpIHRhYmxlUmVmITogVGFibGU7XHJcblx0QElucHV0KCkga2ViYWJNZW51SXRlbXM6IE1lbnVJdGVtW10gPSBbXTtcclxuXHJcblx0ZGF0YSA9IGlucHV0LnJlcXVpcmVkPGFueVtdPigpO1xyXG5cdGNoZWNrYm94U2VsZWN0aW9uID0gaW5wdXQ8Ym9vbGVhbj4oKTtcclxuXHRoZWFkZXJDaGVja2JveFNlbGVjdGlvbiA9IGlucHV0PGJvb2xlYW4+KCk7XHJcblx0cGFnZVNpemUgPSBpbnB1dDwodHlwZW9mIHBhZ2VPcHRpb25zKVtudW1iZXJdPigxMCk7XHJcblx0cHJveHkgPSBpbnB1dDxQcm94eVR5cGVzPihQcm94eVR5cGVzLk5hdGl2ZSk7XHJcblx0c2hvd0Zvb3RlciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHR0QWxpZ24gPSBpbnB1dDxBbGlnblR5cGVzPignbGVmdCcpO1xyXG5cdHNlbGVjdGlvbk1vZGUgPSBpbnB1dDxTZWxlY3Rpb25UeXBlcz4oKTtcclxuXHRzaG93U2VhcmNoVG9vbCA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cdHNob3dFeHBvcnRUb29sID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0ZXhwb3J0RmlsZU5hbWUgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuXHRub0RhdGFGb3VuZExhYmVsID0gaW5wdXQ8c3RyaW5nPignTm8gRGF0YSBGb3VuZCcpO1xyXG5cdHRhYmxlSGVhZGVyID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcblx0c2hvd1RhYmxlSGVhZGVyID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGlzRmlyc3RSb3dTZWxlY3RlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRkYXRhS2V5ID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcblx0c2VsZWN0ZWRSb3dzSW5wdXQgPSBpbnB1dDxhbnk+KFtdKTtcclxuXHJcblx0LyoqXHJcblx0ICogQHNlZSB7QGxpbmsgRXhwb3J0T3B0aW9uc31cclxuXHQgKi9cclxuXHRleHBvcnRDb25maWcgPSBpbnB1dDxFeHBvcnRPcHRpb25zPigpO1xyXG5cclxuXHRleHBvcnRGb3JtITogRm9ybUdyb3VwPEV4cG9ydEZvcm0+O1xyXG5cdGV4cG9ydFR5cGVPcHRpb25zID0gW1xyXG5cdFx0eyBrZXk6IEV4cG9ydFR5cGUuRXhjZWwsIGxhYmVsOiAnRXhjZWwnLCBmaWxlRXh0ZW5zaW9uOiAnLnhsc3gnIH0sXHJcblx0XHR7IGtleTogRXhwb3J0VHlwZS5Dc3YsIGxhYmVsOiAnQ3N2JywgZmlsZUV4dGVuc2lvbjogJy5jc3YnIH1cclxuXHRdO1xyXG5cclxuXHRmaWx0ZXJUZXh0ITogc3RyaW5nO1xyXG5cdHNlbGVjdGVkUm93czogYW55O1xyXG5cdHBhZ2VPcHRpb25zID0gcGFnZU9wdGlvbnM7XHJcblx0ZXhwb3J0Q29sdW1uczogQXJyYXk8eyB0aXRsZTogc3RyaW5nOyBkYXRhS2V5OiBzdHJpbmcgfT4gPSBbXTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcblx0XHRwcml2YXRlIGZiOiBOb25OdWxsYWJsZUZvcm1CdWlsZGVyLFxyXG5cdFx0cHJpdmF0ZSBwcmltZW5nQ29uZmlnOiBQcmltZU5HQ29uZmlnXHJcblx0KSB7XHJcblx0XHR0aGlzLnByaW1lbmdDb25maWcuc2V0VHJhbnNsYXRpb24odHJhbmxhdGlvbnMpO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmlzRmlyc3RSb3dTZWxlY3RlZCgpICYmIHRoaXMuZGF0YSgpKSB7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZFJvd3MgPSB0aGlzLmRhdGEoKVswXTtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGlvbkV2ZW50LmVtaXQodGhpcy5zZWxlY3RlZFJvd3MpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZFJvd3NJbnB1dCgpKSB7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZFJvd3MgPSB0aGlzLnNlbGVjdGVkUm93c0lucHV0KCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmV4cG9ydENvbmZpZygpKSB7XHJcblx0XHRcdFx0dGhpcy5jcmVhdGVFeHBvcnRGb3JtKCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBjcmVhdGVFeHBvcnRGb3JtKCk6IHZvaWQge1xyXG5cdFx0Y29uc3QgeyBleHBvcnRMYWJlbCB9ID0gdGhpcy5leHBvcnRDb25maWcoKSE7XHJcblxyXG5cdFx0dGhpcy5leHBvcnRGb3JtID0gdGhpcy5mYi5ncm91cDxFeHBvcnRGb3JtPih7XHJcblx0XHRcdGV4cG9ydFR5cGU6IHRoaXMuZmIuY29udHJvbChFeHBvcnRUeXBlLkV4Y2VsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuXHRcdFx0ZXhwb3J0TGFiZWw6IHRoaXMuZmIuY29udHJvbChleHBvcnRMYWJlbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcblx0XHRcdGNvbHVtbnM6IHRoaXMuZmIuYXJyYXk8Rm9ybUdyb3VwPENvbEZvcm0+PihbXSlcclxuXHRcdH0pO1xyXG5cclxuXHRcdHRoaXMuY29sdW1ucy5fcmVzdWx0c1xyXG5cdFx0XHQuZmlsdGVyKChjb2wpID0+IGNvbC50eXBlKCkgIT09ICdvcGVyYXRpb25zJylcclxuXHRcdFx0LmZpbHRlcigoY29sKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgZXhwb3J0Q29uZmlnID0gdGhpcy5leHBvcnRDb25maWcoKTtcclxuXHRcdFx0XHRjb25zdCBleGNsdWRlZEZpZWxkcyA9IGV4cG9ydENvbmZpZz8uZXhjbHVkZWRGaWVsZHMgPz8gW107XHJcblxyXG5cdFx0XHRcdHJldHVybiAhZXhjbHVkZWRGaWVsZHMuaW5jbHVkZXMoY29sLmZpZWxkKCkpO1xyXG5cdFx0XHR9KVxyXG5cdFx0XHQuZm9yRWFjaCgoY29sKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgY29sR3JvdXAgPSB0aGlzLmZiLmdyb3VwPENvbEZvcm0+KHtcclxuXHRcdFx0XHRcdGNoZWNrZWQ6IHRoaXMuZmIuY29udHJvbCh0cnVlKSxcclxuXHRcdFx0XHRcdHRpdGxlOiB0aGlzLmZiLmNvbnRyb2woY29sLmhlYWRlcigpKSxcclxuXHRcdFx0XHRcdGRhdGFLZXk6IHRoaXMuZmIuY29udHJvbChjb2wuZmllbGQoKSlcclxuXHRcdFx0XHR9KTtcclxuXHJcblx0XHRcdFx0dGhpcy5leHBvcnRGb3JtLmNvbnRyb2xzLmNvbHVtbnMucHVzaChjb2xHcm91cCk7XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgZXhwb3J0KCkge1xyXG5cdFx0Y29uc3QgeyBleHBvcnRUeXBlLCBleHBvcnRMYWJlbCwgY29sdW1ucyB9ID0gdGhpcy5leHBvcnRGb3JtLnZhbHVlO1xyXG5cdFx0Y29uc3QgeyByb3V0ZSwgcGFyYW1zLCBjb2x1bW5GaWVsZFZhbHVlTWFwLCBkYXRlQ29sdW1uRm9ybWF0TWFwIH0gPSB0aGlzLmV4cG9ydENvbmZpZygpITtcclxuXHJcblx0XHRjb25zdCBjaGVja2VkQ29sdW1ucyA9IGNvbHVtbnMhLmZpbHRlcigodCkgPT4gdC5jaGVja2VkKTtcclxuXHRcdGNvbnN0IGZpbGVFeHRlbnNpb24gPSB0aGlzLmV4cG9ydFR5cGVPcHRpb25zLmZpbmQoKHQpID0+IHQua2V5ID09PSBleHBvcnRUeXBlKT8uZmlsZUV4dGVuc2lvbjtcclxuXHJcblx0XHRjb25zdCByZXF1ZXN0OiBFeHBvcnRSZXF1ZXN0ID0ge1xyXG5cdFx0XHRyb3V0ZTogcm91dGUhLFxyXG5cdFx0XHRwYXJhbXM6IHBhcmFtcyEsXHJcblx0XHRcdGV4cG9ydFR5cGU6IGV4cG9ydFR5cGUhLFxyXG5cdFx0XHRleHBvcnRMYWJlbDogZXhwb3J0TGFiZWwhLFxyXG5cdFx0XHRjb2x1bW5GaWVsZFZhbHVlTWFwOiBjb2x1bW5GaWVsZFZhbHVlTWFwISxcclxuXHRcdFx0ZGF0ZUNvbHVtbkZvcm1hdE1hcDogZGF0ZUNvbHVtbkZvcm1hdE1hcCEsXHJcblx0XHRcdGhlYWRlck5hbWVzOiBjaGVja2VkQ29sdW1ucy5tYXAoKGNvbCkgPT4gY29sLnRpdGxlISksXHJcblx0XHRcdG91dHB1dEZpZWxkczogY2hlY2tlZENvbHVtbnMubWFwKChjb2wpID0+IGNvbC5kYXRhS2V5ISlcclxuXHRcdH07XHJcblxyXG5cdFx0Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuXHRcdFx0dGhpcy5odHRwLnBvc3Q8eyBzdWNjZXNzOiBib29sZWFuOyB1cmw6IHN0cmluZyB9PihBUElfQ09ORklHUy5hcGkgKyAnL2JhdGNoLWV4cG9ydGVycy9leHBvcnQnLCByZXF1ZXN0KS5waXBlKFxyXG5cdFx0XHRcdHN3aXRjaE1hcCgocmVzKSA9PlxyXG5cdFx0XHRcdFx0dGhpcy5odHRwLmdldChBUElfQ09ORklHUy5hcGkgKyAnL2J1Y2tldC1vYmplY3RzL2Rvd25sb2FkJywge1xyXG5cdFx0XHRcdFx0XHRwYXJhbXM6IHsgdXJsOiByZXMudXJsIH0sXHJcblx0XHRcdFx0XHRcdHJlc3BvbnNlVHlwZTogJ2Jsb2InXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdClcclxuXHRcdFx0KVxyXG5cdFx0KTtcclxuXHJcblx0XHRzYXZlQXMocmVzcG9uc2UsIGAke2V4cG9ydExhYmVsfS0ke25ldyBEYXRlKCkuZ2V0VGltZSgpfSR7ZmlsZUV4dGVuc2lvbn1gKTtcclxuXHR9XHJcblxyXG5cdHRvZ2dsZUV4cG9ydCA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHRoaXMub3AudG9nZ2xlKGV2ZW50KTtcclxuXHJcblx0Y2xlYXIoKTogdm9pZCB7XHJcblx0XHR0aGlzLnRhYmxlUmVmLnZhbHVlID0gW107XHJcblx0XHR0aGlzLnRhYmxlUmVmLmNsZWFyKCk7XHJcblx0fVxyXG59XHJcbiIsIlxyXG48cC10YWJsZVxyXG5cdCNyZWZcclxuXHRbdmFsdWVdPVwiZGF0YSgpXCJcclxuXHRbZGF0YUtleV09XCJkYXRhS2V5KClcIlxyXG5cdFtjb2x1bW5zXT1cImNvbHVtbnMuX3Jlc3VsdHNcIlxyXG5cdFtyb3dzXT1cInBhZ2VTaXplKClcIlxyXG5cdFtyb3dIb3Zlcl09XCJ0cnVlXCJcclxuXHRbcGFnaW5hdG9yXT1cInRydWVcIlxyXG5cdFtyb3dzUGVyUGFnZU9wdGlvbnNdPVwiWzEwLCAyMCwgNTAsIDEwMF1cIlxyXG5cdFtmaWx0ZXJEZWxheV09XCIwXCJcclxuXHRzb3J0TW9kZT1cIm11bHRpcGxlXCJcclxuXHRbKHNlbGVjdGlvbildPVwic2VsZWN0ZWRSb3dzXCJcclxuXHQob25QYWdlKT1cIm9uUGFnZUV2ZW50LmVtaXQoJGV2ZW50KVwiXHJcblx0KHNlbGVjdGlvbkNoYW5nZSk9XCJzZWxlY3Rpb25FdmVudC5lbWl0KHNlbGVjdGVkUm93cylcIlxyXG5cdFtzaG93Q3VycmVudFBhZ2VSZXBvcnRdPVwidHJ1ZVwiXHJcblx0W3NlbGVjdGlvbk1vZGVdPVwic2VsZWN0aW9uTW9kZSgpXCJcclxuXHRjdXJyZW50UGFnZVJlcG9ydFRlbXBsYXRlPVwiVG9wbGFtIDoge3RvdGFsUmVjb3Jkc30ga2F5xLF0IHwgU2F5ZmEgOiB7Y3VycmVudFBhZ2V9IC8ge3RvdGFsUGFnZXN9XCJcclxuXHRzdHlsZUNsYXNzPVwicC1kYXRhdGFibGUtc21cIj5cclxuXHQ8IS0tQGlmICh0YWJsZUhlYWRlcigpIHx8IHNob3dTZWFyY2hUb29sKCkgfHwgc2hvd0V4cG9ydFRvb2woKSkge1xyXG5cdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNhcHRpb25cIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggc3BhY2UtYmV0d2VlblwiPlxyXG5cdFx0XHRcdDxkaXYgc3R5bGU9XCJmbGV4OiBhdXRvXCI+XHJcblx0XHRcdFx0XHRAaWYgKHRhYmxlSGVhZGVyKCkubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cclxuXHRcdFx0XHRcdFx0XHR7eyB0YWJsZUhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDxkaXYgc3R5bGU9XCJmbGV4OiBhdXRvXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRAaWYgKGZhbHNlKSB7XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtdGV4dFxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIlNFQVJDSFwiXHJcblx0XHRcdFx0XHRcdFx0XHRpY29uUG9zPVwibGVmdFwiXHJcblx0XHRcdFx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIkFyYW1hXCJcclxuXHRcdFx0XHRcdFx0XHRcdFtuZ01vZGVsXT1cImZpbHRlclRleHRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJtci0xXCJcclxuXHRcdFx0XHRcdFx0XHRcdChuZ01vZGVsQ2hhbmdlKT1cInJlZi5maWx0ZXJHbG9iYWwoJGV2ZW50LnRhcmdldC52YWx1ZSwgJ2NvbnRhaW5zJylcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L2FyaWwtdGV4dD5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRAaWYgKGZhbHNlKSB7XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIkZJTEVfRVhDRUxcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Y29sb3I9XCJwcmltYXJ5XCJcclxuXHRcdFx0XHRcdFx0XHRcdHBUb29sdGlwPVwiWExTXCJcclxuXHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXHJcblx0XHRcdFx0XHRcdFx0XHQoY2xpY2tFdmVudCk9XCJleGNlbEV4cG9ydCgpXCJcclxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwibXItMVwiPlxyXG5cdFx0XHRcdFx0XHRcdDwvYXJpbC1idXR0b24+XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIkZJTEVfUERGXCJcclxuXHRcdFx0XHRcdFx0XHRcdGNvbG9yPVwicHJpbWFyeVwiXHJcblx0XHRcdFx0XHRcdFx0XHRwVG9vbHRpcD1cIlBERlwiXHJcblx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG5cdFx0XHRcdFx0XHRcdFx0KGNsaWNrRXZlbnQpPVwiZXhwb3J0UGRmKClcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L2FyaWwtYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdEBpZiAoZGF0YSgpICYmIGtlYmFiTWVudUl0ZW1zLmxlbmd0aCA+IDAgKSB7XHJcblx0XHRcdFx0XHRcdFx0PGRpdiB0b29scyBzdHlsZT1cInBhZGRpbmc6IDRweDttYXJnaW4tbGVmdDogNHB4O2JvcmRlcjoxcHggc29saWQgIzYzNjZmMTtib3JkZXItcmFkaXVzOiA2cHg7YmFja2dyb3VuZC1jb2xvcjogIzYzNjZmMTsgY29sb3I6IHdoaXRlO1wiID5cclxuXHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFthdHRyLnJvbGVdPVwiJ25vbmUnXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBtci0xIGhlYWRlci1pY29uIHBpLWVsbGlwc2lzLXZcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwiYnVsa09wZXJhdGlvbnMudG9nZ2xlKCRldmVudCk7XCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHAtbWVudVxyXG5cdFx0XHRcdFx0XHRcdFx0XHQjYnVsa09wZXJhdGlvbnNcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3BvcHVwXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbbW9kZWxdPVwia2ViYWJNZW51SXRlbXNcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRzdHlsZUNsYXNzPVwiei1pbmRleDogOTk5ODg5OTtcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRhcHBlbmRUbz1cImJvZHlcIj48L3AtbWVudT5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHR9LS0+XHJcblx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHRAaWYgKGNoZWNrYm94U2VsZWN0aW9uKCkpIHtcclxuXHRcdFx0XHQ8dGg+XHJcblx0XHRcdFx0XHRAaWYoaGVhZGVyQ2hlY2tib3hTZWxlY3Rpb24oKSkge1xyXG5cdFx0XHRcdFx0XHQ8cC10YWJsZUhlYWRlckNoZWNrYm94PjwvcC10YWJsZUhlYWRlckNoZWNrYm94PlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdDwvdGg+XHJcblx0XHRcdH1cclxuXHRcdFx0QGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrICRpbmRleCkge1xyXG5cdFx0XHRcdEBpZiAoY29sdW1uLnR5cGUoKSA9PT0gJ29wZXJhdGlvbnMnKSB7XHJcblx0XHRcdFx0XHQ8dGg+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj7EsMWfbGVtbGVyPC9kaXY+XHJcblx0XHRcdFx0XHQ8L3RoPlxyXG5cdFx0XHRcdH0gQGVsc2Uge1xyXG5cdFx0XHRcdFx0PHRoIFtwU29ydGFibGVDb2x1bW5dPVwiY29sdW1uLmZpZWxkKClcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcblx0XHRcdFx0XHRcdFx0e3sgY29sdW1uLmhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXhcIj5cclxuXHRcdFx0XHRcdFx0XHRcdEBpZiAoY29sdW1uLmlzU2hvd0hlYWRlclRvb2x0aXAoKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8aSBzdHlsZT1cImNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTsgcGFkZGluZy10b3A6IDRweDsgcGFkZGluZy1sZWZ0OiA0cHg7XCIgY2xhc3M9XCJwaSBwaS1xdWVzdGlvbi1jaXJjbGVcIiBbcFRvb2x0aXBdPVwiY29sdW1uLnRvb2x0aXBUZW1wbGF0ZSgpXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0PHAtc29ydEljb24gW2ZpZWxkXT1cImNvbHVtbi5maWVsZCgpXCI+PC9wLXNvcnRJY29uPlxyXG5cdFx0XHRcdFx0XHRcdFx0PCEtLTxwLWNvbHVtbkZpbHRlclxyXG5cdFx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5PVwibWVudVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFt0eXBlXT1cImNvbHVtbi50eXBlKClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbZmllbGRdPVwiY29sdW1uLmZpZWxkKClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbc2hvd01hdGNoTW9kZXNdPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtzaG93T3BlcmF0b3JdPVwiZmFsc2VcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbc2hvd0FkZEJ1dHRvbl09XCJ0cnVlXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3AtY29sdW1uRmlsdGVyPi0tPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdDwhLS0gY3VzdG9tIGZpbHRlciBmb3IgKGRhdGUgZXRjLiktLT5cclxuXHRcdFx0XHRcdFx0XHQ8IS0tIDxwLWNvbHVtbkZpbHRlciB0eXBlPVwidGV4dFwiIFtmaWVsZF09XCJjb2wuZmllbGRcIiBbbWF0Y2hNb2RlT3B0aW9uc109XCJtYXRjaE1vZGVPcHRpb25zXCIgW21hdGNoTW9kZV09XCInY3VzdG9tLWVxdWFscydcIj48L3AtY29sdW1uRmlsdGVyPiAtLT5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L3RoPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0PC90cj5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG5cdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWl0ZW0gbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCI+XHJcblx0XHRAaWYgKHNlbGVjdGlvbk1vZGUoKSkge1xyXG5cdFx0XHQ8dHIgW3BTZWxlY3RhYmxlUm93XT1cIml0ZW1cIj5cclxuXHRcdFx0XHRAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgJGluZGV4KSB7XHJcblx0XHRcdFx0XHQ8dGQgW25nU3R5bGVdPVwieyAndGV4dC1hbGlnbic6IGNvbHVtbi50eXBlKCkgPT09ICdvcGVyYXRpb25zJyA/ICdjZW50ZXInIDogY29sdW1uLnRBbGlnbigpIHx8IHRBbGlnbigpIH1cIj5cclxuXHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlIG5nRm9yIFtuZ0Zvck9mXT1cIltpdGVtXVwiIFtuZ0ZvclRlbXBsYXRlXT1cImNvbHVtbi50ZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8L3RkPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0PC90cj5cclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQ8dHI+XHJcblx0XHRcdFx0QGlmIChjaGVja2JveFNlbGVjdGlvbigpKSB7XHJcblx0XHRcdFx0XHQ8dGQ+XHJcblx0XHRcdFx0XHRcdDxwLXRhYmxlQ2hlY2tib3ggW3ZhbHVlXT1cIml0ZW1cIj48L3AtdGFibGVDaGVja2JveD5cclxuXHRcdFx0XHRcdDwvdGQ+XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgJGluZGV4KSB7XHJcblx0XHRcdFx0XHQ8dGQgW25nU3R5bGVdPVwieyAndGV4dC1hbGlnbic6IGNvbHVtbi50eXBlKCkgPT09ICdvcGVyYXRpb25zJyA/ICdjZW50ZXInIDogY29sdW1uLnRBbGlnbigpIHx8IHRBbGlnbigpIH1cIj5cclxuXHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlIG5nRm9yIFtuZ0Zvck9mXT1cIltpdGVtXVwiIFtuZ0ZvclRlbXBsYXRlXT1cImNvbHVtbi50ZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8L3RkPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0PC90cj5cclxuXHRcdH1cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG5cclxuXHRAaWYgKHNob3dGb290ZXIoKSkge1xyXG5cdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInN1bW1hcnlcIj5cclxuXHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Zvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XHJcblx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdH1cclxuXHJcblx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQgW2F0dHIuY29sc3Bhbl09XCJjb2x1bW5zLl9yZXN1bHRzLmxlbmd0aFwiPnt7IG5vRGF0YUZvdW5kTGFiZWwoKSB9fTwvdGQ+XHJcblx0XHQ8L3RyPlxyXG5cdDwvbmctdGVtcGxhdGU+XHJcbjwvcC10YWJsZT5cclxuXHJcbjxwLW92ZXJsYXlQYW5lbCBzdHlsZUNsYXNzPVwiZXhwb3J0LW92ZXJsYXktcGFuZWxcIj5cclxuXHRAaWYgKGV4cG9ydEZvcm0pIHtcclxuXHQ8YXJpbC1mb3JtIFtmb3JtR3JvdXBdPVwiZXhwb3J0Rm9ybVwiIGNsYXNzPVwidy0yMHJlbVwiPlxyXG5cdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cIidFeHBvcnQgVGlwaSdcIiBbY29sc109XCJ7IGRlZmF1bHQ6IDEyIH1cIj5cclxuXHRcdFx0PGFyaWwtcmFkaW8tYnV0dG9uIGZvcm1Db250cm9sTmFtZT1cImV4cG9ydFR5cGVcIiBbb3B0aW9uc109XCJleHBvcnRUeXBlT3B0aW9uc1wiIC8+XHJcblx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cIidEb3N5YSDEsHNtaSdcIiBbY29sc109XCJ7IGRlZmF1bHQ6IDEyIH1cIj5cclxuXHRcdFx0PGFyaWwtdGV4dCBjbGFzcz1cInctZnVsbFwiIGZvcm1Db250cm9sTmFtZT1cImV4cG9ydExhYmVsXCIgLz5cclxuXHRcdDwvYXJpbC1maWVsZD5cclxuXHJcblx0XHQ8bmctY29udGFpbmVyIGZvcm1BcnJheU5hbWU9XCJjb2x1bW5zXCI+XHJcblx0XHRcdDxwLW9yZGVyTGlzdFxyXG5cdFx0XHRcdGNsYXNzPVwiY29sLTEyXCJcclxuXHRcdFx0XHRbdmFsdWVdPVwiZXhwb3J0Rm9ybS5jb250cm9scy5jb2x1bW5zLmNvbnRyb2xzXCJcclxuXHRcdFx0XHRbbGlzdFN0eWxlXT1cInsgJ21heC1oZWlnaHQnOiAnMjByZW0nIH1cIlxyXG5cdFx0XHRcdGZpbHRlckJ5PVwidmFsdWUudGl0bGVcIj5cclxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgbGV0LWNvbCBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHQ8YXJpbC1jaGVja2JveCBbbGFiZWxdPVwiY29sLnZhbHVlLnRpdGxlXCIgW2Zvcm1Db250cm9sXT1cImNvbC5jb250cm9scy5jaGVja2VkXCIgLz5cclxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHQ8L3Atb3JkZXJMaXN0PlxyXG5cdFx0PC9uZy1jb250YWluZXI+XHJcblxyXG5cdFx0PGFyaWwtYnV0dG9uIGNsYXNzPVwiY29sLTEyXCIgbGFiZWw9XCJFeHBvcnRcIiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2tFdmVudCk9XCJleHBvcnQoKVwiIC8+XHJcblx0PC9hcmlsLWZvcm0+XHJcblx0fVxyXG48L3Atb3ZlcmxheVBhbmVsPlxyXG4iXX0=