@acorex/components 17.0.11 → 17.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. package/audio-wave/lib/audio-wave.component.d.ts +1 -0
  2. package/audio-wave/lib/audio-wave.module.d.ts +2 -1
  3. package/calendar/lib/calendar-range.component.d.ts +2 -0
  4. package/calendar/lib/calendar.class.d.ts +3 -2
  5. package/calendar/lib/calendar.component.d.ts +2 -1
  6. package/chat/lib/chat-message/chat-message.component.d.ts +5 -1
  7. package/chat/lib/chat-messages/chat-messages-voice/chat-message-voice.component.d.ts +5 -2
  8. package/chat/lib/chat.module.d.ts +3 -1
  9. package/common/lib/classes/events.class.d.ts +1 -1
  10. package/common/lib/components/base-component.class.d.ts +4 -4
  11. package/common/lib/components/input-base-value-component.class.d.ts +1 -0
  12. package/data-pager/lib/data-pager-next-buttons.components.d.ts +2 -0
  13. package/data-pager/lib/data-pager-prev-buttons.component.d.ts +2 -0
  14. package/data-table/lib/columns/data-table-column.d.ts +2 -3
  15. package/data-table/lib/columns/data-text-column.component.d.ts +8 -4
  16. package/data-table/lib/columns/row-command-column.component.d.ts +8 -4
  17. package/data-table/lib/columns/row-index-column.component.d.ts +4 -2
  18. package/data-table/lib/columns/row-select-column.component.d.ts +7 -2
  19. package/data-table/lib/data-table/data-table.component.d.ts +1 -0
  20. package/datetime-picker/lib/datetime-picker.component.d.ts +2 -0
  21. package/esm2022/audio-wave/lib/audio-wave.component.mjs +21 -17
  22. package/esm2022/audio-wave/lib/audio-wave.module.mjs +5 -4
  23. package/esm2022/calendar/lib/calendar-range.component.mjs +10 -8
  24. package/esm2022/calendar/lib/calendar.class.mjs +14 -27
  25. package/esm2022/calendar/lib/calendar.component.mjs +14 -2
  26. package/esm2022/chat/lib/chat-message/chat-message.component.mjs +24 -5
  27. package/esm2022/chat/lib/chat-messages/chat-messages-voice/chat-message-voice.component.mjs +25 -14
  28. package/esm2022/chat/lib/chat.module.mjs +10 -3
  29. package/esm2022/common/lib/classes/events.class.mjs +1 -1
  30. package/esm2022/common/lib/components/base-component.class.mjs +14 -26
  31. package/esm2022/common/lib/components/input-base-value-component.class.mjs +8 -1
  32. package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +6 -2
  33. package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +13 -13
  34. package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +15 -47
  35. package/esm2022/data-pager/lib/data-pager.component.mjs +2 -2
  36. package/esm2022/data-table/lib/columns/data-table-column.mjs +2 -6
  37. package/esm2022/data-table/lib/columns/data-text-column.component.mjs +31 -25
  38. package/esm2022/data-table/lib/columns/row-command-column.component.mjs +97 -81
  39. package/esm2022/data-table/lib/columns/row-index-column.component.mjs +19 -11
  40. package/esm2022/data-table/lib/columns/row-select-column.component.mjs +61 -11
  41. package/esm2022/data-table/lib/data-table/data-table.component.mjs +5 -4
  42. package/esm2022/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.mjs +3 -3
  43. package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +21 -2
  44. package/esm2022/drawer/lib/drawer.component.mjs +2 -2
  45. package/esm2022/list/lib/list.component.mjs +13 -3
  46. package/esm2022/phone-box/lib/phone-box.component.mjs +29 -28
  47. package/esm2022/select-box/lib/select-box.component.mjs +29 -9
  48. package/esm2022/text-box/lib/mask-options.directive.mjs +16 -4
  49. package/esm2022/text-box/lib/text-box.component.mjs +8 -1
  50. package/fesm2022/acorex-components-audio-wave.mjs +24 -19
  51. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  52. package/fesm2022/acorex-components-calendar.mjs +31 -31
  53. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  54. package/fesm2022/acorex-components-chat.mjs +55 -21
  55. package/fesm2022/acorex-components-chat.mjs.map +1 -1
  56. package/fesm2022/acorex-components-common.mjs +21 -25
  57. package/fesm2022/acorex-components-common.mjs.map +1 -1
  58. package/fesm2022/acorex-components-data-pager.mjs +31 -59
  59. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  60. package/fesm2022/acorex-components-data-table.mjs +210 -133
  61. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  62. package/fesm2022/acorex-components-datetime-picker.mjs +20 -1
  63. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  64. package/fesm2022/acorex-components-drawer.mjs +2 -2
  65. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  66. package/fesm2022/acorex-components-list.mjs +13 -3
  67. package/fesm2022/acorex-components-list.mjs.map +1 -1
  68. package/fesm2022/acorex-components-phone-box.mjs +29 -29
  69. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  70. package/fesm2022/acorex-components-select-box.mjs +28 -8
  71. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  72. package/fesm2022/acorex-components-text-box.mjs +22 -3
  73. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  74. package/list/lib/list.component.d.ts +3 -2
  75. package/package.json +1 -1
  76. package/phone-box/lib/phone-box.component.d.ts +4 -2
  77. package/select-box/lib/select-box.component.d.ts +5 -4
  78. package/text-box/lib/mask-options.directive.d.ts +6 -2
  79. package/text-box/lib/text-box.component.d.ts +1 -0
@@ -1,11 +1,15 @@
1
- import { AXUnsubscriber } from '@acorex/core/utils';
2
- import { ChangeDetectionStrategy, Component, ViewEncapsulation, } from '@angular/core';
1
+ import { AXHtmlUtil, AXUnsubscriber } from '@acorex/core/utils';
2
+ import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
3
3
  import { AXDataPagerChild } from './data-pager-base.component';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/common";
6
6
  import * as i2 from "@acorex/components/button";
7
7
  import * as i3 from "@acorex/components/decorators";
8
8
  export class AXDataPagerPrevButtonsComponent extends AXDataPagerChild {
9
+ ngOnInit() {
10
+ super.ngOnInit;
11
+ this.rtl = AXHtmlUtil.isRtl(this.getHostElement());
12
+ }
9
13
  applyParent() {
10
14
  this.disabled = this._parent.displayInfo.page == 1 || this._parent.disabled;
11
15
  }
@@ -20,29 +24,11 @@ export class AXDataPagerPrevButtonsComponent extends AXDataPagerChild {
20
24
  this._parent.goPrevPage();
21
25
  }
22
26
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXDataPagerPrevButtonsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: AXDataPagerPrevButtonsComponent, selector: "ax-data-pager-prev-buttons", providers: [
24
- { provide: AXDataPagerChild, useExisting: AXDataPagerPrevButtonsComponent },
25
- AXUnsubscriber,
26
- ], usesInheritance: true, ngImport: i0, template: `
27
- <ax-button
28
- [disabled]="disabled"
29
- look="blank"
30
- class="ax-sm"
31
- title="Go to the last page"
32
- (onClick)="_emitOnFirstPageClick($event)"
33
- >
34
- <ax-icon
35
- class="ax-icon ax-text-xl"
36
- [ngClass]="{ 'ax-icon-last-page': rtl, 'ax-icon-first-page': !rtl }"
37
- ></ax-icon>
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: AXDataPagerPrevButtonsComponent, selector: "ax-data-pager-prev-buttons", providers: [{ provide: AXDataPagerChild, useExisting: AXDataPagerPrevButtonsComponent }, AXUnsubscriber], usesInheritance: true, ngImport: i0, template: `
28
+ <ax-button [disabled]="disabled" look="blank" class="ax-sm" title="Go to the last page" (onClick)="_emitOnFirstPageClick($event)">
29
+ <ax-icon class="ax-icon ax-text-xl" [ngClass]="{ 'ax-icon-last-page': rtl, 'ax-icon-first-page': !rtl }"></ax-icon>
38
30
  </ax-button>
39
- <ax-button
40
- [disabled]="disabled"
41
- look="blank"
42
- class="ax-sm"
43
- title="Go to the next page"
44
- (onClick)="_emitOnPrevPageClick($event)"
45
- >
31
+ <ax-button [disabled]="disabled" look="blank" class="ax-sm" title="Go to the next page" (onClick)="_emitOnPrevPageClick($event)">
46
32
  <ax-icon
47
33
  class="ax-icon ax-text-xl"
48
34
  [ngClass]="{
@@ -58,25 +44,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
58
44
  args: [{
59
45
  selector: 'ax-data-pager-prev-buttons',
60
46
  template: `
61
- <ax-button
62
- [disabled]="disabled"
63
- look="blank"
64
- class="ax-sm"
65
- title="Go to the last page"
66
- (onClick)="_emitOnFirstPageClick($event)"
67
- >
68
- <ax-icon
69
- class="ax-icon ax-text-xl"
70
- [ngClass]="{ 'ax-icon-last-page': rtl, 'ax-icon-first-page': !rtl }"
71
- ></ax-icon>
47
+ <ax-button [disabled]="disabled" look="blank" class="ax-sm" title="Go to the last page" (onClick)="_emitOnFirstPageClick($event)">
48
+ <ax-icon class="ax-icon ax-text-xl" [ngClass]="{ 'ax-icon-last-page': rtl, 'ax-icon-first-page': !rtl }"></ax-icon>
72
49
  </ax-button>
73
- <ax-button
74
- [disabled]="disabled"
75
- look="blank"
76
- class="ax-sm"
77
- title="Go to the next page"
78
- (onClick)="_emitOnPrevPageClick($event)"
79
- >
50
+ <ax-button [disabled]="disabled" look="blank" class="ax-sm" title="Go to the next page" (onClick)="_emitOnPrevPageClick($event)">
80
51
  <ax-icon
81
52
  class="ax-icon ax-text-xl"
82
53
  [ngClass]="{
@@ -88,10 +59,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
88
59
  `,
89
60
  changeDetection: ChangeDetectionStrategy.OnPush,
90
61
  encapsulation: ViewEncapsulation.None,
91
- providers: [
92
- { provide: AXDataPagerChild, useExisting: AXDataPagerPrevButtonsComponent },
93
- AXUnsubscriber,
94
- ],
62
+ providers: [{ provide: AXDataPagerChild, useExisting: AXDataPagerPrevButtonsComponent }, AXUnsubscriber],
95
63
  }]
96
64
  }] });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wYWdlci1wcmV2LWJ1dHRvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtcGFnZXIvc3JjL2xpYi9kYXRhLXBhZ2VyLXByZXYtYnV0dG9ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUF3Qy9ELE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxnQkFBZ0I7SUFDaEQsV0FBVztRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDOUUsQ0FBQztJQUVELHFCQUFxQixDQUFDLENBQWU7UUFDbkMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELG9CQUFvQixDQUFDLENBQWU7UUFDbEMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs4R0FiVSwrQkFBK0I7a0dBQS9CLCtCQUErQixxREFML0I7WUFDVCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsK0JBQStCLEVBQUU7WUFDM0UsY0FBYztTQUNmLGlEQWxDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCVDs7MkZBUVUsK0JBQStCO2tCQXRDM0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0QlQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxTQUFTLEVBQUU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxpQ0FBaUMsRUFBRTt3QkFDM0UsY0FBYztxQkFDZjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ2xpY2tFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhEYXRhUGFnZXJDaGlsZCB9IGZyb20gJy4vZGF0YS1wYWdlci1iYXNlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWRhdGEtcGFnZXItcHJldi1idXR0b25zJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YXgtYnV0dG9uXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgbG9vaz1cImJsYW5rXCJcbiAgICAgIGNsYXNzPVwiYXgtc21cIlxuICAgICAgdGl0bGU9XCJHbyB0byB0aGUgbGFzdCBwYWdlXCJcbiAgICAgIChvbkNsaWNrKT1cIl9lbWl0T25GaXJzdFBhZ2VDbGljaygkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8YXgtaWNvblxuICAgICAgICBjbGFzcz1cImF4LWljb24gYXgtdGV4dC14bFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2F4LWljb24tbGFzdC1wYWdlJzogcnRsLCAnYXgtaWNvbi1maXJzdC1wYWdlJzogIXJ0bCB9XCJcbiAgICAgID48L2F4LWljb24+XG4gICAgPC9heC1idXR0b24+XG4gICAgPGF4LWJ1dHRvblxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIGxvb2s9XCJibGFua1wiXG4gICAgICBjbGFzcz1cImF4LXNtXCJcbiAgICAgIHRpdGxlPVwiR28gdG8gdGhlIG5leHQgcGFnZVwiXG4gICAgICAob25DbGljayk9XCJfZW1pdE9uUHJldlBhZ2VDbGljaygkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8YXgtaWNvblxuICAgICAgICBjbGFzcz1cImF4LWljb24gYXgtdGV4dC14bFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnYXgtaWNvbi1jaGV2cm9uLWxlZnQnOiAhcnRsLFxuICAgICAgICAgICdheC1pY29uLWNoZXZyb24tcmlnaHQnOiBydGxcbiAgICAgICAgfVwiXG4gICAgICA+PC9heC1pY29uPlxuICAgIDwvYXgtYnV0dG9uPlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWERhdGFQYWdlckNoaWxkLCB1c2VFeGlzdGluZzogQVhEYXRhUGFnZXJQcmV2QnV0dG9uc0NvbXBvbmVudCB9LFxuICAgIEFYVW5zdWJzY3JpYmVyLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWERhdGFQYWdlclByZXZCdXR0b25zQ29tcG9uZW50IGV4dGVuZHMgQVhEYXRhUGFnZXJDaGlsZCB7XG4gIHByb3RlY3RlZCBvdmVycmlkZSBhcHBseVBhcmVudCgpIHtcbiAgICB0aGlzLmRpc2FibGVkID0gdGhpcy5fcGFyZW50LmRpc3BsYXlJbmZvLnBhZ2UgPT0gMSB8fCB0aGlzLl9wYXJlbnQuZGlzYWJsZWQ7XG4gIH1cblxuICBfZW1pdE9uRmlyc3RQYWdlQ2xpY2soZTogQVhDbGlja0V2ZW50KSB7XG4gICAgaWYgKHRoaXMuX3BhcmVudC5yZWFkb25seSB8fCB0aGlzLl9wYXJlbnQuZGlzYWJsZWQpIHJldHVybjtcbiAgICB0aGlzLl9wYXJlbnQuZ29GaXJzdFBhZ2UoKTtcbiAgfVxuXG4gIF9lbWl0T25QcmV2UGFnZUNsaWNrKGU6IEFYQ2xpY2tFdmVudCkge1xuICAgIGlmICh0aGlzLl9wYXJlbnQucmVhZG9ubHkgfHwgdGhpcy5fcGFyZW50LmRpc2FibGVkKSByZXR1cm47XG4gICAgdGhpcy5fcGFyZW50LmdvUHJldlBhZ2UoKTtcbiAgfVxufVxuIl19
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wYWdlci1wcmV2LWJ1dHRvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtcGFnZXIvc3JjL2xpYi9kYXRhLXBhZ2VyLXByZXYtYnV0dG9ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7OztBQXNCL0QsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLGdCQUFnQjtJQUcxRCxRQUFRO1FBQ2YsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRWtCLFdBQVc7UUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQzlFLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxDQUFlO1FBQ25DLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUMzRCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxDQUFlO1FBQ2xDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUMzRCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzVCLENBQUM7OEdBcEJVLCtCQUErQjtrR0FBL0IsK0JBQStCLHFEQUYvQixDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSwrQkFBK0IsRUFBRSxFQUFFLGNBQWMsQ0FBQyxpREFoQjlGOzs7Ozs7Ozs7Ozs7O0dBYVQ7OzJGQUtVLCtCQUErQjtrQkFwQjNDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7O0dBYVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLGlDQUFpQyxFQUFFLEVBQUUsY0FBYyxDQUFDO2lCQUN6RyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ2xpY2tFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhIdG1sVXRpbCwgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRGF0YVBhZ2VyQ2hpbGQgfSBmcm9tICcuL2RhdGEtcGFnZXItYmFzZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1kYXRhLXBhZ2VyLXByZXYtYnV0dG9ucycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGF4LWJ1dHRvbiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBsb29rPVwiYmxhbmtcIiBjbGFzcz1cImF4LXNtXCIgdGl0bGU9XCJHbyB0byB0aGUgbGFzdCBwYWdlXCIgKG9uQ2xpY2spPVwiX2VtaXRPbkZpcnN0UGFnZUNsaWNrKCRldmVudClcIj5cbiAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC10ZXh0LXhsXCIgW25nQ2xhc3NdPVwieyAnYXgtaWNvbi1sYXN0LXBhZ2UnOiBydGwsICdheC1pY29uLWZpcnN0LXBhZ2UnOiAhcnRsIH1cIj48L2F4LWljb24+XG4gICAgPC9heC1idXR0b24+XG4gICAgPGF4LWJ1dHRvbiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBsb29rPVwiYmxhbmtcIiBjbGFzcz1cImF4LXNtXCIgdGl0bGU9XCJHbyB0byB0aGUgbmV4dCBwYWdlXCIgKG9uQ2xpY2spPVwiX2VtaXRPblByZXZQYWdlQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgPGF4LWljb25cbiAgICAgICAgY2xhc3M9XCJheC1pY29uIGF4LXRleHQteGxcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ2F4LWljb24tY2hldnJvbi1sZWZ0JzogIXJ0bCxcbiAgICAgICAgICAnYXgtaWNvbi1jaGV2cm9uLXJpZ2h0JzogcnRsXG4gICAgICAgIH1cIlxuICAgICAgPjwvYXgtaWNvbj5cbiAgICA8L2F4LWJ1dHRvbj5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhEYXRhUGFnZXJDaGlsZCwgdXNlRXhpc3Rpbmc6IEFYRGF0YVBhZ2VyUHJldkJ1dHRvbnNDb21wb25lbnQgfSwgQVhVbnN1YnNjcmliZXJdLFxufSlcbmV4cG9ydCBjbGFzcyBBWERhdGFQYWdlclByZXZCdXR0b25zQ29tcG9uZW50IGV4dGVuZHMgQVhEYXRhUGFnZXJDaGlsZCB7XG4gIHByb3RlY3RlZCBydGwhOiBib29sZWFuO1xuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0O1xuICAgIHRoaXMucnRsID0gQVhIdG1sVXRpbC5pc1J0bCh0aGlzLmdldEhvc3RFbGVtZW50KCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGFwcGx5UGFyZW50KCkge1xuICAgIHRoaXMuZGlzYWJsZWQgPSB0aGlzLl9wYXJlbnQuZGlzcGxheUluZm8ucGFnZSA9PSAxIHx8IHRoaXMuX3BhcmVudC5kaXNhYmxlZDtcbiAgfVxuXG4gIF9lbWl0T25GaXJzdFBhZ2VDbGljayhlOiBBWENsaWNrRXZlbnQpIHtcbiAgICBpZiAodGhpcy5fcGFyZW50LnJlYWRvbmx5IHx8IHRoaXMuX3BhcmVudC5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIHRoaXMuX3BhcmVudC5nb0ZpcnN0UGFnZSgpO1xuICB9XG5cbiAgX2VtaXRPblByZXZQYWdlQ2xpY2soZTogQVhDbGlja0V2ZW50KSB7XG4gICAgaWYgKHRoaXMuX3BhcmVudC5yZWFkb25seSB8fCB0aGlzLl9wYXJlbnQuZGlzYWJsZWQpIHJldHVybjtcbiAgICB0aGlzLl9wYXJlbnQuZ29QcmV2UGFnZSgpO1xuICB9XG59XG4iXX0=
@@ -144,7 +144,7 @@ export class AXDataPagerComponent extends MXValueComponent {
144
144
  useExisting: forwardRef(() => AXDataPagerComponent),
145
145
  multi: true,
146
146
  },
147
- ], usesInheritance: true, ngImport: i0, template: "@switch(displayMode){\n@case('full'){\n<ax-prefix>\n <ax-data-pager-numeric-selector>\n </ax-data-pager-numeric-selector>\n <ax-data-pager-page-sizes>\n </ax-data-pager-page-sizes>\n</ax-prefix>\n<ax-suffix>\n <ax-data-pager-info>\n </ax-data-pager-info>\n</ax-suffix>\n}\n@case('compact'){\n<ax-prefix>\n <ax-data-pager-prev-buttons>\n </ax-data-pager-prev-buttons>\n <ax-data-pager-input-selector>\n </ax-data-pager-input-selector>\n <ax-data-pager-next-buttons>\n </ax-data-pager-next-buttons>\n</ax-prefix>\n<ax-suffix>\n <ax-data-pager-info>\n </ax-data-pager-info>\n</ax-suffix>\n}\n@default{\n<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content select=\"ax-suffix\"></ng-content>\n}\n}", styles: ["ax-data-pager{display:flex;width:100%;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem;font-size:.875rem;line-height:1.25rem}ax-data-pager ax-button-group{display:flex!important;gap:1rem!important;border-radius:0!important;border-width:0px!important}ax-data-pager ax-button-group ax-button-item{border-radius:0!important;border-width:0px!important;padding:0!important}ax-data-pager ax-button-group ax-button-item.ax-state-selected{border-width:1px!important}ax-data-pager ax-data-pager-input-selector .ax-input{width:4rem!important;max-width:10rem!important;text-align:center!important}ax-data-pager ax-data-pager-next-buttons,ax-data-pager ax-data-pager-prev-buttons,ax-data-pager ax-data-pager-numeric-selector{display:flex;gap:.5rem}ax-data-pager ax-data-pager-page-sizes ax-button{border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default))}ax-data-pager ax-prefix,ax-data-pager ax-suffix{display:flex}\n"], dependencies: [{ kind: "component", type: i1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title , ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i2.AXDataPagerNextButtonsComponent, selector: "ax-data-pager-next-buttons" }, { kind: "component", type: i3.AXDataPagerPrevButtonsComponent, selector: "ax-data-pager-prev-buttons" }, { kind: "component", type: i4.AXDataPagerPageSizesComponent, selector: "ax-data-pager-page-sizes", inputs: ["sizes"] }, { kind: "component", type: i5.AXDataPagerNumericSelectorComponent, selector: "ax-data-pager-numeric-selector" }, { kind: "component", type: i6.AXDataPagerInputSelectorComponent, selector: "ax-data-pager-input-selector" }, { kind: "component", type: i7.AXDataPagerInfoComponent, selector: "ax-data-pager-info", inputs: ["text"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
147
+ ], usesInheritance: true, ngImport: i0, template: "@switch(displayMode){\n@case('full'){\n<ax-prefix>\n <ax-data-pager-numeric-selector>\n </ax-data-pager-numeric-selector>\n <ax-data-pager-page-sizes>\n </ax-data-pager-page-sizes>\n</ax-prefix>\n<ax-suffix>\n <ax-data-pager-info>\n </ax-data-pager-info>\n</ax-suffix>\n}\n@case('compact'){\n<ax-prefix>\n <ax-data-pager-prev-buttons>\n </ax-data-pager-prev-buttons>\n <ax-data-pager-input-selector>\n </ax-data-pager-input-selector>\n <ax-data-pager-next-buttons>\n </ax-data-pager-next-buttons>\n</ax-prefix>\n<ax-suffix>\n <ax-data-pager-info>\n </ax-data-pager-info>\n</ax-suffix>\n}\n@default{\n<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content select=\"ax-suffix\"></ng-content>\n}\n}", styles: ["html[dir=rtl] ax-data-pager ax-data-pager-numeric-selector .ax-icon-first-page,html[dir=rtl] ax-data-pager ax-data-pager-numeric-selector .ax-icon-last-page{rotate:180deg}ax-data-pager{display:flex;width:100%;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem;font-size:.875rem;line-height:1.25rem}ax-data-pager ax-button-group{display:flex!important;gap:1rem!important;border-radius:0!important;border-width:0px!important}ax-data-pager ax-button-group ax-button-item{border-radius:0!important;border-width:0px!important;padding:0!important}ax-data-pager ax-button-group ax-button-item.ax-state-selected{border-width:1px!important}ax-data-pager ax-data-pager-input-selector .ax-input{width:4rem!important;max-width:10rem!important;text-align:center!important}ax-data-pager ax-data-pager-next-buttons,ax-data-pager ax-data-pager-prev-buttons,ax-data-pager ax-data-pager-numeric-selector{display:flex;gap:.5rem}ax-data-pager ax-data-pager-page-sizes ax-button{border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default))}ax-data-pager ax-prefix,ax-data-pager ax-suffix{display:flex}\n"], dependencies: [{ kind: "component", type: i1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title , ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i2.AXDataPagerNextButtonsComponent, selector: "ax-data-pager-next-buttons" }, { kind: "component", type: i3.AXDataPagerPrevButtonsComponent, selector: "ax-data-pager-prev-buttons" }, { kind: "component", type: i4.AXDataPagerPageSizesComponent, selector: "ax-data-pager-page-sizes", inputs: ["sizes"] }, { kind: "component", type: i5.AXDataPagerNumericSelectorComponent, selector: "ax-data-pager-numeric-selector" }, { kind: "component", type: i6.AXDataPagerInputSelectorComponent, selector: "ax-data-pager-input-selector" }, { kind: "component", type: i7.AXDataPagerInfoComponent, selector: "ax-data-pager-info", inputs: ["text"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
148
148
  }
149
149
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXDataPagerComponent, decorators: [{
150
150
  type: Component,
@@ -155,7 +155,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
155
155
  useExisting: forwardRef(() => AXDataPagerComponent),
156
156
  multi: true,
157
157
  },
158
- ], template: "@switch(displayMode){\n@case('full'){\n<ax-prefix>\n <ax-data-pager-numeric-selector>\n </ax-data-pager-numeric-selector>\n <ax-data-pager-page-sizes>\n </ax-data-pager-page-sizes>\n</ax-prefix>\n<ax-suffix>\n <ax-data-pager-info>\n </ax-data-pager-info>\n</ax-suffix>\n}\n@case('compact'){\n<ax-prefix>\n <ax-data-pager-prev-buttons>\n </ax-data-pager-prev-buttons>\n <ax-data-pager-input-selector>\n </ax-data-pager-input-selector>\n <ax-data-pager-next-buttons>\n </ax-data-pager-next-buttons>\n</ax-prefix>\n<ax-suffix>\n <ax-data-pager-info>\n </ax-data-pager-info>\n</ax-suffix>\n}\n@default{\n<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content select=\"ax-suffix\"></ng-content>\n}\n}", styles: ["ax-data-pager{display:flex;width:100%;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem;font-size:.875rem;line-height:1.25rem}ax-data-pager ax-button-group{display:flex!important;gap:1rem!important;border-radius:0!important;border-width:0px!important}ax-data-pager ax-button-group ax-button-item{border-radius:0!important;border-width:0px!important;padding:0!important}ax-data-pager ax-button-group ax-button-item.ax-state-selected{border-width:1px!important}ax-data-pager ax-data-pager-input-selector .ax-input{width:4rem!important;max-width:10rem!important;text-align:center!important}ax-data-pager ax-data-pager-next-buttons,ax-data-pager ax-data-pager-prev-buttons,ax-data-pager ax-data-pager-numeric-selector{display:flex;gap:.5rem}ax-data-pager ax-data-pager-page-sizes ax-button{border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default))}ax-data-pager ax-prefix,ax-data-pager ax-suffix{display:flex}\n"] }]
158
+ ], template: "@switch(displayMode){\n@case('full'){\n<ax-prefix>\n <ax-data-pager-numeric-selector>\n </ax-data-pager-numeric-selector>\n <ax-data-pager-page-sizes>\n </ax-data-pager-page-sizes>\n</ax-prefix>\n<ax-suffix>\n <ax-data-pager-info>\n </ax-data-pager-info>\n</ax-suffix>\n}\n@case('compact'){\n<ax-prefix>\n <ax-data-pager-prev-buttons>\n </ax-data-pager-prev-buttons>\n <ax-data-pager-input-selector>\n </ax-data-pager-input-selector>\n <ax-data-pager-next-buttons>\n </ax-data-pager-next-buttons>\n</ax-prefix>\n<ax-suffix>\n <ax-data-pager-info>\n </ax-data-pager-info>\n</ax-suffix>\n}\n@default{\n<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content select=\"ax-suffix\"></ng-content>\n}\n}", styles: ["html[dir=rtl] ax-data-pager ax-data-pager-numeric-selector .ax-icon-first-page,html[dir=rtl] ax-data-pager ax-data-pager-numeric-selector .ax-icon-last-page{rotate:180deg}ax-data-pager{display:flex;width:100%;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem;font-size:.875rem;line-height:1.25rem}ax-data-pager ax-button-group{display:flex!important;gap:1rem!important;border-radius:0!important;border-width:0px!important}ax-data-pager ax-button-group ax-button-item{border-radius:0!important;border-width:0px!important;padding:0!important}ax-data-pager ax-button-group ax-button-item.ax-state-selected{border-width:1px!important}ax-data-pager ax-data-pager-input-selector .ax-input{width:4rem!important;max-width:10rem!important;text-align:center!important}ax-data-pager ax-data-pager-next-buttons,ax-data-pager ax-data-pager-prev-buttons,ax-data-pager ax-data-pager-numeric-selector{display:flex;gap:.5rem}ax-data-pager ax-data-pager-page-sizes ax-button{border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default))}ax-data-pager ax-prefix,ax-data-pager ax-suffix{display:flex}\n"] }]
159
159
  }], ctorParameters: () => [{ type: i8.AXPagedComponent, decorators: [{
160
160
  type: Optional
161
161
  }, {
@@ -1,4 +1,4 @@
1
- import { Injectable, Input, TemplateRef } from '@angular/core';
1
+ import { Injectable, Input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class AXDataTableColumnComponent {
4
4
  constructor() {
@@ -30,9 +30,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
30
30
  type: Input
31
31
  }], sortOrder: [{
32
32
  type: Input
33
- }], headerTemplate: [{
34
- type: Input
35
- }], cellTemplate: [{
36
- type: Input
37
33
  }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1jb2x1bW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS10YWJsZS9zcmMvbGliL2NvbHVtbnMvZGF0YS10YWJsZS1jb2x1bW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUcvRCxNQUFNLE9BQWdCLDBCQUEwQjtJQURoRDtRQU1FLFVBQUssR0FBb0IsTUFBTSxDQUFDO1FBTWhDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBR3JCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBR3RCLGNBQVMsR0FBdUIsU0FBUyxDQUFDO1FBRzFDLGNBQVMsR0FBNEIsU0FBUyxDQUFDO0tBaUJoRDtJQUhDLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs4R0FwQ21CLDBCQUEwQjtrSEFBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQUQvQyxVQUFVOzhCQUdULE9BQU87c0JBRE4sS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhTb3J0T3JkZXIgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEluamVjdGFibGUsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnQge1xuICBASW5wdXQoKVxuICBjYXB0aW9uOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgd2lkdGg6IHN0cmluZyB8IG51bWJlciA9ICdhdXRvJztcblxuICBASW5wdXQoKVxuICBmaXhlZDogJ3N0YXJ0JyB8ICdlbmQnIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIGFsbG93U29ydGluZyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGFsbG93UmVzaXppbmcgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzb3J0SW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKVxuICBzb3J0T3JkZXI6IEFYU29ydE9yZGVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIGhlYWRlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KClcbiAgY2VsbFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgYWJzdHJhY3QgZ2V0IHRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIGFic3RyYWN0IGdldCBsb2FkaW5nRW5hYmxlZCgpOiBib29sZWFuO1xuXG4gIGFic3RyYWN0IGdldCBuYW1lKCk6IHN0cmluZztcblxuICBnZXQgY3NzQ2xhc3MoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl19
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1jb2x1bW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS10YWJsZS9zcmMvbGliL2NvbHVtbnMvZGF0YS10YWJsZS1jb2x1bW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQWUsTUFBTSxlQUFlLENBQUM7O0FBRy9ELE1BQU0sT0FBZ0IsMEJBQTBCO0lBRGhEO1FBTUUsVUFBSyxHQUFvQixNQUFNLENBQUM7UUFNaEMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFHckIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFHdEIsY0FBUyxHQUF1QixTQUFTLENBQUM7UUFHMUMsY0FBUyxHQUE0QixTQUFTLENBQUM7S0FZaEQ7SUFIQyxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OEdBL0JtQiwwQkFBMEI7a0hBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFEL0MsVUFBVTs4QkFHVCxPQUFPO3NCQUROLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFNvcnRPcmRlciB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWERhdGFUYWJsZUNvbHVtbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIGNhcHRpb246IHN0cmluZztcblxuICBASW5wdXQoKVxuICB3aWR0aDogc3RyaW5nIHwgbnVtYmVyID0gJ2F1dG8nO1xuXG4gIEBJbnB1dCgpXG4gIGZpeGVkOiAnc3RhcnQnIHwgJ2VuZCcgfCB1bmRlZmluZWQ7XG5cbiAgQElucHV0KClcbiAgYWxsb3dTb3J0aW5nID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgYWxsb3dSZXNpemluZyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHNvcnRJbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIHNvcnRPcmRlcjogQVhTb3J0T3JkZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgYWJzdHJhY3QgZ2V0IHJlbmRlckNlbGxUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgYWJzdHJhY3QgZ2V0IHJlbmRlckhlYWRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIGFic3RyYWN0IGdldCBsb2FkaW5nRW5hYmxlZCgpOiBib29sZWFuO1xuXG4gIGFic3RyYWN0IGdldCBuYW1lKCk6IHN0cmluZztcblxuICBnZXQgY3NzQ2xhc3MoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl19
@@ -1,7 +1,7 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { AXFormatService } from '@acorex/core/format';
3
3
  import { Memorize } from '@acorex/core/memorize';
4
- import { ChangeDetectionStrategy, Component, Input, TemplateRef, ViewChild, ViewEncapsulation, inject, } from '@angular/core';
4
+ import { ChangeDetectionStrategy, Component, Input, TemplateRef, ViewChild, ViewEncapsulation, inject } from '@angular/core';
5
5
  import { AXDataTableColumnComponent } from './data-table-column';
6
6
  import * as i0 from "@angular/core";
7
7
  export class AXDataTableTextColumnComponent extends AXDataTableColumnComponent {
@@ -10,8 +10,11 @@ export class AXDataTableTextColumnComponent extends AXDataTableColumnComponent {
10
10
  this.wrapText = false;
11
11
  this.formatService = inject(AXFormatService);
12
12
  }
13
- get template() {
14
- return this._template;
13
+ get renderCellTemplate() {
14
+ return this.cellTemplate ?? this._contentCellTemplate;
15
+ }
16
+ get renderHeaderTemplate() {
17
+ return this.headerTemplate ?? this._contentHeaderTemplate;
15
18
  }
16
19
  get loadingEnabled() {
17
20
  return true;
@@ -21,19 +24,20 @@ export class AXDataTableTextColumnComponent extends AXDataTableColumnComponent {
21
24
  }
22
25
  getDisplayText(rowData, dataField) {
23
26
  const value = rowData[dataField];
24
- return !this.format
25
- ? value
26
- : this.formatService.format(value, this.format, this.formatOptions);
27
+ return !this.format ? value : this.formatService.format(value, this.format, this.formatOptions);
27
28
  }
28
29
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXDataTableTextColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
29
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: AXDataTableTextColumnComponent, selector: "ax-text-column", inputs: { width: "width", caption: "caption", headerTemplate: "headerTemplate", cellTemplate: "cellTemplate", allowSorting: "allowSorting", allowResizing: "allowResizing", fixed: "fixed", dataField: "dataField", wrapText: "wrapText", format: "format", formatOptions: "formatOptions" }, providers: [
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: AXDataTableTextColumnComponent, selector: "ax-text-column", inputs: { width: "width", caption: "caption", allowSorting: "allowSorting", allowResizing: "allowResizing", fixed: "fixed", dataField: "dataField", wrapText: "wrapText", cellTemplate: "cellTemplate", headerTemplate: "headerTemplate", format: "format", formatOptions: "formatOptions" }, providers: [
30
31
  {
31
32
  provide: AXDataTableColumnComponent,
32
33
  useExisting: AXDataTableTextColumnComponent,
33
34
  },
34
- ], viewQueries: [{ propertyName: "_template", first: true, predicate: TemplateRef, descendants: true }], usesInheritance: true, ngImport: i0, template: ` <ng-template let-row>
35
- {{ getDisplayText(row.data, this.dataField) }}
36
- </ng-template>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
35
+ ], viewQueries: [{ propertyName: "_contentCellTemplate", first: true, predicate: ["cell"], descendants: true }, { propertyName: "_contentHeaderTemplate", first: true, predicate: ["header"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
36
+ <ng-template #header>{{ caption }}</ng-template>
37
+ <ng-template #cell let-row>
38
+ {{ getDisplayText(row.data, this.dataField) }}
39
+ </ng-template>
40
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
37
41
  }
38
42
  __decorate([
39
43
  Memorize(),
@@ -45,9 +49,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
45
49
  type: Component,
46
50
  args: [{
47
51
  selector: 'ax-text-column',
48
- template: ` <ng-template let-row>
49
- {{ getDisplayText(row.data, this.dataField) }}
50
- </ng-template>`,
52
+ template: `
53
+ <ng-template #header>{{ caption }}</ng-template>
54
+ <ng-template #cell let-row>
55
+ {{ getDisplayText(row.data, this.dataField) }}
56
+ </ng-template>
57
+ `,
51
58
  encapsulation: ViewEncapsulation.None,
52
59
  changeDetection: ChangeDetectionStrategy.OnPush,
53
60
  providers: [
@@ -56,26 +63,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
56
63
  useExisting: AXDataTableTextColumnComponent,
57
64
  },
58
65
  ],
59
- inputs: [
60
- 'width',
61
- 'caption',
62
- 'headerTemplate',
63
- 'cellTemplate',
64
- 'allowSorting',
65
- 'allowResizing',
66
- 'fixed',
67
- ],
66
+ inputs: ['width', 'caption', 'allowSorting', 'allowResizing', 'fixed'],
68
67
  }]
69
68
  }], propDecorators: { dataField: [{
70
69
  type: Input
71
70
  }], wrapText: [{
72
71
  type: Input
73
- }], _template: [{
72
+ }], cellTemplate: [{
73
+ type: Input
74
+ }], _contentCellTemplate: [{
75
+ type: ViewChild,
76
+ args: ['cell']
77
+ }], headerTemplate: [{
78
+ type: Input
79
+ }], _contentHeaderTemplate: [{
74
80
  type: ViewChild,
75
- args: [TemplateRef]
81
+ args: ['header']
76
82
  }], getDisplayText: [], format: [{
77
83
  type: Input
78
84
  }], formatOptions: [{
79
85
  type: Input
80
86
  }] } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10ZXh0LWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS10YWJsZS9zcmMvbGliL2NvbHVtbnMvZGF0YS10ZXh0LWNvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUEwQmpFLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSwwQkFBMEI7SUF2QjlFOztRQTRCRSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBaUJULGtCQUFhLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBbUJqRDtJQS9CQyxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFLUyxjQUFjLENBQUMsT0FBZ0IsRUFBRSxTQUFpQjtRQUMxRCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQ2pCLENBQUMsQ0FBQyxLQUFLO1lBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUN2QixLQUFLLEVBQ0wsSUFBSSxDQUFDLE1BQWEsRUFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FDbkIsQ0FBQztJQUNSLENBQUM7OEdBbENVLDhCQUE4QjtrR0FBOUIsOEJBQThCLHVVQWhCOUI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsMEJBQTBCO2dCQUNuQyxXQUFXLEVBQUUsOEJBQThCO2FBQzVDO1NBQ0YscUVBa0JVLFdBQVcsdUVBNUJaOztpQkFFSzs7QUE0Q0w7SUFEVCxRQUFRLEVBQUU7Ozs7b0VBVVY7MkZBbENVLDhCQUE4QjtrQkF2QjFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsUUFBUSxFQUFFOztpQkFFSztvQkFDZixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsMEJBQTBCOzRCQUNuQyxXQUFXLGdDQUFnQzt5QkFDNUM7cUJBQ0Y7b0JBQ0QsTUFBTSxFQUFFO3dCQUNOLE9BQU87d0JBQ1AsU0FBUzt3QkFDVCxnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLE9BQU87cUJBQ1I7aUJBQ0Y7OEJBR0MsU0FBUztzQkFEUixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJRSxTQUFTO3NCQURoQixTQUFTO3VCQUFDLFdBQVc7Z0JBa0JaLGNBQWMsTUFZeEIsTUFBTTtzQkFETCxLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRm9ybWF0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgTWVtb3JpemUgfSBmcm9tICdAYWNvcmV4L2NvcmUvbWVtb3JpemUnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2RhdGEtdGFibGUtY29sdW1uJztcbmltcG9ydCB7IEFYRm9ybWF0T3B0aW9ucyB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC10ZXh0LWNvbHVtbicsXG4gIHRlbXBsYXRlOiBgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PlxuICAgIHt7IGdldERpc3BsYXlUZXh0KHJvdy5kYXRhLCB0aGlzLmRhdGFGaWVsZCkgfX1cbiAgPC9uZy10ZW1wbGF0ZT5gLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnQsXG4gICAgICB1c2VFeGlzdGluZzogQVhEYXRhVGFibGVUZXh0Q29sdW1uQ29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG4gIGlucHV0czogW1xuICAgICd3aWR0aCcsXG4gICAgJ2NhcHRpb24nLFxuICAgICdoZWFkZXJUZW1wbGF0ZScsXG4gICAgJ2NlbGxUZW1wbGF0ZScsXG4gICAgJ2FsbG93U29ydGluZycsXG4gICAgJ2FsbG93UmVzaXppbmcnLFxuICAgICdmaXhlZCcsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYRGF0YVRhYmxlVGV4dENvbHVtbkNvbXBvbmVudCBleHRlbmRzIEFYRGF0YVRhYmxlQ29sdW1uQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgZGF0YUZpZWxkOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgd3JhcFRleHQgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmKVxuICBwcml2YXRlIF90ZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgZ2V0IHRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5fdGVtcGxhdGU7XG4gIH1cblxuICBnZXQgbG9hZGluZ0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY2wtJHt0aGlzLmRhdGFGaWVsZH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRTZXJ2aWNlID0gaW5qZWN0KEFYRm9ybWF0U2VydmljZSk7XG5cbiAgQE1lbW9yaXplKClcbiAgcHJvdGVjdGVkIGdldERpc3BsYXlUZXh0KHJvd0RhdGE6IHVua25vd24sIGRhdGFGaWVsZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB2YWx1ZSA9IHJvd0RhdGFbZGF0YUZpZWxkXTtcbiAgICByZXR1cm4gIXRoaXMuZm9ybWF0XG4gICAgICA/IHZhbHVlXG4gICAgICA6IHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQoXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgdGhpcy5mb3JtYXQgYXMgYW55LFxuICAgICAgICAgIHRoaXMuZm9ybWF0T3B0aW9uc1xuICAgICAgICApO1xuICB9XG5cbiAgQElucHV0KClcbiAgZm9ybWF0OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgZm9ybWF0T3B0aW9uczogQVhGb3JtYXRPcHRpb25zO1xufVxuIl19
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10ZXh0LWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS10YWJsZS9zcmMvbGliL2NvbHVtbnMvZGF0YS10ZXh0LWNvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBbUIsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQW9CakUsTUFBTSxPQUFPLDhCQUErQixTQUFRLDBCQUEwQjtJQWxCOUU7O1FBdUJFLGFBQVEsR0FBRyxLQUFLLENBQUM7UUE4QlQsa0JBQWEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7S0FhakQ7SUFuQ0MsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUN4RCxDQUFDO0lBUUQsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sTUFBTSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUtTLGNBQWMsQ0FBQyxPQUFnQixFQUFFLFNBQWlCO1FBQzFELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekcsQ0FBQzs4R0F6Q1UsOEJBQThCO2tHQUE5Qiw4QkFBOEIsdVVBUjlCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLDBCQUEwQjtnQkFDbkMsV0FBVyxFQUFFLDhCQUE4QjthQUM1QztTQUNGLGtRQWJTOzs7OztHQUtUOztBQWlEUztJQURULFFBQVEsRUFBRTs7OztvRUFJVjsyRkF6Q1UsOEJBQThCO2tCQWxCMUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUU7Ozs7O0dBS1Q7b0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLDBCQUEwQjs0QkFDbkMsV0FBVyxnQ0FBZ0M7eUJBQzVDO3FCQUNGO29CQUNELE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUM7aUJBQ3ZFOzhCQUdDLFNBQVM7c0JBRFIsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsS0FBSztnQkFJRSxvQkFBb0I7c0JBRDNCLFNBQVM7dUJBQUMsTUFBTTtnQkFRVixjQUFjO3NCQURwQixLQUFLO2dCQUlFLHNCQUFzQjtzQkFEN0IsU0FBUzt1QkFBQyxRQUFRO2dCQWtCVCxjQUFjLE1BTXhCLE1BQU07c0JBREwsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEZvcm1hdE9wdGlvbnMsIEFYRm9ybWF0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgTWVtb3JpemUgfSBmcm9tICdAYWNvcmV4L2NvcmUvbWVtb3JpemUnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRGF0YVRhYmxlQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLXRhYmxlLWNvbHVtbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXRleHQtY29sdW1uJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj57eyBjYXB0aW9uIH19PC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LXJvdz5cbiAgICAgIHt7IGdldERpc3BsYXlUZXh0KHJvdy5kYXRhLCB0aGlzLmRhdGFGaWVsZCkgfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnQsXG4gICAgICB1c2VFeGlzdGluZzogQVhEYXRhVGFibGVUZXh0Q29sdW1uQ29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG4gIGlucHV0czogWyd3aWR0aCcsICdjYXB0aW9uJywgJ2FsbG93U29ydGluZycsICdhbGxvd1Jlc2l6aW5nJywgJ2ZpeGVkJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFYRGF0YVRhYmxlVGV4dENvbHVtbkNvbXBvbmVudCBleHRlbmRzIEFYRGF0YVRhYmxlQ29sdW1uQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgZGF0YUZpZWxkOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgd3JhcFRleHQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2VsbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBAVmlld0NoaWxkKCdjZWxsJylcbiAgcHJpdmF0ZSBfY29udGVudENlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgZ2V0IHJlbmRlckNlbGxUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMuY2VsbFRlbXBsYXRlID8/IHRoaXMuX2NvbnRlbnRDZWxsVGVtcGxhdGU7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBWaWV3Q2hpbGQoJ2hlYWRlcicpXG4gIHByaXZhdGUgX2NvbnRlbnRIZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgZ2V0IHJlbmRlckhlYWRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5oZWFkZXJUZW1wbGF0ZSA/PyB0aGlzLl9jb250ZW50SGVhZGVyVGVtcGxhdGU7XG4gIH1cblxuICBnZXQgbG9hZGluZ0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY2wtJHt0aGlzLmRhdGFGaWVsZH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRTZXJ2aWNlID0gaW5qZWN0KEFYRm9ybWF0U2VydmljZSk7XG5cbiAgQE1lbW9yaXplKClcbiAgcHJvdGVjdGVkIGdldERpc3BsYXlUZXh0KHJvd0RhdGE6IHVua25vd24sIGRhdGFGaWVsZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB2YWx1ZSA9IHJvd0RhdGFbZGF0YUZpZWxkXTtcbiAgICByZXR1cm4gIXRoaXMuZm9ybWF0ID8gdmFsdWUgOiB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KHZhbHVlLCB0aGlzLmZvcm1hdCBhcyBhbnksIHRoaXMuZm9ybWF0T3B0aW9ucyk7XG4gIH1cblxuICBASW5wdXQoKVxuICBmb3JtYXQ6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBmb3JtYXRPcHRpb25zOiBBWEZvcm1hdE9wdGlvbnM7XG59XG4iXX0=
@@ -28,8 +28,11 @@ export class AXRowDropdownCommandColumnComponent extends AXBaseRowCommandColumnC
28
28
  this._items = [];
29
29
  this.items = [];
30
30
  }
31
- get template() {
32
- return this._template;
31
+ get renderCellTemplate() {
32
+ return this._cellTemplate;
33
+ }
34
+ get renderHeaderTemplate() {
35
+ return this._contentHeaderTemplate;
33
36
  }
34
37
  get name() {
35
38
  return 'cl-dd-cmd';
@@ -70,57 +73,59 @@ export class AXRowDropdownCommandColumnComponent extends AXBaseRowCommandColumnC
70
73
  provide: AXDataTableColumnComponent,
71
74
  useExisting: AXRowDropdownCommandColumnComponent,
72
75
  },
73
- ], viewQueries: [{ propertyName: "_template", first: true, predicate: TemplateRef, descendants: true }], usesInheritance: true, ngImport: i0, template: ` <ng-template let-row>
74
- @if (row.data) {
75
- <div>
76
- <button [axRipple]>
77
- <ax-icon icon="ax-icon ax-icon-solid ax-icon-more-horizontal"></ax-icon>
78
- <ax-dropdown-panel [adaptivityEnabled]="true" (onOpened)="handleOnOpened(row.data)" (onClosed)="handleOnClosed()">
79
- @if (_items.length) {
80
- <ax-button-item-list (onItemClick)="handleOnItemClick($event, row.data)" [items]="_items"> </ax-button-item-list>
81
- } @else {
82
- <div panel style="padding: 0.875rem;">
83
- <ax-loading></ax-loading>
84
- </div>
85
- }
86
- </ax-dropdown-panel>
87
- </button>
88
- </div>
89
- }
90
- <ng-template #loading>
91
- <div panel style="padding: 0.875rem;">
92
- <ax-loading></ax-loading>
93
- </div>
94
- </ng-template>
95
- </ng-template>`, isInline: true, dependencies: [{ kind: "component", type: i1.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "directive", type: i5.AXRippleDirective, selector: "[axRipple]", inputs: ["axRipple", "axRippleColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
76
+ ], viewQueries: [{ propertyName: "_cellTemplate", first: true, predicate: TemplateRef, descendants: true }, { propertyName: "_contentHeaderTemplate", first: true, predicate: ["header"], descendants: true }], usesInheritance: true, ngImport: i0, template: ` <ng-template #header></ng-template>
77
+ <ng-template let-row>
78
+ @if (row.data) {
79
+ <div>
80
+ <button [axRipple]>
81
+ <ax-icon icon="ax-icon ax-icon-solid ax-icon-more-horizontal"></ax-icon>
82
+ <ax-dropdown-panel [adaptivityEnabled]="true" (onOpened)="handleOnOpened(row.data)" (onClosed)="handleOnClosed()">
83
+ @if (_items.length) {
84
+ <ax-button-item-list (onItemClick)="handleOnItemClick($event, row.data)" [items]="_items"> </ax-button-item-list>
85
+ } @else {
86
+ <div panel style="padding: 0.875rem;">
87
+ <ax-loading></ax-loading>
88
+ </div>
89
+ }
90
+ </ax-dropdown-panel>
91
+ </button>
92
+ </div>
93
+ }
94
+ <ng-template #loading>
95
+ <div panel style="padding: 0.875rem;">
96
+ <ax-loading></ax-loading>
97
+ </div>
98
+ </ng-template>
99
+ </ng-template>`, isInline: true, dependencies: [{ kind: "component", type: i1.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "directive", type: i5.AXRippleDirective, selector: "[axRipple]", inputs: ["axRipple", "axRippleColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
96
100
  }
97
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXRowDropdownCommandColumnComponent, decorators: [{
98
102
  type: Component,
99
103
  args: [{
100
104
  selector: 'ax-dropdown-command-column',
101
- template: ` <ng-template let-row>
102
- @if (row.data) {
103
- <div>
104
- <button [axRipple]>
105
- <ax-icon icon="ax-icon ax-icon-solid ax-icon-more-horizontal"></ax-icon>
106
- <ax-dropdown-panel [adaptivityEnabled]="true" (onOpened)="handleOnOpened(row.data)" (onClosed)="handleOnClosed()">
107
- @if (_items.length) {
108
- <ax-button-item-list (onItemClick)="handleOnItemClick($event, row.data)" [items]="_items"> </ax-button-item-list>
109
- } @else {
110
- <div panel style="padding: 0.875rem;">
111
- <ax-loading></ax-loading>
112
- </div>
113
- }
114
- </ax-dropdown-panel>
115
- </button>
116
- </div>
117
- }
118
- <ng-template #loading>
119
- <div panel style="padding: 0.875rem;">
120
- <ax-loading></ax-loading>
121
- </div>
122
- </ng-template>
123
- </ng-template>`,
105
+ template: ` <ng-template #header></ng-template>
106
+ <ng-template let-row>
107
+ @if (row.data) {
108
+ <div>
109
+ <button [axRipple]>
110
+ <ax-icon icon="ax-icon ax-icon-solid ax-icon-more-horizontal"></ax-icon>
111
+ <ax-dropdown-panel [adaptivityEnabled]="true" (onOpened)="handleOnOpened(row.data)" (onClosed)="handleOnClosed()">
112
+ @if (_items.length) {
113
+ <ax-button-item-list (onItemClick)="handleOnItemClick($event, row.data)" [items]="_items"> </ax-button-item-list>
114
+ } @else {
115
+ <div panel style="padding: 0.875rem;">
116
+ <ax-loading></ax-loading>
117
+ </div>
118
+ }
119
+ </ax-dropdown-panel>
120
+ </button>
121
+ </div>
122
+ }
123
+ <ng-template #loading>
124
+ <div panel style="padding: 0.875rem;">
125
+ <ax-loading></ax-loading>
126
+ </div>
127
+ </ng-template>
128
+ </ng-template>`,
124
129
  encapsulation: ViewEncapsulation.None,
125
130
  changeDetection: ChangeDetectionStrategy.OnPush,
126
131
  providers: [
@@ -132,9 +137,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
132
137
  inputs: ['width', 'caption', 'fixed'],
133
138
  outputs: ['onItemClick'],
134
139
  }]
135
- }], propDecorators: { _template: [{
140
+ }], propDecorators: { _cellTemplate: [{
136
141
  type: ViewChild,
137
142
  args: [TemplateRef]
143
+ }], _contentHeaderTemplate: [{
144
+ type: ViewChild,
145
+ args: ['header']
138
146
  }], items: [{
139
147
  type: Input
140
148
  }] } });
@@ -143,8 +151,11 @@ export class AXRowCommandColumnComponent extends AXBaseRowCommandColumnComponent
143
151
  super(...arguments);
144
152
  this.items = [];
145
153
  }
146
- get template() {
147
- return this._template;
154
+ get renderCellTemplate() {
155
+ return this._cellTemplate;
156
+ }
157
+ get renderHeaderTemplate() {
158
+ return this._contentHeaderTemplate;
148
159
  }
149
160
  get name() {
150
161
  return 'cl-in-cmd';
@@ -176,41 +187,43 @@ export class AXRowCommandColumnComponent extends AXBaseRowCommandColumnComponent
176
187
  provide: AXDataTableColumnComponent,
177
188
  useExisting: AXRowCommandColumnComponent,
178
189
  },
179
- ], viewQueries: [{ propertyName: "_template", first: true, predicate: TemplateRef, descendants: true }], usesInheritance: true, ngImport: i0, template: ` <ng-template let-row>
180
- @if (row.data) {
181
- @for (item of getItems(row.data); track $index) {
182
- <button
183
- [style.color]="'rgba(var(--ax-color-' + (item.color ?? 'primary)')"
184
- [disabled]="item.disabled"
185
- [class.ax-state-disabled]="item.disabled"
186
- [axRipple]="!item.disabled"
187
- (click)="handleOnItemClick($event, item, row.data)"
188
- >
189
- <ax-icon [icon]="item.icon"></ax-icon>
190
- </button>
190
+ ], viewQueries: [{ propertyName: "_cellTemplate", first: true, predicate: TemplateRef, descendants: true }, { propertyName: "_contentHeaderTemplate", first: true, predicate: ["header"], descendants: true }], usesInheritance: true, ngImport: i0, template: `<ng-template #header>AAA</ng-template>
191
+ <ng-template let-row>
192
+ @if (row.data) {
193
+ @for (item of getItems(row.data); track $index) {
194
+ <button
195
+ [style.color]="'rgba(var(--ax-color-' + (item.color ?? 'primary)')"
196
+ [disabled]="item.disabled"
197
+ [class.ax-state-disabled]="item.disabled"
198
+ [axRipple]="!item.disabled"
199
+ (click)="handleOnItemClick($event, item, row.data)"
200
+ >
201
+ <ax-icon [icon]="item.icon"></ax-icon>
202
+ </button>
203
+ }
191
204
  }
192
- }
193
- </ng-template>`, isInline: true, dependencies: [{ kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "directive", type: i5.AXRippleDirective, selector: "[axRipple]", inputs: ["axRipple", "axRippleColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
205
+ </ng-template>`, isInline: true, dependencies: [{ kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "directive", type: i5.AXRippleDirective, selector: "[axRipple]", inputs: ["axRipple", "axRippleColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
194
206
  }
195
207
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXRowCommandColumnComponent, decorators: [{
196
208
  type: Component,
197
209
  args: [{
198
210
  selector: 'ax-command-column',
199
- template: ` <ng-template let-row>
200
- @if (row.data) {
201
- @for (item of getItems(row.data); track $index) {
202
- <button
203
- [style.color]="'rgba(var(--ax-color-' + (item.color ?? 'primary)')"
204
- [disabled]="item.disabled"
205
- [class.ax-state-disabled]="item.disabled"
206
- [axRipple]="!item.disabled"
207
- (click)="handleOnItemClick($event, item, row.data)"
208
- >
209
- <ax-icon [icon]="item.icon"></ax-icon>
210
- </button>
211
+ template: `<ng-template #header>AAA</ng-template>
212
+ <ng-template let-row>
213
+ @if (row.data) {
214
+ @for (item of getItems(row.data); track $index) {
215
+ <button
216
+ [style.color]="'rgba(var(--ax-color-' + (item.color ?? 'primary)')"
217
+ [disabled]="item.disabled"
218
+ [class.ax-state-disabled]="item.disabled"
219
+ [axRipple]="!item.disabled"
220
+ (click)="handleOnItemClick($event, item, row.data)"
221
+ >
222
+ <ax-icon [icon]="item.icon"></ax-icon>
223
+ </button>
224
+ }
211
225
  }
212
- }
213
- </ng-template>`,
226
+ </ng-template>`,
214
227
  encapsulation: ViewEncapsulation.None,
215
228
  changeDetection: ChangeDetectionStrategy.OnPush,
216
229
  providers: [
@@ -222,10 +235,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
222
235
  inputs: ['width', 'caption', 'fixed'],
223
236
  outputs: ['onItemClick'],
224
237
  }]
225
- }], propDecorators: { _template: [{
238
+ }], propDecorators: { _cellTemplate: [{
226
239
  type: ViewChild,
227
240
  args: [TemplateRef]
241
+ }], _contentHeaderTemplate: [{
242
+ type: ViewChild,
243
+ args: ['header']
228
244
  }], items: [{
229
245
  type: Input
230
246
  }] } });
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWNvbW1hbmQtY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLXRhYmxlL3NyYy9saWIvY29sdW1ucy9yb3ctY29tbWFuZC1jb2x1bW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7QUFNakUsTUFBTSxPQUFnQiwrQkFBZ0MsU0FBUSwwQkFBMEI7SUFBeEY7O1FBQ1ksU0FBSSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMvQixRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFakMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFVOUIsZ0JBQVcsR0FBNkMsSUFBSSxZQUFZLEVBQThCLENBQUM7SUFDekcsQ0FBQztJQVRDLElBQUksY0FBYztRQUNoQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFhLFFBQVE7UUFDbkIsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0NBR0Y7QUFzQ0QsTUFBTSxPQUFPLG1DQUFvQyxTQUFRLCtCQUErQjtJQXBDeEY7O1FBZ0RZLFdBQU0sR0FBdUIsRUFBRSxDQUFDO1FBRzFDLFVBQUssR0FBa0csRUFBRSxDQUFDO0tBK0IzRztJQTFDQyxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUks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QU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVTLGlCQUFpQixDQUFDLENBQWEsRUFBRSxJQUFzQixFQUFFLElBQWE7UUFDOUUsTUFBTSxJQUFJLEdBQStCO1lBQ3ZDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNwQixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLFdBQVcsRUFBRSxDQUFDO1lBQ2QsSUFBSTtZQUNKLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtTQUNoQixDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQzs4R0FqQ1UsMkJBQTJCO2tHQUEzQiwyQkFBMkIscUtBVDNCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLDBCQUEwQjtnQkFDbkMsV0FBVyxFQUFFLDJCQUEyQjthQUN6QztTQUNGLHFFQUtVLFdBQVcsdUVBM0JaOzs7Ozs7Ozs7Ozs7OztpQkFjSzs7MkZBWUosMkJBQTJCO2tCQTVCdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7O2lCQWNLO29CQUNmLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSwwQkFBMEI7NEJBQ25DLFdBQVcsNkJBQTZCO3lCQUN6QztxQkFDRjtvQkFDRCxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQztvQkFDckMsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUN6Qjs4QkFHUyxTQUFTO3NCQURoQixTQUFTO3VCQUFDLFdBQVc7Z0JBV3RCLEtBQUs7c0JBREosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uSXRlbUNvbXBvbmVudCwgQVhCdXR0b25JdGVtTGlzdEl0ZW0gfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYQnV0dG9uQ2xpY2tFdmVudCwgQVhJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhCYXNlRGF0YVRhYmxlIH0gZnJvbSAnLi4vYmFzZS1kYXRhLXRhYmxlLmNsYXNzJztcbmltcG9ydCB7IEFYRGF0YVRhYmxlQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLXRhYmxlLWNvbHVtbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhSb3dDb21tYW5kSXRlbSBleHRlbmRzIEFYQnV0dG9uSXRlbUxpc3RJdGVtIHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhSb3dDb21tYW5kSXRlbUNsaWNrRXZlbnQgZXh0ZW5kcyBBWEJ1dHRvbkNsaWNrRXZlbnQge31cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYQmFzZVJvd0NvbW1hbmRDb2x1bW5Db21wb25lbnQgZXh0ZW5kcyBBWERhdGFUYWJsZUNvbHVtbkNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBncmlkID0gaW5qZWN0KEFYQmFzZURhdGFUYWJsZSk7XG4gIHByb3RlY3RlZCBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIG92ZXJyaWRlIGFsbG93U29ydGluZyA9IGZhbHNlO1xuXG4gIGdldCBsb2FkaW5nRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBvdmVycmlkZSBnZXQgY3NzQ2xhc3MoKSB7XG4gICAgcmV0dXJuICdheC1jb21tYW5kLWNvbHVtbic7XG4gIH1cblxuICBvbkl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEFYUm93Q29tbWFuZEl0ZW1DbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhSb3dDb21tYW5kSXRlbUNsaWNrRXZlbnQ+KCk7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWRyb3Bkb3duLWNvbW1hbmQtY29sdW1uJyxcbiAgdGVtcGxhdGU6IGAgPG5nLXRlbXBsYXRlIGxldC1yb3c+XG4gICAgQGlmIChyb3cuZGF0YSkge1xuICAgICAgPGRpdj5cbiAgICAgICAgPGJ1dHRvbiBbYXhSaXBwbGVdPlxuICAgICAgICAgIDxheC1pY29uIGljb249XCJheC1pY29uIGF4LWljb24tc29saWQgYXgtaWNvbi1tb3JlLWhvcml6b250YWxcIj48L2F4LWljb24+XG4gICAgICAgICAgPGF4LWRyb3Bkb3duLXBhbmVsIFthZGFwdGl2aXR5RW5hYmxlZF09XCJ0cnVlXCIgKG9uT3BlbmVkKT1cImhhbmRsZU9uT3BlbmVkKHJvdy5kYXRhKVwiIChvbkNsb3NlZCk9XCJoYW5kbGVPbkNsb3NlZCgpXCI+XG4gICAgICAgICAgICBAaWYgKF9pdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3QgKG9uSXRlbUNsaWNrKT1cImhhbmRsZU9uSXRlbUNsaWNrKCRldmVudCwgcm93LmRhdGEpXCIgW2l0ZW1zXT1cIl9pdGVtc1wiPiA8L2F4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPGRpdiBwYW5lbCBzdHlsZT1cInBhZGRpbmc6IDAuODc1cmVtO1wiPlxuICAgICAgICAgICAgICAgIDxheC1sb2FkaW5nPjwvYXgtbG9hZGluZz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9heC1kcm9wZG93bi1wYW5lbD5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gICAgPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxuICAgICAgPGRpdiBwYW5lbCBzdHlsZT1cInBhZGRpbmc6IDAuODc1cmVtO1wiPlxuICAgICAgICA8YXgtbG9hZGluZz48L2F4LWxvYWRpbmc+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLXRlbXBsYXRlPmAsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWERhdGFUYWJsZUNvbHVtbkNvbXBvbmVudCxcbiAgICAgIHVzZUV4aXN0aW5nOiBBWFJvd0Ryb3Bkb3duQ29tbWFuZENvbHVtbkNvbXBvbmVudCxcbiAgICB9LFxuICBdLFxuICBpbnB1dHM6IFsnd2lkdGgnLCAnY2FwdGlvbicsICdmaXhlZCddLFxuICBvdXRwdXRzOiBbJ29uSXRlbUNsaWNrJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUm93RHJvcGRvd25Db21tYW5kQ29sdW1uQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlUm93Q29tbWFuZENvbHVtbkNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYpXG4gIHByaXZhdGUgX3RlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBnZXQgdGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8dW5rbm93bj4ge1xuICAgIHJldHVybiB0aGlzLl90ZW1wbGF0ZTtcbiAgfVxuXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdjbC1kZC1jbWQnO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9pdGVtczogQVhSb3dDb21tYW5kSXRlbVtdID0gW107XG5cbiAgQElucHV0KClcbiAgaXRlbXM6IEFYUm93Q29tbWFuZEl0ZW1bXSB8ICgocm93RGF0YTogdW5rbm93bikgPT4gQVhSb3dDb21tYW5kSXRlbVtdIHwgUHJvbWlzZTxBWFJvd0NvbW1hbmRJdGVtW10+KSA9IFtdO1xuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVPbk9wZW5lZChyb3dEYXRhKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5pdGVtcykpIHtcbiAgICAgIHRoaXMuX2l0ZW1zID0gdGhpcy5pdGVtcztcbiAgICB9IGVsc2UgdHlwZW9mIHRoaXMuaXRlbXMgPT0gJ2Z1bmN0aW9uJztcbiAgICB7XG4gICAgICBjb25zdCByZXN1bHQgPSAodGhpc1snaXRlbXMnXSBhcyBhbnkpKHJvd0RhdGEpO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xuICAgICAgICB0aGlzLl9pdGVtcyA9IHJlc3VsdDtcbiAgICAgIH0gZWxzZSBpZiAocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICB0aGlzLl9pdGVtcyA9IGF3YWl0IHJlc3VsdDtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU9uQ2xvc2VkKCkge1xuICAgIHRoaXMuX2l0ZW1zID0gW107XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlT25JdGVtQ2xpY2soZTogQVhJdGVtQ2xpY2tFdmVudDxBWEJ1dHRvbkl0ZW1Db21wb25lbnQ+LCBkYXRhOiB1bmtub3duKSB7XG4gICAgY29uc3QgYXJnczogQVhSb3dDb21tYW5kSXRlbUNsaWNrRXZlbnQgPSB7XG4gICAgICBjb21wb25lbnQ6IHRoaXMuZ3JpZCxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgICAgbmF0aXZlRXZlbnQ6IGUsXG4gICAgICBkYXRhLFxuICAgICAgbmFtZTogZS5uYW1lLFxuICAgIH07XG4gICAgdGhpcy5vbkl0ZW1DbGljay5lbWl0KGFyZ3MpO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbW1hbmQtY29sdW1uJyxcbiAgdGVtcGxhdGU6IGAgPG5nLXRlbXBsYXRlIGxldC1yb3c+XG4gICAgQGlmIChyb3cuZGF0YSkge1xuICAgICAgQGZvciAoaXRlbSBvZiBnZXRJdGVtcyhyb3cuZGF0YSk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cIidyZ2JhKHZhcigtLWF4LWNvbG9yLScgKyAoaXRlbS5jb2xvciA/PyAncHJpbWFyeSknKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICBbYXhSaXBwbGVdPVwiIWl0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJoYW5kbGVPbkl0ZW1DbGljaygkZXZlbnQsIGl0ZW0sIHJvdy5kYXRhKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8YXgtaWNvbiBbaWNvbl09XCJpdGVtLmljb25cIj48L2F4LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgfVxuICAgIH1cbiAgPC9uZy10ZW1wbGF0ZT5gLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnQsXG4gICAgICB1c2VFeGlzdGluZzogQVhSb3dDb21tYW5kQ29sdW1uQ29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG4gIGlucHV0czogWyd3aWR0aCcsICdjYXB0aW9uJywgJ2ZpeGVkJ10sXG4gIG91dHB1dHM6IFsnb25JdGVtQ2xpY2snXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhSb3dDb21tYW5kQ29sdW1uQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlUm93Q29tbWFuZENvbHVtbkNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYpXG4gIHByaXZhdGUgX3RlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBnZXQgdGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8dW5rbm93bj4ge1xuICAgIHJldHVybiB0aGlzLl90ZW1wbGF0ZTtcbiAgfVxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnY2wtaW4tY21kJztcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGl0ZW1zOiBBWFJvd0NvbW1hbmRJdGVtW10gfCAoKHJvd0RhdGE6IHVua25vd24pID0+IEFYUm93Q29tbWFuZEl0ZW1bXSkgPSBbXTtcblxuICBwcm90ZWN0ZWQgZ2V0SXRlbXMocm93RGF0YTogdW5rbm93bik6IEFYUm93Q29tbWFuZEl0ZW1bXSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5pdGVtcykpIHtcbiAgICAgIHJldHVybiB0aGlzLml0ZW1zO1xuICAgIH0gZWxzZSB0eXBlb2YgdGhpcy5pdGVtcyA9PSAnZnVuY3Rpb24nO1xuICAgIHtcbiAgICAgIHJldHVybiB0aGlzLml0ZW1zKHJvd0RhdGEpO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlT25JdGVtQ2xpY2soZTogTW91c2VFdmVudCwgaXRlbTogQVhSb3dDb21tYW5kSXRlbSwgZGF0YTogdW5rbm93bikge1xuICAgIGNvbnN0IGFyZ3M6IEFYUm93Q29tbWFuZEl0ZW1DbGlja0V2ZW50ID0ge1xuICAgICAgY29tcG9uZW50OiB0aGlzLmdyaWQsXG4gICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSxcbiAgICAgIG5hdGl2ZUV2ZW50OiBlLFxuICAgICAgZGF0YSxcbiAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcbiAgICB9O1xuICAgIHRoaXMub25JdGVtQ2xpY2suZW1pdChhcmdzKTtcbiAgfVxufVxuIl19
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWNvbW1hbmQtY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLXRhYmxlL3NyYy9saWIvY29sdW1ucy9yb3ctY29tbWFuZC1jb2x1bW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7QUFNakUsTUFBTSxPQUFnQiwrQkFBZ0MsU0FBUSwwQkFBMEI7SUFBeEY7O1FBQ1ksU0FBSSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMvQixRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFakMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFVOUIsZ0JBQVcsR0FBNkMsSUFBSSxZQUFZLEVBQThCLENBQUM7SUFDekcsQ0FBQztJQVRDLElBQUksY0FBYztRQUNoQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFhLFFBQVE7UUFDbkIsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0NBR0Y7QUF1Q0QsTUFBTSxPQUFPLG1DQUFvQyxTQUFRLCtCQUErQjtJQXJDeEY7O1FBd0RZLFdBQU0sR0FBdUIsRUFBRSxDQUFDO1FBRzFDLFVBQUssR0FBa0csRUFBRSxDQUFDO0tBK0IzRztJQWpEQyxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUtELElBQWEsb0JBQW9CO1FBQy9CLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBT1MsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPO1FBQ3BDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDM0IsQ0FBQzs7WUFBTSxPQUFPLElBQUksQ0FBQyxLQUFLLElBQUksVUFBVSxDQUFDO1FBQ3ZDLENBQUM7WUFDQyxNQUFNLE1BQU0sR0FBSSxJQUFJLENBQUMsT0FBTyxDQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0MsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3ZCLENBQUM7aUJBQU0sSUFBSSxNQUFNLFlBQVksT0FBTyxFQUFFLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxNQUFNLENBQUM7WUFDN0IsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFUyxjQUFjO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxDQUEwQyxFQUFFLElBQWE7UUFDbkYsTUFBTSxJQUFJLEdBQStCO1lBQ3ZDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNwQixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLFdBQVcsRUFBRSxDQUFDO1lBQ2QsSUFBSTtZQUNKLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtTQUNiLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDOzhHQXBEVSxtQ0FBbUM7a0dBQW5DLG1DQUFtQyw4S0FUbkM7WUFDVDtnQkFDRSxPQUFPLEVBQUUsMEJBQTBCO2dCQUNuQyxXQUFXLEVBQUUsbUNBQW1DO2FBQ2pEO1NBQ0YseUVBS1UsV0FBVywwS0FwQ1o7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O21CQXVCTzs7MkZBWU4sbUNBQW1DO2tCQXJDL0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O21CQXVCTztvQkFDakIsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLDBCQUEwQjs0QkFDbkMsV0FBVyxxQ0FBcUM7eUJBQ2pEO3FCQUNGO29CQUNELE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDO29CQUNyQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQ3pCOzhCQUdTLGFBQWE7c0JBRHBCLFNBQVM7dUJBQUMsV0FBVztnQkFRZCxzQkFBc0I7c0JBRDdCLFNBQVM7dUJBQUMsUUFBUTtnQkFjbkIsS0FBSztzQkFESixLQUFLOztBQStEUixNQUFNLE9BQU8sMkJBQTRCLFNBQVEsK0JBQStCO0lBN0JoRjs7UUFpREUsVUFBSyxHQUFvRSxFQUFFLENBQUM7S0FzQjdFO0lBdENDLElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBS0QsSUFBYSxvQkFBb0I7UUFDL0IsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFLUyxRQUFRLENBQUMsT0FBZ0I7UUFDakMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNwQixDQUFDOztZQUFNLE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxVQUFVLENBQUM7UUFDdkMsQ0FBQztZQUNDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRVMsaUJBQWlCLENBQUMsQ0FBYSxFQUFFLElBQXNCLEVBQUUsSUFBYTtRQUM5RSxNQUFNLElBQUksR0FBK0I7WUFDdkMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ3BCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsV0FBVyxFQUFFLENBQUM7WUFDZCxJQUFJO1lBQ0osSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2hCLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDOzhHQXpDVSwyQkFBMkI7a0dBQTNCLDJCQUEyQixxS0FUM0I7WUFDVDtnQkFDRSxPQUFPLEVBQUUsMEJBQTBCO2dCQUNuQyxXQUFXLEVBQUUsMkJBQTJCO2FBQ3pDO1NBQ0YseUVBS1UsV0FBVywwS0E1Qlo7Ozs7Ozs7Ozs7Ozs7OzttQkFlTzs7MkZBWU4sMkJBQTJCO2tCQTdCdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7OzttQkFlTztvQkFDakIsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLDBCQUEwQjs0QkFDbkMsV0FBVyw2QkFBNkI7eUJBQ3pDO3FCQUNGO29CQUNELE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDO29CQUNyQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQ3pCOzhCQUdTLGFBQWE7c0JBRHBCLFNBQVM7dUJBQUMsV0FBVztnQkFRZCxzQkFBc0I7c0JBRDdCLFNBQVM7dUJBQUMsUUFBUTtnQkFZbkIsS0FBSztzQkFESixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25JdGVtQ29tcG9uZW50LCBBWEJ1dHRvbkl0ZW1MaXN0SXRlbSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhCdXR0b25DbGlja0V2ZW50LCBBWEl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEJhc2VEYXRhVGFibGUgfSBmcm9tICcuLi9iYXNlLWRhdGEtdGFibGUuY2xhc3MnO1xuaW1wb3J0IHsgQVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2RhdGEtdGFibGUtY29sdW1uJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFJvd0NvbW1hbmRJdGVtIGV4dGVuZHMgQVhCdXR0b25JdGVtTGlzdEl0ZW0ge31cblxuZXhwb3J0IGludGVyZmFjZSBBWFJvd0NvbW1hbmRJdGVtQ2xpY2tFdmVudCBleHRlbmRzIEFYQnV0dG9uQ2xpY2tFdmVudCB7fVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhCYXNlUm93Q29tbWFuZENvbHVtbkNvbXBvbmVudCBleHRlbmRzIEFYRGF0YVRhYmxlQ29sdW1uQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIGdyaWQgPSBpbmplY3QoQVhCYXNlRGF0YVRhYmxlKTtcbiAgcHJvdGVjdGVkIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgb3ZlcnJpZGUgYWxsb3dTb3J0aW5nID0gZmFsc2U7XG5cbiAgZ2V0IGxvYWRpbmdFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldCBjc3NDbGFzcygpIHtcbiAgICByZXR1cm4gJ2F4LWNvbW1hbmQtY29sdW1uJztcbiAgfVxuXG4gIG9uSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8QVhSb3dDb21tYW5kSXRlbUNsaWNrRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFJvd0NvbW1hbmRJdGVtQ2xpY2tFdmVudD4oKTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtZHJvcGRvd24tY29tbWFuZC1jb2x1bW4nLFxuICB0ZW1wbGF0ZTogYCA8bmctdGVtcGxhdGUgI2hlYWRlcj48L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PlxuICAgICAgQGlmIChyb3cuZGF0YSkge1xuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxidXR0b24gW2F4UmlwcGxlXT5cbiAgICAgICAgICAgIDxheC1pY29uIGljb249XCJheC1pY29uIGF4LWljb24tc29saWQgYXgtaWNvbi1tb3JlLWhvcml6b250YWxcIj48L2F4LWljb24+XG4gICAgICAgICAgICA8YXgtZHJvcGRvd24tcGFuZWwgW2FkYXB0aXZpdHlFbmFibGVkXT1cInRydWVcIiAob25PcGVuZWQpPVwiaGFuZGxlT25PcGVuZWQocm93LmRhdGEpXCIgKG9uQ2xvc2VkKT1cImhhbmRsZU9uQ2xvc2VkKClcIj5cbiAgICAgICAgICAgICAgQGlmIChfaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3QgKG9uSXRlbUNsaWNrKT1cImhhbmRsZU9uSXRlbUNsaWNrKCRldmVudCwgcm93LmRhdGEpXCIgW2l0ZW1zXT1cIl9pdGVtc1wiPiA8L2F4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxkaXYgcGFuZWwgc3R5bGU9XCJwYWRkaW5nOiAwLjg3NXJlbTtcIj5cbiAgICAgICAgICAgICAgICAgIDxheC1sb2FkaW5nPjwvYXgtbG9hZGluZz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9heC1kcm9wZG93bi1wYW5lbD5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICA8bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gICAgICAgIDxkaXYgcGFuZWwgc3R5bGU9XCJwYWRkaW5nOiAwLjg3NXJlbTtcIj5cbiAgICAgICAgICA8YXgtbG9hZGluZz48L2F4LWxvYWRpbmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPmAsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWERhdGFUYWJsZUNvbHVtbkNvbXBvbmVudCxcbiAgICAgIHVzZUV4aXN0aW5nOiBBWFJvd0Ryb3Bkb3duQ29tbWFuZENvbHVtbkNvbXBvbmVudCxcbiAgICB9LFxuICBdLFxuICBpbnB1dHM6IFsnd2lkdGgnLCAnY2FwdGlvbicsICdmaXhlZCddLFxuICBvdXRwdXRzOiBbJ29uSXRlbUNsaWNrJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUm93RHJvcGRvd25Db21tYW5kQ29sdW1uQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlUm93Q29tbWFuZENvbHVtbkNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYpXG4gIHByaXZhdGUgX2NlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgZ2V0IHJlbmRlckNlbGxUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMuX2NlbGxUZW1wbGF0ZTtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2hlYWRlcicpXG4gIHByaXZhdGUgX2NvbnRlbnRIZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgb3ZlcnJpZGUgZ2V0IHJlbmRlckhlYWRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5fY29udGVudEhlYWRlclRlbXBsYXRlO1xuICB9XG5cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ2NsLWRkLWNtZCc7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2l0ZW1zOiBBWFJvd0NvbW1hbmRJdGVtW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBpdGVtczogQVhSb3dDb21tYW5kSXRlbVtdIHwgKChyb3dEYXRhOiB1bmtub3duKSA9PiBBWFJvd0NvbW1hbmRJdGVtW10gfCBQcm9taXNlPEFYUm93Q29tbWFuZEl0ZW1bXT4pID0gW107XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZU9uT3BlbmVkKHJvd0RhdGEpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLml0ZW1zKSkge1xuICAgICAgdGhpcy5faXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgIH0gZWxzZSB0eXBlb2YgdGhpcy5pdGVtcyA9PSAnZnVuY3Rpb24nO1xuICAgIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9ICh0aGlzWydpdGVtcyddIGFzIGFueSkocm93RGF0YSk7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XG4gICAgICAgIHRoaXMuX2l0ZW1zID0gcmVzdWx0O1xuICAgICAgfSBlbHNlIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgIHRoaXMuX2l0ZW1zID0gYXdhaXQgcmVzdWx0O1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlT25DbG9zZWQoKSB7XG4gICAgdGhpcy5faXRlbXMgPSBbXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVPbkl0ZW1DbGljayhlOiBBWEl0ZW1DbGlja0V2ZW50PEFYQnV0dG9uSXRlbUNvbXBvbmVudD4sIGRhdGE6IHVua25vd24pIHtcbiAgICBjb25zdCBhcmdzOiBBWFJvd0NvbW1hbmRJdGVtQ2xpY2tFdmVudCA9IHtcbiAgICAgIGNvbXBvbmVudDogdGhpcy5ncmlkLFxuICAgICAgaXNVc2VySW50ZXJhY3Rpb246IHRydWUsXG4gICAgICBuYXRpdmVFdmVudDogZSxcbiAgICAgIGRhdGEsXG4gICAgICBuYW1lOiBlLm5hbWUsXG4gICAgfTtcbiAgICB0aGlzLm9uSXRlbUNsaWNrLmVtaXQoYXJncyk7XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtY29tbWFuZC1jb2x1bW4nLFxuICB0ZW1wbGF0ZTogYDxuZy10ZW1wbGF0ZSAjaGVhZGVyPkFBQTwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIGxldC1yb3c+XG4gICAgICBAaWYgKHJvdy5kYXRhKSB7XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgZ2V0SXRlbXMocm93LmRhdGEpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiJ3JnYmEodmFyKC0tYXgtY29sb3ItJyArIChpdGVtLmNvbG9yID8/ICdwcmltYXJ5KScpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgIFtheFJpcHBsZV09XCIhaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT25JdGVtQ2xpY2soJGV2ZW50LCBpdGVtLCByb3cuZGF0YSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxheC1pY29uIFtpY29uXT1cIml0ZW0uaWNvblwiPjwvYXgtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvbmctdGVtcGxhdGU+YCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYRGF0YVRhYmxlQ29sdW1uQ29tcG9uZW50LFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYUm93Q29tbWFuZENvbHVtbkNvbXBvbmVudCxcbiAgICB9LFxuICBdLFxuICBpbnB1dHM6IFsnd2lkdGgnLCAnY2FwdGlvbicsICdmaXhlZCddLFxuICBvdXRwdXRzOiBbJ29uSXRlbUNsaWNrJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUm93Q29tbWFuZENvbHVtbkNvbXBvbmVudCBleHRlbmRzIEFYQmFzZVJvd0NvbW1hbmRDb2x1bW5Db21wb25lbnQge1xuICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmKVxuICBwcml2YXRlIF9jZWxsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIGdldCByZW5kZXJDZWxsVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8dW5rbm93bj4ge1xuICAgIHJldHVybiB0aGlzLl9jZWxsVGVtcGxhdGU7XG4gIH1cblxuICBAVmlld0NoaWxkKCdoZWFkZXInKVxuICBwcml2YXRlIF9jb250ZW50SGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIG92ZXJyaWRlIGdldCByZW5kZXJIZWFkZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRlbnRIZWFkZXJUZW1wbGF0ZTtcbiAgfVxuXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdjbC1pbi1jbWQnO1xuICB9XG5cbiAgQElucHV0KClcbiAgaXRlbXM6IEFYUm93Q29tbWFuZEl0ZW1bXSB8ICgocm93RGF0YTogdW5rbm93bikgPT4gQVhSb3dDb21tYW5kSXRlbVtdKSA9IFtdO1xuXG4gIHByb3RlY3RlZCBnZXRJdGVtcyhyb3dEYXRhOiB1bmtub3duKTogQVhSb3dDb21tYW5kSXRlbVtdIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLml0ZW1zKSkge1xuICAgICAgcmV0dXJuIHRoaXMuaXRlbXM7XG4gICAgfSBlbHNlIHR5cGVvZiB0aGlzLml0ZW1zID09ICdmdW5jdGlvbic7XG4gICAge1xuICAgICAgcmV0dXJuIHRoaXMuaXRlbXMocm93RGF0YSk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVPbkl0ZW1DbGljayhlOiBNb3VzZUV2ZW50LCBpdGVtOiBBWFJvd0NvbW1hbmRJdGVtLCBkYXRhOiB1bmtub3duKSB7XG4gICAgY29uc3QgYXJnczogQVhSb3dDb21tYW5kSXRlbUNsaWNrRXZlbnQgPSB7XG4gICAgICBjb21wb25lbnQ6IHRoaXMuZ3JpZCxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgICAgbmF0aXZlRXZlbnQ6IGUsXG4gICAgICBkYXRhLFxuICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgIH07XG4gICAgdGhpcy5vbkl0ZW1DbGljay5lbWl0KGFyZ3MpO1xuICB9XG59XG4iXX0=