@acorex/data-grid 3.0.22 → 3.0.26

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 (94) hide show
  1. package/README.md +2 -2
  2. package/acorex-data-grid.d.ts +4 -0
  3. package/acorex-data-grid.metadata.json +1 -0
  4. package/bundles/acorex-data-grid.umd.js +2224 -0
  5. package/bundles/acorex-data-grid.umd.js.map +1 -0
  6. package/bundles/acorex-data-grid.umd.min.js +16 -0
  7. package/bundles/acorex-data-grid.umd.min.js.map +1 -0
  8. package/esm2015/acorex-data-grid.js +5 -0
  9. package/esm2015/lib/data-grid/columns/check-column.component.js +104 -0
  10. package/esm2015/lib/data-grid/columns/column.component.js +204 -0
  11. package/esm2015/lib/data-grid/columns/command-column.component.js +103 -0
  12. package/esm2015/lib/data-grid/columns/date-column.component.js +114 -0
  13. package/esm2015/lib/data-grid/columns/row-number-column.component.js +39 -0
  14. package/esm2015/lib/data-grid/columns/selection-column.component.js +42 -0
  15. package/esm2015/lib/data-grid/columns/text-column.component.js +81 -0
  16. package/esm2015/lib/data-grid/datagrid.component.js +709 -0
  17. package/esm2015/lib/data-grid/datagrid.events.js +1 -0
  18. package/esm2015/lib/data-grid/datagrid.module.js +98 -0
  19. package/esm2015/lib/data-grid/filters/filter.component.js +25 -0
  20. package/esm2015/lib/data-grid/templates/cell-template.component.js +47 -0
  21. package/esm2015/lib/data-grid/templates/detail-template.component.js +45 -0
  22. package/esm2015/lib/data-grid/templates/row-template.component.js +40 -0
  23. package/esm2015/lib/data-lov/data-lov-popup/data-lov-popup.component.js +121 -0
  24. package/esm2015/lib/data-lov/data-lov.component.js +206 -0
  25. package/esm2015/lib/data-lov/data-lov.module.js +21 -0
  26. package/esm2015/public-api.js +17 -0
  27. package/esm5/acorex-data-grid.js +5 -0
  28. package/esm5/lib/data-grid/columns/check-column.component.js +102 -0
  29. package/esm5/lib/data-grid/columns/column.component.js +206 -0
  30. package/esm5/lib/data-grid/columns/command-column.component.js +98 -0
  31. package/esm5/lib/data-grid/columns/date-column.component.js +119 -0
  32. package/esm5/lib/data-grid/columns/row-number-column.component.js +42 -0
  33. package/esm5/lib/data-grid/columns/selection-column.component.js +46 -0
  34. package/esm5/lib/data-grid/columns/text-column.component.js +81 -0
  35. package/esm5/lib/data-grid/datagrid.component.js +767 -0
  36. package/esm5/lib/data-grid/datagrid.events.js +1 -0
  37. package/esm5/lib/data-grid/datagrid.module.js +101 -0
  38. package/esm5/lib/data-grid/filters/filter.component.js +16 -0
  39. package/esm5/lib/data-grid/templates/cell-template.component.js +46 -0
  40. package/esm5/lib/data-grid/templates/detail-template.component.js +49 -0
  41. package/esm5/lib/data-grid/templates/row-template.component.js +44 -0
  42. package/esm5/lib/data-lov/data-lov-popup/data-lov-popup.component.js +127 -0
  43. package/esm5/lib/data-lov/data-lov.component.js +216 -0
  44. package/esm5/lib/data-lov/data-lov.module.js +24 -0
  45. package/esm5/public-api.js +17 -0
  46. package/fesm2015/acorex-data-grid.js +1901 -0
  47. package/fesm2015/acorex-data-grid.js.map +1 -0
  48. package/fesm5/acorex-data-grid.js +1980 -0
  49. package/fesm5/acorex-data-grid.js.map +1 -0
  50. package/lib/data-grid/columns/check-column.component.d.ts +30 -0
  51. package/lib/data-grid/columns/column.component.d.ts +29 -0
  52. package/lib/data-grid/columns/command-column.component.d.ts +22 -0
  53. package/lib/data-grid/columns/date-column.component.d.ts +27 -0
  54. package/lib/data-grid/columns/row-number-column.component.d.ts +7 -0
  55. package/lib/data-grid/columns/selection-column.component.d.ts +8 -0
  56. package/lib/data-grid/columns/text-column.component.d.ts +20 -0
  57. package/lib/data-grid/datagrid.component.d.ts +129 -0
  58. package/{src/lib/data-grid/datagrid.events.ts → lib/data-grid/datagrid.events.d.ts} +20 -23
  59. package/lib/data-grid/datagrid.module.d.ts +3 -0
  60. package/lib/data-grid/filters/filter.component.d.ts +2 -0
  61. package/lib/data-grid/templates/cell-template.component.d.ts +17 -0
  62. package/lib/data-grid/templates/detail-template.component.d.ts +16 -0
  63. package/lib/data-grid/templates/row-template.component.d.ts +15 -0
  64. package/lib/data-lov/data-lov-popup/data-lov-popup.component.d.ts +29 -0
  65. package/lib/data-lov/data-lov.component.d.ts +39 -0
  66. package/lib/data-lov/data-lov.module.d.ts +2 -0
  67. package/package.json +27 -17
  68. package/{src/public-api.ts → public-api.d.ts} +17 -20
  69. package/karma.conf.js +0 -32
  70. package/ng-package.json +0 -12
  71. package/src/lib/data-grid/columns/check-column.component.ts +0 -113
  72. package/src/lib/data-grid/columns/column.component.ts +0 -181
  73. package/src/lib/data-grid/columns/command-column.component.ts +0 -102
  74. package/src/lib/data-grid/columns/date-column.component.ts +0 -119
  75. package/src/lib/data-grid/columns/row-number-column.component.ts +0 -36
  76. package/src/lib/data-grid/columns/selection-column.component.ts +0 -37
  77. package/src/lib/data-grid/columns/text-column.component.ts +0 -92
  78. package/src/lib/data-grid/datagrid.component.html +0 -26
  79. package/src/lib/data-grid/datagrid.component.ts +0 -724
  80. package/src/lib/data-grid/datagrid.module.ts +0 -93
  81. package/src/lib/data-grid/filters/filter.component.ts +0 -21
  82. package/src/lib/data-grid/templates/cell-template.component.ts +0 -47
  83. package/src/lib/data-grid/templates/detail-template.component.ts +0 -43
  84. package/src/lib/data-grid/templates/row-template.component.ts +0 -41
  85. package/src/lib/data-lov/data-lov-popup/data-lov-popup.component.html +0 -16
  86. package/src/lib/data-lov/data-lov-popup/data-lov-popup.component.ts +0 -135
  87. package/src/lib/data-lov/data-lov.component.html +0 -61
  88. package/src/lib/data-lov/data-lov.component.ts +0 -177
  89. package/src/lib/data-lov/data-lov.module.ts +0 -17
  90. package/src/test.ts +0 -26
  91. package/tsconfig.lib.json +0 -23
  92. package/tsconfig.lib.prod.json +0 -6
  93. package/tsconfig.spec.json +0 -17
  94. package/tslint.json +0 -17
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@acorex/data-grid/lib/data-grid/templates/cell-template.component.ts","ng://@acorex/data-grid/lib/data-grid/columns/column.component.ts","ng://@acorex/data-grid/lib/data-grid/columns/check-column.component.ts","ng://@acorex/data-grid/lib/data-grid/columns/command-column.component.ts","ng://@acorex/data-grid/lib/data-grid/columns/date-column.component.ts","ng://@acorex/data-grid/lib/data-grid/columns/selection-column.component.ts","ng://@acorex/data-grid/lib/data-grid/columns/text-column.component.ts","ng://@acorex/data-grid/lib/data-grid/columns/row-number-column.component.ts","ng://@acorex/data-grid/lib/data-grid/templates/row-template.component.ts","ng://@acorex/data-grid/lib/data-grid/templates/detail-template.component.ts","ng://@acorex/data-grid/lib/data-grid/datagrid.component.ts","ng://@acorex/data-grid/lib/data-grid/filters/filter.component.ts","ng://@acorex/data-grid/lib/data-grid/datagrid.module.ts","ng://@acorex/data-grid/lib/data-lov/data-lov-popup/data-lov-popup.component.ts","ng://@acorex/data-grid/lib/data-lov/data-lov.component.ts","ng://@acorex/data-grid/lib/data-lov/data-lov.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__metadata","metadataKey","metadataValue","metadata","__read","o","n","m","Symbol","iterator","e","call","ar","next","done","push","value","error","AXDataGridCellTemplateComponent","renderer","AXDataGridCellTemplateRenderer","ngOnInit","params","templateRef","ContentChild","TemplateRef","static","Component","selector","template","agInit","rowData","data","refresh","AXGridDataColumn","width","pinned","allowSorting","allowFiltering","AXConfig","get","sort","field","caption","checkbox","headerCheckbox","groupIndex","treeIndex","enableRowGroup","hide","floatingFilter","disableMenu","resizable","menuColumnDisable","menuItemDisable","render","col","suppressMenu","menuTabs","filter","headerName","minWidth","maxWidth","sortable","rowGroupIndex","rowGroup","cellClass","THAT_1","Function","column","rowIndex","node","rowLevel","level","cellTemplate","cellRendererFramework","cellRendererParams","checkboxSelection","Input","AXGridCheckColumn","_super","BooleanRenderer","filterFramework","BooleanFilterRenderer","AXGridCheckColumn_1","providers","provide","useExisting","changeDetection","ChangeDetectionStrategy","OnPush","selectItem","label","valueGetter","isFilterActive","undefined","doesFilterPass","getModel","setModel","model","ngAfterViewInit","_this","window","setTimeout","input","element","nativeElement","focus","onChange","newValue","filterChangedCallback","ViewChild","read","ViewContainerRef","AXGridCommandColumn","apply","items","onItemClick","EventEmitter","CommandRenderer","onClick","emit","command","name","htmlEvent","Output","AXGridCommandColumn_1","encapsulation","ViewEncapsulation","None","mapParams","isArray","clickCallback","item","disable","AXGridDateColumn","type","format","comparator","valueA","valueB","date1","AXDateTime","convert","date2","date","getTime","valueFormatter","AXGridDateColumn_1","AXDatePickerFilterComponent","selectableHoliday","ngOnDestroy","console","log","onDateChanged","selectedDates","getDate","setDate","setInputPlaceholder","placeholder","onValueChanged","AXDatePickerComponent","ElementRef","host","AXGridSelectionColumn","condition","AXGridSelectionColumn_1","AXGridTextColumn","AXGridTextColumn_1","TextFilterRenderer","AXTextBoxComponent","AXGridRowNumberColumn","AXGridRowNumberColumn_1","AXDataGridRowTemplateComponent","AXDataGridRowTemplateRenderer","callRecords","AXDataGridDetailTemplateComponent","height","AXDataGridDetailTemplateRenderer","LicenseManager","validateLicense","AXDataGridColumnsChangeEvent","AXValueEvent","AXDataGridCellEvent","AXDataEvent","AXDaagridRowClickEvent","AXDataGridSelectionChangeEvent","AXDataGridRowSelectionChangeEvent","AXDataGridComponent","ref","cdr","columnDefs","rowModelType","frameworkComponents","internalHeight","masterDetail","treeData","enabelSelect","gridView","groupSelectsChildren","oldSelectionNodes","remoteOperation","rowMultiSelectWithClick","suppressRowClickSelection","suppressCellSelection","sizeColumnsToFit","showCheckBox","autoGroupColumnDef","selectionMode","selectRow","rowGroupPanelShow","loadOnInit","keyField","hasChildField","columnsChange","_columns","defaultColDef","groupHideOpenParents","cellClick","cellDbClick","cellFocuse","rowClick","rowDbClick","selectionChanged","rowSelectionChange","onRowSelectionChanged","rtl","isServerSideGroup","getServerSideGroupKey","internalGetRowClass","rowClass","localeText","AXTranslator","_searchText","v","gridApi","setQuickFilter","searchText","_filter","forEach","f","fc","getFilterInstance","getFrameworkComponentInstance","_inlineColumns","concat","__spread","toArray","val","old","component","oldValue","htmlElement","_dataSource","_contentDataSource","getRowHeight","param","rowHeight","detailRowHeight","calcHeight","toolbar","that","rowCount","getRows","dataSourceSuccessCallback","successCallback","loadParams","skip","request","startRow","take","takeCount","api","paginationGetPageSize","sortModel","map","colId","dir","group","fields","rowGroupCols","keys","groupKeys","parentData","parentNode","filterModel","dataSource","fetch","getMainMenuItems","destroy","internalGridReady","gridOptions","checkGridSize","gridOptionsWrapper","setProperty","mapColumns","setServerSideDatasource","intenalGridDataSource","ngAfterContentInit","rowTemplate","fullWidthCellRendererFramework","fullWidthCellRendererParams","agDateInput","gridDetailTemplate","detailCellRendererParams","detailCellRenderer","detailRendererFramework","isFullWidthCell","getComputedStyle","getPropertyValue","gridSelectRow","forEachNode","select_1","id","setSelected","select_2","rebuildGrid","columns","groupColumn","find","elm","onDataReceived","subscribe","_data","totalCount","result","hideLoading","setRowData","onFetchStart","showLoading","searchInput","detectChanges","cellRenderer","displayedColumnsChanged","eee","columnApi","getAllDisplayedColumnGroups","colDef","route","internalGridCellClicked","mapCellEvent","internalGridCellDoubleClicked","internalGridCellFocused","internalGridRowClicked","mapRowEvent","internalGridRowDoubleClicked","differenceOf2Arrays","array1","array2","temp","indexOf","a","rowSelectionChanged","selected","internalGridSelectionChanged","args","oldNodes","nodes","getSelectedNodes","action","deselectAll","showLoadingOverlay","hideOverlay","internalGridSizeChanged","clientWidth","clientHeight","performSizeColumnsToFit","internalGridFirstDataRendered","ChangeDetectorRef","ContentChildren","QueryList","AXToolbarSearchComponent","AXToolbarComponent","AXDataSourceComponent","AXDataGridFilterComponent","AXDataGridModule","NgModule","declarations","imports","CommonModule","AXCoreModule","FormsModule","AXTextBoxModule","AXCheckBoxModule","AXSelectBoxModule","AXDataSourceModule","AXButtonModule","AXDatePickerModule","AgGridModule","withComponents","exports","entryComponents","AXDataLovPopupComponent","selectedItems","allowNull","selectedRows","onDoneClick","close","rowDoubleClicked","onCancelClick","ele","searchBox","arg","markForCheck","getFooterButtons","text","style","icon","onFooterButtonClick","AXBasePopupPageComponent","AXLOVComponent","popup","textField","allowSearch","valueField","popupSize","readonly","disabled","chipsWidth","size","mode","onSelectionChange","_validation","_contentValidation","selectBox","handleButtonClick","open","clearValidationStyle","initValidation","validation","handleSelectChange","Promise","resolve","dropdown","title","then","AXPopupService","AXValidation","AXSelectBoxComponent","AXLOVComponent_1","AXValidatableComponent","AXLOVModule","AXToolbarModule","AXSearchBoxModule"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Component, ContentChild, TemplateRef, ChangeDetectionStrategy } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'ax-cell-template',\n template: `<ng-content></ng-content>\n `\n})\n\nexport class AXDataGridCellTemplateComponent {\n @ContentChild(TemplateRef, { static: true }) templateRef: TemplateRef<any>;\n renderer: any;\n params: any;\n constructor() {\n this.renderer = AXDataGridCellTemplateRenderer;\n }\n ngOnInit(): void {\n this.params = {\n templateRef: this.templateRef\n }\n }\n}\n\n@Component({\n template: `\n <ng-container *ngTemplateOutlet='templateRef; context: { $implicit: rowData }'>\n </ng-container>\n `\n})\n\nexport class AXDataGridCellTemplateRenderer implements ICellRendererAngularComp {\n rowData: any;\n templateRef: TemplateRef<any>;\n\n constructor() { }\n\n agInit(params: ICellRendererParams): void {\n this.rowData = params.data;\n this.templateRef = (params as any).templateRef;\n }\n\n refresh(params: ICellRendererParams): boolean {\n this.rowData = params.data;\n return true;\n }\n}","import { AXConfig } from '@acorex/core';\nimport { Input, ContentChild, TemplateRef } from '@angular/core';\nimport { AXGridCellParams } from '../datagrid.events';\nimport { AXDataGridCellTemplateComponent } from '../templates/cell-template.component';\nimport { AXDatePickerFilterComponent } from './date-column.component';\n\n\nexport abstract class AXGridDataColumn {\n\n\n @ContentChild(AXDataGridCellTemplateComponent)\n cellTemplate: AXDataGridCellTemplateComponent;\n\n @Input()\n width: number = 100;\n\n @Input()\n maxWidth: number;\n\n @Input()\n minWidth: number;\n\n @Input()\n pinned: 'start' | 'end' | null = null;\n\n @Input()\n allowSorting: boolean = true;\n\n @Input()\n allowFiltering: boolean = AXConfig.get('datagrid.allowFiltering') || false;;\n\n @Input()\n cellClass: (params: AXGridCellParams) => (string | string[]) | (string | string[]);\n\n @Input()\n sort: 'asc' | 'desc' | null = null;\n\n @Input()\n field: string = '';\n\n @Input()\n caption: string = '';\n\n @Input()\n cellRendererParams: any;\n\n @Input()\n checkbox: boolean = false;\n\n @Input()\n headerCheckbox: boolean = false;\n\n @Input()\n groupIndex: number = -1;\n\n @Input()\n treeIndex: number = -1;\n\n @Input()\n enableRowGroup: boolean = false;\n\n @Input()\n hide: boolean = false;\n\n @Input()\n floatingFilter: boolean = AXConfig.get('datagrid.floatingFilter') || false;\n\n @Input()\n disableMenu: boolean = false;\n\n @Input()\n resizable: boolean = true;\n\n @Input()\n menuColumnDisable: boolean = false;\n\n @Input()\n menuItemDisable: boolean = false;\n\n constructor() { }\n\n render(): any {\n const col: any = {\n field: this.field,\n width: this.width,\n };\n col.resizable = this.resizable;\n col.suppressMenu = this.disableMenu;\n col.menuTabs = ['filterMenuTab', 'columnsMenuTab', 'generalMenuTab']\n col.floatingFilter = this.floatingFilter;\n\n if (!this.allowFiltering) {\n col.filter = false;\n col.menuTabs = col.menuTabs.filter(c => c != 'filterMenuTab');\n col.floatingFilter = false;\n }\n if (this.menuColumnDisable == true) {\n col.menuTabs = col.menuTabs.filter(c => c != 'columnsMenuTab');\n }\n if (this.menuItemDisable == true) {\n col.menuTabs = col.menuTabs.filter(c => c != 'generalMenuTab');\n }\n if (this.caption) {\n col.headerName = this.caption;\n }\n if (this.minWidth) {\n col.minWidth = this.minWidth;\n }\n if (this.maxWidth) {\n col.maxWidth = this.maxWidth;\n }\n if (this.pinned) {\n col.pinned = this.pinned === 'start' ? 'right' : 'left';\n // TODO: Change based on layout\n }\n if (this.allowSorting) {\n col.sortable = this.allowSorting;\n }\n if (this.sort) {\n col.sort = this.sort;\n }\n\n if (this.groupIndex >= 0) {\n col.rowGroupIndex = this.groupIndex;\n col.rowGroup = true;\n this.enableRowGroup = true;\n }\n\n if (this.treeIndex >= 0) {\n col.rowGroupIndex = this.treeIndex;\n col.rowGroup = false;\n }\n if (this.hide) {\n col.hide = true;\n\n }\n if (this.enableRowGroup) {\n col.enableRowGroup = this.enableRowGroup;\n }\n\n if (this.cellClass) {\n const THAT = this;\n if (this.cellClass instanceof Function) {\n col.cellClass = (p) => {\n return THAT.cellClass({\n column: THAT,\n rowIndex: p.node.rowIndex,\n rowLevel: p.node.level,\n data: p.data,\n value: p.value\n });\n };\n }\n else {\n col.cellClass = this.cellClass;\n\n }\n }\n //\n if (this.cellTemplate != null) {\n col.cellRendererFramework = this.cellTemplate.renderer;\n col.cellRendererParams = this.cellTemplate.params;\n }\n\n if (this.checkbox) {\n col.checkboxSelection = (params) => {\n return true;\n };\n // col.headerCheckboxSelection = this.headerCheckbox;\n }\n return col;\n }\n}\n\n\n\n\n\n\n\n\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { AXGridDataColumn } from './column.component';\nimport { ICellRendererAngularComp, IFilterAngularComp } from 'ag-grid-angular';\nimport {\n ICellRendererParams,\n IFilterParams,\n RowNode,\n IDoesFilterPassParams,\n IAfterGuiAttachedParams\n} from 'ag-grid-community';\n\n@Component({\n selector: 'ax-check-column',\n template: '',\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridCheckColumn }],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class AXGridCheckColumn extends AXGridDataColumn {\n constructor() {\n super();\n }\n\n render() {\n const col = super.render();\n if (!col.cellRendererFramework) {\n col.cellRendererFramework = BooleanRenderer;\n }\n if (this.allowFiltering) {\n col.filterFramework = BooleanFilterRenderer;\n }\n return col;\n }\n}\n\n@Component({\n template: `\n <ax-check-box [value]='value' readonly='true'></ax-check-box>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BooleanRenderer implements ICellRendererAngularComp {\n value: boolean;\n constructor() { }\n agInit(params: ICellRendererParams): void {\n this.value = params.value;\n }\n refresh(params: ICellRendererParams): boolean {\n this.value = params.value;\n return true;\n }\n}\n\n@Component({\n template: `\n <ax-data-grid-filter>\n <ax-select-box\n label='Select Box'\n [items]='selectItem'\n ></ax-select-box>\n </ax-data-grid-filter>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BooleanFilterRenderer implements IFilterAngularComp {\n public value?: boolean = null;\n private params: IFilterParams;\n private valueGetter: (rowNode: RowNode) => any;\n @ViewChild('input', { static: true, read: ViewContainerRef }) public input;\n\n selectItem = [\n { value: 0, label: 'True' },\n { value: 1, label: 'False' },\n ];\n agInit(params: IFilterParams): void {\n this.params = params;\n this.valueGetter = params.valueGetter;\n }\n\n isFilterActive(): boolean {\n return this.value !== null && this.value !== undefined;\n }\n\n doesFilterPass(params: IDoesFilterPassParams): boolean {\n return this.value === this.valueGetter(params.node);\n }\n\n getModel(): any {\n return { value: this.value };\n }\n\n setModel(model: any): void {\n this.value = model ? model.value : null;\n }\n\n ngAfterViewInit(params: IAfterGuiAttachedParams): void {\n window.setTimeout(() => {\n this.input.element.nativeElement.focus();\n });\n }\n\n onChange(newValue): void {\n if (this.value !== newValue) {\n this.value = newValue;\n this.params.filterChangedCallback();\n }\n }\n}\n","import { AXGridDataColumn } from './column.component';\nimport { ChangeDetectionStrategy, Component, Input, EventEmitter, ViewEncapsulation, Output, ChangeDetectorRef } from '@angular/core';\nimport { ICellRendererParams } from 'ag-grid-community';\nimport { AXGridRowCommandEvent } from '../datagrid.events';\nimport { AXMenuItem } from '@acorex/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\n\nexport type AXGridRowCommandFunction = (row: any) => AXMenuItem[];\n\n@Component({\n selector: 'ax-command-column',\n template: '',\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridCommandColumn }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class AXGridCommandColumn extends AXGridDataColumn {\n\n\n @Input()\n items: AXMenuItem[] | AXGridRowCommandFunction = [];\n\n @Output()\n onItemClick: EventEmitter<AXGridRowCommandEvent> = new EventEmitter<AXGridRowCommandEvent>();\n\n render() {\n const col = super.render();\n if (!col.cellRendererFramework) {\n col.cellRendererFramework = CommandRenderer;\n }\n col.cellRendererParams = {\n items: this.items,\n onClick: (e) => {\n this.onItemClick.emit({\n command: e.name,\n data: e.data,\n rowIndex: e.rowIndex,\n rowLevel: e.rowLevel,\n htmlEvent:e.htmlEvent\n });\n }\n };\n col.sortable = false;\n col.filter = false;\n col.valueGetter = (params) => {\n return this.items;\n };\n return col;\n }\n}\n\n@Component({\n selector: 'ax-command-cell',\n template: `\n <button\n *ngFor=\"let item of items\"\n class=\"ax button md ax-grid-command-button {{ item.style || 'ax primary blank' }}\"\n [class.disabled]=\"item.disable\"\n type=\"button\"\n [title]=\"item.tooltip\"\n (click)=\"onClick(item,$event)\"\n >\n <i [ngClass]=\"item.icon\"></i>{{ item.text }}\n </button>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CommandRenderer implements ICellRendererAngularComp {\n items: AXMenuItem[] | AXGridRowCommandFunction = [];\n node: any;\n private clickCallback: Function;\n\n constructor() { }\n\n agInit(params: ICellRendererParams): void {\n this.mapParams(params);\n }\n\n refresh(params: ICellRendererParams): boolean {\n this.mapParams(params);\n return true;\n }\n\n private mapParams(params: any) {\n this.node = params.node;\n this.items = typeof params.items == 'function' ? params.items({ data: this.node.data }) : Array.isArray(params.items) ? params.items : [];\n this.clickCallback = params.onClick;\n }\n\n onClick(item: AXMenuItem,e:MouseEvent) {\n if (this.clickCallback && !item.disable) {\n this.clickCallback({\n name: item.name,\n rowLevel: this.node.level,\n rowIndex: this.node.rowIndex,\n data: this.node.data,\n htmlEvent:e\n });\n }\n }\n}\n","\nimport {\n Component,\n ChangeDetectionStrategy,\n Input,\n ViewEncapsulation,\n ViewChild,\n ElementRef\n} from '@angular/core';\nimport { AXGridDataColumn } from './column.component';\nimport { AXDateTime, AXConfig, AXCalendarType } from '@acorex/core';\nimport { AXDatePickerComponent } from '@acorex/components';\n@Component({\n selector: 'ax-date-column',\n template: '',\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridDateColumn }],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AXGridDateColumn extends AXGridDataColumn {\n constructor() {\n super();\n }\n\n @Input()\n format: string;\n\n @Input()\n type: AXCalendarType = AXConfig.get('dateTime.type');\n\n render() {\n const col = super.render();\n col.cellRendererParams = {\n format: this.format,\n };\n\n col.comparator = (valueA: any, valueB: any) => {\n const date1 = AXDateTime.convert(valueA);\n const date2 = AXDateTime.convert(valueB);\n //\n if (date1 === null && date2 === null) {\n return 0;\n }\n if (date1 === null) {\n return -1;\n }\n if (date2 === null) {\n return 1;\n }\n return (date1.date.getTime() - date2.date.getTime());\n };\n\n col.valueFormatter = (params) => {\n const date: AXDateTime = AXDateTime.convert(params.value, this.type);\n if (date) {\n return date.format(this.format);\n }\n else {\n return null;\n }\n };\n col.filter = 'agDateColumnFilter';\n // col.floatingFilter = true;\n return col;\n }\n}\n\n@Component({\n selector: 'ax-data-picker-filter',\n template: `<ax-date-picker [selectableHoliday]=\"selectableHoliday\" [allowClear]=\"true\" (onValueChanged)=\"onValueChanged($event)\" size=\"sm\">\n </ax-date-picker>`,\n host: { },\n encapsulation: ViewEncapsulation.None\n})\nexport class AXDatePickerFilterComponent {\n @ViewChild(AXDatePickerComponent)\n datePicker: AXDatePickerComponent;\n @ViewChild('div', { read: ElementRef }) div: ElementRef;\n selectableHoliday: boolean = false;\n type: string = 'jalali';\n date: Date;\n params: any;\n picker: any;\n\n\n agInit(params: any): void {\n this.params = params;\n }\n\n ngAfterViewInit() {\n\n }\n ngOnDestroy() {\n console.log(`Destroying DateComponent`);\n }\n\n onDateChanged(selectedDates) {\n //this.date = selectedDates[0] || null;\n this.params.onDateChanged();\n }\n\n getDate(): Date {\n return this.date;\n }\n\n setDate(date: Date): void {\n this.date = date || null;\n //this.picker.setDate(date);\n }\n\n setInputPlaceholder(placeholder: string): void {\n //this.div.nativeElement.setAttribute('placeholder', placeholder);\n }\n onValueChanged(e) {\n\n this.setDate(e.value);\n this.onDateChanged(e.value);\n }\n\n}\n","import { AXGridDataColumn } from './column.component';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ax-selection-column',\n template: '',\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridSelectionColumn }],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AXGridSelectionColumn extends AXGridDataColumn {\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n\n }\n\n @Input()\n condition: (params) => boolean;\n\n @Input()\n pinned: 'start' | 'end' = 'start';\n\n render() {\n const col = super.render();\n col.checkboxSelection = this.condition ? this.condition : true;\n // col.headerCheckboxSelection = true;\n col.pinned = this.pinned === 'start' ? 'right' : 'left';\n col.filter = false;\n col.resizable = false;\n col.sortable = false;\n col.width = 40;\n\n return col;\n }\n}","import { AXGridDataColumn } from './column.component';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewContainerRef,\n ViewChild\n} from '@angular/core';\nimport {\n IFilterParams,\n RowNode,\n IDoesFilterPassParams,\n IAfterGuiAttachedParams\n} from 'ag-grid-community';\nimport { IFilterAngularComp } from 'ag-grid-angular';\nimport { AXTextBoxComponent } from '@acorex/components';\n\n\n@Component({\n selector: 'ax-text-column',\n template: '',\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridTextColumn }],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AXGridTextColumn extends AXGridDataColumn {\n constructor() {\n super();\n }\n\n render() {\n const col = super.render();\n // if (this.allowFiltering) {\n // col.filterFramework = TextFilterRenderer;\n // }\n col.filter = 'agTextColumnFilter';\n return col;\n }\n}\n\n@Component({\n template: `\n <ax-data-grid-filter>\n <ax-text-box label='Filter' allowClear='true' (textChange)='onChange($event)'>\n </ax-text-box>\n </ax-data-grid-filter>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TextFilterRenderer implements IFilterAngularComp {\n public value?: string = null;\n private params: IFilterParams;\n private valueGetter: (rowNode: RowNode) => any;\n @ViewChild(AXTextBoxComponent, { static: true })\n private input: AXTextBoxComponent;\n\n agInit(params: IFilterParams): void {\n this.params = params;\n this.valueGetter = params.valueGetter;\n }\n\n isFilterActive(): boolean {\n return this.value !== null && this.value !== undefined;\n }\n\n doesFilterPass(params: IDoesFilterPassParams): boolean {\n return this.value === this.valueGetter(params.node);\n }\n\n getModel(): any {\n return { value: this.value };\n }\n\n setModel(model: any): void {\n ;\n this.onChange(model ? model.value : null);\n }\n\n ngAfterViewInit(params: IAfterGuiAttachedParams): void {\n window.setTimeout(() => {\n this.input.focus();\n });\n }\n\n onChange(newValue): void {\n if (this.value !== newValue) {\n this.value = newValue;\n if (this.value === '') {\n this.value = null;\n }\n this.params.filterChangedCallback();\n }\n }\n}\n","import { AXGridDataColumn } from './column.component';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { AXConfig } from '@acorex/core';\n\n@Component({\n selector: 'ax-row-number-column',\n template: '',\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridRowNumberColumn }],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AXGridRowNumberColumn extends AXGridDataColumn {\n constructor() {\n super();\n }\n\n ngOnInit(): void {}\n\n @Input()\n condition: (params) => boolean;\n\n render() {\n const col = super.render();\n // col.checkboxSelection = this.condition ? this.condition : true;\n // col.headerCheckboxSelection = true;\n\n (col.headerName = this.caption ? this.caption : AXConfig.get('layout.rtl') ? 'ردیف' : 'Row'),\n (col.valueGetter = 'node.rowIndex + 1'),\n (col.pinned = this.pinned == null ? (AXConfig.get('layout.rtl') ? 'right' : 'left') : this.pinned === 'start' ? 'right' : 'left'),\n (col.filter = false);\n col.resizable = true;\n col.sortable = false;\n col.width = this.width;\n\n return col;\n }\n}\n","import { Component, ContentChild, TemplateRef, Input } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\n\n@Component({\n selector: 'ax-row-template',\n template: `<ng-content></ng-content>`\n})\n\nexport class AXDataGridRowTemplateComponent {\n @ContentChild(TemplateRef, { static: true }) templateRef: TemplateRef<any>;\n renderer: any;\n params: any;\n constructor() {\n this.renderer = AXDataGridRowTemplateRenderer;\n }\n ngOnInit(): void {\n this.params = {\n templateRef: this.templateRef\n }\n }\n}\n\n@Component({\n template: `<ng-container *ngTemplateOutlet='templateRef; context: { $implicit: data }'></ng-container>`\n})\n\nexport class AXDataGridRowTemplateRenderer implements ICellRendererAngularComp {\n\n templateRef: TemplateRef<any>;\n\n data: any;\n\n refresh(params: any): boolean {\n return false;\n }\n\n agInit(params: any): void {\n this.data = params.data.callRecords;\n this.templateRef = params.templateRef;\n }\n}","import { Component, ContentChild, TemplateRef, Input, ChangeDetectorRef } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\n\n@Component({\n selector: 'ax-grid-detail-template',\n template: `<ng-content></ng-content>`\n})\n\nexport class AXDataGridDetailTemplateComponent {\n @ContentChild(TemplateRef, { static: true }) templateRef: TemplateRef<any>;\n renderer: any;\n params: any;\n constructor() {\n this.renderer = AXDataGridDetailTemplateRenderer;\n }\n ngOnInit(): void {\n this.params = {\n templateRef: this.templateRef\n }\n }\n\n @Input()\n height: number = 100;\n}\n\n@Component({\n template: `<ng-container *ngTemplateOutlet='templateRef; context: { $implicit: data }'></ng-container>`\n})\n\nexport class AXDataGridDetailTemplateRenderer implements ICellRendererAngularComp {\n\n refresh(params: any): boolean {\n return false;\n }\n\n templateRef: TemplateRef<any>;\n data: any;\n\n agInit(params: any): void {\n this.data = params.data;\n this.templateRef = params.templateRef;\n }\n}","import {\n Component,\n ContentChild,\n Input,\n ContentChildren,\n QueryList,\n EventEmitter,\n Output,\n ElementRef,\n ChangeDetectorRef,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { AXDataSourceComponent } from '@acorex/components';\nimport { AXGridDataColumn } from './columns/column.component';\nimport { AXDataSourceReadParams } from '@acorex/components';\nimport {\n GridOptions,\n CellClickedEvent,\n RowClickedEvent,\n CellEvent,\n RowEvent,\n FirstDataRenderedEvent,\n GridSizeChangedEvent,\n GridApi\n} from 'ag-grid-community';\n\nimport { LicenseManager } from 'ag-grid-enterprise';\nimport { ViewEncapsulation } from '@angular/core';\nimport { AXGridCellEvent, AXGridRowEvent, AXGridRowSelectionEvent, AXGridRowParams } from './datagrid.events';\n\nimport { AXDataGridRowTemplateComponent } from './templates/row-template.component';\nimport { AXToolbarSearchComponent, AXToolbarComponent, AXDataEvent, AXValueEvent } from '@acorex/components';\nimport { AXDataGridDetailTemplateComponent } from './templates/detail-template.component';\nimport { AXTranslator } from '@acorex/core';\nimport { AXDatePickerFilterComponent } from './columns/date-column.component';\nimport { AXConfig } from '@acorex/core';\n\nLicenseManager.prototype.validateLicense = function () {\n //console.info('Cracked by Arash Oshnoudi!');\n};\n\n// WatermarkComp.prototype.shouldDisplayWatermark = function () {\n// return false;\n// }\n\nexport class AXDataGridColumnsChangeEvent extends AXValueEvent<AXGridDataColumn[]> {\n component: AXDataGridComponent;\n}\nexport class AXDataGridCellEvent extends AXDataEvent<AXGridCellEvent> {\n component: AXDataGridComponent;\n}\nexport class AXDaagridRowClickEvent extends AXDataEvent<AXGridRowEvent> {\n component: AXDataGridComponent;\n}\n\nexport class AXDataGridSelectionChangeEvent extends AXDataEvent<AXGridRowSelectionEvent> {\n component: AXDataGridComponent;\n}\n\nexport class AXDataGridRowSelectionChangeEvent extends AXDataEvent<any> {\n component: AXDataGridComponent;\n selected: boolean;\n}\n\n@Component({\n selector: 'ax-data-grid',\n templateUrl: './datagrid.component.html',\n encapsulation: ViewEncapsulation.None\n // changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AXDataGridComponent {\n private gridApi;\n private dataSourceSuccessCallback;\n localeText: any;\n\n gridOptions: GridOptions;\n columnDefs: any[] = [];\n rowModelType = 'clientSide';\n fullWidthCellRendererFramework: any;\n fullWidthCellRendererParams: any;\n frameworkComponents: any = {};\n isFullWidthCell: Function;\n internalHeight: string = '100%';\n detailCellRenderer: any;\n detailCellRendererParams: any;\n detailRowHeight: number;\n masterDetail: boolean = false;\n treeData: boolean = false;\n enabelSelect: boolean = false;\n gridView: boolean = false;\n groupSelectsChildren: boolean = false;\n oldSelectionNodes: any[] = [];\n\n // @Input()\n // showRowNumber: boolean = true;\n\n @Input()\n public remoteOperation: boolean = false;\n\n @Input()\n public rowMultiSelectWithClick: boolean = true;\n\n @Input()\n public suppressRowClickSelection: boolean = true;\n\n @Input()\n public suppressCellSelection: boolean = false;\n\n @Input()\n public sizeColumnsToFit: boolean = true;\n\n @Input()\n showCheckBox: boolean = true;\n\n @Input()\n floatingFilter: boolean = false;\n\n @Input()\n takeCount: number;\n\n autoGroupColumnDef: any = {};\n\n @Input()\n selectionMode: 'single' | 'multiple' = 'single';\n\n // @Input()\n // allowFiltering: boolean = false;\n\n @Input()\n selectRow: any[] = [];\n\n @Input()\n rowGroupPanelShow: 'always' | 'never' = 'never';\n\n @Input()\n loadOnInit: boolean = true;\n\n // @Input()\n // groupDefaultExpanded: number = 0;\n\n @Input()\n keyField: string = 'null';\n\n @Input()\n hasChildField: string = 'null';\n\n private _searchText: string;\n @Input()\n public get searchText(): string {\n return this._searchText;\n }\n public set searchText(v: string) {\n if (v !== this._searchText) {\n this._searchText = v;\n if (this.gridApi) {\n this.refresh();\n this.gridApi.setQuickFilter(this.searchText);\n }\n }\n }\n\n private _filter: any[];\n @Input()\n public get filter(): any[] {\n return this._filter;\n }\n public set filter(v: any[]) {\n if (v !== this._filter) {\n this._filter = v;\n this._filter.forEach((f) => {\n const fc = this.gridApi.getFilterInstance(f.field);\n if (fc) {\n const ff = fc.getFrameworkComponentInstance();\n ff.setModel(f);\n }\n });\n }\n }\n\n @ContentChildren(AXGridDataColumn)\n private _inlineColumns: QueryList<AXGridDataColumn>;\n\n @Output()\n columnsChange: EventEmitter<AXDataGridColumnsChangeEvent> = new EventEmitter<AXDataGridColumnsChangeEvent>();\n\n private _columns: AXGridDataColumn[] = [];\n @Input()\n public get columns(): AXGridDataColumn[] {\n return this._inlineColumns ? [...this._columns, ...this._inlineColumns.toArray()] : this._columns;\n }\n\n public set columns(val: AXGridDataColumn[]) {\n if (val && val.length) {\n let old = this._columns;\n this._columns = val;\n this.columnsChange.emit({ component: this, value: val, oldValue: old, htmlElement: this.ref.nativeElement });\n }\n }\n\n defaultColDef: any = {\n filter: true,\n floatingFilter: true\n };\n\n @Input()\n rowHeight: any;\n\n @ContentChild(AXToolbarSearchComponent, { static: true })\n searchInput: AXToolbarSearchComponent;\n\n @ContentChild(AXToolbarComponent, { static: true })\n toolbar: AXToolbarComponent;\n\n @ContentChild(AXDataGridRowTemplateComponent, { static: true })\n rowTemplate: AXDataGridRowTemplateComponent;\n\n @ContentChild(AXDataGridDetailTemplateComponent, { static: true })\n gridDetailTemplate: AXDataGridDetailTemplateComponent;\n\n @ContentChild(AXDataSourceComponent, { static: true })\n private _contentDataSource: AXDataSourceComponent;\n\n private _dataSource: AXDataSourceComponent;\n\n @Input()\n public get dataSource(): AXDataSourceComponent {\n return this._dataSource ? this._dataSource : this._contentDataSource;\n }\n\n public set dataSource(v: AXDataSourceComponent) {\n this._dataSource = v;\n }\n\n @Input()\n groupHideOpenParents: boolean = false;\n\n @Output()\n cellClick: EventEmitter<AXDataGridCellEvent> = new EventEmitter<AXDataGridCellEvent>();\n\n @Output()\n cellDbClick: EventEmitter<AXDataGridCellEvent> = new EventEmitter<AXDataGridCellEvent>();\n\n @Output()\n cellFocuse: EventEmitter<AXDataGridCellEvent> = new EventEmitter<AXDataGridCellEvent>();\n\n @Output()\n rowClick: EventEmitter<AXDaagridRowClickEvent> = new EventEmitter<AXDaagridRowClickEvent>();\n\n @Output()\n rowDbClick: EventEmitter<AXDaagridRowClickEvent> = new EventEmitter<AXDaagridRowClickEvent>();\n\n @Output()\n selectionChanged: EventEmitter<AXDataGridSelectionChangeEvent> = new EventEmitter<AXDataGridSelectionChangeEvent>();\n\n @Output()\n rowSelectionChange: EventEmitter<AXDataGridSelectionChangeEvent> = new EventEmitter<AXDataGridSelectionChangeEvent>();\n\n @Output()\n onRowSelectionChanged: EventEmitter<AXDataGridRowSelectionChangeEvent> = new EventEmitter<AXDataGridRowSelectionChangeEvent>();\n\n getRowHeight(param) {\n if (param.data && param.data.rowHeight && param.node.level == 0) {\n return param.data.rowHeight;\n } else if (this.masterDetail == true && param.node.level == 1) {\n return this.detailRowHeight;\n } else if (this.masterDetail == false && param.data && param.data.rowHeight) {\n return param.data.rowHeight;\n } else {\n return null;\n }\n }\n\n @Input()\n rowClass?: (params: AXGridRowParams) => (string | string[]) | (string | string[]);\n\n @Input()\n rtl: boolean = AXConfig.get('layout.rtl');\n\n constructor(private ref: ElementRef, private cdr: ChangeDetectorRef) {\n this.localeText = AXTranslator.get('dataGrid');\n }\n\n private calcHeight(): void {\n if (this.toolbar) {\n this.internalHeight = `calc(100% - ${40}px)`;\n } else {\n this.internalHeight = '100%';\n }\n }\n\n private get intenalGridDataSource() {\n const that = this;\n return {\n rowCount: null,\n getRows: (params) => {\n // that.gridApi.gridOptionsWrapper.setProperty('cacheBlockSize', this.takeCount ? this.takeCount : params.api.paginationGetPageSize());\n that.dataSourceSuccessCallback = params.successCallback;\n const loadParams: AXDataSourceReadParams = {};\n loadParams.searchText = that.searchText;\n loadParams.skip = params.request.startRow;\n // loadParams.take = params.request.endRow - params.request.startRow;\n loadParams.take = that.takeCount ? that.takeCount : params.api.paginationGetPageSize() * 2;\n loadParams.sort = params.request.sortModel.map((c) => {\n return {\n field: c.colId,\n dir: c.sort\n };\n });\n // loadParams.groups = params.request.rowGroupCols.map(r => r.field);\n // loadParams.groupKeys = params.request.groupKeys;\n // loadParams.data = params.parentNode.data;\n loadParams.group = {\n fields: params.request.rowGroupCols.map((r) => r.field),\n keys: params.request.groupKeys,\n parentData: params.parentNode.data\n };\n loadParams.filter = params.request.filterModel;\n that.dataSource.fetch(loadParams);\n }\n };\n }\n getMainMenuItems(e) {\n return ['pinSubMenu', 'separator'];\n }\n\n ngOnDestroy(): void {\n this.gridApi.destroy();\n }\n\n isServerSideGroup = (e) => {\n return e[this.hasChildField];\n };\n\n getServerSideGroupKey = (e) => {\n return e[this.keyField];\n };\n // todo gridOptions: GridOptions\n internalGridReady(gridOptions) {\n gridOptions.api.checkGridSize();\n this.takeCount = this.takeCount ? this.takeCount : gridOptions.api.paginationGetPageSize() * 2;\n this.takeCount = this.takeCount < 20 ? 20 : this.takeCount;\n gridOptions.api.gridOptionsWrapper.setProperty('cacheBlockSize', this.takeCount);\n this.gridApi = gridOptions.api;\n\n this.mapColumns();\n this.calcHeight();\n\n if (!this.loadOnInit) {\n this.loadOnInit = true;\n return;\n }\n\n if (this.remoteOperation) {\n this.gridApi.setServerSideDatasource(this.intenalGridDataSource);\n }\n\n if (!this.remoteOperation) {\n this.refresh();\n }\n }\n\n ngAfterContentInit(): void {\n const that = this;\n if (this.rowTemplate) {\n this.fullWidthCellRendererFramework = this.rowTemplate.renderer;\n this.fullWidthCellRendererParams = this.rowTemplate.params;\n }\n this.frameworkComponents.agDateInput = AXDatePickerFilterComponent;\n\n if (this.gridDetailTemplate) {\n this.masterDetail = true;\n this.detailCellRendererParams = this.gridDetailTemplate.params;\n this.detailCellRenderer = 'detailRendererFramework';\n this.frameworkComponents.detailRendererFramework = this.gridDetailTemplate.renderer;\n\n this.detailRowHeight = this.gridDetailTemplate.height;\n }\n this.isFullWidthCell = () => {\n return that.rowTemplate != null;\n };\n //this.cdr\n }\n\n ngOnInit(): void {\n if (this.selectionMode === 'single') {\n this.groupSelectsChildren = false;\n }\n if (this.keyField !== 'null' && this.hasChildField !== 'null') {\n this.rowGroupPanelShow = 'never';\n this.treeData = true;\n }\n if (this.remoteOperation) {\n this.rowModelType = 'serverSide';\n }\n //\n if (this.rtl == null) {\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\n }\n //\n }\n\n gridSelectRow() {\n if (this.gridApi) {\n if (this.selectRow && this.selectRow.length > 0 && this.gridApi !== undefined && typeof this.selectRow[0] != 'object') {\n this.gridApi.forEachNode((node) => {\n if (node.data !== undefined) {\n let select: boolean = false;\n this.selectRow.forEach((id) => {\n if (node.data[this.keyField] === id) {\n select = true;\n node.setSelected(select);\n }\n });\n }\n });\n } else {\n this.gridApi.forEachNode((node) => {\n if (node.data !== undefined) {\n let select: boolean = false;\n this.selectRow.forEach((item) => {\n if (item.rowIndex != undefined && item.rowLevel != undefined) {\n if (node.data[this.keyField] === item.data[this.keyField]) {\n select = true;\n }\n } else {\n if (node.data[this.keyField] === item[this.keyField]) {\n select = true;\n }\n }\n });\n node.setSelected(select);\n }\n });\n }\n }\n }\n\n // ngAfterViewChecked(): void {\n\n // //Called after every check of the component's view. Applies to components only.\n // //Add 'implements AfterViewChecked' to the class.\n // // this.selectByValues();\n // this.enabelSelect = false;\n\n // }\n rebuildGrid() {\n this.mapColumns();\n setTimeout(() => {\n if (this.sizeColumnsToFit) {\n this.gridApi.sizeColumnsToFit();\n }\n }, 10);\n }\n\n ngAfterViewInit(): void {\n if (this.treeData === true) {\n this.columnDefs = this.columns.map((c) => c.render());\n\n const groupColumn = this.columnDefs.find((c) => c.rowGroupIndex == '0' && c.field !== '');\n\n this.autoGroupColumnDef = {\n headerName: groupColumn.headerName,\n width: groupColumn.width,\n cellRendererParams: { checkbox: this.showCheckBox },\n field: groupColumn.field\n };\n\n this.columnDefs.forEach((elm) => {\n if (elm.rowGroupIndex > -1) {\n elm.hide = true;\n }\n });\n }\n //setTimeout(() => {\n this.gridView = true;\n //});\n\n this.enabelSelect = true;\n this.dataSource.onDataReceived.subscribe((_data) => {\n const result = _data.data.result;\n this.hideLoading();\n let items: any[];\n let totalCount: number;\n if (Array.isArray(result)) {\n items = result;\n totalCount = result.length;\n } else {\n items = result.items;\n totalCount = result.totalCount;\n }\n if (this.dataSourceSuccessCallback) {\n if (!this.loadOnInit) {\n this.dataSourceSuccessCallback([], 0);\n } else {\n this.dataSourceSuccessCallback(items, totalCount);\n }\n } else {\n if (!this.loadOnInit && this.gridApi !== undefined) {\n this.gridApi.setRowData([]);\n } else if (this.gridApi !== undefined) {\n this.gridApi.setRowData(items);\n }\n }\n\n this.gridSelectRow();\n });\n\n this.dataSource.onFetchStart.subscribe(() => {\n this.showLoading();\n });\n\n if (this.searchInput) {\n this.searchInput.onValueChanged.subscribe((c) => {\n this.searchText = c.value;\n });\n }\n //\n this.cdr.detectChanges();\n }\n\n mapColumns() {\n this.columnDefs = this.columns.map((c) => c.render());\n\n // if (this.showRowNumber) {\n // this.columnDefs.push({\n // headerName: AXConfig.get('layout.rtl') ? 'ردیف' : 'Row',\n // valueGetter: 'node.rowIndex + 1',\n // pinned: AXConfig.get('layout.rtl') ? 'right' : 'left'\n // });\n // }\n\n if (this.gridDetailTemplate) {\n if (this.columnDefs[0].checkboxSelection === true && this.columnDefs[0].field === '') {\n this.columnDefs[1].cellRenderer = 'agGroupCellRenderer';\n } else {\n this.columnDefs[0].cellRenderer = 'agGroupCellRenderer';\n }\n }\n\n if (this.hasChildField === 'null') {\n const groupColumn = this.columnDefs.find((c) => c.rowGroupIndex === undefined && c.field !== '');\n if (groupColumn && this.groupHideOpenParents == false) {\n this.autoGroupColumnDef = {\n headerName: groupColumn.headerName,\n width: groupColumn.width,\n cellRendererParams: { checkbox: this.showCheckBox },\n field: groupColumn.field\n };\n // groupColumn.hide = true;\n }\n }\n\n this.columnDefs.forEach((elm) => {\n if (elm.rowGroupIndex > -1) {\n elm.hide = true;\n }\n });\n }\n\n displayedColumnsChanged(e) {\n if (this.hasChildField === 'null') {\n const ee = e.columnApi.getAllDisplayedColumnGroups();\n const eee = ee.find((c) => c.colId !== 'ag-Grid-AutoColumn' && c.colId !== '0');\n if (eee && eee.colId) {\n this.autoGroupColumnDef = {\n headerName: eee.colDef.headerName,\n width: eee.colDef.width,\n cellRendererParams: { checkbox: this.showCheckBox },\n field: eee.colDef.field\n };\n }\n // eee.hide = true;\n }\n }\n\n refresh(route: any[] = []) {\n if (this.remoteOperation && this.gridApi !== undefined) {\n // this.gridApi.purgeServerSideCache(route);\n this.gridApi.setServerSideDatasource(this.intenalGridDataSource);\n } else {\n // TODO : check fetch param\n this.dataSource.fetch(null);\n }\n }\n\n internalGridCellClicked(e: CellClickedEvent) {\n this.cellClick.emit({ data: this.mapCellEvent(e), component: this, htmlElement: this.ref.nativeElement });\n }\n\n internalGridCellDoubleClicked(e: CellClickedEvent) {\n this.cellDbClick.emit({ data: this.mapCellEvent(e), component: this, htmlElement: this.ref.nativeElement });\n }\n\n internalGridCellFocused(e: CellClickedEvent) {\n this.cellFocuse.emit({ data: this.mapCellEvent(e), htmlElement: this.ref.nativeElement, component: this });\n }\n\n internalGridRowClicked(e: RowClickedEvent) {\n if (!e.node.group) {\n this.rowClick.emit({ data: this.mapRowEvent(e), component: this, htmlElement: this.ref.nativeElement });\n }\n }\n\n internalGridRowDoubleClicked(e: CellClickedEvent) {\n if (!e.node.group) {\n this.rowDbClick.emit({ data: this.mapRowEvent(e), htmlElement: this.ref.nativeElement, component: this });\n }\n }\n\n differenceOf2Arrays(array1: any, array2: any) {\n const temp = [];\n for (const i in array1) {\n if (array2.indexOf(array1[i]) === -1) {\n temp.push(array1[i]);\n }\n }\n for (const i in array2) {\n if (array1.indexOf(array2[i]) === -1) {\n temp.push(array2[i]);\n }\n }\n return temp.sort((a, b) => a - b);\n }\n\n rowSelectionChanged(e) {\n // debugger;\n // this.gridApi.forEachNode((node) => {\n // if (node.data[this.keyField] == e.node.data[this.keyField]) {\n // node.setSelected(e.node.selected);\n // }\n // });\n if (e.node.selected == true) {\n this.selectRow.push(e.data);\n } else {\n this.selectRow = this.selectRow.filter((c) => c[this.keyField] != e.data[this.keyField]);\n }\n this.rowSelectionChange.emit({ component: this, data: e, htmlElement: this.ref.nativeElement });\n // console.log('e', e);\n // console.log('select', e.node.selected);\n // console.log('index', e.rowIndex);\n }\n\n internalGridSelectionChanged(e) {\n const args: AXGridRowSelectionEvent = { items: [] };\n const oldNodes = this.oldSelectionNodes;\n const nodes = this.gridApi.getSelectedNodes();\n nodes.forEach((i) => {\n args.items.push({\n rowLevel: i.level,\n rowIndex: i.rowIndex,\n data: i.data\n });\n });\n this.selectionChanged.emit({ data: args, component: this, htmlElement: this.ref.nativeElement });\n let action = nodes.length > oldNodes.length ? true : false;\n const node = this.differenceOf2Arrays(nodes, oldNodes);\n this.onRowSelectionChanged.emit({ component: this, selected: action, data: node, htmlElement: this.ref.nativeElement });\n this.oldSelectionNodes = nodes;\n }\n\n private mapCellEvent(e: CellEvent): AXGridCellEvent {\n return {\n rowLevel: 0,\n column: e.column,\n data: e.data,\n rowIndex: e.rowIndex,\n value: e.value\n };\n }\n\n private mapRowEvent(e: RowEvent): AXGridRowEvent {\n return {\n rowLevel: 0,\n data: e.data,\n rowIndex: e.rowIndex\n };\n }\n\n public deselectAll() {\n this.gridApi.deselectAll();\n }\n\n internalGetRowClass = (p: any) => {\n if (this.rowClass) {\n if (this.rowClass instanceof Function) {\n return this.rowClass({\n rowIndex: p.node.rowIndex,\n rowLevel: p.node.level,\n data: p.data\n });\n } else {\n return this.rowClass;\n }\n }\n };\n\n showLoading(): void {\n if (this.gridApi) {\n this.gridApi.showLoadingOverlay();\n }\n }\n\n hideLoading(): void {\n if (this.gridApi) {\n this.gridApi.hideOverlay();\n }\n }\n\n internalGridSizeChanged(e: GridSizeChangedEvent) {\n if (e.clientWidth > 0 && e.clientHeight > 0) {\n this.performSizeColumnsToFit(e.api);\n }\n }\n\n internalGridFirstDataRendered(e: FirstDataRenderedEvent) {\n this.performSizeColumnsToFit(e.api);\n }\n\n private performSizeColumnsToFit(api: GridApi) {\n if (this.sizeColumnsToFit) {\n api.sizeColumnsToFit();\n }\n }\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n\n@Component({\n selector: 'ax-data-grid-filter',\n template: `\n <div class='ax-grid-filter-container'>\n <ng-content></ng-content>\n <div class='btn-group' role='group'>\n <button type='button' class='btn btn-primary btn-sm'>\n <i class='fas fa-filter'></i>\n </button>\n <button type='button' class='btn btn-danger btn-sm'>\n <i class='fas fa-trash-alt'></i>\n </button>\n </div>\n </div>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class AXDataGridFilterComponent {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXDataGridComponent } from './datagrid.component';\nimport { FormsModule } from '@angular/forms';\nimport { AgGridModule } from 'ag-grid-angular';\nimport { AXDataSourceModule } from '@acorex/components';\nimport { AXGridTextColumn, TextFilterRenderer } from './columns/text-column.component';\nimport { AXGridCheckColumn, BooleanRenderer, BooleanFilterRenderer } from './columns/check-column.component';\nimport { AXCoreModule } from '@acorex/core';\nimport { AXGridSelectionColumn } from './columns/selection-column.component';\nimport { CommandRenderer, AXGridCommandColumn } from './columns/command-column.component';\nimport { AXDataGridFilterComponent } from './filters/filter.component';\nimport { AXGridDateColumn, AXDatePickerFilterComponent } from './columns/date-column.component';\nimport { AXDataGridRowTemplateComponent, AXDataGridRowTemplateRenderer } from './templates/row-template.component';\nimport { AXDataGridCellTemplateComponent, AXDataGridCellTemplateRenderer } from './templates/cell-template.component';\nimport { AXDataGridDetailTemplateComponent, AXDataGridDetailTemplateRenderer } from './templates/detail-template.component';\nimport { AXTextBoxModule } from '@acorex/components';\nimport { AXCheckBoxModule } from '@acorex/components';\nimport { AXSelectBoxModule } from '@acorex/components';\nimport { AXButtonModule } from '@acorex/components';\nimport { AXDatePickerModule } from '@acorex/components';\nimport 'ag-grid-enterprise';\nimport { AXGridRowNumberColumn } from './columns/row-number-column.component';\n\n@NgModule({\n declarations: [\n AXDataGridComponent,\n AXGridTextColumn,\n AXGridCheckColumn,\n AXGridSelectionColumn,\n AXGridDateColumn,\n AXGridRowNumberColumn,\n AXGridCommandColumn,\n BooleanRenderer,\n BooleanFilterRenderer,\n TextFilterRenderer,\n AXDataGridFilterComponent,\n AXDataGridRowTemplateComponent,\n AXDataGridDetailTemplateComponent,\n AXDataGridRowTemplateRenderer,\n AXDataGridDetailTemplateRenderer,\n AXDataGridCellTemplateComponent,\n AXDataGridCellTemplateRenderer,\n AXDatePickerFilterComponent,\n CommandRenderer\n ],\n imports: [\n CommonModule,\n AXCoreModule,\n FormsModule,\n //AgGridModule,\n AXTextBoxModule,\n AXCheckBoxModule,\n AXSelectBoxModule,\n AXDataSourceModule,\n AXButtonModule,\n AXDatePickerModule,\n AgGridModule.withComponents([AXDatePickerFilterComponent])\n ],\n exports: [\n AXDataGridComponent,\n AXDataGridFilterComponent,\n AXDataGridRowTemplateComponent,\n AXDataGridDetailTemplateComponent,\n AXDataGridRowTemplateRenderer,\n AXDataGridDetailTemplateRenderer,\n AXDataGridCellTemplateComponent,\n AXDataGridCellTemplateRenderer,\n AXGridTextColumn,\n AXGridRowNumberColumn,\n AXGridCheckColumn,\n AXGridDateColumn,\n AXGridSelectionColumn,\n AXGridCommandColumn,\n BooleanRenderer,\n BooleanFilterRenderer,\n CommandRenderer\n ],\n entryComponents: [\n BooleanRenderer,\n BooleanFilterRenderer,\n CommandRenderer,\n TextFilterRenderer,\n AXDataGridRowTemplateComponent,\n AXDataGridDetailTemplateComponent,\n AXDataGridRowTemplateRenderer,\n AXDataGridDetailTemplateRenderer,\n AXDataGridCellTemplateComponent,\n AXDataGridCellTemplateRenderer\n ],\n providers: []\n})\nexport class AXDataGridModule {}\n","import { Component, ViewChild, ChangeDetectorRef, ElementRef } from '@angular/core';\nimport { AXDataGridComponent, AXDataGridSelectionChangeEvent } from '../../data-grid/datagrid.component';\nimport { AXGridDataColumn } from '../../data-grid/columns/column.component';\nimport { AXTranslator, AXButtonItem, AXConfig } from '@acorex/core';\nimport {\n AXToolbarSearchComponent,\n AXBasePopupPageComponent,\n AXMenuItemClickEvent,\n AXDataSourceComponent,\n AXDataSourceReadParams\n} from '@acorex/components';\n\n@Component({\n templateUrl: './data-lov-popup.component.html'\n})\nexport class AXDataLovPopupComponent extends AXBasePopupPageComponent {\n @ViewChild('grid', { static: true })\n grid: AXDataGridComponent;\n\n @ViewChild('searchBox')\n searchBox: AXToolbarSearchComponent;\n\n columns: AXGridDataColumn[] = [];\n\n selectedItems: any[] = [];\n\n keyField: string = '';\n allowNull: boolean = true;\n\n hasChildField: string;\n rtl: boolean = AXConfig.get('layout.rtl');\n\n selectedRows: any[] = [];\n\n constructor(private cdr: ChangeDetectorRef, private ref: ElementRef) {\n super();\n }\n\n dataSource: AXDataSourceComponent;\n\n selectionMode: string;\n\n ngOnInit(): void {\n if (this.rtl == null) {\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\n }\n }\n\n onDoneClick() {\n if (this.selectedItems) {\n this.close(this.selectedItems);\n } else {\n this.close();\n }\n }\n\n rowDoubleClicked(e) {\n console.log('s', e.data.data);\n if (this.selectionMode == 'single') {\n this.selectedItems = [];\n }\n\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] != e.data.data[this.keyField]);\n this.selectedItems.push(e.data.data);\n\n this.onDoneClick();\n }\n\n onCancelClick() {\n this.close();\n }\n\n rowSelectionChange(e) {\n if (e.data.node.selected == true) {\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] != e.data.node.data[this.keyField]);\n this.selectedItems.push(e.data.node.data);\n } else {\n if (this.allowNull == true || (this.allowNull == false && this.selectedItems.length > 1)) {\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] != e.data.node.data[this.keyField]);\n }\n }\n // console.log('ee', e)\n // // console.log('e', e);\n // console.log('select', e.data.node.selected);\n // console.log('index', e.data.rowIndex);\n }\n\n ngAfterViewInit() {\n this.selectedItems.forEach((ele) => {\n this.selectedRows.push(ele);\n });\n this.searchBox.focus();\n if (this.dataSource.onDataReceived) {\n this.dataSource.onDataReceived.subscribe((arg) => {\n this.cdr.markForCheck();\n this.cdr.detectChanges();\n });\n }\n }\n\n // onValueSearchChanged(e) {\n\n // const params: AXDataSourceReadParams = {}\n // params.searchText = e.value;\n // // params.take = 100;\n // // params.skip = 0\n // this.dataSource.fetch(params);\n // }\n\n getFooterButtons(): AXButtonItem[] {\n return [\n {\n text: AXTranslator.get('common.confirm'),\n name: 'confirm',\n style: 'ax primary',\n icon: 'far fa-check-circle'\n },\n {\n text: AXTranslator.get('common.cancel'),\n name: 'cancel',\n style: 'ax light',\n icon: 'far fa-times-circle'\n }\n ];\n }\n\n onFooterButtonClick(e: AXMenuItemClickEvent) {\n if (e.name === 'confirm') {\n this.onDoneClick();\n }\n if (e.name === 'cancel') {\n this.onCancelClick();\n }\n }\n}\n","import { Component, Input, ContentChildren, QueryList, Output, EventEmitter, ContentChild, ViewChild, ViewEncapsulation, ElementRef, TemplateRef } from '@angular/core';\nimport { AXPopupService, AXBaseInputComponent, AXBaseSizableComponent, AXElementSize, AXValidation } from '@acorex/components';\nimport { AXDataSourceComponent, AXSelectBoxComponent, AXDataEvent, AXValidatableComponent } from '@acorex/components';\nimport { AXDataLovPopupComponent } from './data-lov-popup/data-lov-popup.component';\nimport { AXGridDataColumn } from '../data-grid/columns/column.component';\nimport { AXConfig } from '@acorex/core';\n\n\n\n@Component({\n selector: 'ax-lov',\n templateUrl: './data-lov.component.html',\n encapsulation: ViewEncapsulation.None,\n host: { style:'width: 100%' },\n providers: [{ provide: AXValidatableComponent, useExisting: AXLOVComponent }]\n})\nexport class AXLOVComponent extends AXValidatableComponent implements AXBaseSizableComponent, AXBaseInputComponent {\n\n @ContentChild(AXValidation, { static: true })\n private _contentValidation: AXValidation;\n private _validation: AXValidation;\n\n @Input()\n public get validation(): AXValidation {\n return this._validation ? this._validation : this._contentValidation;\n }\n public set validation(v: AXValidation) {\n this._validation = v;\n }\n\n constructor(private popup: AXPopupService, private ref: ElementRef) {\n super();\n }\n\n @ViewChild('selectBox', { static: true })\n selectBox: AXSelectBoxComponent;\n\n @ContentChild(AXDataSourceComponent, { static: true })\n dataSource: AXDataSourceComponent;\n\n @ContentChildren(AXGridDataColumn)\n private columns: QueryList<AXGridDataColumn>;\n\n\n @ContentChild('itemTemplate', { static: true })\n rowTemplate: TemplateRef<any>;\n\n\n @Input()\n textField: string = '';\n\n @Input()\n allowSearch: boolean = true;\n\n @Input()\n valueField: string = '';\n\n @Input()\n hasChildField: string = 'null';\n\n @Input()\n allowNull: boolean = true;\n\n @Input()\n popupSize: 'sm' | 'md' | 'lg' | 'full' = 'md';\n\n @Input()\n selectedItems: any[] = [];\n\n // @Input()\n // selectedValues: any[] = [];\n\n @Input()\n readonly: boolean = false;\n\n @Input()\n disabled: boolean = false;\n\n @Input()\n chipsWidth: string = '';\n\n @Input()\n size: AXElementSize = 'md';\n\n @Input()\n caption: string;\n\n @Input()\n mode: 'single' | 'multiple' = 'single';\n\n @Input()\n placeholder: string;\n\n @Output()\n onSelectionChange: EventEmitter<AXDataEvent<any>> = new EventEmitter<AXDataEvent<any>>();\n\n @Input()\n rtl: boolean = AXConfig.get('layout.rtl');\n\n\n focus(): void { this.selectBox.focus(); }\n\n refresh() {\n this.selectBox.refresh();\n }\n\n handleButtonClick() {\n this.open();\n }\n\n ngOnInit(): void {\n if (this.rtl == null) {\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\n }\n // this.selectVal = this.selectedValues;\n this.onSelectionChange.subscribe(c => {\n this.clearValidationStyle(this.ref.nativeElement);\n });\n }\n\n ngAfterContentInit(): void {\n this.initValidation(this.ref, 'selectedItems', this.validation);\n }\n\n\n handleSelectChange(e) {\n\n // console.log('se' + JSON.stringify(e));\n this.onSelectionChange.emit({ data: this.selectedItems, component: this, htmlElement: this.ref.nativeElement });\n }\n\n\n public open(): Promise<any> {\n return new Promise((resolve) => {\n this.selectBox.dropdown.close();\n this.popup.open(AXDataLovPopupComponent, {\n size: this.popupSize,\n data: {\n dataSource: this.dataSource,\n selectionMode: this.mode,\n columns: this.columns.toArray(),\n // selectedItems: this.selectedValues,\n selectedItems: this.selectedItems,\n keyField: this.valueField,\n allowNull: this.allowNull,\n hasChildField: this.hasChildField,\n rtl: this.rtl\n\n },\n title: this.caption,\n // size: this.size,\n }).then(c => {\n\n if (c.data) {\n // this.selectedValues = [];\n this.selectedItems = [];\n c.data.forEach(elm => {\n this.selectedItems.push(elm)\n });\n // this.selectedItems = c.data;\n // this.selectBox.refresh();\n // console.log('se' + JSON.stringify(this.selectedItems));\n this.onSelectionChange.emit({ data: this.selectedItems, component: this, htmlElement: this.ref.nativeElement });\n if (resolve) {\n resolve(c.data);\n }\n } else {\n if (resolve) {\n resolve();\n }\n }\n\n this.selectBox.refresh();\n });\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXLOVComponent } from './data-lov.component';\nimport { FormsModule } from '@angular/forms';\nimport { AXDataLovPopupComponent } from './data-lov-popup/data-lov-popup.component';\nimport { AXDataGridModule } from '../data-grid/datagrid.module';\nimport { AXDataSourceModule, AXButtonModule, AXToolbarModule, AXSearchBoxModule, AXSelectBoxModule } from '@acorex/components';\n\n\n@NgModule({\n declarations: [AXLOVComponent, AXDataLovPopupComponent],\n imports: [CommonModule, FormsModule, AXDataGridModule, AXDataSourceModule, AXButtonModule, AXToolbarModule, AXSelectBoxModule, AXSearchBoxModule],\n exports: [AXLOVComponent, AXDataLovPopupComponent],\n providers: [],\n entryComponents: [AXDataLovPopupComponent]\n})\nexport class AXLOVModule { }"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWRhdGEtZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvZGF0YS1ncmlkLyIsInNvdXJjZXMiOlsiYWNvcmV4LWRhdGEtZ3JpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,104 @@
1
+ var AXGridCheckColumn_1;
2
+ import { __decorate, __metadata } from "tslib";
3
+ import { Component, ChangeDetectionStrategy, ViewChild, ViewContainerRef } from '@angular/core';
4
+ import { AXGridDataColumn } from './column.component';
5
+ let AXGridCheckColumn = AXGridCheckColumn_1 = class AXGridCheckColumn extends AXGridDataColumn {
6
+ constructor() {
7
+ super();
8
+ }
9
+ render() {
10
+ const col = super.render();
11
+ if (!col.cellRendererFramework) {
12
+ col.cellRendererFramework = BooleanRenderer;
13
+ }
14
+ if (this.allowFiltering) {
15
+ col.filterFramework = BooleanFilterRenderer;
16
+ }
17
+ return col;
18
+ }
19
+ };
20
+ AXGridCheckColumn = AXGridCheckColumn_1 = __decorate([
21
+ Component({
22
+ selector: 'ax-check-column',
23
+ template: '',
24
+ providers: [{ provide: AXGridDataColumn, useExisting: AXGridCheckColumn_1 }],
25
+ changeDetection: ChangeDetectionStrategy.OnPush
26
+ }),
27
+ __metadata("design:paramtypes", [])
28
+ ], AXGridCheckColumn);
29
+ export { AXGridCheckColumn };
30
+ let BooleanRenderer = class BooleanRenderer {
31
+ constructor() { }
32
+ agInit(params) {
33
+ this.value = params.value;
34
+ }
35
+ refresh(params) {
36
+ this.value = params.value;
37
+ return true;
38
+ }
39
+ };
40
+ BooleanRenderer = __decorate([
41
+ Component({
42
+ template: `
43
+ <ax-check-box [value]='value' readonly='true'></ax-check-box>
44
+ `,
45
+ changeDetection: ChangeDetectionStrategy.OnPush
46
+ }),
47
+ __metadata("design:paramtypes", [])
48
+ ], BooleanRenderer);
49
+ export { BooleanRenderer };
50
+ let BooleanFilterRenderer = class BooleanFilterRenderer {
51
+ constructor() {
52
+ this.value = null;
53
+ this.selectItem = [
54
+ { value: 0, label: 'True' },
55
+ { value: 1, label: 'False' },
56
+ ];
57
+ }
58
+ agInit(params) {
59
+ this.params = params;
60
+ this.valueGetter = params.valueGetter;
61
+ }
62
+ isFilterActive() {
63
+ return this.value !== null && this.value !== undefined;
64
+ }
65
+ doesFilterPass(params) {
66
+ return this.value === this.valueGetter(params.node);
67
+ }
68
+ getModel() {
69
+ return { value: this.value };
70
+ }
71
+ setModel(model) {
72
+ this.value = model ? model.value : null;
73
+ }
74
+ ngAfterViewInit(params) {
75
+ window.setTimeout(() => {
76
+ this.input.element.nativeElement.focus();
77
+ });
78
+ }
79
+ onChange(newValue) {
80
+ if (this.value !== newValue) {
81
+ this.value = newValue;
82
+ this.params.filterChangedCallback();
83
+ }
84
+ }
85
+ };
86
+ __decorate([
87
+ ViewChild('input', { static: true, read: ViewContainerRef }),
88
+ __metadata("design:type", Object)
89
+ ], BooleanFilterRenderer.prototype, "input", void 0);
90
+ BooleanFilterRenderer = __decorate([
91
+ Component({
92
+ template: `
93
+ <ax-data-grid-filter>
94
+ <ax-select-box
95
+ label='Select Box'
96
+ [items]='selectItem'
97
+ ></ax-select-box>
98
+ </ax-data-grid-filter>
99
+ `,
100
+ changeDetection: ChangeDetectionStrategy.OnPush
101
+ })
102
+ ], BooleanFilterRenderer);
103
+ export { BooleanFilterRenderer };
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvZGF0YS1ncmlkLyIsInNvdXJjZXMiOlsibGliL2RhdGEtZ3JpZC9jb2x1bW5zL2NoZWNrLWNvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBaUJ0RCxJQUFhLGlCQUFpQix5QkFBOUIsTUFBYSxpQkFBa0IsU0FBUSxnQkFBZ0I7SUFDckQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRCxNQUFNO1FBQ0osTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUU7WUFDOUIsR0FBRyxDQUFDLHFCQUFxQixHQUFHLGVBQWUsQ0FBQztTQUM3QztRQUNELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixHQUFHLENBQUMsZUFBZSxHQUFHLHFCQUFxQixDQUFDO1NBQzdDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0YsQ0FBQTtBQWZZLGlCQUFpQjtJQVA3QixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsaUJBQWlCO1FBQzNCLFFBQVEsRUFBRSxFQUFFO1FBQ1osU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLG1CQUFpQixFQUFFLENBQUM7UUFDMUUsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07S0FDaEQsQ0FBQzs7R0FFVyxpQkFBaUIsQ0FlN0I7U0FmWSxpQkFBaUI7QUF1QjlCLElBQWEsZUFBZSxHQUE1QixNQUFhLGVBQWU7SUFFMUIsZ0JBQWdCLENBQUM7SUFDakIsTUFBTSxDQUFDLE1BQTJCO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBQ0QsT0FBTyxDQUFDLE1BQTJCO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRixDQUFBO0FBVlksZUFBZTtJQU4zQixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUU7O0dBRVQ7UUFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtLQUNoRCxDQUFDOztHQUNXLGVBQWUsQ0FVM0I7U0FWWSxlQUFlO0FBdUI1QixJQUFhLHFCQUFxQixHQUFsQyxNQUFhLHFCQUFxQjtJQUFsQztRQUNTLFVBQUssR0FBYSxJQUFJLENBQUM7UUFLOUIsZUFBVSxHQUFHO1lBQ1gsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDM0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7U0FDN0IsQ0FBQztJQWtDSixDQUFDO0lBakNDLE1BQU0sQ0FBQyxNQUFxQjtRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7SUFDeEMsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDO0lBQ3pELENBQUM7SUFFRCxjQUFjLENBQUMsTUFBNkI7UUFDMUMsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDMUMsQ0FBQztJQUVELGVBQWUsQ0FBQyxNQUErQjtRQUM3QyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUSxDQUFDLFFBQVE7UUFDZixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQztTQUNyQztJQUNILENBQUM7Q0FDRixDQUFBO0FBdkMrRDtJQUE3RCxTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQzs7b0RBQWM7QUFKaEUscUJBQXFCO0lBWGpDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRTs7Ozs7OztHQU9UO1FBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07S0FDaEQsQ0FBQztHQUNXLHFCQUFxQixDQTJDakM7U0EzQ1kscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhHcmlkRGF0YUNvbHVtbiB9IGZyb20gJy4vY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAsIElGaWx0ZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQge1xuICBJQ2VsbFJlbmRlcmVyUGFyYW1zLFxuICBJRmlsdGVyUGFyYW1zLFxuICBSb3dOb2RlLFxuICBJRG9lc0ZpbHRlclBhc3NQYXJhbXMsXG4gIElBZnRlckd1aUF0dGFjaGVkUGFyYW1zXG59IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtY2hlY2stY29sdW1uJyxcbiAgdGVtcGxhdGU6ICcnLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYR3JpZERhdGFDb2x1bW4sIHVzZUV4aXN0aW5nOiBBWEdyaWRDaGVja0NvbHVtbiB9XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5cbmV4cG9ydCBjbGFzcyBBWEdyaWRDaGVja0NvbHVtbiBleHRlbmRzIEFYR3JpZERhdGFDb2x1bW4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGNvbCA9IHN1cGVyLnJlbmRlcigpO1xuICAgIGlmICghY29sLmNlbGxSZW5kZXJlckZyYW1ld29yaykge1xuICAgICAgY29sLmNlbGxSZW5kZXJlckZyYW1ld29yayA9IEJvb2xlYW5SZW5kZXJlcjtcbiAgICB9XG4gICAgaWYgKHRoaXMuYWxsb3dGaWx0ZXJpbmcpIHtcbiAgICAgIGNvbC5maWx0ZXJGcmFtZXdvcmsgPSBCb29sZWFuRmlsdGVyUmVuZGVyZXI7XG4gICAgfVxuICAgIHJldHVybiBjb2w7XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGF4LWNoZWNrLWJveCBbdmFsdWVdPSd2YWx1ZScgcmVhZG9ubHk9J3RydWUnPjwvYXgtY2hlY2stYm94PlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBCb29sZWFuUmVuZGVyZXIgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAge1xuICB2YWx1ZTogYm9vbGVhbjtcbiAgY29uc3RydWN0b3IoKSB7IH1cbiAgYWdJbml0KHBhcmFtczogSUNlbGxSZW5kZXJlclBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBwYXJhbXMudmFsdWU7XG4gIH1cbiAgcmVmcmVzaChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpOiBib29sZWFuIHtcbiAgICB0aGlzLnZhbHVlID0gcGFyYW1zLnZhbHVlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYFxuICAgIDxheC1kYXRhLWdyaWQtZmlsdGVyPlxuICAgICAgPGF4LXNlbGVjdC1ib3hcbiAgICAgICAgbGFiZWw9J1NlbGVjdCBCb3gnXG4gICAgICAgIFtpdGVtc109J3NlbGVjdEl0ZW0nXG4gICAgICA+PC9heC1zZWxlY3QtYm94PlxuICAgIDwvYXgtZGF0YS1ncmlkLWZpbHRlcj5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQm9vbGVhbkZpbHRlclJlbmRlcmVyIGltcGxlbWVudHMgSUZpbHRlckFuZ3VsYXJDb21wIHtcbiAgcHVibGljIHZhbHVlPzogYm9vbGVhbiA9IG51bGw7XG4gIHByaXZhdGUgcGFyYW1zOiBJRmlsdGVyUGFyYW1zO1xuICBwcml2YXRlIHZhbHVlR2V0dGVyOiAocm93Tm9kZTogUm93Tm9kZSkgPT4gYW55O1xuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIHB1YmxpYyBpbnB1dDtcblxuICBzZWxlY3RJdGVtID0gW1xuICAgIHsgdmFsdWU6IDAsIGxhYmVsOiAnVHJ1ZScgfSxcbiAgICB7IHZhbHVlOiAxLCBsYWJlbDogJ0ZhbHNlJyB9LFxuICBdO1xuICBhZ0luaXQocGFyYW1zOiBJRmlsdGVyUGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy52YWx1ZUdldHRlciA9IHBhcmFtcy52YWx1ZUdldHRlcjtcbiAgfVxuXG4gIGlzRmlsdGVyQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlICE9PSBudWxsICYmIHRoaXMudmFsdWUgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGRvZXNGaWx0ZXJQYXNzKHBhcmFtczogSURvZXNGaWx0ZXJQYXNzUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgPT09IHRoaXMudmFsdWVHZXR0ZXIocGFyYW1zLm5vZGUpO1xuICB9XG5cbiAgZ2V0TW9kZWwoKTogYW55IHtcbiAgICByZXR1cm4geyB2YWx1ZTogdGhpcy52YWx1ZSB9O1xuICB9XG5cbiAgc2V0TW9kZWwobW9kZWw6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBtb2RlbCA/IG1vZGVsLnZhbHVlIDogbnVsbDtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdChwYXJhbXM6IElBZnRlckd1aUF0dGFjaGVkUGFyYW1zKTogdm9pZCB7XG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pbnB1dC5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uQ2hhbmdlKG5ld1ZhbHVlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFsdWUgIT09IG5ld1ZhbHVlKSB7XG4gICAgICB0aGlzLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB0aGlzLnBhcmFtcy5maWx0ZXJDaGFuZ2VkQ2FsbGJhY2soKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,204 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { AXConfig } from '@acorex/core';
3
+ import { Input, ContentChild } from '@angular/core';
4
+ import { AXDataGridCellTemplateComponent } from '../templates/cell-template.component';
5
+ export class AXGridDataColumn {
6
+ constructor() {
7
+ this.width = 100;
8
+ this.pinned = null;
9
+ this.allowSorting = true;
10
+ this.allowFiltering = AXConfig.get('datagrid.allowFiltering') || false;
11
+ this.sort = null;
12
+ this.field = '';
13
+ this.caption = '';
14
+ this.checkbox = false;
15
+ this.headerCheckbox = false;
16
+ this.groupIndex = -1;
17
+ this.treeIndex = -1;
18
+ this.enableRowGroup = false;
19
+ this.hide = false;
20
+ this.floatingFilter = AXConfig.get('datagrid.floatingFilter') || false;
21
+ this.disableMenu = false;
22
+ this.resizable = true;
23
+ this.menuColumnDisable = false;
24
+ this.menuItemDisable = false;
25
+ }
26
+ ;
27
+ render() {
28
+ const col = {
29
+ field: this.field,
30
+ width: this.width,
31
+ };
32
+ col.resizable = this.resizable;
33
+ col.suppressMenu = this.disableMenu;
34
+ col.menuTabs = ['filterMenuTab', 'columnsMenuTab', 'generalMenuTab'];
35
+ col.floatingFilter = this.floatingFilter;
36
+ if (!this.allowFiltering) {
37
+ col.filter = false;
38
+ col.menuTabs = col.menuTabs.filter(c => c != 'filterMenuTab');
39
+ col.floatingFilter = false;
40
+ }
41
+ if (this.menuColumnDisable == true) {
42
+ col.menuTabs = col.menuTabs.filter(c => c != 'columnsMenuTab');
43
+ }
44
+ if (this.menuItemDisable == true) {
45
+ col.menuTabs = col.menuTabs.filter(c => c != 'generalMenuTab');
46
+ }
47
+ if (this.caption) {
48
+ col.headerName = this.caption;
49
+ }
50
+ if (this.minWidth) {
51
+ col.minWidth = this.minWidth;
52
+ }
53
+ if (this.maxWidth) {
54
+ col.maxWidth = this.maxWidth;
55
+ }
56
+ if (this.pinned) {
57
+ col.pinned = this.pinned === 'start' ? 'right' : 'left';
58
+ // TODO: Change based on layout
59
+ }
60
+ if (this.allowSorting) {
61
+ col.sortable = this.allowSorting;
62
+ }
63
+ if (this.sort) {
64
+ col.sort = this.sort;
65
+ }
66
+ if (this.groupIndex >= 0) {
67
+ col.rowGroupIndex = this.groupIndex;
68
+ col.rowGroup = true;
69
+ this.enableRowGroup = true;
70
+ }
71
+ if (this.treeIndex >= 0) {
72
+ col.rowGroupIndex = this.treeIndex;
73
+ col.rowGroup = false;
74
+ }
75
+ if (this.hide) {
76
+ col.hide = true;
77
+ }
78
+ if (this.enableRowGroup) {
79
+ col.enableRowGroup = this.enableRowGroup;
80
+ }
81
+ if (this.cellClass) {
82
+ const THAT = this;
83
+ if (this.cellClass instanceof Function) {
84
+ col.cellClass = (p) => {
85
+ return THAT.cellClass({
86
+ column: THAT,
87
+ rowIndex: p.node.rowIndex,
88
+ rowLevel: p.node.level,
89
+ data: p.data,
90
+ value: p.value
91
+ });
92
+ };
93
+ }
94
+ else {
95
+ col.cellClass = this.cellClass;
96
+ }
97
+ }
98
+ //
99
+ if (this.cellTemplate != null) {
100
+ col.cellRendererFramework = this.cellTemplate.renderer;
101
+ col.cellRendererParams = this.cellTemplate.params;
102
+ }
103
+ if (this.checkbox) {
104
+ col.checkboxSelection = (params) => {
105
+ return true;
106
+ };
107
+ // col.headerCheckboxSelection = this.headerCheckbox;
108
+ }
109
+ return col;
110
+ }
111
+ }
112
+ __decorate([
113
+ ContentChild(AXDataGridCellTemplateComponent),
114
+ __metadata("design:type", AXDataGridCellTemplateComponent)
115
+ ], AXGridDataColumn.prototype, "cellTemplate", void 0);
116
+ __decorate([
117
+ Input(),
118
+ __metadata("design:type", Number)
119
+ ], AXGridDataColumn.prototype, "width", void 0);
120
+ __decorate([
121
+ Input(),
122
+ __metadata("design:type", Number)
123
+ ], AXGridDataColumn.prototype, "maxWidth", void 0);
124
+ __decorate([
125
+ Input(),
126
+ __metadata("design:type", Number)
127
+ ], AXGridDataColumn.prototype, "minWidth", void 0);
128
+ __decorate([
129
+ Input(),
130
+ __metadata("design:type", String)
131
+ ], AXGridDataColumn.prototype, "pinned", void 0);
132
+ __decorate([
133
+ Input(),
134
+ __metadata("design:type", Boolean)
135
+ ], AXGridDataColumn.prototype, "allowSorting", void 0);
136
+ __decorate([
137
+ Input(),
138
+ __metadata("design:type", Boolean)
139
+ ], AXGridDataColumn.prototype, "allowFiltering", void 0);
140
+ __decorate([
141
+ Input(),
142
+ __metadata("design:type", Function)
143
+ ], AXGridDataColumn.prototype, "cellClass", void 0);
144
+ __decorate([
145
+ Input(),
146
+ __metadata("design:type", String)
147
+ ], AXGridDataColumn.prototype, "sort", void 0);
148
+ __decorate([
149
+ Input(),
150
+ __metadata("design:type", String)
151
+ ], AXGridDataColumn.prototype, "field", void 0);
152
+ __decorate([
153
+ Input(),
154
+ __metadata("design:type", String)
155
+ ], AXGridDataColumn.prototype, "caption", void 0);
156
+ __decorate([
157
+ Input(),
158
+ __metadata("design:type", Object)
159
+ ], AXGridDataColumn.prototype, "cellRendererParams", void 0);
160
+ __decorate([
161
+ Input(),
162
+ __metadata("design:type", Boolean)
163
+ ], AXGridDataColumn.prototype, "checkbox", void 0);
164
+ __decorate([
165
+ Input(),
166
+ __metadata("design:type", Boolean)
167
+ ], AXGridDataColumn.prototype, "headerCheckbox", void 0);
168
+ __decorate([
169
+ Input(),
170
+ __metadata("design:type", Number)
171
+ ], AXGridDataColumn.prototype, "groupIndex", void 0);
172
+ __decorate([
173
+ Input(),
174
+ __metadata("design:type", Number)
175
+ ], AXGridDataColumn.prototype, "treeIndex", void 0);
176
+ __decorate([
177
+ Input(),
178
+ __metadata("design:type", Boolean)
179
+ ], AXGridDataColumn.prototype, "enableRowGroup", void 0);
180
+ __decorate([
181
+ Input(),
182
+ __metadata("design:type", Boolean)
183
+ ], AXGridDataColumn.prototype, "hide", void 0);
184
+ __decorate([
185
+ Input(),
186
+ __metadata("design:type", Boolean)
187
+ ], AXGridDataColumn.prototype, "floatingFilter", void 0);
188
+ __decorate([
189
+ Input(),
190
+ __metadata("design:type", Boolean)
191
+ ], AXGridDataColumn.prototype, "disableMenu", void 0);
192
+ __decorate([
193
+ Input(),
194
+ __metadata("design:type", Boolean)
195
+ ], AXGridDataColumn.prototype, "resizable", void 0);
196
+ __decorate([
197
+ Input(),
198
+ __metadata("design:type", Boolean)
199
+ ], AXGridDataColumn.prototype, "menuColumnDisable", void 0);
200
+ __decorate([
201
+ Input(),
202
+ __metadata("design:type", Boolean)
203
+ ], AXGridDataColumn.prototype, "menuItemDisable", void 0);
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvZGF0YS1ncmlkLyIsInNvdXJjZXMiOlsibGliL2RhdGEtZ3JpZC9jb2x1bW5zL2NvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFFakUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFJdkYsTUFBTSxPQUFnQixnQkFBZ0I7SUF3RWxDO1FBakVBLFVBQUssR0FBVyxHQUFHLENBQUM7UUFTcEIsV0FBTSxHQUEyQixJQUFJLENBQUM7UUFHdEMsaUJBQVksR0FBWSxJQUFJLENBQUM7UUFHN0IsbUJBQWMsR0FBWSxRQUFRLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLElBQUksS0FBSyxDQUFDO1FBTTNFLFNBQUksR0FBMEIsSUFBSSxDQUFDO1FBR25DLFVBQUssR0FBVyxFQUFFLENBQUM7UUFHbkIsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQU1yQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRzFCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBR2hDLGVBQVUsR0FBVyxDQUFDLENBQUMsQ0FBQztRQUd4QixjQUFTLEdBQVcsQ0FBQyxDQUFDLENBQUM7UUFHdkIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFHaEMsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUd0QixtQkFBYyxHQUFZLFFBQVEsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsSUFBSSxLQUFLLENBQUM7UUFHM0UsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFHN0IsY0FBUyxHQUFZLElBQUksQ0FBQztRQUcxQixzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFHbkMsb0JBQWUsR0FBWSxLQUFLLENBQUM7SUFFakIsQ0FBQztJQWxEMEQsQ0FBQztJQW9ENUUsTUFBTTtRQUNGLE1BQU0sR0FBRyxHQUFRO1lBQ2IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztTQUNwQixDQUFDO1FBQ0YsR0FBRyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQy9CLEdBQUcsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNwQyxHQUFHLENBQUMsUUFBUSxHQUFHLENBQUMsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLENBQUE7UUFDcEUsR0FBRyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBRXpDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3RCLEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ25CLEdBQUcsQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksZUFBZSxDQUFDLENBQUM7WUFDOUQsR0FBRyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7U0FDOUI7UUFDRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLEVBQUU7WUFDaEMsR0FBRyxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ2xFO1FBQ0QsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksRUFBRTtZQUM5QixHQUFHLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLENBQUM7U0FDbEU7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZCxHQUFHLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDakM7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixHQUFHLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDaEM7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixHQUFHLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDaEM7UUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDYixHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUN4RCwrQkFBK0I7U0FDbEM7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsR0FBRyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQ3BDO1FBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1gsR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ3hCO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsRUFBRTtZQUN0QixHQUFHLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDcEMsR0FBRyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7U0FDOUI7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxFQUFFO1lBQ3JCLEdBQUcsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNuQyxHQUFHLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUN4QjtRQUNELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNYLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1NBRW5CO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLEdBQUcsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUM1QztRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7WUFDbEIsSUFBSSxJQUFJLENBQUMsU0FBUyxZQUFZLFFBQVEsRUFBRTtnQkFDcEMsR0FBRyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7d0JBQ2xCLE1BQU0sRUFBRSxJQUFJO3dCQUNaLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVE7d0JBQ3pCLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUs7d0JBQ3RCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTt3QkFDWixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7cUJBQ2pCLENBQUMsQ0FBQztnQkFDUCxDQUFDLENBQUM7YUFDTDtpQkFDSTtnQkFDRCxHQUFHLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7YUFFbEM7U0FDSjtRQUNELEVBQUU7UUFDRixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxFQUFFO1lBQzNCLEdBQUcsQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztZQUN2RCxHQUFHLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7U0FDckQ7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixHQUFHLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDL0IsT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQyxDQUFDO1lBQ0Ysc0RBQXNEO1NBQ3pEO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0NBQ0o7QUFqS0c7SUFEQyxZQUFZLENBQUMsK0JBQStCLENBQUM7OEJBQ2hDLCtCQUErQjtzREFBQztBQUc5QztJQURDLEtBQUssRUFBRTs7K0NBQ1k7QUFHcEI7SUFEQyxLQUFLLEVBQUU7O2tEQUNTO0FBR2pCO0lBREMsS0FBSyxFQUFFOztrREFDUztBQUdqQjtJQURDLEtBQUssRUFBRTs7Z0RBQzhCO0FBR3RDO0lBREMsS0FBSyxFQUFFOztzREFDcUI7QUFHN0I7SUFEQyxLQUFLLEVBQUU7O3dEQUNtRTtBQUczRTtJQURDLEtBQUssRUFBRTs7bURBQzJFO0FBR25GO0lBREMsS0FBSyxFQUFFOzs4Q0FDMkI7QUFHbkM7SUFEQyxLQUFLLEVBQUU7OytDQUNXO0FBR25CO0lBREMsS0FBSyxFQUFFOztpREFDYTtBQUdyQjtJQURDLEtBQUssRUFBRTs7NERBQ2dCO0FBR3hCO0lBREMsS0FBSyxFQUFFOztrREFDa0I7QUFHMUI7SUFEQyxLQUFLLEVBQUU7O3dEQUN3QjtBQUdoQztJQURDLEtBQUssRUFBRTs7b0RBQ2dCO0FBR3hCO0lBREMsS0FBSyxFQUFFOzttREFDZTtBQUd2QjtJQURDLEtBQUssRUFBRTs7d0RBQ3dCO0FBR2hDO0lBREMsS0FBSyxFQUFFOzs4Q0FDYztBQUd0QjtJQURDLEtBQUssRUFBRTs7d0RBQ21FO0FBRzNFO0lBREMsS0FBSyxFQUFFOztxREFDcUI7QUFHN0I7SUFEQyxLQUFLLEVBQUU7O21EQUNrQjtBQUcxQjtJQURDLEtBQUssRUFBRTs7MkRBQzJCO0FBR25DO0lBREMsS0FBSyxFQUFFOzt5REFDeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbmZpZyB9IGZyb20gJ0BhY29yZXgvY29yZSc7XG5pbXBvcnQgeyBJbnB1dCwgQ29udGVudENoaWxkLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhHcmlkQ2VsbFBhcmFtcyB9IGZyb20gJy4uL2RhdGFncmlkLmV2ZW50cyc7XG5pbXBvcnQgeyBBWERhdGFHcmlkQ2VsbFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vdGVtcGxhdGVzL2NlbGwtdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEFYRGF0ZVBpY2tlckZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZS1jb2x1bW4uY29tcG9uZW50JztcblxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhHcmlkRGF0YUNvbHVtbiB7XG5cblxuICAgIEBDb250ZW50Q2hpbGQoQVhEYXRhR3JpZENlbGxUZW1wbGF0ZUNvbXBvbmVudClcbiAgICBjZWxsVGVtcGxhdGU6IEFYRGF0YUdyaWRDZWxsVGVtcGxhdGVDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHdpZHRoOiBudW1iZXIgPSAxMDA7XG5cbiAgICBASW5wdXQoKVxuICAgIG1heFdpZHRoOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIG1pbldpZHRoOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHBpbm5lZDogJ3N0YXJ0JyB8ICdlbmQnIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIGFsbG93U29ydGluZzogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIGFsbG93RmlsdGVyaW5nOiBib29sZWFuID0gQVhDb25maWcuZ2V0KCdkYXRhZ3JpZC5hbGxvd0ZpbHRlcmluZycpIHx8IGZhbHNlOztcblxuICAgIEBJbnB1dCgpXG4gICAgY2VsbENsYXNzOiAocGFyYW1zOiBBWEdyaWRDZWxsUGFyYW1zKSA9PiAoc3RyaW5nIHwgc3RyaW5nW10pIHwgKHN0cmluZyB8IHN0cmluZ1tdKTtcblxuICAgIEBJbnB1dCgpXG4gICAgc29ydDogJ2FzYycgfCAnZGVzYycgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgZmllbGQ6IHN0cmluZyA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBjYXB0aW9uOiBzdHJpbmcgPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgY2VsbFJlbmRlcmVyUGFyYW1zOiBhbnk7XG5cbiAgICBASW5wdXQoKVxuICAgIGNoZWNrYm94OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGhlYWRlckNoZWNrYm94OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGdyb3VwSW5kZXg6IG51bWJlciA9IC0xO1xuXG4gICAgQElucHV0KClcbiAgICB0cmVlSW5kZXg6IG51bWJlciA9IC0xO1xuXG4gICAgQElucHV0KClcbiAgICBlbmFibGVSb3dHcm91cDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBoaWRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGZsb2F0aW5nRmlsdGVyOiBib29sZWFuID0gQVhDb25maWcuZ2V0KCdkYXRhZ3JpZC5mbG9hdGluZ0ZpbHRlcicpIHx8IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlTWVudTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICByZXNpemFibGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBtZW51Q29sdW1uRGlzYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBtZW51SXRlbURpc2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgICByZW5kZXIoKTogYW55IHtcbiAgICAgICAgY29uc3QgY29sOiBhbnkgPSB7XG4gICAgICAgICAgICBmaWVsZDogdGhpcy5maWVsZCxcbiAgICAgICAgICAgIHdpZHRoOiB0aGlzLndpZHRoLFxuICAgICAgICB9O1xuICAgICAgICBjb2wucmVzaXphYmxlID0gdGhpcy5yZXNpemFibGU7XG4gICAgICAgIGNvbC5zdXBwcmVzc01lbnUgPSB0aGlzLmRpc2FibGVNZW51O1xuICAgICAgICBjb2wubWVudVRhYnMgPSBbJ2ZpbHRlck1lbnVUYWInLCAnY29sdW1uc01lbnVUYWInLCAnZ2VuZXJhbE1lbnVUYWInXVxuICAgICAgICBjb2wuZmxvYXRpbmdGaWx0ZXIgPSB0aGlzLmZsb2F0aW5nRmlsdGVyO1xuXG4gICAgICAgIGlmICghdGhpcy5hbGxvd0ZpbHRlcmluZykge1xuICAgICAgICAgICAgY29sLmZpbHRlciA9IGZhbHNlO1xuICAgICAgICAgICAgY29sLm1lbnVUYWJzID0gY29sLm1lbnVUYWJzLmZpbHRlcihjID0+IGMgIT0gJ2ZpbHRlck1lbnVUYWInKTtcbiAgICAgICAgICAgIGNvbC5mbG9hdGluZ0ZpbHRlciA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1lbnVDb2x1bW5EaXNhYmxlID09IHRydWUpIHtcbiAgICAgICAgICAgIGNvbC5tZW51VGFicyA9IGNvbC5tZW51VGFicy5maWx0ZXIoYyA9PiBjICE9ICdjb2x1bW5zTWVudVRhYicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1lbnVJdGVtRGlzYWJsZSA9PSB0cnVlKSB7XG4gICAgICAgICAgICBjb2wubWVudVRhYnMgPSBjb2wubWVudVRhYnMuZmlsdGVyKGMgPT4gYyAhPSAnZ2VuZXJhbE1lbnVUYWInKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jYXB0aW9uKSB7XG4gICAgICAgICAgICBjb2wuaGVhZGVyTmFtZSA9IHRoaXMuY2FwdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5taW5XaWR0aCkge1xuICAgICAgICAgICAgY29sLm1pbldpZHRoID0gdGhpcy5taW5XaWR0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tYXhXaWR0aCkge1xuICAgICAgICAgICAgY29sLm1heFdpZHRoID0gdGhpcy5tYXhXaWR0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5waW5uZWQpIHtcbiAgICAgICAgICAgIGNvbC5waW5uZWQgPSB0aGlzLnBpbm5lZCA9PT0gJ3N0YXJ0JyA/ICdyaWdodCcgOiAnbGVmdCc7XG4gICAgICAgICAgICAvLyBUT0RPOiBDaGFuZ2UgYmFzZWQgb24gbGF5b3V0XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYWxsb3dTb3J0aW5nKSB7XG4gICAgICAgICAgICBjb2wuc29ydGFibGUgPSB0aGlzLmFsbG93U29ydGluZztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zb3J0KSB7XG4gICAgICAgICAgICBjb2wuc29ydCA9IHRoaXMuc29ydDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmdyb3VwSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgY29sLnJvd0dyb3VwSW5kZXggPSB0aGlzLmdyb3VwSW5kZXg7XG4gICAgICAgICAgICBjb2wucm93R3JvdXAgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5lbmFibGVSb3dHcm91cCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50cmVlSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgY29sLnJvd0dyb3VwSW5kZXggPSB0aGlzLnRyZWVJbmRleDtcbiAgICAgICAgICAgIGNvbC5yb3dHcm91cCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmhpZGUpIHtcbiAgICAgICAgICAgIGNvbC5oaWRlID0gdHJ1ZTtcblxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmVuYWJsZVJvd0dyb3VwKSB7XG4gICAgICAgICAgICBjb2wuZW5hYmxlUm93R3JvdXAgPSB0aGlzLmVuYWJsZVJvd0dyb3VwO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY2VsbENsYXNzKSB7XG4gICAgICAgICAgICBjb25zdCBUSEFUID0gdGhpcztcbiAgICAgICAgICAgIGlmICh0aGlzLmNlbGxDbGFzcyBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgICAgICAgICAgY29sLmNlbGxDbGFzcyA9IChwKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBUSEFULmNlbGxDbGFzcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46IFRIQVQsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dJbmRleDogcC5ub2RlLnJvd0luZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgcm93TGV2ZWw6IHAubm9kZS5sZXZlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHAuZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBwLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb2wuY2VsbENsYXNzID0gdGhpcy5jZWxsQ2xhc3M7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvL1xuICAgICAgICBpZiAodGhpcy5jZWxsVGVtcGxhdGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29sLmNlbGxSZW5kZXJlckZyYW1ld29yayA9IHRoaXMuY2VsbFRlbXBsYXRlLnJlbmRlcmVyO1xuICAgICAgICAgICAgY29sLmNlbGxSZW5kZXJlclBhcmFtcyA9IHRoaXMuY2VsbFRlbXBsYXRlLnBhcmFtcztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNoZWNrYm94KSB7XG4gICAgICAgICAgICBjb2wuY2hlY2tib3hTZWxlY3Rpb24gPSAocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy8gIGNvbC5oZWFkZXJDaGVja2JveFNlbGVjdGlvbiA9IHRoaXMuaGVhZGVyQ2hlY2tib3g7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbDtcbiAgICB9XG59XG5cblxuXG5cblxuXG5cblxuIl19