@progress-chef/platform-shared-components 0.0.1

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 (197) hide show
  1. package/README.md +30 -0
  2. package/assets/IconFont.css +68 -0
  3. package/assets/IconFont.scss +68 -0
  4. package/assets/IconFont.ttf +0 -0
  5. package/assets/IconFont.woff +0 -0
  6. package/assets/IconFont.woff2 +0 -0
  7. package/esm2022/lib/atoms/alert/alert.component.mjs +37 -0
  8. package/esm2022/lib/atoms/alert/alert.module.mjs +20 -0
  9. package/esm2022/lib/atoms/angular-popup/angular-popup.component.mjs +35 -0
  10. package/esm2022/lib/atoms/angular-popup/angular-popup.module.mjs +36 -0
  11. package/esm2022/lib/atoms/atoms.module.mjs +234 -0
  12. package/esm2022/lib/atoms/avatar/avatar.component.mjs +62 -0
  13. package/esm2022/lib/atoms/avatar/avatar.module.mjs +20 -0
  14. package/esm2022/lib/atoms/breadcrumb/breadcrumb.component.mjs +59 -0
  15. package/esm2022/lib/atoms/breadcrumb/breadcrumb.module.mjs +36 -0
  16. package/esm2022/lib/atoms/button/button.component.mjs +72 -0
  17. package/esm2022/lib/atoms/button/button.module.mjs +21 -0
  18. package/esm2022/lib/atoms/button-group/button-group.component.mjs +52 -0
  19. package/esm2022/lib/atoms/button-group/button-group.module.mjs +21 -0
  20. package/esm2022/lib/atoms/checkbox/checkbox.component.mjs +45 -0
  21. package/esm2022/lib/atoms/checkbox/checkbox.module.mjs +32 -0
  22. package/esm2022/lib/atoms/clipboard/clipboard.component.mjs +104 -0
  23. package/esm2022/lib/atoms/clipboard/clipboard.module.mjs +32 -0
  24. package/esm2022/lib/atoms/container/container.component.mjs +29 -0
  25. package/esm2022/lib/atoms/container/container.module.mjs +22 -0
  26. package/esm2022/lib/atoms/dropdown/dropdown.component.mjs +102 -0
  27. package/esm2022/lib/atoms/dropdown/dropdown.module.mjs +39 -0
  28. package/esm2022/lib/atoms/dropdowntree/dropdowntree.component.mjs +103 -0
  29. package/esm2022/lib/atoms/dropdowntree/dropdowntree.module.mjs +43 -0
  30. package/esm2022/lib/atoms/expansion-panel/expansion-panel.component.mjs +38 -0
  31. package/esm2022/lib/atoms/expansion-panel/expansion-panel.module.mjs +56 -0
  32. package/esm2022/lib/atoms/icon/icon.component.mjs +24 -0
  33. package/esm2022/lib/atoms/icon/icon.module.mjs +17 -0
  34. package/esm2022/lib/atoms/label/label.component.mjs +26 -0
  35. package/esm2022/lib/atoms/label/label.module.mjs +20 -0
  36. package/esm2022/lib/atoms/loading-spinner/loading-spinner.component.mjs +26 -0
  37. package/esm2022/lib/atoms/loading-spinner/loading-spinner.module.mjs +18 -0
  38. package/esm2022/lib/atoms/multi-select-dropdown/multi-select-dropdown.component.mjs +101 -0
  39. package/esm2022/lib/atoms/multi-select-dropdown/multi-select-dropdown.module.mjs +39 -0
  40. package/esm2022/lib/atoms/notification/notification.component.mjs +69 -0
  41. package/esm2022/lib/atoms/notification/notification.module.mjs +20 -0
  42. package/esm2022/lib/atoms/numeric-textbox/numeric-textbox.component.mjs +80 -0
  43. package/esm2022/lib/atoms/numeric-textbox/numeric-textbox.module.mjs +35 -0
  44. package/esm2022/lib/atoms/progress-bar/progress-bar.component.mjs +20 -0
  45. package/esm2022/lib/atoms/progress-bar/progress-bar.module.mjs +24 -0
  46. package/esm2022/lib/atoms/radio-button/radio-button.component.mjs +51 -0
  47. package/esm2022/lib/atoms/radio-button/radio-button.module.mjs +39 -0
  48. package/esm2022/lib/atoms/report-summary/report-summary.component.mjs +47 -0
  49. package/esm2022/lib/atoms/report-summary/report-summary.module.mjs +24 -0
  50. package/esm2022/lib/atoms/search-box/search-box.component.mjs +108 -0
  51. package/esm2022/lib/atoms/search-box/search-box.module.mjs +36 -0
  52. package/esm2022/lib/atoms/slider/slider.component.mjs +58 -0
  53. package/esm2022/lib/atoms/slider/slider.module.mjs +28 -0
  54. package/esm2022/lib/atoms/text-area/text-area.component.mjs +43 -0
  55. package/esm2022/lib/atoms/text-area/text-area.module.mjs +28 -0
  56. package/esm2022/lib/atoms/textbox/textbox.component.mjs +102 -0
  57. package/esm2022/lib/atoms/textbox/textbox.module.mjs +21 -0
  58. package/esm2022/lib/atoms/timescheduler/timescheduler.component.mjs +62 -0
  59. package/esm2022/lib/atoms/timescheduler/timescheduler.module.mjs +31 -0
  60. package/esm2022/lib/atoms/toast-notification/toast-notification.module.mjs +19 -0
  61. package/esm2022/lib/atoms/toast-notification/toast-notification.service.mjs +45 -0
  62. package/esm2022/lib/atoms/tooltip/tooltip.component.mjs +35 -0
  63. package/esm2022/lib/atoms/tooltip/tooltip.module.mjs +20 -0
  64. package/esm2022/lib/atoms/typography/TypographyType.mjs +2 -0
  65. package/esm2022/lib/atoms/typography/typography.component.mjs +97 -0
  66. package/esm2022/lib/atoms/typography/typography.module.mjs +24 -0
  67. package/esm2022/lib/molecules/card/card-actions/card-actions.component.mjs +21 -0
  68. package/esm2022/lib/molecules/card/card-body/card-body.component.mjs +14 -0
  69. package/esm2022/lib/molecules/card/card-footer/card-footer.component.mjs +14 -0
  70. package/esm2022/lib/molecules/card/card-header/card-header.component.mjs +32 -0
  71. package/esm2022/lib/molecules/card/card.component.mjs +21 -0
  72. package/esm2022/lib/molecules/card/card.module.mjs +44 -0
  73. package/esm2022/lib/molecules/dialog/dialog-actions/dialog-actions.component.mjs +18 -0
  74. package/esm2022/lib/molecules/dialog/dialog-titlebar/dialog-titlebar.component.mjs +41 -0
  75. package/esm2022/lib/molecules/dialog/dialog.component.mjs +52 -0
  76. package/esm2022/lib/molecules/dialog/dialog.module.mjs +40 -0
  77. package/esm2022/lib/molecules/grid/grid-form/grid-form.component.mjs +112 -0
  78. package/esm2022/lib/molecules/grid/grid-spacer/grid-spacer.component.mjs +15 -0
  79. package/esm2022/lib/molecules/grid/grid.component.mjs +278 -0
  80. package/esm2022/lib/molecules/grid/grid.module.mjs +61 -0
  81. package/esm2022/lib/molecules/grid-layout/grid-layout-item/grid-layout-item.component.mjs +39 -0
  82. package/esm2022/lib/molecules/grid-layout/grid-layout.component.mjs +34 -0
  83. package/esm2022/lib/molecules/grid-layout/grid-layout.module.mjs +33 -0
  84. package/esm2022/lib/molecules/grid-pagination/grid-pagination-spacer/grid-pagination-spacer.component.mjs +15 -0
  85. package/esm2022/lib/molecules/grid-pagination/grid-pagination.component.mjs +380 -0
  86. package/esm2022/lib/molecules/grid-pagination/grid-pagination.module.mjs +69 -0
  87. package/esm2022/lib/molecules/grid-pagination/kebab-menu-filter.pipe.mjs +22 -0
  88. package/esm2022/lib/molecules/molecules.module.mjs +74 -0
  89. package/esm2022/lib/molecules/sidebar/layout/layout.model.mjs +2 -0
  90. package/esm2022/lib/molecules/sidebar/sidebar.component.mjs +43 -0
  91. package/esm2022/lib/molecules/sidebar/sidebar.module.mjs +32 -0
  92. package/esm2022/lib/molecules/tabstrip/tabstrip-tab/tabstrip-tab.component.mjs +25 -0
  93. package/esm2022/lib/molecules/tabstrip/tabstrip.component.mjs +37 -0
  94. package/esm2022/lib/molecules/tabstrip/tabstrip.module.mjs +33 -0
  95. package/esm2022/lib/shared.component.mjs +16 -0
  96. package/esm2022/lib/shared.module.mjs +40 -0
  97. package/esm2022/lib/shared.service.mjs +14 -0
  98. package/esm2022/lib/style-tokens/style-tokens.module.mjs +18 -0
  99. package/esm2022/progress-chef-platform-shared-components.mjs +5 -0
  100. package/esm2022/public-api.mjs +98 -0
  101. package/fesm2022/progress-chef-platform-shared-components.mjs +3970 -0
  102. package/fesm2022/progress-chef-platform-shared-components.mjs.map +1 -0
  103. package/index.d.ts +5 -0
  104. package/lib/atoms/alert/alert.component.d.ts +19 -0
  105. package/lib/atoms/alert/alert.module.d.ts +8 -0
  106. package/lib/atoms/angular-popup/angular-popup.component.d.ts +16 -0
  107. package/lib/atoms/angular-popup/angular-popup.module.d.ts +11 -0
  108. package/lib/atoms/atoms.module.d.ts +38 -0
  109. package/lib/atoms/avatar/avatar.component.d.ts +21 -0
  110. package/lib/atoms/avatar/avatar.module.d.ts +10 -0
  111. package/lib/atoms/breadcrumb/breadcrumb.component.d.ts +18 -0
  112. package/lib/atoms/breadcrumb/breadcrumb.module.d.ts +12 -0
  113. package/lib/atoms/button/button.component.d.ts +26 -0
  114. package/lib/atoms/button/button.module.d.ts +11 -0
  115. package/lib/atoms/button-group/button-group.component.d.ts +21 -0
  116. package/lib/atoms/button-group/button-group.module.d.ts +11 -0
  117. package/lib/atoms/checkbox/checkbox.component.d.ts +20 -0
  118. package/lib/atoms/checkbox/checkbox.module.d.ts +11 -0
  119. package/lib/atoms/clipboard/clipboard.component.d.ts +33 -0
  120. package/lib/atoms/clipboard/clipboard.module.d.ts +11 -0
  121. package/lib/atoms/container/container.component.d.ts +12 -0
  122. package/lib/atoms/container/container.module.d.ts +8 -0
  123. package/lib/atoms/dropdown/dropdown.component.d.ts +38 -0
  124. package/lib/atoms/dropdown/dropdown.module.d.ts +11 -0
  125. package/lib/atoms/dropdowntree/dropdowntree.component.d.ts +36 -0
  126. package/lib/atoms/dropdowntree/dropdowntree.module.d.ts +12 -0
  127. package/lib/atoms/expansion-panel/expansion-panel.component.d.ts +16 -0
  128. package/lib/atoms/expansion-panel/expansion-panel.module.d.ts +17 -0
  129. package/lib/atoms/icon/icon.component.d.ts +13 -0
  130. package/lib/atoms/icon/icon.module.d.ts +7 -0
  131. package/lib/atoms/label/label.component.d.ts +14 -0
  132. package/lib/atoms/label/label.module.d.ts +10 -0
  133. package/lib/atoms/loading-spinner/loading-spinner.component.d.ts +13 -0
  134. package/lib/atoms/loading-spinner/loading-spinner.module.d.ts +8 -0
  135. package/lib/atoms/multi-select-dropdown/multi-select-dropdown.component.d.ts +37 -0
  136. package/lib/atoms/multi-select-dropdown/multi-select-dropdown.module.d.ts +11 -0
  137. package/lib/atoms/notification/notification.component.d.ts +24 -0
  138. package/lib/atoms/notification/notification.module.d.ts +8 -0
  139. package/lib/atoms/numeric-textbox/numeric-textbox.component.d.ts +30 -0
  140. package/lib/atoms/numeric-textbox/numeric-textbox.module.d.ts +10 -0
  141. package/lib/atoms/progress-bar/progress-bar.component.d.ts +11 -0
  142. package/lib/atoms/progress-bar/progress-bar.module.d.ts +8 -0
  143. package/lib/atoms/radio-button/radio-button.component.d.ts +21 -0
  144. package/lib/atoms/radio-button/radio-button.module.d.ts +11 -0
  145. package/lib/atoms/report-summary/report-summary.component.d.ts +23 -0
  146. package/lib/atoms/report-summary/report-summary.module.d.ts +8 -0
  147. package/lib/atoms/search-box/search-box.component.d.ts +37 -0
  148. package/lib/atoms/search-box/search-box.module.d.ts +12 -0
  149. package/lib/atoms/slider/slider.component.d.ts +18 -0
  150. package/lib/atoms/slider/slider.module.d.ts +9 -0
  151. package/lib/atoms/text-area/text-area.component.d.ts +20 -0
  152. package/lib/atoms/text-area/text-area.module.d.ts +10 -0
  153. package/lib/atoms/textbox/textbox.component.d.ts +34 -0
  154. package/lib/atoms/textbox/textbox.module.d.ts +11 -0
  155. package/lib/atoms/timescheduler/timescheduler.component.d.ts +23 -0
  156. package/lib/atoms/timescheduler/timescheduler.module.d.ts +10 -0
  157. package/lib/atoms/toast-notification/toast-notification.module.d.ts +8 -0
  158. package/lib/atoms/toast-notification/toast-notification.service.d.ts +28 -0
  159. package/lib/atoms/tooltip/tooltip.component.d.ts +17 -0
  160. package/lib/atoms/tooltip/tooltip.module.d.ts +8 -0
  161. package/lib/atoms/typography/TypographyType.d.ts +1 -0
  162. package/lib/atoms/typography/typography.component.d.ts +24 -0
  163. package/lib/atoms/typography/typography.module.d.ts +8 -0
  164. package/lib/molecules/card/card-actions/card-actions.component.d.ts +11 -0
  165. package/lib/molecules/card/card-body/card-body.component.d.ts +8 -0
  166. package/lib/molecules/card/card-footer/card-footer.component.d.ts +8 -0
  167. package/lib/molecules/card/card-header/card-header.component.d.ts +14 -0
  168. package/lib/molecules/card/card.component.d.ts +9 -0
  169. package/lib/molecules/card/card.module.d.ts +14 -0
  170. package/lib/molecules/dialog/dialog-actions/dialog-actions.component.d.ts +10 -0
  171. package/lib/molecules/dialog/dialog-titlebar/dialog-titlebar.component.d.ts +17 -0
  172. package/lib/molecules/dialog/dialog.component.d.ts +21 -0
  173. package/lib/molecules/dialog/dialog.module.d.ts +13 -0
  174. package/lib/molecules/grid/grid-form/grid-form.component.d.ts +34 -0
  175. package/lib/molecules/grid/grid-spacer/grid-spacer.component.d.ts +8 -0
  176. package/lib/molecules/grid/grid.component.d.ts +71 -0
  177. package/lib/molecules/grid/grid.module.d.ts +19 -0
  178. package/lib/molecules/grid-layout/grid-layout-item/grid-layout-item.component.d.ts +15 -0
  179. package/lib/molecules/grid-layout/grid-layout.component.d.ts +14 -0
  180. package/lib/molecules/grid-layout/grid-layout.module.d.ts +10 -0
  181. package/lib/molecules/grid-pagination/grid-pagination-spacer/grid-pagination-spacer.component.d.ts +8 -0
  182. package/lib/molecules/grid-pagination/grid-pagination.component.d.ts +90 -0
  183. package/lib/molecules/grid-pagination/grid-pagination.module.d.ts +19 -0
  184. package/lib/molecules/grid-pagination/kebab-menu-filter.pipe.d.ts +7 -0
  185. package/lib/molecules/molecules.module.d.ts +15 -0
  186. package/lib/molecules/sidebar/layout/layout.model.d.ts +20 -0
  187. package/lib/molecules/sidebar/sidebar.component.d.ts +14 -0
  188. package/lib/molecules/sidebar/sidebar.module.d.ts +10 -0
  189. package/lib/molecules/tabstrip/tabstrip-tab/tabstrip-tab.component.d.ts +10 -0
  190. package/lib/molecules/tabstrip/tabstrip.component.d.ts +15 -0
  191. package/lib/molecules/tabstrip/tabstrip.module.d.ts +10 -0
  192. package/lib/shared.component.d.ts +10 -0
  193. package/lib/shared.module.d.ts +11 -0
  194. package/lib/shared.service.d.ts +6 -0
  195. package/lib/style-tokens/style-tokens.module.d.ts +7 -0
  196. package/package.json +55 -0
  197. package/public-api.d.ts +91 -0
@@ -0,0 +1,112 @@
1
+ import { Component, ContentChild, EventEmitter, Input, Output } from '@angular/core';
2
+ import { FormControl, FormGroup, Validators } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "../../../atoms/icon/icon.component";
6
+ import * as i3 from "@progress/kendo-angular-icons";
7
+ import * as i4 from "@progress/kendo-angular-grid";
8
+ import * as i5 from "../../../atoms/tooltip/tooltip.component";
9
+ import * as i6 from "../../../atoms/typography/typography.component";
10
+ import * as i7 from "../grid-spacer/grid-spacer.component";
11
+ const createFormGroup = (controls) => {
12
+ const form = new FormGroup({});
13
+ for (let controlName of Object.keys(controls)) {
14
+ form.addControl(controlName, new FormControl(controls[controlName], Validators.required));
15
+ }
16
+ return form;
17
+ };
18
+ export class GridFormComponent {
19
+ constructor(renderer) {
20
+ this.renderer = renderer;
21
+ this.showToolbar = false;
22
+ this.noRecordsContent = 'No tags added yet';
23
+ this.showColumns = false;
24
+ this.gridData = [];
25
+ this.columnData = [];
26
+ this.controls = {};
27
+ this.addOrUpdateRow = new EventEmitter();
28
+ this.deletedRow = new EventEmitter();
29
+ this.removeRow = new EventEmitter();
30
+ this.saveRow = new EventEmitter();
31
+ }
32
+ ngOnInit() {
33
+ }
34
+ onStateChange(state) {
35
+ console.log('onStateChange: ', state);
36
+ }
37
+ addHandler(args) {
38
+ this.showColumns = true;
39
+ this.closeEditor(args.sender);
40
+ // define all editable fields validators and default values
41
+ this.formGroup = createFormGroup(this.controls);
42
+ ;
43
+ // show the new row editor, with the `FormGroup` build above
44
+ args.sender.addRow(this.formGroup);
45
+ }
46
+ editHandler(args) {
47
+ // define all editable fields validators and default values
48
+ const { dataItem } = args;
49
+ this.closeEditor(args.sender);
50
+ this.formGroup = createFormGroup(dataItem);
51
+ this.editedRowIndex = args.rowIndex;
52
+ // put the row in edit mode, with the `FormGroup` build above
53
+ args.sender.editRow(args.rowIndex, this.formGroup);
54
+ }
55
+ cancelHandler(args) {
56
+ // close the editor for the given row
57
+ this.closeEditor(args.sender, args.rowIndex);
58
+ if (this.gridData.length === 0) {
59
+ this.showColumns = false;
60
+ }
61
+ }
62
+ saveHandler({ sender, rowIndex, formGroup, isNew }) {
63
+ this.saveRow.emit({ rowData: formGroup.value, isNew });
64
+ // Close the editor for a given row
65
+ sender.closeRow(rowIndex);
66
+ }
67
+ removeHandler(args) {
68
+ // remove the current dataItem from the current data source,
69
+ this.removeRow.emit(args.dataItem);
70
+ if (this.gridData.length === 0) {
71
+ this.showColumns = false;
72
+ }
73
+ }
74
+ closeEditor(grid, rowIndex = this.editedRowIndex) {
75
+ // close the editor
76
+ grid.closeRow(rowIndex);
77
+ // reset the helpers
78
+ this.editedRowIndex = undefined;
79
+ this.formGroup = undefined;
80
+ }
81
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridFormComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
82
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GridFormComponent, selector: "lib-grid-form", inputs: { showToolbar: "showToolbar", noRecordsContent: "noRecordsContent", gridData: "gridData", columnData: "columnData", controls: "controls" }, outputs: { addOrUpdateRow: "addOrUpdateRow", deletedRow: "deletedRow", removeRow: "removeRow", saveRow: "saveRow" }, queries: [{ propertyName: "templateRef1", first: true, predicate: ["tmp1"], descendants: true }, { propertyName: "templateRef2", first: true, predicate: ["tmp2"], descendants: true }], ngImport: i0, template: "<kendo-grid [kendoGridBinding]=\"gridData\" (dataStateChange)=\"onStateChange($event)\" (edit)=\"editHandler($event)\"\n (cancel)=\"cancelHandler($event)\" (save)=\"saveHandler($event)\" (remove)=\"removeHandler($event)\"\n (add)=\"addHandler($event)\" [navigable]=\"true\">\n <ng-template kendoGridToolbarTemplate>\n <ng-content select=\"header\"></ng-content>\n <lib-grid-spacer></lib-grid-spacer>\n <button kendoGridAddCommand themeColor=\"primary\">\n <ng-content select=\"div.header-add-btn\"></ng-content>\n </button>\n </ng-template>\n <ng-template *ngIf=\"!showColumns\" kendoGridNoRecordsTemplate>\n <lib-typography [defaultText]=\"noRecordsContent\" type=\"P_MULISH_16_REGULAR\"></lib-typography>\n </ng-template>\n <ng-container *ngIf=\"showColumns\">\n <kendo-grid-column *ngFor=\"let item of columnData\" [field]=\"item.field\" [title]=\"item.title\" [editor]=\"item.editor\">\n <ng-template *ngIf=\"item.custom\" kendoGridEditTemplate let-dataItem=\"dataItem\" let-formGroup=\"formGroup\">\n <ng-container\n *ngTemplateOutlet=\"templateRef1; context: {$implicit: dataItem, formGroup: formGroup}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"item.custom\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"templateRef2; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n </kendo-grid-column>\n <kendo-grid-command-column [width]=\"120\">\n <ng-template kendoGridCellTemplate let-isNew=\"isNew\">\n <div class=\"command-column\">\n <lib-tooltip position=\"top\" showOn=\"hover\">\n <div class=\"tooltip-content\">Edit</div>\n <button kendoGridEditCommand fillMode=\"clear\" themeColor=\"primary\">\n <kendo-icon name=\"pencil\"></kendo-icon>\n </button>\n </lib-tooltip>\n <lib-tooltip position=\"top\" showOn=\"hover\">\n <div class=\"tooltip-content\">Remove</div>\n <button kendoGridRemoveCommand fillMode=\"clear\" themeColor=\"error\">\n <kendo-icon name=\"trash\"></kendo-icon>\n </button>\n </lib-tooltip>\n </div>\n <div class=\"command-column\">\n <button kendoGridSaveCommand [disabled]=\"formGroup && formGroup.invalid\" fillMode=\"clear\" themeColor=\"primary\">\n <lib-tooltip position=\"top\" showOn=\"hover\">\n <div class=\"tooltip-content\">Save</div>\n <kendo-icon name=\"save\"></kendo-icon>\n </lib-tooltip>\n </button>\n <button kendoGridCancelCommand fillMode=\"clear\" themeColor=\"error\">\n <lib-tooltip position=\"top\" showOn=\"hover\">\n <div class=\"tooltip-content\">Cancel</div>\n <lib-icon name=\"close\" [fontSize]=\"20\"></lib-icon>\n </lib-tooltip>\n </button>\n </div>\n </ng-template>\n </kendo-grid-command-column>\n </ng-container>\n</kendo-grid>\n", styles: [".command-column{display:flex;justify-content:space-between}::ng-deep .k-grid-header{border-bottom-width:0px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "lib-icon", inputs: ["name", "fontSize", "type"] }, { kind: "component", type: i3.IconComponent, selector: "kendo-icon", inputs: ["name"], exportAs: ["kendoIcon"] }, { kind: "component", type: i4.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "rowReorderable", "navigable", "navigatable", "autoSize", "rowClass", "rowSticky", "rowSelected", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "isDetailExpanded", "isGroupExpanded"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: i4.ToolbarTemplateDirective, selector: "[kendoGridToolbarTemplate]", inputs: ["position"] }, { kind: "directive", type: i4.DataBindingDirective, selector: "[kendoGridBinding]", inputs: ["skip", "sort", "filter", "pageSize", "group", "kendoGridBinding"] }, { kind: "directive", type: i4.GridToolbarFocusableDirective, selector: " [kendoGridToolbarFocusable], [kendoGridAddCommand], [kendoGridCancelCommand], [kendoGridEditCommand], [kendoGridRemoveCommand], [kendoGridSaveCommand], [kendoGridExcelCommand], [kendoGridPDFCommand] " }, { kind: "component", type: i4.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterable", "editable"] }, { kind: "directive", type: i4.FocusableDirective, selector: "[kendoGridFocusable], [kendoGridEditCommand], [kendoGridRemoveCommand], [kendoGridSaveCommand], [kendoGridCancelCommand], [kendoGridSelectionCheckbox] ", inputs: ["kendoGridFocusable"] }, { kind: "component", type: i4.CommandColumnComponent, selector: "kendo-grid-command-column" }, { kind: "directive", type: i4.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "directive", type: i4.NoRecordsTemplateDirective, selector: "[kendoGridNoRecordsTemplate]" }, { kind: "directive", type: i4.EditTemplateDirective, selector: "[kendoGridEditTemplate]" }, { kind: "component", type: i4.EditCommandDirective, selector: "[kendoGridEditCommand]" }, { kind: "component", type: i4.CancelCommandDirective, selector: "[kendoGridCancelCommand]" }, { kind: "component", type: i4.SaveCommandDirective, selector: "[kendoGridSaveCommand]" }, { kind: "component", type: i4.RemoveCommandDirective, selector: "[kendoGridRemoveCommand]" }, { kind: "component", type: i4.AddCommandDirective, selector: "[kendoGridAddCommand]" }, { kind: "component", type: i5.TooltipComponent, selector: "lib-tooltip", inputs: ["position", "tooltipWidth", "tooltipHeight", "showOn", "closable", "title", "callout"] }, { kind: "component", type: i6.TypographyComponent, selector: "lib-typography", inputs: ["type", "defaultText", "isLabel", "hiddenLabel"] }, { kind: "component", type: i7.GridSpacerComponent, selector: "lib-grid-spacer" }] }); }
83
+ }
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridFormComponent, decorators: [{
85
+ type: Component,
86
+ args: [{ selector: 'lib-grid-form', template: "<kendo-grid [kendoGridBinding]=\"gridData\" (dataStateChange)=\"onStateChange($event)\" (edit)=\"editHandler($event)\"\n (cancel)=\"cancelHandler($event)\" (save)=\"saveHandler($event)\" (remove)=\"removeHandler($event)\"\n (add)=\"addHandler($event)\" [navigable]=\"true\">\n <ng-template kendoGridToolbarTemplate>\n <ng-content select=\"header\"></ng-content>\n <lib-grid-spacer></lib-grid-spacer>\n <button kendoGridAddCommand themeColor=\"primary\">\n <ng-content select=\"div.header-add-btn\"></ng-content>\n </button>\n </ng-template>\n <ng-template *ngIf=\"!showColumns\" kendoGridNoRecordsTemplate>\n <lib-typography [defaultText]=\"noRecordsContent\" type=\"P_MULISH_16_REGULAR\"></lib-typography>\n </ng-template>\n <ng-container *ngIf=\"showColumns\">\n <kendo-grid-column *ngFor=\"let item of columnData\" [field]=\"item.field\" [title]=\"item.title\" [editor]=\"item.editor\">\n <ng-template *ngIf=\"item.custom\" kendoGridEditTemplate let-dataItem=\"dataItem\" let-formGroup=\"formGroup\">\n <ng-container\n *ngTemplateOutlet=\"templateRef1; context: {$implicit: dataItem, formGroup: formGroup}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"item.custom\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"templateRef2; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n </kendo-grid-column>\n <kendo-grid-command-column [width]=\"120\">\n <ng-template kendoGridCellTemplate let-isNew=\"isNew\">\n <div class=\"command-column\">\n <lib-tooltip position=\"top\" showOn=\"hover\">\n <div class=\"tooltip-content\">Edit</div>\n <button kendoGridEditCommand fillMode=\"clear\" themeColor=\"primary\">\n <kendo-icon name=\"pencil\"></kendo-icon>\n </button>\n </lib-tooltip>\n <lib-tooltip position=\"top\" showOn=\"hover\">\n <div class=\"tooltip-content\">Remove</div>\n <button kendoGridRemoveCommand fillMode=\"clear\" themeColor=\"error\">\n <kendo-icon name=\"trash\"></kendo-icon>\n </button>\n </lib-tooltip>\n </div>\n <div class=\"command-column\">\n <button kendoGridSaveCommand [disabled]=\"formGroup && formGroup.invalid\" fillMode=\"clear\" themeColor=\"primary\">\n <lib-tooltip position=\"top\" showOn=\"hover\">\n <div class=\"tooltip-content\">Save</div>\n <kendo-icon name=\"save\"></kendo-icon>\n </lib-tooltip>\n </button>\n <button kendoGridCancelCommand fillMode=\"clear\" themeColor=\"error\">\n <lib-tooltip position=\"top\" showOn=\"hover\">\n <div class=\"tooltip-content\">Cancel</div>\n <lib-icon name=\"close\" [fontSize]=\"20\"></lib-icon>\n </lib-tooltip>\n </button>\n </div>\n </ng-template>\n </kendo-grid-command-column>\n </ng-container>\n</kendo-grid>\n", styles: [".command-column{display:flex;justify-content:space-between}::ng-deep .k-grid-header{border-bottom-width:0px}\n"] }]
87
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { showToolbar: [{
88
+ type: Input
89
+ }], noRecordsContent: [{
90
+ type: Input
91
+ }], templateRef1: [{
92
+ type: ContentChild,
93
+ args: ['tmp1']
94
+ }], templateRef2: [{
95
+ type: ContentChild,
96
+ args: ['tmp2']
97
+ }], gridData: [{
98
+ type: Input
99
+ }], columnData: [{
100
+ type: Input
101
+ }], controls: [{
102
+ type: Input
103
+ }], addOrUpdateRow: [{
104
+ type: Output
105
+ }], deletedRow: [{
106
+ type: Output
107
+ }], removeRow: [{
108
+ type: Output
109
+ }], saveRow: [{
110
+ type: Output
111
+ }] } });
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkL2dyaWQtZm9ybS9ncmlkLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvbW9sZWN1bGVzL2dyaWQvZ3JpZC1mb3JtL2dyaWQtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQUlwRSxNQUFNLGVBQWUsR0FBRyxDQUFDLFFBQWEsRUFBYSxFQUFFO0lBQ25ELE1BQU0sSUFBSSxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLEtBQUssSUFBSSxXQUFXLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUM3QyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7S0FDMUY7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQTtBQU9ELE1BQU0sT0FBTyxpQkFBaUI7SUFvQjVCLFlBQW9CLFFBQW1CO1FBQW5CLGFBQVEsR0FBUixRQUFRLENBQVc7UUFuQjlCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLHFCQUFnQixHQUFXLG1CQUFtQixDQUFDO1FBQ3hELGdCQUFXLEdBQUcsS0FBSyxDQUFBO1FBTVYsYUFB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NEZEdkNhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxlQUFlO2dHQUtoQixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFJZ0IsWUFBWTtzQkFBakMsWUFBWTt1QkFBQyxNQUFNO2dCQUNFLFlBQVk7c0JBQWpDLFlBQVk7dUJBQUMsTUFBTTtnQkFFWCxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBR0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBSZW5kZXJlcjIsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWRkRXZlbnQsIENhbmNlbEV2ZW50LCBFZGl0RXZlbnQsIEdyaWRDb21wb25lbnQsIFJlbW92ZUV2ZW50LCBTYXZlRXZlbnQgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1ncmlkJztcbmltcG9ydCB7IFN0YXRlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWRhdGEtcXVlcnknO1xuXG5jb25zdCBjcmVhdGVGb3JtR3JvdXAgPSAoY29udHJvbHM6IGFueSk6IEZvcm1Hcm91cCA9PiB7XG4gIGNvbnN0IGZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgZm9yIChsZXQgY29udHJvbE5hbWUgb2YgT2JqZWN0LmtleXMoY29udHJvbHMpKSB7XG4gICAgZm9ybS5hZGRDb250cm9sKGNvbnRyb2xOYW1lLCBuZXcgRm9ybUNvbnRyb2woY29udHJvbHNbY29udHJvbE5hbWVdLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSlcbiAgfVxuICByZXR1cm4gZm9ybTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWdyaWQtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ncmlkLWZvcm0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBHcmlkRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHNob3dUb29sYmFyOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG5vUmVjb3Jkc0NvbnRlbnQ6IHN0cmluZyA9ICdObyB0YWdzIGFkZGVkIHlldCc7XG4gIHNob3dDb2x1bW5zID0gZmFsc2VcbiAgcHVibGljIGZvcm1Hcm91cCE6IEZvcm1Hcm91cCB8IGFueTtcblxuICBAQ29udGVudENoaWxkKCd0bXAxJykgdGVtcGxhdGVSZWYxITogVGVtcGxhdGVSZWY8YW55PiB8IG51bGw7XG4gIEBDb250ZW50Q2hpbGQoJ3RtcDInKSB0ZW1wbGF0ZVJlZjIhOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcblxuICBASW5wdXQoKSBncmlkRGF0YTogYW55W10gPSBbXTtcbiAgQElucHV0KCkgY29sdW1uRGF0YTogYW55W10gPSBbXTtcbiAgQElucHV0KCkgY29udHJvbHM6IGFueSA9IHt9O1xuICBjb3VudGVyITogbnVtYmVyO1xuICBAT3V0cHV0KCkgYWRkT3JVcGRhdGVSb3cgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGRlbGV0ZWRSb3cgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBwcml2YXRlIGVkaXRlZFJvd0luZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIEBPdXRwdXQoKSByZW1vdmVSb3cgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHNhdmVSb3cgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cblxuICBwdWJsaWMgb25TdGF0ZUNoYW5nZShzdGF0ZTogU3RhdGUpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnb25TdGF0ZUNoYW5nZTogJywgc3RhdGUpO1xuICB9XG5cbiAgcHVibGljIGFkZEhhbmRsZXIoYXJnczogQWRkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dDb2x1bW5zID0gdHJ1ZVxuICAgIHRoaXMuY2xvc2VFZGl0b3IoYXJncy5zZW5kZXIpO1xuICAgIC8vIGRlZmluZSBhbGwgZWRpdGFibGUgZmllbGRzIHZhbGlkYXRvcnMgYW5kIGRlZmF1bHQgdmFsdWVzXG4gICAgdGhpcy5mb3JtR3JvdXAgPSBjcmVhdGVGb3JtR3JvdXAodGhpcy5jb250cm9scyk7O1xuICAgIC8vIHNob3cgdGhlIG5ldyByb3cgZWRpdG9yLCB3aXRoIHRoZSBgRm9ybUdyb3VwYCBidWlsZCBhYm92ZVxuICAgIGFyZ3Muc2VuZGVyLmFkZFJvdyh0aGlzLmZvcm1Hcm91cCk7XG4gIH1cblxuICBwdWJsaWMgZWRpdEhhbmRsZXIoYXJnczogRWRpdEV2ZW50KTogdm9pZCB7XG4gICAgLy8gZGVmaW5lIGFsbCBlZGl0YWJsZSBmaWVsZHMgdmFsaWRhdG9ycyBhbmQgZGVmYXVsdCB2YWx1ZXNcbiAgICBjb25zdCB7IGRhdGFJdGVtIH0gPSBhcmdzO1xuICAgIHRoaXMuY2xvc2VFZGl0b3IoYXJncy5zZW5kZXIpO1xuXG4gICAgdGhpcy5mb3JtR3JvdXAgPSBjcmVhdGVGb3JtR3JvdXAoZGF0YUl0ZW0pO1xuICAgIHRoaXMuZWRpdGVkUm93SW5kZXggPSBhcmdzLnJvd0luZGV4O1xuICAgIC8vIHB1dCB0aGUgcm93IGluIGVkaXQgbW9kZSwgd2l0aCB0aGUgYEZvcm1Hcm91cGAgYnVpbGQgYWJvdmVcbiAgICBhcmdzLnNlbmRlci5lZGl0Um93KGFyZ3Mucm93SW5kZXgsIHRoaXMuZm9ybUdyb3VwKTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWxIYW5kbGVyKGFyZ3M6IENhbmNlbEV2ZW50KTogdm9pZCB7XG4gICAgLy8gY2xvc2UgdGhlIGVkaXRvciBmb3IgdGhlIGdpdmVuIHJvd1xuICAgIHRoaXMuY2xvc2VFZGl0b3IoYXJncy5zZW5kZXIsIGFyZ3Mucm93SW5kZXgpO1xuICAgIGlmKHRoaXMuZ3JpZERhdGEubGVuZ3RoID09PSAwKXtcbiAgICAgIHRoaXMuc2hvd0NvbHVtbnMgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2F2ZUhhbmRsZXIoeyBzZW5kZXIsIHJvd0luZGV4LCBmb3JtR3JvdXAsIGlzTmV3IH06IFNhdmVFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2F2ZVJvdy5lbWl0KHsgcm93RGF0YTogZm9ybUdyb3VwLnZhbHVlLCBpc05ldyB9KTtcbiAgICAvLyBDbG9zZSB0aGUgZWRpdG9yIGZvciBhIGdpdmVuIHJvdyBcbiAgICBzZW5kZXIuY2xvc2VSb3cocm93SW5kZXgpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUhhbmRsZXIoYXJnczogUmVtb3ZlRXZlbnQpOiB2b2lkIHtcbiAgICAvLyByZW1vdmUgdGhlIGN1cnJlbnQgZGF0YUl0ZW0gZnJvbSB0aGUgY3VycmVudCBkYXRhIHNvdXJjZSxcbiAgICB0aGlzLnJlbW92ZVJvdy5lbWl0KGFyZ3MuZGF0YUl0ZW0pO1xuICAgIGlmKHRoaXMuZ3JpZERhdGEubGVuZ3RoID09PSAwKXtcbiAgICAgIHRoaXMuc2hvd0NvbHVtbnMgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNsb3NlRWRpdG9yKGdyaWQ6IEdyaWRDb21wb25lbnQsIHJvd0luZGV4ID0gdGhpcy5lZGl0ZWRSb3dJbmRleCkge1xuICAgIC8vIGNsb3NlIHRoZSBlZGl0b3JcbiAgICBncmlkLmNsb3NlUm93KHJvd0luZGV4KTtcbiAgICAvLyByZXNldCB0aGUgaGVscGVyc1xuICAgIHRoaXMuZWRpdGVkUm93SW5kZXggPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5mb3JtR3JvdXAgPSB1bmRlZmluZWQ7XG4gIH1cblxufVxuIiwiPGtlbmRvLWdyaWQgW2tlbmRvR3JpZEJpbmRpbmddPVwiZ3JpZERhdGFcIiAoZGF0YVN0YXRlQ2hhbmdlKT1cIm9uU3RhdGVDaGFuZ2UoJGV2ZW50KVwiIChlZGl0KT1cImVkaXRIYW5kbGVyKCRldmVudClcIlxuICAoY2FuY2VsKT1cImNhbmNlbEhhbmRsZXIoJGV2ZW50KVwiIChzYXZlKT1cInNhdmVIYW5kbGVyKCRldmVudClcIiAocmVtb3ZlKT1cInJlbW92ZUhhbmRsZXIoJGV2ZW50KVwiXG4gIChhZGQpPVwiYWRkSGFuZGxlcigkZXZlbnQpXCIgW25hdmlnYWJsZV09XCJ0cnVlXCI+XG4gIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRUb29sYmFyVGVtcGxhdGU+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaGVhZGVyXCI+PC9uZy1jb250ZW50PlxuICAgIDxsaWItZ3JpZC1zcGFjZXI+PC9saWItZ3JpZC1zcGFjZXI+XG4gICAgPGJ1dHRvbiBrZW5kb0dyaWRBZGRDb21tYW5kIHRoZW1lQ29sb3I9XCJwcmltYXJ5XCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkaXYuaGVhZGVyLWFkZC1idG5cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9idXR0b24+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAqbmdJZj1cIiFzaG93Q29sdW1uc1wiIGtlbmRvR3JpZE5vUmVjb3Jkc1RlbXBsYXRlPlxuICAgIDxsaWItdHlwb2dyYXBoeSBbZGVmYXVsdFRleHRdPVwibm9SZWNvcmRzQ29udGVudFwiIHR5cGU9XCJQX01VTElTSF8xNl9SRUdVTEFSXCI+PC9saWItdHlwb2dyYXBoeT5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dDb2x1bW5zXCI+XG4gICAgPGtlbmRvLWdyaWQtY29sdW1uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbHVtbkRhdGFcIiBbZmllbGRdPVwiaXRlbS5maWVsZFwiIFt0aXRsZV09XCJpdGVtLnRpdGxlXCIgW2VkaXRvcl09XCJpdGVtLmVkaXRvclwiPlxuICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiaXRlbS5jdXN0b21cIiBrZW5kb0dyaWRFZGl0VGVtcGxhdGUgbGV0LWRhdGFJdGVtPVwiZGF0YUl0ZW1cIiBsZXQtZm9ybUdyb3VwPVwiZm9ybUdyb3VwXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlUmVmMTsgY29udGV4dDogeyRpbXBsaWNpdDogZGF0YUl0ZW0sIGZvcm1Hcm91cDogZm9ybUdyb3VwfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cIml0ZW0uY3VzdG9tXCIga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlUmVmMjsgY29udGV4dDogeyRpbXBsaWNpdDogZGF0YUl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwva2VuZG8tZ3JpZC1jb2x1bW4+XG4gICAgPGtlbmRvLWdyaWQtY29tbWFuZC1jb2x1bW4gW3dpZHRoXT1cIjEyMFwiPlxuICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtaXNOZXc9XCJpc05ld1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29tbWFuZC1jb2x1bW5cIj5cbiAgICAgICAgICA8bGliLXRvb2x0aXAgcG9zaXRpb249XCJ0b3BcIiBzaG93T249XCJob3ZlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2x0aXAtY29udGVudFwiPkVkaXQ8L2Rpdj5cbiAgICAgICAgICAgIDxidXR0b24ga2VuZG9HcmlkRWRpdENvbW1hbmQgZmlsbE1vZGU9XCJjbGVhclwiIHRoZW1lQ29sb3I9XCJwcmltYXJ5XCI+XG4gICAgICAgICAgICAgIDxrZW5kby1pY29uIG5hbWU9XCJwZW5jaWxcIj48L2tlbmRvLWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2xpYi10b29sdGlwPlxuICAgICAgICAgIDxsaWItdG9vbHRpcCBwb3NpdGlvbj1cInRvcFwiIHNob3dPbj1cImhvdmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbHRpcC1jb250ZW50XCI+UmVtb3ZlPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uIGtlbmRvR3JpZFJlbW92ZUNvbW1hbmQgZmlsbE1vZGU9XCJjbGVhclwiIHRoZW1lQ29sb3I9XCJlcnJvclwiPlxuICAgICAgICAgICAgICA8a2VuZG8taWNvbiBuYW1lPVwidHJhc2hcIj48L2tlbmRvLWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2xpYi10b29sdGlwPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1hbmQtY29sdW1uXCI+XG4gICAgICAgICAgPGJ1dHRvbiBrZW5kb0dyaWRTYXZlQ29tbWFuZCBbZGlzYWJsZWRdPVwiZm9ybUdyb3VwICYmIGZvcm1Hcm91cC5pbnZhbGlkXCIgZmlsbE1vZGU9XCJjbGVhclwiIHRoZW1lQ29sb3I9XCJwcmltYXJ5XCI+XG4gICAgICAgICAgICA8bGliLXRvb2x0aXAgcG9zaXRpb249XCJ0b3BcIiBzaG93T249XCJob3ZlclwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbHRpcC1jb250ZW50XCI+U2F2ZTwvZGl2PlxuICAgICAgICAgICAgICA8a2VuZG8taWNvbiBuYW1lPVwic2F2ZVwiPjwva2VuZG8taWNvbj5cbiAgICAgICAgICAgIDwvbGliLXRvb2x0aXA+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBrZW5kb0dyaWRDYW5jZWxDb21tYW5kIGZpbGxNb2RlPVwiY2xlYXJcIiB0aGVtZUNvbG9yPVwiZXJyb3JcIj5cbiAgICAgICAgICAgIDxsaWItdG9vbHRpcCBwb3NpdGlvbj1cInRvcFwiIHNob3dPbj1cImhvdmVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sdGlwLWNvbnRlbnRcIj5DYW5jZWw8L2Rpdj5cbiAgICAgICAgICAgICAgPGxpYi1pY29uIG5hbWU9XCJjbG9zZVwiIFtmb250U2l6ZV09XCIyMFwiPjwvbGliLWljb24+XG4gICAgICAgICAgICA8L2xpYi10b29sdGlwPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9rZW5kby1ncmlkLWNvbW1hbmQtY29sdW1uPlxuICA8L25nLWNvbnRhaW5lcj5cbjwva2VuZG8tZ3JpZD5cbiJdfQ==
@@ -0,0 +1,15 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@progress/kendo-angular-grid";
4
+ export class GridSpacerComponent {
5
+ constructor() { }
6
+ ngOnInit() {
7
+ }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridSpacerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GridSpacerComponent, selector: "lib-grid-spacer", ngImport: i0, template: "<kendo-grid-spacer></kendo-grid-spacer>\n", styles: [":host{flex:1 0 auto}\n"], dependencies: [{ kind: "component", type: i1.GridSpacerComponent, selector: "kendo-grid-spacer, kendo-pager-spacer", inputs: ["width"] }] }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridSpacerComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'lib-grid-spacer', template: "<kendo-grid-spacer></kendo-grid-spacer>\n", styles: [":host{flex:1 0 auto}\n"] }]
14
+ }], ctorParameters: function () { return []; } });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1zcGFjZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvbW9sZWN1bGVzL2dyaWQvZ3JpZC1zcGFjZXIvZ3JpZC1zcGFjZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvbW9sZWN1bGVzL2dyaWQvZ3JpZC1zcGFjZXIvZ3JpZC1zcGFjZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7O0FBT2xELE1BQU0sT0FBTyxtQkFBbUI7SUFFOUIsZ0JBQWdCLENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7K0dBTFUsbUJBQW1CO21HQUFuQixtQkFBbUIsdURDUGhDLDJDQUNBOzs0RkRNYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWdyaWQtc3BhY2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dyaWQtc3BhY2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZC1zcGFjZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBHcmlkU3BhY2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbn1cbiIsIjxrZW5kby1ncmlkLXNwYWNlcj48L2tlbmRvLWdyaWQtc3BhY2VyPlxuIl19
@@ -0,0 +1,278 @@
1
+ import { Component, ContentChild, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
+ import { GridComponent, } from '@progress/kendo-angular-grid';
3
+ import { moreVerticalIcon, chevronDownIcon, chevronUpIcon, trashIcon, } from '@progress/kendo-svg-icons';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@progress/kendo-angular-buttons";
7
+ import * as i3 from "@progress/kendo-angular-grid";
8
+ import * as i4 from "../../atoms/tooltip/tooltip.component";
9
+ import * as i5 from "../../atoms/typography/typography.component";
10
+ export class LibGridComponent {
11
+ constructor() {
12
+ this.gridData = [];
13
+ this.columnData = [];
14
+ this.pageSize = 0;
15
+ this.pageable = false;
16
+ this.sortable = false;
17
+ this.groupable = false;
18
+ this.reorderable = false;
19
+ this.resizable = false;
20
+ this.checkBoxWidth = 28;
21
+ this.checkBoxColumnResizable = false;
22
+ this.checkBoxColumnMenu = false;
23
+ this.checkBoxColumnShowSelectedAll = true;
24
+ this.checkBoxRequired = false;
25
+ this.columnMenu = false;
26
+ this.mode = 'multiple';
27
+ this.checkboxOnly = true;
28
+ this.dragColumns = false;
29
+ this.navigable = true;
30
+ this.gridRowSelectByValue = '';
31
+ this.noRecordsContent = 'No Records Available';
32
+ this.selectedRowData = new EventEmitter();
33
+ this.showToolbar = false;
34
+ this.selectableSettings = {};
35
+ this.kebabList = [];
36
+ this.showKebab = false;
37
+ this.rowDetails = new EventEmitter();
38
+ this.kebabItemClick = new EventEmitter();
39
+ this.icon = moreVerticalIcon;
40
+ this.kebabColumnWidth = 60;
41
+ this.data = [];
42
+ this.rowDataOfClickedCell = new EventEmitter();
43
+ this.preSelected = [];
44
+ this.preSelectedRecords = [];
45
+ this.ignoreColumnCellClick = [];
46
+ this.allowColumnClick = true;
47
+ this.arrowDownIcon = chevronDownIcon;
48
+ this.arrowUpIcon = chevronUpIcon;
49
+ this.expandRowIndex = [];
50
+ this.customExpandRowColumn = true;
51
+ this.deleteIcon = trashIcon;
52
+ this.deleteColumnWidth = 42;
53
+ this.expandRowColumnWidth = 42;
54
+ this.deletedRowData = new EventEmitter();
55
+ this.expandRows = false;
56
+ this.showDeleteColumn = false;
57
+ this.setSelectableSettings();
58
+ }
59
+ ngOnChanges(changes) {
60
+ let prevPreSelected = JSON.stringify(changes['preSelected']?.previousValue);
61
+ let currPreSelected = JSON.stringify(changes['preSelected']?.currentValue);
62
+ // Check if there is a change in this.preSelected input
63
+ if (prevPreSelected !== currPreSelected) {
64
+ // Clear the this.preSelectedRecords array
65
+ this.preSelectedRecords = [];
66
+ for (let row = 0; row < changes['preSelected'].currentValue.length; row++) {
67
+ for (let col = 0; col < this.gridData.length; col++) {
68
+ // Find the relevant record for a particular id
69
+ if (this.gridData[col][this.gridRowSelectByValue] ===
70
+ changes['preSelected'].currentValue[row]) {
71
+ let found = false;
72
+ // Check if this record is present in this.data, if yes don't push it in this.preSelectedRecords else push it
73
+ for (let index = 0; index < this.data.length; index++) {
74
+ if (this.data[index][this.gridRowSelectByValue] ===
75
+ this.gridData[col][this.gridRowSelectByValue]) {
76
+ found = true;
77
+ }
78
+ }
79
+ if (!found) {
80
+ this.preSelectedRecords.push(this.gridData[col]);
81
+ }
82
+ }
83
+ }
84
+ }
85
+ this.selectedRowData.emit(this.preSelectedRecords.concat(this.data));
86
+ }
87
+ }
88
+ ngAfterContentInit() {
89
+ if (!this.pageable) {
90
+ this.pageSize = this.gridData.length;
91
+ }
92
+ }
93
+ ngAfterViewInit() {
94
+ if (this.customExpandRowColumn) {
95
+ this.expandRowIndex.forEach((id) => {
96
+ this.grid.expandRow(id);
97
+ });
98
+ }
99
+ }
100
+ setSelectableSettings() {
101
+ if (this.checkboxOnly || this.mode === 'single') {
102
+ this.dragColumns = false;
103
+ }
104
+ this.selectableSettings = {
105
+ checkboxOnly: this.checkboxOnly,
106
+ mode: this.mode,
107
+ drag: this.dragColumns,
108
+ };
109
+ }
110
+ // We can extract data out of row number using below function
111
+ /* extract() {
112
+ this.extractDataItems = this.mySelection.map(idx => {
113
+ return this.gridData.find((data: { ProductID: number; }) => data.ProductID === idx);
114
+ });
115
+ console.log(this.extractDataItems)
116
+ this.selectedRowData.emit(this.extractDataItems);
117
+ } */
118
+ onSelectionChange(args) {
119
+ for (let row = 0; row < args.selectedRows.length; row++) {
120
+ var found = false;
121
+ for (let col = 0; col < this.data.length; col++) {
122
+ if (this.data[col][this.gridRowSelectByValue] ===
123
+ args.selectedRows[row].dataItem[this.gridRowSelectByValue]) {
124
+ found = true;
125
+ }
126
+ }
127
+ if (!found) {
128
+ this.data.push(args.selectedRows[row].dataItem);
129
+ }
130
+ }
131
+ if (args.deselectedRows.length !== 0) {
132
+ for (let row = 0; row < args.deselectedRows.length; row++) {
133
+ for (let col = 0; col < this.data.length; col++) {
134
+ if (this.data[col][this.gridRowSelectByValue] ===
135
+ args.deselectedRows[row].dataItem[this.gridRowSelectByValue]) {
136
+ this.data.splice(col, 1);
137
+ }
138
+ }
139
+ for (let col = 0; col < this.preSelectedRecords.length; col++) {
140
+ if (this.preSelectedRecords[col][this.gridRowSelectByValue] ===
141
+ args.deselectedRows[row].dataItem[this.gridRowSelectByValue]) {
142
+ this.preSelectedRecords.splice(col, 1);
143
+ // Remove this element from preselected
144
+ let index = this.preSelected.indexOf(args.deselectedRows[row].dataItem[this.gridRowSelectByValue]);
145
+ if (index !== -1) {
146
+ this.preSelected.splice(index, 1);
147
+ }
148
+ }
149
+ }
150
+ }
151
+ }
152
+ this.selectedRowData.emit(this.preSelectedRecords.concat(this.data));
153
+ }
154
+ onKebabClick(item, rowDetails) {
155
+ this.kebabItemClick.emit({ action: item, rowDetails });
156
+ }
157
+ onDetailExpand(rowData) {
158
+ this.rowDetails.emit(rowData.dataItem);
159
+ }
160
+ cellClickHandler(args) {
161
+ if (this.allowColumnClick) {
162
+ if (this.ignoreColumnCellClick.includes(args.columnIndex)) {
163
+ return;
164
+ }
165
+ this.rowDataOfClickedCell.emit(args.dataItem);
166
+ }
167
+ }
168
+ expandRow(id) {
169
+ this.grid.expandRow(id);
170
+ this.expandRowIndex.push(id);
171
+ }
172
+ collapseRow(id) {
173
+ this.grid.collapseRow(id);
174
+ this.expandRowIndex.splice(this.expandRowIndex.indexOf(id), 1);
175
+ }
176
+ onDelete(rowDetails) {
177
+ this.deletedRowData.emit(rowDetails);
178
+ }
179
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LibGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
180
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LibGridComponent, selector: "lib-grid", inputs: { gridData: "gridData", columnData: "columnData", pageSize: "pageSize", pageable: "pageable", sortable: "sortable", groupable: "groupable", reorderable: "reorderable", resizable: "resizable", checkBoxWidth: "checkBoxWidth", checkBoxColumnResizable: "checkBoxColumnResizable", checkBoxColumnMenu: "checkBoxColumnMenu", checkBoxColumnShowSelectedAll: "checkBoxColumnShowSelectedAll", checkBoxRequired: "checkBoxRequired", columnMenu: "columnMenu", mode: "mode", checkboxOnly: "checkboxOnly", dragColumns: "dragColumns", navigable: "navigable", height: "height", gridRowSelectByValue: "gridRowSelectByValue", noRecordsContent: "noRecordsContent", showToolbar: "showToolbar", kebabList: "kebabList", showKebab: "showKebab", icon: "icon", kebabColumnWidth: "kebabColumnWidth", preSelected: "preSelected", ignoreColumnCellClick: "ignoreColumnCellClick", allowColumnClick: "allowColumnClick", expandRowIndex: "expandRowIndex", customExpandRowColumn: "customExpandRowColumn", deleteColumnWidth: "deleteColumnWidth", expandRowColumnWidth: "expandRowColumnWidth", expandRows: "expandRows", showDeleteColumn: "showDeleteColumn" }, outputs: { selectedRowData: "selectedRowData", rowDetails: "rowDetails", kebabItemClick: "kebabItemClick", rowDataOfClickedCell: "rowDataOfClickedCell", deletedRowData: "deletedRowData" }, queries: [{ propertyName: "templateRef", first: true, predicate: ["multiColumnData"], descendants: true }, { propertyName: "detailTemplate", first: true, predicate: ["detailTemplate"], descendants: true }, { propertyName: "impactColumn", first: true, predicate: ["impactColumn"], descendants: true }], viewQueries: [{ propertyName: "grid", first: true, predicate: GridComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<kendo-grid [kendoGridBinding]=\"gridData\" [pageSize]=\"pageSize\" [selectable]=\"selectableSettings\" [pageable]=\"pageable\"\n [sortable]=\"sortable\" [groupable]=\"groupable\" [reorderable]=\"reorderable\" [resizable]=\"resizable\"\n [columnMenu]=\"columnMenu\" [navigable]=\"navigable\" [height]=\"height\" (change)=\"setSelectableSettings()\"\n (selectionChange)=\"onSelectionChange($event)\" [kendoGridSelectBy]=\"gridRowSelectByValue\"\n (detailExpand)=\"onDetailExpand($event)\" [selectedKeys]=\"preSelected\" (cellClick)=\"cellClickHandler($event)\">\n\n <ng-template *ngIf=\"showToolbar\" kendoGridToolbarTemplate>\n <ng-content></ng-content>\n </ng-template>\n\n <ng-template *ngIf=\"this.gridData.length === 0\" kendoGridNoRecordsTemplate>\n <lib-typography [defaultText]=\"noRecordsContent\" type=\"P_MULISH_16_REGULAR\"></lib-typography>\n </ng-template>\n\n <ng-container *ngIf=\"gridData.length > 0\">\n <kendo-grid-checkbox-column *ngIf=\"checkBoxRequired === true\" [width]=\"checkBoxWidth\"\n [resizable]=\"checkBoxColumnResizable\" [columnMenu]=\"checkBoxColumnMenu\"\n [showSelectAll]=\"checkBoxColumnShowSelectedAll\" class=\"checkbox-column\">\n </kendo-grid-checkbox-column>\n\n <kendo-grid-column *ngFor=\"let item of columnData\" [field]=\"item.field\" [title]=\"item.title\"\n [width]=\"item.columnWidth\" class=\"grid-column\">\n <ng-template *ngIf=\"item.custom\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"templateRef; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"item.impact\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"impactColumn; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column *ngIf=\"showDeleteColumn\" [width]=\"deleteColumnWidth\" class=\"delete-column\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <lib-tooltip showOn=\"hover\" position=\"bottom\" class=\"remove-tooltip\">\n <kendo-button [svgIcon]=\"deleteIcon\" title=\"delete\" fillMode=\"clear\" (click)=\"onDelete(dataItem)\"\n class=\"trash-icon\"></kendo-button>\n <div class=\"tooltip-content\">\n <p>Remove</p>\n </div>\n </lib-tooltip>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column [width]=\"kebabColumnWidth\" class=\"kebab-column\" *ngIf=\"showKebab\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <kendo-dropdownbutton [svgIcon]=\"icon\" fillMode=\"clear\" [data]=\"kebabList\" class=\"kebab\"\n (itemClick)=\"onKebabClick($event, dataItem)\"\n [popupSettings]=\"{ align: 'right', animate: true, popupClass: 'kebab-list' }\"></kendo-dropdownbutton>\n </ng-template>\n </kendo-grid-column>\n </ng-container>\n\n <ng-template kendoGridDetailTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"detailTemplate; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n\n <kendo-grid-column *ngIf=\"customExpandRowColumn\" [width]=\"expandRowColumnWidth\" class=\"grid-column\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <kendo-button *ngIf=\"!expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowDownIcon\" (click)=\"expandRow(rowIndex)\"\n fillMode=\"flat\" class=\"arrow-btn\">\n </kendo-button>\n <kendo-button *ngIf=\"expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowUpIcon\" (click)=\"collapseRow(rowIndex)\"\n fillMode=\"flat\" class=\"arrow-btn\">\n </kendo-button>\n </ng-template>\n </kendo-grid-column>\n\n</kendo-grid>\n", styles: ["@font-face{font-family:Mulish;src:url(/assets/fonts/Mulish-Light.ttf);font-weight:300;font-style:normal}@font-face{font-family:Mulish;src:url(../assets/fonts/Mulish-LightItalic.ttf);font-weight:300;font-style:italic}@font-face{font-family:Mulish;src:url(../assets/fonts/Mulish-Regular.ttf);font-weight:400;font-style:normal}@font-face{font-family:Mulish;src:url(../assets/fonts/Mulish-Italic.ttf);font-weight:400;font-style:italic}@font-face{font-family:Mulish;src:url(../assets/fonts/Mulish-Bold.ttf);font-weight:700;font-style:normal}::ng-deep .k-menu-group .k-item.k-focus>.k-link{box-shadow:none}::ng-deep .k-grid tr{font-family:Mulish,sans-serif;font-weight:400;font-style:normal;font-size:14px;line-height:21px;letter-spacing:.8px}::ng-deep .k-grid tr:hover{font-family:Mulish,sans-serif;font-weight:700;font-style:normal;font-size:14px;line-height:21px;letter-spacing:.8px}::ng-deep .k-grid-norecords{text-align:left;opacity:.4}::ng-deep .k-grid-norecords td{padding:14px 0 14px 24px!important}::ng-deep .k-column-title{font-family:Mulish,sans-serif;font-weight:700;font-style:normal;font-size:16px;line-height:24px;letter-spacing:.2px}::ng-deep .k-grid .k-hierarchy-cell{width:0;display:none}::ng-deep .k-grid th.k-header{border-width:0}::ng-deep .kebab-column,::ng-deep .delete-column,::ng-deep .grid-column,::ng-deep .checkbox-column{border-left:hidden!important}::ng-deep .checkbox-column{padding:.75rem 0rem .5rem 1rem!important}::ng-deep .k-grid .k-hierarchy-col{width:0;display:none}::ng-deep .k-grid .k-detail-row .k-detail-cell{padding:16px 8px 8px 16px}::ng-deep .k-grid th.k-header input.k-checkbox{margin-left:.5rem}::ng-deep .arrow-btn{padding:.5rem!important}::ng-deep .trash-icon path{color:#dc267f!important}::ng-deep kendo-tooltip.k-tooltip{background-color:#fff;color:#000}::ng-deep .delete-column{padding:8px 0}::ng-deep .k-grid-header{border-bottom-width:0px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: i2.DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["arrowIcon", "icon", "svgIcon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor", "buttonAttributes"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }, { kind: "component", type: i3.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "rowReorderable", "navigable", "navigatable", "autoSize", "rowClass", "rowSticky", "rowSelected", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "isDetailExpanded", "isGroupExpanded"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: i3.ToolbarTemplateDirective, selector: "[kendoGridToolbarTemplate]", inputs: ["position"] }, { kind: "directive", type: i3.DataBindingDirective, selector: "[kendoGridBinding]", inputs: ["skip", "sort", "filter", "pageSize", "group", "kendoGridBinding"] }, { kind: "directive", type: i3.SelectionDirective, selector: "[kendoGridSelectBy]" }, { kind: "component", type: i3.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterable", "editable"] }, { kind: "directive", type: i3.DetailTemplateDirective, selector: "[kendoGridDetailTemplate]", inputs: ["kendoGridDetailTemplateShowIf"] }, { kind: "component", type: i3.CheckboxColumnComponent, selector: "kendo-grid-checkbox-column", inputs: ["showSelectAll"] }, { kind: "directive", type: i3.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "directive", type: i3.NoRecordsTemplateDirective, selector: "[kendoGridNoRecordsTemplate]" }, { kind: "component", type: i4.TooltipComponent, selector: "lib-tooltip", inputs: ["position", "tooltipWidth", "tooltipHeight", "showOn", "closable", "title", "callout"] }, { kind: "component", type: i5.TypographyComponent, selector: "lib-typography", inputs: ["type", "defaultText", "isLabel", "hiddenLabel"] }] }); }
181
+ }
182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LibGridComponent, decorators: [{
183
+ type: Component,
184
+ args: [{ selector: 'lib-grid', template: "<kendo-grid [kendoGridBinding]=\"gridData\" [pageSize]=\"pageSize\" [selectable]=\"selectableSettings\" [pageable]=\"pageable\"\n [sortable]=\"sortable\" [groupable]=\"groupable\" [reorderable]=\"reorderable\" [resizable]=\"resizable\"\n [columnMenu]=\"columnMenu\" [navigable]=\"navigable\" [height]=\"height\" (change)=\"setSelectableSettings()\"\n (selectionChange)=\"onSelectionChange($event)\" [kendoGridSelectBy]=\"gridRowSelectByValue\"\n (detailExpand)=\"onDetailExpand($event)\" [selectedKeys]=\"preSelected\" (cellClick)=\"cellClickHandler($event)\">\n\n <ng-template *ngIf=\"showToolbar\" kendoGridToolbarTemplate>\n <ng-content></ng-content>\n </ng-template>\n\n <ng-template *ngIf=\"this.gridData.length === 0\" kendoGridNoRecordsTemplate>\n <lib-typography [defaultText]=\"noRecordsContent\" type=\"P_MULISH_16_REGULAR\"></lib-typography>\n </ng-template>\n\n <ng-container *ngIf=\"gridData.length > 0\">\n <kendo-grid-checkbox-column *ngIf=\"checkBoxRequired === true\" [width]=\"checkBoxWidth\"\n [resizable]=\"checkBoxColumnResizable\" [columnMenu]=\"checkBoxColumnMenu\"\n [showSelectAll]=\"checkBoxColumnShowSelectedAll\" class=\"checkbox-column\">\n </kendo-grid-checkbox-column>\n\n <kendo-grid-column *ngFor=\"let item of columnData\" [field]=\"item.field\" [title]=\"item.title\"\n [width]=\"item.columnWidth\" class=\"grid-column\">\n <ng-template *ngIf=\"item.custom\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"templateRef; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"item.impact\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"impactColumn; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column *ngIf=\"showDeleteColumn\" [width]=\"deleteColumnWidth\" class=\"delete-column\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <lib-tooltip showOn=\"hover\" position=\"bottom\" class=\"remove-tooltip\">\n <kendo-button [svgIcon]=\"deleteIcon\" title=\"delete\" fillMode=\"clear\" (click)=\"onDelete(dataItem)\"\n class=\"trash-icon\"></kendo-button>\n <div class=\"tooltip-content\">\n <p>Remove</p>\n </div>\n </lib-tooltip>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column [width]=\"kebabColumnWidth\" class=\"kebab-column\" *ngIf=\"showKebab\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <kendo-dropdownbutton [svgIcon]=\"icon\" fillMode=\"clear\" [data]=\"kebabList\" class=\"kebab\"\n (itemClick)=\"onKebabClick($event, dataItem)\"\n [popupSettings]=\"{ align: 'right', animate: true, popupClass: 'kebab-list' }\"></kendo-dropdownbutton>\n </ng-template>\n </kendo-grid-column>\n </ng-container>\n\n <ng-template kendoGridDetailTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"detailTemplate; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n\n <kendo-grid-column *ngIf=\"customExpandRowColumn\" [width]=\"expandRowColumnWidth\" class=\"grid-column\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <kendo-button *ngIf=\"!expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowDownIcon\" (click)=\"expandRow(rowIndex)\"\n fillMode=\"flat\" class=\"arrow-btn\">\n </kendo-button>\n <kendo-button *ngIf=\"expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowUpIcon\" (click)=\"collapseRow(rowIndex)\"\n fillMode=\"flat\" class=\"arrow-btn\">\n </kendo-button>\n </ng-template>\n </kendo-grid-column>\n\n</kendo-grid>\n", styles: ["@font-face{font-family:Mulish;src:url(/assets/fonts/Mulish-Light.ttf);font-weight:300;font-style:normal}@font-face{font-family:Mulish;src:url(../assets/fonts/Mulish-LightItalic.ttf);font-weight:300;font-style:italic}@font-face{font-family:Mulish;src:url(../assets/fonts/Mulish-Regular.ttf);font-weight:400;font-style:normal}@font-face{font-family:Mulish;src:url(../assets/fonts/Mulish-Italic.ttf);font-weight:400;font-style:italic}@font-face{font-family:Mulish;src:url(../assets/fonts/Mulish-Bold.ttf);font-weight:700;font-style:normal}::ng-deep .k-menu-group .k-item.k-focus>.k-link{box-shadow:none}::ng-deep .k-grid tr{font-family:Mulish,sans-serif;font-weight:400;font-style:normal;font-size:14px;line-height:21px;letter-spacing:.8px}::ng-deep .k-grid tr:hover{font-family:Mulish,sans-serif;font-weight:700;font-style:normal;font-size:14px;line-height:21px;letter-spacing:.8px}::ng-deep .k-grid-norecords{text-align:left;opacity:.4}::ng-deep .k-grid-norecords td{padding:14px 0 14px 24px!important}::ng-deep .k-column-title{font-family:Mulish,sans-serif;font-weight:700;font-style:normal;font-size:16px;line-height:24px;letter-spacing:.2px}::ng-deep .k-grid .k-hierarchy-cell{width:0;display:none}::ng-deep .k-grid th.k-header{border-width:0}::ng-deep .kebab-column,::ng-deep .delete-column,::ng-deep .grid-column,::ng-deep .checkbox-column{border-left:hidden!important}::ng-deep .checkbox-column{padding:.75rem 0rem .5rem 1rem!important}::ng-deep .k-grid .k-hierarchy-col{width:0;display:none}::ng-deep .k-grid .k-detail-row .k-detail-cell{padding:16px 8px 8px 16px}::ng-deep .k-grid th.k-header input.k-checkbox{margin-left:.5rem}::ng-deep .arrow-btn{padding:.5rem!important}::ng-deep .trash-icon path{color:#dc267f!important}::ng-deep kendo-tooltip.k-tooltip{background-color:#fff;color:#000}::ng-deep .delete-column{padding:8px 0}::ng-deep .k-grid-header{border-bottom-width:0px}\n"] }]
185
+ }], ctorParameters: function () { return []; }, propDecorators: { templateRef: [{
186
+ type: ContentChild,
187
+ args: ['multiColumnData']
188
+ }], detailTemplate: [{
189
+ type: ContentChild,
190
+ args: ['detailTemplate']
191
+ }], impactColumn: [{
192
+ type: ContentChild,
193
+ args: ['impactColumn']
194
+ }], grid: [{
195
+ type: ViewChild,
196
+ args: [GridComponent]
197
+ }], gridData: [{
198
+ type: Input
199
+ }], columnData: [{
200
+ type: Input
201
+ }], pageSize: [{
202
+ type: Input
203
+ }], pageable: [{
204
+ type: Input
205
+ }], sortable: [{
206
+ type: Input
207
+ }], groupable: [{
208
+ type: Input
209
+ }], reorderable: [{
210
+ type: Input
211
+ }], resizable: [{
212
+ type: Input
213
+ }], checkBoxWidth: [{
214
+ type: Input
215
+ }], checkBoxColumnResizable: [{
216
+ type: Input
217
+ }], checkBoxColumnMenu: [{
218
+ type: Input
219
+ }], checkBoxColumnShowSelectedAll: [{
220
+ type: Input
221
+ }], checkBoxRequired: [{
222
+ type: Input
223
+ }], columnMenu: [{
224
+ type: Input
225
+ }], mode: [{
226
+ type: Input
227
+ }], checkboxOnly: [{
228
+ type: Input
229
+ }], dragColumns: [{
230
+ type: Input
231
+ }], navigable: [{
232
+ type: Input
233
+ }], height: [{
234
+ type: Input
235
+ }], gridRowSelectByValue: [{
236
+ type: Input
237
+ }], noRecordsContent: [{
238
+ type: Input
239
+ }], selectedRowData: [{
240
+ type: Output
241
+ }], showToolbar: [{
242
+ type: Input
243
+ }], kebabList: [{
244
+ type: Input
245
+ }], showKebab: [{
246
+ type: Input
247
+ }], rowDetails: [{
248
+ type: Output
249
+ }], kebabItemClick: [{
250
+ type: Output
251
+ }], icon: [{
252
+ type: Input
253
+ }], kebabColumnWidth: [{
254
+ type: Input
255
+ }], rowDataOfClickedCell: [{
256
+ type: Output
257
+ }], preSelected: [{
258
+ type: Input
259
+ }], ignoreColumnCellClick: [{
260
+ type: Input
261
+ }], allowColumnClick: [{
262
+ type: Input
263
+ }], expandRowIndex: [{
264
+ type: Input
265
+ }], customExpandRowColumn: [{
266
+ type: Input
267
+ }], deleteColumnWidth: [{
268
+ type: Input
269
+ }], expandRowColumnWidth: [{
270
+ type: Input
271
+ }], deletedRowData: [{
272
+ type: Output
273
+ }], expandRows: [{
274
+ type: Input
275
+ }], showDeleteColumn: [{
276
+ type: Input
277
+ }] } });
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9tb2xlY3VsZXMvZ3JpZC9ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkL2dyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFJTCxhQUFhLEdBQ2QsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixhQUFhLEVBQ2IsU0FBUyxHQUNWLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7QUFPbkMsTUFBTSxPQUFPLGdCQUFnQjtJQXNEM0I7UUFoRFMsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUNuQixlQUFVLEdBQVEsRUFBRSxDQUFDO1FBQ3JCLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFDckIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUMzQiw0QkFBdUIsR0FBWSxLQUFLLENBQUM7UUFDekMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBQ3BDLGtDQUE2QixHQUFZLElBQUksQ0FBQztRQUM5QyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixTQUFJLEdBQStCLFVBQVUsQ0FBQztRQUM5Qyxp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QUF2QixNQUFNO2dCQUNFLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNlbGVjdGFibGVTZXR0aW5ncyxcbiAgU2VsZWN0YWJsZU1vZGUsXG4gIENlbGxDbGlja0V2ZW50LFxuICBHcmlkQ29tcG9uZW50LFxufSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1ncmlkJztcbmltcG9ydCB7XG4gIFNWR0ljb24sXG4gIG1vcmVWZXJ0aWNhbEljb24sXG4gIGNoZXZyb25Eb3duSWNvbixcbiAgY2hldnJvblVwSWNvbixcbiAgdHJhc2hJY29uLFxufSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tc3ZnLWljb25zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWdyaWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dyaWQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTGliR3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBDb250ZW50Q2hpbGQoJ211bHRpQ29sdW1uRGF0YScpIHRlbXBsYXRlUmVmITogVGVtcGxhdGVSZWY8YW55PiB8IG51bGw7XG4gIEBDb250ZW50Q2hpbGQoJ2RldGFpbFRlbXBsYXRlJykgZGV0YWlsVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcbiAgQENvbnRlbnRDaGlsZCgnaW1wYWN0Q29sdW1uJykgaW1wYWN0Q29sdW1uITogVGVtcGxhdGVSZWY8YW55PiB8IG51bGw7XG4gIEBWaWV3Q2hpbGQoR3JpZENvbXBvbmVudCkgZ3JpZCE6IEdyaWRDb21wb25lbnQ7XG5cbiAgQElucHV0KCkgZ3JpZERhdGE6IGFueSA9IFtdO1xuICBASW5wdXQoKSBjb2x1bW5EYXRhOiBhbnkgPSBbXTtcbiAgQElucHV0KCkgcGFnZVNpemU6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIHBhZ2VhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNvcnRhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGdyb3VwYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZW9yZGVyYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZXNpemFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY2hlY2tCb3hXaWR0aDogbnVtYmVyID0gMjg7XG4gIEBJbnB1dCgpIGNoZWNrQm94Q29sdW1uUmVzaXphYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNoZWNrQm94Q29sdW1uTWVudTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjaGVja0JveENvbHVtblNob3dTZWxlY3RlZEFsbDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGNoZWNrQm94UmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY29sdW1uTWVudTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtb2RlOiBTZWxlY3RhYmxlTW9kZSB8IHVuZGVmaW5lZCA9ICdtdWx0aXBsZSc7XG4gIEBJbnB1dCgpIGNoZWNrYm94T25seSA9IHRydWU7XG4gIEBJbnB1dCgpIGRyYWdDb2x1bW5zID0gZmFsc2U7XG4gIEBJbnB1dCgpIG5hdmlnYWJsZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGhlaWdodCE6IG51bWJlcjtcbiAgQElucHV0KCkgZ3JpZFJvd1NlbGVjdEJ5VmFsdWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBub1JlY29yZHNDb250ZW50OiBzdHJpbmcgPSAnTm8gUmVjb3JkcyBBdmFpbGFibGUnO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRSb3dEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgQElucHV0KCkgc2hvd1Rvb2xiYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXh0cmFjdERhdGFJdGVtczogYW55O1xuICBzZWxlY3RhYmxlU2V0dGluZ3M6IFNlbGVjdGFibGVTZXR0aW5ncyA9IHt9O1xuICBASW5wdXQoKSBrZWJhYkxpc3Q6IGFueSA9IFtdO1xuICBASW5wdXQoKSBzaG93S2ViYWI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHJvd0RldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuICBAT3V0cHV0KCkga2ViYWJJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgaWNvbjogU1ZHSWNvbiA9IG1vcmVWZXJ0aWNhbEljb247XG4gIEBJbnB1dCgpIGtlYmFiQ29sdW1uV2lkdGg6IG51bWJlciA9IDYwO1xuICBkYXRhOiBhbnkgPSBbXTtcbiAgQE91dHB1dCgpIHJvd0RhdGFPZkNsaWNrZWRDZWxsID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIHByZVNlbGVjdGVkOiBhbnlbXSA9IFtdO1xuICBwcmVTZWxlY3RlZFJlY29yZHM6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIGlnbm9yZUNvbHVtbkNlbGxDbGljazogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgYWxsb3dDb2x1bW5DbGljazogYm9vbGVhbiA9IHRydWU7XG4gIHB1YmxpYyBhcnJvd0Rvd25JY29uOiBTVkdJY29uID0gY2hldnJvbkRvd25JY29uO1xuICBwdWJsaWMgYXJyb3dVcEljb246IFNWR0ljb24gPSBjaGV2cm9uVXBJY29uO1xuICBASW5wdXQoKSBleHBhbmRSb3dJbmRleDogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgY3VzdG9tRXhwYW5kUm93Q29sdW1uOmJvb2xlYW4gPSB0cnVlO1xuICBkZWxldGVJY29uOlNWR0ljb24gPSB0cmFzaEljb247XG4gIEBJbnB1dCgpIGRlbGV0ZUNvbHVtbldpZHRoOm51bWJlciA9IDQyO1xuICBASW5wdXQoKSBleHBhbmRSb3dDb2x1bW5XaWR0aDpudW1iZXIgPSA0MjtcbiAgQE91dHB1dCgpIGRlbGV0ZWRSb3dEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGV4cGFuZFJvd3M6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd0RlbGV0ZUNvbHVtbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc2V0U2VsZWN0YWJsZVNldHRpbmdzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgbGV0IHByZXZQcmVTZWxlY3RlZCA9IEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ3ByZVNlbGVjdGVkJ10/LnByZXZpb3VzVmFsdWUpO1xuICAgIGxldCBjdXJyUHJlU2VsZWN0ZWQgPSBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydwcmVTZWxlY3RlZCddPy5jdXJyZW50VmFsdWUpO1xuICAgIC8vIENoZWNrIGlmIHRoZXJlIGlzIGEgY2hhbmdlIGluIHRoaXMucHJlU2VsZWN0ZWQgaW5wdXRcbiAgICBpZiAocHJldlByZVNlbGVjdGVkICE9PSBjdXJyUHJlU2VsZWN0ZWQpIHtcbiAgICAgIC8vIENsZWFyIHRoZSB0aGlzLnByZVNlbGVjdGVkUmVjb3JkcyBhcnJheVxuICAgICAgdGhpcy5wcmVTZWxlY3RlZFJlY29yZHMgPSBbXTtcbiAgICAgIGZvciAoXG4gICAgICAgIGxldCByb3cgPSAwO1xuICAgICAgICByb3cgPCBjaGFuZ2VzWydwcmVTZWxlY3RlZCddLmN1cnJlbnRWYWx1ZS5sZW5ndGg7XG4gICAgICAgIHJvdysrXG4gICAgICApIHtcbiAgICAgICAgZm9yIChsZXQgY29sID0gMDsgY29sIDwgdGhpcy5ncmlkRGF0YS5sZW5ndGg7IGNvbCsrKSB7XG4gICAgICAgICAgLy8gRmluZCB0aGUgcmVsZXZhbnQgcmVjb3JkIGZvciBhIHBhcnRpY3VsYXIgaWRcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmdyaWREYXRhW2NvbF1bdGhpcy5ncmlkUm93U2VsZWN0QnlWYWx1ZV0gPT09XG4gICAgICAgICAgICBjaGFuZ2VzWydwcmVTZWxlY3RlZCddLmN1cnJlbnRWYWx1ZVtyb3ddXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoaXMgcmVjb3JkIGlzIHByZXNlbnQgaW4gdGhpcy5kYXRhLCBpZiB5ZXMgZG9uJ3QgcHVzaCBpdCBpbiB0aGlzLnByZVNlbGVjdGVkUmVjb3JkcyBlbHNlIHB1c2ggaXRcbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLmRhdGEubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFbaW5kZXhdW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdID09PVxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZERhdGFbY29sXVt0aGlzLmdyaWRSb3dTZWxlY3RCeVZhbHVlXVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghZm91bmQpIHtcbiAgICAgICAgICAgICAgdGhpcy5wcmVTZWxlY3RlZFJlY29yZHMucHVzaCh0aGlzLmdyaWREYXRhW2NvbF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5zZWxlY3RlZFJvd0RhdGEuZW1pdCh0aGlzLnByZVNlbGVjdGVkUmVjb3Jkcy5jb25jYXQodGhpcy5kYXRhKSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wYWdlYWJsZSkge1xuICAgICAgdGhpcy5wYWdlU2l6ZSA9IHRoaXMuZ3JpZERhdGEubGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZih0aGlzLmN1c3RvbUV4cGFuZFJvd0NvbHVtbil7XG4gICAgICB0aGlzLmV4cGFuZFJvd0luZGV4LmZvckVhY2goKGlkKSA9PiB7XG4gICAgICAgIHRoaXMuZ3JpZC5leHBhbmRSb3coaWQpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2V0U2VsZWN0YWJsZVNldHRpbmdzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNoZWNrYm94T25seSB8fCB0aGlzLm1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICB0aGlzLmRyYWdDb2x1bW5zID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RhYmxlU2V0dGluZ3MgPSB7XG4gICAgICBjaGVja2JveE9ubHk6IHRoaXMuY2hlY2tib3hPbmx5LFxuICAgICAgbW9kZTogdGhpcy5tb2RlLFxuICAgICAgZHJhZzogdGhpcy5kcmFnQ29sdW1ucyxcbiAgICB9O1xuICB9XG5cbiAgLy8gV2UgY2FuIGV4dHJhY3QgZGF0YSBvdXQgb2Ygcm93IG51bWJlciB1c2luZyBiZWxvdyBmdW5jdGlvblxuICAvKiBleHRyYWN0KCkge1xuICAgIHRoaXMuZXh0cmFjdERhdGFJdGVtcyA9IHRoaXMubXlTZWxlY3Rpb24ubWFwKGlkeCA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5ncmlkRGF0YS5maW5kKChkYXRhOiB7IFByb2R1Y3RJRDogbnVtYmVyOyB9KSA9PiBkYXRhLlByb2R1Y3RJRCA9PT0gaWR4KTtcbiAgICB9KTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmV4dHJhY3REYXRhSXRlbXMpXG4gICAgdGhpcy5zZWxlY3RlZFJvd0RhdGEuZW1pdCh0aGlzLmV4dHJhY3REYXRhSXRlbXMpO1xuICB9ICovXG5cbiAgb25TZWxlY3Rpb25DaGFuZ2UoYXJnczogYW55KTogYW55IHtcbiAgICBmb3IgKGxldCByb3cgPSAwOyByb3cgPCBhcmdzLnNlbGVjdGVkUm93cy5sZW5ndGg7IHJvdysrKSB7XG4gICAgICB2YXIgZm91bmQgPSBmYWxzZTtcbiAgICAgIGZvciAobGV0IGNvbCA9IDA7IGNvbCA8IHRoaXMuZGF0YS5sZW5ndGg7IGNvbCsrKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmRhdGFbY29sXVt0aGlzLmdyaWRSb3dTZWxlY3RCeVZhbHVlXSA9PT1cbiAgICAgICAgICBhcmdzLnNlbGVjdGVkUm93c1tyb3ddLmRhdGFJdGVtW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdXG4gICAgICAgICkge1xuICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCFmb3VuZCkge1xuICAgICAgICB0aGlzLmRhdGEucHVzaChhcmdzLnNlbGVjdGVkUm93c1tyb3ddLmRhdGFJdGVtKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGFyZ3MuZGVzZWxlY3RlZFJvd3MubGVuZ3RoICE9PSAwKSB7XG4gICAgICBmb3IgKGxldCByb3cgPSAwOyByb3cgPCBhcmdzLmRlc2VsZWN0ZWRSb3dzLmxlbmd0aDsgcm93KyspIHtcbiAgICAgICAgZm9yIChsZXQgY29sID0gMDsgY29sIDwgdGhpcy5kYXRhLmxlbmd0aDsgY29sKyspIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmRhdGFbY29sXVt0aGlzLmdyaWRSb3dTZWxlY3RCeVZhbHVlXSA9PT1cbiAgICAgICAgICAgIGFyZ3MuZGVzZWxlY3RlZFJvd3Nbcm93XS5kYXRhSXRlbVt0aGlzLmdyaWRSb3dTZWxlY3RCeVZhbHVlXVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5kYXRhLnNwbGljZShjb2wsIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBjb2wgPSAwOyBjb2wgPCB0aGlzLnByZVNlbGVjdGVkUmVjb3Jkcy5sZW5ndGg7IGNvbCsrKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5wcmVTZWxlY3RlZFJlY29yZHNbY29sXVt0aGlzLmdyaWRSb3dTZWxlY3RCeVZhbHVlXSA9PT1cbiAgICAgICAgICAgIGFyZ3MuZGVzZWxlY3RlZFJvd3Nbcm93XS5kYXRhSXRlbVt0aGlzLmdyaWRSb3dTZWxlY3RCeVZhbHVlXVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5wcmVTZWxlY3RlZFJlY29yZHMuc3BsaWNlKGNvbCwgMSk7XG4gICAgICAgICAgICAvLyBSZW1vdmUgdGhpcyBlbGVtZW50IGZyb20gcHJlc2VsZWN0ZWRcbiAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMucHJlU2VsZWN0ZWQuaW5kZXhPZihcbiAgICAgICAgICAgICAgYXJncy5kZXNlbGVjdGVkUm93c1tyb3ddLmRhdGFJdGVtW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICB0aGlzLnByZVNlbGVjdGVkLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRSb3dEYXRhLmVtaXQodGhpcy5wcmVTZWxlY3RlZFJlY29yZHMuY29uY2F0KHRoaXMuZGF0YSkpO1xuICB9XG5cbiAgb25LZWJhYkNsaWNrKGl0ZW06IGFueSwgcm93RGV0YWlsczogYW55KSB7XG4gICAgdGhpcy5rZWJhYkl0ZW1DbGljay5lbWl0KHsgYWN0aW9uOiBpdGVtLCByb3dEZXRhaWxzIH0pO1xuICB9XG5cbiAgb25EZXRhaWxFeHBhbmQocm93RGF0YTogYW55KSB7XG4gICAgdGhpcy5yb3dEZXRhaWxzLmVtaXQocm93RGF0YS5kYXRhSXRlbSk7XG4gIH1cblxuICBjZWxsQ2xpY2tIYW5kbGVyKGFyZ3M6IENlbGxDbGlja0V2ZW50KSB7XG4gICAgaWYgKHRoaXMuYWxsb3dDb2x1bW5DbGljaykge1xuICAgICAgaWYgKHRoaXMuaWdub3JlQ29sdW1uQ2VsbENsaWNrLmluY2x1ZGVzKGFyZ3MuY29sdW1uSW5kZXgpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMucm93RGF0YU9mQ2xpY2tlZENlbGwuZW1pdChhcmdzLmRhdGFJdGVtKTtcbiAgICB9XG4gIH1cblxuICBleHBhbmRSb3coaWQ6IG51bWJlcikge1xuICAgIHRoaXMuZ3JpZC5leHBhbmRSb3coaWQpO1xuICAgIHRoaXMuZXhwYW5kUm93SW5kZXgucHVzaChpZCk7XG4gIH1cblxuICBjb2xsYXBzZVJvdyhpZDogbnVtYmVyKSB7XG4gICAgdGhpcy5ncmlkLmNvbGxhcHNlUm93KGlkKTtcbiAgICB0aGlzLmV4cGFuZFJvd0luZGV4LnNwbGljZSh0aGlzLmV4cGFuZFJvd0luZGV4LmluZGV4T2YoaWQpLCAxKTtcbiAgfVxuXG4gIG9uRGVsZXRlKHJvd0RldGFpbHM6IGFueSkge1xuICAgIHRoaXMuZGVsZXRlZFJvd0RhdGEuZW1pdChyb3dEZXRhaWxzKTtcbiAgfVxufVxuIiwiPGtlbmRvLWdyaWQgW2tlbmRvR3JpZEJpbmRpbmddPVwiZ3JpZERhdGFcIiBbcGFnZVNpemVdPVwicGFnZVNpemVcIiBbc2VsZWN0YWJsZV09XCJzZWxlY3RhYmxlU2V0dGluZ3NcIiBbcGFnZWFibGVdPVwicGFnZWFibGVcIlxuICBbc29ydGFibGVdPVwic29ydGFibGVcIiBbZ3JvdXBhYmxlXT1cImdyb3VwYWJsZVwiIFtyZW9yZGVyYWJsZV09XCJyZW9yZGVyYWJsZVwiIFtyZXNpemFibGVdPVwicmVzaXphYmxlXCJcbiAgW2NvbHVtbk1lbnVdPVwiY29sdW1uTWVudVwiIFtuYXZpZ2FibGVdPVwibmF2aWdhYmxlXCIgW2hlaWdodF09XCJoZWlnaHRcIiAoY2hhbmdlKT1cInNldFNlbGVjdGFibGVTZXR0aW5ncygpXCJcbiAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCIgW2tlbmRvR3JpZFNlbGVjdEJ5XT1cImdyaWRSb3dTZWxlY3RCeVZhbHVlXCJcbiAgKGRldGFpbEV4cGFuZCk9XCJvbkRldGFpbEV4cGFuZCgkZXZlbnQpXCIgW3NlbGVjdGVkS2V5c109XCJwcmVTZWxlY3RlZFwiIChjZWxsQ2xpY2spPVwiY2VsbENsaWNrSGFuZGxlcigkZXZlbnQpXCI+XG5cbiAgPG5nLXRlbXBsYXRlICpuZ0lmPVwic2hvd1Rvb2xiYXJcIiBrZW5kb0dyaWRUb29sYmFyVGVtcGxhdGU+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSAqbmdJZj1cInRoaXMuZ3JpZERhdGEubGVuZ3RoID09PSAwXCIga2VuZG9HcmlkTm9SZWNvcmRzVGVtcGxhdGU+XG4gICAgPGxpYi10eXBvZ3JhcGh5IFtkZWZhdWx0VGV4dF09XCJub1JlY29yZHNDb250ZW50XCIgdHlwZT1cIlBfTVVMSVNIXzE2X1JFR1VMQVJcIj48L2xpYi10eXBvZ3JhcGh5PlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJncmlkRGF0YS5sZW5ndGggPiAwXCI+XG4gICAgPGtlbmRvLWdyaWQtY2hlY2tib3gtY29sdW1uICpuZ0lmPVwiY2hlY2tCb3hSZXF1aXJlZCA9PT0gdHJ1ZVwiIFt3aWR0aF09XCJjaGVja0JveFdpZHRoXCJcbiAgICAgIFtyZXNpemFibGVdPVwiY2hlY2tCb3hDb2x1bW5SZXNpemFibGVcIiBbY29sdW1uTWVudV09XCJjaGVja0JveENvbHVtbk1lbnVcIlxuICAgICAgW3Nob3dTZWxlY3RBbGxdPVwiY2hlY2tCb3hDb2x1bW5TaG93U2VsZWN0ZWRBbGxcIiBjbGFzcz1cImNoZWNrYm94LWNvbHVtblwiPlxuICAgIDwva2VuZG8tZ3JpZC1jaGVja2JveC1jb2x1bW4+XG5cbiAgICA8a2VuZG8tZ3JpZC1jb2x1bW4gKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29sdW1uRGF0YVwiIFtmaWVsZF09XCJpdGVtLmZpZWxkXCIgW3RpdGxlXT1cIml0ZW0udGl0bGVcIlxuICAgICAgW3dpZHRoXT1cIml0ZW0uY29sdW1uV2lkdGhcIiBjbGFzcz1cImdyaWQtY29sdW1uXCI+XG4gICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJpdGVtLmN1c3RvbVwiIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZVJlZjsgY29udGV4dDogeyRpbXBsaWNpdDogZGF0YUl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiaXRlbS5pbXBhY3RcIiBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW1wYWN0Q29sdW1uOyBjb250ZXh0OiB7JGltcGxpY2l0OiBkYXRhSXRlbX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9rZW5kby1ncmlkLWNvbHVtbj5cblxuICAgIDxrZW5kby1ncmlkLWNvbHVtbiAqbmdJZj1cInNob3dEZWxldGVDb2x1bW5cIiBbd2lkdGhdPVwiZGVsZXRlQ29sdW1uV2lkdGhcIiBjbGFzcz1cImRlbGV0ZS1jb2x1bW5cIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XG4gICAgICAgIDxsaWItdG9vbHRpcCBzaG93T249XCJob3ZlclwiIHBvc2l0aW9uPVwiYm90dG9tXCIgY2xhc3M9XCJyZW1vdmUtdG9vbHRpcFwiPlxuICAgICAgICAgIDxrZW5kby1idXR0b24gW3N2Z0ljb25dPVwiZGVsZXRlSWNvblwiIHRpdGxlPVwiZGVsZXRlXCIgZmlsbE1vZGU9XCJjbGVhclwiIChjbGljayk9XCJvbkRlbGV0ZShkYXRhSXRlbSlcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0cmFzaC1pY29uXCI+PC9rZW5kby1idXR0b24+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2x0aXAtY29udGVudFwiPlxuICAgICAgICAgICAgPHA+UmVtb3ZlPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2xpYi10b29sdGlwPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2tlbmRvLWdyaWQtY29sdW1uPlxuXG4gICAgPGtlbmRvLWdyaWQtY29sdW1uIFt3aWR0aF09XCJrZWJhYkNvbHVtbldpZHRoXCIgY2xhc3M9XCJrZWJhYi1jb2x1bW5cIiAqbmdJZj1cInNob3dLZWJhYlwiPlxuICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0gbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgICAgICAgPGtlbmRvLWRyb3Bkb3duYnV0dG9uIFtzdmdJY29uXT1cImljb25cIiBmaWxsTW9kZT1cImNsZWFyXCIgW2RhdGFdPVwia2ViYWJMaXN0XCIgY2xhc3M9XCJrZWJhYlwiXG4gICAgICAgICAgKGl0ZW1DbGljayk9XCJvbktlYmFiQ2xpY2soJGV2ZW50LCBkYXRhSXRlbSlcIlxuICAgICAgICAgIFtwb3B1cFNldHRpbmdzXT1cInsgYWxpZ246ICdyaWdodCcsIGFuaW1hdGU6IHRydWUsIHBvcHVwQ2xhc3M6ICdrZWJhYi1saXN0JyB9XCI+PC9rZW5kby1kcm9wZG93bmJ1dHRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9rZW5kby1ncmlkLWNvbHVtbj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZERldGFpbFRlbXBsYXRlIGxldC1kYXRhSXRlbT5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGV0YWlsVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGRhdGFJdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxrZW5kby1ncmlkLWNvbHVtbiAqbmdJZj1cImN1c3RvbUV4cGFuZFJvd0NvbHVtblwiIFt3aWR0aF09XCJleHBhbmRSb3dDb2x1bW5XaWR0aFwiIGNsYXNzPVwiZ3JpZC1jb2x1bW5cIj5cbiAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbSBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxuICAgICAgPGtlbmRvLWJ1dHRvbiAqbmdJZj1cIiFleHBhbmRSb3dJbmRleC5pbmNsdWRlcyhyb3dJbmRleClcIiBbc3ZnSWNvbl09XCJhcnJvd0Rvd25JY29uXCIgKGNsaWNrKT1cImV4cGFuZFJvdyhyb3dJbmRleClcIlxuICAgICAgICBmaWxsTW9kZT1cImZsYXRcIiBjbGFzcz1cImFycm93LWJ0blwiPlxuICAgICAgPC9rZW5kby1idXR0b24+XG4gICAgICA8a2VuZG8tYnV0dG9uICpuZ0lmPVwiZXhwYW5kUm93SW5kZXguaW5jbHVkZXMocm93SW5kZXgpXCIgW3N2Z0ljb25dPVwiYXJyb3dVcEljb25cIiAoY2xpY2spPVwiY29sbGFwc2VSb3cocm93SW5kZXgpXCJcbiAgICAgICAgZmlsbE1vZGU9XCJmbGF0XCIgY2xhc3M9XCJhcnJvdy1idG5cIj5cbiAgICAgIDwva2VuZG8tYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwva2VuZG8tZ3JpZC1jb2x1bW4+XG5cbjwva2VuZG8tZ3JpZD5cbiJdfQ==
@@ -0,0 +1,61 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { LibGridComponent } from './grid.component';
4
+ import { GridSpacerComponent } from './grid-spacer/grid-spacer.component';
5
+ import { GridModule } from '@progress/kendo-angular-grid';
6
+ import { ButtonsModule } from '@progress/kendo-angular-buttons';
7
+ import { InputsModule } from '@progress/kendo-angular-inputs';
8
+ import { DialogModule } from '@progress/kendo-angular-dialog';
9
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
10
+ import { TypographyModule } from './../../atoms/typography/typography.module';
11
+ import { GridFormComponent } from './grid-form/grid-form.component';
12
+ import { IconModule } from '../../atoms/icon/icon.module';
13
+ import { IconsModule } from "@progress/kendo-angular-icons";
14
+ import { TooltipModule } from '../../atoms/tooltip/tooltip.module';
15
+ import * as i0 from "@angular/core";
16
+ export class GridsModule {
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
18
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: GridsModule, declarations: [LibGridComponent, GridSpacerComponent, GridFormComponent], imports: [CommonModule,
19
+ ButtonsModule,
20
+ IconModule,
21
+ IconsModule,
22
+ InputsModule,
23
+ GridModule,
24
+ DialogModule,
25
+ FormsModule,
26
+ TooltipModule,
27
+ ReactiveFormsModule,
28
+ TypographyModule], exports: [LibGridComponent, GridSpacerComponent, GridFormComponent] }); }
29
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridsModule, imports: [CommonModule,
30
+ ButtonsModule,
31
+ IconModule,
32
+ IconsModule,
33
+ InputsModule,
34
+ GridModule,
35
+ DialogModule,
36
+ FormsModule,
37
+ TooltipModule,
38
+ ReactiveFormsModule,
39
+ TypographyModule] }); }
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridsModule, decorators: [{
42
+ type: NgModule,
43
+ args: [{
44
+ declarations: [LibGridComponent, GridSpacerComponent, GridFormComponent],
45
+ imports: [
46
+ CommonModule,
47
+ ButtonsModule,
48
+ IconModule,
49
+ IconsModule,
50
+ InputsModule,
51
+ GridModule,
52
+ DialogModule,
53
+ FormsModule,
54
+ TooltipModule,
55
+ ReactiveFormsModule,
56
+ TypographyModule
57
+ ],
58
+ exports: [LibGridComponent, GridSpacerComponent, GridFormComponent],
59
+ }]
60
+ }] });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9tb2xlY3VsZXMvZ3JpZC9ncmlkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQW1CbkUsTUFBTSxPQUFPLFdBQVc7K0dBQVgsV0FBVztnSEFBWCxXQUFXLGlCQWhCUCxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsYUFFckUsWUFBWTtZQUNaLGFBQWE7WUFDYixVQUFVO1lBQ1YsV0FBVztZQUNYLFlBQVk7WUFDWixVQUFVO1lBQ1YsWUFBWTtZQUNaLFdBQVc7WUFDWCxhQUFhO1lBQ2IsbUJBQW1CO1lBQ25CLGdCQUFnQixhQUVSLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQjtnSEFFdkQsV0FBVyxZQWRwQixZQUFZO1lBQ1osYUFBYTtZQUNiLFVBQVU7WUFDVixXQUFXO1lBQ1gsWUFBWTtZQUNaLFVBQVU7WUFDVixZQUFZO1lBQ1osV0FBVztZQUNYLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsZ0JBQWdCOzs0RkFJUCxXQUFXO2tCQWpCdkIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsQ0FBQztvQkFDeEUsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixVQUFVO3dCQUNWLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixVQUFVO3dCQUNWLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3FCQUNqQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsQ0FBQztpQkFDcEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IExpYkdyaWRDb21wb25lbnQgfSBmcm9tICcuL2dyaWQuY29tcG9uZW50JztcbmltcG9ydCB7IEdyaWRTcGFjZXJDb21wb25lbnQgfSBmcm9tICcuL2dyaWQtc3BhY2VyL2dyaWQtc3BhY2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkTW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItZ3JpZCc7XG5pbXBvcnQgeyBCdXR0b25zTW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItYnV0dG9ucyc7XG5pbXBvcnQgeyBJbnB1dHNNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1pbnB1dHMnO1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItZGlhbG9nJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeU1vZHVsZSB9IGZyb20gJy4vLi4vLi4vYXRvbXMvdHlwb2dyYXBoeS90eXBvZ3JhcGh5Lm1vZHVsZSc7XG5pbXBvcnQgeyBHcmlkRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vZ3JpZC1mb3JtL2dyaWQtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbk1vZHVsZSB9IGZyb20gJy4uLy4uL2F0b21zL2ljb24vaWNvbi5tb2R1bGUnO1xuaW1wb3J0IHsgSWNvbnNNb2R1bGUgfSBmcm9tIFwiQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItaWNvbnNcIjtcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICcuLi8uLi9hdG9tcy90b29sdGlwL3Rvb2x0aXAubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTGliR3JpZENvbXBvbmVudCwgR3JpZFNwYWNlckNvbXBvbmVudCwgR3JpZEZvcm1Db21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJ1dHRvbnNNb2R1bGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBJY29uc01vZHVsZSxcbiAgICBJbnB1dHNNb2R1bGUsXG4gICAgR3JpZE1vZHVsZSxcbiAgICBEaWFsb2dNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgVG9vbHRpcE1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFR5cG9ncmFwaHlNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW0xpYkdyaWRDb21wb25lbnQsIEdyaWRTcGFjZXJDb21wb25lbnQsIEdyaWRGb3JtQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgR3JpZHNNb2R1bGUgeyB9XG4iXX0=