@acorex/data-grid 3.0.65 → 4.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. package/acorex-data-grid.d.ts +1 -0
  2. package/esm2020/acorex-data-grid.mjs +5 -0
  3. package/esm2020/lib/data-grid/columns/check-column.component.mjs +117 -0
  4. package/esm2020/lib/data-grid/columns/column.component.mjs +164 -0
  5. package/{esm2015/lib/data-grid/columns/command-column.component.js → esm2020/lib/data-grid/columns/command-column.component.mjs} +46 -35
  6. package/esm2020/lib/data-grid/columns/date-column.component.mjs +112 -0
  7. package/esm2020/lib/data-grid/columns/row-number-column.component.mjs +37 -0
  8. package/esm2020/lib/data-grid/columns/selection-column.component.mjs +42 -0
  9. package/esm2020/lib/data-grid/columns/text-column.component.mjs +89 -0
  10. package/esm2020/lib/data-grid/datagrid.component.mjs +658 -0
  11. package/esm2020/lib/data-grid/datagrid.events.mjs +2 -0
  12. package/esm2020/lib/data-grid/datagrid.module.mjs +145 -0
  13. package/esm2020/lib/data-grid/filters/filter.component.mjs +39 -0
  14. package/esm2020/lib/data-grid/templates/cell-template.component.mjs +53 -0
  15. package/esm2020/lib/data-grid/templates/detail-template.component.mjs +46 -0
  16. package/esm2020/lib/data-grid/templates/row-template.component.mjs +43 -0
  17. package/esm2020/lib/data-lov/data-lov-popup/data-lov-popup.component.mjs +118 -0
  18. package/esm2020/lib/data-lov/data-lov.component.mjs +163 -0
  19. package/esm2020/lib/data-lov/data-lov.module.mjs +23 -0
  20. package/esm2020/public-api.mjs +18 -0
  21. package/fesm2015/acorex-data-grid.mjs +1875 -0
  22. package/fesm2015/acorex-data-grid.mjs.map +1 -0
  23. package/fesm2020/acorex-data-grid.mjs +1875 -0
  24. package/fesm2020/acorex-data-grid.mjs.map +1 -0
  25. package/lib/data-grid/columns/check-column.component.d.ts +7 -0
  26. package/lib/data-grid/columns/column.component.d.ts +3 -0
  27. package/lib/data-grid/columns/command-column.component.d.ts +5 -0
  28. package/lib/data-grid/columns/date-column.component.d.ts +5 -0
  29. package/lib/data-grid/columns/row-number-column.component.d.ts +3 -0
  30. package/lib/data-grid/columns/selection-column.component.d.ts +3 -0
  31. package/lib/data-grid/columns/text-column.component.d.ts +5 -0
  32. package/lib/data-grid/datagrid.component.d.ts +3 -0
  33. package/lib/data-grid/datagrid.module.d.ts +20 -0
  34. package/lib/data-grid/filters/filter.component.d.ts +3 -0
  35. package/lib/data-grid/templates/cell-template.component.d.ts +5 -0
  36. package/lib/data-grid/templates/detail-template.component.d.ts +5 -0
  37. package/lib/data-grid/templates/row-template.component.d.ts +5 -0
  38. package/lib/data-lov/data-lov-popup/data-lov-popup.component.d.ts +3 -0
  39. package/lib/data-lov/data-lov.component.d.ts +3 -0
  40. package/lib/data-lov/data-lov.module.d.ts +10 -0
  41. package/package.json +23 -13
  42. package/acorex-data-grid.metadata.json +0 -1
  43. package/bundles/acorex-data-grid.umd.js +0 -2261
  44. package/bundles/acorex-data-grid.umd.js.map +0 -1
  45. package/bundles/acorex-data-grid.umd.min.js +0 -16
  46. package/bundles/acorex-data-grid.umd.min.js.map +0 -1
  47. package/esm2015/acorex-data-grid.js +0 -5
  48. package/esm2015/lib/data-grid/columns/check-column.component.js +0 -104
  49. package/esm2015/lib/data-grid/columns/column.component.js +0 -204
  50. package/esm2015/lib/data-grid/columns/date-column.component.js +0 -114
  51. package/esm2015/lib/data-grid/columns/row-number-column.component.js +0 -39
  52. package/esm2015/lib/data-grid/columns/selection-column.component.js +0 -48
  53. package/esm2015/lib/data-grid/columns/text-column.component.js +0 -81
  54. package/esm2015/lib/data-grid/datagrid.component.js +0 -734
  55. package/esm2015/lib/data-grid/datagrid.events.js +0 -1
  56. package/esm2015/lib/data-grid/datagrid.module.js +0 -98
  57. package/esm2015/lib/data-grid/filters/filter.component.js +0 -25
  58. package/esm2015/lib/data-grid/templates/cell-template.component.js +0 -47
  59. package/esm2015/lib/data-grid/templates/detail-template.component.js +0 -45
  60. package/esm2015/lib/data-grid/templates/row-template.component.js +0 -40
  61. package/esm2015/lib/data-lov/data-lov-popup/data-lov-popup.component.js +0 -121
  62. package/esm2015/lib/data-lov/data-lov.component.js +0 -212
  63. package/esm2015/lib/data-lov/data-lov.module.js +0 -21
  64. package/esm2015/public-api.js +0 -17
  65. package/esm5/acorex-data-grid.js +0 -5
  66. package/esm5/lib/data-grid/columns/check-column.component.js +0 -102
  67. package/esm5/lib/data-grid/columns/column.component.js +0 -206
  68. package/esm5/lib/data-grid/columns/command-column.component.js +0 -98
  69. package/esm5/lib/data-grid/columns/date-column.component.js +0 -119
  70. package/esm5/lib/data-grid/columns/row-number-column.component.js +0 -42
  71. package/esm5/lib/data-grid/columns/selection-column.component.js +0 -52
  72. package/esm5/lib/data-grid/columns/text-column.component.js +0 -81
  73. package/esm5/lib/data-grid/datagrid.component.js +0 -792
  74. package/esm5/lib/data-grid/datagrid.events.js +0 -1
  75. package/esm5/lib/data-grid/datagrid.module.js +0 -101
  76. package/esm5/lib/data-grid/filters/filter.component.js +0 -16
  77. package/esm5/lib/data-grid/templates/cell-template.component.js +0 -46
  78. package/esm5/lib/data-grid/templates/detail-template.component.js +0 -49
  79. package/esm5/lib/data-grid/templates/row-template.component.js +0 -44
  80. package/esm5/lib/data-lov/data-lov-popup/data-lov-popup.component.js +0 -127
  81. package/esm5/lib/data-lov/data-lov.component.js +0 -222
  82. package/esm5/lib/data-lov/data-lov.module.js +0 -24
  83. package/esm5/public-api.js +0 -17
  84. package/fesm2015/acorex-data-grid.js +0 -1939
  85. package/fesm2015/acorex-data-grid.js.map +0 -1
  86. package/fesm5/acorex-data-grid.js +0 -2017
  87. package/fesm5/acorex-data-grid.js.map +0 -1
@@ -1 +0,0 @@
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","paginationAutoPageSize","paginationPageSize","cacheBlockSize","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","getColumnDefs","gridApi","getCurrentPageNumber","current","paginationGetCurrentPage","total","paginationGetTotalPages","getServerSideGroupKey","internalGetRowClass","rowClass","localeText","AXTranslator","_searchText","v","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","endRow","sortModel","map","colId","dir","group","fields","rowGroupCols","keys","groupKeys","parentData","parentNode","filterModel","dataSource","fetch","getMainMenuItems","destroy","paginationGoToPage","number","internalGridReady","gridOptions","api","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';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\n\r\n@Component({\r\n selector: 'ax-cell-template',\r\n template: `<ng-content></ng-content>\r\n `\r\n})\r\n\r\nexport class AXDataGridCellTemplateComponent {\r\n @ContentChild(TemplateRef, { static: true }) templateRef: TemplateRef<any>;\r\n renderer: any;\r\n params: any;\r\n constructor() {\r\n this.renderer = AXDataGridCellTemplateRenderer;\r\n }\r\n ngOnInit(): void {\r\n this.params = {\r\n templateRef: this.templateRef\r\n }\r\n }\r\n}\r\n\r\n@Component({\r\n template: `\r\n <ng-container *ngTemplateOutlet='templateRef; context: { $implicit: rowData }'>\r\n </ng-container>\r\n `\r\n})\r\n\r\nexport class AXDataGridCellTemplateRenderer implements ICellRendererAngularComp {\r\n rowData: any;\r\n templateRef: TemplateRef<any>;\r\n\r\n constructor() { }\r\n\r\n agInit(params: ICellRendererParams): void {\r\n this.rowData = params.data;\r\n this.templateRef = (params as any).templateRef;\r\n }\r\n\r\n refresh(params: ICellRendererParams): boolean {\r\n this.rowData = params.data;\r\n return true;\r\n }\r\n}","import { AXConfig } from '@acorex/core';\r\nimport { Input, ContentChild, TemplateRef } from '@angular/core';\r\nimport { AXGridCellParams } from '../datagrid.events';\r\nimport { AXDataGridCellTemplateComponent } from '../templates/cell-template.component';\r\nimport { AXDatePickerFilterComponent } from './date-column.component';\r\n\r\n\r\nexport abstract class AXGridDataColumn {\r\n\r\n\r\n @ContentChild(AXDataGridCellTemplateComponent)\r\n cellTemplate: AXDataGridCellTemplateComponent;\r\n\r\n @Input()\r\n width: number = 100;\r\n\r\n @Input()\r\n maxWidth: number;\r\n\r\n @Input()\r\n minWidth: number;\r\n\r\n @Input()\r\n pinned: 'start' | 'end' | null = null;\r\n\r\n @Input()\r\n allowSorting: boolean = true;\r\n\r\n @Input()\r\n allowFiltering: boolean = AXConfig.get('datagrid.allowFiltering') || false;;\r\n\r\n @Input()\r\n cellClass: (params: AXGridCellParams) => (string | string[]) | (string | string[]);\r\n\r\n @Input()\r\n sort: 'asc' | 'desc' | null = null;\r\n\r\n @Input()\r\n field: string = '';\r\n\r\n @Input()\r\n caption: string = '';\r\n\r\n @Input()\r\n cellRendererParams: any;\r\n\r\n @Input()\r\n checkbox: boolean = false;\r\n\r\n @Input()\r\n headerCheckbox: boolean = false;\r\n\r\n @Input()\r\n groupIndex: number = -1;\r\n\r\n @Input()\r\n treeIndex: number = -1;\r\n\r\n @Input()\r\n enableRowGroup: boolean = false;\r\n\r\n @Input()\r\n hide: boolean = false;\r\n\r\n @Input()\r\n floatingFilter: boolean = AXConfig.get('datagrid.floatingFilter') || false;\r\n\r\n @Input()\r\n disableMenu: boolean = false;\r\n\r\n @Input()\r\n resizable: boolean = true;\r\n\r\n @Input()\r\n menuColumnDisable: boolean = false;\r\n\r\n @Input()\r\n menuItemDisable: boolean = false;\r\n\r\n constructor() { }\r\n\r\n render(): any {\r\n const col: any = {\r\n field: this.field,\r\n width: this.width,\r\n };\r\n col.resizable = this.resizable;\r\n col.suppressMenu = this.disableMenu;\r\n col.menuTabs = ['filterMenuTab', 'columnsMenuTab', 'generalMenuTab']\r\n col.floatingFilter = this.floatingFilter;\r\n\r\n if (!this.allowFiltering) {\r\n col.filter = false;\r\n col.menuTabs = col.menuTabs.filter(c => c != 'filterMenuTab');\r\n col.floatingFilter = false;\r\n }\r\n if (this.menuColumnDisable == true) {\r\n col.menuTabs = col.menuTabs.filter(c => c != 'columnsMenuTab');\r\n }\r\n if (this.menuItemDisable == true) {\r\n col.menuTabs = col.menuTabs.filter(c => c != 'generalMenuTab');\r\n }\r\n if (this.caption) {\r\n col.headerName = this.caption;\r\n }\r\n if (this.minWidth) {\r\n col.minWidth = this.minWidth;\r\n }\r\n if (this.maxWidth) {\r\n col.maxWidth = this.maxWidth;\r\n }\r\n if (this.pinned) {\r\n col.pinned = this.pinned === 'start' ? 'right' : 'left';\r\n // TODO: Change based on layout\r\n }\r\n if (this.allowSorting) {\r\n col.sortable = this.allowSorting;\r\n }\r\n if (this.sort) {\r\n col.sort = this.sort;\r\n }\r\n\r\n if (this.groupIndex >= 0) {\r\n col.rowGroupIndex = this.groupIndex;\r\n col.rowGroup = true;\r\n this.enableRowGroup = true;\r\n }\r\n\r\n if (this.treeIndex >= 0) {\r\n col.rowGroupIndex = this.treeIndex;\r\n col.rowGroup = false;\r\n }\r\n if (this.hide) {\r\n col.hide = true;\r\n\r\n }\r\n if (this.enableRowGroup) {\r\n col.enableRowGroup = this.enableRowGroup;\r\n }\r\n\r\n if (this.cellClass) {\r\n const THAT = this;\r\n if (this.cellClass instanceof Function) {\r\n col.cellClass = (p) => {\r\n return THAT.cellClass({\r\n column: THAT,\r\n rowIndex: p.node.rowIndex,\r\n rowLevel: p.node.level,\r\n data: p.data,\r\n value: p.value\r\n });\r\n };\r\n }\r\n else {\r\n col.cellClass = this.cellClass;\r\n\r\n }\r\n }\r\n //\r\n if (this.cellTemplate != null) {\r\n col.cellRendererFramework = this.cellTemplate.renderer;\r\n col.cellRendererParams = this.cellTemplate.params;\r\n }\r\n\r\n if (this.checkbox) {\r\n col.checkboxSelection = (params) => {\r\n return true;\r\n };\r\n // col.headerCheckboxSelection = this.headerCheckbox;\r\n }\r\n return col;\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n ViewChild,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { AXGridDataColumn } from './column.component';\r\nimport { ICellRendererAngularComp, IFilterAngularComp } from 'ag-grid-angular';\r\nimport {\r\n ICellRendererParams,\r\n IFilterParams,\r\n RowNode,\r\n IDoesFilterPassParams,\r\n IAfterGuiAttachedParams\r\n} from 'ag-grid-community';\r\n\r\n@Component({\r\n selector: 'ax-check-column',\r\n template: '',\r\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridCheckColumn }],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class AXGridCheckColumn extends AXGridDataColumn {\r\n constructor() {\r\n super();\r\n }\r\n\r\n render() {\r\n const col = super.render();\r\n if (!col.cellRendererFramework) {\r\n col.cellRendererFramework = BooleanRenderer;\r\n }\r\n if (this.allowFiltering) {\r\n col.filterFramework = BooleanFilterRenderer;\r\n }\r\n return col;\r\n }\r\n}\r\n\r\n@Component({\r\n template: `\r\n <ax-check-box [value]='value' readonly='true'></ax-check-box>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class BooleanRenderer implements ICellRendererAngularComp {\r\n value: boolean;\r\n constructor() { }\r\n agInit(params: ICellRendererParams): void {\r\n this.value = params.value;\r\n }\r\n refresh(params: ICellRendererParams): boolean {\r\n this.value = params.value;\r\n return true;\r\n }\r\n}\r\n\r\n@Component({\r\n template: `\r\n <ax-data-grid-filter>\r\n <ax-select-box\r\n label='Select Box'\r\n [items]='selectItem'\r\n ></ax-select-box>\r\n </ax-data-grid-filter>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class BooleanFilterRenderer implements IFilterAngularComp {\r\n public value?: boolean = null;\r\n private params: IFilterParams;\r\n private valueGetter: (rowNode: RowNode) => any;\r\n @ViewChild('input', { static: true, read: ViewContainerRef }) public input;\r\n\r\n selectItem = [\r\n { value: 0, label: 'True' },\r\n { value: 1, label: 'False' },\r\n ];\r\n agInit(params: IFilterParams): void {\r\n this.params = params;\r\n this.valueGetter = params.valueGetter;\r\n }\r\n\r\n isFilterActive(): boolean {\r\n return this.value !== null && this.value !== undefined;\r\n }\r\n\r\n doesFilterPass(params: IDoesFilterPassParams): boolean {\r\n return this.value === this.valueGetter(params.node);\r\n }\r\n\r\n getModel(): any {\r\n return { value: this.value };\r\n }\r\n\r\n setModel(model: any): void {\r\n this.value = model ? model.value : null;\r\n }\r\n\r\n ngAfterViewInit(params: IAfterGuiAttachedParams): void {\r\n window.setTimeout(() => {\r\n this.input.element.nativeElement.focus();\r\n });\r\n }\r\n\r\n onChange(newValue): void {\r\n if (this.value !== newValue) {\r\n this.value = newValue;\r\n this.params.filterChangedCallback();\r\n }\r\n }\r\n}\r\n","import { AXGridDataColumn } from './column.component';\r\nimport { ChangeDetectionStrategy, Component, Input, EventEmitter, ViewEncapsulation, Output, ChangeDetectorRef } from '@angular/core';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\nimport { AXGridRowCommandEvent } from '../datagrid.events';\r\nimport { AXMenuItem } from '@acorex/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\n\r\nexport type AXGridRowCommandFunction = (row: any) => AXMenuItem[];\r\n\r\n@Component({\r\n selector: 'ax-command-column',\r\n template: '',\r\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridCommandColumn }],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXGridCommandColumn extends AXGridDataColumn {\r\n @Input()\r\n items: AXMenuItem[] | AXGridRowCommandFunction = [];\r\n\r\n @Output()\r\n onItemClick: EventEmitter<AXGridRowCommandEvent> = new EventEmitter<AXGridRowCommandEvent>();\r\n\r\n render() {\r\n const col = super.render();\r\n if (!col.cellRendererFramework) {\r\n col.cellRendererFramework = CommandRenderer;\r\n }\r\n col.cellRendererParams = {\r\n items: this.items,\r\n onClick: (e) => {\r\n this.onItemClick.emit({\r\n command: e.name,\r\n data: e.data,\r\n rowIndex: e.rowIndex,\r\n rowLevel: e.rowLevel,\r\n htmlEvent: e.htmlEvent\r\n });\r\n }\r\n };\r\n col.sortable = false;\r\n col.filter = false;\r\n col.valueGetter = (params) => {\r\n return this.items;\r\n };\r\n return col;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'ax-command-cell',\r\n template: `\r\n <button\r\n *ngFor=\"let item of items; let i = index\"\r\n class=\"ax button md ax-grid-command-button {{ item.style || 'ax primary blank' }}\"\r\n [class.disabled]=\"item.disable\"\r\n type=\"button\"\r\n [title]=\"item.tooltip\"\r\n [attr.tabindex]=\"i\"\r\n (click)=\"onClick(item, $event)\"\r\n >\r\n <i [ngClass]=\"item.icon\"></i>{{ item.text }}\r\n </button>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CommandRenderer implements ICellRendererAngularComp {\r\n items: AXMenuItem[] | AXGridRowCommandFunction = [];\r\n node: any;\r\n private clickCallback: Function;\r\n\r\n constructor() {}\r\n\r\n agInit(params: ICellRendererParams): void {\r\n this.mapParams(params);\r\n }\r\n\r\n refresh(params: ICellRendererParams): boolean {\r\n this.mapParams(params);\r\n return true;\r\n }\r\n\r\n private mapParams(params: any) {\r\n this.node = params.node;\r\n this.items = typeof params.items == 'function' ? params.items({ data: this.node.data }) : Array.isArray(params.items) ? params.items : [];\r\n this.clickCallback = params.onClick;\r\n }\r\n\r\n onClick(item: AXMenuItem, e: MouseEvent) {\r\n if (this.clickCallback && !item.disable) {\r\n this.clickCallback({\r\n name: item.name,\r\n rowLevel: this.node.level,\r\n rowIndex: this.node.rowIndex,\r\n data: this.node.data,\r\n htmlEvent: e\r\n });\r\n }\r\n }\r\n}\r\n","\r\nimport {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Input,\r\n ViewEncapsulation,\r\n ViewChild,\r\n ElementRef\r\n} from '@angular/core';\r\nimport { AXGridDataColumn } from './column.component';\r\nimport { AXDateTime, AXConfig, AXCalendarType } from '@acorex/core';\r\nimport { AXDatePickerComponent } from '@acorex/components';\r\n@Component({\r\n selector: 'ax-date-column',\r\n template: '',\r\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridDateColumn }],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXGridDateColumn extends AXGridDataColumn {\r\n constructor() {\r\n super();\r\n }\r\n\r\n @Input()\r\n format: string;\r\n\r\n @Input()\r\n type: AXCalendarType = AXConfig.get('dateTime.type');\r\n\r\n render() {\r\n const col = super.render();\r\n col.cellRendererParams = {\r\n format: this.format,\r\n };\r\n\r\n col.comparator = (valueA: any, valueB: any) => {\r\n const date1 = AXDateTime.convert(valueA);\r\n const date2 = AXDateTime.convert(valueB);\r\n //\r\n if (date1 === null && date2 === null) {\r\n return 0;\r\n }\r\n if (date1 === null) {\r\n return -1;\r\n }\r\n if (date2 === null) {\r\n return 1;\r\n }\r\n return (date1.date.getTime() - date2.date.getTime());\r\n };\r\n\r\n col.valueFormatter = (params) => {\r\n const date: AXDateTime = AXDateTime.convert(params.value, this.type);\r\n if (date) {\r\n return date.format(this.format);\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n col.filter = 'agDateColumnFilter';\r\n // col.floatingFilter = true;\r\n return col;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'ax-data-picker-filter',\r\n template: `<ax-date-picker [selectableHoliday]=\"selectableHoliday\" [allowClear]=\"true\" (onValueChanged)=\"onValueChanged($event)\" size=\"sm\">\r\n </ax-date-picker>`,\r\n host: { },\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXDatePickerFilterComponent {\r\n @ViewChild(AXDatePickerComponent)\r\n datePicker: AXDatePickerComponent;\r\n @ViewChild('div', { read: ElementRef }) div: ElementRef;\r\n selectableHoliday: boolean = false;\r\n type: string = 'jalali';\r\n date: Date;\r\n params: any;\r\n picker: any;\r\n\r\n\r\n agInit(params: any): void {\r\n this.params = params;\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n ngOnDestroy() {\r\n console.log(`Destroying DateComponent`);\r\n }\r\n\r\n onDateChanged(selectedDates) {\r\n //this.date = selectedDates[0] || null;\r\n this.params.onDateChanged();\r\n }\r\n\r\n getDate(): Date {\r\n return this.date;\r\n }\r\n\r\n setDate(date: Date): void {\r\n this.date = date || null;\r\n //this.picker.setDate(date);\r\n }\r\n\r\n setInputPlaceholder(placeholder: string): void {\r\n //this.div.nativeElement.setAttribute('placeholder', placeholder);\r\n }\r\n onValueChanged(e) {\r\n\r\n this.setDate(e.value);\r\n this.onDateChanged(e.value);\r\n }\r\n\r\n}\r\n","import { AXGridDataColumn } from './column.component';\r\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-selection-column',\r\n template: '',\r\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridSelectionColumn }],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXGridSelectionColumn extends AXGridDataColumn {\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n @Input()\r\n condition: (params) => boolean;\r\n\r\n @Input()\r\n pinned: 'start' | 'end' = 'start';\r\n\r\n @Input()\r\n width: number = 40;\r\n\r\n render() {\r\n const col = super.render();\r\n col.checkboxSelection = this.condition ? this.condition : true;\r\n // col.headerCheckboxSelection = true;\r\n col.pinned = this.pinned === 'start' ? 'right' : 'left';\r\n col.filter = false;\r\n col.resizable = true;\r\n col.sortable = false;\r\n col.minWidth = 5;\r\n col.width = this.width;\r\n col.floatingFilter = false;\r\n return col;\r\n }\r\n}\r\n","import { AXGridDataColumn } from './column.component';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ViewContainerRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {\r\n IFilterParams,\r\n RowNode,\r\n IDoesFilterPassParams,\r\n IAfterGuiAttachedParams\r\n} from 'ag-grid-community';\r\nimport { IFilterAngularComp } from 'ag-grid-angular';\r\nimport { AXTextBoxComponent } from '@acorex/components';\r\n\r\n\r\n@Component({\r\n selector: 'ax-text-column',\r\n template: '',\r\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridTextColumn }],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXGridTextColumn extends AXGridDataColumn {\r\n constructor() {\r\n super();\r\n }\r\n\r\n render() {\r\n const col = super.render();\r\n // if (this.allowFiltering) {\r\n // col.filterFramework = TextFilterRenderer;\r\n // }\r\n col.filter = 'agTextColumnFilter';\r\n return col;\r\n }\r\n}\r\n\r\n@Component({\r\n template: `\r\n <ax-data-grid-filter>\r\n <ax-text-box label='Filter' allowClear='true' (textChange)='onChange($event)'>\r\n </ax-text-box>\r\n </ax-data-grid-filter>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TextFilterRenderer implements IFilterAngularComp {\r\n public value?: string = null;\r\n private params: IFilterParams;\r\n private valueGetter: (rowNode: RowNode) => any;\r\n @ViewChild(AXTextBoxComponent, { static: true })\r\n private input: AXTextBoxComponent;\r\n\r\n agInit(params: IFilterParams): void {\r\n this.params = params;\r\n this.valueGetter = params.valueGetter;\r\n }\r\n\r\n isFilterActive(): boolean {\r\n return this.value !== null && this.value !== undefined;\r\n }\r\n\r\n doesFilterPass(params: IDoesFilterPassParams): boolean {\r\n return this.value === this.valueGetter(params.node);\r\n }\r\n\r\n getModel(): any {\r\n return { value: this.value };\r\n }\r\n\r\n setModel(model: any): void {\r\n ;\r\n this.onChange(model ? model.value : null);\r\n }\r\n\r\n ngAfterViewInit(params: IAfterGuiAttachedParams): void {\r\n window.setTimeout(() => {\r\n this.input.focus();\r\n });\r\n }\r\n\r\n onChange(newValue): void {\r\n if (this.value !== newValue) {\r\n this.value = newValue;\r\n if (this.value === '') {\r\n this.value = null;\r\n }\r\n this.params.filterChangedCallback();\r\n }\r\n }\r\n}\r\n","import { AXGridDataColumn } from './column.component';\r\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { AXConfig } from '@acorex/core';\r\n\r\n@Component({\r\n selector: 'ax-row-number-column',\r\n template: '',\r\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridRowNumberColumn }],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXGridRowNumberColumn extends AXGridDataColumn {\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n @Input()\r\n condition: (params) => boolean;\r\n\r\n render() {\r\n const col = super.render();\r\n // col.checkboxSelection = this.condition ? this.condition : true;\r\n // col.headerCheckboxSelection = true;\r\n\r\n (col.headerName = this.caption ? this.caption : AXConfig.get('layout.rtl') ? 'ردیف' : 'Row'),\r\n (col.valueGetter = 'node.rowIndex + 1'),\r\n (col.pinned = this.pinned == null ? null : this.pinned === 'start' ? 'right' : 'left'),\r\n (col.filter = false);\r\n col.resizable = true;\r\n col.sortable = false;\r\n col.width = this.width;\r\n\r\n return col;\r\n }\r\n}\r\n","import { Component, ContentChild, TemplateRef, Input } from '@angular/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\n\r\n@Component({\r\n selector: 'ax-row-template',\r\n template: `<ng-content></ng-content>`\r\n})\r\n\r\nexport class AXDataGridRowTemplateComponent {\r\n @ContentChild(TemplateRef, { static: true }) templateRef: TemplateRef<any>;\r\n renderer: any;\r\n params: any;\r\n constructor() {\r\n this.renderer = AXDataGridRowTemplateRenderer;\r\n }\r\n ngOnInit(): void {\r\n this.params = {\r\n templateRef: this.templateRef\r\n }\r\n }\r\n}\r\n\r\n@Component({\r\n template: `<ng-container *ngTemplateOutlet='templateRef; context: { $implicit: data }'></ng-container>`\r\n})\r\n\r\nexport class AXDataGridRowTemplateRenderer implements ICellRendererAngularComp {\r\n\r\n templateRef: TemplateRef<any>;\r\n\r\n data: any;\r\n\r\n refresh(params: any): boolean {\r\n return false;\r\n }\r\n\r\n agInit(params: any): void {\r\n this.data = params.data.callRecords;\r\n this.templateRef = params.templateRef;\r\n }\r\n}","import { Component, ContentChild, TemplateRef, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\n\r\n@Component({\r\n selector: 'ax-grid-detail-template',\r\n template: `<ng-content></ng-content>`\r\n})\r\n\r\nexport class AXDataGridDetailTemplateComponent {\r\n @ContentChild(TemplateRef, { static: true }) templateRef: TemplateRef<any>;\r\n renderer: any;\r\n params: any;\r\n constructor() {\r\n this.renderer = AXDataGridDetailTemplateRenderer;\r\n }\r\n ngOnInit(): void {\r\n this.params = {\r\n templateRef: this.templateRef\r\n }\r\n }\r\n\r\n @Input()\r\n height: number = 100;\r\n}\r\n\r\n@Component({\r\n template: `<ng-container *ngTemplateOutlet='templateRef; context: { $implicit: data }'></ng-container>`\r\n})\r\n\r\nexport class AXDataGridDetailTemplateRenderer implements ICellRendererAngularComp {\r\n\r\n refresh(params: any): boolean {\r\n return false;\r\n }\r\n\r\n templateRef: TemplateRef<any>;\r\n data: any;\r\n\r\n agInit(params: any): void {\r\n this.data = params.data;\r\n this.templateRef = params.templateRef;\r\n }\r\n}","import {\r\n Component,\r\n ContentChild,\r\n Input,\r\n ContentChildren,\r\n QueryList,\r\n EventEmitter,\r\n Output,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy\r\n} from '@angular/core';\r\nimport { AXDataSourceComponent } from '@acorex/components';\r\nimport { AXGridDataColumn } from './columns/column.component';\r\nimport { AXDataSourceReadParams } from '@acorex/components';\r\nimport {\r\n GridOptions,\r\n CellClickedEvent,\r\n RowClickedEvent,\r\n CellEvent,\r\n RowEvent,\r\n FirstDataRenderedEvent,\r\n GridSizeChangedEvent,\r\n GridApi\r\n} from 'ag-grid-community';\r\n\r\nimport { LicenseManager } from 'ag-grid-enterprise';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { AXGridCellEvent, AXGridRowEvent, AXGridRowSelectionEvent, AXGridRowParams } from './datagrid.events';\r\n\r\nimport { AXDataGridRowTemplateComponent } from './templates/row-template.component';\r\nimport { AXToolbarSearchComponent, AXToolbarComponent, AXDataEvent, AXValueEvent } from '@acorex/components';\r\nimport { AXDataGridDetailTemplateComponent } from './templates/detail-template.component';\r\nimport { AXTranslator } from '@acorex/core';\r\nimport { AXDatePickerFilterComponent } from './columns/date-column.component';\r\nimport { AXConfig } from '@acorex/core';\r\n\r\nLicenseManager.prototype.validateLicense = function () {\r\n //console.info('Cracked by Arash Oshnoudi!');\r\n};\r\n\r\n// WatermarkComp.prototype.shouldDisplayWatermark = function () {\r\n// return false;\r\n// }\r\n\r\nexport class AXDataGridColumnsChangeEvent extends AXValueEvent<AXGridDataColumn[]> {\r\n component: AXDataGridComponent;\r\n}\r\nexport class AXDataGridCellEvent extends AXDataEvent<AXGridCellEvent> {\r\n component: AXDataGridComponent;\r\n}\r\nexport class AXDaagridRowClickEvent extends AXDataEvent<AXGridRowEvent> {\r\n component: AXDataGridComponent;\r\n}\r\n\r\nexport class AXDataGridSelectionChangeEvent extends AXDataEvent<AXGridRowSelectionEvent> {\r\n component: AXDataGridComponent;\r\n}\r\n\r\nexport class AXDataGridRowSelectionChangeEvent extends AXDataEvent<any> {\r\n component: AXDataGridComponent;\r\n selected: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'ax-data-grid',\r\n templateUrl: './datagrid.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n // changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXDataGridComponent {\r\n private gridApi;\r\n private dataSourceSuccessCallback;\r\n localeText: any;\r\n\r\n gridOptions: GridOptions;\r\n columnDefs: any[] = [];\r\n rowModelType = 'clientSide';\r\n fullWidthCellRendererFramework: any;\r\n fullWidthCellRendererParams: any;\r\n frameworkComponents: any = {};\r\n isFullWidthCell: Function;\r\n internalHeight: string = '100%';\r\n detailCellRenderer: any;\r\n detailCellRendererParams: any;\r\n detailRowHeight: number;\r\n masterDetail: boolean = false;\r\n treeData: boolean = false;\r\n enabelSelect: boolean = false;\r\n gridView: boolean = false;\r\n groupSelectsChildren: boolean = false;\r\n oldSelectionNodes: any[] = [];\r\n paginationAutoPageSize: boolean = true;\r\n paginationPageSize: number = 10;\r\n cacheBlockSize: number = 10;\r\n // @Input()\r\n // showRowNumber: boolean = true;\r\n\r\n @Input()\r\n public remoteOperation: boolean = false;\r\n\r\n @Input()\r\n public rowMultiSelectWithClick: boolean = true;\r\n\r\n @Input()\r\n public suppressRowClickSelection: boolean = true;\r\n\r\n @Input()\r\n public suppressCellSelection: boolean = false;\r\n\r\n @Input()\r\n public sizeColumnsToFit: boolean = true;\r\n\r\n @Input()\r\n showCheckBox: boolean = true;\r\n\r\n @Input()\r\n floatingFilter: boolean = false;\r\n\r\n // @Input()\r\n // takeCount: number;\r\n\r\n autoGroupColumnDef: any = {};\r\n\r\n @Input()\r\n selectionMode: 'single' | 'multiple' = 'single';\r\n\r\n // @Input()\r\n // allowFiltering: boolean = false;\r\n\r\n @Input()\r\n selectRow: any[] = [];\r\n\r\n @Input()\r\n rowGroupPanelShow: 'always' | 'never' = 'never';\r\n\r\n @Input()\r\n loadOnInit: boolean = true;\r\n\r\n // @Input()\r\n // groupDefaultExpanded: number = 0;\r\n\r\n @Input()\r\n keyField: string = 'null';\r\n\r\n @Input()\r\n hasChildField: string = 'null';\r\n\r\n private _searchText: string;\r\n @Input()\r\n public get searchText(): string {\r\n return this._searchText;\r\n }\r\n public set searchText(v: string) {\r\n if (v !== this._searchText) {\r\n this._searchText = v;\r\n if (this.gridApi) {\r\n this.refresh();\r\n this.gridApi.setQuickFilter(this.searchText);\r\n }\r\n }\r\n }\r\n\r\n private _filter: any[];\r\n @Input()\r\n public get filter(): any[] {\r\n return this._filter;\r\n }\r\n public set filter(v: any[]) {\r\n if (v !== this._filter) {\r\n this._filter = v;\r\n this._filter.forEach((f) => {\r\n const fc = this.gridApi.getFilterInstance(f.field);\r\n if (fc) {\r\n const ff = fc.getFrameworkComponentInstance();\r\n ff.setModel(f);\r\n }\r\n });\r\n }\r\n }\r\n\r\n @ContentChildren(AXGridDataColumn)\r\n private _inlineColumns: QueryList<AXGridDataColumn>;\r\n\r\n @Output()\r\n columnsChange: EventEmitter<AXDataGridColumnsChangeEvent> = new EventEmitter<AXDataGridColumnsChangeEvent>();\r\n\r\n private _columns: AXGridDataColumn[] = [];\r\n @Input()\r\n public get columns(): AXGridDataColumn[] {\r\n return this._inlineColumns ? [...this._columns, ...this._inlineColumns.toArray()] : this._columns;\r\n }\r\n\r\n public set columns(val: AXGridDataColumn[]) {\r\n if (val && val.length) {\r\n let old = this._columns;\r\n this._columns = val;\r\n this.columnsChange.emit({ component: this, value: val, oldValue: old, htmlElement: this.ref.nativeElement });\r\n }\r\n }\r\n\r\n defaultColDef: any = {\r\n filter: true,\r\n floatingFilter: true\r\n };\r\n\r\n @Input()\r\n rowHeight: any;\r\n\r\n @ContentChild(AXToolbarSearchComponent, { static: true })\r\n searchInput: AXToolbarSearchComponent;\r\n\r\n @ContentChild(AXToolbarComponent, { static: true })\r\n toolbar: AXToolbarComponent;\r\n\r\n @ContentChild(AXDataGridRowTemplateComponent, { static: true })\r\n rowTemplate: AXDataGridRowTemplateComponent;\r\n\r\n @ContentChild(AXDataGridDetailTemplateComponent, { static: true })\r\n gridDetailTemplate: AXDataGridDetailTemplateComponent;\r\n\r\n @ContentChild(AXDataSourceComponent, { static: true })\r\n private _contentDataSource: AXDataSourceComponent;\r\n\r\n private _dataSource: AXDataSourceComponent;\r\n\r\n @Input()\r\n public get dataSource(): AXDataSourceComponent {\r\n return this._dataSource ? this._dataSource : this._contentDataSource;\r\n }\r\n\r\n public set dataSource(v: AXDataSourceComponent) {\r\n this._dataSource = v;\r\n }\r\n\r\n @Input()\r\n groupHideOpenParents: boolean = false;\r\n\r\n @Output()\r\n cellClick: EventEmitter<AXDataGridCellEvent> = new EventEmitter<AXDataGridCellEvent>();\r\n\r\n @Output()\r\n cellDbClick: EventEmitter<AXDataGridCellEvent> = new EventEmitter<AXDataGridCellEvent>();\r\n\r\n @Output()\r\n cellFocuse: EventEmitter<AXDataGridCellEvent> = new EventEmitter<AXDataGridCellEvent>();\r\n\r\n @Output()\r\n rowClick: EventEmitter<AXDaagridRowClickEvent> = new EventEmitter<AXDaagridRowClickEvent>();\r\n\r\n @Output()\r\n rowDbClick: EventEmitter<AXDaagridRowClickEvent> = new EventEmitter<AXDaagridRowClickEvent>();\r\n\r\n @Output()\r\n selectionChanged: EventEmitter<AXDataGridSelectionChangeEvent> = new EventEmitter<AXDataGridSelectionChangeEvent>();\r\n\r\n @Output()\r\n rowSelectionChange: EventEmitter<AXDataGridSelectionChangeEvent> = new EventEmitter<AXDataGridSelectionChangeEvent>();\r\n\r\n @Output()\r\n onRowSelectionChanged: EventEmitter<AXDataGridRowSelectionChangeEvent> = new EventEmitter<AXDataGridRowSelectionChangeEvent>();\r\n\r\n getRowHeight(param) {\r\n if (param.data && param.data.rowHeight && param.node.level == 0) {\r\n return param.data.rowHeight;\r\n } else if (this.masterDetail == true && param.node.level == 1) {\r\n return this.detailRowHeight;\r\n } else if (this.masterDetail == false && param.data && param.data.rowHeight) {\r\n return param.data.rowHeight;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n @Input()\r\n rowClass?: (params: AXGridRowParams) => (string | string[]) | (string | string[]);\r\n\r\n @Input()\r\n rtl: boolean = AXConfig.get('layout.rtl');\r\n\r\n constructor(private ref: ElementRef, private cdr: ChangeDetectorRef) {\r\n this.localeText = AXTranslator.get('dataGrid');\r\n }\r\n\r\n private calcHeight(): void {\r\n if (this.toolbar) {\r\n this.internalHeight = `calc(100% - ${40}px)`;\r\n } else {\r\n this.internalHeight = '100%';\r\n }\r\n }\r\n\r\n private get intenalGridDataSource() {\r\n const that = this;\r\n return {\r\n rowCount: null,\r\n getRows: (params) => {\r\n // that.gridApi.gridOptionsWrapper.setProperty('cacheBlockSize', this.takeCount ? this.takeCount : params.api.paginationGetPageSize());\r\n that.dataSourceSuccessCallback = params.successCallback;\r\n const loadParams: AXDataSourceReadParams = {};\r\n loadParams.searchText = that.searchText;\r\n loadParams.skip = params.request.startRow;\r\n // loadParams.take = params.request.endRow - params.request.startRow;\r\n //// loadParams.take = that.takeCount ? that.takeCount : params.api.paginationGetPageSize() * 2;\r\n\r\n loadParams.take = params.request.endRow - params.request.startRow;\r\n\r\n loadParams.sort = params.request.sortModel.map((c) => {\r\n return {\r\n field: c.colId,\r\n dir: c.sort\r\n };\r\n });\r\n // loadParams.groups = params.request.rowGroupCols.map(r => r.field);\r\n // loadParams.groupKeys = params.request.groupKeys;\r\n // loadParams.data = params.parentNode.data;\r\n loadParams.group = {\r\n fields: params.request.rowGroupCols.map((r) => r.field),\r\n keys: params.request.groupKeys,\r\n parentData: params.parentNode.data\r\n };\r\n loadParams.filter = params.request.filterModel;\r\n debugger;\r\n /// setTimeout(() => {\r\n that.dataSource.fetch(loadParams);\r\n // }, 5000);\r\n }\r\n };\r\n }\r\n getMainMenuItems(e) {\r\n return ['pinSubMenu', 'separator'];\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.gridApi.destroy();\r\n }\r\n\r\n isServerSideGroup = (e) => {\r\n return e[this.hasChildField];\r\n };\r\n\r\n getColumnDefs = () => {\r\n return this.gridApi.getColumnDefs();\r\n };\r\n\r\n getCurrentPageNumber = () => {\r\n return {\r\n current: this.gridApi.paginationGetCurrentPage() + 1,\r\n total: this.gridApi.paginationGetTotalPages()\r\n };\r\n };\r\n\r\n paginationGoToPage(number) {\r\n this.gridApi.paginationGoToPage(number - 1);\r\n }\r\n\r\n getServerSideGroupKey = (e) => {\r\n return e[this.keyField];\r\n };\r\n // todo gridOptions: GridOptions\r\n internalGridReady(gridOptions) {\r\n //// gridOptions.api.checkGridSize();\r\n //// this.takeCount = this.takeCount ? this.takeCount : gridOptions.api.paginationGetPageSize() * 2;\r\n // this.takeCount = this.takeCount < 20 ? 20 : this.takeCount;\r\n //// gridOptions.api.gridOptionsWrapper.setProperty('cacheBlockSize', this.takeCount);\r\n\r\n this.gridApi = gridOptions.api;\r\n\r\n this.mapColumns();\r\n this.calcHeight();\r\n\r\n if (!this.loadOnInit) {\r\n this.loadOnInit = true;\r\n return;\r\n }\r\n\r\n if (this.remoteOperation) {\r\n this.gridApi.setServerSideDatasource(this.intenalGridDataSource);\r\n }\r\n\r\n if (!this.remoteOperation) {\r\n this.refresh();\r\n }\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n const that = this;\r\n if (this.rowTemplate) {\r\n this.fullWidthCellRendererFramework = this.rowTemplate.renderer;\r\n this.fullWidthCellRendererParams = this.rowTemplate.params;\r\n }\r\n this.frameworkComponents.agDateInput = AXDatePickerFilterComponent;\r\n\r\n if (this.gridDetailTemplate) {\r\n this.masterDetail = true;\r\n this.detailCellRendererParams = this.gridDetailTemplate.params;\r\n this.detailCellRenderer = 'detailRendererFramework';\r\n this.frameworkComponents.detailRendererFramework = this.gridDetailTemplate.renderer;\r\n\r\n this.detailRowHeight = this.gridDetailTemplate.height;\r\n }\r\n this.isFullWidthCell = () => {\r\n return that.rowTemplate != null;\r\n };\r\n //this.cdr\r\n }\r\n\r\n ngOnInit(): void {\r\n // if (this.takeCount && this.takeCount > 0) {\r\n // this.paginationPageSize = this.takeCount;\r\n // this.paginationAutoPageSize = false;\r\n // this.cacheBlockSize = this.takeCount;\r\n // }\r\n if (this.selectionMode === 'single') {\r\n this.groupSelectsChildren = false;\r\n }\r\n if (this.keyField !== 'null' && this.hasChildField !== 'null') {\r\n this.rowGroupPanelShow = 'never';\r\n this.treeData = true;\r\n }\r\n if (this.remoteOperation) {\r\n this.rowModelType = 'serverSide';\r\n }\r\n //\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\r\n }\r\n //\r\n }\r\n\r\n gridSelectRow() {\r\n if (this.gridApi) {\r\n if (this.selectRow && this.selectRow.length > 0 && this.gridApi !== undefined && typeof this.selectRow[0] != 'object') {\r\n this.gridApi.forEachNode((node) => {\r\n if (node.data !== undefined) {\r\n let select: boolean = false;\r\n this.selectRow.forEach((id) => {\r\n if (node.data[this.keyField] === id) {\r\n select = true;\r\n node.setSelected(select);\r\n }\r\n });\r\n }\r\n });\r\n } else {\r\n this.gridApi.forEachNode((node) => {\r\n if (node.data !== undefined) {\r\n let select: boolean = false;\r\n this.selectRow.forEach((item) => {\r\n if (item.rowIndex != undefined && item.rowLevel != undefined) {\r\n if (node.data[this.keyField] === item.data[this.keyField]) {\r\n select = true;\r\n }\r\n } else {\r\n if (node.data[this.keyField] === item[this.keyField]) {\r\n select = true;\r\n }\r\n }\r\n });\r\n node.setSelected(select);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n // ngAfterViewChecked(): void {\r\n\r\n // //Called after every check of the component's view. Applies to components only.\r\n // //Add 'implements AfterViewChecked' to the class.\r\n // // this.selectByValues();\r\n // this.enabelSelect = false;\r\n\r\n // }\r\n rebuildGrid() {\r\n this.mapColumns();\r\n setTimeout(() => {\r\n if (this.sizeColumnsToFit) {\r\n this.gridApi.sizeColumnsToFit();\r\n }\r\n }, 10);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.treeData === true) {\r\n this.columnDefs = this.columns.map((c) => c.render());\r\n\r\n const groupColumn = this.columnDefs.find((c) => c.rowGroupIndex == '0' && c.field !== '');\r\n\r\n this.autoGroupColumnDef = {\r\n headerName: groupColumn.headerName,\r\n width: groupColumn.width,\r\n cellRendererParams: { checkbox: this.showCheckBox },\r\n field: groupColumn.field\r\n };\r\n\r\n this.columnDefs.forEach((elm) => {\r\n if (elm.rowGroupIndex > -1) {\r\n elm.hide = true;\r\n }\r\n });\r\n }\r\n //setTimeout(() => {\r\n this.gridView = true;\r\n //});\r\n\r\n this.enabelSelect = true;\r\n this.dataSource.onDataReceived.subscribe((_data) => {\r\n debugger;\r\n const result = _data.data.result;\r\n this.hideLoading();\r\n let items: any[];\r\n let totalCount: number;\r\n if (Array.isArray(result)) {\r\n items = result;\r\n totalCount = result.length;\r\n } else {\r\n items = result.items;\r\n totalCount = result.totalCount;\r\n }\r\n if (this.dataSourceSuccessCallback) {\r\n if (!this.loadOnInit) {\r\n this.dataSourceSuccessCallback([], 0);\r\n } else {\r\n this.dataSourceSuccessCallback(items, totalCount);\r\n }\r\n } else {\r\n if (!this.loadOnInit && this.gridApi !== undefined) {\r\n this.gridApi.setRowData([]);\r\n } else if (this.gridApi !== undefined) {\r\n this.gridApi.setRowData(items);\r\n }\r\n }\r\n\r\n this.gridSelectRow();\r\n });\r\n\r\n this.dataSource.onFetchStart.subscribe(() => {\r\n this.showLoading();\r\n });\r\n\r\n if (this.searchInput) {\r\n this.searchInput.onValueChanged.subscribe((c) => {\r\n this.searchText = c.value;\r\n });\r\n }\r\n //\r\n this.cdr.detectChanges();\r\n }\r\n\r\n mapColumns() {\r\n this.columnDefs = this.columns.map((c) => c.render());\r\n\r\n // if (this.showRowNumber) {\r\n // this.columnDefs.push({\r\n // headerName: AXConfig.get('layout.rtl') ? 'ردیف' : 'Row',\r\n // valueGetter: 'node.rowIndex + 1',\r\n // pinned: AXConfig.get('layout.rtl') ? 'right' : 'left'\r\n // });\r\n // }\r\n\r\n if (this.gridDetailTemplate) {\r\n if (this.columnDefs[0].checkboxSelection === true && this.columnDefs[0].field === '') {\r\n this.columnDefs[1].cellRenderer = 'agGroupCellRenderer';\r\n } else {\r\n this.columnDefs[0].cellRenderer = 'agGroupCellRenderer';\r\n }\r\n }\r\n\r\n if (this.hasChildField === 'null') {\r\n const groupColumn = this.columnDefs.find((c) => c.rowGroupIndex === undefined && c.field !== '');\r\n if (groupColumn && this.groupHideOpenParents == false) {\r\n this.autoGroupColumnDef = {\r\n headerName: groupColumn.headerName,\r\n width: groupColumn.width,\r\n cellRendererParams: { checkbox: this.showCheckBox },\r\n field: groupColumn.field\r\n };\r\n // groupColumn.hide = true;\r\n }\r\n }\r\n\r\n this.columnDefs.forEach((elm) => {\r\n if (elm.rowGroupIndex > -1) {\r\n elm.hide = true;\r\n }\r\n });\r\n }\r\n\r\n displayedColumnsChanged(e) {\r\n if (this.hasChildField === 'null') {\r\n const ee = e.columnApi.getAllDisplayedColumnGroups();\r\n const eee = ee.find((c) => c.colId !== 'ag-Grid-AutoColumn' && c.colId !== '0');\r\n if (eee && eee.colId) {\r\n this.autoGroupColumnDef = {\r\n headerName: eee.colDef.headerName,\r\n width: eee.colDef.width,\r\n cellRendererParams: { checkbox: this.showCheckBox },\r\n field: eee.colDef.field\r\n };\r\n }\r\n // eee.hide = true;\r\n }\r\n }\r\n\r\n refresh(route: any[] = []) {\r\n if (this.remoteOperation && this.gridApi !== undefined) {\r\n // this.gridApi.purgeServerSideCache(route);\r\n this.gridApi.setServerSideDatasource(this.intenalGridDataSource);\r\n } else {\r\n // TODO : check fetch param\r\n this.dataSource.fetch(null);\r\n }\r\n }\r\n\r\n internalGridCellClicked(e: CellClickedEvent) {\r\n this.cellClick.emit({ data: this.mapCellEvent(e), component: this, htmlElement: this.ref.nativeElement });\r\n }\r\n\r\n internalGridCellDoubleClicked(e: CellClickedEvent) {\r\n this.cellDbClick.emit({ data: this.mapCellEvent(e), component: this, htmlElement: this.ref.nativeElement });\r\n }\r\n\r\n internalGridCellFocused(e: CellClickedEvent) {\r\n this.cellFocuse.emit({ data: this.mapCellEvent(e), htmlElement: this.ref.nativeElement, component: this });\r\n }\r\n\r\n internalGridRowClicked(e: RowClickedEvent) {\r\n if (!e.node.group) {\r\n this.rowClick.emit({ data: this.mapRowEvent(e), component: this, htmlElement: this.ref.nativeElement });\r\n }\r\n }\r\n\r\n internalGridRowDoubleClicked(e: CellClickedEvent) {\r\n if (!e.node.group) {\r\n this.rowDbClick.emit({ data: this.mapRowEvent(e), htmlElement: this.ref.nativeElement, component: this });\r\n }\r\n }\r\n\r\n differenceOf2Arrays(array1: any, array2: any) {\r\n const temp = [];\r\n for (const i in array1) {\r\n if (array2.indexOf(array1[i]) === -1) {\r\n temp.push(array1[i]);\r\n }\r\n }\r\n for (const i in array2) {\r\n if (array1.indexOf(array2[i]) === -1) {\r\n temp.push(array2[i]);\r\n }\r\n }\r\n return temp.sort((a, b) => a - b);\r\n }\r\n\r\n rowSelectionChanged(e) {\r\n // this.gridApi.forEachNode((node) => {\r\n // if (node.data[this.keyField] == e.node.data[this.keyField]) {\r\n // node.setSelected(e.node.selected);\r\n // }\r\n // });\r\n if (e.node.selected == true) {\r\n this.selectRow = this.selectRow.filter((c) => c[this.keyField] != e.data[this.keyField]);\r\n this.selectRow.push(e.data);\r\n } else {\r\n this.selectRow = this.selectRow.filter((c) => c[this.keyField] != e.data[this.keyField]);\r\n }\r\n this.rowSelectionChange.emit({ component: this, data: e, htmlElement: this.ref.nativeElement });\r\n // console.log('e', e);\r\n // console.log('select', e.node.selected);\r\n // console.log('index', e.rowIndex);\r\n }\r\n\r\n internalGridSelectionChanged(e) {\r\n const args: AXGridRowSelectionEvent = { items: [] };\r\n const oldNodes = this.oldSelectionNodes;\r\n const nodes = this.gridApi.getSelectedNodes();\r\n nodes.forEach((i) => {\r\n args.items.push({\r\n rowLevel: i.level,\r\n rowIndex: i.rowIndex,\r\n data: i.data\r\n });\r\n });\r\n this.selectionChanged.emit({ data: args, component: this, htmlElement: this.ref.nativeElement });\r\n let action = nodes.length > oldNodes.length ? true : false;\r\n const node = this.differenceOf2Arrays(nodes, oldNodes);\r\n this.onRowSelectionChanged.emit({ component: this, selected: action, data: node, htmlElement: this.ref.nativeElement });\r\n this.oldSelectionNodes = nodes;\r\n }\r\n\r\n private mapCellEvent(e: CellEvent): AXGridCellEvent {\r\n return {\r\n rowLevel: 0,\r\n column: e.column,\r\n data: e.data,\r\n rowIndex: e.rowIndex,\r\n value: e.value\r\n };\r\n }\r\n\r\n private mapRowEvent(e: RowEvent): AXGridRowEvent {\r\n return {\r\n rowLevel: 0,\r\n data: e.data,\r\n rowIndex: e.rowIndex\r\n };\r\n }\r\n\r\n public deselectAll() {\r\n this.gridApi.deselectAll();\r\n }\r\n\r\n internalGetRowClass = (p: any) => {\r\n if (this.rowClass) {\r\n if (this.rowClass instanceof Function) {\r\n return this.rowClass({\r\n rowIndex: p.node.rowIndex,\r\n rowLevel: p.node.level,\r\n data: p.data\r\n });\r\n } else {\r\n return this.rowClass;\r\n }\r\n }\r\n };\r\n\r\n showLoading(): void {\r\n if (this.gridApi) {\r\n this.gridApi.showLoadingOverlay();\r\n }\r\n }\r\n\r\n hideLoading(): void {\r\n if (this.gridApi) {\r\n this.gridApi.hideOverlay();\r\n }\r\n }\r\n\r\n internalGridSizeChanged(e: GridSizeChangedEvent) {\r\n if (e.clientWidth > 0 && e.clientHeight > 0) {\r\n this.performSizeColumnsToFit(e.api);\r\n }\r\n // this.refresh();\r\n // this.gridApi.paginationGoToFirstPage();\r\n }\r\n\r\n internalGridFirstDataRendered(e: FirstDataRenderedEvent) {\r\n this.performSizeColumnsToFit(e.api);\r\n }\r\n\r\n private performSizeColumnsToFit(api: GridApi) {\r\n if (this.sizeColumnsToFit) {\r\n api.sizeColumnsToFit();\r\n }\r\n }\r\n}\r\n","import { Component, ViewEncapsulation } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'ax-data-grid-filter',\r\n template: `\r\n <div class='ax-grid-filter-container'>\r\n <ng-content></ng-content>\r\n <div class='btn-group' role='group'>\r\n <button type='button' class='btn btn-primary btn-sm'>\r\n <i class='fas fa-filter'></i>\r\n </button>\r\n <button type='button' class='btn btn-danger btn-sm'>\r\n <i class='fas fa-trash-alt'></i>\r\n </button>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXDataGridFilterComponent {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDataGridComponent } from './datagrid.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AgGridModule } from 'ag-grid-angular';\r\nimport { AXDataSourceModule } from '@acorex/components';\r\nimport { AXGridTextColumn, TextFilterRenderer } from './columns/text-column.component';\r\nimport { AXGridCheckColumn, BooleanRenderer, BooleanFilterRenderer } from './columns/check-column.component';\r\nimport { AXCoreModule } from '@acorex/core';\r\nimport { AXGridSelectionColumn } from './columns/selection-column.component';\r\nimport { CommandRenderer, AXGridCommandColumn } from './columns/command-column.component';\r\nimport { AXDataGridFilterComponent } from './filters/filter.component';\r\nimport { AXGridDateColumn, AXDatePickerFilterComponent } from './columns/date-column.component';\r\nimport { AXDataGridRowTemplateComponent, AXDataGridRowTemplateRenderer } from './templates/row-template.component';\r\nimport { AXDataGridCellTemplateComponent, AXDataGridCellTemplateRenderer } from './templates/cell-template.component';\r\nimport { AXDataGridDetailTemplateComponent, AXDataGridDetailTemplateRenderer } from './templates/detail-template.component';\r\nimport { AXTextBoxModule } from '@acorex/components';\r\nimport { AXCheckBoxModule } from '@acorex/components';\r\nimport { AXSelectBoxModule } from '@acorex/components';\r\nimport { AXButtonModule } from '@acorex/components';\r\nimport { AXDatePickerModule } from '@acorex/components';\r\nimport 'ag-grid-enterprise';\r\nimport { AXGridRowNumberColumn } from './columns/row-number-column.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AXDataGridComponent,\r\n AXGridTextColumn,\r\n AXGridCheckColumn,\r\n AXGridSelectionColumn,\r\n AXGridDateColumn,\r\n AXGridRowNumberColumn,\r\n AXGridCommandColumn,\r\n BooleanRenderer,\r\n BooleanFilterRenderer,\r\n TextFilterRenderer,\r\n AXDataGridFilterComponent,\r\n AXDataGridRowTemplateComponent,\r\n AXDataGridDetailTemplateComponent,\r\n AXDataGridRowTemplateRenderer,\r\n AXDataGridDetailTemplateRenderer,\r\n AXDataGridCellTemplateComponent,\r\n AXDataGridCellTemplateRenderer,\r\n AXDatePickerFilterComponent,\r\n CommandRenderer\r\n ],\r\n imports: [\r\n CommonModule,\r\n AXCoreModule,\r\n FormsModule,\r\n //AgGridModule,\r\n AXTextBoxModule,\r\n AXCheckBoxModule,\r\n AXSelectBoxModule,\r\n AXDataSourceModule,\r\n AXButtonModule,\r\n AXDatePickerModule,\r\n AgGridModule.withComponents([AXDatePickerFilterComponent])\r\n ],\r\n exports: [\r\n AXDataGridComponent,\r\n AXDataGridFilterComponent,\r\n AXDataGridRowTemplateComponent,\r\n AXDataGridDetailTemplateComponent,\r\n AXDataGridRowTemplateRenderer,\r\n AXDataGridDetailTemplateRenderer,\r\n AXDataGridCellTemplateComponent,\r\n AXDataGridCellTemplateRenderer,\r\n AXGridTextColumn,\r\n AXGridRowNumberColumn,\r\n AXGridCheckColumn,\r\n AXGridDateColumn,\r\n AXGridSelectionColumn,\r\n AXGridCommandColumn,\r\n BooleanRenderer,\r\n BooleanFilterRenderer,\r\n CommandRenderer\r\n ],\r\n entryComponents: [\r\n BooleanRenderer,\r\n BooleanFilterRenderer,\r\n CommandRenderer,\r\n TextFilterRenderer,\r\n AXDataGridRowTemplateComponent,\r\n AXDataGridDetailTemplateComponent,\r\n AXDataGridRowTemplateRenderer,\r\n AXDataGridDetailTemplateRenderer,\r\n AXDataGridCellTemplateComponent,\r\n AXDataGridCellTemplateRenderer\r\n ],\r\n providers: []\r\n})\r\nexport class AXDataGridModule {}\r\n","import { Component, ViewChild, ChangeDetectorRef, ElementRef } from '@angular/core';\r\nimport { AXDataGridComponent, AXDataGridSelectionChangeEvent } from '../../data-grid/datagrid.component';\r\nimport { AXGridDataColumn } from '../../data-grid/columns/column.component';\r\nimport { AXTranslator, AXButtonItem, AXConfig } from '@acorex/core';\r\nimport {\r\n AXToolbarSearchComponent,\r\n AXBasePopupPageComponent,\r\n AXMenuItemClickEvent,\r\n AXDataSourceComponent,\r\n AXDataSourceReadParams\r\n} from '@acorex/components';\r\n\r\n@Component({\r\n templateUrl: './data-lov-popup.component.html'\r\n})\r\nexport class AXDataLovPopupComponent extends AXBasePopupPageComponent {\r\n @ViewChild('grid', { static: true })\r\n grid: AXDataGridComponent;\r\n\r\n @ViewChild('searchBox')\r\n searchBox: AXToolbarSearchComponent;\r\n\r\n columns: AXGridDataColumn[] = [];\r\n\r\n selectedItems: any[] = [];\r\n\r\n keyField: string = '';\r\n allowNull: boolean = true;\r\n\r\n hasChildField: string;\r\n rtl: boolean = AXConfig.get('layout.rtl');\r\n\r\n selectedRows: any[] = [];\r\n\r\n constructor(private cdr: ChangeDetectorRef, private ref: ElementRef) {\r\n super();\r\n }\r\n\r\n dataSource: AXDataSourceComponent;\r\n\r\n selectionMode: string;\r\n\r\n ngOnInit(): void {\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\r\n }\r\n }\r\n\r\n onDoneClick() {\r\n if (this.selectedItems) {\r\n this.close(this.selectedItems);\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n rowDoubleClicked(e) {\r\n console.log('s', e.data.data);\r\n if (this.selectionMode == 'single') {\r\n this.selectedItems = [];\r\n }\r\n\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] != e.data.data[this.keyField]);\r\n this.selectedItems.push(e.data.data);\r\n\r\n this.onDoneClick();\r\n }\r\n\r\n onCancelClick() {\r\n this.close();\r\n }\r\n\r\n rowSelectionChange(e) {\r\n if (e.data.node.selected == true) {\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] != e.data.node.data[this.keyField]);\r\n this.selectedItems.push(e.data.node.data);\r\n } else {\r\n if (this.allowNull == true || (this.allowNull == false && this.selectedItems.length > 1)) {\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] != e.data.node.data[this.keyField]);\r\n }\r\n }\r\n // console.log('ee', e)\r\n // // console.log('e', e);\r\n // console.log('select', e.data.node.selected);\r\n // console.log('index', e.data.rowIndex);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.selectedItems.forEach((ele) => {\r\n this.selectedRows.push(ele);\r\n });\r\n this.searchBox.focus();\r\n if (this.dataSource.onDataReceived) {\r\n this.dataSource.onDataReceived.subscribe((arg) => {\r\n this.cdr.markForCheck();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n // onValueSearchChanged(e) {\r\n\r\n // const params: AXDataSourceReadParams = {}\r\n // params.searchText = e.value;\r\n // // params.take = 100;\r\n // // params.skip = 0\r\n // this.dataSource.fetch(params);\r\n // }\r\n\r\n getFooterButtons(): AXButtonItem[] {\r\n return [\r\n {\r\n text: AXTranslator.get('common.confirm'),\r\n name: 'confirm',\r\n style: 'ax primary',\r\n icon: 'far fa-check-circle'\r\n },\r\n {\r\n text: AXTranslator.get('common.cancel'),\r\n name: 'cancel',\r\n style: 'ax light',\r\n icon: 'far fa-times-circle'\r\n }\r\n ];\r\n }\r\n\r\n onFooterButtonClick(e: AXMenuItemClickEvent) {\r\n if (e.name === 'confirm') {\r\n this.onDoneClick();\r\n }\r\n if (e.name === 'cancel') {\r\n this.onCancelClick();\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ContentChildren,\r\n QueryList,\r\n Output,\r\n EventEmitter,\r\n ContentChild,\r\n ViewChild,\r\n ViewEncapsulation,\r\n ElementRef,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { AXPopupService, AXBaseInputComponent, AXBaseSizableComponent, AXElementSize, AXValidation } from '@acorex/components';\r\nimport { AXDataSourceComponent, AXSelectBoxComponent, AXDataEvent, AXValidatableComponent } from '@acorex/components';\r\nimport { AXDataLovPopupComponent } from './data-lov-popup/data-lov-popup.component';\r\nimport { AXGridDataColumn } from '../data-grid/columns/column.component';\r\nimport { AXConfig } from '@acorex/core';\r\n\r\n@Component({\r\n selector: 'ax-lov',\r\n templateUrl: './data-lov.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n host: { style: 'width: 100%' },\r\n providers: [{ provide: AXValidatableComponent, useExisting: AXLOVComponent }]\r\n})\r\nexport class AXLOVComponent extends AXValidatableComponent implements AXBaseSizableComponent, AXBaseInputComponent {\r\n @ContentChild(AXValidation, { static: true })\r\n private _contentValidation: AXValidation;\r\n private _validation: AXValidation;\r\n\r\n @Input()\r\n public get validation(): AXValidation {\r\n return this._validation ? this._validation : this._contentValidation;\r\n }\r\n public set validation(v: AXValidation) {\r\n this._validation = v;\r\n }\r\n\r\n constructor(private popup: AXPopupService, private ref: ElementRef) {\r\n super();\r\n }\r\n\r\n @ViewChild('selectBox', { static: true })\r\n selectBox: AXSelectBoxComponent;\r\n\r\n @ContentChild(AXDataSourceComponent, { static: true })\r\n dataSource: AXDataSourceComponent;\r\n\r\n @ContentChildren(AXGridDataColumn)\r\n private columns: QueryList<AXGridDataColumn>;\r\n\r\n @ContentChild('itemTemplate', { static: true })\r\n rowTemplate: TemplateRef<any>;\r\n\r\n @Input()\r\n textField: string = '';\r\n\r\n @Input()\r\n allowSearch: boolean = true;\r\n\r\n @Input()\r\n valueField: string = '';\r\n\r\n @Input()\r\n hasChildField: string = 'null';\r\n\r\n @Input()\r\n allowNull: boolean = true;\r\n\r\n @Input()\r\n popupSize: 'sm' | 'md' | 'lg' | 'full' = 'md';\r\n\r\n @Input()\r\n selectedItems: any[] = [];\r\n\r\n // @Input()\r\n // selectedValues: any[] = [];\r\n\r\n @Input()\r\n readonly: boolean = false;\r\n\r\n @Input()\r\n disabled: boolean = false;\r\n\r\n @Input()\r\n chipsWidth: string = '';\r\n\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n @Input()\r\n caption: string;\r\n\r\n @Input()\r\n mode: 'single' | 'multiple' = 'single';\r\n\r\n @Input()\r\n placeholder: string;\r\n\r\n @Output()\r\n onSelectionChange: EventEmitter<AXDataEvent<any>> = new EventEmitter<AXDataEvent<any>>();\r\n\r\n @Input()\r\n rtl: boolean = AXConfig.get('layout.rtl');\r\n\r\n focus(): void {\r\n this.selectBox.focus();\r\n }\r\n\r\n refresh() {\r\n this.selectBox.refresh();\r\n }\r\n\r\n handleButtonClick() {\r\n this.open();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\r\n }\r\n // this.selectVal = this.selectedValues;\r\n this.onSelectionChange.subscribe((c) => {\r\n this.clearValidationStyle(this.ref.nativeElement);\r\n });\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.initValidation(this.ref, 'selectedItems', this.validation);\r\n }\r\n\r\n handleSelectChange(e) {\r\n // console.log('se' + JSON.stringify(e));\r\n this.onSelectionChange.emit({ data: this.selectedItems, component: this, htmlElement: this.ref.nativeElement });\r\n }\r\n\r\n public open(): Promise<any> {\r\n return new Promise((resolve) => {\r\n this.selectBox.dropdown.close();\r\n this.popup\r\n .open(AXDataLovPopupComponent, {\r\n size: this.popupSize,\r\n // closable: false,\r\n data: {\r\n dataSource: this.dataSource,\r\n selectionMode: this.mode,\r\n columns: this.columns.toArray(),\r\n // selectedItems: this.selectedValues,\r\n selectedItems: this.selectedItems,\r\n keyField: this.valueField,\r\n allowNull: this.allowNull,\r\n hasChildField: this.hasChildField,\r\n rtl: this.rtl\r\n },\r\n title: this.caption\r\n // size: this.size,\r\n })\r\n .then((c) => {\r\n if (c.data) {\r\n // this.selectedValues = [];\r\n this.selectedItems = [];\r\n c.data.forEach((elm) => {\r\n this.selectedItems.push(elm);\r\n });\r\n // this.selectedItems = c.data;\r\n // this.selectBox.refresh();\r\n // console.log('se' + JSON.stringify(this.selectedItems));\r\n this.onSelectionChange.emit({ data: this.selectedItems, component: this, htmlElement: this.ref.nativeElement });\r\n if (resolve) {\r\n resolve(c.data);\r\n }\r\n } else {\r\n if (resolve) {\r\n resolve(this.selectedItems);\r\n }\r\n }\r\n\r\n this.selectBox.refresh();\r\n });\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXLOVComponent } from './data-lov.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXDataLovPopupComponent } from './data-lov-popup/data-lov-popup.component';\r\nimport { AXDataGridModule } from '../data-grid/datagrid.module';\r\nimport { AXDataSourceModule, AXButtonModule, AXToolbarModule, AXSearchBoxModule, AXSelectBoxModule } from '@acorex/components';\r\n\r\n\r\n@NgModule({\r\n declarations: [AXLOVComponent, AXDataLovPopupComponent],\r\n imports: [CommonModule, FormsModule, AXDataGridModule, AXDataSourceModule, AXButtonModule, AXToolbarModule, AXSelectBoxModule, AXSearchBoxModule],\r\n exports: [AXLOVComponent, AXDataLovPopupComponent],\r\n providers: [],\r\n entryComponents: [AXDataLovPopupComponent]\r\n})\r\nexport class AXLOVModule { }"]}
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWRhdGEtZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvZGF0YS1ncmlkLyIsInNvdXJjZXMiOlsiYWNvcmV4LWRhdGEtZ3JpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,104 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvZGF0YS1ncmlkLyIsInNvdXJjZXMiOlsibGliL2RhdGEtZ3JpZC9jb2x1bW5zL2NoZWNrLWNvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBaUJ0RCxJQUFhLGlCQUFpQix5QkFBOUIsTUFBYSxpQkFBa0IsU0FBUSxnQkFBZ0I7SUFDckQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRCxNQUFNO1FBQ0osTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUU7WUFDOUIsR0FBRyxDQUFDLHFCQUFxQixHQUFHLGVBQWUsQ0FBQztTQUM3QztRQUNELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixHQUFHLENBQUMsZUFBZSxHQUFHLHFCQUFxQixDQUFDO1NBQzdDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0YsQ0FBQTtBQWZZLGlCQUFpQjtJQVA3QixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsaUJBQWlCO1FBQzNCLFFBQVEsRUFBRSxFQUFFO1FBQ1osU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLG1CQUFpQixFQUFFLENBQUM7UUFDMUUsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07S0FDaEQsQ0FBQzs7R0FFVyxpQkFBaUIsQ0FlN0I7U0FmWSxpQkFBaUI7QUF1QjlCLElBQWEsZUFBZSxHQUE1QixNQUFhLGVBQWU7SUFFMUIsZ0JBQWdCLENBQUM7SUFDakIsTUFBTSxDQUFDLE1BQTJCO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBQ0QsT0FBTyxDQUFDLE1BQTJCO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRixDQUFBO0FBVlksZUFBZTtJQU4zQixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUU7O0dBRVQ7UUFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtLQUNoRCxDQUFDOztHQUNXLGVBQWUsQ0FVM0I7U0FWWSxlQUFlO0FBdUI1QixJQUFhLHFCQUFxQixHQUFsQyxNQUFhLHFCQUFxQjtJQUFsQztRQUNTLFVBQUssR0FBYSxJQUFJLENBQUM7UUFLOUIsZUFBVSxHQUFHO1lBQ1gsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDM0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7U0FDN0IsQ0FBQztJQWtDSixDQUFDO0lBakNDLE1BQU0sQ0FBQyxNQUFxQjtRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7SUFDeEMsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDO0lBQ3pELENBQUM7SUFFRCxjQUFjLENBQUMsTUFBNkI7UUFDMUMsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDMUMsQ0FBQztJQUVELGVBQWUsQ0FBQyxNQUErQjtRQUM3QyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUSxDQUFDLFFBQVE7UUFDZixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQztTQUNyQztJQUNILENBQUM7Q0FDRixDQUFBO0FBdkMrRDtJQUE3RCxTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQzs7b0RBQWM7QUFKaEUscUJBQXFCO0lBWGpDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRTs7Ozs7OztHQU9UO1FBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07S0FDaEQsQ0FBQztHQUNXLHFCQUFxQixDQTJDakM7U0EzQ1kscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhHcmlkRGF0YUNvbHVtbiB9IGZyb20gJy4vY29sdW1uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCwgSUZpbHRlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcclxuaW1wb3J0IHtcclxuICBJQ2VsbFJlbmRlcmVyUGFyYW1zLFxyXG4gIElGaWx0ZXJQYXJhbXMsXHJcbiAgUm93Tm9kZSxcclxuICBJRG9lc0ZpbHRlclBhc3NQYXJhbXMsXHJcbiAgSUFmdGVyR3VpQXR0YWNoZWRQYXJhbXNcclxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LWNoZWNrLWNvbHVtbicsXHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhHcmlkRGF0YUNvbHVtbiwgdXNlRXhpc3Rpbmc6IEFYR3JpZENoZWNrQ29sdW1uIH1dLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQVhHcmlkQ2hlY2tDb2x1bW4gZXh0ZW5kcyBBWEdyaWREYXRhQ29sdW1uIHtcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCBjb2wgPSBzdXBlci5yZW5kZXIoKTtcclxuICAgIGlmICghY29sLmNlbGxSZW5kZXJlckZyYW1ld29yaykge1xyXG4gICAgICBjb2wuY2VsbFJlbmRlcmVyRnJhbWV3b3JrID0gQm9vbGVhblJlbmRlcmVyO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYWxsb3dGaWx0ZXJpbmcpIHtcclxuICAgICAgY29sLmZpbHRlckZyYW1ld29yayA9IEJvb2xlYW5GaWx0ZXJSZW5kZXJlcjtcclxuICAgIH1cclxuICAgIHJldHVybiBjb2w7XHJcbiAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGF4LWNoZWNrLWJveCBbdmFsdWVdPSd2YWx1ZScgcmVhZG9ubHk9J3RydWUnPjwvYXgtY2hlY2stYm94PlxyXG4gIGAsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEJvb2xlYW5SZW5kZXJlciBpbXBsZW1lbnRzIElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB7XHJcbiAgdmFsdWU6IGJvb2xlYW47XHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuICBhZ0luaXQocGFyYW1zOiBJQ2VsbFJlbmRlcmVyUGFyYW1zKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gcGFyYW1zLnZhbHVlO1xyXG4gIH1cclxuICByZWZyZXNoKHBhcmFtczogSUNlbGxSZW5kZXJlclBhcmFtcyk6IGJvb2xlYW4ge1xyXG4gICAgdGhpcy52YWx1ZSA9IHBhcmFtcy52YWx1ZTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxheC1kYXRhLWdyaWQtZmlsdGVyPlxyXG4gICAgICA8YXgtc2VsZWN0LWJveFxyXG4gICAgICAgIGxhYmVsPSdTZWxlY3QgQm94J1xyXG4gICAgICAgIFtpdGVtc109J3NlbGVjdEl0ZW0nXHJcbiAgICAgID48L2F4LXNlbGVjdC1ib3g+XHJcbiAgICA8L2F4LWRhdGEtZ3JpZC1maWx0ZXI+XHJcbiAgYCxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQm9vbGVhbkZpbHRlclJlbmRlcmVyIGltcGxlbWVudHMgSUZpbHRlckFuZ3VsYXJDb21wIHtcclxuICBwdWJsaWMgdmFsdWU/OiBib29sZWFuID0gbnVsbDtcclxuICBwcml2YXRlIHBhcmFtczogSUZpbHRlclBhcmFtcztcclxuICBwcml2YXRlIHZhbHVlR2V0dGVyOiAocm93Tm9kZTogUm93Tm9kZSkgPT4gYW55O1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgcHVibGljIGlucHV0O1xyXG5cclxuICBzZWxlY3RJdGVtID0gW1xyXG4gICAgeyB2YWx1ZTogMCwgbGFiZWw6ICdUcnVlJyB9LFxyXG4gICAgeyB2YWx1ZTogMSwgbGFiZWw6ICdGYWxzZScgfSxcclxuICBdO1xyXG4gIGFnSW5pdChwYXJhbXM6IElGaWx0ZXJQYXJhbXMpOiB2b2lkIHtcclxuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xyXG4gICAgdGhpcy52YWx1ZUdldHRlciA9IHBhcmFtcy52YWx1ZUdldHRlcjtcclxuICB9XHJcblxyXG4gIGlzRmlsdGVyQWN0aXZlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsdWUgIT09IG51bGwgJiYgdGhpcy52YWx1ZSAhPT0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgZG9lc0ZpbHRlclBhc3MocGFyYW1zOiBJRG9lc0ZpbHRlclBhc3NQYXJhbXMpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlID09PSB0aGlzLnZhbHVlR2V0dGVyKHBhcmFtcy5ub2RlKTtcclxuICB9XHJcblxyXG4gIGdldE1vZGVsKCk6IGFueSB7XHJcbiAgICByZXR1cm4geyB2YWx1ZTogdGhpcy52YWx1ZSB9O1xyXG4gIH1cclxuXHJcbiAgc2V0TW9kZWwobW9kZWw6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IG1vZGVsID8gbW9kZWwudmFsdWUgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KHBhcmFtczogSUFmdGVyR3VpQXR0YWNoZWRQYXJhbXMpOiB2b2lkIHtcclxuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5pbnB1dC5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UobmV3VmFsdWUpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnZhbHVlICE9PSBuZXdWYWx1ZSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gbmV3VmFsdWU7XHJcbiAgICAgIHRoaXMucGFyYW1zLmZpbHRlckNoYW5nZWRDYWxsYmFjaygpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,204 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvZGF0YS1ncmlkLyIsInNvdXJjZXMiOlsibGliL2RhdGEtZ3JpZC9jb2x1bW5zL2NvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFFakUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFJdkYsTUFBTSxPQUFnQixnQkFBZ0I7SUF3RWxDO1FBakVBLFVBQUssR0FBVyxHQUFHLENBQUM7UUFTcEIsV0FBTSxHQUEyQixJQUFJLENBQUM7UUFHdEMsaUJBQVksR0FBWSxJQUFJLENBQUM7UUFHN0IsbUJBQWMsR0FBWSxRQUFRLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLElBQUksS0FBSyxDQUFDO1FBTTNFLFNBQUksR0FBMEIsSUFBSSxDQUFDO1FBR25DLFVBQUssR0FBVyxFQUFFLENBQUM7UUFHbkIsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQU1yQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRzFCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBR2hDLGVBQVUsR0FBVyxDQUFDLENBQUMsQ0FBQztRQUd4QixjQUFTLEdBQVcsQ0FBQyxDQUFDLENBQUM7UUFHdkIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFHaEMsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUd0QixtQkFBYyxHQUFZLFFBQVEsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsSUFBSSxLQUFLLENBQUM7UUFHM0UsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFHN0IsY0FBUyxHQUFZLElBQUksQ0FBQztRQUcxQixzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFHbkMsb0JBQWUsR0FBWSxLQUFLLENBQUM7SUFFakIsQ0FB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K0NBQ1k7QUFHcEI7SUFEQyxLQUFLLEVBQUU7O2tEQUNTO0FBR2pCO0lBREMsS0FBSyxFQUFFOztrREFDUztBQUdqQjtJQURDLEtBQUssRUFBRTs7Z0RBQzhCO0FBR3RDO0lBREMsS0FBSyxFQUFFOztzREFDcUI7QUFHN0I7SUFEQyxLQUFLLEVBQUU7O3dEQUNtRTtBQUczRTtJQURDLEtBQUssRUFBRTs7bURBQzJFO0FBR25GO0lBREMsS0FBSyxFQUFFOzs4Q0FDMkI7QUFHbkM7SUFEQyxLQUFLLEVBQUU7OytDQUNXO0FBR25CO0lBREMsS0FBSyxFQUFFOztpREFDYTtBQUdyQjtJQURDLEtBQUssRUFBRTs7NERBQ2dCO0FBR3hCO0lBREMsS0FBSyxFQUFFOztrREFDa0I7QUFHMUI7SUFEQyxLQUFLLEVBQUU7O3dEQUN3QjtBQUdoQztJQURDLEtBQUssRUFBRTs7b0RBQ2dCO0FBR3hCO0lBREMsS0FBSyxFQUFFOzttREFDZTtBQUd2QjtJQURDLEtBQUssRUFBRTs7d0RBQ3dCO0FBR2hDO0lBREMsS0FBSyxFQUFFOzs4Q0FDYztBQUd0QjtJQURDLEtBQUssRUFBRTs7d0RBQ21FO0FBRzNFO0lBREMsS0FBSyxFQUFFOztxREFDcUI7QUFHN0I7SUFEQyxLQUFLLEVBQUU7O21EQUNrQjtBQUcxQjtJQURDLEtBQUssRUFBRTs7MkRBQzJCO0FBR25DO0lBREMsS0FBSyxFQUFFOzt5REFDeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbmZpZyB9IGZyb20gJ0BhY29yZXgvY29yZSc7XHJcbmltcG9ydCB7IElucHV0LCBDb250ZW50Q2hpbGQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYR3JpZENlbGxQYXJhbXMgfSBmcm9tICcuLi9kYXRhZ3JpZC5ldmVudHMnO1xyXG5pbXBvcnQgeyBBWERhdGFHcmlkQ2VsbFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vdGVtcGxhdGVzL2NlbGwtdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhEYXRlUGlja2VyRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLWNvbHVtbi5jb21wb25lbnQnO1xyXG5cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWEdyaWREYXRhQ29sdW1uIHtcclxuXHJcblxyXG4gICAgQENvbnRlbnRDaGlsZChBWERhdGFHcmlkQ2VsbFRlbXBsYXRlQ29tcG9uZW50KVxyXG4gICAgY2VsbFRlbXBsYXRlOiBBWERhdGFHcmlkQ2VsbFRlbXBsYXRlQ29tcG9uZW50O1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICB3aWR0aDogbnVtYmVyID0gMTAwO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBtYXhXaWR0aDogbnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBtaW5XaWR0aDogbnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwaW5uZWQ6ICdzdGFydCcgfCAnZW5kJyB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBhbGxvd1NvcnRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBhbGxvd0ZpbHRlcmluZzogYm9vbGVhbiA9IEFYQ29uZmlnLmdldCgnZGF0YWdyaWQuYWxsb3dGaWx0ZXJpbmcnKSB8fCBmYWxzZTs7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGNlbGxDbGFzczogKHBhcmFtczogQVhHcmlkQ2VsbFBhcmFtcykgPT4gKHN0cmluZyB8IHN0cmluZ1tdKSB8IChzdHJpbmcgfCBzdHJpbmdbXSk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNvcnQ6ICdhc2MnIHwgJ2Rlc2MnIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGZpZWxkOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgY2FwdGlvbjogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGNlbGxSZW5kZXJlclBhcmFtczogYW55O1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBjaGVja2JveDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBoZWFkZXJDaGVja2JveDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBncm91cEluZGV4OiBudW1iZXIgPSAtMTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgdHJlZUluZGV4OiBudW1iZXIgPSAtMTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZW5hYmxlUm93R3JvdXA6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgaGlkZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBmbG9hdGluZ0ZpbHRlcjogYm9vbGVhbiA9IEFYQ29uZmlnLmdldCgnZGF0YWdyaWQuZmxvYXRpbmdGaWx0ZXInKSB8fCBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZGlzYWJsZU1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcmVzaXphYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgbWVudUNvbHVtbkRpc2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgbWVudUl0ZW1EaXNhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgICByZW5kZXIoKTogYW55IHtcclxuICAgICAgICBjb25zdCBjb2w6IGFueSA9IHtcclxuICAgICAgICAgICAgZmllbGQ6IHRoaXMuZmllbGQsXHJcbiAgICAgICAgICAgIHdpZHRoOiB0aGlzLndpZHRoLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29sLnJlc2l6YWJsZSA9IHRoaXMucmVzaXphYmxlO1xyXG4gICAgICAgIGNvbC5zdXBwcmVzc01lbnUgPSB0aGlzLmRpc2FibGVNZW51O1xyXG4gICAgICAgIGNvbC5tZW51VGFicyA9IFsnZmlsdGVyTWVudVRhYicsICdjb2x1bW5zTWVudVRhYicsICdnZW5lcmFsTWVudVRhYiddXHJcbiAgICAgICAgY29sLmZsb2F0aW5nRmlsdGVyID0gdGhpcy5mbG9hdGluZ0ZpbHRlcjtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmFsbG93RmlsdGVyaW5nKSB7XHJcbiAgICAgICAgICAgIGNvbC5maWx0ZXIgPSBmYWxzZTtcclxuICAgICAgICAgICAgY29sLm1lbnVUYWJzID0gY29sLm1lbnVUYWJzLmZpbHRlcihjID0+IGMgIT0gJ2ZpbHRlck1lbnVUYWInKTtcclxuICAgICAgICAgICAgY29sLmZsb2F0aW5nRmlsdGVyID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLm1lbnVDb2x1bW5EaXNhYmxlID09IHRydWUpIHtcclxuICAgICAgICAgICAgY29sLm1lbnVUYWJzID0gY29sLm1lbnVUYWJzLmZpbHRlcihjID0+IGMgIT0gJ2NvbHVtbnNNZW51VGFiJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLm1lbnVJdGVtRGlzYWJsZSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIGNvbC5tZW51VGFicyA9IGNvbC5tZW51VGFicy5maWx0ZXIoYyA9PiBjICE9ICdnZW5lcmFsTWVudVRhYicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5jYXB0aW9uKSB7XHJcbiAgICAgICAgICAgIGNvbC5oZWFkZXJOYW1lID0gdGhpcy5jYXB0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5taW5XaWR0aCkge1xyXG4gICAgICAgICAgICBjb2wubWluV2lkdGggPSB0aGlzLm1pbldpZHRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5tYXhXaWR0aCkge1xyXG4gICAgICAgICAgICBjb2wubWF4V2lkdGggPSB0aGlzLm1heFdpZHRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5waW5uZWQpIHtcclxuICAgICAgICAgICAgY29sLnBpbm5lZCA9IHRoaXMucGlubmVkID09PSAnc3RhcnQnID8gJ3JpZ2h0JyA6ICdsZWZ0JztcclxuICAgICAgICAgICAgLy8gVE9ETzogQ2hhbmdlIGJhc2VkIG9uIGxheW91dFxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5hbGxvd1NvcnRpbmcpIHtcclxuICAgICAgICAgICAgY29sLnNvcnRhYmxlID0gdGhpcy5hbGxvd1NvcnRpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnNvcnQpIHtcclxuICAgICAgICAgICAgY29sLnNvcnQgPSB0aGlzLnNvcnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5ncm91cEluZGV4ID49IDApIHtcclxuICAgICAgICAgICAgY29sLnJvd0dyb3VwSW5kZXggPSB0aGlzLmdyb3VwSW5kZXg7XHJcbiAgICAgICAgICAgIGNvbC5yb3dHcm91cCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlUm93R3JvdXAgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMudHJlZUluZGV4ID49IDApIHtcclxuICAgICAgICAgICAgY29sLnJvd0dyb3VwSW5kZXggPSB0aGlzLnRyZWVJbmRleDtcclxuICAgICAgICAgICAgY29sLnJvd0dyb3VwID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmhpZGUpIHtcclxuICAgICAgICAgICAgY29sLmhpZGUgPSB0cnVlO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuZW5hYmxlUm93R3JvdXApIHtcclxuICAgICAgICAgICAgY29sLmVuYWJsZVJvd0dyb3VwID0gdGhpcy5lbmFibGVSb3dHcm91cDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNlbGxDbGFzcykge1xyXG4gICAgICAgICAgICBjb25zdCBUSEFUID0gdGhpcztcclxuICAgICAgICAgICAgaWYgKHRoaXMuY2VsbENsYXNzIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcclxuICAgICAgICAgICAgICAgIGNvbC5jZWxsQ2xhc3MgPSAocCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBUSEFULmNlbGxDbGFzcyh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbjogVEhBVCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcm93SW5kZXg6IHAubm9kZS5yb3dJbmRleCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcm93TGV2ZWw6IHAubm9kZS5sZXZlbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogcC5kYXRhLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcC52YWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbC5jZWxsQ2xhc3MgPSB0aGlzLmNlbGxDbGFzcztcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy9cclxuICAgICAgICBpZiAodGhpcy5jZWxsVGVtcGxhdGUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjb2wuY2VsbFJlbmRlcmVyRnJhbWV3b3JrID0gdGhpcy5jZWxsVGVtcGxhdGUucmVuZGVyZXI7XHJcbiAgICAgICAgICAgIGNvbC5jZWxsUmVuZGVyZXJQYXJhbXMgPSB0aGlzLmNlbGxUZW1wbGF0ZS5wYXJhbXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5jaGVja2JveCkge1xyXG4gICAgICAgICAgICBjb2wuY2hlY2tib3hTZWxlY3Rpb24gPSAocGFyYW1zKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLy8gIGNvbC5oZWFkZXJDaGVja2JveFNlbGVjdGlvbiA9IHRoaXMuaGVhZGVyQ2hlY2tib3g7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjb2w7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4iXX0=