@trudb/tru-common-lib 0.0.183 → 0.0.184

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.
Files changed (90) hide show
  1. package/esm2020/lib/base-classes/tru-table-config-base.mjs +12 -0
  2. package/esm2020/lib/classes/tru-formula-eval.mjs +156 -0
  3. package/esm2020/lib/classes/tru-property-config-cloud-file.mjs +5 -0
  4. package/esm2020/lib/classes/tru-property-config-decimal.mjs +11 -0
  5. package/esm2020/lib/classes/tru-property-config-foreign-key.mjs +10 -0
  6. package/esm2020/lib/classes/tru-property-config-integer.mjs +9 -0
  7. package/esm2020/lib/classes/tru-property-config-password.mjs +8 -0
  8. package/esm2020/lib/classes/tru-property-config-percentage.mjs +9 -0
  9. package/esm2020/lib/classes/tru-property-config-scientific.mjs +9 -0
  10. package/esm2020/lib/classes/tru-property-config-text-choices.mjs +8 -0
  11. package/esm2020/lib/classes/tru-property-config-text.mjs +10 -0
  12. package/esm2020/lib/classes/tru-property-config-usa-address.mjs +8 -0
  13. package/esm2020/lib/classes/tru-property-config-zip-code.mjs +8 -0
  14. package/esm2020/lib/components/data-grid/classes/tru-data-grid-config.mjs +2 -0
  15. package/esm2020/lib/components/data-grid/enums/tru-data-grid-types.mjs +7 -0
  16. package/esm2020/lib/components/data-grid/tru-data-grid-module.mjs +67 -0
  17. package/esm2020/lib/components/data-grid/tru-data-grid.mjs +253 -0
  18. package/esm2020/lib/components/desktop/services/tru-window-action-event-handler.mjs +27 -0
  19. package/esm2020/lib/components/desktop/services/tru-window-add-view-event-args.mjs +22 -0
  20. package/esm2020/lib/components/desktop/services/tru-window-event-args.mjs +25 -0
  21. package/esm2020/lib/components/desktop/services/tru-window-event-handler.mjs +37 -0
  22. package/esm2020/lib/components/desktop/tru-desktop.mjs +2 -2
  23. package/esm2020/lib/components/desktop/window/tru-desktop-window.mjs +3 -3
  24. package/esm2020/lib/components/layout/column/tru-column-module.mjs +19 -0
  25. package/esm2020/lib/components/layout/column/tru-column.mjs +12 -0
  26. package/esm2020/lib/components/layout/form/tru-form-module.mjs +19 -0
  27. package/esm2020/lib/components/layout/form/tru-form.mjs +27 -0
  28. package/esm2020/lib/components/layout/group-box/tru-group-box-module.mjs +19 -0
  29. package/esm2020/lib/components/layout/group-box/tru-group-box.mjs +12 -0
  30. package/esm2020/lib/components/layout/row/tru-row-module.mjs +19 -0
  31. package/esm2020/lib/components/layout/row/tru-row.mjs +12 -0
  32. package/esm2020/lib/components/toolbar/classes/tru-toolbar-dropdown-option.mjs +2 -0
  33. package/esm2020/lib/components/toolbar/dropdown/tru-toolbar-dropdown.mjs +1 -1
  34. package/esm2020/lib/components/toolbar/tru-toolbar.mjs +1 -1
  35. package/esm2020/lib/directives/search-panel-position-manager/tru-search-panel-position-manager-module.mjs +19 -0
  36. package/esm2020/lib/directives/search-panel-position-manager/tru-search-panel-position-manager.mjs +151 -0
  37. package/esm2020/lib/event-handlers/tru-search-group-event-handler.mjs +41 -0
  38. package/esm2020/lib/event-handlers/tru-search-view-event-handler.mjs +20 -0
  39. package/esm2020/lib/services/tru-sort.mjs +114 -0
  40. package/esm2020/public-api.mjs +68 -34
  41. package/fesm2015/trudb-tru-common-lib.mjs +2794 -1838
  42. package/fesm2015/trudb-tru-common-lib.mjs.map +1 -1
  43. package/fesm2020/trudb-tru-common-lib.mjs +2777 -1823
  44. package/fesm2020/trudb-tru-common-lib.mjs.map +1 -1
  45. package/lib/base-classes/tru-table-config-base.d.ts +10 -0
  46. package/lib/classes/tru-formula-eval.d.ts +31 -0
  47. package/lib/classes/tru-property-config-cloud-file.d.ts +4 -0
  48. package/lib/classes/tru-property-config-decimal.d.ts +8 -0
  49. package/lib/classes/tru-property-config-foreign-key.d.ts +7 -0
  50. package/lib/classes/tru-property-config-integer.d.ts +6 -0
  51. package/lib/classes/tru-property-config-password.d.ts +5 -0
  52. package/lib/classes/tru-property-config-percentage.d.ts +6 -0
  53. package/lib/classes/tru-property-config-scientific.d.ts +6 -0
  54. package/lib/classes/tru-property-config-text-choices.d.ts +5 -0
  55. package/lib/classes/tru-property-config-text.d.ts +7 -0
  56. package/lib/classes/tru-property-config-usa-address.d.ts +5 -0
  57. package/lib/classes/tru-property-config-zip-code.d.ts +5 -0
  58. package/lib/components/data-grid/classes/tru-data-grid-config.d.ts +7 -0
  59. package/lib/components/data-grid/enums/tru-data-grid-types.d.ts +5 -0
  60. package/lib/components/data-grid/tru-data-grid-module.d.ts +15 -0
  61. package/lib/components/data-grid/tru-data-grid.d.ts +55 -0
  62. package/lib/{services → components/desktop/services}/tru-window-action-event-handler.d.ts +0 -0
  63. package/lib/{classes/tru-window-add-view-event.d.ts → components/desktop/services/tru-window-add-view-event-args.d.ts} +3 -3
  64. package/lib/{classes/tru-window-event.d.ts → components/desktop/services/tru-window-event-args.d.ts} +3 -3
  65. package/lib/{services → components/desktop/services}/tru-window-event-handler.d.ts +6 -6
  66. package/lib/components/desktop/tru-desktop.d.ts +1 -1
  67. package/lib/components/desktop/window/tru-desktop-window.d.ts +1 -1
  68. package/lib/components/layout/column/tru-column-module.d.ts +9 -0
  69. package/lib/components/layout/column/tru-column.d.ts +6 -0
  70. package/lib/components/layout/form/tru-form-module.d.ts +9 -0
  71. package/lib/components/layout/form/tru-form.d.ts +10 -0
  72. package/lib/components/layout/group-box/tru-group-box-module.d.ts +9 -0
  73. package/lib/components/layout/group-box/tru-group-box.d.ts +6 -0
  74. package/lib/components/layout/row/tru-row-module.d.ts +9 -0
  75. package/lib/components/layout/row/tru-row.d.ts +6 -0
  76. package/lib/components/toolbar/classes/tru-toolbar-dropdown-option.d.ts +4 -0
  77. package/lib/components/toolbar/dropdown/tru-toolbar-dropdown.d.ts +1 -1
  78. package/lib/components/toolbar/tru-toolbar.d.ts +0 -4
  79. package/lib/directives/search-panel-position-manager/tru-search-panel-position-manager-module.d.ts +9 -0
  80. package/lib/directives/search-panel-position-manager/tru-search-panel-position-manager.d.ts +40 -0
  81. package/lib/{services → event-handlers}/tru-search-group-event-handler.d.ts +0 -0
  82. package/lib/event-handlers/tru-search-view-event-handler.d.ts +8 -0
  83. package/lib/services/tru-sort.d.ts +56 -0
  84. package/package.json +1 -1
  85. package/public-api.d.ts +61 -33
  86. package/esm2020/lib/classes/tru-window-add-view-event.mjs +0 -22
  87. package/esm2020/lib/classes/tru-window-event.mjs +0 -25
  88. package/esm2020/lib/services/tru-search-group-event-handler.mjs +0 -41
  89. package/esm2020/lib/services/tru-window-action-event-handler.mjs +0 -27
  90. package/esm2020/lib/services/tru-window-event-handler.mjs +0 -37
@@ -0,0 +1,19 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import { FormsModule } from "@angular/forms";
4
+ import { TruGroupBox } from "./tru-group-box";
5
+ import * as i0 from "@angular/core";
6
+ export class TruGroupBoxModule {
7
+ }
8
+ TruGroupBoxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruGroupBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ TruGroupBoxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.2", ngImport: i0, type: TruGroupBoxModule, declarations: [TruGroupBox], imports: [CommonModule, FormsModule], exports: [TruGroupBox] });
10
+ TruGroupBoxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruGroupBoxModule, imports: [CommonModule, FormsModule] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruGroupBoxModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ declarations: [TruGroupBox],
15
+ imports: [CommonModule, FormsModule],
16
+ exports: [TruGroupBox]
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWdyb3VwLWJveC1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvbGF5b3V0L2dyb3VwLWJveC90cnUtZ3JvdXAtYm94LW1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQU85QyxNQUFNLE9BQU8saUJBQWlCOzs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBSmIsV0FBVyxhQUNoQixZQUFZLEVBQUUsV0FBVyxhQUN6QixXQUFXOytHQUVWLGlCQUFpQixZQUhsQixZQUFZLEVBQUUsV0FBVzsyRkFHeEIsaUJBQWlCO2tCQUw3QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLFdBQVcsQ0FBQztvQkFDM0IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztvQkFDcEMsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDO2lCQUN2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuaW1wb3J0IHsgVHJ1R3JvdXBCb3ggfSBmcm9tIFwiLi90cnUtZ3JvdXAtYm94XCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1RydUdyb3VwQm94XSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sXHJcbiAgZXhwb3J0czogW1RydUdyb3VwQm94XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJ1R3JvdXBCb3hNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -0,0 +1,12 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TruGroupBox {
4
+ constructor() { }
5
+ }
6
+ TruGroupBox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruGroupBox, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ TruGroupBox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: TruGroupBox, selector: "tru-group-box", ngImport: i0, template: "<div>\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [""] });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruGroupBox, decorators: [{
9
+ type: Component,
10
+ args: [{ selector: 'tru-group-box', template: "<div>\r\n <ng-content></ng-content>\r\n</div>\r\n" }]
11
+ }], ctorParameters: function () { return []; } });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWdyb3VwLWJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQvZ3JvdXAtYm94L3RydS1ncm91cC1ib3gudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvbGF5b3V0L2dyb3VwLWJveC90cnUtZ3JvdXAtYm94Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPMUMsTUFBTSxPQUFPLFdBQVc7SUFDdEIsZ0JBQWdCLENBQUM7O3dHQUROLFdBQVc7NEZBQVgsV0FBVyxxRENQeEIsb0RBR0E7MkZESWEsV0FBVztrQkFMdkIsU0FBUzsrQkFDRSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RydS1ncm91cC1ib3gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cnUtZ3JvdXAtYm94Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RydS1ncm91cC1ib3guY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRydUdyb3VwQm94IHtcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG59XHJcbiIsIjxkaXY+XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,19 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import { FormsModule } from "@angular/forms";
4
+ import { TruRow } from "./tru-row";
5
+ import * as i0 from "@angular/core";
6
+ export class TruRowModule {
7
+ }
8
+ TruRowModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruRowModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ TruRowModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.2", ngImport: i0, type: TruRowModule, declarations: [TruRow], imports: [CommonModule, FormsModule], exports: [TruRow] });
10
+ TruRowModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruRowModule, imports: [CommonModule, FormsModule] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruRowModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ declarations: [TruRow],
15
+ imports: [CommonModule, FormsModule],
16
+ exports: [TruRow]
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXJvdy1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvbGF5b3V0L3Jvdy90cnUtcm93LW1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFPbkMsTUFBTSxPQUFPLFlBQVk7O3lHQUFaLFlBQVk7MEdBQVosWUFBWSxpQkFKUixNQUFNLGFBQ1gsWUFBWSxFQUFFLFdBQVcsYUFDekIsTUFBTTswR0FFTCxZQUFZLFlBSGIsWUFBWSxFQUFFLFdBQVc7MkZBR3hCLFlBQVk7a0JBTHhCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsTUFBTSxDQUFDO29CQUN0QixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDO29CQUNwQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUM7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5pbXBvcnQgeyBUcnVSb3cgfSBmcm9tIFwiLi90cnUtcm93XCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1RydVJvd10sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtUcnVSb3ddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVSb3dNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -0,0 +1,12 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TruRow {
4
+ constructor() { }
5
+ }
6
+ TruRow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruRow, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ TruRow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: TruRow, selector: "tru-row", ngImport: i0, template: "<li>\r\n <div class=\"tvl-container-grid js-grid\">\r\n <div class=\"tvl-container-grid-col\">\r\n <div class=\"tvl-container-panel\">\r\n <ul class=\"tvl-container-hList\">\r\n <ng-content></ng-content>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</li>\r\n", styles: [""] });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruRow, decorators: [{
9
+ type: Component,
10
+ args: [{ selector: 'tru-row', template: "<li>\r\n <div class=\"tvl-container-grid js-grid\">\r\n <div class=\"tvl-container-grid-col\">\r\n <div class=\"tvl-container-panel\">\r\n <ul class=\"tvl-container-hList\">\r\n <ng-content></ng-content>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</li>\r\n" }]
11
+ }], ctorParameters: function () { return []; } });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXJvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQvcm93L3RydS1yb3cudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvbGF5b3V0L3Jvdy90cnUtcm93Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPMUMsTUFBTSxPQUFPLE1BQU07SUFDakIsZ0JBQWdCLENBQUM7O21HQUROLE1BQU07dUZBQU4sTUFBTSwrQ0NQbkIsOFNBV0E7MkZESmEsTUFBTTtrQkFMbEIsU0FBUzsrQkFDRSxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RydS1yb3cnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cnUtcm93Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RydS1yb3cuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRydVJvdyB7XHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxufVxyXG4iLCI8bGk+XHJcbiAgPGRpdiBjbGFzcz1cInR2bC1jb250YWluZXItZ3JpZCBqcy1ncmlkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidHZsLWNvbnRhaW5lci1ncmlkLWNvbFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHZsLWNvbnRhaW5lci1wYW5lbFwiPlxyXG4gICAgICAgIDx1bCBjbGFzcz1cInR2bC1jb250YWluZXItaExpc3RcIj5cclxuICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgICA8L3VsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2xpPlxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXRvb2xiYXItZHJvcGRvd24tb3B0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3Rvb2xiYXIvY2xhc3Nlcy90cnUtdG9vbGJhci1kcm9wZG93bi1vcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSVRydVRvb2xiYXJEcm9wZG93bk9wdGlvbiB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICB2YWx1ZTogYW55O1xyXG59XHJcbiJdfQ==
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
39
39
  }], selectionChange: [{
40
40
  type: Output
41
41
  }] } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXRvb2xiYXItZHJvcGRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdG9vbGJhci9kcm9wZG93bi90cnUtdG9vbGJhci1kcm9wZG93bi50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy90b29sYmFyL2Ryb3Bkb3duL3RydS10b29sYmFyLWRyb3Bkb3duLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFVakgsTUFBTSxPQUFPLGtCQUFrQjtJQVk3QjtRQVhTLFdBQU0sR0FBYyxJQUFJLENBQUM7UUFFekIsWUFBTyxHQUFxQyxFQUFFLENBQUM7UUFHOUMseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFJckUsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBb0MsQ0FBQztRQWNqRixzQkFBaUIsR0FBRyxDQUFDLEtBQXNCLEVBQUUsRUFBRTtZQUM3QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFBO0lBYkQsQ0FBQztJQUVELFFBQVE7SUFFUixDQUFDO0lBRUQsZUFBZTtJQUVmLENBQUM7OytHQXRCVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixxUUNWL0IsMlNBU0E7MkZEQ2Esa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLHNCQUFzQixpQkFHakIsaUJBQWlCLENBQUMsSUFBSTswRUFHNUIsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNJLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFFRSxRQUFRO3NCQUFoQixLQUFLO2dCQUVJLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBJVHJ1VG9vbGJhckRyb3Bkb3duT3B0aW9uIH0gZnJvbSAnLi4vdHJ1LXRvb2xiYXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cnUtdG9vbGJhci1kcm9wZG93bicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RydS10b29sYmFyLWRyb3Bkb3duLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuLi90cnUtdG9vbGJhci5jc3MnLCAnLi90cnUtdG9vbGJhci1kcm9wZG93bi5jc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVUb29sYmFyRHJvcGRvd24gaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIGNvbmZpZzogW10gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQElucHV0KCkgb3B0aW9uczogQXJyYXk8SVRydVRvb2xiYXJEcm9wZG93bk9wdGlvbj4gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgc2VsZWN0ZWRPcHRpb24hOiBJVHJ1VG9vbGJhckRyb3Bkb3duT3B0aW9uO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZE9wdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SVRydVRvb2xiYXJEcm9wZG93bk9wdGlvbj4oKTtcclxuXHJcbiAgQElucHV0KCkgZGlzYWJsZWQhOiBib29sZWFuO1xyXG5cclxuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJVHJ1VG9vbGJhckRyb3Bkb3duT3B0aW9uIHwgbnVsbD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cclxuICB9XHJcblxyXG4gIG9uU2VsZWN0aW9uQ2hhbmdlID0gKGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UpID0+IHtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25DaGFuZ2UuZW1pdChldmVudC52YWx1ZSk7XHJcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KGV2ZW50LnZhbHVlKTtcclxuICB9XHJcbn1cclxuIiwiPG1hdC1mb3JtLWZpZWxkPlxyXG4gIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwic2VsZWN0ZWRPcHRpb25cIlxyXG4gICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvblwiPlxyXG4gICAgICB7e29wdGlvbi5sYWJlbH19XHJcbiAgICA8L21hdC1vcHRpb24+XHJcbiAgPC9tYXQtc2VsZWN0PlxyXG48L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuIl19
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXRvb2xiYXItZHJvcGRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdG9vbGJhci9kcm9wZG93bi90cnUtdG9vbGJhci1kcm9wZG93bi50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy90b29sYmFyL2Ryb3Bkb3duL3RydS10b29sYmFyLWRyb3Bkb3duLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFVakgsTUFBTSxPQUFPLGtCQUFrQjtJQVk3QjtRQVhTLFdBQU0sR0FBYyxJQUFJLENBQUM7UUFFekIsWUFBTyxHQUFxQyxFQUFFLENBQUM7UUFHOUMseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFJckUsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBb0MsQ0FBQztRQWNqRixzQkFBaUIsR0FBRyxDQUFDLEtBQXNCLEVBQUUsRUFBRTtZQUM3QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFBO0lBYkQsQ0FBQztJQUVELFFBQVE7SUFFUixDQUFDO0lBRUQsZUFBZTtJQUVmLENBQUM7OytHQXRCVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixxUUNWL0IsMlNBU0E7MkZEQ2Esa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLHNCQUFzQixpQkFHakIsaUJBQWlCLENBQUMsSUFBSTswRUFHNUIsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNJLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFFRSxRQUFRO3NCQUFoQixLQUFLO2dCQUVJLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBJVHJ1VG9vbGJhckRyb3Bkb3duT3B0aW9uIH0gZnJvbSAnLi4vY2xhc3Nlcy90cnUtdG9vbGJhci1kcm9wZG93bi1vcHRpb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cnUtdG9vbGJhci1kcm9wZG93bicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RydS10b29sYmFyLWRyb3Bkb3duLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuLi90cnUtdG9vbGJhci5jc3MnLCAnLi90cnUtdG9vbGJhci1kcm9wZG93bi5jc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVUb29sYmFyRHJvcGRvd24gaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIGNvbmZpZzogW10gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQElucHV0KCkgb3B0aW9uczogQXJyYXk8SVRydVRvb2xiYXJEcm9wZG93bk9wdGlvbj4gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgc2VsZWN0ZWRPcHRpb24hOiBJVHJ1VG9vbGJhckRyb3Bkb3duT3B0aW9uO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZE9wdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SVRydVRvb2xiYXJEcm9wZG93bk9wdGlvbj4oKTtcclxuXHJcbiAgQElucHV0KCkgZGlzYWJsZWQhOiBib29sZWFuO1xyXG5cclxuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJVHJ1VG9vbGJhckRyb3Bkb3duT3B0aW9uIHwgbnVsbD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cclxuICB9XHJcblxyXG4gIG9uU2VsZWN0aW9uQ2hhbmdlID0gKGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UpID0+IHtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25DaGFuZ2UuZW1pdChldmVudC52YWx1ZSk7XHJcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KGV2ZW50LnZhbHVlKTtcclxuICB9XHJcbn1cclxuIiwiPG1hdC1mb3JtLWZpZWxkPlxyXG4gIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwic2VsZWN0ZWRPcHRpb25cIlxyXG4gICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvblwiPlxyXG4gICAgICB7e29wdGlvbi5sYWJlbH19XHJcbiAgICA8L21hdC1vcHRpb24+XHJcbiAgPC9tYXQtc2VsZWN0PlxyXG48L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuIl19
@@ -18,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
18
18
  }], ctorParameters: function () { return []; }, propDecorators: { config: [{
19
19
  type: Input
20
20
  }] } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXRvb2xiYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdG9vbGJhci90cnUtdG9vbGJhci50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy90b29sYmFyL3RydS10b29sYmFyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBWXpELE1BQU0sT0FBTyxVQUFVO0lBR3JCO1FBRlMsV0FBTSxHQUFjLElBQUksQ0FBQztJQUVsQixDQUFDO0lBRWpCLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSTtZQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUUzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O3VHQVZVLFVBQVU7MkZBQVYsVUFBVSxpRkNadkIsb0ZBR0E7MkZEU2EsVUFBVTtrQkFMdEIsU0FBUzsrQkFDRSxhQUFhOzBFQUtkLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJVHJ1VG9vbGJhckRyb3Bkb3duT3B0aW9uIHtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHZhbHVlOiBhbnk7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHJ1LXRvb2xiYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cnUtdG9vbGJhci5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cnUtdG9vbGJhci5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJ1VG9vbGJhciBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgY29uZmlnOiBbXSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNvbmZpZyAhPSBudWxsKVxyXG4gICAgICB0aGlzLmNvbmZpZy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG5cclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0b29sYmFyIHRvb2xiYXItZ3JvdXBcIj5cclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbjwvZGl2PlxyXG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXRvb2xiYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdG9vbGJhci90cnUtdG9vbGJhci50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy90b29sYmFyL3RydS10b29sYmFyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBT3pELE1BQU0sT0FBTyxVQUFVO0lBR3JCO1FBRlMsV0FBTSxHQUFjLElBQUksQ0FBQztJQUVsQixDQUFDO0lBRWpCLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSTtZQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUUzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O3VHQVZVLFVBQVU7MkZBQVYsVUFBVSxpRkNQdkIsb0ZBR0E7MkZESWEsVUFBVTtrQkFMdEIsU0FBUzsrQkFDRSxhQUFhOzBFQUtkLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cnUtdG9vbGJhcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RydS10b29sYmFyLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RydS10b29sYmFyLmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVUb29sYmFyIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBjb25maWc6IFtdIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnICE9IG51bGwpXHJcbiAgICAgIHRoaXMuY29uZmlnLmZvckVhY2goaXRlbSA9PiB7XHJcblxyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRvb2xiYXIgdG9vbGJhci1ncm91cFwiPlxyXG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { TruSearchPanelPositionManager } from './tru-search-panel-position-manager';
5
+ import * as i0 from "@angular/core";
6
+ export class TruSearchPanelPositionManagerModule {
7
+ }
8
+ TruSearchPanelPositionManagerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruSearchPanelPositionManagerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ TruSearchPanelPositionManagerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.2", ngImport: i0, type: TruSearchPanelPositionManagerModule, declarations: [TruSearchPanelPositionManager], imports: [CommonModule, FormsModule], exports: [TruSearchPanelPositionManager] });
10
+ TruSearchPanelPositionManagerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruSearchPanelPositionManagerModule, imports: [CommonModule, FormsModule] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruSearchPanelPositionManagerModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ declarations: [TruSearchPanelPositionManager],
15
+ imports: [CommonModule, FormsModule],
16
+ exports: [TruSearchPanelPositionManager]
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXNlYXJjaC1wYW5lbC1wb3NpdGlvbi1tYW5hZ2VyLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvZGlyZWN0aXZlcy9zZWFyY2gtcGFuZWwtcG9zaXRpb24tbWFuYWdlci90cnUtc2VhcmNoLXBhbmVsLXBvc2l0aW9uLW1hbmFnZXItbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFPcEYsTUFBTSxPQUFPLG1DQUFtQzs7Z0lBQW5DLG1DQUFtQztpSUFBbkMsbUNBQW1DLGlCQUovQiw2QkFBNkIsYUFDbEMsWUFBWSxFQUFFLFdBQVcsYUFDekIsNkJBQTZCO2lJQUU1QixtQ0FBbUMsWUFIcEMsWUFBWSxFQUFFLFdBQVc7MkZBR3hCLG1DQUFtQztrQkFML0MsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztvQkFDN0MsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztvQkFDcEMsT0FBTyxFQUFFLENBQUMsNkJBQTZCLENBQUM7aUJBQ3pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRydVNlYXJjaFBhbmVsUG9zaXRpb25NYW5hZ2VyIH0gZnJvbSAnLi90cnUtc2VhcmNoLXBhbmVsLXBvc2l0aW9uLW1hbmFnZXInO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtUcnVTZWFyY2hQYW5lbFBvc2l0aW9uTWFuYWdlcl0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtUcnVTZWFyY2hQYW5lbFBvc2l0aW9uTWFuYWdlcl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRydVNlYXJjaFBhbmVsUG9zaXRpb25NYW5hZ2VyTW9kdWxlIHsgfVxyXG4iXX0=
@@ -0,0 +1,151 @@
1
+ import { Directive, Input } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export class TruSearchPanelPositionManager {
4
+ constructor(el, renderer) {
5
+ this.el = el;
6
+ this.renderer = renderer;
7
+ this.config = { size: 300 };
8
+ this.searchViewPortal = null;
9
+ this.tab = null;
10
+ this.dropZones = [];
11
+ this.dragHandles = [];
12
+ this.currentWidth = 0;
13
+ this.currentMinWidth = 0;
14
+ this.mouseOffsetX = 0;
15
+ this.lastMouseX = 0;
16
+ this.dragHandle = null;
17
+ this.listeners = [];
18
+ this.addTabEventListeners = () => {
19
+ this.listeners.push(this.renderer.listen(this.tab, 'dragstart', this.dragStart));
20
+ this.listeners.push(this.renderer.listen(this.tab, 'dragend', this.dragEnd));
21
+ };
22
+ this.addDropzoneEventListeners = () => {
23
+ this.dropZones.forEach((dropZone) => {
24
+ this.listeners.push(this.renderer.listen(dropZone, 'dragover', this.dragOver));
25
+ this.listeners.push(this.renderer.listen(dropZone, 'dragleave', this.dragLeave));
26
+ this.listeners.push(this.renderer.listen(dropZone, 'drop', this.drop));
27
+ });
28
+ };
29
+ this.addDragHandleEventListeners = () => {
30
+ this.dragHandles.forEach((dropHandle) => {
31
+ this.listeners.push(this.renderer.listen(dropHandle, 'mousedown', this.mousedown));
32
+ });
33
+ };
34
+ this.addPointerEvents = () => {
35
+ this.dropZones.forEach((dropZone) => {
36
+ dropZone.style.pointerEvents = 'all';
37
+ });
38
+ };
39
+ this.removePointerEvents = () => {
40
+ this.dropZones.forEach((dropZone) => {
41
+ dropZone.style.pointerEvents = 'none';
42
+ });
43
+ };
44
+ this.addMouseoverDropzoneStyles = (event) => {
45
+ event.target.classList.add('mouseover');
46
+ };
47
+ this.removeMouseoverDropzoneStyles = (event) => {
48
+ for (var i = 0; i < this.dropZones.length; i++) {
49
+ if (event.target !== this.dropZones[i])
50
+ this.dropZones[i].classList.remove('mouseover');
51
+ }
52
+ };
53
+ this.dragStart = (event) => {
54
+ this.addPointerEvents();
55
+ };
56
+ this.dragEnd = (event) => {
57
+ this.removePointerEvents();
58
+ this.removeMouseoverDropzoneStyles(event);
59
+ };
60
+ this.dragOver = (event) => {
61
+ event.preventDefault();
62
+ this.addMouseoverDropzoneStyles(event);
63
+ };
64
+ this.dragLeave = (event) => {
65
+ event.target.classList.remove('mouseover');
66
+ };
67
+ this.drop = (event) => {
68
+ if (event.target.classList.contains('left')) {
69
+ this.config.side = 'left';
70
+ this.config.setGridPinnedPositionFn({ 'position': 'absolute', 'width': 'calc(100% - ' + (this.config.size - 20) + 'px', 'left': (this.config.size - 20) + 'px', 'margin-left': 'auto' });
71
+ this.config.setToolbarPinnedPositionFn({ 'position': 'absolute', 'width': 'calc(100% - ' + (this.config.size - 20) + 'px', 'left': (this.config.size - 20) + 'px', 'margin-left': 'auto' });
72
+ //userPreference.set(userPreference.searchPanelSide, 'left');
73
+ }
74
+ if (event.target.classList.contains('right')) {
75
+ this.config.side = 'right';
76
+ this.config.setGridPinnedPositionFn({ 'width': 'calc(100% - ' + (this.config.size - 20) + 'px' });
77
+ this.config.setToolbarPinnedPositionFn({ 'width': 'calc(100% - ' + (this.config.size - 20) + 'px' });
78
+ //userPreference.set(userPreference.searchPanelSide, 'right');
79
+ }
80
+ this.removeMouseoverDropzoneStyles(event);
81
+ };
82
+ this.mousedown = (event) => {
83
+ if (this.config.pinned)
84
+ return;
85
+ if (!this.dragHandle)
86
+ this.dragHandle = event.target;
87
+ this.mouseOffsetX = event.clientX;
88
+ this.mousemoveListener = this.renderer.listen('document', 'mousemove', this.mouseMove);
89
+ this.mouseupListener = this.renderer.listen('document', 'mouseup', this.mouseUp);
90
+ };
91
+ this.mouseMove = (event) => {
92
+ var mouseX = event.pageX - this.mouseOffsetX;
93
+ var diffX = mouseX - this.lastMouseX;
94
+ this.lastMouseX = mouseX;
95
+ this.currentWidth = this.config.size;
96
+ this.currentMinWidth = 100;
97
+ if (this.dragHandle?.classList.contains('search-panel-resizable-w')) {
98
+ if (this.currentWidth - diffX < this.currentMinWidth)
99
+ this.mouseOffsetX = this.mouseOffsetX - (diffX - (diffX = this.currentWidth - this.currentMinWidth));
100
+ this.config.size = (this.currentWidth - diffX);
101
+ this.updateSide();
102
+ }
103
+ if (this.dragHandle?.classList.contains('search-panel-resizable-e')) {
104
+ if (this.currentWidth + diffX < this.currentMinWidth)
105
+ this.mouseOffsetX = this.mouseOffsetX - (diffX - (diffX = this.currentMinWidth - this.currentWidth));
106
+ this.config.size = (this.currentWidth + diffX);
107
+ this.updateSide();
108
+ }
109
+ };
110
+ this.mouseUp = () => {
111
+ this.dragHandle = null;
112
+ this.mouseOffsetX = 0;
113
+ this.lastMouseX = 0;
114
+ this.mousemoveListener();
115
+ this.mouseupListener();
116
+ };
117
+ this.updateSide = () => {
118
+ //if (this.config.side === 'left') {
119
+ // this.config.setGridPinnedPositionFn({ 'position': 'absolute', 'width': 'calc(100% - ' + (this.config.size - 20) + 'px', 'left': (this.config.size - 20) + 'px', 'margin-left': 'auto' });
120
+ // this.config.setToolbarPinnedPositionFn({ 'position': 'absolute', 'width': 'calc(100% - ' + (this.config.size - 20) + 'px', 'left': (this.config.size - 20) + 'px', 'margin-left': 'auto' });
121
+ //}
122
+ //if (this.config.side === 'right') {
123
+ // this.config.setGridPinnedPositionFn({ 'width': 'calc(100% - ' + (this.config.size - 20) + 'px' });
124
+ // this.config.setToolbarPinnedPositionFn({ 'width': 'calc(100% - ' + (this.config.size - 20) + 'px' });
125
+ //}
126
+ };
127
+ }
128
+ ngAfterViewInit() {
129
+ this.searchViewPortal = this.el.nativeElement.closest('.search-container');
130
+ this.tab = this.el.nativeElement.querySelectorAll('.search-panel-tab')[0];
131
+ this.dropZones = this.searchViewPortal?.querySelectorAll('.search-panel-dropzone');
132
+ this.dragHandles = this.el.nativeElement.querySelectorAll('.search-panel-resizable-handle');
133
+ this.addTabEventListeners();
134
+ this.addDropzoneEventListeners();
135
+ this.addDragHandleEventListeners();
136
+ }
137
+ ngOnDestroy() {
138
+ this.listeners.forEach(fn => fn());
139
+ }
140
+ }
141
+ TruSearchPanelPositionManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruSearchPanelPositionManager, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
142
+ TruSearchPanelPositionManager.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.2", type: TruSearchPanelPositionManager, selector: "[truSearchPanelPositionManager]", inputs: { config: "config" }, ngImport: i0 });
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruSearchPanelPositionManager, decorators: [{
144
+ type: Directive,
145
+ args: [{
146
+ selector: '[truSearchPanelPositionManager]'
147
+ }]
148
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { config: [{
149
+ type: Input
150
+ }] } });
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXNlYXJjaC1wYW5lbC1wb3NpdGlvbi1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9kaXJlY3RpdmVzL3NlYXJjaC1wYW5lbC1wb3NpdGlvbi1tYW5hZ2VyL3RydS1zZWFyY2gtcGFuZWwtcG9zaXRpb24tbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQzs7QUFLeEUsTUFBTSxPQUFPLDZCQUE2QjtJQWtCeEMsWUFBb0IsRUFBYyxFQUFVLFFBQW1CO1FBQTNDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBakJ0RCxXQUFNLEdBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFFN0IscUJBQWdCLEdBQXVCLElBQUksQ0FBQztRQUM1QyxRQUFHLEdBQXVCLElBQUksQ0FBQztRQUMvQixjQUFTLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLGdCQUFXLEdBQXVCLEVBQUUsQ0FBQztRQUVyQyxpQkFBWSxHQUFHLENBQUMsQ0FBQTtRQUNoQixvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUNwQixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsZUFBVSxHQUF1QixJQUFJLENBQUM7UUFDdEMsY0FBUyxHQUFlLEVBQUUsQ0FBQztRQXFCM0IseUJBQW9CLEdBQUcsR0FBRyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFD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QyxDQUFDO0lBMklELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDckMsQ0FBQzs7MEhBNUtVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCOzJGQUE3Qiw2QkFBNkI7a0JBSHpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlDQUFpQztpQkFDNUM7eUhBRVUsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgUmVuZGVyZXIyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3RydVNlYXJjaFBhbmVsUG9zaXRpb25NYW5hZ2VyXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRydVNlYXJjaFBhbmVsUG9zaXRpb25NYW5hZ2VyIHtcclxuICBASW5wdXQoKSBjb25maWc6IGFueSA9IHsgc2l6ZTogMzAwIH07XHJcblxyXG4gIHByaXZhdGUgc2VhcmNoVmlld1BvcnRhbDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIHRhYjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIGRyb3Bab25lczogYW55ID0gW107XHJcbiAgcHJpdmF0ZSBkcmFnSGFuZGxlczogQXJyYXk8SFRNTEVsZW1lbnQ+ID0gW107XHJcblxyXG4gIHByaXZhdGUgY3VycmVudFdpZHRoID0gMFxyXG4gIHByaXZhdGUgY3VycmVudE1pbldpZHRoID0gMDtcclxuICBwcml2YXRlIG1vdXNlT2Zmc2V0WCA9IDA7XHJcbiAgcHJpdmF0ZSBsYXN0TW91c2VYID0gMDtcclxuICBwcml2YXRlIGRyYWdIYW5kbGU6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBsaXN0ZW5lcnM6IEFycmF5PGFueT4gPSBbXTtcclxuICBwcml2YXRlIG1vdXNlbW92ZUxpc3RlbmVyOiBhbnk7XHJcbiAgcHJpdmF0ZSBtb3VzZXVwTGlzdGVuZXI6IGFueTtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xyXG4gICAgXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnNlYXJjaFZpZXdQb3J0YWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnLnNlYXJjaC1jb250YWluZXInKTtcclxuICAgIHRoaXMudGFiID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5zZWFyY2gtcGFuZWwtdGFiJylbMF07XHJcbiAgICB0aGlzLmRyb3Bab25lcyA9IHRoaXMuc2VhcmNoVmlld1BvcnRhbD8ucXVlcnlTZWxlY3RvckFsbCgnLnNlYXJjaC1wYW5lbC1kcm9wem9uZScpO1xyXG4gICAgdGhpcy5kcmFnSGFuZGxlcyA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuc2VhcmNoLXBhbmVsLXJlc2l6YWJsZS1oYW5kbGUnKTtcclxuXHJcbiAgICB0aGlzLmFkZFRhYkV2ZW50TGlzdGVuZXJzKCk7XHJcbiAgICB0aGlzLmFkZERyb3B6b25lRXZlbnRMaXN0ZW5lcnMoKTtcclxuICAgIHRoaXMuYWRkRHJhZ0hhbmRsZUV2ZW50TGlzdGVuZXJzKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBhZGRUYWJFdmVudExpc3RlbmVycyA9ICgpID0+IHtcclxuICAgIHRoaXMubGlzdGVuZXJzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy50YWIsICdkcmFnc3RhcnQnLCB0aGlzLmRyYWdTdGFydCkpO1xyXG4gICAgdGhpcy5saXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLnRhYiwgJ2RyYWdlbmQnLCB0aGlzLmRyYWdFbmQpKTtcclxuICB9O1xyXG5cclxuICBwcml2YXRlIGFkZERyb3B6b25lRXZlbnRMaXN0ZW5lcnMgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmRyb3Bab25lcy5mb3JFYWNoKChkcm9wWm9uZTogSFRNTEVsZW1lbnQpID0+IHtcclxuICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3Rlbihkcm9wWm9uZSwgJ2RyYWdvdmVyJywgdGhpcy5kcmFnT3ZlcikpO1xyXG4gICAgICB0aGlzLmxpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGRyb3Bab25lLCAnZHJhZ2xlYXZlJywgdGhpcy5kcmFnTGVhdmUpKTtcclxuICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3Rlbihkcm9wWm9uZSwgJ2Ryb3AnLCB0aGlzLmRyb3ApKTtcclxuICAgIH0pOyAgICBcclxuICB9O1xyXG5cclxuICBwcml2YXRlIGFkZERyYWdIYW5kbGVFdmVudExpc3RlbmVycyA9ICgpID0+IHtcclxuICAgIHRoaXMuZHJhZ0hhbmRsZXMuZm9yRWFjaCgoZHJvcEhhbmRsZTogSFRNTEVsZW1lbnQpID0+IHtcclxuICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3Rlbihkcm9wSGFuZGxlLCAnbW91c2Vkb3duJywgdGhpcy5tb3VzZWRvd24pKTtcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG5cclxuICBwcml2YXRlIGFkZFBvaW50ZXJFdmVudHMgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmRyb3Bab25lcy5mb3JFYWNoKChkcm9wWm9uZTogSFRNTEVsZW1lbnQpID0+IHtcclxuICAgICAgZHJvcFpvbmUuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdhbGwnO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbW92ZVBvaW50ZXJFdmVudHMgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmRyb3Bab25lcy5mb3JFYWNoKChkcm9wWm9uZTogSFRNTEVsZW1lbnQpID0+IHtcclxuICAgICAgZHJvcFpvbmUuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRNb3VzZW92ZXJEcm9wem9uZVN0eWxlcyA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xyXG4gICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xhc3NMaXN0LmFkZCgnbW91c2VvdmVyJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbW92ZU1vdXNlb3ZlckRyb3B6b25lU3R5bGVzID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZHJvcFpvbmVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChldmVudC50YXJnZXQgIT09IHRoaXMuZHJvcFpvbmVzW2ldKVxyXG4gICAgICAgIHRoaXMuZHJvcFpvbmVzW2ldLmNsYXNzTGlzdC5yZW1vdmUoJ21vdXNlb3ZlcicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkcmFnU3RhcnQgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgIHRoaXMuYWRkUG9pbnRlckV2ZW50cygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkcmFnRW5kID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XHJcbiAgICB0aGlzLnJlbW92ZVBvaW50ZXJFdmVudHMoKTtcclxuICAgIHRoaXMucmVtb3ZlTW91c2VvdmVyRHJvcHpvbmVTdHlsZXMoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkcmFnT3ZlciA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMuYWRkTW91c2VvdmVyRHJvcHpvbmVTdHlsZXMoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkcmFnTGVhdmUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdC5yZW1vdmUoJ21vdXNlb3ZlcicpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkcm9wID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XHJcbiAgICBpZiAoKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xhc3NMaXN0LmNvbnRhaW5zKCdsZWZ0JykpIHtcclxuICAgICAgdGhpcy5jb25maWcuc2lkZSA9ICdsZWZ0JztcclxuICAgICAgdGhpcy5jb25maWcuc2V0R3JpZFBpbm5lZFBvc2l0aW9uRm4oXHJcbiAgICAgICAgeyAncG9zaXRpb24nOiAnYWJzb2x1dGUnLCAnd2lkdGgnOiAnY2FsYygxMDAlIC0gJyArICh0aGlzLmNvbmZpZy5zaXplIC0gMjApICsgJ3B4JywgJ2xlZnQnOiAodGhpcy5jb25maWcuc2l6ZSAtIDIwKSArICdweCcsICdtYXJnaW4tbGVmdCc6ICdhdXRvJyB9XHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuY29uZmlnLnNldFRvb2xiYXJQaW5uZWRQb3NpdGlvbkZuKFxyXG4gICAgICAgIHsgJ3Bvc2l0aW9uJzogJ2Fic29sdXRlJywgJ3dpZHRoJzogJ2NhbGMoMTAwJSAtICcgKyAodGhpcy5jb25maWcuc2l6ZSAtIDIwKSArICdweCcsICdsZWZ0JzogKHRoaXMuY29uZmlnLnNpemUgLSAyMCkgKyAncHgnLCAnbWFyZ2luLWxlZnQnOiAnYXV0bycgfVxyXG4gICAgICApO1xyXG4gICAgICAvL3VzZXJQcmVmZXJlbmNlLnNldCh1c2VyUHJlZmVyZW5jZS5zZWFyY2hQYW5lbFNpZGUsICdsZWZ0Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdC5jb250YWlucygncmlnaHQnKSkge1xyXG4gICAgICB0aGlzLmNvbmZpZy5zaWRlID0gJ3JpZ2h0JztcclxuICAgICAgdGhpcy5jb25maWcuc2V0R3JpZFBpbm5lZFBvc2l0aW9uRm4oXHJcbiAgICAgICAgeyAnd2lkdGgnOiAnY2FsYygxMDAlIC0gJyArICh0aGlzLmNvbmZpZy5zaXplIC0gMjApICsgJ3B4JyB9XHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuY29uZmlnLnNldFRvb2xiYXJQaW5uZWRQb3NpdGlvbkZuKFxyXG4gICAgICAgIHsgJ3dpZHRoJzogJ2NhbGMoMTAwJSAtICcgKyAodGhpcy5jb25maWcuc2l6ZSAtIDIwKSArICdweCcgfVxyXG4gICAgICApO1xyXG4gICAgICAvL3VzZXJQcmVmZXJlbmNlLnNldCh1c2VyUHJlZmVyZW5jZS5zZWFyY2hQYW5lbFNpZGUsICdyaWdodCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVtb3ZlTW91c2VvdmVyRHJvcHpvbmVTdHlsZXMoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtb3VzZWRvd24gPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgIGlmICh0aGlzLmNvbmZpZy5waW5uZWQpIHJldHVybjtcclxuICAgIGlmICghdGhpcy5kcmFnSGFuZGxlKVxyXG4gICAgICB0aGlzLmRyYWdIYW5kbGUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcclxuICAgIHRoaXMubW91c2VPZmZzZXRYID0gZXZlbnQuY2xpZW50WDtcclxuICAgIHRoaXMubW91c2Vtb3ZlTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnbW91c2Vtb3ZlJywgdGhpcy5tb3VzZU1vdmUpO1xyXG4gICAgdGhpcy5tb3VzZXVwTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnbW91c2V1cCcsIHRoaXMubW91c2VVcCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1vdXNlTW92ZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xyXG4gICAgdmFyIG1vdXNlWCA9IGV2ZW50LnBhZ2VYIC0gdGhpcy5tb3VzZU9mZnNldFg7XHJcbiAgICB2YXIgZGlmZlggPSBtb3VzZVggLSB0aGlzLmxhc3RNb3VzZVg7XHJcbiAgICB0aGlzLmxhc3RNb3VzZVggPSBtb3VzZVg7XHJcblxyXG4gICAgdGhpcy5jdXJyZW50V2lkdGggPSB0aGlzLmNvbmZpZy5zaXplO1xyXG4gICAgdGhpcy5jdXJyZW50TWluV2lkdGggPSAxMDA7XHJcblxyXG4gICAgaWYgKHRoaXMuZHJhZ0hhbmRsZT8uY2xhc3NMaXN0LmNvbnRhaW5zKCdzZWFyY2gtcGFuZWwtcmVzaXphYmxlLXcnKSkge1xyXG4gICAgICBpZiAodGhpcy5jdXJyZW50V2lkdGggLSBkaWZmWCA8IHRoaXMuY3VycmVudE1pbldpZHRoKSB0aGlzLm1vdXNlT2Zmc2V0WCA9IHRoaXMubW91c2VPZmZzZXRYIC0gKGRpZmZYIC0gKGRpZmZYID0gdGhpcy5jdXJyZW50V2lkdGggLSB0aGlzLmN1cnJlbnRNaW5XaWR0aCkpO1xyXG4gICAgICB0aGlzLmNvbmZpZy5zaXplID0gKHRoaXMuY3VycmVudFdpZHRoIC0gZGlmZlgpO1xyXG4gICAgICB0aGlzLnVwZGF0ZVNpZGUoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRyYWdIYW5kbGU/LmNsYXNzTGlzdC5jb250YWlucygnc2VhcmNoLXBhbmVsLXJlc2l6YWJsZS1lJykpIHtcclxuICAgICAgaWYgKHRoaXMuY3VycmVudFdpZHRoICsgZGlmZlggPCB0aGlzLmN1cnJlbnRNaW5XaWR0aCkgdGhpcy5tb3VzZU9mZnNldFggPSB0aGlzLm1vdXNlT2Zmc2V0WCAtIChkaWZmWCAtIChkaWZmWCA9IHRoaXMuY3VycmVudE1pbldpZHRoIC0gdGhpcy5jdXJyZW50V2lkdGgpKTtcclxuICAgICAgdGhpcy5jb25maWcuc2l6ZSA9ICh0aGlzLmN1cnJlbnRXaWR0aCArIGRpZmZYKTtcclxuICAgICAgdGhpcy51cGRhdGVTaWRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1vdXNlVXAgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmRyYWdIYW5kbGUgPSBudWxsO1xyXG4gICAgdGhpcy5tb3VzZU9mZnNldFggPSAwO1xyXG4gICAgdGhpcy5sYXN0TW91c2VYID0gMDtcclxuXHJcbiAgICB0aGlzLm1vdXNlbW92ZUxpc3RlbmVyKCk7XHJcbiAgICB0aGlzLm1vdXNldXBMaXN0ZW5lcigpO1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlU2lkZSA9ICgpID0+IHtcclxuICAgIC8vaWYgKHRoaXMuY29uZmlnLnNpZGUgPT09ICdsZWZ0Jykge1xyXG4gICAgLy8gIHRoaXMuY29uZmlnLnNldEdyaWRQaW5uZWRQb3NpdGlvbkZuKHsgJ3Bvc2l0aW9uJzogJ2Fic29sdXRlJywgJ3dpZHRoJzogJ2NhbGMoMTAwJSAtICcgKyAodGhpcy5jb25maWcuc2l6ZSAtIDIwKSArICdweCcsICdsZWZ0JzogKHRoaXMuY29uZmlnLnNpemUgLSAyMCkgKyAncHgnLCAnbWFyZ2luLWxlZnQnOiAnYXV0bycgfSk7XHJcbiAgICAvLyAgdGhpcy5jb25maWcuc2V0VG9vbGJhclBpbm5lZFBvc2l0aW9uRm4oeyAncG9zaXRpb24nOiAnYWJzb2x1dGUnLCAnd2lkdGgnOiAnY2FsYygxMDAlIC0gJyArICh0aGlzLmNvbmZpZy5zaXplIC0gMjApICsgJ3B4JywgJ2xlZnQnOiAodGhpcy5jb25maWcuc2l6ZSAtIDIwKSArICdweCcsICdtYXJnaW4tbGVmdCc6ICdhdXRvJyB9KTtcclxuICAgIC8vfVxyXG4gICAgLy9pZiAodGhpcy5jb25maWcuc2lkZSA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgLy8gIHRoaXMuY29uZmlnLnNldEdyaWRQaW5uZWRQb3NpdGlvbkZuKHsgJ3dpZHRoJzogJ2NhbGMoMTAwJSAtICcgKyAodGhpcy5jb25maWcuc2l6ZSAtIDIwKSArICdweCcgfSk7XHJcbiAgICAvLyAgdGhpcy5jb25maWcuc2V0VG9vbGJhclBpbm5lZFBvc2l0aW9uRm4oeyAnd2lkdGgnOiAnY2FsYygxMDAlIC0gJyArICh0aGlzLmNvbmZpZy5zaXplIC0gMjApICsgJ3B4JyB9KTtcclxuICAgIC8vfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmxpc3RlbmVycy5mb3JFYWNoKGZuID0+IGZuKCkpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,41 @@
1
+ import { Injectable, EventEmitter } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class TruSearchGroupEventHandler {
5
+ constructor() {
6
+ this.search$ = new EventEmitter();
7
+ this.filter$ = new EventEmitter();
8
+ this.clear$ = new BehaviorSubject(null);
9
+ this.default$ = new BehaviorSubject(null);
10
+ }
11
+ onSearch() {
12
+ return this.search$;
13
+ }
14
+ onFilter() {
15
+ return this.filter$;
16
+ }
17
+ onClearValues() {
18
+ return this.clear$;
19
+ }
20
+ onSetDefaults() {
21
+ return this.default$;
22
+ }
23
+ search(entityQuery) {
24
+ this.search$.emit(entityQuery);
25
+ }
26
+ filter(entityQuery) {
27
+ this.filter$.emit(entityQuery);
28
+ }
29
+ clearValues() {
30
+ this.clear$.next(null);
31
+ }
32
+ setDefaults() {
33
+ this.default$.next(null);
34
+ }
35
+ }
36
+ TruSearchGroupEventHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruSearchGroupEventHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
37
+ TruSearchGroupEventHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruSearchGroupEventHandler });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruSearchGroupEventHandler, decorators: [{
39
+ type: Injectable
40
+ }] });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXNlYXJjaC1ncm91cC1ldmVudC1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9ldmVudC1oYW5kbGVycy90cnUtc2VhcmNoLWdyb3VwLWV2ZW50LWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHdkMsTUFBTSxPQUFPLDBCQUEwQjtJQUR2QztRQUVVLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNyRCxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDckQsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBQ3hDLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztLQWlDbkQ7SUEvQkMsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQWdCO1FBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBZ0I7UUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7O3VIQXBDVSwwQkFBMEI7MkhBQTFCLDBCQUEwQjsyRkFBMUIsMEJBQTBCO2tCQUR0QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgRXZlbnRFbWl0dGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBUcnVTZWFyY2hHcm91cEV2ZW50SGFuZGxlciB7XHJcbiAgcHJpdmF0ZSBzZWFyY2gkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIHByaXZhdGUgZmlsdGVyJDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBwcml2YXRlIGNsZWFyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuICBwcml2YXRlIGRlZmF1bHQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG5cclxuICBvblNlYXJjaCgpIHtcclxuICAgIHJldHVybiB0aGlzLnNlYXJjaCQ7XHJcbiAgfVxyXG5cclxuICBvbkZpbHRlcigpIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlciQ7XHJcbiAgfVxyXG5cclxuICBvbkNsZWFyVmFsdWVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY2xlYXIkO1xyXG4gIH1cclxuXHJcbiAgb25TZXREZWZhdWx0cygpIHtcclxuICAgIHJldHVybiB0aGlzLmRlZmF1bHQkO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoKGVudGl0eVF1ZXJ5OiBhbnkpIHtcclxuICAgIHRoaXMuc2VhcmNoJC5lbWl0KGVudGl0eVF1ZXJ5KTtcclxuICB9XHJcblxyXG4gIGZpbHRlcihlbnRpdHlRdWVyeTogYW55KSB7XHJcbiAgICB0aGlzLmZpbHRlciQuZW1pdChlbnRpdHlRdWVyeSk7XHJcbiAgfVxyXG5cclxuICBjbGVhclZhbHVlcygpIHtcclxuICAgIHRoaXMuY2xlYXIkLm5leHQobnVsbCk7XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0cygpIHtcclxuICAgIHRoaXMuZGVmYXVsdCQubmV4dChudWxsKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,20 @@
1
+ import { Injectable } from "@angular/core";
2
+ import { BehaviorSubject } from "rxjs";
3
+ import * as i0 from "@angular/core";
4
+ export class TruSearchViewEventHandler {
5
+ constructor() {
6
+ this.search$ = new BehaviorSubject(null);
7
+ }
8
+ search(query) {
9
+ this.search$.next(query);
10
+ }
11
+ onSearch() {
12
+ return this.search$.asObservable();
13
+ }
14
+ }
15
+ TruSearchViewEventHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruSearchViewEventHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16
+ TruSearchViewEventHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruSearchViewEventHandler });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruSearchViewEventHandler, decorators: [{
18
+ type: Injectable
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXNlYXJjaC12aWV3LWV2ZW50LWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2V2ZW50LWhhbmRsZXJzL3RydS1zZWFyY2gtdmlldy1ldmVudC1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHdkMsTUFBTSxPQUFPLHlCQUF5QjtJQUR0QztRQUdVLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztLQVNsRDtJQVBDLE1BQU0sQ0FBQyxLQUFVO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDMUIsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckMsQ0FBQzs7c0hBVlUseUJBQXlCOzBIQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVHJ1U2VhcmNoVmlld0V2ZW50SGFuZGxlciB7XHJcblxyXG4gIHByaXZhdGUgc2VhcmNoJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuXHJcbiAgc2VhcmNoKHF1ZXJ5OiBhbnkpIHtcclxuICAgIHRoaXMuc2VhcmNoJC5uZXh0KHF1ZXJ5KVxyXG4gIH1cclxuXHJcbiAgb25TZWFyY2goKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWFyY2gkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,114 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TruSort {
4
+ constructor() {
5
+ /**
6
+ * @callback differenceCallback
7
+ * @param {*} valueA - any value except for undefined or null
8
+ * @param {*} valueB - any value except for undefined or null
9
+ * @return {number} - <0 for a sorts before b, 0 for a sorts same as b, >0 for a sorts after b.
10
+ */
11
+ /**
12
+ * A generalized comparison algorithm for use with a sort function. Ensures that null
13
+ * sorts before non-null. Delegates to difference() for both non-null values.
14
+ * @param {*} valueA - any value except for undefined
15
+ * @param {*} valueB - any value except for undefined
16
+ * @param {differenceCallback} difference - same result meaning as for this function.
17
+ * @return {number} - <0 for a sorts before b, 0 for a sorts same as b, >0 for a sorts after b.
18
+ */
19
+ this.numCompare = (valueA, valueB, difference) => {
20
+ if (valueA === null || isNaN(valueA))
21
+ return valueB === null ? 0 : -1;
22
+ else if (valueB === null || isNaN(valueB))
23
+ return 1;
24
+ return difference(valueA, valueB);
25
+ };
26
+ this.compare = (valueA, valueB, difference, inverted = false) => {
27
+ if (inverted) {
28
+ if (valueA < 0)
29
+ return 1;
30
+ if (valueB < 0)
31
+ return -1;
32
+ }
33
+ else {
34
+ if (valueA < 0)
35
+ return -1;
36
+ if (valueB < 0)
37
+ return 1;
38
+ }
39
+ if (valueA === null)
40
+ return valueB === null ? 0 : -1;
41
+ else if (valueB === null)
42
+ return 1;
43
+ return difference(valueA, valueB);
44
+ };
45
+ /**
46
+ * Sort comparison for unnamed, number field control config objects.
47
+ * @param {object} a,b - control config
48
+ * @returns {number}
49
+ */
50
+ this.numberCompare = (a, b) => {
51
+ return this.numCompare(a, b, function (x, y) { return x - y; });
52
+ };
53
+ /**
54
+ * Alphabetical sort comparison for unnamed, string field control config objects.
55
+ * @param {object} a,b - control config
56
+ * @returns {number}
57
+ */
58
+ this.textCompare = (a, b) => {
59
+ return this.compare(a, b, function (x, y) { return x.localeCompare(y); });
60
+ };
61
+ this.dateCompare = (a, b) => {
62
+ return this.compare(new Date(a), new Date(b), function (x, y) { return x - y; });
63
+ };
64
+ /**
65
+ * @callback filterCallback
66
+ * @param {object} a,b - Control config
67
+ * @returns {string}
68
+ */
69
+ /**
70
+ * Alphabetical sort comparison for strings. Both input values are control config
71
+ * objects and passed to a filter function to obtain a value for comparison.
72
+ * @param {object} a,b - control config
73
+ * @param {filterCallback} filter - filter function
74
+ * @returns {number}
75
+ */
76
+ this.filteredTextCompare = (a, b, filter) => {
77
+ return this.compare(filter(a), filter(b), function (x, y) { return x.localeCompare(y); });
78
+ };
79
+ /**
80
+ * Alphabetical sort comparison for strings. Both input values are control config
81
+ * objects and passed to a filter function to obtain a value for comparison.
82
+ * @param {object} entity - a breeze $entity
83
+ * @param {array} pathSegments - a list of strings that make up a navigation path
84
+ * @returns {value}
85
+ */
86
+ this.getValueFromSortPath = (entity, pathSegments) => {
87
+ var current = entity;
88
+ for (var i = 0; i < pathSegments.length; i++) {
89
+ var partName;
90
+ // if we're not on the last iteration then
91
+ if (i != pathSegments.length - 1)
92
+ partName = 'o' + pathSegments[i];
93
+ else
94
+ partName = pathSegments[i];
95
+ if (current[partName]) {
96
+ current = current[partName];
97
+ }
98
+ else {
99
+ return null;
100
+ }
101
+ }
102
+ return current;
103
+ };
104
+ }
105
+ }
106
+ TruSort.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruSort, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
107
+ TruSort.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruSort, providedIn: 'root' });
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: TruSort, decorators: [{
109
+ type: Injectable,
110
+ args: [{
111
+ providedIn: 'root',
112
+ }]
113
+ }], ctorParameters: function () { return []; } });
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXNvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL3NlcnZpY2VzL3RydS1zb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxPQUFPO0lBRWxCO1FBRUE7Ozs7O1lBS0k7UUFFSjs7Ozs7OztZQU9JO1FBQ0osZUFBVSxHQUFHLENBQUMsTUFBVyxFQUFFLE1BQVcsRUFBRSxVQUFlLEVBQUUsRUFBRTtZQUN6RCxJQUFJLE1BQU0sS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQztnQkFDbEMsT0FBTyxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUM3QixJQUFJLE1BQU0sS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQztnQkFDdkMsT0FBTyxDQUFDLENBQUM7WUFDWCxPQUFPLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFBO1FBRUQsWUFBTyxHQUFHLENBQUMsTUFBVyxFQUFFLE1BQVcsRUFBRSxVQUFlLEVBQUUsV0FBb0IsS0FBSyxFQUFFLEVBQUU7WUFDakYsSUFBSSxRQUFRLEVBQUU7Z0JBQ1osSUFBSSxNQUFNLEdBQUcsQ0FBQztvQkFDWixPQUFPLENBQUMsQ0FBQztnQkFDWCxJQUFJLE1BQU0sR0FBRyxDQUFDO29CQUNaLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDYjtpQkFBTTtnQkFDTCxJQUFJLE1BQU0sR0FBRyxDQUFDO29CQUNaLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ1osSUFBSSxNQUFNLEdBQUcsQ0FBQztvQkFDWixPQUFPLENBQUMsQ0FBQzthQUNaO1lBQ0QsSUFBSSxNQUFNLEtBQUssSUFBSTtnQkFDakIsT0FBTyxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUM3QixJQUFJLE1BQU0sS0FBSyxJQUFJO2dCQUN0QixPQUFPLENBQUMsQ0FBQztZQUNYLE9BQU8sVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUE7UUFFRDs7OztXQUlHO1FBQ0gsa0JBQWEsR0FBRyxDQUFDLENBQU0sRUFBRSxDQUFNLEVBQUUsRUFBRTtZQUNqQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQU0sRUFBRSxDQUFNLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUUsQ0FBQyxDQUFDO1FBRUY7Ozs7V0FJRztRQUNILGdCQUFXLEdBQUcsQ0FBQyxDQUFNLEVBQUUsQ0FBTSxFQUFFLEVBQUU7WUFDL0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFNLEVBQUUsQ0FBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLENBQUMsQ0FBQztRQUVGLGdCQUFXLEdBQUcsQ0FBQyxDQUFNLEVBQUUsQ0FBTSxFQUFFLEVBQUU7WUFDL0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBTSxFQUFFLENBQU0sSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RixDQUFDLENBQUM7UUFFRjs7OztXQUlHO1FBRUg7Ozs7OztXQU1HO1FBQ0gsd0JBQW1CLEdBQUcsQ0FBQyxDQUFNLEVBQUUsQ0FBTSxFQUFFLE1BQVcsRUFBRSxFQUFFO1lBQ3BELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBTSxFQUFFLENBQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RyxDQUFDLENBQUM7UUFHRjs7Ozs7O1VBTUU7UUFDRix5QkFBb0IsR0FBRyxDQUFDLE1BQVcsRUFBRSxZQUFpQixFQUFFLEVBQUU7WUFDeEQsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDO1lBQ3JCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUM1QyxJQUFJLFFBQVEsQ0FBQztnQkFDYiwwQ0FBMEM7Z0JBQzFDLElBQUksQ0FBQyxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQztvQkFDOUIsUUFBUSxHQUFHLEdBQUcsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7O29CQUVqQyxRQUFRLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUU3QixJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDckIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDN0I7cUJBQU07b0JBQ0wsT0FBTyxJQUFJLENBQUM7aUJBQ2I7YUFDRjtZQUNELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUMsQ0FBQTtJQTVHZSxDQUFDOztvR0FGTixPQUFPO3dHQUFQLE9BQU8sY0FGTixNQUFNOzJGQUVQLE9BQU87a0JBSG5CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRydVNvcnQge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICAvKipcclxuICAgICogQGNhbGxiYWNrIGRpZmZlcmVuY2VDYWxsYmFja1xyXG4gICAgKiBAcGFyYW0geyp9IHZhbHVlQSAtIGFueSB2YWx1ZSBleGNlcHQgZm9yIHVuZGVmaW5lZCBvciBudWxsXHJcbiAgICAqIEBwYXJhbSB7Kn0gdmFsdWVCIC0gYW55IHZhbHVlIGV4Y2VwdCBmb3IgdW5kZWZpbmVkIG9yIG51bGxcclxuICAgICogQHJldHVybiB7bnVtYmVyfSAtIDwwIGZvciBhIHNvcnRzIGJlZm9yZSBiLCAwIGZvciBhIHNvcnRzIHNhbWUgYXMgYiwgPjAgZm9yIGEgc29ydHMgYWZ0ZXIgYi5cclxuICAgICovXHJcblxyXG4gIC8qKlxyXG4gICAgKiBBIGdlbmVyYWxpemVkIGNvbXBhcmlzb24gYWxnb3JpdGhtIGZvciB1c2Ugd2l0aCBhIHNvcnQgZnVuY3Rpb24uICBFbnN1cmVzIHRoYXQgbnVsbFxyXG4gICAgKiBzb3J0cyBiZWZvcmUgbm9uLW51bGwuICBEZWxlZ2F0ZXMgdG8gZGlmZmVyZW5jZSgpIGZvciBib3RoIG5vbi1udWxsIHZhbHVlcy5cclxuICAgICogQHBhcmFtIHsqfSB2YWx1ZUEgLSBhbnkgdmFsdWUgZXhjZXB0IGZvciB1bmRlZmluZWRcclxuICAgICogQHBhcmFtIHsqfSB2YWx1ZUIgLSBhbnkgdmFsdWUgZXhjZXB0IGZvciB1bmRlZmluZWRcclxuICAgICogQHBhcmFtIHtkaWZmZXJlbmNlQ2FsbGJhY2t9IGRpZmZlcmVuY2UgLSBzYW1lIHJlc3VsdCBtZWFuaW5nIGFzIGZvciB0aGlzIGZ1bmN0aW9uLlxyXG4gICAgKiBAcmV0dXJuIHtudW1iZXJ9IC0gPDAgZm9yIGEgc29ydHMgYmVmb3JlIGIsIDAgZm9yIGEgc29ydHMgc2FtZSBhcyBiLCA+MCBmb3IgYSBzb3J0cyBhZnRlciBiLlxyXG4gICAgKi9cclxuICBudW1Db21wYXJlID0gKHZhbHVlQTogYW55LCB2YWx1ZUI6IGFueSwgZGlmZmVyZW5jZTogYW55KSA9PiB7XHJcbiAgICBpZiAodmFsdWVBID09PSBudWxsIHx8IGlzTmFOKHZhbHVlQSkpXHJcbiAgICAgIHJldHVybiB2YWx1ZUIgPT09IG51bGwgPyAwIDogLTE7XHJcbiAgICBlbHNlIGlmICh2YWx1ZUIgPT09IG51bGwgfHwgaXNOYU4odmFsdWVCKSlcclxuICAgICAgcmV0dXJuIDE7XHJcbiAgICByZXR1cm4gZGlmZmVyZW5jZSh2YWx1ZUEsIHZhbHVlQik7XHJcbiAgfVxyXG5cclxuICBjb21wYXJlID0gKHZhbHVlQTogYW55LCB2YWx1ZUI6IGFueSwgZGlmZmVyZW5jZTogYW55LCBpbnZlcnRlZDogYm9vbGVhbiA9IGZhbHNlKSA9PiB7XHJcbiAgICBpZiAoaW52ZXJ0ZWQpIHtcclxuICAgICAgaWYgKHZhbHVlQSA8IDApXHJcbiAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgIGlmICh2YWx1ZUIgPCAwKVxyXG4gICAgICAgIHJldHVybiAtMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh2YWx1ZUEgPCAwKVxyXG4gICAgICAgIHJldHVybiAtMTtcclxuICAgICAgaWYgKHZhbHVlQiA8IDApXHJcbiAgICAgICAgcmV0dXJuIDE7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWVBID09PSBudWxsKVxyXG4gICAgICByZXR1cm4gdmFsdWVCID09PSBudWxsID8gMCA6IC0xO1xyXG4gICAgZWxzZSBpZiAodmFsdWVCID09PSBudWxsKVxyXG4gICAgICByZXR1cm4gMTtcclxuICAgIHJldHVybiBkaWZmZXJlbmNlKHZhbHVlQSwgdmFsdWVCKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNvcnQgY29tcGFyaXNvbiBmb3IgdW5uYW1lZCwgbnVtYmVyIGZpZWxkIGNvbnRyb2wgY29uZmlnIG9iamVjdHMuXHJcbiAgICogQHBhcmFtIHtvYmplY3R9IGEsYiAtIGNvbnRyb2wgY29uZmlnXHJcbiAgICogQHJldHVybnMge251bWJlcn1cclxuICAgKi9cclxuICBudW1iZXJDb21wYXJlID0gKGE6IGFueSwgYjogYW55KSA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5udW1Db21wYXJlKGEsIGIsIGZ1bmN0aW9uICh4OiBhbnksIHk6IGFueSkgeyByZXR1cm4geCAtIHk7IH0pO1xyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIEFscGhhYmV0aWNhbCBzb3J0IGNvbXBhcmlzb24gZm9yIHVubmFtZWQsIHN0cmluZyBmaWVsZCBjb250cm9sIGNvbmZpZyBvYmplY3RzLlxyXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhLGIgLSBjb250cm9sIGNvbmZpZ1xyXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9XHJcbiAgICovXHJcbiAgdGV4dENvbXBhcmUgPSAoYTogYW55LCBiOiBhbnkpID0+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbXBhcmUoYSwgYiwgZnVuY3Rpb24gKHg6IGFueSwgeTogYW55KSB7IHJldHVybiB4LmxvY2FsZUNvbXBhcmUoeSk7IH0pO1xyXG4gIH07XHJcblxyXG4gIGRhdGVDb21wYXJlID0gKGE6IGFueSwgYjogYW55KSA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21wYXJlKG5ldyBEYXRlKGEpLCBuZXcgRGF0ZShiKSwgZnVuY3Rpb24gKHg6IGFueSwgeTogYW55KSB7IHJldHVybiB4IC0geTsgfSk7XHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogQGNhbGxiYWNrIGZpbHRlckNhbGxiYWNrXHJcbiAgICogQHBhcmFtIHtvYmplY3R9IGEsYiAtIENvbnRyb2wgY29uZmlnXHJcbiAgICogQHJldHVybnMge3N0cmluZ30gXHJcbiAgICovXHJcblxyXG4gIC8qKlxyXG4gICAqIEFscGhhYmV0aWNhbCBzb3J0IGNvbXBhcmlzb24gZm9yIHN0cmluZ3MuICBCb3RoIGlucHV0IHZhbHVlcyBhcmUgY29udHJvbCBjb25maWcgXHJcbiAgICogb2JqZWN0cyBhbmQgcGFzc2VkIHRvIGEgZmlsdGVyIGZ1bmN0aW9uIHRvIG9idGFpbiBhIHZhbHVlIGZvciBjb21wYXJpc29uLlxyXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhLGIgLSBjb250cm9sIGNvbmZpZ1xyXG4gICAqIEBwYXJhbSB7ZmlsdGVyQ2FsbGJhY2t9IGZpbHRlciAtIGZpbHRlciBmdW5jdGlvblxyXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9XHJcbiAgICovXHJcbiAgZmlsdGVyZWRUZXh0Q29tcGFyZSA9IChhOiBhbnksIGI6IGFueSwgZmlsdGVyOiBhbnkpID0+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZmlsdGVyKGEpLCBmaWx0ZXIoYiksIGZ1bmN0aW9uICh4OiBhbnksIHk6IGFueSkgeyByZXR1cm4geC5sb2NhbGVDb21wYXJlKHkpOyB9KTtcclxuICB9O1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgKiBBbHBoYWJldGljYWwgc29ydCBjb21wYXJpc29uIGZvciBzdHJpbmdzLiAgQm90aCBpbnB1dCB2YWx1ZXMgYXJlIGNvbnRyb2wgY29uZmlnIFxyXG4gICogb2JqZWN0cyBhbmQgcGFzc2VkIHRvIGEgZmlsdGVyIGZ1bmN0aW9uIHRvIG9idGFpbiBhIHZhbHVlIGZvciBjb21wYXJpc29uLlxyXG4gICogQHBhcmFtIHtvYmplY3R9IGVudGl0eSAtIGEgYnJlZXplICRlbnRpdHlcclxuICAqIEBwYXJhbSB7YXJyYXl9IHBhdGhTZWdtZW50cyAtIGEgbGlzdCBvZiBzdHJpbmdzIHRoYXQgbWFrZSB1cCBhIG5hdmlnYXRpb24gcGF0aFxyXG4gICogQHJldHVybnMge3ZhbHVlfVxyXG4gICovXHJcbiAgZ2V0VmFsdWVGcm9tU29ydFBhdGggPSAoZW50aXR5OiBhbnksIHBhdGhTZWdtZW50czogYW55KSA9PiB7XHJcbiAgICB2YXIgY3VycmVudCA9IGVudGl0eTtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGF0aFNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBwYXJ0TmFtZTtcclxuICAgICAgLy8gaWYgd2UncmUgbm90IG9uIHRoZSBsYXN0IGl0ZXJhdGlvbiB0aGVuXHJcbiAgICAgIGlmIChpICE9IHBhdGhTZWdtZW50cy5sZW5ndGggLSAxKVxyXG4gICAgICAgIHBhcnROYW1lID0gJ28nICsgcGF0aFNlZ21lbnRzW2ldO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgcGFydE5hbWUgPSBwYXRoU2VnbWVudHNbaV07XHJcblxyXG4gICAgICBpZiAoY3VycmVudFtwYXJ0TmFtZV0pIHtcclxuICAgICAgICBjdXJyZW50ID0gY3VycmVudFtwYXJ0TmFtZV07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjdXJyZW50O1xyXG4gIH1cclxufVxyXG4iXX0=