@sd-angular/core 1.3.218 → 1.3.220
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/sd-angular-core-grid-material.umd.js +1 -1
- package/bundles/sd-angular-core-grid-material.umd.js.map +1 -1
- package/bundles/sd-angular-core-grid-material.umd.min.js +1 -1
- package/bundles/sd-angular-core-grid-material.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-select.umd.js +36 -34
- package/bundles/sd-angular-core-select.umd.js.map +1 -1
- package/bundles/sd-angular-core-select.umd.min.js +2 -2
- package/bundles/sd-angular-core-select.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-table.umd.js +5 -4
- package/bundles/sd-angular-core-table.umd.js.map +1 -1
- package/bundles/sd-angular-core-table.umd.min.js +1 -1
- package/bundles/sd-angular-core-table.umd.min.js.map +1 -1
- package/esm2015/grid-material/src/lib/grid-material.component.js +2 -2
- package/esm2015/select/src/lib/select.component.js +39 -37
- package/esm2015/table/src/lib/table.component.js +5 -5
- package/fesm2015/sd-angular-core-grid-material.js +1 -1
- package/fesm2015/sd-angular-core-grid-material.js.map +1 -1
- package/fesm2015/sd-angular-core-select.js +37 -35
- package/fesm2015/sd-angular-core-select.js.map +1 -1
- package/fesm2015/sd-angular-core-table.js +4 -4
- package/fesm2015/sd-angular-core-table.js.map +1 -1
- package/grid-material/sd-angular-core-grid-material.metadata.json +1 -1
- package/package.json +1 -1
- package/{sd-angular-core-1.3.218.tgz → sd-angular-core-1.3.220.tgz} +0 -0
- package/select/sd-angular-core-select.metadata.json +1 -1
- package/select/src/lib/select.component.d.ts +1 -0
- package/table/sd-angular-core-table.metadata.json +1 -1
- package/table/src/lib/table.component.d.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-angular-core-grid-material.umd.js","sources":["../../../../projects/sd-core/grid-material/src/lib/models/grid-configuration.model.ts","../../../../projects/sd-core/grid-material/src/lib/directives/sd-material-cell-def.directive.ts","../../../../projects/sd-core/grid-material/src/lib/directives/sd-material-filter-def.directive.ts","../../../../projects/sd-core/grid-material/src/lib/directives/sd-material-footer-def.directive.ts","../../../../projects/sd-core/grid-material/src/lib/directives/sd-material-empty-data-def.directive.ts","../../../../projects/sd-core/grid-material/src/lib/directives/sd-material-sub-information-def.directive.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/grid-material/src/lib/components/popup-filter/popup-filter.component.ts","../../../../projects/sd-core/grid-material/src/lib/components/grid-filter/grid-filter.component.ts","../../../../projects/sd-core/grid-material/src/lib/components/popup-export/popup-export.component.ts","../../../../projects/sd-core/grid-material/src/lib/services/grid-configuration.service.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/column-values.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/functions/calculate-sd-id.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/editor-handler-column.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/services/grid-filter/grid-filter.service.ts","../../../../projects/sd-core/grid-material/src/lib/grid-material.component.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/command-filter.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/command-disable.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/command-icon.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/command-title.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/column-html-template.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/components/desktop-cell-view/desktop-cell-view.component.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/column-transform.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/filter-external.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/filter-column.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/components/desktop-cell-children-view/desktop-cell-children-view.component.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/column-children-filter.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/column-title.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/components/desktop-command/desktop-command.component.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/column-badge.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/grid-configuration-result.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/components/popup-grid-configuration/popup-grid-configuration.component.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/column-tooltip.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/selection-action-filter.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/selection-disable.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/selection-visible-select-all.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/services/generated-column/generated-column.service.ts","../../../../projects/sd-core/grid-material/src/lib/components/dynamic-column/dynamic-column.component.ts","../../../../projects/sd-core/grid-material/src/lib/components/desktop-cell/desktop-cell.component.ts","../../../../projects/sd-core/grid-material/src/lib/components/desktop-cell-editor/desktop-cell-editor.component.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/editor-handler-row.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/editor-validate.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/style-row-css.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/components/desktop-editor-validation/desktop-editor-validation.component.ts","../../../../projects/sd-core/grid-material/src/lib/models/grid-column.model.ts","../../../../projects/sd-core/grid-material/src/lib/components/column-inline-filter/column-inline-filter.component.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/selection-visible.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/components/quick-action/quick-action.component.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/cell-view.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/sd-group.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/grid-material.module.ts","../../../../projects/sd-core/grid-material/sd-angular-core-grid-material.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { SdFilterOperator } from './grid-column.model';\r\n\r\nexport interface ISdGridMaterialConfiguration {\r\n filter?: {\r\n quickFilter?: boolean;\r\n operator?: {\r\n defaultListString?: SdFilterOperator[];\r\n defaultListNumber?: SdFilterOperator[];\r\n defaultListDate?: SdFilterOperator[];\r\n defaultListValues?: SdFilterOperator[];\r\n };\r\n };\r\n paginate?: {\r\n pageSize?: number;\r\n pages?: number[];\r\n };\r\n translate?: boolean;\r\n}\r\n\r\nexport const DEFAULT_GRID_MATERIAL_CONFIG: ISdGridMaterialConfiguration = {\r\n paginate: {\r\n pageSize: 50,\r\n pages: [50, 100, 200],\r\n },\r\n};\r\n\r\nexport const GRID_MATERIAL_CONFIG = new InjectionToken<ISdGridMaterialConfiguration>('sd-grid-material.configuration');\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdMaterialCellDef]'\r\n})\r\nexport class SdMaterialCellDefDirective {\r\n @Input() sdMaterialCellDef: string;\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdMaterialFilterDef]'\r\n})\r\nexport class SdMaterialFilterDefDirective {\r\n @Input() sdMaterialFilterDef: string;\r\n @Input('defaultShowing') set showing(val: boolean | '') {\r\n this.defaultShowing = (val === '') || val;\r\n }\r\n defaultShowing: boolean;\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdMaterialFooterDef]'\r\n})\r\nexport class SdMaterialFooterDefDirective {\r\n @Input() sdMaterialFooterDef: string;\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdMaterialEmptyDataDef]'\r\n})\r\nexport class SdMaterialEmptyDataDefDirective {\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdMaterialSubInformationDef]'\r\n})\r\nexport class SdMaterialSubInformationDefDirective {\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","/*! *****************************************************************************\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(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, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, 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\n/** @deprecated */\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\n/** @deprecated */\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 __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, 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, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Component, ViewChild, Input, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\r\nimport { SdModal } from '@sd-angular/core/modal';\r\nimport { SdGridMaterialColumn } from '../../models/grid-column.model';\r\nimport { SdGridMaterialExternalFilter, SdGridMaterialFilterRegister } from '../../services/grid-filter/grid-filter.model';\r\nimport { SdMaterialFilterDefDirective } from '../../directives/sd-material-filter-def.directive';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'sd-popup-filter',\r\n templateUrl: './popup-filter.component.html',\r\n styleUrls: ['./popup-filter.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdPopupFilter {\r\n @ViewChild(SdModal) modal: SdModal;\r\n #filterRegister: SdGridMaterialFilterRegister;\r\n @Input() set filterRegister(value: SdGridMaterialFilterRegister) {\r\n this.#filterRegister = value;\r\n }\r\n @Input() externalFilters: SdGridMaterialExternalFilter[] = [];\r\n externalFilter: Record<string, any> = {};\r\n inlineExternal: Record<string, boolean> = {};\r\n @Input() columns: SdGridMaterialColumn[] = [];\r\n columnFilter: Record<string, any> = {};\r\n inlineColumn: Record<string, boolean> = {};\r\n\r\n @Input() filterDefs: SdMaterialFilterDefDirective[] = [];\r\n filterDef: Record<string, any> = {};\r\n inlineFilterDef: Record<string, boolean> = {};\r\n constructor(private cdRef: ChangeDetectorRef) {}\r\n\r\n ngAfterViewInit() {}\r\n\r\n ngOnDestroy() {}\r\n\r\n open = () => {\r\n const configuration = this.#filterRegister.configuration.get();\r\n this.inlineColumn = JSON.parse(JSON.stringify(configuration.inlineColumn));\r\n this.inlineExternal = JSON.parse(JSON.stringify(configuration.inlineExternal));\r\n this.inlineFilterDef = JSON.parse(JSON.stringify(configuration.inlineFilterDef));\r\n const filterValue = this.#filterRegister.value.get();\r\n this.columnFilter = JSON.parse(JSON.stringify(filterValue.columnFilter));\r\n this.externalFilter = JSON.parse(JSON.stringify(filterValue.externalFilter));\r\n this.filterDef = JSON.parse(JSON.stringify(filterValue.filterDef));\r\n this.modal.open();\r\n this.cdRef.markForCheck();\r\n };\r\n\r\n close = () => {\r\n this.modal.close();\r\n this.cdRef.markForCheck();\r\n };\r\n\r\n onApply = () => {\r\n this.#filterRegister.configuration.set({\r\n inlineColumn: this.inlineColumn,\r\n inlineExternal: this.inlineExternal,\r\n inlineFilterDef: this.inlineFilterDef,\r\n });\r\n this.#filterRegister.value.set({\r\n columnFilter: this.columnFilter,\r\n externalFilter: this.externalFilter,\r\n filterDef: this.filterDef,\r\n });\r\n this.modal.close();\r\n this.cdRef.markForCheck();\r\n };\r\n\r\n onClear() {\r\n this.#filterRegister.value.remove();\r\n this.modal.close();\r\n this.cdRef.markForCheck();\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n AfterViewInit,\r\n OnDestroy,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n} from '@angular/core';\r\nimport {\r\n SdGridMaterialFilterOption,\r\n SdGridMaterialExternalFilter,\r\n SdGridMaterialFilterRegister,\r\n} from '../../services/grid-filter/grid-filter.model';\r\nimport { SdGridMaterialColumn } from '../../models/grid-column.model';\r\nimport { SdPopupFilter } from '../popup-filter/popup-filter.component';\r\nimport { BehaviorSubject, Subject, Subscription } from 'rxjs';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { SdMaterialFilterDefDirective } from '../../directives/sd-material-filter-def.directive';\r\nimport { startWith } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'sd-grid-filter',\r\n templateUrl: './grid-filter.component.html',\r\n styleUrls: ['./grid-filter.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdGridFilter implements AfterViewInit, OnDestroy {\r\n @ViewChild(SdPopupFilter) popupFilter: SdPopupFilter;\r\n filter: Readonly<SdGridMaterialFilterOption>;\r\n @Input('filter') set _filter(filter: SdGridMaterialFilterOption) {\r\n this.filter = filter;\r\n }\r\n @Input() columns: SdGridMaterialColumn[] = [];\r\n externalFilters: SdGridMaterialExternalFilter[] = [];\r\n @Input('externalFilters') set _externalFilters(value: SdGridMaterialExternalFilter[]) {\r\n this.externalFilters = value || [];\r\n }\r\n @Input() filterDefs: SdMaterialFilterDefDirective[] = [];\r\n filterRegister: SdGridMaterialFilterRegister;\r\n @Input('filterRegister') set _filterRegister(value: SdGridMaterialFilterRegister) {\r\n this.filterRegister = value;\r\n this.filterRegisterChange.next(this.filterRegister);\r\n }\r\n filterRegisterChange = new BehaviorSubject<SdGridMaterialFilterRegister>(null);\r\n\r\n filterDef: any = {};\r\n inlineFilterDef: Record<string, boolean> = {};\r\n columnFilter: any = {};\r\n inlineColumn: Record<string, boolean> = {};\r\n externalFilter: any = {};\r\n inlineExternal: Record<string, boolean> = {};\r\n isMobileOrTablet: boolean;\r\n\r\n #subscription = new Subscription();\r\n\r\n constructor(private ref: ChangeDetectorRef, private deviceService: DeviceDetectorService) {\r\n this.isMobileOrTablet = !this.deviceService.isDesktop();\r\n this.ref.markForCheck();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#subscription.add(\r\n this.filterRegisterChange.pipe(startWith(this.filterRegister)).subscribe(filterRegister => {\r\n if (this.filterRegister) {\r\n this.#subscription.add(\r\n this.filterRegister.configuration.observer.subscribe(configuration => {\r\n const { inlineColumn, inlineExternal, inlineFilterDef } = configuration;\r\n this.inlineColumn = inlineColumn;\r\n this.inlineExternal = inlineExternal;\r\n this.inlineFilterDef = inlineFilterDef;\r\n this.ref.markForCheck();\r\n })\r\n );\r\n this.#subscription.add(\r\n this.filterRegister.value.observer.subscribe(value => {\r\n const { columnFilter, externalFilter, filterDef } = value;\r\n this.columnFilter = columnFilter;\r\n this.externalFilter = externalFilter;\r\n this.filterDef = filterDef;\r\n this.ref.markForCheck();\r\n })\r\n );\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n onFilter = (item?: SdGridMaterialColumn | SdGridMaterialExternalFilter) => {\r\n this.filterRegister.value.set({\r\n columnFilter: this.columnFilter,\r\n externalFilter: this.externalFilter,\r\n filterDef: this.filterDef,\r\n });\r\n };\r\n\r\n updateFilter = () => {\r\n this.filterRegister.value.set({\r\n columnFilter: this.columnFilter,\r\n externalFilter: this.externalFilter,\r\n filterDef: this.filterDef,\r\n notReload: true\r\n });\r\n };\r\n\r\n open = () => {\r\n this.popupFilter.open();\r\n };\r\n}\r\n","import { Component, OnInit, AfterViewInit, ViewChild, Output, EventEmitter, Input, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport * as uuid from 'uuid';\r\n\r\nimport {\r\n SdNotifyService\r\n} from '@sd-angular/core/notify';\r\n\r\nimport {\r\n SdLoadingService\r\n} from '@sd-angular/core/loading';\r\n\r\nimport {\r\n SdTranslateService\r\n} from '@sd-angular/core/translate';\r\nimport hash from 'object-hash';\r\nimport { MatSelectionList } from '@angular/material/list';\r\nimport { SdGridMaterialOption } from '../../models/grid-option.model';\r\nimport { SdModal } from '@sd-angular/core/modal';\r\nimport { SdExportFile, SdExportService, SdExportColumn } from '@sd-angular/core/export';\r\nimport { SdGroupExport } from '../../models/grid-export.model';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { SdGridConfigurationResult } from '../../models/grid-config.model';\r\nimport { SdGridMaterialColumn } from '../../models/grid-column.model';\r\n\r\n@Component({\r\n selector: 'sd-popup-export',\r\n templateUrl: './popup-export.component.html',\r\n styleUrls: ['./popup-export.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdPopupExport implements OnInit, AfterViewInit {\r\n gridOption: SdGridMaterialOption;\r\n columns: SdExportColumn[] = [];\r\n groups: SdGroupExport[] = [];\r\n templateName: string;\r\n enableCreating = false;\r\n @ViewChild('modal') modal: SdModal;\r\n @ViewChild('listGroups') listGroups: MatSelectionList;\r\n\r\n selected: {\r\n [key: string]: boolean\r\n } = {};\r\n files: SdExportFile[] = [];\r\n selectedGroup: SdGroupExport;\r\n\r\n @Output() export = new EventEmitter<{ file: SdExportFile, columns: SdExportColumn[], isCSV?: boolean }>();\r\n form = new FormGroup({});\r\n\r\n @Input('gridOption') set _gridOption(option: SdGridMaterialOption) {\r\n this.gridOption = option;\r\n this.columns = this.#getExportableColumns();\r\n this.groups = this.#getExportableGroups();\r\n }\r\n @Input() configuration: SdGridConfigurationResult;\r\n private get key(): string {\r\n const prefix = '93889e78-f971-4a1d-8c73-fe2321af9233';\r\n if (!this.gridOption?.export?.key) {\r\n return null;\r\n }\r\n return hash({\r\n prefix,\r\n key: this.gridOption?.export?.key\r\n });\r\n }\r\n\r\n private get gridColumns() {\r\n const columns: SdExportColumn[] = [];\r\n this.gridOption.columns.filter(e => !e.export?.disabled).forEach(column => {\r\n if (column.type === 'image') {\r\n return;\r\n }\r\n if (column.type === 'children') {\r\n column.children?.filter(e => !e.export?.disabled).forEach(childColumn => {\r\n if (childColumn.type === 'image') {\r\n return;\r\n }\r\n columns.push(childColumn);\r\n });\r\n return;\r\n }\r\n if (column.type === 'children-col') {\r\n column.children?.filter(e => !e.export?.disabled).forEach(childColumn => {\r\n if (childColumn.type === 'image') {\r\n return;\r\n }\r\n columns.push(childColumn);\r\n });\r\n return;\r\n }\r\n columns.push(column);\r\n });\r\n return columns.map(e => ({\r\n field: e.field,\r\n title: e.title,\r\n description: e.description,\r\n width: e.width\r\n }));\r\n }\r\n private get additionalColumns() {\r\n return (this.gridOption.export?.columns?.filter(e => !e.export?.disabled) || []).map(e => ({\r\n field: e.field,\r\n title: e.title,\r\n description: e.description,\r\n width: e.width\r\n }));\r\n }\r\n\r\n #getExportableColumns = (): SdExportColumn[] => {\r\n return [...this.gridColumns, ...this.additionalColumns];\r\n }\r\n\r\n #getExportableGroups = () => {\r\n return this.gridOption?.export?.groups?.filter(e => {\r\n const permission = e.permission;\r\n if (typeof (permission) === 'function') {\r\n return permission();\r\n }\r\n return permission;\r\n }) || [];\r\n }\r\n\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private loadingService: SdLoadingService,\r\n private exportService: SdExportService,\r\n private notifyService: SdNotifyService,\r\n private translateService: SdTranslateService\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n open = async () => {\r\n if (!this.key) {\r\n this.exportDefault();\r\n return;\r\n }\r\n if (this.groups.length === 1 && this.gridOption?.export?.hideMyTemplates) {\r\n this.loadFiles(this.groups[0].code);\r\n } else {\r\n this.loadFiles(null);\r\n }\r\n this.selected = {};\r\n this.modal.open();\r\n this.ref.detectChanges();\r\n }\r\n\r\n #getExportColumns = () => {\r\n if (this.configuration) {\r\n const columns = [...this.gridColumns];\r\n const { firstColumns, secondColumns } = this.configuration;\r\n const displayColumns: SdGridMaterialColumn<any>[] = [...firstColumns, ...secondColumns].reduce((first, next) => {\r\n const column = this.gridOption.columns.find(e => e.field === next.field);\r\n if (!column) {\r\n return first;\r\n }\r\n if (column.type !== 'children' && column.type !== 'children-col') {\r\n return [...first, column];\r\n }\r\n const children = column.children.filter(e1 => e1.type !== 'image');\r\n return [...first, ...children];\r\n }, []);\r\n const results = displayColumns.map(e => ({\r\n ...e,\r\n data: columns.find(e1 => e1.field === e.field)\r\n })).filter(e => !!e.data)\r\n .map(e => e.data);\r\n return [...results, ...this.additionalColumns];\r\n } else {\r\n return this.columns;\r\n }\r\n }\r\n\r\n exportDefault = () => {\r\n this.export.emit({\r\n file: null,\r\n columns: this.#getExportColumns(),\r\n isCSV: false\r\n });\r\n }\r\n\r\n exportCSV = () => {\r\n this.export.emit({\r\n file: null,\r\n columns: this.#getExportColumns(),\r\n isCSV: true\r\n });\r\n }\r\n\r\n loadFiles = async (group: string = null) => {\r\n this.selectedGroup = this.groups.find(e => e.code === group);\r\n this.files = await this.exportService.filesInFolder({\r\n key: this.key,\r\n group\r\n });\r\n this.ref.markForCheck();\r\n }\r\n\r\n #initTemplate = async (fileName?: string) => {\r\n const sheets: {\r\n name: string,\r\n items: any[],\r\n fields: string[]\r\n }[] = [];\r\n if (Array.isArray(this.gridOption?.export?.sheets)) {\r\n for (const sheet of this.gridOption.export.sheets) {\r\n if (sheet.name && sheet.items && sheet.fields) {\r\n if (Array.isArray(sheet.items)) {\r\n sheets.push({\r\n name: sheet.name,\r\n items: sheet.items,\r\n fields: sheet.fields\r\n });\r\n } else {\r\n sheets.push({\r\n name: sheet.name,\r\n items: await sheet.items(),\r\n fields: sheet.fields\r\n });\r\n }\r\n }\r\n }\r\n }\r\n return await this.exportService.generateTemplate({\r\n fileName: fileName || this.gridOption?.export?.fileName,\r\n columns: this.columns,\r\n sheets\r\n });\r\n }\r\n\r\n generateTemplate = async () => {\r\n this.loadingService.start();\r\n await this.#initTemplate().finally(this.loadingService.stop);\r\n }\r\n\r\n generateAndUploadTemplate = async (fileName?: string) => {\r\n const sheets: {\r\n name: string,\r\n items: any[],\r\n fields: string[]\r\n }[] = [];\r\n if (Array.isArray(this.gridOption?.export?.sheets)) {\r\n for (const sheet of this.gridOption?.export?.sheets) {\r\n if (sheet.name && sheet.items && sheet.fields) {\r\n if (Array.isArray(sheet.items)) {\r\n sheets.push({\r\n name: sheet.name,\r\n items: sheet.items,\r\n fields: sheet.fields\r\n });\r\n } else {\r\n sheets.push({\r\n name: sheet.name,\r\n items: await sheet.items(),\r\n fields: sheet.fields\r\n });\r\n }\r\n }\r\n }\r\n }\r\n return await this.exportService.generateUploadTemplate({\r\n key: this.key,\r\n template: {\r\n fileName: fileName || this.gridOption?.export?.fileName,\r\n columns: this.columns.filter(e => this.selected[e.field]),\r\n sheets\r\n },\r\n group: this.selectedGroup?.code\r\n });\r\n }\r\n\r\n onExport = (file: SdExportFile) => {\r\n this.export.emit({\r\n file,\r\n columns: this.columns\r\n });\r\n this.ref.detectChanges();\r\n }\r\n\r\n uploadTemplate = async () => {\r\n const file = await this.exportService.uploadTemplate({\r\n key: this.key,\r\n group: this.selectedGroup?.code,\r\n validator: this.gridOption?.export?.validators\r\n });\r\n if (file) {\r\n this.files = [...this.files, file];\r\n this.ref.detectChanges();\r\n }\r\n }\r\n\r\n removeFile = (file: SdExportFile) => {\r\n this.notifyService.confirm(this.translateService.translate('Remove template')).then(() => {\r\n this.exportService.removeFile({\r\n key: this.key,\r\n fileName: file.fileName,\r\n group: this.selectedGroup?.code || null\r\n });\r\n const idx = this.files.indexOf(file);\r\n this.files.splice(idx, 1);\r\n this.files = [...this.files];\r\n this.ref.detectChanges();\r\n });\r\n }\r\n\r\n createTemplate = async () => {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n if (!this.columns.some(e => this.selected[e.field])) {\r\n this.notifyService.notify.warning(`Vui lòng chọn cột dữ liệu để xuất`);\r\n return;\r\n }\r\n this.loadingService.start();\r\n const fileName = this.templateName + '.xlsx';\r\n try {\r\n if (this.gridOption?.export?.validators?.(fileName)) {\r\n this.notifyService.notify.warning(this.gridOption?.export?.validators(fileName));\r\n return;\r\n }\r\n const result = await this.generateAndUploadTemplate(fileName);\r\n if (result?.filePath) {\r\n const file: SdExportFile = {\r\n filePath: result.filePath,\r\n fileName: result.fileName\r\n };\r\n this.onExport(file);\r\n this.templateName = null;\r\n this.enableCreating = false;\r\n this.files = [...this.files, file];\r\n this.ref.detectChanges();\r\n }\r\n } finally {\r\n this.loadingService.stop();\r\n }\r\n }\r\n\r\n onChangeGroup = () => {\r\n this.loadFiles(this.listGroups?.selectedOptions?.selected[0]?.value);\r\n }\r\n\r\n validatorTemplateName = (val: string) => {\r\n const { translate } = this.translateService;\r\n const regex = /^[A-Za-z0-9 _]*[A-Za-z0-9][A-Za-z0-9 _]*$/;\r\n if (!val) {\r\n return translate('Please enter your template name');\r\n }\r\n if (val.length > 50) {\r\n return translate('Template name is too long');\r\n }\r\n if (!regex.test(val)) {\r\n return translate('Template name only contains letters, numbers and spaces');\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { SdSettingService } from '@sd-angular/core/setting';\r\nimport { SdGridMaterialOption } from '../models/grid-option.model';\r\nimport { SdColumnConfiguration, SdGridConfiguration, SdGridConfigurationCache, SdGridConfigurationResult } from '../models/grid-config.model';\r\nimport { SdMaterialSubInformationDefDirective } from '../directives/sd-material-sub-information-def.directive';\r\nimport { Subject } from 'rxjs';\r\nimport { SdGridMaterialColumn } from '../models/grid-column.model';\r\nimport { GRID_MATERIAL_CONFIG, ISdGridMaterialConfiguration } from '../models/grid-configuration.model';\r\n\r\n@Injectable()\r\nexport class SdGridConfigurationService {\r\n #COLUMNS = {\r\n EDITORVALIDATION: 'sdEditorValidation',\r\n EDITOR: 'sdEditor',\r\n SUBINFORMATION: 'sdSubInformationAction',\r\n COMMAND: 'sdCommand',\r\n SELECTION: 'sdSelection',\r\n GROUP: 'sdGroup'\r\n };\r\n #cache: {\r\n [key: string]: SdGridConfigurationCache\r\n } = {};\r\n constructor(\r\n private settingService: SdSettingService,\r\n @Inject(GRID_MATERIAL_CONFIG) @Optional() public gridMaterialConfiguration: ISdGridMaterialConfiguration) {\r\n }\r\n\r\n init = (key: string, gridOption: SdGridMaterialOption) => {\r\n if (!this.#cache[key]) {\r\n const subject = new Subject<SdGridConfiguration>();\r\n this.#cache[key] = {\r\n load: this.#load(gridOption, subject),\r\n get: this.#get(gridOption),\r\n set: (configuration: SdGridConfiguration) => {\r\n configuration = this.#set(gridOption, configuration);\r\n subject.next({ ...configuration });\r\n return configuration;\r\n },\r\n remove: () => {\r\n this.#remove(gridOption)();\r\n subject.next(this.#default(gridOption));\r\n },\r\n observer: subject\r\n };\r\n }\r\n return this.#cache[key];\r\n }\r\n\r\n #getKey = (gridOption: SdGridMaterialOption) => {\r\n const prefix = 'c9e94836-6ace-4aeb-b148-4f0be63589ee';\r\n if (!gridOption?.config?.key && !gridOption?.key) {\r\n return null;\r\n }\r\n return hash({\r\n prefix,\r\n key: gridOption?.config?.key || !gridOption?.key\r\n });\r\n }\r\n\r\n #default = (gridOption: SdGridMaterialOption): SdGridConfiguration => {\r\n const columns: SdColumnConfiguration[] = gridOption?.columns?.filter(e => !e.hidden).map(e => ({\r\n origin: {\r\n field: e.field,\r\n title: e.title,\r\n width: e.width,\r\n invisible: e.invisible\r\n },\r\n invisible: e.invisible,\r\n fixed: false\r\n })) || [];\r\n return {\r\n columns\r\n };\r\n }\r\n\r\n #load = (gridOption: SdGridMaterialOption, subject: Subject<SdGridConfiguration>) => {\r\n return async () => {\r\n const get = this.#get(gridOption);\r\n const configuration = await get();\r\n subject.next({ ...configuration });\r\n };\r\n }\r\n\r\n #get = (gridOption: SdGridMaterialOption) => {\r\n return async () => {\r\n const key = this.#getKey(gridOption);\r\n if (!key) {\r\n return this.#default(gridOption);\r\n }\r\n const { columns, config } = gridOption;\r\n let configuration: SdGridConfiguration;\r\n if (config?.storage === 'server') {\r\n const { get, remove } = this.settingService.createServer<SdGridConfiguration>(key, {\r\n args: config?.args\r\n });\r\n configuration = await get().catch(() => undefined);\r\n if (!configuration?.columns) {\r\n remove().catch(console.error);\r\n return this.#default(gridOption);\r\n }\r\n } else {\r\n const { get, remove } = this.settingService.create<SdGridConfiguration>(key, {\r\n type: config?.storage,\r\n args: config?.args\r\n });\r\n configuration = get();\r\n if (!configuration?.columns) {\r\n remove();\r\n return this.#default(gridOption);\r\n }\r\n }\r\n\r\n configuration.columns = configuration.columns\r\n .filter(column => column.isGeneratedColumn || columns.some(e => !e.hidden && e.field === column.origin.field));\r\n // Thêm những column mới vào storage nếu có\r\n columns.forEach(column => {\r\n const col = configuration.columns.find(e => e.origin?.field === column.field);\r\n if (!col) {\r\n configuration.columns.push({\r\n origin: {\r\n field: column.field,\r\n title: column.title,\r\n width: column.width,\r\n invisible: column.invisible,\r\n },\r\n invisible: column.invisible,\r\n fixed: false\r\n });\r\n } else {\r\n col.origin = {\r\n field: column.field,\r\n title: column.title,\r\n width: column.width,\r\n invisible: column.invisible\r\n };\r\n }\r\n });\r\n return configuration;\r\n };\r\n }\r\n\r\n #set = (gridOption: SdGridMaterialOption, configuration: SdGridConfiguration) => {\r\n const key = this.#getKey(gridOption);\r\n if (key) {\r\n if (gridOption?.config?.storage === 'server') {\r\n const { set } = this.settingService.createServer<SdGridConfiguration>(key, {\r\n args: gridOption?.config?.args\r\n });\r\n set(configuration);\r\n } else {\r\n const { set } = this.settingService.create<SdGridConfiguration>(key, {\r\n type: gridOption?.config?.storage,\r\n args: gridOption?.config?.args\r\n });\r\n set(configuration);\r\n }\r\n }\r\n return JSON.parse(JSON.stringify(configuration));\r\n }\r\n\r\n #remove = (gridOption: SdGridMaterialOption) => {\r\n return () => {\r\n const key = this.#getKey(gridOption);\r\n if (key) {\r\n if (gridOption?.config?.storage === 'server') {\r\n const { remove } = this.settingService.createServer<SdGridConfiguration>(key, {\r\n args: gridOption?.config?.args\r\n });\r\n remove();\r\n } else {\r\n const { remove } = this.settingService.create<SdGridConfiguration>(key, {\r\n type: gridOption?.config?.storage,\r\n args: gridOption?.config?.args\r\n });\r\n remove();\r\n }\r\n }\r\n };\r\n }\r\n\r\n // get = async (gridOption: SdGridMaterialOption): Promise<SdGridConfiguration> => {\r\n // if (!gridOption?.key) {\r\n // return this.#getDefaultConfiguration(gridOption);\r\n // }\r\n // const { key, columns } = gridOption;\r\n // const configuration: SdGridConfiguration = await this.settingService.get(this.#getKey(key)).catch(() => undefined);\r\n // if (!configuration?.columns) {\r\n // this.settingService.remove(this.#getKey(key)).catch(console.error);\r\n // return this.#getDefaultConfiguration(gridOption);\r\n // }\r\n // configuration.columns = configuration.columns\r\n // .filter(column => columns.some(e => !e.hidden && e.field === column.origin.field));\r\n // // Thêm những column mới vào storage nếu có\r\n // columns.forEach(column => {\r\n // const col = configuration.columns.find(e => e.origin?.field === column.field);\r\n // if (!col) {\r\n // configuration.columns.push({\r\n // origin: {\r\n // field: column.field,\r\n // title: column.title,\r\n // width: column.width,\r\n // invisible: column.invisible,\r\n // },\r\n // invisible: column.invisible,\r\n // fixed: false\r\n // });\r\n // } else {\r\n // col.origin = {\r\n // field: column.field,\r\n // title: column.title,\r\n // width: column.width,\r\n // invisible: column.invisible\r\n // };\r\n // }\r\n // });\r\n // return configuration;\r\n // }\r\n\r\n // set = async (key: string, configuration: SdGridConfiguration): Promise<SdGridConfiguration> => {\r\n // if (key) {\r\n // this.settingService.set(this.#getKey(key), configuration);\r\n // }\r\n // return configuration;\r\n // }\r\n\r\n // remove = (key: string) => {\r\n // if (key) {\r\n // this.settingService.remove(this.#getKey(key));\r\n // }\r\n // }\r\n\r\n generateConfigurationResult = (\r\n configuration: SdGridConfiguration,\r\n gridOption: SdGridMaterialOption,\r\n sdSubInformation: SdMaterialSubInformationDefDirective) => {\r\n const result: SdGridConfigurationResult = {\r\n column: {},\r\n fixedColumn: {},\r\n firstColumns: [],\r\n secondColumns: [],\r\n firstHeaders: [],\r\n secondHeaders: [],\r\n displayedColumns: [],\r\n displayedFooters: [],\r\n multipleHeader: false\r\n };\r\n const { selection, commands, editor, group } = gridOption || {};\r\n if (editor?.addable || (editor?.type === 'inline' && (editor?.removable || typeof (editor?.disabled) === 'function' || !editor?.disabled))\r\n || (editor?.type === 'focus' && (typeof (editor?.disabled) === 'function' || !editor?.disabled))) {\r\n result.firstHeaders.push(this.#COLUMNS.EDITORVALIDATION);\r\n result.displayedColumns.push(this.#COLUMNS.EDITORVALIDATION);\r\n }\r\n if (selection?.visible) {\r\n result.firstHeaders.push(this.#COLUMNS.SELECTION);\r\n result.displayedColumns.push(this.#COLUMNS.SELECTION);\r\n }\r\n if (!editor?.hidden) {\r\n if (editor?.addable\r\n || (editor?.type === 'inline' && (editor?.removable || typeof (editor?.disabled) === 'function' || !editor?.disabled))\r\n || (editor?.type === 'focus' && (typeof (editor?.disabled) === 'function' || !editor?.disabled))\r\n || (editor?.type === 'popup' && (typeof (editor?.disabled) === 'function' || !editor?.disabled))) {\r\n result.firstHeaders.push(this.#COLUMNS.EDITOR);\r\n result.displayedColumns.push(this.#COLUMNS.EDITOR);\r\n }\r\n }\r\n if (commands?.length) {\r\n result.firstHeaders.push(this.#COLUMNS.COMMAND);\r\n result.displayedColumns.push(this.#COLUMNS.COMMAND);\r\n }\r\n if (group?.fields?.length) {\r\n result.firstHeaders.push(this.#COLUMNS.GROUP);\r\n result.displayedColumns.push(this.#COLUMNS.GROUP);\r\n }\r\n configuration?.columns?.filter(col => !col.invisible).forEach(col => {\r\n if (col.isGeneratedColumn) {\r\n result.column[col.origin.field] = {\r\n title: col.title || col.origin.title,\r\n width: col.width || col.origin.width,\r\n };\r\n if (col.fixed) {\r\n result.fixedColumn[col.origin.field] = {\r\n title: col.title || col.origin.title,\r\n width: col.width || col.origin.width,\r\n };\r\n }\r\n const generatedColumn: SdGridMaterialColumn = {\r\n type: 'children',\r\n field: col.origin.field,\r\n title: col.origin.title,\r\n children: []\r\n };\r\n for (const subColumn of gridOption?.columns.filter(e1 => col.generatedColumns.includes(e1.field))) {\r\n if (subColumn.type === 'children' || subColumn.type === 'children-col') {\r\n for (const childColumn of subColumn.children) {\r\n generatedColumn.children.push({\r\n ...childColumn,\r\n colSpan: 2\r\n });\r\n }\r\n } else {\r\n generatedColumn.children.push({\r\n ...subColumn,\r\n colSpan: 2\r\n });\r\n }\r\n\r\n }\r\n result.firstColumns.push({\r\n ...generatedColumn,\r\n title: col.title || col.origin.title,\r\n width: col.width || col.origin.width\r\n });\r\n result.firstHeaders.push(col.origin.field);\r\n result.displayedColumns.push(col.origin.field);\r\n return;\r\n }\r\n const column = gridOption?.columns.find(e => e.field === col.origin.field);\r\n if (column) {\r\n result.column[col.origin.field] = {\r\n title: col.title || col.origin.title,\r\n width: col.width || col.origin.width,\r\n };\r\n if (col.fixed) {\r\n result.fixedColumn[col.origin.field] = {\r\n title: col.title || col.origin.title,\r\n width: col.width || col.origin.width,\r\n };\r\n }\r\n result.firstColumns.push({\r\n ...column,\r\n title: col.title || col.origin.title,\r\n width: col.width || col.origin.width\r\n });\r\n result.firstHeaders.push(col.origin.field);\r\n if (column.type === 'children-col') {\r\n column.children?.forEach(childColumn => {\r\n result.secondColumns.push(childColumn);\r\n result.secondHeaders.push(childColumn.field);\r\n result.displayedColumns.push(childColumn.field);\r\n });\r\n } else {\r\n result.displayedColumns.push(col.origin.field);\r\n }\r\n }\r\n });\r\n if (sdSubInformation?.templateRef) {\r\n result.firstHeaders.push(this.#COLUMNS.SUBINFORMATION);\r\n result.displayedColumns.push(this.#COLUMNS.SUBINFORMATION);\r\n }\r\n result.multipleHeader = result.secondHeaders.length > 0;\r\n // Sub infomation không thể có footer\r\n result.displayedFooters = result.displayedColumns.filter(val => val !== this.#COLUMNS.SUBINFORMATION);\r\n return result;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { SdGridMaterialColumn } from '../models/grid-column.model';\r\n@Pipe({\r\n name: 'columnValues'\r\n})\r\nexport class SdColumnValuesPipe implements PipeTransform {\r\n #prefix = 'a1e67660-8aa2-4c11-b02d-71a32188719f';\r\n #cache: {\r\n [key: string]: {\r\n result: any\r\n }\r\n } = {};\r\n transform = async (value: any, column: SdGridMaterialColumn): Promise<string> => {\r\n if (column.type !== 'values' || !column.option?.items || !column.option?.valueField || !column.option?.displayField) {\r\n return value;\r\n }\r\n const { items, valueField, displayField, selection, ...remain } = column.option;\r\n const key = hash({\r\n prefix: this.#prefix,\r\n valueField,\r\n displayField,\r\n selection,\r\n remain,\r\n value\r\n });\r\n const isMultible = ['MULTIPLE', 'MULTIPLEAUTOCOMPLETE', 'MULTIPLE_EDITOR', 'MULTIPLEAUTOCOMPLETE_EDITOR'].includes(selection);\r\n if (typeof (items) === 'function') {\r\n if (!this.#cache[key]) {\r\n const values = await items(value, true);\r\n let result = '';\r\n if (isMultible && Array.isArray(value)) {\r\n result = values?.filter(e => value?.includes(e?.[valueField]))?.map(e => e?.[displayField])?.join(', ') || value?.join(', ');\r\n }\r\n else {\r\n result = values?.find(e => e?.[valueField] === value)?.[displayField] || value;\r\n }\r\n this.#cache[key] = {\r\n result\r\n };\r\n }\r\n } else {\r\n if (!this.#cache[key]) {\r\n let result = '';\r\n if (isMultible && Array.isArray(value)) {\r\n result = items?.filter(e => value?.includes(e?.[valueField]))?.map(e => e?.[displayField])?.join(', ') ?? value?.join(', ');\r\n }\r\n else {\r\n result = items?.find(e => e?.[valueField] === value)?.[displayField] || value\r\n }\r\n this.#cache[key] = {\r\n result\r\n };\r\n }\r\n }\r\n return this.#cache[key].result;\r\n }\r\n}\r\n","import hash from 'object-hash';\r\nimport { SdItem } from \"../models/grid.model\";\r\n\r\nexport const CalculateSdId = (item: SdItem) => {\r\n const {\r\n sdId,\r\n editorHandlerColumn,\r\n expandDetail,\r\n isExpanded,\r\n isExpanding,\r\n isSelected,\r\n sdGroup,\r\n selectable,\r\n actions,\r\n groupedActions,\r\n originItem,\r\n editorErrorMessage,\r\n editorHandlerRow,\r\n ...remain } = item;\r\n return hash(remain);\r\n}","import { Injectable, NgZone, Pipe, PipeTransform } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { CalculateSdId } from '../functions/calculate-sd-id';\r\nimport { SdGridMaterialColumn } from '../models/grid-column.model';\r\nimport { SdGridMaterialOption } from '../models/grid-option.model';\r\nimport { SdItem } from '../models/grid.model';\r\n@Pipe({\r\n name: 'sdEditorHandlerColumn'\r\n})\r\n@Injectable()\r\nexport class SdEditorHandlerColumnPipe implements PipeTransform {\r\n constructor(private zone: NgZone) { }\r\n #visible = (col: SdGridMaterialColumn, item: SdItem) => {\r\n if (col.type === 'children' || col.type === 'children-col') {\r\n return false;\r\n }\r\n // Kiểm tra xem có bị disabled hay không?\r\n if (col.editor) {\r\n const isDisabled = typeof (col.editor.disabled) === 'function' ? col.editor.disabled(item) : col.editor.disabled;\r\n if (isDisabled) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n transform(value: any, item: SdItem, gridOption: SdGridMaterialOption) {\r\n const key = CalculateSdId(item);\r\n if (item.sdId === key && item.editorHandlerColumn) {\r\n return true;\r\n }\r\n item.editorHandlerColumn = item.editorHandlerColumn || {};\r\n const { columns } = gridOption;\r\n for (const col of columns) {\r\n if (col.type === 'children-col') {\r\n for (const childCol of col.children) {\r\n item.editorHandlerColumn[childCol.field] = {\r\n ...item.editorHandlerColumn[childCol.field],\r\n visible: this.#visible(childCol, item)\r\n }\r\n }\r\n } else {\r\n item.editorHandlerColumn[col.field] = {\r\n ...item.editorHandlerColumn[col.field],\r\n visible: this.#visible(col, item)\r\n }\r\n }\r\n }\r\n this.zone.run(() => {\r\n item.sdId = CalculateSdId(item);\r\n });\r\n item.sdId = key;\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { SdSettingService } from '@sd-angular/core/setting';\r\nimport {\r\n SdGridMaterialExternalFilter,\r\n SdGridMaterialFilterConfiguration,\r\n SdGridMaterialFilterOption,\r\n SdGridMaterialFilterRegister,\r\n SdGridMaterialFilterValue,\r\n} from './grid-filter.model';\r\nimport { SdGridMaterialColumn } from '../../models/grid-column.model';\r\nimport { SdMaterialFilterDefDirective } from '../../directives/sd-material-filter-def.directive';\r\nimport { map, startWith } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class SdGridFilterService {\r\n #filterConfiguration = 'GRID-FILTER-CONFIGURATION';\r\n #filterValue = 'GRID-FILTER-VALUE';\r\n #cache: Record<string, SdGridMaterialFilterRegister> = {};\r\n constructor(private settingService: SdSettingService) {}\r\n register = (\r\n filter: SdGridMaterialFilterOption,\r\n args: {\r\n id: string;\r\n columns: SdGridMaterialColumn[];\r\n externalFilters: SdGridMaterialExternalFilter[];\r\n filterDefs: SdMaterialFilterDefDirective[];\r\n }\r\n ) => {\r\n let cacheSession = false;\r\n \r\n const { id, columns, externalFilters } = args;\r\n const tempKey = hash({\r\n id,\r\n columns: columns?.map(e => e.field).filter(field => !!field) || [],\r\n externalFilters: externalFilters?.map(e => e.field).filter(field => !!field) || [],\r\n });\r\n const key = filter?.key || tempKey;\r\n if (!filter?.key) {\r\n cacheSession = true; // Nếu không có key thì chỉ lưu theo session\r\n }\r\n if (!this.#cache[key]) {\r\n // Setting của filter configuration\r\n const filterConfiguration = this.settingService.create<SdGridMaterialFilterConfiguration>(\r\n {\r\n prefix: this.#filterConfiguration,\r\n key,\r\n },\r\n {\r\n default: this.#defaultConfiguration(args),\r\n type: cacheSession ? 'session' : undefined,\r\n }\r\n );\r\n // Lấy giá trị configuration merge với giá trị defaultShowing của args nếu như args có thay đổi\r\n filterConfiguration.set(this.#initConfiguration(args, filterConfiguration.get()));\r\n // Setting của filter value\r\n const filterValue = this.settingService.create<SdGridMaterialFilterValue>(\r\n {\r\n prefix: this.#filterValue,\r\n key: !filter?.cacheFilter ? tempKey : key,\r\n },\r\n {\r\n default: this.#defaultValue(args),\r\n type: cacheSession || !filter?.cacheFilter ? 'session' : undefined,\r\n }\r\n );\r\n // Lấy giá trị value merge với giá trị default của args nếu như args có thay đổi\r\n filterValue.set(this.#initValue(args, filterValue.get()));\r\n this.#cache[key] = {\r\n configuration: {\r\n get: (): SdGridMaterialFilterConfiguration => {\r\n return filterConfiguration.get();\r\n },\r\n set: (configuration: Partial<SdGridMaterialFilterConfiguration>): SdGridMaterialFilterConfiguration => {\r\n const { inlineColumn, inlineExternal, inlineFilterDef } = configuration;\r\n filterConfiguration.set({\r\n inlineColumn,\r\n inlineExternal,\r\n inlineFilterDef,\r\n });\r\n return {\r\n inlineColumn,\r\n inlineExternal,\r\n inlineFilterDef,\r\n };\r\n },\r\n remove: () => {\r\n filterConfiguration.set(this.#defaultConfiguration(args));\r\n },\r\n observer: filterConfiguration.observer.pipe(\r\n startWith(filterConfiguration.get()),\r\n // Sử dụng mặc định nếu bị reset\r\n map(configuration => configuration || this.#defaultConfiguration(args))\r\n ),\r\n },\r\n value: {\r\n get: (): SdGridMaterialFilterValue => {\r\n return filterValue.get();\r\n },\r\n set: (value: Partial<SdGridMaterialFilterValue>): SdGridMaterialFilterValue => {\r\n const keys = Object.keys(value || {});\r\n const current = filterValue.get();\r\n const { columnOperator, columnFilter, externalFilter, filterDef } = current;\r\n const updatedFilter = {\r\n // Filter column\r\n columnOperator: keys.includes('columnOperator') ? value?.columnOperator || {} : columnOperator,\r\n columnFilter: keys.includes('columnFilter') ? value?.columnFilter || {} : columnFilter,\r\n // Filter external\r\n externalFilter: keys.includes('externalFilter') ? value?.externalFilter || {} : externalFilter,\r\n // Filter def\r\n filterDef: keys.includes('filterDef') ? value?.filterDef || {} : filterDef,\r\n // Force\r\n notReload: !!value?.notReload,\r\n };\r\n filterValue.set(updatedFilter);\r\n return updatedFilter;\r\n },\r\n remove: () => {\r\n filterValue.set(this.#defaultValue(args));\r\n },\r\n observer: filterValue.observer.pipe(\r\n startWith(filterValue.get()),\r\n // Sử dụng mặc định nếu bị reset\r\n map(value => value || this.#defaultValue(args))\r\n ),\r\n },\r\n };\r\n }\r\n return this.#cache[key];\r\n };\r\n\r\n #defaultConfiguration = (args: {\r\n columns: SdGridMaterialColumn[];\r\n externalFilters: SdGridMaterialExternalFilter[];\r\n filterDefs: SdMaterialFilterDefDirective[];\r\n }): SdGridMaterialFilterConfiguration => {\r\n const { columns, externalFilters, filterDefs } = args;\r\n const inlineColumn: Record<string, boolean> = {};\r\n const inlineExternal: Record<string, boolean> = {};\r\n const inlineFilterDef: Record<string, boolean> = {};\r\n // Filter column\r\n for (const item of columns || []) {\r\n inlineColumn[item.field] = item?.filter?.defaultShowing;\r\n }\r\n // Filter external\r\n for (const item of externalFilters || []) {\r\n inlineExternal[item.field] = item?.defaultShowing;\r\n }\r\n // Filter def\r\n for (const item of filterDefs || []) {\r\n inlineFilterDef[item.sdMaterialFilterDef] = item?.defaultShowing;\r\n }\r\n return {\r\n // Filter column\r\n inlineColumn,\r\n // Filter external\r\n inlineExternal,\r\n // Filter def\r\n inlineFilterDef,\r\n };\r\n };\r\n\r\n #defaultValue = (args: {\r\n columns: SdGridMaterialColumn[];\r\n externalFilters: SdGridMaterialExternalFilter[];\r\n filterDefs: SdMaterialFilterDefDirective[];\r\n }): SdGridMaterialFilterValue => {\r\n const columnFilter: Record<string, any> = {};\r\n const externalFilter: Record<string, any> = {};\r\n const filterDef: Record<string, any> = {};\r\n const { columns, externalFilters, filterDefs } = args;\r\n // Filter column\r\n for (const item of columns || []) {\r\n columnFilter[item.field] = item?.filter?.default;\r\n }\r\n // Filter external\r\n for (const item of externalFilters || []) {\r\n externalFilter[item.field] = item?.default;\r\n }\r\n // Filter def\r\n for (const item of filterDefs || []) {\r\n filterDef[item.sdMaterialFilterDef] = undefined;\r\n }\r\n return {\r\n // Filter column\r\n columnFilter,\r\n // Filter external\r\n externalFilter,\r\n // Filter def\r\n filterDef,\r\n };\r\n };\r\n\r\n #initConfiguration = (\r\n args: {\r\n columns: SdGridMaterialColumn[];\r\n externalFilters: SdGridMaterialExternalFilter[];\r\n filterDefs: SdMaterialFilterDefDirective[];\r\n },\r\n configuration: SdGridMaterialFilterConfiguration\r\n ): SdGridMaterialFilterConfiguration => {\r\n const { columns, externalFilters, filterDefs } = args;\r\n const inlineColumn: Record<string, boolean> = {};\r\n const inlineExternal: Record<string, boolean> = {};\r\n const inlineFilterDef: Record<string, boolean> = {};\r\n // Filter column\r\n for (const item of columns || []) {\r\n inlineColumn[item.field] = configuration?.inlineColumn?.[item.field] ?? item?.filter?.defaultShowing;\r\n }\r\n // Filter external\r\n for (const item of externalFilters || []) {\r\n inlineExternal[item.field] = configuration?.inlineExternal?.[item.field] ?? item?.defaultShowing;\r\n }\r\n // Filter def\r\n for (const item of filterDefs || []) {\r\n inlineFilterDef[item.sdMaterialFilterDef] = configuration?.inlineFilterDef?.[item.sdMaterialFilterDef] ?? item?.defaultShowing;\r\n }\r\n return {\r\n // Filter column\r\n inlineColumn,\r\n // Filter external\r\n inlineExternal,\r\n // Filter def\r\n inlineFilterDef,\r\n };\r\n };\r\n\r\n #initValue = (\r\n args: {\r\n columns: SdGridMaterialColumn[];\r\n externalFilters: SdGridMaterialExternalFilter[];\r\n filterDefs: SdMaterialFilterDefDirective[];\r\n },\r\n value: SdGridMaterialFilterValue\r\n ): SdGridMaterialFilterValue => {\r\n const columnFilter: Record<string, any> = {};\r\n const externalFilter: Record<string, any> = {};\r\n const filterDef: Record<string, any> = {};\r\n const { columns, externalFilters, filterDefs } = args;\r\n // Filter column\r\n for (const item of columns || []) {\r\n columnFilter[item.field] = value?.columnFilter?.[item.field] ?? item?.filter?.default;\r\n }\r\n // Filter external\r\n for (const item of externalFilters || []) {\r\n if (item.type === 'daterange') {\r\n externalFilter[item.field] = {\r\n from: value?.externalFilter?.[item.field]?.from ?? item.default?.from,\r\n to: value?.externalFilter?.[item.field]?.to ?? item.default?.to,\r\n };\r\n } else {\r\n externalFilter[item.field] = value?.externalFilter?.[item.field] ?? item?.default;\r\n }\r\n }\r\n // Filter def\r\n for (const item of filterDefs || []) {\r\n filterDef[item.sdMaterialFilterDef] = value?.filterDef?.[item.sdMaterialFilterDef] ?? undefined;\r\n }\r\n return {\r\n // Filter column\r\n columnFilter,\r\n // Filter external\r\n externalFilter,\r\n // Filter def\r\n filterDef,\r\n };\r\n };\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ViewChild,\r\n AfterViewInit,\r\n Optional,\r\n Inject,\r\n ChangeDetectorRef,\r\n ContentChildren,\r\n QueryList,\r\n OnInit,\r\n OnDestroy,\r\n ContentChild,\r\n} from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport * as uuid from 'uuid';\r\nimport { SdGridMaterialFilterRegister, SdGridMaterialFilterRequest } from './services/grid-filter/grid-filter.model';\r\nimport { SdGridMaterialOption } from './models/grid-option.model';\r\nimport { GRID_MATERIAL_CONFIG, DEFAULT_GRID_MATERIAL_CONFIG, ISdGridMaterialConfiguration } from './models/grid-configuration.model';\r\nimport { Subscription, isObservable, Observable, BehaviorSubject, Subject, combineLatest } from 'rxjs';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { SdFilterOperator, SdGridMaterialColumn } from './models/grid-column.model';\r\nimport { SdMaterialCellDefDirective } from './directives/sd-material-cell-def.directive';\r\nimport { debounceTime, filter, map, startWith, switchMap } from 'rxjs/operators';\r\nimport { SdGridFilter } from './components/grid-filter/grid-filter.component';\r\nimport { SdMaterialFilterDefDirective } from './directives/sd-material-filter-def.directive';\r\nimport { SdMaterialSubInformationDefDirective } from './directives/sd-material-sub-information-def.directive';\r\nimport { SdMaterialFooterDefDirective } from './directives/sd-material-footer-def.directive';\r\nimport { SdMaterialEmptyDataDefDirective } from './directives/sd-material-empty-data-def.directive';\r\nimport { SdPopupExport } from './components/popup-export/popup-export.component';\r\nimport { SdExportColumn, SdExportFile, SdExportService } from '@sd-angular/core/export';\r\nimport { SdGridConfiguration } from './models/grid-config.model';\r\nimport { SdGridConfigurationService } from './services/grid-configuration.service';\r\nimport { SdGridMaterialExportColumn } from './models/grid-export.model';\r\nimport { SdQuickAction } from '@sd-angular/core/quick-action';\r\nimport { SdGridMaterialItem, SdItem } from './models/grid.model';\r\nimport { SdColumnValuesPipe } from './pipes/column-values.pipe';\r\nimport { SdEditorHandlerColumnPipe } from './pipes/editor-handler-column.pipe';\r\nimport { SdScrollDirective } from '@sd-angular/core/common';\r\nimport { SdGridFilterService } from './services/grid-filter/grid-filter.service';\r\n\r\n@Component({\r\n selector: 'sd-grid-material',\r\n templateUrl: './grid-material.component.html',\r\n styleUrls: ['./grid-material.component.scss'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0', minHeight: '0', visibility: 'hidden' })),\r\n state('expanded', style({ height: '*', visibility: 'visible' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n ],\r\n})\r\nexport class SdGridMaterial<T = any> implements OnInit, AfterViewInit, OnDestroy {\r\n #gridId = uuid.v4();\r\n @ViewChild(SdScrollDirective) sdScroll: SdScrollDirective;\r\n filterRegister: SdGridMaterialFilterRegister;\r\n key = uuid.v4();\r\n gridConfigurationObserver: Observable<SdGridConfiguration>;\r\n @ViewChild(SdQuickAction) quickAction: SdQuickAction;\r\n\r\n gridFilter: SdGridFilter;\r\n @ViewChild(SdGridFilter) set _gridFilter(gridFilter: SdGridFilter) {\r\n if (gridFilter && this.gridFilter !== gridFilter) {\r\n this.gridFilter = gridFilter;\r\n // this.#subscription.add(gridFilter.filterChange.pipe(\r\n // filter(reload => reload),\r\n // debounceTime(500),\r\n // map(() => {\r\n // this.#paginator.pageIndex = 0;\r\n // this.#reload.next({\r\n // force: false,\r\n // source: 'FILTER'\r\n // });\r\n // }),\r\n // ).subscribe());\r\n }\r\n }\r\n\r\n @Input() set option(option: SdGridMaterialOption) {\r\n if (option) {\r\n option = this.#initConfiguration(option);\r\n this.gridOption = option;\r\n this.#loadCompleted = false;\r\n const configuration = this.gridConfigurationService.init(this.key, this.gridOption);\r\n this.gridConfigurationObserver = configuration.observer;\r\n configuration.load();\r\n this.#optionChanges.next(this.gridOption);\r\n }\r\n }\r\n #optionChanges = new Subject<SdGridMaterialOption>();\r\n\r\n gridOption: SdGridMaterialOption;\r\n #localItems: any[] = [];\r\n items: SdGridMaterialItem<T>[] = [];\r\n selectedItems: T[] = [];\r\n total: number;\r\n\r\n // Loading\r\n isLoading = false;\r\n\r\n // Paginate\r\n isHiddenPaginator = false;\r\n #paginator: MatPaginator;\r\n @ViewChild(MatPaginator) set paginator(paginator: MatPaginator) {\r\n if (paginator && this.#paginator !== paginator) {\r\n this.#paginator = paginator;\r\n this.#subscription.add(\r\n paginator.page\r\n .pipe(\r\n map(() => {\r\n this.#reload.next({\r\n force: false,\r\n });\r\n })\r\n )\r\n .subscribe()\r\n );\r\n }\r\n }\r\n\r\n // Sorting\r\n #sort: MatSort;\r\n @ViewChild(MatSort) set sort(sort: MatSort) {\r\n if (sort && this.#sort !== sort) {\r\n this.#sort = sort;\r\n this.#subscription.add(\r\n sort.sortChange\r\n .pipe(\r\n map(() => {\r\n this.#reload.next({\r\n force: false,\r\n });\r\n })\r\n )\r\n .subscribe()\r\n );\r\n }\r\n }\r\n\r\n // Export\r\n @ViewChild(SdPopupExport) sdPopupExport: SdPopupExport;\r\n\r\n // Sub Information\r\n @ContentChild(SdMaterialSubInformationDefDirective)\r\n sdSubInformation: SdMaterialSubInformationDefDirective;\r\n\r\n // Empty Data\r\n @ContentChild(SdMaterialEmptyDataDefDirective)\r\n sdEmptyData: SdMaterialEmptyDataDefDirective;\r\n\r\n // Cell Def\r\n @ContentChildren(SdMaterialCellDefDirective) sdCellDefs = new QueryList<SdMaterialCellDefDirective>();\r\n cellDef: {\r\n [column: string]: SdMaterialCellDefDirective;\r\n } = {};\r\n\r\n // Footer Def\r\n @ContentChildren(SdMaterialFooterDefDirective) sdFooterDefs = new QueryList<SdMaterialFooterDefDirective>();\r\n footerDef: {\r\n [column: string]: SdMaterialFooterDefDirective;\r\n } = {};\r\n hasFooter = false;\r\n\r\n // Filter Def\r\n @ContentChildren(SdMaterialFilterDefDirective) sdFilterDefs = new QueryList<SdMaterialFilterDefDirective>();\r\n filterDefs: SdMaterialFilterDefDirective[] = [];\r\n\r\n // Filter\r\n columnOperator: Record<string, SdFilterOperator> = {};\r\n columnFilter: Record<string, any> = {};\r\n // Subcription\r\n #subscription = new Subscription();\r\n #reload = new Subject<{\r\n force: boolean;\r\n }>();\r\n isExporting = false;\r\n isSelectAll = false;\r\n exportTitle = 'Export';\r\n #loadCompleted = false;\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n @Inject(GRID_MATERIAL_CONFIG)\r\n @Optional()\r\n public configuration: ISdGridMaterialConfiguration,\r\n private gridConfigurationService: SdGridConfigurationService,\r\n private exportService: SdExportService,\r\n private notifyService: SdNotifyService,\r\n private columnValuesPipe: SdColumnValuesPipe,\r\n private gridFilterService: SdGridFilterService,\r\n private editorHandlerColumnPipe: SdEditorHandlerColumnPipe\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.#initCellDef();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#subscription.add(\r\n this.#reload\r\n .pipe(\r\n debounceTime(200),\r\n switchMap(async data => {\r\n const filterInfo = this.#getFilter();\r\n const result = await this.#load(filterInfo, !this.#loadCompleted || data.force);\r\n this.#loadCompleted = true;\r\n return result;\r\n })\r\n )\r\n .subscribe(this.#render)\r\n );\r\n this.#subscription.add(this.sdCellDefs.changes.pipe(startWith([])).subscribe(this.#initCellDef));\r\n this.#subscription.add(this.sdFooterDefs.changes.pipe(startWith([])).subscribe(this.#initFooterDef));\r\n this.#subscription.add(this.sdFilterDefs.changes.pipe(startWith([])).subscribe(this.#initFilterDef));\r\n this.#subscription.add(\r\n combineLatest([\r\n this.#optionChanges.pipe(startWith(this.gridOption)),\r\n this.sdFilterDefs.changes.pipe(startWith(this.filterDefs)),\r\n ]).subscribe(() => {\r\n this.#loadFilterRegister();\r\n })\r\n );\r\n this.#subscription.add(\r\n this.#optionChanges.subscribe(() => {\r\n if (this.filterRegister) {\r\n this.#reload.next({\r\n force: true,\r\n });\r\n }\r\n })\r\n );\r\n this.ref.detectChanges();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n #initCellDef = () => {\r\n this.cellDef = {};\r\n for (const cellDef of this.sdCellDefs) {\r\n if (cellDef.sdMaterialCellDef) {\r\n this.cellDef[cellDef.sdMaterialCellDef] = cellDef;\r\n }\r\n }\r\n };\r\n\r\n #initFilterDef = () => {\r\n this.filterDefs = [];\r\n for (const filterDef of this.sdFilterDefs) {\r\n this.filterDefs.push(filterDef);\r\n }\r\n };\r\n\r\n #initFooterDef = () => {\r\n this.footerDef = {};\r\n this.hasFooter = false;\r\n for (const footerDef of this.sdFooterDefs) {\r\n if (footerDef.sdMaterialFooterDef) {\r\n this.hasFooter = true;\r\n this.footerDef[footerDef.sdMaterialFooterDef] = footerDef;\r\n }\r\n }\r\n };\r\n\r\n #filterExportInfo = (pageNumber: number, pageSize: number): SdGridMaterialFilterRequest => {\r\n const { columnOperator, columnFilter, externalFilter, filterDef } = this.filterRegister.value.get();\r\n return {\r\n columnOperator: columnOperator || {},\r\n rawColumnFilter: columnFilter || {},\r\n rawExternalFilter: externalFilter || {},\r\n rawFilterDef: filterDef || {},\r\n orderBy: this.#sort?.active || '',\r\n orderDirection: this.#sort?.direction || '',\r\n pageNumber,\r\n pageSize,\r\n isExported: true,\r\n };\r\n };\r\n\r\n #initConfiguration = (option: SdGridMaterialOption) => {\r\n // Init pagination\r\n option.paginate = {\r\n hidden: option?.paginate?.hidden,\r\n pageSize: option?.paginate?.pageSize ?? this.configuration?.paginate?.pageSize ?? DEFAULT_GRID_MATERIAL_CONFIG.paginate?.pageSize,\r\n pages: option?.paginate?.pages ?? this.configuration?.paginate?.pages ?? DEFAULT_GRID_MATERIAL_CONFIG.paginate?.pages,\r\n showFirstLastButtons: option?.paginate?.showFirstLastButtons ?? false,\r\n };\r\n for (const column of option.columns || []) {\r\n if (column.filter?.operator?.enable && !column.filter?.operator?.list?.length) {\r\n if (column.type === 'string') {\r\n column.filter.operator.list = this.configuration?.filter?.operator?.defaultListString || [];\r\n }\r\n if (column.type === 'number') {\r\n column.filter.operator.list = this.configuration?.filter?.operator?.defaultListNumber || [];\r\n }\r\n if (column.type === 'values') {\r\n column.filter.operator.list = this.configuration?.filter?.operator?.defaultListValues || [];\r\n }\r\n if (column.type === 'date' || column.type === 'datetime') {\r\n column.filter.operator.list = this.configuration?.filter?.operator?.defaultListDate || [];\r\n }\r\n }\r\n }\r\n return option;\r\n };\r\n\r\n #isFirstLoad = true;\r\n #loadFilterRegister = () => {\r\n // Init filter\r\n if (this.gridOption) {\r\n if (!this.filterRegister) {\r\n this.filterRegister = this.gridFilterService.register(this.gridOption?.filter, {\r\n id: this.#gridId,\r\n columns: this.gridOption?.columns,\r\n externalFilters: this.gridOption?.filter?.externalFilters,\r\n filterDefs: this.filterDefs,\r\n });\r\n this.#subscription.add(\r\n this.filterRegister.value.observer\r\n .pipe(\r\n debounceTime(500),\r\n map(filterValue => {\r\n const { columnOperator, columnFilter, notReload } = filterValue;\r\n this.columnOperator = columnOperator || {};\r\n this.columnFilter = columnFilter;\r\n if (this.#isFirstLoad) {\r\n this.#isFirstLoad = false;\r\n this.#paginator.pageIndex = 0;\r\n this.#reload.next({\r\n force: true,\r\n });\r\n } else if (!notReload) {\r\n this.#paginator.pageIndex = 0;\r\n this.#reload.next({\r\n force: false,\r\n });\r\n }\r\n })\r\n )\r\n .subscribe()\r\n );\r\n }\r\n }\r\n };\r\n\r\n #filterLocal = (localItems: any[], filterInfo: SdGridMaterialFilterRequest) => {\r\n const { columns } = this.gridOption;\r\n const { rawColumnFilter, orderBy, orderDirection, pageSize, pageNumber } = filterInfo;\r\n const items = localItems.filter(item => {\r\n for (const column of columns) {\r\n const { field, type } = column;\r\n const filterValue: string = (rawColumnFilter[field] || '').toString().trim().toLowerCase();\r\n const columnValue: string = (item[field] || '').toString().trim().toLowerCase();\r\n if (filterValue) {\r\n if (!columnValue && type !== 'datetime' && type !== 'date' && type !== 'time') {\r\n return false;\r\n }\r\n if (type === 'string') {\r\n if (columnValue.indexOf(filterValue) === -1) {\r\n return false;\r\n }\r\n } else if (type === 'values') {\r\n if (columnValue !== filterValue) {\r\n return false;\r\n }\r\n } else if (type === 'number') {\r\n const fValue = +filterValue.replace('>=', '').replace('<=', '').replace('>', '').replace('<', '');\r\n const cValue = +columnValue;\r\n if (fValue || fValue === 0) {\r\n if (!cValue && cValue !== 0) {\r\n return false;\r\n }\r\n if (filterValue.indexOf('>=') > -1 && cValue < fValue) {\r\n return false;\r\n } else if (filterValue.indexOf('<=') > -1 && cValue > fValue) {\r\n return false;\r\n } else if (filterValue.indexOf('<') > -1 && cValue >= fValue) {\r\n return false;\r\n } else if (filterValue.indexOf('>') > -1 && cValue <= fValue) {\r\n return false;\r\n } else if (cValue !== fValue) {\r\n return false;\r\n }\r\n }\r\n } else if (type === 'bool') {\r\n if (filterValue === '1' && columnValue !== '1' && columnValue !== 'true') {\r\n return false;\r\n } else if (filterValue === '0' && columnValue !== '0' && columnValue !== 'false') {\r\n return false;\r\n }\r\n } else if (type === 'datetime' || type === 'date' || type === 'time') {\r\n const from = rawColumnFilter[field]?.from ?? rawColumnFilter[field];\r\n const to = rawColumnFilter[field]?.to ?? rawColumnFilter[field];\r\n const fromDate = Date.begin(from);\r\n const toDate = Date.end(to);\r\n if (fromDate || toDate) {\r\n if (!columnValue) {\r\n return false;\r\n }\r\n\r\n const columnTime = new Date(columnValue).getTime();\r\n const fromDateTime = fromDate?.getTime() || null;\r\n const toDateTime = toDate?.getTime() || null;\r\n\r\n if (fromDateTime && fromDateTime > columnTime) {\r\n return false;\r\n }\r\n if (toDateTime && columnTime > toDateTime) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n });\r\n // Sort\r\n if (orderBy && orderDirection) {\r\n const column = columns.find(e => e.field === orderBy);\r\n if (column) {\r\n const { type, field } = column;\r\n items.sort((current, next) => {\r\n if (type === 'number') {\r\n return (current[field] || 0) - (next[field] || 0);\r\n }\r\n if (type === 'date' || type === 'datetime' || type === 'time') {\r\n const d1 = new Date(current[field] || '').getTime();\r\n const d2 = new Date(current[field] || '').getTime();\r\n return d1 - d2;\r\n }\r\n const s1 = (current[field] || '').toString();\r\n const s2 = (next[field] || '').toString();\r\n if (s1 > s2) {\r\n return 1;\r\n }\r\n if (s1 < s2) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n if (orderDirection === 'desc') {\r\n items.reverse();\r\n }\r\n }\r\n }\r\n return {\r\n items: items.filter((item, index) => {\r\n return index >= pageNumber * pageSize && index < (pageNumber + 1) * pageSize;\r\n }),\r\n total: items.length,\r\n };\r\n };\r\n\r\n #getFilter = (): SdGridMaterialFilterRequest => {\r\n const { columnOperator, columnFilter, externalFilter, filterDef } = this.filterRegister.value.get();\r\n return {\r\n columnOperator: columnOperator || {},\r\n rawColumnFilter: columnFilter || {},\r\n rawExternalFilter: externalFilter || {},\r\n rawFilterDef: filterDef || {},\r\n orderBy: this.#sort?.active || '',\r\n orderDirection: this.#sort?.direction || '',\r\n pageNumber: this.#paginator?.pageIndex || 0,\r\n pageSize: this.#paginator?.pageSize || this.gridOption?.paginate?.pageSize || 50,\r\n };\r\n };\r\n\r\n #load = async (filterReq: SdGridMaterialFilterRequest, force: boolean = true) => {\r\n this.isLoading = true;\r\n if (this.gridOption.type === 'server') {\r\n try {\r\n let result = this.gridOption.items(filterReq);\r\n if (isObservable(result)) {\r\n result = result.toPromise();\r\n }\r\n const data = await result;\r\n return {\r\n items: data?.items || [],\r\n total: data?.total || 0,\r\n };\r\n } catch (error) {\r\n console.error(error);\r\n this.notifyService.notify.warning('Có lỗi xảy ra');\r\n return {\r\n items: [],\r\n total: 0,\r\n };\r\n } finally {\r\n this.isLoading = false;\r\n this.ref.detectChanges();\r\n }\r\n } else {\r\n if (force) {\r\n try {\r\n const results = this.gridOption.items();\r\n if (results instanceof Promise) {\r\n this.#localItems = (await results) || [];\r\n } else {\r\n this.#localItems = results || [];\r\n }\r\n if (!Array.isArray(this.#localItems)) {\r\n this.notifyService.notify.warning('Dữ liệu không phải là một mảng');\r\n this.#localItems = [];\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n this.notifyService.notify.warning('Có lỗi xảy ra');\r\n this.#localItems = [];\r\n } finally {\r\n this.isLoading = false;\r\n this.ref.detectChanges();\r\n }\r\n }\r\n this.isLoading = false;\r\n this.ref.detectChanges();\r\n return this.#filterLocal(this.#localItems, filterReq);\r\n }\r\n };\r\n\r\n #render = async (args: { items: any[]; total: number }) => {\r\n this.sdScroll?.scrollTop();\r\n this.items = args?.items || [];\r\n this.total = args?.total || 0;\r\n // this.isHiddenPaginator = this.filterInfo.pageNumber === 0 && this.total <= this.filterInfo.pageSize;\r\n this.items.forEach((item: SdItem) => {\r\n item.originItem = { ...item };\r\n });\r\n await this.gridOption?.reload?.onReload?.(this.items);\r\n this.isSelectAll = this.items.every(e => e.isSelected);\r\n this.#updateSelectedItems();\r\n };\r\n\r\n reload = async (force: boolean = true) => {\r\n this.gridFilter?.updateFilter?.();\r\n const data = await this.#load(this.#getFilter(), force);\r\n this.#render(data);\r\n };\r\n\r\n #exportedItems = async (pageNumber: number = 0, pageSize: number = 10000) => {\r\n if (this.gridOption.export?.items) {\r\n // const exportedItems = this.gridOption.export?.items(this.#filterExportInfo(pageNumber, pageSize));\r\n let result = this.gridOption.export?.items(this.#filterExportInfo(pageNumber, pageSize));\r\n if (Array.isArray(result)) {\r\n return result;\r\n }\r\n if (isObservable<any[]>(result)) {\r\n result = result.toPromise();\r\n }\r\n if (isObservable<{ items: any[]; total: number }>(result)) {\r\n result = result.toPromise();\r\n }\r\n return await result;\r\n } else {\r\n const filterInfo = this.#filterExportInfo(pageNumber, pageSize);\r\n if (this.gridOption.type === 'server') {\r\n let result = this.gridOption.items(filterInfo);\r\n if (isObservable(result)) {\r\n result = result.toPromise();\r\n }\r\n return await result;\r\n } else {\r\n let exportedItems: any[] = [];\r\n if (typeof this.gridOption.items === 'function') {\r\n const results = this.gridOption.items();\r\n if (results instanceof Promise) {\r\n exportedItems = await results;\r\n } else {\r\n exportedItems = results;\r\n }\r\n } else {\r\n exportedItems = this.gridOption.items;\r\n }\r\n return this.#filterLocal(exportedItems, filterInfo);\r\n }\r\n }\r\n };\r\n\r\n drop(event: CdkDragDrop<string[]>, columns: string[]) {\r\n moveItemInArray(columns, event.previousIndex, event.currentIndex);\r\n }\r\n\r\n #allColumns = (): SdGridMaterialColumn[] => {\r\n const columns: SdGridMaterialColumn[] = [];\r\n this.gridOption.columns\r\n .filter(e => !e.export?.disabled)\r\n .forEach(column => {\r\n if (column.type === 'image') {\r\n return;\r\n }\r\n if (column.type === 'children') {\r\n column.children\r\n ?.filter(e => !e.export?.disabled)\r\n .forEach(childColumn => {\r\n if (childColumn.type === 'image') {\r\n return;\r\n }\r\n columns.push(childColumn);\r\n });\r\n return;\r\n }\r\n if (column.type === 'children-col') {\r\n column.children\r\n ?.filter(e => !e.export?.disabled)\r\n .forEach(childColumn => {\r\n if (childColumn.type === 'image') {\r\n return;\r\n }\r\n columns.push(childColumn);\r\n });\r\n return;\r\n }\r\n columns.push(column);\r\n });\r\n return columns;\r\n };\r\n\r\n #allExportedColumns = (): SdGridMaterialExportColumn[] => {\r\n return this.gridOption.export?.columns?.filter(e => !e.export?.disabled) || [];\r\n };\r\n\r\n #onExport = async (args: { file: SdExportFile; columns: SdExportColumn[]; isCSV: boolean }) => {\r\n try {\r\n const { file, isCSV } = args;\r\n let { columns } = args;\r\n const pageSize = this.gridOption?.export?.maxItemsPerRequest || 1000;\r\n const batch = this.gridOption?.export?.batch || 1;\r\n let total = this.total;\r\n let pageNumber = 0;\r\n let exportItems = [];\r\n this.isExporting = true;\r\n const items: any[] = [];\r\n let promises: Promise<\r\n | any[]\r\n | {\r\n items: any[];\r\n total: number;\r\n }\r\n >[] = [];\r\n const handleData = async () => {\r\n const results = await Promise.all(promises);\r\n promises = [];\r\n exportItems = [];\r\n for (const result of results) {\r\n if ('items' in result) {\r\n exportItems = [...exportItems, ...result.items];\r\n total = result.total;\r\n } else {\r\n exportItems = [...exportItems, ...result];\r\n }\r\n }\r\n if (this.gridOption.export?.mapping) {\r\n const results = this.gridOption.export.mapping(exportItems);\r\n if (results instanceof Promise) {\r\n exportItems = await results;\r\n } else {\r\n exportItems = results;\r\n }\r\n }\r\n const totalPage = total / pageSize;\r\n const percent = Math.round(((pageNumber - 1) * 100.0) / totalPage);\r\n this.exportTitle = `Exporting...${percent}%`;\r\n const allColumns = this.#allColumns();\r\n const allExportedColumns = this.#allExportedColumns();\r\n for (const item of exportItems) {\r\n const obj: any = {};\r\n const handle = async (exportColumn: SdExportColumn) => {\r\n obj[exportColumn.field] = item[exportColumn.field];\r\n const column = allColumns.find(e => e.field === exportColumn.field);\r\n const exportedColumn = allExportedColumns.find(e => e.field === exportColumn.field);\r\n if (exportedColumn?.transform) {\r\n obj[exportedColumn.field] = exportedColumn.transform(item[exportedColumn.field], item);\r\n return;\r\n }\r\n if (!column) {\r\n return;\r\n }\r\n if (column.type === 'children' || column.type === 'children-col') {\r\n column?.children.forEach(childColumn => handle(childColumn));\r\n return;\r\n }\r\n if (!columns.some(e => e.field === column.field)) {\r\n return;\r\n }\r\n if (column.transform) {\r\n const transform = column.transform(item[column.field], item, {\r\n isExport: true,\r\n });\r\n if (transform instanceof Promise) {\r\n obj[column.field] = await transform;\r\n } else {\r\n obj[column.field] = transform;\r\n }\r\n obj[column.field] = obj[column.field] ?? '';\r\n } else if (item[column.field] === undefined || item[column.field] === null || item[column.field] === '') {\r\n obj[column.field] = '';\r\n } else if (column.type === 'string' || column.type === 'number') {\r\n // Nếu cell là string hoặc number thì gán bằng chính nó\r\n obj[column.field] = item[column.field];\r\n } else if (column.type === 'bool') {\r\n // Nếu là bool thì gán bằng giá trị trueValue và falseValue (nếu có), mặc định là TRUE/FALSE\r\n if (item[column.field]) {\r\n obj[column.field] = column.option?.displayOnTrue || 'True';\r\n } else if (obj[column.field] !== undefined && obj[column.field] !== null) {\r\n obj[column.field] = column.option?.displayOnFalse || 'False';\r\n }\r\n } else if (column.type === 'date') {\r\n let date = item[column.field];\r\n const { transformDate } = column;\r\n if (transformDate) {\r\n date = transformDate(date, item);\r\n }\r\n // Nếu là date thì convert theo đúng format\r\n obj[column.field] = Date.toFormat(date, 'dd/MM/yyyy');\r\n } else if (column.type === 'datetime') {\r\n let date = item[column.field];\r\n const { transformDate } = column;\r\n if (transformDate) {\r\n date = transformDate(date, item);\r\n }\r\n // Nếu là datetime thì convert theo đúng format\r\n obj[column.field] = Date.toFormat(date, 'dd/MM/yyyy HH:mm');\r\n } else if (column.type === 'time') {\r\n let date = item[column.field];\r\n const { transformDate } = column;\r\n if (transformDate) {\r\n date = transformDate(date, item);\r\n }\r\n // Nếu là time thì convert theo đúng format\r\n obj[column.field] = Date.toFormat(date, 'HH:mm');\r\n } else if (column.type === 'values') {\r\n // Nếu là values thì lấy giá trị của value được chọn\r\n obj[column.field] = await this.columnValuesPipe.transform(item[column.field], column);\r\n } else {\r\n obj[column.field] = item[column.field];\r\n }\r\n };\r\n // this.gridOption.columns.forEach(handle);\r\n for (const exportColumn of columns) {\r\n await handle(exportColumn);\r\n }\r\n items.push(obj);\r\n }\r\n };\r\n while (pageNumber * pageSize < total) {\r\n promises.push(this.#exportedItems(pageNumber, pageSize));\r\n pageNumber++;\r\n if (promises.length < batch) {\r\n continue;\r\n }\r\n await handleData();\r\n }\r\n if (promises.length > 0) {\r\n await handleData();\r\n }\r\n if (!file?.filePath) {\r\n if (isCSV) {\r\n await this.exportService.exportCSV({\r\n columns,\r\n items,\r\n fileName: this.gridOption?.export?.fileName,\r\n });\r\n return;\r\n }\r\n const sheets: {\r\n name: string;\r\n items: any[];\r\n fields: string[];\r\n }[] = [];\r\n if (Array.isArray(this.gridOption?.export?.sheets)) {\r\n for (const sheet of this.gridOption.export.sheets) {\r\n if (sheet.name && sheet.items && sheet.fields) {\r\n if (Array.isArray(sheet.items)) {\r\n sheets.push({\r\n name: sheet.name,\r\n items: sheet.items,\r\n fields: sheet.fields,\r\n });\r\n } else {\r\n sheets.push({\r\n name: sheet.name,\r\n items: await sheet.items(),\r\n fields: sheet.fields,\r\n });\r\n }\r\n }\r\n }\r\n }\r\n await this.exportService.export({\r\n columns,\r\n items,\r\n fileName: this.gridOption?.export?.fileName,\r\n sheets,\r\n });\r\n return;\r\n }\r\n await this.exportService.exportByTemplate({\r\n filePath: file.filePath,\r\n fileName: file.fileName,\r\n columns,\r\n items,\r\n });\r\n } finally {\r\n this.isExporting = false;\r\n this.exportTitle = `Export`;\r\n this.ref.detectChanges();\r\n }\r\n };\r\n\r\n onExport = async (args: { file: SdExportFile; columns: SdExportColumn[]; isCSV: boolean }) => {\r\n this.#onExport(args);\r\n };\r\n\r\n onFilterChange = () => {\r\n this.gridFilter?.updateFilter?.();\r\n if (this.gridOption?.filter?.inlineColumn) {\r\n this.filterRegister.value.set({\r\n columnOperator: this.columnOperator || {},\r\n columnFilter: this.columnFilter,\r\n });\r\n } else {\r\n this.filterRegister.value.set({});\r\n }\r\n };\r\n\r\n onExpand = async (rowData: SdGridMaterialItem<T>) => {\r\n if (this.gridOption.subInformation?.always) {\r\n return;\r\n }\r\n if (rowData.isExpanding) {\r\n return;\r\n }\r\n if (rowData.isExpanded) {\r\n rowData.isExpanded = false;\r\n return;\r\n }\r\n const data = this.gridOption?.subInformation?.onExpand?.(rowData);\r\n if (!this.gridOption.subInformation?.multiple) {\r\n this.items.forEach(item => (item.isExpanding = item.isExpanded = false));\r\n }\r\n if (data instanceof Promise) {\r\n rowData.isExpanding = true;\r\n data\r\n .then(res => {\r\n rowData.expandDetail = res;\r\n rowData.isExpanded = true;\r\n })\r\n .finally(() => (rowData.isExpanding = false));\r\n } else {\r\n rowData.expandDetail = data;\r\n rowData.isExpanded = true;\r\n }\r\n };\r\n\r\n onSelect = (rowData: SdGridMaterialItem<T>) => {\r\n if (rowData?.sdGroup?.items?.length) {\r\n rowData?.sdGroup?.items.forEach(e => (e.isSelected = rowData.isSelected));\r\n this.gridOption.selection?.onSelect?.(\r\n rowData,\r\n this.items.filter(e => e.isSelected)\r\n );\r\n this.isSelectAll = this.items.every(e => e.isSelected);\r\n this.#updateSelectedItems();\r\n } else {\r\n if (this.gridOption.selection?.single) {\r\n this.items.filter(e => e !== rowData).forEach(e => (e.isSelected = false));\r\n this.#updateSelectedItems();\r\n return;\r\n }\r\n this.gridOption.selection?.onSelect?.(\r\n rowData,\r\n this.items.filter(e => e.isSelected)\r\n );\r\n this.isSelectAll = this.items.every(e => e.isSelected);\r\n this.#updateSelectedItems();\r\n }\r\n };\r\n\r\n onSelectAll = () => {\r\n this.items?.forEach(e => {\r\n if (e.selectable && (!this.gridOption?.selection?.actions?.length || e.actions?.length)) {\r\n e.isSelected = this.isSelectAll;\r\n }\r\n });\r\n this.gridOption.selection?.onSelectAll?.(this.items.filter(e => e.isSelected));\r\n this.#updateSelectedItems();\r\n };\r\n\r\n onClearSelection = (items?: SdGridMaterialItem<T>[]) => {\r\n items = items || this.items;\r\n this.isSelectAll = false;\r\n items?.forEach(e => (e.isSelected = false));\r\n this.#updateSelectedItems();\r\n };\r\n\r\n #updateSelectedItems = () => {\r\n this.selectedItems = this.items\r\n .filter(item => item.isSelected)\r\n .map(item => {\r\n const {\r\n isSelected,\r\n isExpanded,\r\n isExpanding,\r\n expandDetail,\r\n editorErrorMessage,\r\n editorHandlerColumn,\r\n editorHandlerRow,\r\n editorStatus,\r\n originItem,\r\n sdId,\r\n sdVersion,\r\n // Giữ lại các trường thông tin cho selectable (action, groupedAction, sdGroup, selectable)\r\n ...result\r\n } = item;\r\n return result;\r\n }) as T[];\r\n this.ref.detectChanges();\r\n };\r\n\r\n clearFilter = () => {\r\n this.filterRegister.value.remove();\r\n };\r\n\r\n setFilter = (args: { columnFilter?: Record<string, any>; externalFilter?: Record<string, any>; filterDef?: Record<string, any> }) => {\r\n const { columnFilter, externalFilter, filterDef } = args || {};\r\n if (this.gridOption?.filter?.inlineColumn && columnFilter) {\r\n this.columnFilter = columnFilter;\r\n }\r\n this.filterRegister.value.set({\r\n columnFilter,\r\n externalFilter,\r\n filterDef,\r\n });\r\n };\r\n\r\n onCreate = () => {\r\n const { type, editor, columns } = this.gridOption;\r\n if (!editor?.addable) {\r\n return;\r\n }\r\n const item: SdGridMaterialItem = {};\r\n // Gán giá trị mặc định\r\n columns.forEach(column => {\r\n if (column.type === 'values') {\r\n item[column.field] = '';\r\n } else if (column.type === 'bool') {\r\n item[column.field] = true;\r\n } else if (column.type === 'number') {\r\n item[column.field] = null;\r\n }\r\n });\r\n if (type === 'local') {\r\n editor.onAdd?.(item, this.#localItems);\r\n } else {\r\n editor.onAdd?.(item, this.items);\r\n }\r\n // Đưa item lên dòng đầu tiên nếu type khác popup\r\n if (editor.type !== 'popup') {\r\n if (editor.addToLast) {\r\n if (type === 'local') {\r\n this.#localItems = [...this.#localItems, item];\r\n }\r\n this.items = [...this.items, item];\r\n } else {\r\n if (type === 'local') {\r\n this.#localItems = [item, ...this.#localItems];\r\n }\r\n this.items = [item, ...this.items];\r\n }\r\n }\r\n item.editorStatus = 'create';\r\n item.editorHandlerRow = {\r\n temporary: { ...item },\r\n };\r\n };\r\n onUpdate = (item: SdItem) => {\r\n const { editor } = this.gridOption;\r\n item.editorStatus = 'update';\r\n item.editorHandlerRow = {\r\n ...item.editorHandlerRow,\r\n temporary: { ...item },\r\n };\r\n // this.generateEditorHanlder(item);\r\n if (editor.type === 'popup') {\r\n // Xử lý case popup\r\n // this.sdGridPopupEditor.open(item, columns, isModified);\r\n }\r\n this.ref.detectChanges();\r\n };\r\n onSave = async (item: SdGridMaterialItem<T>) => {\r\n if (item.editorHandlerRow.saving) {\r\n return;\r\n }\r\n const { editor } = this.gridOption;\r\n try {\r\n item.editorHandlerRow.saving = true;\r\n if (editor.validate) {\r\n const result = editor.validate(item, this.items.indexOf(item));\r\n if (result instanceof Promise) {\r\n const message = await result;\r\n if (message) {\r\n throw message;\r\n }\r\n } else {\r\n if (result) {\r\n throw result;\r\n }\r\n }\r\n }\r\n if (editor.onSave) {\r\n const result = editor.onSave(item);\r\n if (result instanceof Promise) {\r\n await result;\r\n }\r\n }\r\n\r\n if (item.editorStatus === 'create' && editor.type === 'popup') {\r\n if (this.gridOption.type === 'local') {\r\n this.items.splice(0, 0, item);\r\n }\r\n // this.viewItems.splice(0, 0, item);\r\n }\r\n\r\n item.editorStatus = undefined;\r\n // this.generateEditorHanlder(item);\r\n } catch (err) {\r\n this.notifyService.notify.warning(err);\r\n } finally {\r\n item.editorHandlerRow.saving = false;\r\n this.ref.detectChanges();\r\n }\r\n };\r\n onCancel = (item: SdGridMaterialItem<T>) => {\r\n const { editor } = this.gridOption;\r\n if (editor.type === 'inline') {\r\n if (this.gridOption.type === 'local') {\r\n const idx2 = this.#localItems.indexOf(item);\r\n this.#localItems.splice(idx2, 1);\r\n this.#localItems = [...this.#localItems];\r\n }\r\n const idx1 = this.items.indexOf(item);\r\n this.items.splice(idx1, 1);\r\n this.items = [...this.items];\r\n if (this.gridOption.type === 'local') {\r\n editor?.onCancel?.(item, this.#localItems);\r\n } else {\r\n editor?.onCancel?.(item, this.items);\r\n }\r\n this.ref.detectChanges();\r\n return;\r\n }\r\n if (editor.type === 'focus') {\r\n if (item.editorStatus === 'create') {\r\n if (this.gridOption.type === 'local') {\r\n const idx2 = this.#localItems.indexOf(item);\r\n this.#localItems.splice(idx2, 1);\r\n this.#localItems = [...this.#localItems];\r\n }\r\n const idx1 = this.items.indexOf(item);\r\n this.items.splice(idx1, 1);\r\n this.items = [...this.items];\r\n } else {\r\n Object.assign(item, item.editorHandlerRow.temporary);\r\n }\r\n }\r\n item.editorStatus = undefined;\r\n this.ref.detectChanges();\r\n };\r\n onRemove = async (item: SdGridMaterialItem<T>) => {\r\n const { editor } = this.gridOption;\r\n if (editor?.beforeRemove) {\r\n const beforeRemove = editor?.beforeRemove(item);\r\n if (beforeRemove instanceof Promise) {\r\n const result = await beforeRemove;\r\n if (!result) {\r\n return;\r\n }\r\n } else {\r\n if (!beforeRemove) {\r\n return;\r\n }\r\n }\r\n }\r\n if (editor.type === 'inline') {\r\n if (this.gridOption.type === 'local') {\r\n const idx2 = this.#localItems.indexOf(item);\r\n this.#localItems.splice(idx2, 1);\r\n this.#localItems = [...this.#localItems];\r\n }\r\n const idx1 = this.items.indexOf(item);\r\n this.items.splice(idx1, 1);\r\n this.items = [...this.items];\r\n if (this.gridOption.type === 'local') {\r\n editor?.onRemove?.(item, this.#localItems);\r\n } else {\r\n editor?.onRemove?.(item, this.items);\r\n }\r\n this.ref.detectChanges();\r\n return;\r\n }\r\n };\r\n\r\n add = (idx: number, item: T) => {\r\n if (this.items.length > idx) {\r\n this.items.splice(idx, 0, item);\r\n this.items = [...this.items];\r\n } else {\r\n this.items = [...this.items, item];\r\n }\r\n };\r\n\r\n update = (idx: number, item: T) => {\r\n if (this.items[idx]) {\r\n Object.assign(this.items[idx], item);\r\n this.items = [...this.items];\r\n }\r\n };\r\n\r\n remove = (idx: number) => {\r\n if (this.items[idx]) {\r\n this.items.splice(idx, 1);\r\n this.items = [...this.items];\r\n }\r\n };\r\n\r\n refreshItem = (idx: number) => {\r\n const item = this.items[idx];\r\n this.editorHandlerColumnPipe.transform(item.sdVersion, item, this.gridOption);\r\n };\r\n\r\n get editedItems(): (T & { editorErrorMessage: string })[] {\r\n return this.items\r\n .filter(item => {\r\n if (!item.originItem) {\r\n return true;\r\n }\r\n if (Object.keys(item.originItem).some(key => item.originItem[key] !== item[key])) {\r\n return true;\r\n }\r\n return false;\r\n })\r\n .map(item => {\r\n const {\r\n editorStatus,\r\n editorHandlerRow,\r\n editorHandlerColumn,\r\n editorErrorMessage,\r\n expandDetail,\r\n isExpanded,\r\n isExpanding,\r\n isSelected,\r\n originItem,\r\n sdId,\r\n sdVersion,\r\n selectable,\r\n actions,\r\n groupedActions,\r\n sdGroup,\r\n temporary,\r\n ...result\r\n } = item;\r\n return {\r\n ...result,\r\n editorErrorMessage,\r\n } as any;\r\n });\r\n }\r\n\r\n get gridItems(): T[] {\r\n return this.items.map(item => {\r\n const {\r\n editorStatus,\r\n editorHandlerRow,\r\n editorHandlerColumn,\r\n expandDetail,\r\n isExpanded,\r\n isExpanding,\r\n isSelected,\r\n originItem,\r\n sdId,\r\n sdVersion,\r\n selectable,\r\n actions,\r\n groupedActions,\r\n sdGroup,\r\n temporary,\r\n ...result\r\n } = item;\r\n return result as T;\r\n });\r\n }\r\n\r\n get localItems(): T[] {\r\n return this.#localItems;\r\n }\r\n\r\n get localGridItems(): T[] {\r\n return this.#localItems.map(item => {\r\n const {\r\n editorStatus,\r\n editorHandlerRow,\r\n editorHandlerColumn,\r\n expandDetail,\r\n isExpanded,\r\n isExpanding,\r\n isSelected,\r\n originItem,\r\n sdId,\r\n sdVersion,\r\n selectable,\r\n actions,\r\n groupedActions,\r\n sdGroup,\r\n temporary,\r\n ...result\r\n } = item;\r\n return result as T;\r\n });\r\n }\r\n\r\n detectChanges = () => this.ref.detectChanges();\r\n\r\n onOperatorChange = (column: SdGridMaterialColumn, operator: SdFilterOperator) => {\r\n this.gridOption?.filter?.operatorChange?.(column, operator);\r\n }\r\n\r\n get isEditing() {\r\n return this.items.some(e => e.editorStatus !== undefined);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialCommand, SdGridMaterialCommandNormal } from '../models/grid-command.model';\r\n@Pipe({\r\n name: 'commandFilter'\r\n})\r\nexport class SdCommandFilterPipe implements PipeTransform {\r\n async transform(item: any, commands: SdGridMaterialCommand[]): Promise<SdGridMaterialCommand[]> {\r\n const results: SdGridMaterialCommand[] = [];\r\n if (!commands) {\r\n return results;\r\n }\r\n for (const command of commands) {\r\n let flag = false;\r\n const { hidden } = command;\r\n if (hidden === undefined) {\r\n flag = true;\r\n } else if (typeof (hidden) === 'boolean') {\r\n if (!hidden) {\r\n flag = true;\r\n }\r\n } else {\r\n const isHidden = hidden(item);\r\n if (isHidden instanceof Promise) {\r\n if (!await isHidden) {\r\n flag = true;\r\n }\r\n } else {\r\n if (!isHidden) {\r\n flag = true;\r\n }\r\n }\r\n }\r\n if (flag) {\r\n if ('children' in command) {\r\n const children: SdGridMaterialCommandNormal[] = [];\r\n for (const childCommand of command.children) {\r\n const { hidden } = childCommand;\r\n if (hidden === undefined) {\r\n children.push(childCommand);\r\n } else if (typeof (hidden) === 'boolean') {\r\n if (!hidden) {\r\n children.push(childCommand);\r\n }\r\n } else {\r\n const isHidden = hidden(item);\r\n if (isHidden instanceof Promise) {\r\n if (!await isHidden) {\r\n children.push(childCommand);\r\n }\r\n } else {\r\n if (!isHidden) {\r\n children.push(childCommand);\r\n }\r\n }\r\n }\r\n }\r\n if (children.length > 0) {\r\n results.push({ ...command, children });\r\n }\r\n } else {\r\n results.push(command);\r\n }\r\n }\r\n }\r\n return results;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialCommand } from '../models/grid-command.model';\r\n@Pipe({\r\n name: 'commandDisable'\r\n})\r\nexport class SdCommandDisablePipe implements PipeTransform {\r\n transform(item: any, command: SdGridMaterialCommand): boolean {\r\n if (!command?.disabled) {\r\n return false;\r\n }\r\n if (typeof (command.disabled) === 'boolean') {\r\n return command.disabled;\r\n }\r\n return command.disabled(item);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialCommand } from '../models/grid-command.model';\r\n@Pipe({\r\n name: 'commandIcon'\r\n})\r\nexport class SdCommandIconPipe implements PipeTransform {\r\n transform(command: SdGridMaterialCommand, item: any): string {\r\n if (!command?.icon) {\r\n return '';\r\n }\r\n if (typeof (command.icon) === 'string') {\r\n return command.icon;\r\n }\r\n return command.icon(item);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialCommand } from '../models/grid-command.model';\r\n@Pipe({\r\n name: 'commandTitle'\r\n})\r\nexport class SdCommandTitlePipe implements PipeTransform {\r\n transform(command: SdGridMaterialCommand, item: any): string {\r\n if (!command?.title) {\r\n return '';\r\n }\r\n if (typeof (command.title) === 'string') {\r\n return command.title;\r\n }\r\n return command.title(item);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { SdGridMaterialColumn } from '../models/grid-column.model';\r\n@Pipe({\r\n name: 'columnHtmlTemplate'\r\n})\r\nexport class SdColumnHtmlTemplatePipe implements PipeTransform {\r\n private isMobileOrTablet = false;\r\n constructor(deviceService: DeviceDetectorService) {\r\n this.isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n transform(value: any, rowData: any, column: SdGridMaterialColumn): string {\r\n if (typeof (column?.htmlTemplate) !== 'function') {\r\n return value;\r\n }\r\n return column?.htmlTemplate(value, rowData, this.isMobileOrTablet);\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, QueryList } from '@angular/core';\r\nimport { SdGridMaterialColumn } from '../../models/grid-column.model';\r\nimport { SdGridMaterialOption } from '../../models/grid-option.model';\r\n\r\n@Component({\r\n selector: 'sd-desktop-cell-view',\r\n templateUrl: './desktop-cell-view.component.html',\r\n styleUrls: ['./desktop-cell-view.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdDesktopCellView {\r\n @Input() sdId: string;\r\n @Input() key: string;\r\n @Input() column: SdGridMaterialColumn;\r\n @Input() item: any;\r\n @Input() gridOption: SdGridMaterialOption;\r\n constructor(\r\n ) { }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialColumn } from '../models/grid-column.model';\r\nimport { SdColumnValuesPipe } from './column-values.pipe';\r\n@Pipe({\r\n name: 'columnTransform'\r\n})\r\nexport class SdColumnTransformPipe implements PipeTransform {\r\n constructor(private columnValuesPipe: SdColumnValuesPipe) { }\r\n async transform(value: any, rowData: any, column: SdGridMaterialColumn, key?: string): Promise<string> {\r\n if (column?.transform) {\r\n return column.transform(value, rowData);\r\n }\r\n if (column.type === 'values') {\r\n return await this.columnValuesPipe.transform(value, column);\r\n }\r\n if (column.type === 'number' && Number.isNumber(value)) {\r\n return Number.toVNCurrency(value); // this.decimalPipe.transform(value, '1.0-2');\r\n }\r\n if (column.type === 'bool') {\r\n return value === true ? (column.option?.displayOnTrue || 'True') : (column.option?.displayOnFalse || 'False');\r\n }\r\n return value;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialExternalFilter } from '../services/grid-filter/grid-filter.model';\r\n@Pipe({\r\n name: 'sdFilterExternal'\r\n})\r\nexport class SdFilterExternalPipe implements PipeTransform {\r\n transform(externalFilters: SdGridMaterialExternalFilter[], field?: string): SdGridMaterialExternalFilter[] {\r\n const results: SdGridMaterialExternalFilter[] = [];\r\n if (!externalFilters) {\r\n return results;\r\n }\r\n for (const filter of externalFilters) {\r\n results.push(filter);\r\n }\r\n return results.filter(e => !field || e.field === field);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialColumn } from '../models/grid-column.model';\r\n@Pipe({\r\n name: 'sdFilterColumn'\r\n})\r\nexport class SdFilterColumnPipe implements PipeTransform {\r\n transform(columns: SdGridMaterialColumn[], field?: string): SdGridMaterialColumn[] {\r\n const results: SdGridMaterialColumn[] = [];\r\n if (!columns) {\r\n return results;\r\n }\r\n for (const column of columns) {\r\n if (column.type === 'image') {\r\n continue;\r\n }\r\n if (column.type === 'children') {\r\n for (const columnChildren of column?.children) {\r\n if (!columnChildren.filter?.disabled) {\r\n results.push(columnChildren);\r\n }\r\n }\r\n continue;\r\n }\r\n if (!column.filter?.disabled) {\r\n results.push(column);\r\n }\r\n }\r\n return results.filter(e => !field || e.field === field);\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { SdGridMaterialColumnChildren } from '../../models/grid-column.model';\r\n\r\n@Component({\r\n selector: 'sd-desktop-cell-children-view',\r\n templateUrl: './desktop-cell-children-view.component.html',\r\n styleUrls: ['./desktop-cell-children-view.component.scss']\r\n})\r\nexport class SdDesktopCellChildrenView {\r\n @Input() key: string;\r\n @Input() column: SdGridMaterialColumnChildren;\r\n @Input() item: any;\r\n constructor(\r\n ) { }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { SdGridMaterialColumn } from '../models/grid-column.model';\r\n\r\n@Pipe({\r\n name: 'columnChildrenFilter'\r\n})\r\nexport class SdColumnChildrenFilterPipe implements PipeTransform {\r\n #isMobileOrTablet = false;\r\n constructor(deviceService: DeviceDetectorService) {\r\n this.#isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n transform(columns: SdGridMaterialColumn[], item: any): SdGridMaterialColumn[] {\r\n return columns.filter(column => {\r\n const value = item?.[column.field];\r\n const transformValue = column.transform?.(item[column.field], item);\r\n const templateValue = column.htmlTemplate?.(item[column.field], item, this.#isMobileOrTablet);\r\n return (value !== undefined && value !== null && value !== '')\r\n || (transformValue !== undefined && transformValue !== null && transformValue !== '')\r\n || (templateValue !== undefined && templateValue !== null && templateValue !== '');\r\n });\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialChildColumn } from '../models/grid-column.model';\r\n@Pipe({\r\n name: 'columnTitle'\r\n})\r\nexport class SdColumnTitlePipe implements PipeTransform {\r\n async transform(item: any, column: SdGridMaterialChildColumn): Promise<string> {\r\n if (!column?.title) {\r\n return '';\r\n }\r\n const result = column?.dynamicTitle?.(item);\r\n if (result instanceof Promise) {\r\n return (await result) || column?.title;\r\n }\r\n return result || column?.title;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { SdGridMaterialCommand } from '../../models/grid-command.model';\r\n\r\n@Component({\r\n selector: 'sd-desktop-command',\r\n templateUrl: './desktop-command.component.html',\r\n styleUrls: ['./desktop-command.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdDesktopCommand {\r\n @Input() item: any;\r\n @Input() commands: SdGridMaterialCommand[] = [];\r\n constructor() {\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdBadgeColor } from '@sd-angular/core/badge';\r\nimport { SdGridMaterialColumn } from '../models/grid-column.model';\r\n@Pipe({\r\n name: 'columnBadge'\r\n})\r\nexport class SdColumnBadgePipe implements PipeTransform {\r\n constructor() { }\r\n transform(value: any, rowData: any, column: SdGridMaterialColumn): {\r\n type: 'round' | 'circle' | 'icon',\r\n color: SdBadgeColor,\r\n icon: string\r\n } {\r\n if (column.type === 'string' && column?.badge) {\r\n return {\r\n type: !column?.badgeType ? 'round' : column.badgeType,\r\n color: column.badge(value, rowData),\r\n icon: column?.badgeIcon?.(value, rowData)\r\n };\r\n }\r\n if (column.type === 'number' && column?.badge) {\r\n return {\r\n type: !column?.badgeType ? 'round' : column.badgeType,\r\n color: column.badge(value, rowData),\r\n icon: column?.badgeIcon?.(value, rowData)\r\n };\r\n }\r\n if (column.type === 'bool') {\r\n return {\r\n type: !column?.badgeType ? 'round' : column.badgeType,\r\n color: !!value ? 'success' : 'danger',\r\n icon: null\r\n };\r\n }\r\n if (column.type === 'values' && column?.badge) {\r\n return {\r\n type: !column?.badgeType ? 'round' : column.badgeType,\r\n color: column.badge(value, rowData),\r\n icon: column?.badgeIcon?.(value, rowData)\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialOption } from '../models/grid-option.model';\r\nimport { SdGridConfiguration, SdGridConfigurationResult } from '../models/grid-config.model';\r\nimport { SdGridConfigurationService } from '../services/grid-configuration.service';\r\nimport { SdMaterialSubInformationDefDirective } from '../directives/sd-material-sub-information-def.directive';\r\n\r\n@Pipe({\r\n name: 'sdGridConfigurationResult'\r\n})\r\nexport class SdGridConfigurationResultPipe implements PipeTransform {\r\n constructor(private gridConfigurationService: SdGridConfigurationService) { }\r\n transform(configuration: SdGridConfiguration, gridOption: SdGridMaterialOption, sdSubInformation: SdMaterialSubInformationDefDirective): SdGridConfigurationResult {\r\n return this.gridConfigurationService.generateConfigurationResult(configuration, gridOption, sdSubInformation);\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, EventEmitter, ChangeDetectorRef, Input, HostListener } from '@angular/core';\r\nimport { SdModal } from '@sd-angular/core/modal';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport { SdTranslateService } from '@sd-angular/core/translate';\r\nimport { SdGridMaterialOption } from '../../models/grid-option.model';\r\nimport { SdGridConfigurationResult, SdGridConfiguration, SdGridConfigurationCache, SdColumnConfiguration } from '../../models/grid-config.model';\r\nimport { SdGridConfigurationService } from '../../services/grid-configuration.service';\r\nimport * as uuid from 'uuid';\r\nimport { MatTable } from '@angular/material/table';\r\n// import { SdGridMaterialColumn } from '@sd-angular/core/grid-material';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { SdGridMaterialColumn } from '../../models/grid-column.model';\r\n\r\n@Component({\r\n selector: 'sd-popup-grid-configuration',\r\n templateUrl: './popup-grid-configuration.component.html',\r\n styleUrls: ['./popup-grid-configuration.component.scss']\r\n})\r\nexport class SdPopupGridConfiguration implements OnInit {\r\n @Input() gridOption: SdGridMaterialOption;\r\n @Input() key: string;\r\n @ViewChild('modal') modal: SdModal;\r\n @ViewChild('table') table: MatTable<SdGridMaterialColumn>;\r\n readonly changes = new EventEmitter<SdGridConfigurationResult>();\r\n #cache: SdGridConfigurationCache;\r\n configuration: SdGridConfiguration;\r\n isCreatingColumn = false;\r\n selected: {\r\n [key: string]: boolean;\r\n } = {};\r\n disabledDrag = true;\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private notifyService: SdNotifyService,\r\n private translateService: SdTranslateService,\r\n private gridConfigurationService: SdGridConfigurationService) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n @HostListener('window:mouseup', ['$event'])\r\n mouseUp(event) {\r\n this.disabledDrag = true;\r\n }\r\n open = async () => {\r\n this.#cache = this.gridConfigurationService.init(this.key, this.gridOption);\r\n this.configuration = await this.#cache.get();\r\n this.modal.open();\r\n }\r\n\r\n onSave = () => {\r\n this.#cache.set(this.configuration);\r\n this.modal.close();\r\n this.ref.detectChanges();\r\n }\r\n\r\n onReset = async () => {\r\n const { translate } = this.translateService;\r\n this.notifyService.confirm(translate('Reset grid configuration to default')).then(() => {\r\n this.#cache.remove();\r\n this.modal.close();\r\n this.ref.detectChanges();\r\n });\r\n }\r\n\r\n createColumn = async () => {\r\n this.selected = {};\r\n this.isCreatingColumn = true;\r\n }\r\n\r\n confirm = async () => {\r\n const generatedColumn: SdColumnConfiguration = {\r\n origin: {\r\n field: uuid.v4(),\r\n title: 'Generated',\r\n width: '300px'\r\n },\r\n fixed: false,\r\n invisible: false,\r\n title: 'Generated',\r\n width: '300px',\r\n isGeneratedColumn: true,\r\n generatedColumns: this.configuration.columns.filter(e => this.selected[e.origin?.field]).map(e => e.origin?.field)\r\n };\r\n this.configuration.columns.push(generatedColumn);\r\n this.configuration = this.#cache.set(this.configuration);\r\n this.isCreatingColumn = false;\r\n }\r\n\r\n dropTable(event: CdkDragDrop<SdGridMaterialColumn[]>) {\r\n moveItemInArray(this.configuration.columns, event.previousIndex, event.currentIndex);\r\n this.table.renderRows();\r\n }\r\n\r\n handleMouseDown() {\r\n this.disabledDrag = false;\r\n }\r\n\r\n handleMouseUp() {\r\n this.disabledDrag = true;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialColumn } from '../models/grid-column.model';\r\n@Pipe({\r\n name: 'columnTooltip'\r\n})\r\nexport class SdColumnTooltipPipe implements PipeTransform {\r\n constructor() { }\r\n transform(value: any, rowData: any, column: SdGridMaterialColumn): string {\r\n if (column?.tooltip) {\r\n return column.tooltip(value, rowData);\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { SdGridMaterialAction, SdGridMaterialActionNormal, SdGridMaterialActionSimple } from '../models/grid-action.model';\r\nimport { SdItem } from '../models/grid.model';\r\n@Pipe({\r\n name: 'selectionActionFilter'\r\n})\r\nexport class SdSelectionActionFilterPipe implements PipeTransform {\r\n #convert = (action: SdGridMaterialAction): SdGridMaterialActionSimple => {\r\n if ('children' in action) {\r\n return {\r\n title: action.title,\r\n icon: action.icon,\r\n fontSet: action.fontSet,\r\n tooltip: action.tooltip,\r\n color: action.color,\r\n type: action.type,\r\n children: action.children.map(e => ({\r\n title: e.title,\r\n icon: e.icon,\r\n color: action.color,\r\n type: action.type,\r\n fontSet: e.fontSet,\r\n tooltip: e.tooltip,\r\n click: e.click\r\n }))\r\n };\r\n }\r\n return {\r\n title: action.title,\r\n icon: action.icon,\r\n color: action.color,\r\n type: action.type,\r\n fontSet: action.fontSet,\r\n tooltip: action.tooltip,\r\n click: action.click\r\n };\r\n\r\n }\r\n transform = (selectedItems: SdItem[], actions: SdGridMaterialAction[]): SdGridMaterialActionSimple[] => {\r\n const results: SdGridMaterialAction[] = [];\r\n if (!actions?.length || !selectedItems?.length) {\r\n return [];\r\n }\r\n for (const action of actions) {\r\n if ('children' in action) {\r\n const children: SdGridMaterialActionNormal[] = [];\r\n for (const childAction of action.children) {\r\n const key = hash(childAction);\r\n if (selectedItems.every(e => e.actions.includes(key))) {\r\n children.push(childAction);\r\n }\r\n }\r\n if (children.length > 0) {\r\n results.push({ ...action, children });\r\n }\r\n } else {\r\n const key = hash(action);\r\n if (selectedItems.every(e => e.actions.includes(key))) {\r\n results.push(action);\r\n }\r\n }\r\n }\r\n return results.map(result => this.#convert(result));\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { SdGridMaterialSelection } from '../models/grid-selection.model';\r\nimport { SdItem } from '../models/grid.model';\r\n@Pipe({\r\n name: 'selectionDisable'\r\n})\r\nexport class SdSelectionDisablePipe implements PipeTransform {\r\n transform = (selectedItems: SdItem[], rowData: SdItem, selection: SdGridMaterialSelection): boolean => {\r\n const { disabled, actions } = selection;\r\n if (!actions?.length) {\r\n if (!disabled) {\r\n rowData.selectable = true;\r\n return false;\r\n }\r\n rowData.selectable = !disabled(rowData, selectedItems);\r\n return !rowData.selectable;\r\n }\r\n // Lọc các action theo selectedItems hiện tại\r\n const availableActions = actions.filter(action => {\r\n if ('children' in action) {\r\n for (const childAction of action.children) {\r\n const key = hash(childAction);\r\n if (selectedItems.every(e => e.actions.includes(key))) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n } else {\r\n const key = hash(action);\r\n return selectedItems.every(e => e.actions.includes(key));\r\n }\r\n });\r\n // Kiểm tra rowData có action nào thỏa hay ko, nếu ko thì disabled\r\n for (const action of availableActions) {\r\n if ('children' in action) {\r\n for (const childAction of action.children) {\r\n if(rowData.actions.includes(hash(childAction))) {\r\n return false;\r\n }\r\n }\r\n } else {\r\n if(rowData.actions.includes(hash(action))) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialSelection } from '../models/grid-selection.model';\r\nimport { SdItem } from '../models/grid.model';\r\n@Pipe({\r\n name: 'selectionVisibleSelectAll'\r\n})\r\nexport class SdSelectionVisibleSelectAllPipe implements PipeTransform {\r\n transform = async (items: SdItem[], selection: SdGridMaterialSelection): Promise<boolean> => {\r\n const { actions } = selection;\r\n if (!actions?.length) {\r\n return true;\r\n }\r\n if (!items.length) {\r\n return false;\r\n }\r\n if (actions.some(e => ('children' in e && e.children.some(e1 => e1.isGrouped)) || e.isGrouped)) {\r\n return false;\r\n }\r\n await new Promise(resolve => setTimeout(resolve, 500));\r\n const first = items.find(t => t.actions?.length);\r\n if (first) {\r\n for (const action of first.actions) {\r\n if (items.filter(t => t.actions?.length).every(e => e.actions.includes(action))) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { SdSetting, SdSettingService } from '@sd-angular/core/setting';\r\nimport { SdGridMaterialConfigOption } from '../../models/grid-config.model';\r\nimport { SdGeneratedColumn } from './generated-column.model';\r\nimport { SdSettingServer } from '@sd-angular/core/setting';\r\n\r\n@Injectable()\r\nexport class SdGeneratedColumnService {\r\n #cache: {\r\n [key: string]: SdSetting<SdGeneratedColumn[]> | SdSettingServer<SdGeneratedColumn[]>\r\n } = {};\r\n constructor(\r\n private settingService: SdSettingService) {\r\n }\r\n\r\n load = (configuration: SdGridMaterialConfigOption) => {\r\n if (!configuration?.key) {\r\n return null;\r\n }\r\n const key = hash({\r\n prefix: '260f5e94-5865-4425-8ced-b9c083c390dd',\r\n key: configuration.key\r\n });\r\n if(!this.#cache[key]) {\r\n if(configuration?.storage === 'server') {\r\n this.#cache[key] = this.settingService.createServer<SdGeneratedColumn[]>(key, {\r\n args: configuration?.args,\r\n default: []\r\n });\r\n } else {\r\n this.#cache[key] = this.settingService.create<SdGeneratedColumn[]>(key, {\r\n type: configuration?.storage,\r\n args: configuration?.args,\r\n default: []\r\n });\r\n }\r\n }\r\n return this.#cache[key];\r\n }\r\n\r\n loadSystem = (configuration: SdGridMaterialConfigOption) => {\r\n if (!configuration?.key) {\r\n return null;\r\n }\r\n if (!configuration?.systemColumn) {\r\n return null;\r\n }\r\n const key = hash({\r\n prefix: '8b8050ca-1f44-4860-bad3-20e646c0d68f',\r\n key: configuration.key\r\n });\r\n if(!this.#cache[key]) {\r\n if(configuration?.storage === 'server') {\r\n this.#cache[key] = this.settingService.createServer<SdGeneratedColumn[]>(key, {\r\n args: configuration?.systemColumn?.args,\r\n default: []\r\n });\r\n } else {\r\n this.#cache[key] = this.settingService.create<SdGeneratedColumn[]>(key, {\r\n type: configuration?.storage,\r\n args: configuration?.systemColumn?.args,\r\n default: []\r\n });\r\n }\r\n }\r\n return this.#cache[key];\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ChangeDetectorRef, Input, ChangeDetectionStrategy, OnDestroy } from '@angular/core';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport { SdTranslateService } from '@sd-angular/core/translate';\r\nimport { SdGridMaterialOption } from '../../models/grid-option.model';\r\nimport { SdGridConfigurationService } from '../../services/grid-configuration.service';\r\nimport * as uuid from 'uuid';\r\nimport { SdGeneratedColumnService } from '../../services/generated-column/generated-column.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { SdGeneratedColumn } from '../../services/generated-column/generated-column.model';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { SdSideDrawer } from '@sd-angular/core/side-drawer';\r\nimport { SdGridMaterialColumn } from '../../models/grid-column.model';\r\n\r\n@Component({\r\n selector: 'sd-dynamic-column',\r\n templateUrl: './dynamic-column.component.html',\r\n styleUrls: ['./dynamic-column.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdDynamicColumn implements OnInit, OnDestroy {\r\n @ViewChild(SdSideDrawer) sideDrawer: SdSideDrawer;\r\n @Input() gridOption: SdGridMaterialOption;\r\n systemColumns: SdGeneratedColumn[];\r\n columns: SdGeneratedColumn[];\r\n #subscription = new Subscription();\r\n columnTypes = ['string', 'number', 'bool', 'date', 'datetime', 'time', 'values', 'children', 'children-col'];\r\n form = new FormGroup({});\r\n isDetail = false;\r\n detail: SdGeneratedColumn;\r\n originColumns: SdGridMaterialColumn[] = [];\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private generatedColumnService: SdGeneratedColumnService,\r\n private notifyService: SdNotifyService,\r\n private translateService: SdTranslateService,\r\n private gridConfigurationService: SdGridConfigurationService) {\r\n }\r\n\r\n ngOnInit() {\r\n const systemSetting = this.generatedColumnService.loadSystem(this.gridOption.config);\r\n const setting = this.generatedColumnService.load(this.gridOption?.config);\r\n if (systemSetting) {\r\n this.#subscription?.add(systemSetting.observer.subscribe(columns => {\r\n this.systemColumns = columns;\r\n }));\r\n }\r\n if (setting) {\r\n this.#subscription?.add(setting.observer.subscribe(columns => {\r\n this.columns = columns;\r\n }));\r\n }\r\n this.originColumns = this.gridOption.columns.filter(e => e.type !== 'children' && e.type !== 'children-col');\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n onDetail = (column?: SdGeneratedColumn) => {\r\n this.detail = column || {\r\n field: uuid.v4(),\r\n title: '',\r\n type: 'string',\r\n isSystem: false,\r\n useTemplate: false\r\n };\r\n this.form.markAsUntouched();\r\n this.form.markAsPristine();\r\n this.isDetail = true;\r\n }\r\n\r\n onSave = () => {\r\n const systemSetting = this.generatedColumnService.loadSystem(this.gridOption.config);\r\n const setting = this.generatedColumnService.load(this.gridOption?.config);\r\n if (this.detail.isSystem) {\r\n if (!this.detail.id) {\r\n systemSetting.set([...this.systemColumns, {\r\n ...this.detail,\r\n id: uuid.v4()\r\n }]);\r\n } else {\r\n systemSetting.set([...this.systemColumns]);\r\n }\r\n } else {\r\n if (!this.detail.id) {\r\n setting.set([...this.columns, {\r\n ...this.detail,\r\n id: uuid.v4()\r\n }]);\r\n } else {\r\n setting.set([...this.columns]);\r\n }\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, QueryList, Renderer2 } from '@angular/core';\r\nimport { SdMaterialCellDefDirective } from '../../directives/sd-material-cell-def.directive';\r\nimport { SdGridMaterialColumn } from '../../models/grid-column.model';\r\nimport { SdGridMaterialOption } from '../../models/grid-option.model';\r\n\r\n@Component({\r\n selector: 'sd-desktop-cell',\r\n templateUrl: './desktop-cell.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdDesktopCell {\r\n @Input() sdId: string;\r\n @Input() value: any;\r\n @Input() key: string;\r\n\r\n column: SdGridMaterialColumn;\r\n @Input('column') set _column(column: SdGridMaterialColumn) {\r\n this.column = column;\r\n if (column.width) {\r\n this.renderer.setStyle(this.elementRef.nativeElement, 'min-width', column.width);\r\n }\r\n }\r\n @Input() item: any;\r\n @Input() gridOption: SdGridMaterialOption;\r\n @Input() cellDef: {\r\n [column: string]: SdMaterialCellDefDirective;\r\n } = {};\r\n @Input() idx: number;\r\n constructor(private elementRef: ElementRef, private renderer: Renderer2) {}\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, QueryList } from '@angular/core';\r\nimport { SdGridMaterialColumn, SdGridMaterialColumnValues } from '../../models/grid-column.model';\r\n\r\n@Component({\r\n selector: 'sd-desktop-cell-editor',\r\n templateUrl: './desktop-cell-editor.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdDesktopCellEditor {\r\n @Input() sdId: string;\r\n @Input() column: SdGridMaterialColumn;\r\n @Input() item: any;\r\n constructor(\r\n ) { }\r\n\r\n onChange = (selected: any) => {\r\n if (this.column.type === 'children' || this.column.type === 'children-col') {\r\n return;\r\n }\r\n this.column?.editor?.change?.(this.item, selected);\r\n }\r\n\r\n editorOnAdd = () => {\r\n if (this.column.type === 'children' || this.column.type === 'children-col') {\r\n return;\r\n }\r\n if (this.column.type === 'values') {\r\n this.column.editor?.add?.(this.item);\r\n }\r\n }\r\n\r\n editorOnEdit = (option: any) => {\r\n if (this.column.type === 'children' || this.column.type === 'children-col') {\r\n return;\r\n }\r\n if (this.column.type === 'values') {\r\n this.column.editor?.edit?.(option, this.item);\r\n }\r\n }\r\n\r\n editorOnDelete = (option: any) => {\r\n if (this.column.type === 'children' || this.column.type === 'children-col') {\r\n return;\r\n }\r\n if (this.column.type === 'values') {\r\n this.column.editor?.delete?.(option, this.item);\r\n }\r\n }\r\n}\r\n","import { NgZone, Pipe, PipeTransform } from '@angular/core';\r\nimport { CalculateSdId } from '../functions/calculate-sd-id';\r\nimport { SdGridMaterialColumn } from '../models/grid-column.model';\r\nimport { SdGridMaterialOption } from '../models/grid-option.model';\r\nimport { EditorHandlerRow, SdItem } from '../models/grid.model';\r\n@Pipe({\r\n name: 'sdEditorHandlerRow'\r\n})\r\nexport class SdEditorHandlerRowPipe implements PipeTransform {\r\n constructor(private zone: NgZone) { }\r\n #visible = (col: SdGridMaterialColumn, item: SdItem) => {\r\n if (col.type === 'children' || col.type === 'children-col') {\r\n return false;\r\n }\r\n // Kiểm tra xem có bị disabled hay không?\r\n if (col.editor) {\r\n const isDisabled = typeof (col.editor.disabled) === 'function' ? col.editor.disabled(item) : col.editor.disabled;\r\n if (isDisabled) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n transform(status: 'create' | 'update', item: SdItem, gridOption: SdGridMaterialOption): EditorHandlerRow {\r\n const { editor } = gridOption;\r\n if (!editor) {\r\n return null;\r\n }\r\n let isDisabled = false;\r\n if (typeof (editor?.disabled) === 'function') {\r\n isDisabled = editor.disabled(item);\r\n } else {\r\n isDisabled = editor?.disabled;\r\n }\r\n if (editor.type === 'inline') {\r\n const removable = editor.removable;\r\n item.editorHandlerRow = {\r\n ...item.editorHandlerRow,\r\n visible: !isDisabled,\r\n editable: false,\r\n removable: status !== 'create' && (typeof (removable) === 'function' ? removable(item) : removable),\r\n savable: false,\r\n cancelable: !isDisabled && status === 'create'\r\n }\r\n } else if (editor.type === 'focus') {\r\n if (isDisabled) {\r\n return null;\r\n }\r\n item.editorHandlerRow = {\r\n ...item.editorHandlerRow,\r\n visible: !!status,\r\n editable: !status,\r\n removable: false,\r\n savable: !!status,\r\n cancelable: !!status\r\n }\r\n } else if (editor.type === 'popup') {\r\n if (isDisabled) {\r\n return null;\r\n }\r\n item.editorHandlerRow = {\r\n ...item.editorHandlerRow,\r\n visible: false,\r\n editable: !status,\r\n removable: false,\r\n savable: false,\r\n cancelable: false\r\n }\r\n }\r\n item.editorHandlerColumn = item.editorHandlerColumn || {};\r\n const { columns } = gridOption;\r\n for (const col of columns) {\r\n if (col.type === 'children-col') {\r\n for (const childCol of col.children) {\r\n item.editorHandlerColumn[childCol.field] = {\r\n ...item.editorHandlerColumn[childCol.field],\r\n visible: this.#visible(childCol, item)\r\n }\r\n }\r\n } else {\r\n item.editorHandlerColumn[col.field] = {\r\n ...item.editorHandlerColumn[col.field],\r\n visible: this.#visible(col, item)\r\n }\r\n }\r\n }\r\n this.zone.run(() => {\r\n item.sdId = CalculateSdId(item);\r\n });\r\n return item.editorHandlerRow;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialOption } from '../models/grid-option.model';\r\nimport { SdItem } from '../models/grid.model';\r\n@Pipe({\r\n name: 'sdEditorValidate'\r\n})\r\nexport class SdEditorValidatePipe implements PipeTransform {\r\n #previous: Date;\r\n #delay = 200; // Sau khoảng thời gian delay nếu không có thay đổi thì thì mới bắt đầu thực hiện validate\r\n async transform(sdId: string, item: SdItem, items: SdItem[], gridOption: SdGridMaterialOption): Promise<string> {\r\n const { editor } = gridOption;\r\n if (!editor.validate) {\r\n item.editorErrorMessage = null;\r\n return;\r\n }\r\n if(editor.type === 'popup') {\r\n item.editorErrorMessage = null;\r\n return;\r\n }\r\n if (editor.type === 'focus' && !item.editorStatus) {\r\n item.editorErrorMessage = null;\r\n return;\r\n }\r\n this.#previous = new Date();\r\n await new Promise(resolve => setTimeout(resolve, this.#delay));\r\n const now = new Date();\r\n const dif = now.getTime() - this.#previous.getTime();\r\n if (dif < this.#delay) {\r\n return;\r\n }\r\n const result = editor.validate(item, items?.indexOf(item));\r\n if (result instanceof Promise) {\r\n item.editorErrorMessage = await result;\r\n return;\r\n } else {\r\n item.editorErrorMessage = result;\r\n return;\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialOption } from '../models/grid-option.model';\r\n@Pipe({\r\n name: 'sdStyleRowCss'\r\n})\r\nexport class SdStyleRowCss implements PipeTransform {\r\n transform(item: any, gridOption: SdGridMaterialOption) {\r\n return gridOption?.style?.rowCss?.(item) || {};\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { SdGridMaterialOption } from '../../models/grid-option.model';\r\n\r\n@Component({\r\n selector: 'sd-desktop-editor-validation',\r\n templateUrl: './desktop-editor-validation.component.html',\r\n styleUrls: ['./desktop-editor-validation.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdDesktopEditorValidation {\r\n @Input() sdId: string;\r\n @Input() item: any;\r\n @Input() items: any[];\r\n @Input() gridOption: SdGridMaterialOption;\r\n constructor(\r\n ) { }\r\n}\r\n","import { SdBadgeColor } from '@sd-angular/core/badge';\r\n\r\nexport type SdGridMaterialColumn<T = any> =\r\n | SdGridMaterialColumnText<T>\r\n | SdGridMaterialColumnNumber<T>\r\n | SdGridMaterialBool<T>\r\n | SdGridMaterialColumnDate<T>\r\n | SdGridMaterialColumnValues<T>\r\n | SdGridMaterialColumnImage<T>\r\n | SdGridMaterialColumnChildren<T>\r\n | SdGridMaterialColumnChildrenCol<T>;\r\n\r\nexport type SdFilterOperator =\r\n | 'EQUAL'\r\n | 'NOT_EQUAL'\r\n | 'CONTAIN'\r\n | 'NOT_CONTAIN'\r\n | 'IN'\r\n | 'NOT_IN'\r\n | 'START_WITH'\r\n | 'END_WITH'\r\n | 'GREATER_THAN'\r\n | 'LESS_THAN'\r\n | 'GREATER_OR_EQUAL'\r\n | 'LESS_OR_EQUAL'\r\n | 'NULL'\r\n | 'NOT_NULL';\r\n\r\nexport const SdFilterOperators: { value: SdFilterOperator, symbol?: string, display: string }[] = [\r\n {\r\n value: 'EQUAL',\r\n symbol: '=',\r\n display: 'Bằng',\r\n },\r\n {\r\n value: 'NOT_EQUAL',\r\n symbol: '≠',\r\n display: 'Không bằng',\r\n },\r\n {\r\n value: 'GREATER_THAN',\r\n symbol: '>',\r\n display: 'Lớn hơn',\r\n },\r\n {\r\n value: 'LESS_THAN',\r\n symbol: '<',\r\n display: 'Nhỏ hơn',\r\n },\r\n {\r\n value: 'GREATER_OR_EQUAL',\r\n symbol: '≥',\r\n display: 'Lớn hơn, hoặc bằng'\r\n },\r\n {\r\n value: 'LESS_OR_EQUAL',\r\n symbol: '≤',\r\n display: 'Nhỏ hơn, hoặc bằng'\r\n },\r\n {\r\n value: 'CONTAIN',\r\n symbol: 'join_inner',\r\n display: 'Chứa',\r\n },\r\n {\r\n value: 'NOT_CONTAIN',\r\n symbol: 'join',\r\n display: 'Không chứa',\r\n },\r\n {\r\n value: 'START_WITH',\r\n symbol: 'line_start_circle',\r\n display: 'Bắt đầu bởi'\r\n },\r\n {\r\n value: 'END_WITH',\r\n symbol: 'line_end_circle',\r\n display: 'Kết thúc bởi'\r\n },\r\n {\r\n value: 'IN',\r\n symbol: 'checklist_rtl',\r\n display: 'Nằm trong'\r\n },\r\n {\r\n value: 'NOT_IN',\r\n symbol: 'event_list',\r\n display: 'Không nằm trong'\r\n },\r\n {\r\n value: 'NULL',\r\n symbol: 'motion_photos_off',\r\n display: 'Là rỗng',\r\n },\r\n {\r\n value: 'NOT_NULL',\r\n symbol: 'adjust',\r\n display: 'Không rỗng',\r\n },\r\n];\r\n\r\nexport type TransformFunc<T = any> = (\r\n value: any,\r\n rowData: T,\r\n args?: {\r\n isExport?: boolean;\r\n }\r\n) => string | Promise<string>;\r\n\r\ninterface SdGridMaterialBaseColumn<T = any> {\r\n field: string;\r\n title: string;\r\n titleHtml?: string;\r\n description?: string;\r\n width?: string;\r\n hidden?: boolean;\r\n invisible?: boolean;\r\n fixed?: boolean;\r\n align?: 'center' | 'left' | 'right';\r\n htmlTemplate?: (value: any, rowData: T, isMobileOrTablet: boolean) => string;\r\n transform?: TransformFunc<T>;\r\n tooltip?: (value: any, rowData: T) => string;\r\n click?: (value: any, rowData: T) => void;\r\n sortable?: boolean;\r\n filter?: {\r\n disabled?: boolean;\r\n defaultShowing?: boolean;\r\n default?: any;\r\n // Chỉ dành cho filter inline column\r\n operator?: {\r\n enable?: boolean;\r\n list?: SdFilterOperator[];\r\n };\r\n };\r\n export?: {\r\n disabled?: boolean;\r\n };\r\n}\r\n\r\ninterface SdGridMaterialColumnText<T = any> extends SdGridMaterialBaseColumn<T> {\r\n type: 'string';\r\n badge?: (value: any, rowData: T) => SdBadgeColor;\r\n badgeIcon?: (value: any, rowData: T) => string;\r\n badgeType?: 'circle' | 'icon';\r\n editor?: {\r\n change?: (rowData: T, selected?: any) => void;\r\n hidden?: boolean | ((rowData: T) => boolean);\r\n disabled?: boolean | ((rowData: T) => boolean);\r\n required?: boolean | ((rowData: T) => boolean);\r\n minLength?: number;\r\n maxLength?: number;\r\n validator?: (rowData: T) => string;\r\n };\r\n}\r\n\r\ninterface SdGridMaterialColumnNumber<T = any> extends SdGridMaterialBaseColumn<T> {\r\n type: 'number';\r\n badge?: (value: any, rowData: T) => SdBadgeColor;\r\n badgeIcon?: (value: any, rowData: T) => string;\r\n badgeType?: 'circle' | 'icon';\r\n editor?: {\r\n change?: (rowData: T, selected?: any) => void;\r\n hidden?: boolean | ((rowData: T) => boolean);\r\n disabled?: boolean | ((rowData: T) => boolean);\r\n required?: boolean | ((rowData: T) => boolean);\r\n minValue?: number;\r\n maxValue?: number;\r\n precision?: number;\r\n validator?: (rowData: T) => string;\r\n };\r\n}\r\n\r\ninterface SdGridMaterialBool<T = any> extends SdGridMaterialBaseColumn<T> {\r\n type: 'bool';\r\n option?: {\r\n displayOnTrue?: string;\r\n displayOnFalse?: string;\r\n };\r\n badgeType?: 'circle';\r\n editor?: {\r\n change?: (rowData: T, selected?: any) => void;\r\n hidden?: boolean | ((rowData: T) => boolean);\r\n disabled?: boolean | ((rowData: T) => boolean);\r\n required?: boolean | ((rowData: T) => boolean);\r\n };\r\n}\r\n\r\ninterface SdGridMaterialColumnDate<T = any> extends SdGridMaterialBaseColumn<T> {\r\n type: 'date' | 'datetime' | 'time';\r\n option?: {\r\n useFilterDate?: boolean;\r\n timeDifferent?: 'second' | 'minute' | 'hour' | 'day' | 'month';\r\n };\r\n transformDate?: (value: any, rowData: T) => string | Date;\r\n editor?: {\r\n change?: (rowData: T, selected?: any) => void;\r\n hidden?: boolean | ((rowData: T) => boolean);\r\n disabled?: boolean | ((rowData: T) => boolean);\r\n required?: boolean | ((rowData: T) => boolean);\r\n };\r\n}\r\n\r\nexport interface SdGridMaterialColumnValues<T = any> extends SdGridMaterialBaseColumn<T> {\r\n type: 'values';\r\n badge?: (value: any, rowData: T) => SdBadgeColor;\r\n badgeIcon?: (value: any, rowData: T) => string;\r\n badgeType?: 'circle' | 'icon';\r\n option: {\r\n items: any[] | ((searchText?: string, isFormValue?: boolean) => Promise<any[]>) | ((searchText?: string[], isFormValue?: boolean) => Promise<any[]>);\r\n valueField: string;\r\n displayField: string;\r\n selection?:\r\n | 'AUTOCOMPLETE'\r\n | 'MULTIPLE'\r\n | 'MULTIPLEAUTOCOMPLETE'\r\n | 'AUTOCOMPLETE_EDITOR'\r\n | 'MULTIPLE_EDITOR'\r\n | 'MULTIPLEAUTOCOMPLETE_EDITOR';\r\n };\r\n editor?: {\r\n change?: (rowData: T, selected?: any) => void;\r\n add?: (rowData: T) => void;\r\n edit?: (option: any, rowData: T) => void;\r\n delete?: (option: any, rowData: T) => void;\r\n hidden?: boolean | ((rowData: T) => boolean);\r\n disabled?: boolean | ((rowData: T) => boolean);\r\n required?: boolean | ((rowData: T) => boolean);\r\n };\r\n}\r\n\r\ninterface SdGridMaterialColumnImage<T = any> extends SdGridMaterialBaseColumn<T> {\r\n type: 'image';\r\n option: {\r\n height: number;\r\n width: number;\r\n };\r\n editor?: {\r\n change?: (rowData: T, selected?: any) => void;\r\n hidden?: boolean | ((rowData: T) => boolean);\r\n disabled?: boolean | ((rowData: T) => boolean);\r\n required?: boolean | ((rowData: T) => boolean);\r\n };\r\n}\r\n\r\ntype SdGridMaterialNormalColumn<T> = Exclude<\r\n Exclude<SdGridMaterialColumn<T>, SdGridMaterialColumnChildren<T>>,\r\n SdGridMaterialColumnChildrenCol<T>\r\n>;\r\n\r\nexport type SdGridMaterialChildColumn<T = any> = SdGridMaterialNormalColumn<T> & {\r\n dynamicTitle?: (rowData: T) => string | Promise<string>;\r\n colSpan: 1 | 2;\r\n};\r\n\r\nexport interface SdGridMaterialColumnChildren<T = any> extends SdGridMaterialBaseColumn<T> {\r\n type: 'children';\r\n children: SdGridMaterialChildColumn<T>[];\r\n}\r\n\r\nexport interface SdGridMaterialColumnChildrenCol<T = any> extends SdGridMaterialBaseColumn<T> {\r\n type: 'children-col';\r\n children: SdGridMaterialNormalColumn<T>[];\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, QueryList } from '@angular/core';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { startWith } from 'rxjs/operators';\r\nimport { SdFilterOperator, SdFilterOperators, SdGridMaterialColumn } from '../../models/grid-column.model';\r\n\r\n@Component({\r\n selector: 'sd-column-inline-filter',\r\n templateUrl: './column-inline-filter.component.html',\r\n styleUrls: ['./column-inline-filter.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdColumnInlineFilter implements OnInit {\r\n value: any;\r\n @Input('value') _value(value: any) {\r\n this.value = value;\r\n this.#valueChanges.next();\r\n }\r\n inlineSymbol: string = 'filter_alt';\r\n #inlineOperator: SdFilterOperator;\r\n @Input('inlineOperator') set _inlineOperator(inlineOperator: SdFilterOperator) {\r\n if(this.#inlineOperator !== inlineOperator) {\r\n this.#inlineOperator = inlineOperator;\r\n this.inlineSymbol = SdFilterOperators.find(e => e.value === inlineOperator)?.symbol ?? 'filter_alt';\r\n }\r\n }\r\n @Output() inlineOperatorChange = new EventEmitter<SdFilterOperator>();\r\n @Output() operatorChange = new EventEmitter<SdFilterOperator>();\r\n\r\n columnFilter: Record<string, any> = {};\r\n @Input('columnFilter') set _columnFilter(columnFilter: Record<string, any>) {\r\n this.columnFilter = columnFilter || {};\r\n this.#valueChanges.next();\r\n }\r\n operators: { value: SdFilterOperator, symbol?: string, display: string }[] = [];\r\n column: SdGridMaterialColumn;\r\n @Input('column') set _column(column: SdGridMaterialColumn) {\r\n this.column = column;\r\n if (!column?.filter?.disabled && column?.filter?.operator?.enable) {\r\n this.operators = SdFilterOperators.filter(e => column.filter.operator.list?.includes?.(e.value));\r\n } else {\r\n this.operators = [];\r\n }\r\n }\r\n @Output() filterChange = new EventEmitter();\r\n #valueChanges = new Subject();\r\n #subcription = new Subscription();\r\n constructor(private ref: ChangeDetectorRef) { }\r\n\r\n ngOnInit() {\r\n this.#subcription.add(\r\n this.#valueChanges.pipe(startWith(this.columnFilter)).subscribe(() => {\r\n if (this.column.type === 'date' || this.column.type === 'time' || this.column.type === 'datetime') {\r\n if (!this.column?.option?.useFilterDate) {\r\n this.columnFilter[this.column.field] = this.columnFilter[this.column.field] || {\r\n from: null,\r\n to: null,\r\n };\r\n }\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#subcription.unsubscribe();\r\n }\r\n\r\n onFilterChange = () => {\r\n this.filterChange.emit();\r\n };\r\n\r\n\r\n onChangeOperator = (operator: { value: SdFilterOperator, symbol?: string, display: string }) => {\r\n if (operator) {\r\n this.#inlineOperator = operator.value;\r\n this.inlineSymbol = operator.symbol;\r\n } else {\r\n this.#inlineOperator = null;\r\n this.inlineSymbol = 'filter_alt';\r\n }\r\n this.inlineOperatorChange.emit(this.#inlineOperator);\r\n this.operatorChange.emit(this.#inlineOperator);\r\n this.ref.markForCheck();\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { SdGridMaterialSelection } from '../models/grid-selection.model';\r\nimport { SdItem } from '../models/grid.model';\r\n\r\n@Pipe({\r\n name: 'selectionVisible'\r\n})\r\nexport class SdSelectionVisiblePipe implements PipeTransform {\r\n transform = (rowData: SdItem, selection: SdGridMaterialSelection): boolean => {\r\n const { actions } = selection;\r\n const groupedActions: string[] = [];\r\n rowData.actions = rowData.actions || [];\r\n if (!actions?.length) {\r\n rowData.selectable = true;\r\n return rowData.selectable;\r\n }\r\n for (const action of actions) {\r\n if ('children' in action) {\r\n let flag = false;\r\n let hasGroup = false;\r\n for (const childAction of action.children) {\r\n const { hidden, isGrouped } = childAction;\r\n const key = hash(childAction);\r\n if (isGrouped) {\r\n hasGroup = true;\r\n }\r\n if (typeof (hidden) === 'function') {\r\n if (!hidden(rowData)) {\r\n flag = true;\r\n rowData.actions.push(key);\r\n if (isGrouped) {\r\n groupedActions.push(key);\r\n }\r\n }\r\n } else if (!hidden) {\r\n flag = true;\r\n rowData.actions.push(key);\r\n if (isGrouped) {\r\n groupedActions.push(key);\r\n }\r\n }\r\n }\r\n if (flag) {\r\n rowData.actions.push(hash(action));\r\n if (hasGroup) {\r\n groupedActions.push(hash(action));\r\n }\r\n }\r\n } else {\r\n const { hidden, isGrouped } = action;\r\n const key = hash(action);\r\n if (typeof (hidden) === 'function') {\r\n if (!hidden(rowData)) {\r\n rowData.actions.push(key);\r\n if (isGrouped) {\r\n groupedActions.push(key);\r\n }\r\n }\r\n } else if (!hidden) {\r\n rowData.actions.push(key);\r\n if (isGrouped) {\r\n groupedActions.push(key);\r\n }\r\n }\r\n }\r\n }\r\n rowData.selectable = !!rowData.actions.length;\r\n if (!rowData.selectable || !groupedActions.length || rowData?.sdGroup?.items?.length) {\r\n return rowData.selectable;\r\n }\r\n // Đối với trường hợp grouped, tuy selectable là true nhưng vẫn ẩn đi checkbox\r\n // nếu các action đều thuộc groupedActions và rowData ko phải là dòng group\r\n return rowData.actions.some(action => !groupedActions.includes(action));\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { SdGridMaterialOption } from '../../models/grid-option.model';\r\n\r\n@Component({\r\n selector: 'sd-grid-quick-action',\r\n templateUrl: './quick-action.component.html',\r\n styleUrls: ['./quick-action.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdGridQuickAction {\r\n @Input() gridOption: SdGridMaterialOption;\r\n @Input() selectedItems: any[];\r\n @Output() clear = new EventEmitter();\r\n constructor(\r\n ) { }\r\n onClear = () => {\r\n this.clear.emit();\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdUtilityService } from '@sd-angular/core/utility';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { SdCellView } from '../models/grid-cell.model';\r\nimport { SdGridMaterialColumn } from '../models/grid-column.model';\r\nimport { SdGridMaterialOption } from '../models/grid-option.model';\r\nimport { SdColumnValuesPipe } from './column-values.pipe';\r\n@Pipe({\r\n name: 'cellView'\r\n})\r\nexport class SdCellViewPipe implements PipeTransform {\r\n #maxSecond = 60;\r\n #maxMinute = this.#maxSecond * 60;\r\n #maxHour = this.#maxMinute * 24;\r\n #maxDay = this.#maxHour * 30;\r\n #maxMonth = this.#maxHour * 365;\r\n #isMobileOrTablet = false;\r\n constructor(\r\n deviceService: DeviceDetectorService,\r\n private utilityService: SdUtilityService,\r\n private columnValuesPipe: SdColumnValuesPipe) {\r\n this.#isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n async transform(\r\n value: any,\r\n rowData: any,\r\n column: SdGridMaterialColumn,\r\n gridOption: SdGridMaterialOption): Promise<SdCellView> {\r\n const { displayOnEmpty } = gridOption;\r\n const { align, click, tooltip, htmlTemplate, transform } = column;\r\n const result: SdCellView = {\r\n badge: null,\r\n tooltip: null,\r\n display: {\r\n align: align || (column.type === 'number' ? 'right' : 'left'),\r\n value\r\n },\r\n click: null\r\n };\r\n // Display\r\n if (typeof (htmlTemplate) === 'function') {\r\n result.display.hasHtml = true;\r\n result.display.html = htmlTemplate(value, rowData, this.#isMobileOrTablet);\r\n } else {\r\n if (column.type === 'datetime' || column.type === 'date' || column.type === 'time') {\r\n const { transformDate } = column;\r\n if (transformDate) {\r\n value = transformDate(value, rowData);\r\n }\r\n }\r\n if (typeof (transform) === 'function') {\r\n const val = transform(value, rowData);\r\n if (val instanceof Promise) {\r\n result.display.value = await val;\r\n } else {\r\n result.display.value = val;\r\n }\r\n } else {\r\n if (column.type === 'date' || column.type === 'datetime') {\r\n const { option } = column;\r\n const seconds = Math.round((new Date().getTime() - new Date(value).getTime()) / 1000);\r\n if (option?.timeDifferent === 'month' && seconds < this.#maxMonth) {\r\n result.display.value = this.utilityService.timeDifference(value);\r\n result.tooltip = Date.toFormat(value, column.type === 'date' ? 'dd/MM/yyyy' : 'dd/MM/yyyy HH:mm');\r\n } else if (option?.timeDifferent === 'day' && seconds < this.#maxDay) {\r\n result.display.value = this.utilityService.timeDifference(value);\r\n result.tooltip = Date.toFormat(value, column.type === 'date' ? 'dd/MM/yyyy' : 'dd/MM/yyyy HH:mm');\r\n } else if (option?.timeDifferent === 'hour' && seconds < this.#maxHour) {\r\n result.display.value = this.utilityService.timeDifference(value);\r\n result.tooltip = Date.toFormat(value, column.type === 'date' ? 'dd/MM/yyyy' : 'dd/MM/yyyy HH:mm');\r\n } else if (option?.timeDifferent === 'minute' && seconds < this.#maxMinute) {\r\n result.display.value = this.utilityService.timeDifference(value);\r\n result.tooltip = Date.toFormat(value, column.type === 'date' ? 'dd/MM/yyyy' : 'dd/MM/yyyy HH:mm');\r\n } else if (option?.timeDifferent === 'second' && seconds < this.#maxSecond) {\r\n result.display.value = this.utilityService.timeDifference(value);\r\n result.tooltip = Date.toFormat(value, column.type === 'date' ? 'dd/MM/yyyy' : 'dd/MM/yyyy HH:mm');\r\n } else {\r\n const date = Date.toFormat(value, 'dd/MM/yyyy');\r\n const time = Date.toFormat(value, 'HH:mm');\r\n const dateTime = Date.toFormat(value, 'HH:mm');\r\n if (column.type === 'datetime' && time && time !== '00:00') {\r\n result.display.value = dateTime;\r\n result.display.hasHtml = true;\r\n result.display.html = `<span class=\"d-block T14R text-black400\">${Date.toFormat(value, 'HH:mm')}</span><span class=\"d-block T14R\">${Date.toFormat(value, 'dd/MM/yyyy')}</span>`;\r\n } else {\r\n result.display.value = date;\r\n }\r\n }\r\n }\r\n if (column.type === 'time') {\r\n result.display.value = Date.toFormat(value, 'HH:mm');\r\n }\r\n if (column.type === 'values') {\r\n result.display.value = await this.columnValuesPipe.transform(value, column);\r\n } else if (column.type === 'number' && Number.isNumber(value)) {\r\n result.display.value = Number.toVNCurrency(value);\r\n }\r\n if (column.type === 'bool') {\r\n const { option } = column;\r\n if (value !== undefined && value !== null && value !== '') {\r\n result.display.value = value === true ? (option?.displayOnTrue || 'True') : (option?.displayOnFalse || 'False');\r\n } else {\r\n result.display.value = null;\r\n }\r\n }\r\n }\r\n if (displayOnEmpty) {\r\n let values = [null, undefined, ''];\r\n if (typeof (displayOnEmpty) === 'object') {\r\n const { display, emptyValues } = displayOnEmpty;\r\n values = [null, undefined, '', ...emptyValues];\r\n if (values.includes(result.display.value)) {\r\n if (typeof (display) === 'function') {\r\n result.display.hasHtml = true;\r\n result.display.html = display(rowData, column);\r\n } else {\r\n result.display.hasHtml = true;\r\n result.display.html = `<div class=\"T16R text-black400\">--</div>`;\r\n }\r\n }\r\n } else {\r\n if (values.includes(result.display.value)) {\r\n if (typeof (displayOnEmpty) === 'function') {\r\n result.display.hasHtml = true;\r\n result.display.html = displayOnEmpty(rowData, column);\r\n } else {\r\n result.display.hasHtml = true;\r\n result.display.html = `<div class=\"T16R text-black400\">--</div>`;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // Badge\r\n if ((column.type === 'string' || column.type === 'number' || column.type === 'values') && column.badge) {\r\n result.badge = {\r\n type: !column?.badgeType ? 'round' : column.badgeType,\r\n color: column.badge(value, rowData),\r\n icon: column?.badgeIcon?.(value, rowData)\r\n };\r\n } else if (column.type === 'bool') {\r\n result.badge = {\r\n type: !column?.badgeType ? 'round' : column.badgeType,\r\n color: !!value ? 'success' : 'danger',\r\n icon: null\r\n };\r\n }\r\n // Tooltip\r\n if (typeof (tooltip) === 'function') {\r\n result.tooltip = tooltip(value, rowData);\r\n }\r\n // Clickable\r\n if (typeof (click) === 'function') {\r\n result.click = () => click(value, rowData);\r\n }\r\n if(result.display.value === null) {\r\n result.display.value = undefined;\r\n }\r\n return result;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { SdGridMaterialOption } from '../models/grid-option.model';\r\nimport { SdGridMaterialItem } from '../models/grid.model';\r\n@Pipe({\r\n name: 'sdGroup'\r\n})\r\nexport class SdGroupPipe implements PipeTransform {\r\n transform(items: any[], gridOption: SdGridMaterialOption): SdGridMaterialItem[] {\r\n const { group } = gridOption;\r\n if (!group) {\r\n return items;\r\n }\r\n const { fields, htmlTemplate } = group;\r\n if (!fields?.length) {\r\n return items;\r\n }\r\n const groupItem: {\r\n [key: string]: SdGridMaterialItem[]\r\n } = {};\r\n for (const item of items) {\r\n let obj = {};\r\n for (const field of fields) {\r\n obj = {\r\n ...obj,\r\n ...(item[field] ?? { [field]: item[field] })\r\n };\r\n }\r\n const key = hash(obj);\r\n if (!groupItem[key]) {\r\n groupItem[key] = [];\r\n }\r\n groupItem[key].push(item);\r\n }\r\n const results: SdGridMaterialItem[] = [];\r\n for (const key of Object.keys(groupItem)) {\r\n results.push({\r\n sdGroup: {\r\n items: groupItem[key],\r\n htmlTemplate: htmlTemplate(groupItem[key])\r\n }\r\n });\r\n for (const item of groupItem[key]) {\r\n results.push(item);\r\n }\r\n }\r\n return results;\r\n }\r\n}\r\n","import { Injectable, NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe, DecimalPipe } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { SdGridMaterial } from './grid-material.component';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatPaginatorIntl, MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { CdkTableModule, CdkColumnDef } from '@angular/cdk/table';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { SdCommandFilterPipe } from './pipes/command-filter.pipe';\r\nimport { SdCommandDisablePipe } from './pipes/command-disable.pipe';\r\nimport { SdCommandIconPipe } from './pipes/command-icon.pipe';\r\nimport { SdCommandTitlePipe } from './pipes/command-title.pipe';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { SdColumnValuesPipe } from './pipes/column-values.pipe';\r\nimport { SdColumnHtmlTemplatePipe } from './pipes/column-html-template.pipe';\r\nimport { SdDesktopCellView } from './components/desktop-cell-view/desktop-cell-view.component';\r\nimport { SdColumnTransformPipe } from './pipes/column-transform.pipe';\r\nimport { SdServiceModule } from '@sd-angular/core/service';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { SdMaterialCellDefDirective } from './directives/sd-material-cell-def.directive';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { SdFilterExternalPipe } from './pipes/filter-external.pipe';\r\nimport { SdFilterColumnPipe } from './pipes/filter-column.pipe';\r\nimport { SdGridFilter } from './components/grid-filter/grid-filter.component';\r\nimport { SdPopupFilter } from './components/popup-filter/popup-filter.component';\r\n\r\nimport { SdGridFilterService } from './services/grid-filter/grid-filter.service';\r\nimport { SdDesktopCellChildrenView } from './components/desktop-cell-children-view/desktop-cell-children-view.component';\r\nimport { SdColumnChildrenFilterPipe } from './pipes/column-children-filter.pipe';\r\nimport { SdColumnTitlePipe } from './pipes/column-title.pipe';\r\nimport { SdDesktopCommand } from './components/desktop-command/desktop-command.component';\r\nimport { SdMaterialFilterDefDirective } from './directives/sd-material-filter-def.directive';\r\nimport { SdMaterialFooterDefDirective } from './directives/sd-material-footer-def.directive';\r\nimport { SdMaterialSubInformationDefDirective } from './directives/sd-material-sub-information-def.directive';\r\nimport { SdFormModule } from '@sd-angular/core/form';\r\nimport { SdMaterialEmptyDataDefDirective } from './directives/sd-material-empty-data-def.directive';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { SdColumnBadgePipe } from './pipes/column-badge.pipe';\r\nimport { SdGridConfigurationResultPipe } from './pipes/grid-configuration-result.pipe';\r\nimport { SdPopupExport } from './components/popup-export/popup-export.component';\r\nimport { SdPopupGridConfiguration } from './components/popup-grid-configuration/popup-grid-configuration.component';\r\nimport { SdGridConfigurationService } from './services/grid-configuration.service';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { SdColumnTooltipPipe } from './pipes/column-tooltip.pipe';\r\nimport { SdSelectionActionFilterPipe } from './pipes/selection-action-filter.pipe';\r\nimport { SdSelectionDisablePipe } from './pipes/selection-disable.pipe';\r\nimport { SdSelectionVisibleSelectAllPipe } from './pipes/selection-visible-select-all.pipe';\r\nimport { SdDynamicColumn } from './components/dynamic-column/dynamic-column.component';\r\nimport { SdGeneratedColumnService } from './services/generated-column/generated-column.service';\r\nimport { SdDesktopCell } from './components/desktop-cell/desktop-cell.component';\r\nimport { SdDesktopCellEditor } from './components/desktop-cell-editor/desktop-cell-editor.component';\r\nimport { SdEditorHandlerRowPipe } from './pipes/editor-handler-row.pipe';\r\nimport { SdEditorHandlerColumnPipe } from './pipes/editor-handler-column.pipe';\r\nimport { SdEditorValidatePipe } from './pipes/editor-validate.pipe';\r\nimport { SdStyleRowCss } from './pipes/style-row-css.pipe';\r\nimport { SdDesktopEditorValidation } from './components/desktop-editor-validation/desktop-editor-validation.component';\r\nimport { SdColumnInlineFilter } from './components/column-inline-filter/column-inline-filter.component';\r\nimport { SdSelectionVisiblePipe } from './pipes/selection-visible.pipe';\r\nimport { SdGridQuickAction } from './components/quick-action/quick-action.component';\r\nimport { SdCommonModule } from '@sd-angular/core/common';\r\nimport { SdCellViewPipe } from './pipes/cell-view.pipe';\r\nimport { SdGroupPipe } from './pipes/sd-group.pipe';\r\nimport { SdGroupModule } from '@sd-angular/core/group';\r\n\r\n@Injectable()\r\nexport class MatPaginatorIntlCro extends MatPaginatorIntl {\r\n firstPageLabel = 'Trang đầu';\r\n lastPageLabel = 'Trang cuối';\r\n itemsPerPageLabel = 'Kích thước trang';\r\n nextPageLabel = 'Trang sau';\r\n previousPageLabel = 'Trang trước';\r\n\r\n getRangeLabel = (page: number, pageSize: number, length: number) => {\r\n if (length === 0 || pageSize === 0) {\r\n return '';\r\n }\r\n const from = page * pageSize + 1;\r\n const to = from + (length - page * pageSize > pageSize ? pageSize : length - page * pageSize) - 1;\r\n return `${from}-${to} trên ${length}`;\r\n }\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatFormFieldModule,\r\n MatSortModule,\r\n MatPaginatorModule,\r\n MatTableModule,\r\n MatMenuModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatProgressSpinnerModule,\r\n MatChipsModule,\r\n MatRadioModule,\r\n MatSlideToggleModule,\r\n MatCheckboxModule,\r\n MatListModule,\r\n MatDividerModule,\r\n CdkTableModule,\r\n DragDropModule,\r\n SdFormModule,\r\n SdServiceModule,\r\n MatSliderModule,\r\n ScrollingModule,\r\n SdCommonModule,\r\n SdGroupModule\r\n ],\r\n declarations: [\r\n SdGridQuickAction,\r\n SdDesktopCell,\r\n SdDesktopCellEditor,\r\n SdDesktopEditorValidation,\r\n SdDesktopCellView,\r\n SdDesktopCellChildrenView,\r\n SdDesktopCommand,\r\n SdColumnInlineFilter,\r\n SdGridMaterial,\r\n\r\n SdMaterialFooterDefDirective,\r\n SdMaterialCellDefDirective,\r\n SdMaterialFilterDefDirective,\r\n SdMaterialSubInformationDefDirective,\r\n SdMaterialEmptyDataDefDirective,\r\n SdPopupExport,\r\n SdPopupGridConfiguration,\r\n SdGridFilter,\r\n SdPopupFilter,\r\n SdDynamicColumn,\r\n\r\n // Pipes\r\n SdGridConfigurationResultPipe,\r\n SdColumnChildrenFilterPipe,\r\n SdColumnTitlePipe,\r\n SdCommandFilterPipe,\r\n SdCommandDisablePipe,\r\n SdCommandIconPipe,\r\n SdCommandTitlePipe,\r\n SdColumnValuesPipe,\r\n SdColumnHtmlTemplatePipe,\r\n SdColumnTransformPipe,\r\n SdColumnTooltipPipe,\r\n SdColumnBadgePipe,\r\n SdFilterColumnPipe,\r\n SdFilterExternalPipe,\r\n SdSelectionActionFilterPipe,\r\n SdSelectionVisiblePipe,\r\n SdSelectionDisablePipe,\r\n SdSelectionVisibleSelectAllPipe,\r\n SdEditorHandlerRowPipe,\r\n SdEditorHandlerColumnPipe,\r\n SdEditorValidatePipe,\r\n SdStyleRowCss,\r\n SdCellViewPipe,\r\n SdGroupPipe\r\n ],\r\n exports: [\r\n SdGridMaterial,\r\n SdMaterialFooterDefDirective,\r\n SdMaterialCellDefDirective,\r\n SdMaterialFilterDefDirective,\r\n SdMaterialEmptyDataDefDirective,\r\n SdMaterialSubInformationDefDirective\r\n ],\r\n providers: [\r\n DatePipe,\r\n DecimalPipe,\r\n CdkColumnDef,\r\n SdGridFilterService,\r\n SdGridConfigurationService,\r\n SdGeneratedColumnService,\r\n SdColumnValuesPipe,\r\n SdEditorHandlerColumnPipe,\r\n {\r\n provide: MatPaginatorIntl, useClass: MatPaginatorIntlCro\r\n }\r\n ]\r\n})\r\nexport class SdGridMaterialModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {SdColumnInlineFilter as ɵp} from './src/lib/components/column-inline-filter/column-inline-filter.component';\nexport {SdDesktopCellChildrenView as ɵn} from './src/lib/components/desktop-cell-children-view/desktop-cell-children-view.component';\nexport {SdDesktopCellEditor as ɵk} from './src/lib/components/desktop-cell-editor/desktop-cell-editor.component';\nexport {SdDesktopCellView as ɵm} from './src/lib/components/desktop-cell-view/desktop-cell-view.component';\nexport {SdDesktopCell as ɵj} from './src/lib/components/desktop-cell/desktop-cell.component';\nexport {SdDesktopCommand as ɵo} from './src/lib/components/desktop-command/desktop-command.component';\nexport {SdDesktopEditorValidation as ɵl} from './src/lib/components/desktop-editor-validation/desktop-editor-validation.component';\nexport {SdDynamicColumn as ɵr} from './src/lib/components/dynamic-column/dynamic-column.component';\nexport {SdGridFilter as ɵb} from './src/lib/components/grid-filter/grid-filter.component';\nexport {SdPopupExport as ɵd} from './src/lib/components/popup-export/popup-export.component';\nexport {SdPopupFilter as ɵc} from './src/lib/components/popup-filter/popup-filter.component';\nexport {SdPopupGridConfiguration as ɵq} from './src/lib/components/popup-grid-configuration/popup-grid-configuration.component';\nexport {SdGridQuickAction as ɵi} from './src/lib/components/quick-action/quick-action.component';\nexport {MatPaginatorIntlCro as ɵa} from './src/lib/grid-material.module';\nexport {SdCellViewPipe as ɵbn} from './src/lib/pipes/cell-view.pipe';\nexport {SdColumnBadgePipe as ɵbd} from './src/lib/pipes/column-badge.pipe';\nexport {SdColumnChildrenFilterPipe as ɵu} from './src/lib/pipes/column-children-filter.pipe';\nexport {SdColumnHtmlTemplatePipe as ɵba} from './src/lib/pipes/column-html-template.pipe';\nexport {SdColumnTitlePipe as ɵv} from './src/lib/pipes/column-title.pipe';\nexport {SdColumnTooltipPipe as ɵbc} from './src/lib/pipes/column-tooltip.pipe';\nexport {SdColumnTransformPipe as ɵbb} from './src/lib/pipes/column-transform.pipe';\nexport {SdColumnValuesPipe as ɵf} from './src/lib/pipes/column-values.pipe';\nexport {SdCommandDisablePipe as ɵx} from './src/lib/pipes/command-disable.pipe';\nexport {SdCommandFilterPipe as ɵw} from './src/lib/pipes/command-filter.pipe';\nexport {SdCommandIconPipe as ɵy} from './src/lib/pipes/command-icon.pipe';\nexport {SdCommandTitlePipe as ɵz} from './src/lib/pipes/command-title.pipe';\nexport {SdEditorHandlerColumnPipe as ɵh} from './src/lib/pipes/editor-handler-column.pipe';\nexport {SdEditorHandlerRowPipe as ɵbk} from './src/lib/pipes/editor-handler-row.pipe';\nexport {SdEditorValidatePipe as ɵbl} from './src/lib/pipes/editor-validate.pipe';\nexport {SdFilterColumnPipe as ɵbe} from './src/lib/pipes/filter-column.pipe';\nexport {SdFilterExternalPipe as ɵbf} from './src/lib/pipes/filter-external.pipe';\nexport {SdGridConfigurationResultPipe as ɵt} from './src/lib/pipes/grid-configuration-result.pipe';\nexport {SdGroupPipe as ɵbo} from './src/lib/pipes/sd-group.pipe';\nexport {SdSelectionActionFilterPipe as ɵbg} from './src/lib/pipes/selection-action-filter.pipe';\nexport {SdSelectionDisablePipe as ɵbi} from './src/lib/pipes/selection-disable.pipe';\nexport {SdSelectionVisibleSelectAllPipe as ɵbj} from './src/lib/pipes/selection-visible-select-all.pipe';\nexport {SdSelectionVisiblePipe as ɵbh} from './src/lib/pipes/selection-visible.pipe';\nexport {SdStyleRowCss as ɵbm} from './src/lib/pipes/style-row-css.pipe';\nexport {SdGeneratedColumnService as ɵs} from './src/lib/services/generated-column/generated-column.service';\nexport {SdGridConfigurationService as ɵe} from './src/lib/services/grid-configuration.service';\nexport {SdGridFilterService as ɵg} from './src/lib/services/grid-filter/grid-filter.service';"],"names":["InjectionToken","Directive","TemplateRef","Input","Component","ChangeDetectionStrategy","ChangeDetectorRef","ViewChild","SdModal","BehaviorSubject","Subscription","startWith","DeviceDetectorService","EventEmitter","FormGroup","hash","SdLoadingService","SdExportService","SdNotifyService","SdTranslateService","Output","Subject","Injectable","SdSettingService","Inject","Optional","_cache","Pipe","NgZone","map","uuid.v4","QueryList","_subscription","_initConfiguration","debounceTime","_load","isObservable","switchMap","combineLatest","moveItemInArray","trigger","state","style","transition","animate","SdScrollDirective","SdQuickAction","MatPaginator","MatSort","ContentChild","ContentChildren","HostListener","SdSideDrawer","ElementRef","Renderer2","_visible","_isMobileOrTablet","SdUtilityService","MatPaginatorIntl","NgModule","CommonModule","FormsModule","ReactiveFormsModule","MatInputModule","MatFormFieldModule","MatSortModule","MatPaginatorModule","MatTableModule","MatMenuModule","MatIconModule","MatButtonModule","MatTooltipModule","MatProgressSpinnerModule","MatChipsModule","MatRadioModule","MatSlideToggleModule","MatCheckboxModule","MatListModule","MatDividerModule","CdkTableModule","DragDropModule","SdFormModule","SdServiceModule","MatSliderModule","ScrollingModule","SdCommonModule","SdGroupModule","DatePipe","DecimalPipe","CdkColumnDef"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sd-angular-core-grid-material.umd.js","sources":["../../../../projects/sd-core/grid-material/src/lib/models/grid-configuration.model.ts","../../../../projects/sd-core/grid-material/src/lib/directives/sd-material-cell-def.directive.ts","../../../../projects/sd-core/grid-material/src/lib/directives/sd-material-filter-def.directive.ts","../../../../projects/sd-core/grid-material/src/lib/directives/sd-material-footer-def.directive.ts","../../../../projects/sd-core/grid-material/src/lib/directives/sd-material-empty-data-def.directive.ts","../../../../projects/sd-core/grid-material/src/lib/directives/sd-material-sub-information-def.directive.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/grid-material/src/lib/components/popup-filter/popup-filter.component.ts","../../../../projects/sd-core/grid-material/src/lib/components/grid-filter/grid-filter.component.ts","../../../../projects/sd-core/grid-material/src/lib/components/popup-export/popup-export.component.ts","../../../../projects/sd-core/grid-material/src/lib/services/grid-configuration.service.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/column-values.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/functions/calculate-sd-id.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/editor-handler-column.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/services/grid-filter/grid-filter.service.ts","../../../../projects/sd-core/grid-material/src/lib/grid-material.component.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/command-filter.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/command-disable.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/command-icon.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/command-title.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/column-html-template.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/components/desktop-cell-view/desktop-cell-view.component.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/column-transform.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/filter-external.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/filter-column.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/components/desktop-cell-children-view/desktop-cell-children-view.component.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/column-children-filter.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/column-title.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/components/desktop-command/desktop-command.component.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/column-badge.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/grid-configuration-result.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/components/popup-grid-configuration/popup-grid-configuration.component.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/column-tooltip.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/selection-action-filter.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/selection-disable.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/selection-visible-select-all.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/services/generated-column/generated-column.service.ts","../../../../projects/sd-core/grid-material/src/lib/components/dynamic-column/dynamic-column.component.ts","../../../../projects/sd-core/grid-material/src/lib/components/desktop-cell/desktop-cell.component.ts","../../../../projects/sd-core/grid-material/src/lib/components/desktop-cell-editor/desktop-cell-editor.component.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/editor-handler-row.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/editor-validate.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/style-row-css.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/components/desktop-editor-validation/desktop-editor-validation.component.ts","../../../../projects/sd-core/grid-material/src/lib/models/grid-column.model.ts","../../../../projects/sd-core/grid-material/src/lib/components/column-inline-filter/column-inline-filter.component.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/selection-visible.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/components/quick-action/quick-action.component.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/cell-view.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/pipes/sd-group.pipe.ts","../../../../projects/sd-core/grid-material/src/lib/grid-material.module.ts","../../../../projects/sd-core/grid-material/sd-angular-core-grid-material.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { SdFilterOperator } from './grid-column.model';\r\n\r\nexport interface ISdGridMaterialConfiguration {\r\n filter?: {\r\n quickFilter?: boolean;\r\n operator?: {\r\n defaultListString?: SdFilterOperator[];\r\n defaultListNumber?: SdFilterOperator[];\r\n defaultListDate?: SdFilterOperator[];\r\n defaultListValues?: SdFilterOperator[];\r\n };\r\n };\r\n paginate?: {\r\n pageSize?: number;\r\n pages?: number[];\r\n };\r\n translate?: boolean;\r\n}\r\n\r\nexport const DEFAULT_GRID_MATERIAL_CONFIG: ISdGridMaterialConfiguration = {\r\n paginate: {\r\n pageSize: 50,\r\n pages: [50, 100, 200],\r\n },\r\n};\r\n\r\nexport const GRID_MATERIAL_CONFIG = new InjectionToken<ISdGridMaterialConfiguration>('sd-grid-material.configuration');\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdMaterialCellDef]'\r\n})\r\nexport class SdMaterialCellDefDirective {\r\n @Input() sdMaterialCellDef: string;\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdMaterialFilterDef]'\r\n})\r\nexport class SdMaterialFilterDefDirective {\r\n @Input() sdMaterialFilterDef: string;\r\n @Input('defaultShowing') set showing(val: boolean | '') {\r\n this.defaultShowing = (val === '') || val;\r\n }\r\n defaultShowing: boolean;\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdMaterialFooterDef]'\r\n})\r\nexport class SdMaterialFooterDefDirective {\r\n @Input() sdMaterialFooterDef: string;\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdMaterialEmptyDataDef]'\r\n})\r\nexport class SdMaterialEmptyDataDefDirective {\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdMaterialSubInformationDef]'\r\n})\r\nexport class SdMaterialSubInformationDefDirective {\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","/*! *****************************************************************************\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(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, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, 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\n/** @deprecated */\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\n/** @deprecated */\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 __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, 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, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Component, ViewChild, Input, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\r\nimport { SdModal } from '@sd-angular/core/modal';\r\nimport { SdGridMaterialColumn } from '../../models/grid-column.model';\r\nimport { SdGridMaterialExternalFilter, SdGridMaterialFilterRegister } from '../../services/grid-filter/grid-filter.model';\r\nimport { SdMaterialFilterDefDirective } from '../../directives/sd-material-filter-def.directive';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'sd-popup-filter',\r\n templateUrl: './popup-filter.component.html',\r\n styleUrls: ['./popup-filter.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdPopupFilter {\r\n @ViewChild(SdModal) modal: SdModal;\r\n #filterRegister: SdGridMaterialFilterRegister;\r\n @Input() set filterRegister(value: SdGridMaterialFilterRegister) {\r\n this.#filterRegister = value;\r\n }\r\n @Input() externalFilters: SdGridMaterialExternalFilter[] = [];\r\n externalFilter: Record<string, any> = {};\r\n inlineExternal: Record<string, boolean> = {};\r\n @Input() columns: SdGridMaterialColumn[] = [];\r\n columnFilter: Record<string, any> = {};\r\n inlineColumn: Record<string, boolean> = {};\r\n\r\n @Input() filterDefs: SdMaterialFilterDefDirective[] = [];\r\n filterDef: Record<string, any> = {};\r\n inlineFilterDef: Record<string, boolean> = {};\r\n constructor(private cdRef: ChangeDetectorRef) {}\r\n\r\n ngAfterViewInit() {}\r\n\r\n ngOnDestroy() {}\r\n\r\n open = () => {\r\n const configuration = this.#filterRegister.configuration.get();\r\n this.inlineColumn = JSON.parse(JSON.stringify(configuration.inlineColumn));\r\n this.inlineExternal = JSON.parse(JSON.stringify(configuration.inlineExternal));\r\n this.inlineFilterDef = JSON.parse(JSON.stringify(configuration.inlineFilterDef));\r\n const filterValue = this.#filterRegister.value.get();\r\n this.columnFilter = JSON.parse(JSON.stringify(filterValue.columnFilter));\r\n this.externalFilter = JSON.parse(JSON.stringify(filterValue.externalFilter));\r\n this.filterDef = JSON.parse(JSON.stringify(filterValue.filterDef));\r\n this.modal.open();\r\n this.cdRef.markForCheck();\r\n };\r\n\r\n close = () => {\r\n this.modal.close();\r\n this.cdRef.markForCheck();\r\n };\r\n\r\n onApply = () => {\r\n this.#filterRegister.configuration.set({\r\n inlineColumn: this.inlineColumn,\r\n inlineExternal: this.inlineExternal,\r\n inlineFilterDef: this.inlineFilterDef,\r\n });\r\n this.#filterRegister.value.set({\r\n columnFilter: this.columnFilter,\r\n externalFilter: this.externalFilter,\r\n filterDef: this.filterDef,\r\n });\r\n this.modal.close();\r\n this.cdRef.markForCheck();\r\n };\r\n\r\n onClear() {\r\n this.#filterRegister.value.remove();\r\n this.modal.close();\r\n this.cdRef.markForCheck();\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n AfterViewInit,\r\n OnDestroy,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n} from '@angular/core';\r\nimport {\r\n SdGridMaterialFilterOption,\r\n SdGridMaterialExternalFilter,\r\n SdGridMaterialFilterRegister,\r\n} from '../../services/grid-filter/grid-filter.model';\r\nimport { SdGridMaterialColumn } from '../../models/grid-column.model';\r\nimport { SdPopupFilter } from '../popup-filter/popup-filter.component';\r\nimport { BehaviorSubject, Subject, Subscription } from 'rxjs';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { SdMaterialFilterDefDirective } from '../../directives/sd-material-filter-def.directive';\r\nimport { startWith } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'sd-grid-filter',\r\n templateUrl: './grid-filter.component.html',\r\n styleUrls: ['./grid-filter.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdGridFilter implements AfterViewInit, OnDestroy {\r\n @ViewChild(SdPopupFilter) popupFilter: SdPopupFilter;\r\n filter: Readonly<SdGridMaterialFilterOption>;\r\n @Input('filter') set _filter(filter: SdGridMaterialFilterOption) {\r\n this.filter = filter;\r\n }\r\n @Input() columns: SdGridMaterialColumn[] = [];\r\n externalFilters: SdGridMaterialExternalFilter[] = [];\r\n @Input('externalFilters') set _externalFilters(value: SdGridMaterialExternalFilter[]) {\r\n this.externalFilters = value || [];\r\n }\r\n @Input() filterDefs: SdMaterialFilterDefDirective[] = [];\r\n filterRegister: SdGridMaterialFilterRegister;\r\n @Input('filterRegister') set _filterRegister(value: SdGridMaterialFilterRegister) {\r\n this.filterRegister = value;\r\n this.filterRegisterChange.next(this.filterRegister);\r\n }\r\n filterRegisterChange = new BehaviorSubject<SdGridMaterialFilterRegister>(null);\r\n\r\n filterDef: any = {};\r\n inlineFilterDef: Record<string, boolean> = {};\r\n columnFilter: any = {};\r\n inlineColumn: Record<string, boolean> = {};\r\n externalFilter: any = {};\r\n inlineExternal: Record<string, boolean> = {};\r\n isMobileOrTablet: boolean;\r\n\r\n #subscription = new Subscription();\r\n\r\n constructor(private ref: ChangeDetectorRef, private deviceService: DeviceDetectorService) {\r\n this.isMobileOrTablet = !this.deviceService.isDesktop();\r\n this.ref.markForCheck();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#subscription.add(\r\n this.filterRegisterChange.pipe(startWith(this.filterRegister)).subscribe(filterRegister => {\r\n if (this.filterRegister) {\r\n this.#subscription.add(\r\n this.filterRegister.configuration.observer.subscribe(configuration => {\r\n const { inlineColumn, inlineExternal, inlineFilterDef } = configuration;\r\n this.inlineColumn = inlineColumn;\r\n this.inlineExternal = inlineExternal;\r\n this.inlineFilterDef = inlineFilterDef;\r\n this.ref.markForCheck();\r\n })\r\n );\r\n this.#subscription.add(\r\n this.filterRegister.value.observer.subscribe(value => {\r\n const { columnFilter, externalFilter, filterDef } = value;\r\n this.columnFilter = columnFilter;\r\n this.externalFilter = externalFilter;\r\n this.filterDef = filterDef;\r\n this.ref.markForCheck();\r\n })\r\n );\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n onFilter = (item?: SdGridMaterialColumn | SdGridMaterialExternalFilter) => {\r\n this.filterRegister.value.set({\r\n columnFilter: this.columnFilter,\r\n externalFilter: this.externalFilter,\r\n filterDef: this.filterDef,\r\n });\r\n };\r\n\r\n updateFilter = () => {\r\n this.filterRegister.value.set({\r\n columnFilter: this.columnFilter,\r\n externalFilter: this.externalFilter,\r\n filterDef: this.filterDef,\r\n notReload: true\r\n });\r\n };\r\n\r\n open = () => {\r\n this.popupFilter.open();\r\n };\r\n}\r\n","import { Component, OnInit, AfterViewInit, ViewChild, Output, EventEmitter, Input, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport * as uuid from 'uuid';\r\n\r\nimport {\r\n SdNotifyService\r\n} from '@sd-angular/core/notify';\r\n\r\nimport {\r\n SdLoadingService\r\n} from '@sd-angular/core/loading';\r\n\r\nimport {\r\n SdTranslateService\r\n} from '@sd-angular/core/translate';\r\nimport hash from 'object-hash';\r\nimport { MatSelectionList } from '@angular/material/list';\r\nimport { SdGridMaterialOption } from '../../models/grid-option.model';\r\nimport { SdModal } from '@sd-angular/core/modal';\r\nimport { SdExportFile, SdExportService, SdExportColumn } from '@sd-angular/core/export';\r\nimport { SdGroupExport } from '../../models/grid-export.model';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { SdGridConfigurationResult } from '../../models/grid-config.model';\r\nimport { SdGridMaterialColumn } from '../../models/grid-column.model';\r\n\r\n@Component({\r\n selector: 'sd-popup-export',\r\n templateUrl: './popup-export.component.html',\r\n styleUrls: ['./popup-export.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdPopupExport implements OnInit, AfterViewInit {\r\n gridOption: SdGridMaterialOption;\r\n columns: SdExportColumn[] = [];\r\n groups: SdGroupExport[] = [];\r\n templateName: string;\r\n enableCreating = false;\r\n @ViewChild('modal') modal: SdModal;\r\n @ViewChild('listGroups') listGroups: MatSelectionList;\r\n\r\n selected: {\r\n [key: string]: boolean\r\n } = {};\r\n files: SdExportFile[] = [];\r\n selectedGroup: SdGroupExport;\r\n\r\n @Output() export = new EventEmitter<{ file: SdExportFile, columns: SdExportColumn[], isCSV?: boolean }>();\r\n form = new FormGroup({});\r\n\r\n @Input('gridOption') set _gridOption(option: SdGridMaterialOption) {\r\n this.gridOption = option;\r\n this.columns = this.#getExportableColumns();\r\n this.groups = this.#getExportableGroups();\r\n }\r\n @Input() configuration: SdGridConfigurationResult;\r\n private get key(): string {\r\n const prefix = '93889e78-f971-4a1d-8c73-fe2321af9233';\r\n if (!this.gridOption?.export?.key) {\r\n return null;\r\n }\r\n return hash({\r\n prefix,\r\n key: this.gridOption?.export?.key\r\n });\r\n }\r\n\r\n private get gridColumns() {\r\n const columns: SdExportColumn[] = [];\r\n this.gridOption.columns.filter(e => !e.export?.disabled).forEach(column => {\r\n if (column.type === 'image') {\r\n return;\r\n }\r\n if (column.type === 'children') {\r\n column.children?.filter(e => !e.export?.disabled).forEach(childColumn => {\r\n if (childColumn.type === 'image') {\r\n return;\r\n }\r\n columns.push(childColumn);\r\n });\r\n return;\r\n }\r\n if (column.type === 'children-col') {\r\n column.children?.filter(e => !e.export?.disabled).forEach(childColumn => {\r\n if (childColumn.type === 'image') {\r\n return;\r\n }\r\n columns.push(childColumn);\r\n });\r\n return;\r\n }\r\n columns.push(column);\r\n });\r\n return columns.map(e => ({\r\n field: e.field,\r\n title: e.title,\r\n description: e.description,\r\n width: e.width\r\n }));\r\n }\r\n private get additionalColumns() {\r\n return (this.gridOption.export?.columns?.filter(e => !e.export?.disabled) || []).map(e => ({\r\n field: e.field,\r\n title: e.title,\r\n description: e.description,\r\n width: e.width\r\n }));\r\n }\r\n\r\n #getExportableColumns = (): SdExportColumn[] => {\r\n return [...this.gridColumns, ...this.additionalColumns];\r\n }\r\n\r\n #getExportableGroups = () => {\r\n return this.gridOption?.export?.groups?.filter(e => {\r\n const permission = e.permission;\r\n if (typeof (permission) === 'function') {\r\n return permission();\r\n }\r\n return permission;\r\n }) || [];\r\n }\r\n\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private loadingService: SdLoadingService,\r\n private exportService: SdExportService,\r\n private notifyService: SdNotifyService,\r\n private translateService: SdTranslateService\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n open = async () => {\r\n if (!this.key) {\r\n this.exportDefault();\r\n return;\r\n }\r\n if (this.groups.length === 1 && this.gridOption?.export?.hideMyTemplates) {\r\n this.loadFiles(this.groups[0].code);\r\n } else {\r\n this.loadFiles(null);\r\n }\r\n this.selected = {};\r\n this.modal.open();\r\n this.ref.detectChanges();\r\n }\r\n\r\n #getExportColumns = () => {\r\n if (this.configuration) {\r\n const columns = [...this.gridColumns];\r\n const { firstColumns, secondColumns } = this.configuration;\r\n const displayColumns: SdGridMaterialColumn<any>[] = [...firstColumns, ...secondColumns].reduce((first, next) => {\r\n const column = this.gridOption.columns.find(e => e.field === next.field);\r\n if (!column) {\r\n return first;\r\n }\r\n if (column.type !== 'children' && column.type !== 'children-col') {\r\n return [...first, column];\r\n }\r\n const children = column.children.filter(e1 => e1.type !== 'image');\r\n return [...first, ...children];\r\n }, []);\r\n const results = displayColumns.map(e => ({\r\n ...e,\r\n data: columns.find(e1 => e1.field === e.field)\r\n })).filter(e => !!e.data)\r\n .map(e => e.data);\r\n return [...results, ...this.additionalColumns];\r\n } else {\r\n return this.columns;\r\n }\r\n }\r\n\r\n exportDefault = () => {\r\n this.export.emit({\r\n file: null,\r\n columns: this.#getExportColumns(),\r\n isCSV: false\r\n });\r\n }\r\n\r\n exportCSV = () => {\r\n this.export.emit({\r\n file: null,\r\n columns: this.#getExportColumns(),\r\n isCSV: true\r\n });\r\n }\r\n\r\n loadFiles = async (group: string = null) => {\r\n this.selectedGroup = this.groups.find(e => e.code === group);\r\n this.files = await this.exportService.filesInFolder({\r\n key: this.key,\r\n group\r\n });\r\n this.ref.markForCheck();\r\n }\r\n\r\n #initTemplate = async (fileName?: string) => {\r\n const sheets: {\r\n name: string,\r\n items: any[],\r\n fields: string[]\r\n }[] = [];\r\n if (Array.isArray(this.gridOption?.export?.sheets)) {\r\n for (const sheet of this.gridOption.export.sheets) {\r\n if (sheet.name && sheet.items && sheet.fields) {\r\n if (Array.isArray(sheet.items)) {\r\n sheets.push({\r\n name: sheet.name,\r\n items: sheet.items,\r\n fields: sheet.fields\r\n });\r\n } else {\r\n sheets.push({\r\n name: sheet.name,\r\n items: await sheet.items(),\r\n fields: sheet.fields\r\n });\r\n }\r\n }\r\n }\r\n }\r\n return await this.exportService.generateTemplate({\r\n fileName: fileName || this.gridOption?.export?.fileName,\r\n columns: this.columns,\r\n sheets\r\n });\r\n }\r\n\r\n generateTemplate = async () => {\r\n this.loadingService.start();\r\n await this.#initTemplate().finally(this.loadingService.stop);\r\n }\r\n\r\n generateAndUploadTemplate = async (fileName?: string) => {\r\n const sheets: {\r\n name: string,\r\n items: any[],\r\n fields: string[]\r\n }[] = [];\r\n if (Array.isArray(this.gridOption?.export?.sheets)) {\r\n for (const sheet of this.gridOption?.export?.sheets) {\r\n if (sheet.name && sheet.items && sheet.fields) {\r\n if (Array.isArray(sheet.items)) {\r\n sheets.push({\r\n name: sheet.name,\r\n items: sheet.items,\r\n fields: sheet.fields\r\n });\r\n } else {\r\n sheets.push({\r\n name: sheet.name,\r\n items: await sheet.items(),\r\n fields: sheet.fields\r\n });\r\n }\r\n }\r\n }\r\n }\r\n return await this.exportService.generateUploadTemplate({\r\n key: this.key,\r\n template: {\r\n fileName: fileName || this.gridOption?.export?.fileName,\r\n columns: this.columns.filter(e => this.selected[e.field]),\r\n sheets\r\n },\r\n group: this.selectedGroup?.code\r\n });\r\n }\r\n\r\n onExport = (file: SdExportFile) => {\r\n this.export.emit({\r\n file,\r\n columns: this.columns\r\n });\r\n this.ref.detectChanges();\r\n }\r\n\r\n uploadTemplate = async () => {\r\n const file = await this.exportService.uploadTemplate({\r\n key: this.key,\r\n group: this.selectedGroup?.code,\r\n validator: this.gridOption?.export?.validators\r\n });\r\n if (file) {\r\n this.files = [...this.files, file];\r\n this.ref.detectChanges();\r\n }\r\n }\r\n\r\n removeFile = (file: SdExportFile) => {\r\n this.notifyService.confirm(this.translateService.translate('Remove template')).then(() => {\r\n this.exportService.removeFile({\r\n key: this.key,\r\n fileName: file.fileName,\r\n group: this.selectedGroup?.code || null\r\n });\r\n const idx = this.files.indexOf(file);\r\n this.files.splice(idx, 1);\r\n this.files = [...this.files];\r\n this.ref.detectChanges();\r\n });\r\n }\r\n\r\n createTemplate = async () => {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n if (!this.columns.some(e => this.selected[e.field])) {\r\n this.notifyService.notify.warning(`Vui lòng chọn cột dữ liệu để xuất`);\r\n return;\r\n }\r\n this.loadingService.start();\r\n const fileName = this.templateName + '.xlsx';\r\n try {\r\n if (this.gridOption?.export?.validators?.(fileName)) {\r\n this.notifyService.notify.warning(this.gridOption?.export?.validators(fileName));\r\n return;\r\n }\r\n const result = await this.generateAndUploadTemplate(fileName);\r\n if (result?.filePath) {\r\n const file: SdExportFile = {\r\n filePath: result.filePath,\r\n fileName: result.fileName\r\n };\r\n this.onExport(file);\r\n this.templateName = null;\r\n this.enableCreating = false;\r\n this.files = [...this.files, file];\r\n this.ref.detectChanges();\r\n }\r\n } finally {\r\n this.loadingService.stop();\r\n }\r\n }\r\n\r\n onChangeGroup = () => {\r\n this.loadFiles(this.listGroups?.selectedOptions?.selected[0]?.value);\r\n }\r\n\r\n validatorTemplateName = (val: string) => {\r\n const { translate } = this.translateService;\r\n const regex = /^[A-Za-z0-9 _]*[A-Za-z0-9][A-Za-z0-9 _]*$/;\r\n if (!val) {\r\n return translate('Please enter your template name');\r\n }\r\n if (val.length > 50) {\r\n return translate('Template name is too long');\r\n }\r\n if (!regex.test(val)) {\r\n return translate('Template name only contains letters, numbers and spaces');\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { SdSettingService } from '@sd-angular/core/setting';\r\nimport { SdGridMaterialOption } from '../models/grid-option.model';\r\nimport { SdColumnConfiguration, SdGridConfiguration, SdGridConfigurationCache, SdGridConfigurationResult } from '../models/grid-config.model';\r\nimport { SdMaterialSubInformationDefDirective } from '../directives/sd-material-sub-information-def.directive';\r\nimport { Subject } from 'rxjs';\r\nimport { SdGridMaterialColumn } from '../models/grid-column.model';\r\nimport { GRID_MATERIAL_CONFIG, ISdGridMaterialConfiguration } from '../models/grid-configuration.model';\r\n\r\n@Injectable()\r\nexport class SdGridConfigurationService {\r\n #COLUMNS = {\r\n EDITORVALIDATION: 'sdEditorValidation',\r\n EDITOR: 'sdEditor',\r\n SUBINFORMATION: 'sdSubInformationAction',\r\n COMMAND: 'sdCommand',\r\n SELECTION: 'sdSelection',\r\n GROUP: 'sdGroup'\r\n };\r\n #cache: {\r\n [key: string]: SdGridConfigurationCache\r\n } = {};\r\n constructor(\r\n private settingService: SdSettingService,\r\n @Inject(GRID_MATERIAL_CONFIG) @Optional() public gridMaterialConfiguration: ISdGridMaterialConfiguration) {\r\n }\r\n\r\n init = (key: string, gridOption: SdGridMaterialOption) => {\r\n if (!this.#cache[key]) {\r\n const subject = new Subject<SdGridConfiguration>();\r\n this.#cache[key] = {\r\n load: this.#load(gridOption, subject),\r\n get: this.#get(gridOption),\r\n set: (configuration: SdGridConfiguration) => {\r\n configuration = this.#set(gridOption, configuration);\r\n subject.next({ ...configuration });\r\n return configuration;\r\n },\r\n remove: () => {\r\n this.#remove(gridOption)();\r\n subject.next(this.#default(gridOption));\r\n },\r\n observer: subject\r\n };\r\n }\r\n return this.#cache[key];\r\n }\r\n\r\n #getKey = (gridOption: SdGridMaterialOption) => {\r\n const prefix = 'c9e94836-6ace-4aeb-b148-4f0be63589ee';\r\n if (!gridOption?.config?.key && !gridOption?.key) {\r\n return null;\r\n }\r\n return hash({\r\n prefix,\r\n key: gridOption?.config?.key || !gridOption?.key\r\n });\r\n }\r\n\r\n #default = (gridOption: SdGridMaterialOption): SdGridConfiguration => {\r\n const columns: SdColumnConfiguration[] = gridOption?.columns?.filter(e => !e.hidden).map(e => ({\r\n origin: {\r\n field: e.field,\r\n title: e.title,\r\n width: e.width,\r\n invisible: e.invisible\r\n },\r\n invisible: e.invisible,\r\n fixed: false\r\n })) || [];\r\n return {\r\n columns\r\n };\r\n }\r\n\r\n #load = (gridOption: SdGridMaterialOption, subject: Subject<SdGridConfiguration>) => {\r\n return async () => {\r\n const get = this.#get(gridOption);\r\n const configuration = await get();\r\n subject.next({ ...configuration });\r\n };\r\n }\r\n\r\n #get = (gridOption: SdGridMaterialOption) => {\r\n return async () => {\r\n const key = this.#getKey(gridOption);\r\n if (!key) {\r\n return this.#default(gridOption);\r\n }\r\n const { columns, config } = gridOption;\r\n let configuration: SdGridConfiguration;\r\n if (config?.storage === 'server') {\r\n const { get, remove } = this.settingService.createServer<SdGridConfiguration>(key, {\r\n args: config?.args\r\n });\r\n configuration = await get().catch(() => undefined);\r\n if (!configuration?.columns) {\r\n remove().catch(console.error);\r\n return this.#default(gridOption);\r\n }\r\n } else {\r\n const { get, remove } = this.settingService.create<SdGridConfiguration>(key, {\r\n type: config?.storage,\r\n args: config?.args\r\n });\r\n configuration = get();\r\n if (!configuration?.columns) {\r\n remove();\r\n return this.#default(gridOption);\r\n }\r\n }\r\n\r\n configuration.columns = configuration.columns\r\n .filter(column => column.isGeneratedColumn || columns.some(e => !e.hidden && e.field === column.origin.field));\r\n // Thêm những column mới vào storage nếu có\r\n columns.forEach(column => {\r\n const col = configuration.columns.find(e => e.origin?.field === column.field);\r\n if (!col) {\r\n configuration.columns.push({\r\n origin: {\r\n field: column.field,\r\n title: column.title,\r\n width: column.width,\r\n invisible: column.invisible,\r\n },\r\n invisible: column.invisible,\r\n fixed: false\r\n });\r\n } else {\r\n col.origin = {\r\n field: column.field,\r\n title: column.title,\r\n width: column.width,\r\n invisible: column.invisible\r\n };\r\n }\r\n });\r\n return configuration;\r\n };\r\n }\r\n\r\n #set = (gridOption: SdGridMaterialOption, configuration: SdGridConfiguration) => {\r\n const key = this.#getKey(gridOption);\r\n if (key) {\r\n if (gridOption?.config?.storage === 'server') {\r\n const { set } = this.settingService.createServer<SdGridConfiguration>(key, {\r\n args: gridOption?.config?.args\r\n });\r\n set(configuration);\r\n } else {\r\n const { set } = this.settingService.create<SdGridConfiguration>(key, {\r\n type: gridOption?.config?.storage,\r\n args: gridOption?.config?.args\r\n });\r\n set(configuration);\r\n }\r\n }\r\n return JSON.parse(JSON.stringify(configuration));\r\n }\r\n\r\n #remove = (gridOption: SdGridMaterialOption) => {\r\n return () => {\r\n const key = this.#getKey(gridOption);\r\n if (key) {\r\n if (gridOption?.config?.storage === 'server') {\r\n const { remove } = this.settingService.createServer<SdGridConfiguration>(key, {\r\n args: gridOption?.config?.args\r\n });\r\n remove();\r\n } else {\r\n const { remove } = this.settingService.create<SdGridConfiguration>(key, {\r\n type: gridOption?.config?.storage,\r\n args: gridOption?.config?.args\r\n });\r\n remove();\r\n }\r\n }\r\n };\r\n }\r\n\r\n // get = async (gridOption: SdGridMaterialOption): Promise<SdGridConfiguration> => {\r\n // if (!gridOption?.key) {\r\n // return this.#getDefaultConfiguration(gridOption);\r\n // }\r\n // const { key, columns } = gridOption;\r\n // const configuration: SdGridConfiguration = await this.settingService.get(this.#getKey(key)).catch(() => undefined);\r\n // if (!configuration?.columns) {\r\n // this.settingService.remove(this.#getKey(key)).catch(console.error);\r\n // return this.#getDefaultConfiguration(gridOption);\r\n // }\r\n // configuration.columns = configuration.columns\r\n // .filter(column => columns.some(e => !e.hidden && e.field === column.origin.field));\r\n // // Thêm những column mới vào storage nếu có\r\n // columns.forEach(column => {\r\n // const col = configuration.columns.find(e => e.origin?.field === column.field);\r\n // if (!col) {\r\n // configuration.columns.push({\r\n // origin: {\r\n // field: column.field,\r\n // title: column.title,\r\n // width: column.width,\r\n // invisible: column.invisible,\r\n // },\r\n // invisible: column.invisible,\r\n // fixed: false\r\n // });\r\n // } else {\r\n // col.origin = {\r\n // field: column.field,\r\n // title: column.title,\r\n // width: column.width,\r\n // invisible: column.invisible\r\n // };\r\n // }\r\n // });\r\n // return configuration;\r\n // }\r\n\r\n // set = async (key: string, configuration: SdGridConfiguration): Promise<SdGridConfiguration> => {\r\n // if (key) {\r\n // this.settingService.set(this.#getKey(key), configuration);\r\n // }\r\n // return configuration;\r\n // }\r\n\r\n // remove = (key: string) => {\r\n // if (key) {\r\n // this.settingService.remove(this.#getKey(key));\r\n // }\r\n // }\r\n\r\n generateConfigurationResult = (\r\n configuration: SdGridConfiguration,\r\n gridOption: SdGridMaterialOption,\r\n sdSubInformation: SdMaterialSubInformationDefDirective) => {\r\n const result: SdGridConfigurationResult = {\r\n column: {},\r\n fixedColumn: {},\r\n firstColumns: [],\r\n secondColumns: [],\r\n firstHeaders: [],\r\n secondHeaders: [],\r\n displayedColumns: [],\r\n displayedFooters: [],\r\n multipleHeader: false\r\n };\r\n const { selection, commands, editor, group } = gridOption || {};\r\n if (editor?.addable || (editor?.type === 'inline' && (editor?.removable || typeof (editor?.disabled) === 'function' || !editor?.disabled))\r\n || (editor?.type === 'focus' && (typeof (editor?.disabled) === 'function' || !editor?.disabled))) {\r\n result.firstHeaders.push(this.#COLUMNS.EDITORVALIDATION);\r\n result.displayedColumns.push(this.#COLUMNS.EDITORVALIDATION);\r\n }\r\n if (selection?.visible) {\r\n result.firstHeaders.push(this.#COLUMNS.SELECTION);\r\n result.displayedColumns.push(this.#COLUMNS.SELECTION);\r\n }\r\n if (!editor?.hidden) {\r\n if (editor?.addable\r\n || (editor?.type === 'inline' && (editor?.removable || typeof (editor?.disabled) === 'function' || !editor?.disabled))\r\n || (editor?.type === 'focus' && (typeof (editor?.disabled) === 'function' || !editor?.disabled))\r\n || (editor?.type === 'popup' && (typeof (editor?.disabled) === 'function' || !editor?.disabled))) {\r\n result.firstHeaders.push(this.#COLUMNS.EDITOR);\r\n result.displayedColumns.push(this.#COLUMNS.EDITOR);\r\n }\r\n }\r\n if (commands?.length) {\r\n result.firstHeaders.push(this.#COLUMNS.COMMAND);\r\n result.displayedColumns.push(this.#COLUMNS.COMMAND);\r\n }\r\n if (group?.fields?.length) {\r\n result.firstHeaders.push(this.#COLUMNS.GROUP);\r\n result.displayedColumns.push(this.#COLUMNS.GROUP);\r\n }\r\n configuration?.columns?.filter(col => !col.invisible).forEach(col => {\r\n if (col.isGeneratedColumn) {\r\n result.column[col.origin.field] = {\r\n title: col.title || col.origin.title,\r\n width: col.width || col.origin.width,\r\n };\r\n if (col.fixed) {\r\n result.fixedColumn[col.origin.field] = {\r\n title: col.title || col.origin.title,\r\n width: col.width || col.origin.width,\r\n };\r\n }\r\n const generatedColumn: SdGridMaterialColumn = {\r\n type: 'children',\r\n field: col.origin.field,\r\n title: col.origin.title,\r\n children: []\r\n };\r\n for (const subColumn of gridOption?.columns.filter(e1 => col.generatedColumns.includes(e1.field))) {\r\n if (subColumn.type === 'children' || subColumn.type === 'children-col') {\r\n for (const childColumn of subColumn.children) {\r\n generatedColumn.children.push({\r\n ...childColumn,\r\n colSpan: 2\r\n });\r\n }\r\n } else {\r\n generatedColumn.children.push({\r\n ...subColumn,\r\n colSpan: 2\r\n });\r\n }\r\n\r\n }\r\n result.firstColumns.push({\r\n ...generatedColumn,\r\n title: col.title || col.origin.title,\r\n width: col.width || col.origin.width\r\n });\r\n result.firstHeaders.push(col.origin.field);\r\n result.displayedColumns.push(col.origin.field);\r\n return;\r\n }\r\n const column = gridOption?.columns.find(e => e.field === col.origin.field);\r\n if (column) {\r\n result.column[col.origin.field] = {\r\n title: col.title || col.origin.title,\r\n width: col.width || col.origin.width,\r\n };\r\n if (col.fixed) {\r\n result.fixedColumn[col.origin.field] = {\r\n title: col.title || col.origin.title,\r\n width: col.width || col.origin.width,\r\n };\r\n }\r\n result.firstColumns.push({\r\n ...column,\r\n title: col.title || col.origin.title,\r\n width: col.width || col.origin.width\r\n });\r\n result.firstHeaders.push(col.origin.field);\r\n if (column.type === 'children-col') {\r\n column.children?.forEach(childColumn => {\r\n result.secondColumns.push(childColumn);\r\n result.secondHeaders.push(childColumn.field);\r\n result.displayedColumns.push(childColumn.field);\r\n });\r\n } else {\r\n result.displayedColumns.push(col.origin.field);\r\n }\r\n }\r\n });\r\n if (sdSubInformation?.templateRef) {\r\n result.firstHeaders.push(this.#COLUMNS.SUBINFORMATION);\r\n result.displayedColumns.push(this.#COLUMNS.SUBINFORMATION);\r\n }\r\n result.multipleHeader = result.secondHeaders.length > 0;\r\n // Sub infomation không thể có footer\r\n result.displayedFooters = result.displayedColumns.filter(val => val !== this.#COLUMNS.SUBINFORMATION);\r\n return result;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { SdGridMaterialColumn } from '../models/grid-column.model';\r\n@Pipe({\r\n name: 'columnValues'\r\n})\r\nexport class SdColumnValuesPipe implements PipeTransform {\r\n #prefix = 'a1e67660-8aa2-4c11-b02d-71a32188719f';\r\n #cache: {\r\n [key: string]: {\r\n result: any\r\n }\r\n } = {};\r\n transform = async (value: any, column: SdGridMaterialColumn): Promise<string> => {\r\n if (column.type !== 'values' || !column.option?.items || !column.option?.valueField || !column.option?.displayField) {\r\n return value;\r\n }\r\n const { items, valueField, displayField, selection, ...remain } = column.option;\r\n const key = hash({\r\n prefix: this.#prefix,\r\n valueField,\r\n displayField,\r\n selection,\r\n remain,\r\n value\r\n });\r\n const isMultible = ['MULTIPLE', 'MULTIPLEAUTOCOMPLETE', 'MULTIPLE_EDITOR', 'MULTIPLEAUTOCOMPLETE_EDITOR'].includes(selection);\r\n if (typeof (items) === 'function') {\r\n if (!this.#cache[key]) {\r\n const values = await items(value, true);\r\n let result = '';\r\n if (isMultible && Array.isArray(value)) {\r\n result = values?.filter(e => value?.includes(e?.[valueField]))?.map(e => e?.[displayField])?.join(', ') || value?.join(', ');\r\n }\r\n else {\r\n result = values?.find(e => e?.[valueField] === value)?.[displayField] || value;\r\n }\r\n this.#cache[key] = {\r\n result\r\n };\r\n }\r\n } else {\r\n if (!this.#cache[key]) {\r\n let result = '';\r\n if (isMultible && Array.isArray(value)) {\r\n result = items?.filter(e => value?.includes(e?.[valueField]))?.map(e => e?.[displayField])?.join(', ') ?? value?.join(', ');\r\n }\r\n else {\r\n result = items?.find(e => e?.[valueField] === value)?.[displayField] || value\r\n }\r\n this.#cache[key] = {\r\n result\r\n };\r\n }\r\n }\r\n return this.#cache[key].result;\r\n }\r\n}\r\n","import hash from 'object-hash';\r\nimport { SdItem } from \"../models/grid.model\";\r\n\r\nexport const CalculateSdId = (item: SdItem) => {\r\n const {\r\n sdId,\r\n editorHandlerColumn,\r\n expandDetail,\r\n isExpanded,\r\n isExpanding,\r\n isSelected,\r\n sdGroup,\r\n selectable,\r\n actions,\r\n groupedActions,\r\n originItem,\r\n editorErrorMessage,\r\n editorHandlerRow,\r\n ...remain } = item;\r\n return hash(remain);\r\n}","import { Injectable, NgZone, Pipe, PipeTransform } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { CalculateSdId } from '../functions/calculate-sd-id';\r\nimport { SdGridMaterialColumn } from '../models/grid-column.model';\r\nimport { SdGridMaterialOption } from '../models/grid-option.model';\r\nimport { SdItem } from '../models/grid.model';\r\n@Pipe({\r\n name: 'sdEditorHandlerColumn'\r\n})\r\n@Injectable()\r\nexport class SdEditorHandlerColumnPipe implements PipeTransform {\r\n constructor(private zone: NgZone) { }\r\n #visible = (col: SdGridMaterialColumn, item: SdItem) => {\r\n if (col.type === 'children' || col.type === 'children-col') {\r\n return false;\r\n }\r\n // Kiểm tra xem có bị disabled hay không?\r\n if (col.editor) {\r\n const isDisabled = typeof (col.editor.disabled) === 'function' ? col.editor.disabled(item) : col.editor.disabled;\r\n if (isDisabled) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n transform(value: any, item: SdItem, gridOption: SdGridMaterialOption) {\r\n const key = CalculateSdId(item);\r\n if (item.sdId === key && item.editorHandlerColumn) {\r\n return true;\r\n }\r\n item.editorHandlerColumn = item.editorHandlerColumn || {};\r\n const { columns } = gridOption;\r\n for (const col of columns) {\r\n if (col.type === 'children-col') {\r\n for (const childCol of col.children) {\r\n item.editorHandlerColumn[childCol.field] = {\r\n ...item.editorHandlerColumn[childCol.field],\r\n visible: this.#visible(childCol, item)\r\n }\r\n }\r\n } else {\r\n item.editorHandlerColumn[col.field] = {\r\n ...item.editorHandlerColumn[col.field],\r\n visible: this.#visible(col, item)\r\n }\r\n }\r\n }\r\n this.zone.run(() => {\r\n item.sdId = CalculateSdId(item);\r\n });\r\n item.sdId = key;\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { SdSettingService } from '@sd-angular/core/setting';\r\nimport {\r\n SdGridMaterialExternalFilter,\r\n SdGridMaterialFilterConfiguration,\r\n SdGridMaterialFilterOption,\r\n SdGridMaterialFilterRegister,\r\n SdGridMaterialFilterValue,\r\n} from './grid-filter.model';\r\nimport { SdGridMaterialColumn } from '../../models/grid-column.model';\r\nimport { SdMaterialFilterDefDirective } from '../../directives/sd-material-filter-def.directive';\r\nimport { map, startWith } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class SdGridFilterService {\r\n #filterConfiguration = 'GRID-FILTER-CONFIGURATION';\r\n #filterValue = 'GRID-FILTER-VALUE';\r\n #cache: Record<string, SdGridMaterialFilterRegister> = {};\r\n constructor(private settingService: SdSettingService) {}\r\n register = (\r\n filter: SdGridMaterialFilterOption,\r\n args: {\r\n id: string;\r\n columns: SdGridMaterialColumn[];\r\n externalFilters: SdGridMaterialExternalFilter[];\r\n filterDefs: SdMaterialFilterDefDirective[];\r\n }\r\n ) => {\r\n let cacheSession = false;\r\n \r\n const { id, columns, externalFilters } = args;\r\n const tempKey = hash({\r\n id,\r\n columns: columns?.map(e => e.field).filter(field => !!field) || [],\r\n externalFilters: externalFilters?.map(e => e.field).filter(field => !!field) || [],\r\n });\r\n const key = filter?.key || tempKey;\r\n if (!filter?.key) {\r\n cacheSession = true; // Nếu không có key thì chỉ lưu theo session\r\n }\r\n if (!this.#cache[key]) {\r\n // Setting của filter configuration\r\n const filterConfiguration = this.settingService.create<SdGridMaterialFilterConfiguration>(\r\n {\r\n prefix: this.#filterConfiguration,\r\n key,\r\n },\r\n {\r\n default: this.#defaultConfiguration(args),\r\n type: cacheSession ? 'session' : undefined,\r\n }\r\n );\r\n // Lấy giá trị configuration merge với giá trị defaultShowing của args nếu như args có thay đổi\r\n filterConfiguration.set(this.#initConfiguration(args, filterConfiguration.get()));\r\n // Setting của filter value\r\n const filterValue = this.settingService.create<SdGridMaterialFilterValue>(\r\n {\r\n prefix: this.#filterValue,\r\n key: !filter?.cacheFilter ? tempKey : key,\r\n },\r\n {\r\n default: this.#defaultValue(args),\r\n type: cacheSession || !filter?.cacheFilter ? 'session' : undefined,\r\n }\r\n );\r\n // Lấy giá trị value merge với giá trị default của args nếu như args có thay đổi\r\n filterValue.set(this.#initValue(args, filterValue.get()));\r\n this.#cache[key] = {\r\n configuration: {\r\n get: (): SdGridMaterialFilterConfiguration => {\r\n return filterConfiguration.get();\r\n },\r\n set: (configuration: Partial<SdGridMaterialFilterConfiguration>): SdGridMaterialFilterConfiguration => {\r\n const { inlineColumn, inlineExternal, inlineFilterDef } = configuration;\r\n filterConfiguration.set({\r\n inlineColumn,\r\n inlineExternal,\r\n inlineFilterDef,\r\n });\r\n return {\r\n inlineColumn,\r\n inlineExternal,\r\n inlineFilterDef,\r\n };\r\n },\r\n remove: () => {\r\n filterConfiguration.set(this.#defaultConfiguration(args));\r\n },\r\n observer: filterConfiguration.observer.pipe(\r\n startWith(filterConfiguration.get()),\r\n // Sử dụng mặc định nếu bị reset\r\n map(configuration => configuration || this.#defaultConfiguration(args))\r\n ),\r\n },\r\n value: {\r\n get: (): SdGridMaterialFilterValue => {\r\n return filterValue.get();\r\n },\r\n set: (value: Partial<SdGridMaterialFilterValue>): SdGridMaterialFilterValue => {\r\n const keys = Object.keys(value || {});\r\n const current = filterValue.get();\r\n const { columnOperator, columnFilter, externalFilter, filterDef } = current;\r\n const updatedFilter = {\r\n // Filter column\r\n columnOperator: keys.includes('columnOperator') ? value?.columnOperator || {} : columnOperator,\r\n columnFilter: keys.includes('columnFilter') ? value?.columnFilter || {} : columnFilter,\r\n // Filter external\r\n externalFilter: keys.includes('externalFilter') ? value?.externalFilter || {} : externalFilter,\r\n // Filter def\r\n filterDef: keys.includes('filterDef') ? value?.filterDef || {} : filterDef,\r\n // Force\r\n notReload: !!value?.notReload,\r\n };\r\n filterValue.set(updatedFilter);\r\n return updatedFilter;\r\n },\r\n remove: () => {\r\n filterValue.set(this.#defaultValue(args));\r\n },\r\n observer: filterValue.observer.pipe(\r\n startWith(filterValue.get()),\r\n // Sử dụng mặc định nếu bị reset\r\n map(value => value || this.#defaultValue(args))\r\n ),\r\n },\r\n };\r\n }\r\n return this.#cache[key];\r\n };\r\n\r\n #defaultConfiguration = (args: {\r\n columns: SdGridMaterialColumn[];\r\n externalFilters: SdGridMaterialExternalFilter[];\r\n filterDefs: SdMaterialFilterDefDirective[];\r\n }): SdGridMaterialFilterConfiguration => {\r\n const { columns, externalFilters, filterDefs } = args;\r\n const inlineColumn: Record<string, boolean> = {};\r\n const inlineExternal: Record<string, boolean> = {};\r\n const inlineFilterDef: Record<string, boolean> = {};\r\n // Filter column\r\n for (const item of columns || []) {\r\n inlineColumn[item.field] = item?.filter?.defaultShowing;\r\n }\r\n // Filter external\r\n for (const item of externalFilters || []) {\r\n inlineExternal[item.field] = item?.defaultShowing;\r\n }\r\n // Filter def\r\n for (const item of filterDefs || []) {\r\n inlineFilterDef[item.sdMaterialFilterDef] = item?.defaultShowing;\r\n }\r\n return {\r\n // Filter column\r\n inlineColumn,\r\n // Filter external\r\n inlineExternal,\r\n // Filter def\r\n inlineFilterDef,\r\n };\r\n };\r\n\r\n #defaultValue = (args: {\r\n columns: SdGridMaterialColumn[];\r\n externalFilters: SdGridMaterialExternalFilter[];\r\n filterDefs: SdMaterialFilterDefDirective[];\r\n }): SdGridMaterialFilterValue => {\r\n const columnFilter: Record<string, any> = {};\r\n const externalFilter: Record<string, any> = {};\r\n const filterDef: Record<string, any> = {};\r\n const { columns, externalFilters, filterDefs } = args;\r\n // Filter column\r\n for (const item of columns || []) {\r\n columnFilter[item.field] = item?.filter?.default;\r\n }\r\n // Filter external\r\n for (const item of externalFilters || []) {\r\n externalFilter[item.field] = item?.default;\r\n }\r\n // Filter def\r\n for (const item of filterDefs || []) {\r\n filterDef[item.sdMaterialFilterDef] = undefined;\r\n }\r\n return {\r\n // Filter column\r\n columnFilter,\r\n // Filter external\r\n externalFilter,\r\n // Filter def\r\n filterDef,\r\n };\r\n };\r\n\r\n #initConfiguration = (\r\n args: {\r\n columns: SdGridMaterialColumn[];\r\n externalFilters: SdGridMaterialExternalFilter[];\r\n filterDefs: SdMaterialFilterDefDirective[];\r\n },\r\n configuration: SdGridMaterialFilterConfiguration\r\n ): SdGridMaterialFilterConfiguration => {\r\n const { columns, externalFilters, filterDefs } = args;\r\n const inlineColumn: Record<string, boolean> = {};\r\n const inlineExternal: Record<string, boolean> = {};\r\n const inlineFilterDef: Record<string, boolean> = {};\r\n // Filter column\r\n for (const item of columns || []) {\r\n inlineColumn[item.field] = configuration?.inlineColumn?.[item.field] ?? item?.filter?.defaultShowing;\r\n }\r\n // Filter external\r\n for (const item of externalFilters || []) {\r\n inlineExternal[item.field] = configuration?.inlineExternal?.[item.field] ?? item?.defaultShowing;\r\n }\r\n // Filter def\r\n for (const item of filterDefs || []) {\r\n inlineFilterDef[item.sdMaterialFilterDef] = configuration?.inlineFilterDef?.[item.sdMaterialFilterDef] ?? item?.defaultShowing;\r\n }\r\n return {\r\n // Filter column\r\n inlineColumn,\r\n // Filter external\r\n inlineExternal,\r\n // Filter def\r\n inlineFilterDef,\r\n };\r\n };\r\n\r\n #initValue = (\r\n args: {\r\n columns: SdGridMaterialColumn[];\r\n externalFilters: SdGridMaterialExternalFilter[];\r\n filterDefs: SdMaterialFilterDefDirective[];\r\n },\r\n value: SdGridMaterialFilterValue\r\n ): SdGridMaterialFilterValue => {\r\n const columnFilter: Record<string, any> = {};\r\n const externalFilter: Record<string, any> = {};\r\n const filterDef: Record<string, any> = {};\r\n const { columns, externalFilters, filterDefs } = args;\r\n // Filter column\r\n for (const item of columns || []) {\r\n columnFilter[item.field] = value?.columnFilter?.[item.field] ?? item?.filter?.default;\r\n }\r\n // Filter external\r\n for (const item of externalFilters || []) {\r\n if (item.type === 'daterange') {\r\n externalFilter[item.field] = {\r\n from: value?.externalFilter?.[item.field]?.from ?? item.default?.from,\r\n to: value?.externalFilter?.[item.field]?.to ?? item.default?.to,\r\n };\r\n } else {\r\n externalFilter[item.field] = value?.externalFilter?.[item.field] ?? item?.default;\r\n }\r\n }\r\n // Filter def\r\n for (const item of filterDefs || []) {\r\n filterDef[item.sdMaterialFilterDef] = value?.filterDef?.[item.sdMaterialFilterDef] ?? undefined;\r\n }\r\n return {\r\n // Filter column\r\n columnFilter,\r\n // Filter external\r\n externalFilter,\r\n // Filter def\r\n filterDef,\r\n };\r\n };\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ViewChild,\r\n AfterViewInit,\r\n Optional,\r\n Inject,\r\n ChangeDetectorRef,\r\n ContentChildren,\r\n QueryList,\r\n OnInit,\r\n OnDestroy,\r\n ContentChild,\r\n} from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport * as uuid from 'uuid';\r\nimport { SdGridMaterialFilterRegister, SdGridMaterialFilterRequest } from './services/grid-filter/grid-filter.model';\r\nimport { SdGridMaterialOption } from './models/grid-option.model';\r\nimport { GRID_MATERIAL_CONFIG, DEFAULT_GRID_MATERIAL_CONFIG, ISdGridMaterialConfiguration } from './models/grid-configuration.model';\r\nimport { Subscription, isObservable, Observable, BehaviorSubject, Subject, combineLatest } from 'rxjs';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { SdFilterOperator, SdGridMaterialColumn } from './models/grid-column.model';\r\nimport { SdMaterialCellDefDirective } from './directives/sd-material-cell-def.directive';\r\nimport { debounceTime, filter, map, startWith, switchMap } from 'rxjs/operators';\r\nimport { SdGridFilter } from './components/grid-filter/grid-filter.component';\r\nimport { SdMaterialFilterDefDirective } from './directives/sd-material-filter-def.directive';\r\nimport { SdMaterialSubInformationDefDirective } from './directives/sd-material-sub-information-def.directive';\r\nimport { SdMaterialFooterDefDirective } from './directives/sd-material-footer-def.directive';\r\nimport { SdMaterialEmptyDataDefDirective } from './directives/sd-material-empty-data-def.directive';\r\nimport { SdPopupExport } from './components/popup-export/popup-export.component';\r\nimport { SdExportColumn, SdExportFile, SdExportService } from '@sd-angular/core/export';\r\nimport { SdGridConfiguration } from './models/grid-config.model';\r\nimport { SdGridConfigurationService } from './services/grid-configuration.service';\r\nimport { SdGridMaterialExportColumn } from './models/grid-export.model';\r\nimport { SdQuickAction } from '@sd-angular/core/quick-action';\r\nimport { SdGridMaterialItem, SdItem } from './models/grid.model';\r\nimport { SdColumnValuesPipe } from './pipes/column-values.pipe';\r\nimport { SdEditorHandlerColumnPipe } from './pipes/editor-handler-column.pipe';\r\nimport { SdScrollDirective } from '@sd-angular/core/common';\r\nimport { SdGridFilterService } from './services/grid-filter/grid-filter.service';\r\n\r\n@Component({\r\n selector: 'sd-grid-material',\r\n templateUrl: './grid-material.component.html',\r\n styleUrls: ['./grid-material.component.scss'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0', minHeight: '0', visibility: 'hidden' })),\r\n state('expanded', style({ height: '*', visibility: 'visible' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n ],\r\n})\r\nexport class SdGridMaterial<T = any> implements OnInit, AfterViewInit, OnDestroy {\r\n #gridId = uuid.v4();\r\n @ViewChild(SdScrollDirective) sdScroll: SdScrollDirective;\r\n filterRegister: SdGridMaterialFilterRegister;\r\n key = uuid.v4();\r\n gridConfigurationObserver: Observable<SdGridConfiguration>;\r\n @ViewChild(SdQuickAction) quickAction: SdQuickAction;\r\n\r\n gridFilter: SdGridFilter;\r\n @ViewChild(SdGridFilter) set _gridFilter(gridFilter: SdGridFilter) {\r\n if (gridFilter && this.gridFilter !== gridFilter) {\r\n this.gridFilter = gridFilter;\r\n // this.#subscription.add(gridFilter.filterChange.pipe(\r\n // filter(reload => reload),\r\n // debounceTime(500),\r\n // map(() => {\r\n // this.#paginator.pageIndex = 0;\r\n // this.#reload.next({\r\n // force: false,\r\n // source: 'FILTER'\r\n // });\r\n // }),\r\n // ).subscribe());\r\n }\r\n }\r\n\r\n @Input() set option(option: SdGridMaterialOption) {\r\n if (option) {\r\n option = this.#initConfiguration(option);\r\n this.gridOption = option;\r\n this.#loadCompleted = false;\r\n const configuration = this.gridConfigurationService.init(this.key, this.gridOption);\r\n this.gridConfigurationObserver = configuration.observer;\r\n configuration.load();\r\n this.#optionChanges.next(this.gridOption);\r\n }\r\n }\r\n #optionChanges = new Subject<SdGridMaterialOption>();\r\n\r\n gridOption: SdGridMaterialOption;\r\n #localItems: any[] = [];\r\n items: SdGridMaterialItem<T>[] = [];\r\n selectedItems: T[] = [];\r\n total: number;\r\n\r\n // Loading\r\n isLoading = false;\r\n\r\n // Paginate\r\n isHiddenPaginator = false;\r\n #paginator: MatPaginator;\r\n @ViewChild(MatPaginator) set paginator(paginator: MatPaginator) {\r\n if (paginator && this.#paginator !== paginator) {\r\n this.#paginator = paginator;\r\n this.#subscription.add(\r\n paginator.page\r\n .pipe(\r\n map(() => {\r\n this.#reload.next({\r\n force: false,\r\n });\r\n })\r\n )\r\n .subscribe()\r\n );\r\n }\r\n }\r\n\r\n // Sorting\r\n #sort: MatSort;\r\n @ViewChild(MatSort) set sort(sort: MatSort) {\r\n if (sort && this.#sort !== sort) {\r\n this.#sort = sort;\r\n this.#subscription.add(\r\n sort.sortChange\r\n .pipe(\r\n map(() => {\r\n this.#reload.next({\r\n force: false,\r\n });\r\n })\r\n )\r\n .subscribe()\r\n );\r\n }\r\n }\r\n\r\n // Export\r\n @ViewChild(SdPopupExport) sdPopupExport: SdPopupExport;\r\n\r\n // Sub Information\r\n @ContentChild(SdMaterialSubInformationDefDirective)\r\n sdSubInformation: SdMaterialSubInformationDefDirective;\r\n\r\n // Empty Data\r\n @ContentChild(SdMaterialEmptyDataDefDirective)\r\n sdEmptyData: SdMaterialEmptyDataDefDirective;\r\n\r\n // Cell Def\r\n @ContentChildren(SdMaterialCellDefDirective) sdCellDefs = new QueryList<SdMaterialCellDefDirective>();\r\n cellDef: {\r\n [column: string]: SdMaterialCellDefDirective;\r\n } = {};\r\n\r\n // Footer Def\r\n @ContentChildren(SdMaterialFooterDefDirective) sdFooterDefs = new QueryList<SdMaterialFooterDefDirective>();\r\n footerDef: {\r\n [column: string]: SdMaterialFooterDefDirective;\r\n } = {};\r\n hasFooter = false;\r\n\r\n // Filter Def\r\n @ContentChildren(SdMaterialFilterDefDirective) sdFilterDefs = new QueryList<SdMaterialFilterDefDirective>();\r\n filterDefs: SdMaterialFilterDefDirective[] = [];\r\n\r\n // Filter\r\n columnOperator: Record<string, SdFilterOperator> = {};\r\n columnFilter: Record<string, any> = {};\r\n // Subcription\r\n #subscription = new Subscription();\r\n #reload = new Subject<{\r\n force: boolean;\r\n }>();\r\n isExporting = false;\r\n isSelectAll = false;\r\n exportTitle = 'Export';\r\n #loadCompleted = false;\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n @Inject(GRID_MATERIAL_CONFIG)\r\n @Optional()\r\n public configuration: ISdGridMaterialConfiguration,\r\n private gridConfigurationService: SdGridConfigurationService,\r\n private exportService: SdExportService,\r\n private notifyService: SdNotifyService,\r\n private columnValuesPipe: SdColumnValuesPipe,\r\n private gridFilterService: SdGridFilterService,\r\n private editorHandlerColumnPipe: SdEditorHandlerColumnPipe\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.#initCellDef();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#subscription.add(\r\n this.#reload\r\n .pipe(\r\n debounceTime(200),\r\n switchMap(async data => {\r\n const filterInfo = this.#getFilter();\r\n const result = await this.#load(filterInfo, !this.#loadCompleted || data.force);\r\n this.#loadCompleted = true;\r\n return result;\r\n })\r\n )\r\n .subscribe(this.#render)\r\n );\r\n this.#subscription.add(this.sdCellDefs.changes.pipe(startWith([])).subscribe(this.#initCellDef));\r\n this.#subscription.add(this.sdFooterDefs.changes.pipe(startWith([])).subscribe(this.#initFooterDef));\r\n this.#subscription.add(this.sdFilterDefs.changes.pipe(startWith([])).subscribe(this.#initFilterDef));\r\n this.#subscription.add(\r\n combineLatest([\r\n this.#optionChanges.pipe(startWith(this.gridOption)),\r\n this.sdFilterDefs.changes.pipe(startWith(this.filterDefs)),\r\n ]).subscribe(() => {\r\n this.#loadFilterRegister();\r\n })\r\n );\r\n this.#subscription.add(\r\n this.#optionChanges.subscribe(() => {\r\n if (this.filterRegister) {\r\n this.#reload.next({\r\n force: true,\r\n });\r\n }\r\n })\r\n );\r\n this.ref.detectChanges();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n #initCellDef = () => {\r\n this.cellDef = {};\r\n for (const cellDef of this.sdCellDefs) {\r\n if (cellDef.sdMaterialCellDef) {\r\n this.cellDef[cellDef.sdMaterialCellDef] = cellDef;\r\n }\r\n }\r\n };\r\n\r\n #initFilterDef = () => {\r\n this.filterDefs = [];\r\n for (const filterDef of this.sdFilterDefs) {\r\n this.filterDefs.push(filterDef);\r\n }\r\n };\r\n\r\n #initFooterDef = () => {\r\n this.footerDef = {};\r\n this.hasFooter = false;\r\n for (const footerDef of this.sdFooterDefs) {\r\n if (footerDef.sdMaterialFooterDef) {\r\n this.hasFooter = true;\r\n this.footerDef[footerDef.sdMaterialFooterDef] = footerDef;\r\n }\r\n }\r\n };\r\n\r\n #filterExportInfo = (pageNumber: number, pageSize: number): SdGridMaterialFilterRequest => {\r\n const { columnOperator, columnFilter, externalFilter, filterDef } = this.filterRegister.value.get();\r\n return {\r\n columnOperator: columnOperator || {},\r\n rawColumnFilter: columnFilter || {},\r\n rawExternalFilter: externalFilter || {},\r\n rawFilterDef: filterDef || {},\r\n orderBy: this.#sort?.active || '',\r\n orderDirection: this.#sort?.direction || '',\r\n pageNumber,\r\n pageSize,\r\n isExported: true,\r\n };\r\n };\r\n\r\n #initConfiguration = (option: SdGridMaterialOption) => {\r\n // Init pagination\r\n option.paginate = {\r\n hidden: option?.paginate?.hidden,\r\n pageSize: option?.paginate?.pageSize ?? this.configuration?.paginate?.pageSize ?? DEFAULT_GRID_MATERIAL_CONFIG.paginate?.pageSize,\r\n pages: option?.paginate?.pages ?? this.configuration?.paginate?.pages ?? DEFAULT_GRID_MATERIAL_CONFIG.paginate?.pages,\r\n showFirstLastButtons: option?.paginate?.showFirstLastButtons ?? false,\r\n };\r\n for (const column of option.columns || []) {\r\n if (column.filter?.operator?.enable && !column.filter?.operator?.list?.length) {\r\n if (column.type === 'string') {\r\n column.filter.operator.list = this.configuration?.filter?.operator?.defaultListString || [];\r\n }\r\n if (column.type === 'number') {\r\n column.filter.operator.list = this.configuration?.filter?.operator?.defaultListNumber || [];\r\n }\r\n if (column.type === 'values') {\r\n column.filter.operator.list = this.configuration?.filter?.operator?.defaultListValues || [];\r\n }\r\n if (column.type === 'date' || column.type === 'datetime') {\r\n column.filter.operator.list = this.configuration?.filter?.operator?.defaultListDate || [];\r\n }\r\n }\r\n }\r\n return option;\r\n };\r\n\r\n #isFirstLoad = true;\r\n #loadFilterRegister = () => {\r\n // Init filter\r\n if (this.gridOption) {\r\n if (!this.filterRegister) {\r\n this.filterRegister = this.gridFilterService.register(this.gridOption?.filter, {\r\n id: this.#gridId,\r\n columns: this.gridOption?.columns,\r\n externalFilters: this.gridOption?.filter?.externalFilters,\r\n filterDefs: this.filterDefs,\r\n });\r\n this.#subscription.add(\r\n this.filterRegister.value.observer\r\n .pipe(\r\n debounceTime(500),\r\n map(filterValue => {\r\n const { columnOperator, columnFilter, notReload } = filterValue;\r\n this.columnOperator = columnOperator || {};\r\n this.columnFilter = columnFilter;\r\n if (this.#isFirstLoad) {\r\n this.#isFirstLoad = false;\r\n this.#paginator.pageIndex = 0;\r\n this.#reload.next({\r\n force: true,\r\n });\r\n } else if (!notReload) {\r\n this.#paginator.pageIndex = 0;\r\n this.#reload.next({\r\n force: false,\r\n });\r\n }\r\n })\r\n )\r\n .subscribe()\r\n );\r\n }\r\n }\r\n };\r\n\r\n #filterLocal = (localItems: any[], filterInfo: SdGridMaterialFilterRequest) => {\r\n const { columns } = this.gridOption;\r\n const { rawColumnFilter, orderBy, orderDirection, pageSize, pageNumber } = filterInfo;\r\n const items = localItems.filter(item => {\r\n for (const column of columns) {\r\n const { field, type } = column;\r\n const filterValue: string = (rawColumnFilter[field] || '').toString().trim().toLowerCase();\r\n const columnValue: string = (item[field] || '').toString().trim().toLowerCase();\r\n if (filterValue) {\r\n if (!columnValue && type !== 'datetime' && type !== 'date' && type !== 'time') {\r\n return false;\r\n }\r\n if (type === 'string') {\r\n if (columnValue.indexOf(filterValue) === -1) {\r\n return false;\r\n }\r\n } else if (type === 'values') {\r\n if (columnValue !== filterValue) {\r\n return false;\r\n }\r\n } else if (type === 'number') {\r\n const fValue = +filterValue.replace('>=', '').replace('<=', '').replace('>', '').replace('<', '');\r\n const cValue = +columnValue;\r\n if (fValue || fValue === 0) {\r\n if (!cValue && cValue !== 0) {\r\n return false;\r\n }\r\n if (filterValue.indexOf('>=') > -1 && cValue < fValue) {\r\n return false;\r\n } else if (filterValue.indexOf('<=') > -1 && cValue > fValue) {\r\n return false;\r\n } else if (filterValue.indexOf('<') > -1 && cValue >= fValue) {\r\n return false;\r\n } else if (filterValue.indexOf('>') > -1 && cValue <= fValue) {\r\n return false;\r\n } else if (cValue !== fValue) {\r\n return false;\r\n }\r\n }\r\n } else if (type === 'bool') {\r\n if (filterValue === '1' && columnValue !== '1' && columnValue !== 'true') {\r\n return false;\r\n } else if (filterValue === '0' && columnValue !== '0' && columnValue !== 'false') {\r\n return false;\r\n }\r\n } else if (type === 'datetime' || type === 'date' || type === 'time') {\r\n const from = rawColumnFilter[field]?.from ?? rawColumnFilter[field];\r\n const to = rawColumnFilter[field]?.to ?? rawColumnFilter[field];\r\n const fromDate = Date.begin(from);\r\n const toDate = Date.end(to);\r\n if (fromDate || toDate) {\r\n if (!columnValue) {\r\n return false;\r\n }\r\n\r\n const columnTime = new Date(columnValue).getTime();\r\n const fromDateTime = fromDate?.getTime() || null;\r\n const toDateTime = toDate?.getTime() || null;\r\n\r\n if (fromDateTime && fromDateTime > columnTime) {\r\n return false;\r\n }\r\n if (toDateTime && columnTime > toDateTime) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n });\r\n // Sort\r\n if (orderBy && orderDirection) {\r\n const column = columns.find(e => e.field === orderBy);\r\n if (column) {\r\n const { type, field } = column;\r\n items.sort((current, next) => {\r\n if (type === 'number') {\r\n return (current[field] || 0) - (next[field] || 0);\r\n }\r\n if (type === 'date' || type === 'datetime' || type === 'time') {\r\n const d1 = new Date(current[field] || '').getTime();\r\n const d2 = new Date(current[field] || '').getTime();\r\n return d1 - d2;\r\n }\r\n const s1 = (current[field] || '').toString();\r\n const s2 = (next[field] || '').toString();\r\n if (s1 > s2) {\r\n return 1;\r\n }\r\n if (s1 < s2) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n if (orderDirection === 'desc') {\r\n items.reverse();\r\n }\r\n }\r\n }\r\n return {\r\n items: items.filter((item, index) => {\r\n return index >= pageNumber * pageSize && index < (pageNumber + 1) * pageSize;\r\n }),\r\n total: items.length,\r\n };\r\n };\r\n\r\n #getFilter = (): SdGridMaterialFilterRequest => {\r\n const { columnOperator, columnFilter, externalFilter, filterDef } = this.filterRegister.value.get();\r\n return {\r\n columnOperator: columnOperator || {},\r\n rawColumnFilter: columnFilter || {},\r\n rawExternalFilter: externalFilter || {},\r\n rawFilterDef: filterDef || {},\r\n orderBy: this.#sort?.active || '',\r\n orderDirection: this.#sort?.direction || '',\r\n pageNumber: this.#paginator?.pageIndex || 0,\r\n pageSize: this.#paginator?.pageSize || this.gridOption?.paginate?.pageSize || 50,\r\n };\r\n };\r\n\r\n #load = async (filterReq: SdGridMaterialFilterRequest, force: boolean = true) => {\r\n this.isLoading = true;\r\n if (this.gridOption.type === 'server') {\r\n try {\r\n let result = this.gridOption.items(filterReq);\r\n if (isObservable(result)) {\r\n result = result.toPromise();\r\n }\r\n const data = await result;\r\n return {\r\n items: data?.items || [],\r\n total: data?.total || 0,\r\n };\r\n } catch (error) {\r\n console.error(error);\r\n this.notifyService.notify.warning('Có lỗi xảy ra');\r\n return {\r\n items: [],\r\n total: 0,\r\n };\r\n } finally {\r\n this.isLoading = false;\r\n this.ref.detectChanges();\r\n }\r\n } else {\r\n if (force) {\r\n try {\r\n const results = this.gridOption.items();\r\n if (results instanceof Promise) {\r\n this.#localItems = (await results) || [];\r\n } else {\r\n this.#localItems = results || [];\r\n }\r\n if (!Array.isArray(this.#localItems)) {\r\n this.notifyService.notify.warning('Dữ liệu không phải là một mảng');\r\n this.#localItems = [];\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n this.notifyService.notify.warning('Có lỗi xảy ra');\r\n this.#localItems = [];\r\n } finally {\r\n this.isLoading = false;\r\n this.ref.detectChanges();\r\n }\r\n }\r\n this.isLoading = false;\r\n this.ref.detectChanges();\r\n return this.#filterLocal(this.#localItems, filterReq);\r\n }\r\n };\r\n\r\n #render = async (args: { items: any[]; total: number }) => {\r\n this.sdScroll?.scrollTop();\r\n this.items = args?.items || [];\r\n this.total = args?.total || 0;\r\n // this.isHiddenPaginator = this.filterInfo.pageNumber === 0 && this.total <= this.filterInfo.pageSize;\r\n this.items.forEach((item: SdItem) => {\r\n item.originItem = { ...item };\r\n });\r\n await this.gridOption?.reload?.onReload?.(this.items);\r\n this.isSelectAll = this.items.every(e => e.isSelected);\r\n this.#updateSelectedItems();\r\n };\r\n\r\n reload = async (force: boolean = true) => {\r\n this.gridFilter?.updateFilter?.();\r\n const data = await this.#load(this.#getFilter(), force);\r\n this.#render(data);\r\n };\r\n\r\n #exportedItems = async (pageNumber: number = 0, pageSize: number = 10000) => {\r\n if (this.gridOption.export?.items) {\r\n // const exportedItems = this.gridOption.export?.items(this.#filterExportInfo(pageNumber, pageSize));\r\n let result = this.gridOption.export?.items(this.#filterExportInfo(pageNumber, pageSize));\r\n if (Array.isArray(result)) {\r\n return result;\r\n }\r\n if (isObservable<any[]>(result)) {\r\n result = result.toPromise();\r\n }\r\n if (isObservable<{ items: any[]; total: number }>(result)) {\r\n result = result.toPromise();\r\n }\r\n return await result;\r\n } else {\r\n const filterInfo = this.#filterExportInfo(pageNumber, pageSize);\r\n if (this.gridOption.type === 'server') {\r\n let result = this.gridOption.items(filterInfo);\r\n if (isObservable(result)) {\r\n result = result.toPromise();\r\n }\r\n return await result;\r\n } else {\r\n let exportedItems: any[] = [];\r\n if (typeof this.gridOption.items === 'function') {\r\n const results = this.gridOption.items();\r\n if (results instanceof Promise) {\r\n exportedItems = await results;\r\n } else {\r\n exportedItems = results;\r\n }\r\n } else {\r\n exportedItems = this.gridOption.items;\r\n }\r\n return this.#filterLocal(exportedItems, filterInfo);\r\n }\r\n }\r\n };\r\n\r\n drop(event: CdkDragDrop<string[]>, columns: string[]) {\r\n moveItemInArray(columns, event.previousIndex, event.currentIndex);\r\n }\r\n\r\n #allColumns = (): SdGridMaterialColumn[] => {\r\n const columns: SdGridMaterialColumn[] = [];\r\n this.gridOption.columns\r\n .filter(e => !e.export?.disabled)\r\n .forEach(column => {\r\n if (column.type === 'image') {\r\n return;\r\n }\r\n if (column.type === 'children') {\r\n column.children\r\n ?.filter(e => !e.export?.disabled)\r\n .forEach(childColumn => {\r\n if (childColumn.type === 'image') {\r\n return;\r\n }\r\n columns.push(childColumn);\r\n });\r\n return;\r\n }\r\n if (column.type === 'children-col') {\r\n column.children\r\n ?.filter(e => !e.export?.disabled)\r\n .forEach(childColumn => {\r\n if (childColumn.type === 'image') {\r\n return;\r\n }\r\n columns.push(childColumn);\r\n });\r\n return;\r\n }\r\n columns.push(column);\r\n });\r\n return columns;\r\n };\r\n\r\n #allExportedColumns = (): SdGridMaterialExportColumn[] => {\r\n return this.gridOption.export?.columns?.filter(e => !e.export?.disabled) || [];\r\n };\r\n\r\n #onExport = async (args: { file: SdExportFile; columns: SdExportColumn[]; isCSV: boolean }) => {\r\n try {\r\n const { file, isCSV } = args;\r\n let { columns } = args;\r\n const pageSize = this.gridOption?.export?.maxItemsPerRequest || 1000;\r\n const batch = this.gridOption?.export?.batch || 1;\r\n let total = this.total;\r\n let pageNumber = 0;\r\n let exportItems = [];\r\n this.isExporting = true;\r\n const items: any[] = [];\r\n let promises: Promise<\r\n | any[]\r\n | {\r\n items: any[];\r\n total: number;\r\n }\r\n >[] = [];\r\n const handleData = async () => {\r\n const results = await Promise.all(promises);\r\n promises = [];\r\n exportItems = [];\r\n for (const result of results) {\r\n if ('items' in result) {\r\n exportItems = [...exportItems, ...result.items];\r\n total = result.total;\r\n } else {\r\n exportItems = [...exportItems, ...result];\r\n }\r\n }\r\n if (this.gridOption.export?.mapping) {\r\n const results = this.gridOption.export.mapping(exportItems);\r\n if (results instanceof Promise) {\r\n exportItems = await results;\r\n } else {\r\n exportItems = results;\r\n }\r\n }\r\n const totalPage = total / pageSize;\r\n const percent = Math.round(((pageNumber - 1) * 100.0) / totalPage);\r\n this.exportTitle = `Exporting...${percent}%`;\r\n const allColumns = this.#allColumns();\r\n const allExportedColumns = this.#allExportedColumns();\r\n for (const item of exportItems) {\r\n const obj: any = {};\r\n const handle = async (exportColumn: SdExportColumn) => {\r\n obj[exportColumn.field] = item[exportColumn.field];\r\n const column = allColumns.find(e => e.field === exportColumn.field);\r\n const exportedColumn = allExportedColumns.find(e => e.field === exportColumn.field);\r\n if (exportedColumn?.transform) {\r\n obj[exportedColumn.field] = exportedColumn.transform(item[exportedColumn.field], item);\r\n return;\r\n }\r\n if (!column) {\r\n return;\r\n }\r\n if (column.type === 'children' || column.type === 'children-col') {\r\n column?.children.forEach(childColumn => handle(childColumn));\r\n return;\r\n }\r\n if (!columns.some(e => e.field === column.field)) {\r\n return;\r\n }\r\n if (column.transform) {\r\n const transform = column.transform(item[column.field], item, {\r\n isExport: true,\r\n });\r\n if (transform instanceof Promise) {\r\n obj[column.field] = await transform;\r\n } else {\r\n obj[column.field] = transform;\r\n }\r\n obj[column.field] = obj[column.field] ?? '';\r\n } else if (item[column.field] === undefined || item[column.field] === null || item[column.field] === '') {\r\n obj[column.field] = '';\r\n } else if (column.type === 'string' || column.type === 'number') {\r\n // Nếu cell là string hoặc number thì gán bằng chính nó\r\n obj[column.field] = item[column.field];\r\n } else if (column.type === 'bool') {\r\n // Nếu là bool thì gán bằng giá trị trueValue và falseValue (nếu có), mặc định là TRUE/FALSE\r\n if (item[column.field]) {\r\n obj[column.field] = column.option?.displayOnTrue || 'True';\r\n } else if (obj[column.field] !== undefined && obj[column.field] !== null) {\r\n obj[column.field] = column.option?.displayOnFalse || 'False';\r\n }\r\n } else if (column.type === 'date') {\r\n let date = item[column.field];\r\n const { transformDate } = column;\r\n if (transformDate) {\r\n date = transformDate(date, item);\r\n }\r\n // Nếu là date thì convert theo đúng format\r\n obj[column.field] = Date.toFormat(date, 'dd/MM/yyyy');\r\n } else if (column.type === 'datetime') {\r\n let date = item[column.field];\r\n const { transformDate } = column;\r\n if (transformDate) {\r\n date = transformDate(date, item);\r\n }\r\n // Nếu là datetime thì convert theo đúng format\r\n obj[column.field] = Date.toFormat(date, 'dd/MM/yyyy HH:mm');\r\n } else if (column.type === 'time') {\r\n let date = item[column.field];\r\n const { transformDate } = column;\r\n if (transformDate) {\r\n date = transformDate(date, item);\r\n }\r\n // Nếu là time thì convert theo đúng format\r\n obj[column.field] = Date.toFormat(date, 'HH:mm');\r\n } else if (column.type === 'values') {\r\n // Nếu là values thì lấy giá trị của value được chọn\r\n obj[column.field] = await this.columnValuesPipe.transform(item[column.field], column);\r\n } else {\r\n obj[column.field] = item[column.field];\r\n }\r\n };\r\n // this.gridOption.columns.forEach(handle);\r\n for (const exportColumn of columns) {\r\n await handle(exportColumn);\r\n }\r\n items.push(obj);\r\n }\r\n };\r\n while (pageNumber * pageSize < total) {\r\n promises.push(this.#exportedItems(pageNumber, pageSize));\r\n pageNumber++;\r\n if (promises.length < batch) {\r\n continue;\r\n }\r\n await handleData();\r\n }\r\n if (promises.length > 0) {\r\n await handleData();\r\n }\r\n if (!file?.filePath) {\r\n if (isCSV) {\r\n await this.exportService.exportCSV({\r\n columns,\r\n items,\r\n fileName: this.gridOption?.export?.fileName,\r\n });\r\n return;\r\n }\r\n const sheets: {\r\n name: string;\r\n items: any[];\r\n fields: string[];\r\n }[] = [];\r\n if (Array.isArray(this.gridOption?.export?.sheets)) {\r\n for (const sheet of this.gridOption.export.sheets) {\r\n if (sheet.name && sheet.items && sheet.fields) {\r\n if (Array.isArray(sheet.items)) {\r\n sheets.push({\r\n name: sheet.name,\r\n items: sheet.items,\r\n fields: sheet.fields,\r\n });\r\n } else {\r\n sheets.push({\r\n name: sheet.name,\r\n items: await sheet.items(),\r\n fields: sheet.fields,\r\n });\r\n }\r\n }\r\n }\r\n }\r\n await this.exportService.export({\r\n columns,\r\n items,\r\n fileName: this.gridOption?.export?.fileName,\r\n sheets,\r\n });\r\n return;\r\n }\r\n await this.exportService.exportByTemplate({\r\n filePath: file.filePath,\r\n fileName: file.fileName,\r\n columns,\r\n items,\r\n });\r\n } finally {\r\n this.isExporting = false;\r\n this.exportTitle = `Export`;\r\n this.ref.detectChanges();\r\n }\r\n };\r\n\r\n onExport = async (args: { file: SdExportFile; columns: SdExportColumn[]; isCSV: boolean }) => {\r\n this.#onExport(args);\r\n };\r\n\r\n onFilterChange = () => {\r\n this.gridFilter?.updateFilter?.();\r\n if (this.gridOption?.filter?.inlineColumn) {\r\n this.filterRegister.value.set({\r\n columnOperator: this.columnOperator || {},\r\n columnFilter: this.columnFilter,\r\n });\r\n } else {\r\n this.filterRegister.value.set({});\r\n }\r\n };\r\n\r\n onExpand = async (rowData: SdGridMaterialItem<T>) => {\r\n if (this.gridOption.subInformation?.always) {\r\n return;\r\n }\r\n if (rowData.isExpanding) {\r\n return;\r\n }\r\n if (rowData.isExpanded) {\r\n rowData.isExpanded = false;\r\n return;\r\n }\r\n const data = this.gridOption?.subInformation?.onExpand?.(rowData);\r\n if (!this.gridOption.subInformation?.multiple) {\r\n this.items.forEach(item => (item.isExpanding = item.isExpanded = false));\r\n }\r\n if (data instanceof Promise) {\r\n rowData.isExpanding = true;\r\n data\r\n .then(res => {\r\n rowData.expandDetail = res;\r\n rowData.isExpanded = true;\r\n })\r\n .finally(() => (rowData.isExpanding = false));\r\n } else {\r\n rowData.expandDetail = data;\r\n rowData.isExpanded = true;\r\n }\r\n };\r\n\r\n onSelect = (rowData: SdGridMaterialItem<T>) => {\r\n if (rowData?.sdGroup?.items?.length) {\r\n rowData?.sdGroup?.items.forEach(e => (e.isSelected = rowData.isSelected));\r\n this.gridOption.selection?.onSelect?.(\r\n rowData,\r\n this.items.filter(e => e.isSelected)\r\n );\r\n this.isSelectAll = this.items.every(e => e.isSelected);\r\n this.#updateSelectedItems();\r\n } else {\r\n if (this.gridOption.selection?.single) {\r\n this.items.filter(e => e !== rowData).forEach(e => (e.isSelected = false));\r\n this.#updateSelectedItems();\r\n return;\r\n }\r\n this.gridOption.selection?.onSelect?.(\r\n rowData,\r\n this.items.filter(e => e.isSelected)\r\n );\r\n this.isSelectAll = this.items.every(e => e.isSelected);\r\n this.#updateSelectedItems();\r\n }\r\n };\r\n\r\n onSelectAll = () => {\r\n this.items?.forEach(e => {\r\n if (e.selectable && (!this.gridOption?.selection?.actions?.length || e.actions?.length)) {\r\n e.isSelected = this.isSelectAll;\r\n }\r\n });\r\n this.gridOption.selection?.onSelectAll?.(this.items.filter(e => e.isSelected));\r\n this.#updateSelectedItems();\r\n };\r\n\r\n onClearSelection = (items?: SdGridMaterialItem<T>[]) => {\r\n items = items || this.items;\r\n this.isSelectAll = false;\r\n items?.forEach(e => (e.isSelected = false));\r\n this.#updateSelectedItems();\r\n };\r\n\r\n #updateSelectedItems = () => {\r\n this.selectedItems = this.items\r\n .filter(item => item.isSelected)\r\n .map(item => {\r\n const {\r\n isSelected,\r\n isExpanded,\r\n isExpanding,\r\n expandDetail,\r\n editorErrorMessage,\r\n editorHandlerColumn,\r\n editorHandlerRow,\r\n editorStatus,\r\n originItem,\r\n sdId,\r\n sdVersion,\r\n // Giữ lại các trường thông tin cho selectable (action, groupedAction, sdGroup, selectable)\r\n ...result\r\n } = item;\r\n return result;\r\n }) as T[];\r\n this.ref.detectChanges();\r\n };\r\n\r\n clearFilter = () => {\r\n this.filterRegister.value.remove();\r\n };\r\n\r\n setFilter = (args: { columnFilter?: Record<string, any>; externalFilter?: Record<string, any>; filterDef?: Record<string, any> }) => {\r\n const { columnFilter, externalFilter, filterDef } = args || {};\r\n if (this.gridOption?.filter?.inlineColumn && columnFilter) {\r\n this.columnFilter = columnFilter;\r\n }\r\n this.filterRegister.value.set({\r\n columnFilter,\r\n externalFilter,\r\n filterDef,\r\n });\r\n };\r\n\r\n onCreate = () => {\r\n const { type, editor, columns } = this.gridOption;\r\n if (!editor?.addable) {\r\n return;\r\n }\r\n const item: SdGridMaterialItem = {};\r\n // Gán giá trị mặc định\r\n columns.forEach(column => {\r\n if (column.type === 'values') {\r\n item[column.field] = '';\r\n } else if (column.type === 'bool') {\r\n item[column.field] = true;\r\n } else if (column.type === 'number') {\r\n item[column.field] = null;\r\n }\r\n });\r\n if (type === 'local') {\r\n editor.onAdd?.(item, this.#localItems);\r\n } else {\r\n editor.onAdd?.(item, this.items);\r\n }\r\n // Đưa item lên dòng đầu tiên nếu type khác popup\r\n if (editor.type !== 'popup') {\r\n if (editor.addToLast) {\r\n if (type === 'local') {\r\n this.#localItems = [...this.#localItems, item];\r\n }\r\n this.items = [...this.items, item];\r\n } else {\r\n if (type === 'local') {\r\n this.#localItems = [item, ...this.#localItems];\r\n }\r\n this.items = [item, ...this.items];\r\n }\r\n }\r\n item.editorStatus = 'create';\r\n item.editorHandlerRow = {\r\n temporary: { ...item },\r\n };\r\n };\r\n onUpdate = (item: SdItem) => {\r\n const { editor } = this.gridOption;\r\n item.editorStatus = 'update';\r\n item.editorHandlerRow = {\r\n ...item.editorHandlerRow,\r\n temporary: { ...item },\r\n };\r\n // this.generateEditorHanlder(item);\r\n if (editor.type === 'popup') {\r\n // Xử lý case popup\r\n // this.sdGridPopupEditor.open(item, columns, isModified);\r\n }\r\n this.ref.detectChanges();\r\n };\r\n onSave = async (item: SdGridMaterialItem<T>) => {\r\n if (item.editorHandlerRow.saving) {\r\n return;\r\n }\r\n const { editor } = this.gridOption;\r\n try {\r\n item.editorHandlerRow.saving = true;\r\n if (editor.validate) {\r\n const result = editor.validate(item, this.items.indexOf(item));\r\n if (result instanceof Promise) {\r\n const message = await result;\r\n if (message) {\r\n throw message;\r\n }\r\n } else {\r\n if (result) {\r\n throw result;\r\n }\r\n }\r\n }\r\n if (editor.onSave) {\r\n const result = editor.onSave(item);\r\n if (result instanceof Promise) {\r\n await result;\r\n }\r\n }\r\n\r\n if (item.editorStatus === 'create' && editor.type === 'popup') {\r\n if (this.gridOption.type === 'local') {\r\n this.items.splice(0, 0, item);\r\n }\r\n // this.viewItems.splice(0, 0, item);\r\n }\r\n\r\n item.editorStatus = undefined;\r\n // this.generateEditorHanlder(item);\r\n } catch (err) {\r\n this.notifyService.notify.warning(err);\r\n } finally {\r\n item.editorHandlerRow.saving = false;\r\n this.ref.detectChanges();\r\n }\r\n };\r\n onCancel = (item: SdGridMaterialItem<T>) => {\r\n const { editor } = this.gridOption;\r\n if (editor.type === 'inline') {\r\n if (this.gridOption.type === 'local') {\r\n const idx2 = this.#localItems.indexOf(item);\r\n this.#localItems.splice(idx2, 1);\r\n this.#localItems = [...this.#localItems];\r\n }\r\n const idx1 = this.items.indexOf(item);\r\n this.items.splice(idx1, 1);\r\n this.items = [...this.items];\r\n if (this.gridOption.type === 'local') {\r\n editor?.onCancel?.(item, this.#localItems);\r\n } else {\r\n editor?.onCancel?.(item, this.items);\r\n }\r\n this.ref.detectChanges();\r\n return;\r\n }\r\n if (editor.type === 'focus') {\r\n if (item.editorStatus === 'create') {\r\n if (this.gridOption.type === 'local') {\r\n const idx2 = this.#localItems.indexOf(item);\r\n this.#localItems.splice(idx2, 1);\r\n this.#localItems = [...this.#localItems];\r\n }\r\n const idx1 = this.items.indexOf(item);\r\n this.items.splice(idx1, 1);\r\n this.items = [...this.items];\r\n } else {\r\n Object.assign(item, item.editorHandlerRow.temporary);\r\n }\r\n }\r\n item.editorStatus = undefined;\r\n this.ref.detectChanges();\r\n };\r\n onRemove = async (item: SdGridMaterialItem<T>) => {\r\n const { editor } = this.gridOption;\r\n if (editor?.beforeRemove) {\r\n const beforeRemove = editor?.beforeRemove(item);\r\n if (beforeRemove instanceof Promise) {\r\n const result = await beforeRemove;\r\n if (!result) {\r\n return;\r\n }\r\n } else {\r\n if (!beforeRemove) {\r\n return;\r\n }\r\n }\r\n }\r\n if (editor.type === 'inline') {\r\n if (this.gridOption.type === 'local') {\r\n const idx2 = this.#localItems.indexOf(item);\r\n this.#localItems.splice(idx2, 1);\r\n this.#localItems = [...this.#localItems];\r\n }\r\n const idx1 = this.items.indexOf(item);\r\n this.items.splice(idx1, 1);\r\n this.items = [...this.items];\r\n if (this.gridOption.type === 'local') {\r\n editor?.onRemove?.(item, this.#localItems);\r\n } else {\r\n editor?.onRemove?.(item, this.items);\r\n }\r\n this.ref.detectChanges();\r\n return;\r\n }\r\n };\r\n\r\n add = (idx: number, item: T) => {\r\n if (this.items.length > idx) {\r\n this.items.splice(idx, 0, item);\r\n this.items = [...this.items];\r\n } else {\r\n this.items = [...this.items, item];\r\n }\r\n };\r\n\r\n update = (idx: number, item: T) => {\r\n if (this.items[idx]) {\r\n Object.assign(this.items[idx], item);\r\n this.items = [...this.items];\r\n }\r\n };\r\n\r\n remove = (idx: number) => {\r\n if (this.items[idx]) {\r\n this.items.splice(idx, 1);\r\n this.items = [...this.items];\r\n }\r\n };\r\n\r\n refreshItem = (idx: number) => {\r\n const item = this.items[idx];\r\n this.editorHandlerColumnPipe.transform(item.sdVersion, item, this.gridOption);\r\n };\r\n\r\n get editedItems(): (T & { editorErrorMessage: string })[] {\r\n return this.items\r\n .filter(item => {\r\n if (!item.originItem) {\r\n return true;\r\n }\r\n if (Object.keys(item.originItem).some(key => item.originItem[key] !== item[key])) {\r\n return true;\r\n }\r\n return false;\r\n })\r\n .map(item => {\r\n const {\r\n editorStatus,\r\n editorHandlerRow,\r\n editorHandlerColumn,\r\n editorErrorMessage,\r\n expandDetail,\r\n isExpanded,\r\n isExpanding,\r\n isSelected,\r\n originItem,\r\n sdId,\r\n sdVersion,\r\n selectable,\r\n actions,\r\n groupedActions,\r\n sdGroup,\r\n temporary,\r\n ...result\r\n } = item;\r\n return {\r\n ...result,\r\n editorErrorMessage,\r\n } as any;\r\n });\r\n }\r\n\r\n get gridItems(): T[] {\r\n return this.items.map(item => {\r\n const {\r\n editorStatus,\r\n editorHandlerRow,\r\n editorHandlerColumn,\r\n expandDetail,\r\n isExpanded,\r\n isExpanding,\r\n isSelected,\r\n originItem,\r\n sdId,\r\n sdVersion,\r\n selectable,\r\n actions,\r\n groupedActions,\r\n sdGroup,\r\n temporary,\r\n ...result\r\n } = item;\r\n return result as T;\r\n });\r\n }\r\n\r\n get localItems(): T[] {\r\n return this.#localItems;\r\n }\r\n\r\n get localGridItems(): T[] {\r\n return this.#localItems.map(item => {\r\n const {\r\n editorStatus,\r\n editorHandlerRow,\r\n editorHandlerColumn,\r\n expandDetail,\r\n isExpanded,\r\n isExpanding,\r\n isSelected,\r\n originItem,\r\n sdId,\r\n sdVersion,\r\n selectable,\r\n actions,\r\n groupedActions,\r\n sdGroup,\r\n temporary,\r\n ...result\r\n } = item;\r\n return result as T;\r\n });\r\n }\r\n\r\n detectChanges = () => this.ref.detectChanges();\r\n\r\n onOperatorChange = (column: SdGridMaterialColumn, operator: SdFilterOperator) => {\r\n this.gridOption?.filter?.operatorChange?.(column, operator);\r\n }\r\n\r\n get isEditing() {\r\n return this.items.some(e => e.editorStatus !== undefined);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialCommand, SdGridMaterialCommandNormal } from '../models/grid-command.model';\r\n@Pipe({\r\n name: 'commandFilter'\r\n})\r\nexport class SdCommandFilterPipe implements PipeTransform {\r\n async transform(item: any, commands: SdGridMaterialCommand[]): Promise<SdGridMaterialCommand[]> {\r\n const results: SdGridMaterialCommand[] = [];\r\n if (!commands) {\r\n return results;\r\n }\r\n for (const command of commands) {\r\n let flag = false;\r\n const { hidden } = command;\r\n if (hidden === undefined) {\r\n flag = true;\r\n } else if (typeof (hidden) === 'boolean') {\r\n if (!hidden) {\r\n flag = true;\r\n }\r\n } else {\r\n const isHidden = hidden(item);\r\n if (isHidden instanceof Promise) {\r\n if (!await isHidden) {\r\n flag = true;\r\n }\r\n } else {\r\n if (!isHidden) {\r\n flag = true;\r\n }\r\n }\r\n }\r\n if (flag) {\r\n if ('children' in command) {\r\n const children: SdGridMaterialCommandNormal[] = [];\r\n for (const childCommand of command.children) {\r\n const { hidden } = childCommand;\r\n if (hidden === undefined) {\r\n children.push(childCommand);\r\n } else if (typeof (hidden) === 'boolean') {\r\n if (!hidden) {\r\n children.push(childCommand);\r\n }\r\n } else {\r\n const isHidden = hidden(item);\r\n if (isHidden instanceof Promise) {\r\n if (!await isHidden) {\r\n children.push(childCommand);\r\n }\r\n } else {\r\n if (!isHidden) {\r\n children.push(childCommand);\r\n }\r\n }\r\n }\r\n }\r\n if (children.length > 0) {\r\n results.push({ ...command, children });\r\n }\r\n } else {\r\n results.push(command);\r\n }\r\n }\r\n }\r\n return results;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialCommand } from '../models/grid-command.model';\r\n@Pipe({\r\n name: 'commandDisable'\r\n})\r\nexport class SdCommandDisablePipe implements PipeTransform {\r\n transform(item: any, command: SdGridMaterialCommand): boolean {\r\n if (!command?.disabled) {\r\n return false;\r\n }\r\n if (typeof (command.disabled) === 'boolean') {\r\n return command.disabled;\r\n }\r\n return command.disabled(item);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialCommand } from '../models/grid-command.model';\r\n@Pipe({\r\n name: 'commandIcon'\r\n})\r\nexport class SdCommandIconPipe implements PipeTransform {\r\n transform(command: SdGridMaterialCommand, item: any): string {\r\n if (!command?.icon) {\r\n return '';\r\n }\r\n if (typeof (command.icon) === 'string') {\r\n return command.icon;\r\n }\r\n return command.icon(item);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialCommand } from '../models/grid-command.model';\r\n@Pipe({\r\n name: 'commandTitle'\r\n})\r\nexport class SdCommandTitlePipe implements PipeTransform {\r\n transform(command: SdGridMaterialCommand, item: any): string {\r\n if (!command?.title) {\r\n return '';\r\n }\r\n if (typeof (command.title) === 'string') {\r\n return command.title;\r\n }\r\n return command.title(item);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { SdGridMaterialColumn } from '../models/grid-column.model';\r\n@Pipe({\r\n name: 'columnHtmlTemplate'\r\n})\r\nexport class SdColumnHtmlTemplatePipe implements PipeTransform {\r\n private isMobileOrTablet = false;\r\n constructor(deviceService: DeviceDetectorService) {\r\n this.isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n transform(value: any, rowData: any, column: SdGridMaterialColumn): string {\r\n if (typeof (column?.htmlTemplate) !== 'function') {\r\n return value;\r\n }\r\n return column?.htmlTemplate(value, rowData, this.isMobileOrTablet);\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, QueryList } from '@angular/core';\r\nimport { SdGridMaterialColumn } from '../../models/grid-column.model';\r\nimport { SdGridMaterialOption } from '../../models/grid-option.model';\r\n\r\n@Component({\r\n selector: 'sd-desktop-cell-view',\r\n templateUrl: './desktop-cell-view.component.html',\r\n styleUrls: ['./desktop-cell-view.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdDesktopCellView {\r\n @Input() sdId: string;\r\n @Input() key: string;\r\n @Input() column: SdGridMaterialColumn;\r\n @Input() item: any;\r\n @Input() gridOption: SdGridMaterialOption;\r\n constructor(\r\n ) { }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialColumn } from '../models/grid-column.model';\r\nimport { SdColumnValuesPipe } from './column-values.pipe';\r\n@Pipe({\r\n name: 'columnTransform'\r\n})\r\nexport class SdColumnTransformPipe implements PipeTransform {\r\n constructor(private columnValuesPipe: SdColumnValuesPipe) { }\r\n async transform(value: any, rowData: any, column: SdGridMaterialColumn, key?: string): Promise<string> {\r\n if (column?.transform) {\r\n return column.transform(value, rowData);\r\n }\r\n if (column.type === 'values') {\r\n return await this.columnValuesPipe.transform(value, column);\r\n }\r\n if (column.type === 'number' && Number.isNumber(value)) {\r\n return Number.toVNCurrency(value); // this.decimalPipe.transform(value, '1.0-2');\r\n }\r\n if (column.type === 'bool') {\r\n return value === true ? (column.option?.displayOnTrue || 'True') : (column.option?.displayOnFalse || 'False');\r\n }\r\n return value;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialExternalFilter } from '../services/grid-filter/grid-filter.model';\r\n@Pipe({\r\n name: 'sdFilterExternal'\r\n})\r\nexport class SdFilterExternalPipe implements PipeTransform {\r\n transform(externalFilters: SdGridMaterialExternalFilter[], field?: string): SdGridMaterialExternalFilter[] {\r\n const results: SdGridMaterialExternalFilter[] = [];\r\n if (!externalFilters) {\r\n return results;\r\n }\r\n for (const filter of externalFilters) {\r\n results.push(filter);\r\n }\r\n return results.filter(e => !field || e.field === field);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialColumn } from '../models/grid-column.model';\r\n@Pipe({\r\n name: 'sdFilterColumn'\r\n})\r\nexport class SdFilterColumnPipe implements PipeTransform {\r\n transform(columns: SdGridMaterialColumn[], field?: string): SdGridMaterialColumn[] {\r\n const results: SdGridMaterialColumn[] = [];\r\n if (!columns) {\r\n return results;\r\n }\r\n for (const column of columns) {\r\n if (column.type === 'image') {\r\n continue;\r\n }\r\n if (column.type === 'children') {\r\n for (const columnChildren of column?.children) {\r\n if (!columnChildren.filter?.disabled) {\r\n results.push(columnChildren);\r\n }\r\n }\r\n continue;\r\n }\r\n if (!column.filter?.disabled) {\r\n results.push(column);\r\n }\r\n }\r\n return results.filter(e => !field || e.field === field);\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { SdGridMaterialColumnChildren } from '../../models/grid-column.model';\r\n\r\n@Component({\r\n selector: 'sd-desktop-cell-children-view',\r\n templateUrl: './desktop-cell-children-view.component.html',\r\n styleUrls: ['./desktop-cell-children-view.component.scss']\r\n})\r\nexport class SdDesktopCellChildrenView {\r\n @Input() key: string;\r\n @Input() column: SdGridMaterialColumnChildren;\r\n @Input() item: any;\r\n constructor(\r\n ) { }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { SdGridMaterialColumn } from '../models/grid-column.model';\r\n\r\n@Pipe({\r\n name: 'columnChildrenFilter'\r\n})\r\nexport class SdColumnChildrenFilterPipe implements PipeTransform {\r\n #isMobileOrTablet = false;\r\n constructor(deviceService: DeviceDetectorService) {\r\n this.#isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n transform(columns: SdGridMaterialColumn[], item: any): SdGridMaterialColumn[] {\r\n return columns.filter(column => {\r\n const value = item?.[column.field];\r\n const transformValue = column.transform?.(item[column.field], item);\r\n const templateValue = column.htmlTemplate?.(item[column.field], item, this.#isMobileOrTablet);\r\n return (value !== undefined && value !== null && value !== '')\r\n || (transformValue !== undefined && transformValue !== null && transformValue !== '')\r\n || (templateValue !== undefined && templateValue !== null && templateValue !== '');\r\n });\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialChildColumn } from '../models/grid-column.model';\r\n@Pipe({\r\n name: 'columnTitle'\r\n})\r\nexport class SdColumnTitlePipe implements PipeTransform {\r\n async transform(item: any, column: SdGridMaterialChildColumn): Promise<string> {\r\n if (!column?.title) {\r\n return '';\r\n }\r\n const result = column?.dynamicTitle?.(item);\r\n if (result instanceof Promise) {\r\n return (await result) || column?.title;\r\n }\r\n return result || column?.title;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { SdGridMaterialCommand } from '../../models/grid-command.model';\r\n\r\n@Component({\r\n selector: 'sd-desktop-command',\r\n templateUrl: './desktop-command.component.html',\r\n styleUrls: ['./desktop-command.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdDesktopCommand {\r\n @Input() item: any;\r\n @Input() commands: SdGridMaterialCommand[] = [];\r\n constructor() {\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdBadgeColor } from '@sd-angular/core/badge';\r\nimport { SdGridMaterialColumn } from '../models/grid-column.model';\r\n@Pipe({\r\n name: 'columnBadge'\r\n})\r\nexport class SdColumnBadgePipe implements PipeTransform {\r\n constructor() { }\r\n transform(value: any, rowData: any, column: SdGridMaterialColumn): {\r\n type: 'round' | 'circle' | 'icon',\r\n color: SdBadgeColor,\r\n icon: string\r\n } {\r\n if (column.type === 'string' && column?.badge) {\r\n return {\r\n type: !column?.badgeType ? 'round' : column.badgeType,\r\n color: column.badge(value, rowData),\r\n icon: column?.badgeIcon?.(value, rowData)\r\n };\r\n }\r\n if (column.type === 'number' && column?.badge) {\r\n return {\r\n type: !column?.badgeType ? 'round' : column.badgeType,\r\n color: column.badge(value, rowData),\r\n icon: column?.badgeIcon?.(value, rowData)\r\n };\r\n }\r\n if (column.type === 'bool') {\r\n return {\r\n type: !column?.badgeType ? 'round' : column.badgeType,\r\n color: !!value ? 'success' : 'danger',\r\n icon: null\r\n };\r\n }\r\n if (column.type === 'values' && column?.badge) {\r\n return {\r\n type: !column?.badgeType ? 'round' : column.badgeType,\r\n color: column.badge(value, rowData),\r\n icon: column?.badgeIcon?.(value, rowData)\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialOption } from '../models/grid-option.model';\r\nimport { SdGridConfiguration, SdGridConfigurationResult } from '../models/grid-config.model';\r\nimport { SdGridConfigurationService } from '../services/grid-configuration.service';\r\nimport { SdMaterialSubInformationDefDirective } from '../directives/sd-material-sub-information-def.directive';\r\n\r\n@Pipe({\r\n name: 'sdGridConfigurationResult'\r\n})\r\nexport class SdGridConfigurationResultPipe implements PipeTransform {\r\n constructor(private gridConfigurationService: SdGridConfigurationService) { }\r\n transform(configuration: SdGridConfiguration, gridOption: SdGridMaterialOption, sdSubInformation: SdMaterialSubInformationDefDirective): SdGridConfigurationResult {\r\n return this.gridConfigurationService.generateConfigurationResult(configuration, gridOption, sdSubInformation);\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, EventEmitter, ChangeDetectorRef, Input, HostListener } from '@angular/core';\r\nimport { SdModal } from '@sd-angular/core/modal';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport { SdTranslateService } from '@sd-angular/core/translate';\r\nimport { SdGridMaterialOption } from '../../models/grid-option.model';\r\nimport { SdGridConfigurationResult, SdGridConfiguration, SdGridConfigurationCache, SdColumnConfiguration } from '../../models/grid-config.model';\r\nimport { SdGridConfigurationService } from '../../services/grid-configuration.service';\r\nimport * as uuid from 'uuid';\r\nimport { MatTable } from '@angular/material/table';\r\n// import { SdGridMaterialColumn } from '@sd-angular/core/grid-material';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { SdGridMaterialColumn } from '../../models/grid-column.model';\r\n\r\n@Component({\r\n selector: 'sd-popup-grid-configuration',\r\n templateUrl: './popup-grid-configuration.component.html',\r\n styleUrls: ['./popup-grid-configuration.component.scss']\r\n})\r\nexport class SdPopupGridConfiguration implements OnInit {\r\n @Input() gridOption: SdGridMaterialOption;\r\n @Input() key: string;\r\n @ViewChild('modal') modal: SdModal;\r\n @ViewChild('table') table: MatTable<SdGridMaterialColumn>;\r\n readonly changes = new EventEmitter<SdGridConfigurationResult>();\r\n #cache: SdGridConfigurationCache;\r\n configuration: SdGridConfiguration;\r\n isCreatingColumn = false;\r\n selected: {\r\n [key: string]: boolean;\r\n } = {};\r\n disabledDrag = true;\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private notifyService: SdNotifyService,\r\n private translateService: SdTranslateService,\r\n private gridConfigurationService: SdGridConfigurationService) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n @HostListener('window:mouseup', ['$event'])\r\n mouseUp(event) {\r\n this.disabledDrag = true;\r\n }\r\n open = async () => {\r\n this.#cache = this.gridConfigurationService.init(this.key, this.gridOption);\r\n this.configuration = await this.#cache.get();\r\n this.modal.open();\r\n }\r\n\r\n onSave = () => {\r\n this.#cache.set(this.configuration);\r\n this.modal.close();\r\n this.ref.detectChanges();\r\n }\r\n\r\n onReset = async () => {\r\n const { translate } = this.translateService;\r\n this.notifyService.confirm(translate('Reset grid configuration to default')).then(() => {\r\n this.#cache.remove();\r\n this.modal.close();\r\n this.ref.detectChanges();\r\n });\r\n }\r\n\r\n createColumn = async () => {\r\n this.selected = {};\r\n this.isCreatingColumn = true;\r\n }\r\n\r\n confirm = async () => {\r\n const generatedColumn: SdColumnConfiguration = {\r\n origin: {\r\n field: uuid.v4(),\r\n title: 'Generated',\r\n width: '300px'\r\n },\r\n fixed: false,\r\n invisible: false,\r\n title: 'Generated',\r\n width: '300px',\r\n isGeneratedColumn: true,\r\n generatedColumns: this.configuration.columns.filter(e => this.selected[e.origin?.field]).map(e => e.origin?.field)\r\n };\r\n this.configuration.columns.push(generatedColumn);\r\n this.configuration = this.#cache.set(this.configuration);\r\n this.isCreatingColumn = false;\r\n }\r\n\r\n dropTable(event: CdkDragDrop<SdGridMaterialColumn[]>) {\r\n moveItemInArray(this.configuration.columns, event.previousIndex, event.currentIndex);\r\n this.table.renderRows();\r\n }\r\n\r\n handleMouseDown() {\r\n this.disabledDrag = false;\r\n }\r\n\r\n handleMouseUp() {\r\n this.disabledDrag = true;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialColumn } from '../models/grid-column.model';\r\n@Pipe({\r\n name: 'columnTooltip'\r\n})\r\nexport class SdColumnTooltipPipe implements PipeTransform {\r\n constructor() { }\r\n transform(value: any, rowData: any, column: SdGridMaterialColumn): string {\r\n if (column?.tooltip) {\r\n return column.tooltip(value, rowData);\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { SdGridMaterialAction, SdGridMaterialActionNormal, SdGridMaterialActionSimple } from '../models/grid-action.model';\r\nimport { SdItem } from '../models/grid.model';\r\n@Pipe({\r\n name: 'selectionActionFilter'\r\n})\r\nexport class SdSelectionActionFilterPipe implements PipeTransform {\r\n #convert = (action: SdGridMaterialAction): SdGridMaterialActionSimple => {\r\n if ('children' in action) {\r\n return {\r\n title: action.title,\r\n icon: action.icon,\r\n fontSet: action.fontSet,\r\n tooltip: action.tooltip,\r\n color: action.color,\r\n type: action.type,\r\n children: action.children.map(e => ({\r\n title: e.title,\r\n icon: e.icon,\r\n color: action.color,\r\n type: action.type,\r\n fontSet: e.fontSet,\r\n tooltip: e.tooltip,\r\n click: e.click\r\n }))\r\n };\r\n }\r\n return {\r\n title: action.title,\r\n icon: action.icon,\r\n color: action.color,\r\n type: action.type,\r\n fontSet: action.fontSet,\r\n tooltip: action.tooltip,\r\n click: action.click\r\n };\r\n\r\n }\r\n transform = (selectedItems: SdItem[], actions: SdGridMaterialAction[]): SdGridMaterialActionSimple[] => {\r\n const results: SdGridMaterialAction[] = [];\r\n if (!actions?.length || !selectedItems?.length) {\r\n return [];\r\n }\r\n for (const action of actions) {\r\n if ('children' in action) {\r\n const children: SdGridMaterialActionNormal[] = [];\r\n for (const childAction of action.children) {\r\n const key = hash(childAction);\r\n if (selectedItems.every(e => e.actions.includes(key))) {\r\n children.push(childAction);\r\n }\r\n }\r\n if (children.length > 0) {\r\n results.push({ ...action, children });\r\n }\r\n } else {\r\n const key = hash(action);\r\n if (selectedItems.every(e => e.actions.includes(key))) {\r\n results.push(action);\r\n }\r\n }\r\n }\r\n return results.map(result => this.#convert(result));\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { SdGridMaterialSelection } from '../models/grid-selection.model';\r\nimport { SdItem } from '../models/grid.model';\r\n@Pipe({\r\n name: 'selectionDisable'\r\n})\r\nexport class SdSelectionDisablePipe implements PipeTransform {\r\n transform = (selectedItems: SdItem[], rowData: SdItem, selection: SdGridMaterialSelection): boolean => {\r\n const { disabled, actions } = selection;\r\n if (!actions?.length) {\r\n if (!disabled) {\r\n rowData.selectable = true;\r\n return false;\r\n }\r\n rowData.selectable = !disabled(rowData, selectedItems);\r\n return !rowData.selectable;\r\n }\r\n // Lọc các action theo selectedItems hiện tại\r\n const availableActions = actions.filter(action => {\r\n if ('children' in action) {\r\n for (const childAction of action.children) {\r\n const key = hash(childAction);\r\n if (selectedItems.every(e => e.actions.includes(key))) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n } else {\r\n const key = hash(action);\r\n return selectedItems.every(e => e.actions.includes(key));\r\n }\r\n });\r\n // Kiểm tra rowData có action nào thỏa hay ko, nếu ko thì disabled\r\n for (const action of availableActions) {\r\n if ('children' in action) {\r\n for (const childAction of action.children) {\r\n if(rowData.actions.includes(hash(childAction))) {\r\n return false;\r\n }\r\n }\r\n } else {\r\n if(rowData.actions.includes(hash(action))) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialSelection } from '../models/grid-selection.model';\r\nimport { SdItem } from '../models/grid.model';\r\n@Pipe({\r\n name: 'selectionVisibleSelectAll'\r\n})\r\nexport class SdSelectionVisibleSelectAllPipe implements PipeTransform {\r\n transform = async (items: SdItem[], selection: SdGridMaterialSelection): Promise<boolean> => {\r\n const { actions } = selection;\r\n if (!actions?.length) {\r\n return true;\r\n }\r\n if (!items.length) {\r\n return false;\r\n }\r\n if (actions.some(e => ('children' in e && e.children.some(e1 => e1.isGrouped)) || e.isGrouped)) {\r\n return false;\r\n }\r\n await new Promise(resolve => setTimeout(resolve, 500));\r\n const first = items.find(t => t.actions?.length);\r\n if (first) {\r\n for (const action of first.actions) {\r\n if (items.filter(t => t.actions?.length).every(e => e.actions.includes(action))) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { SdSetting, SdSettingService } from '@sd-angular/core/setting';\r\nimport { SdGridMaterialConfigOption } from '../../models/grid-config.model';\r\nimport { SdGeneratedColumn } from './generated-column.model';\r\nimport { SdSettingServer } from '@sd-angular/core/setting';\r\n\r\n@Injectable()\r\nexport class SdGeneratedColumnService {\r\n #cache: {\r\n [key: string]: SdSetting<SdGeneratedColumn[]> | SdSettingServer<SdGeneratedColumn[]>\r\n } = {};\r\n constructor(\r\n private settingService: SdSettingService) {\r\n }\r\n\r\n load = (configuration: SdGridMaterialConfigOption) => {\r\n if (!configuration?.key) {\r\n return null;\r\n }\r\n const key = hash({\r\n prefix: '260f5e94-5865-4425-8ced-b9c083c390dd',\r\n key: configuration.key\r\n });\r\n if(!this.#cache[key]) {\r\n if(configuration?.storage === 'server') {\r\n this.#cache[key] = this.settingService.createServer<SdGeneratedColumn[]>(key, {\r\n args: configuration?.args,\r\n default: []\r\n });\r\n } else {\r\n this.#cache[key] = this.settingService.create<SdGeneratedColumn[]>(key, {\r\n type: configuration?.storage,\r\n args: configuration?.args,\r\n default: []\r\n });\r\n }\r\n }\r\n return this.#cache[key];\r\n }\r\n\r\n loadSystem = (configuration: SdGridMaterialConfigOption) => {\r\n if (!configuration?.key) {\r\n return null;\r\n }\r\n if (!configuration?.systemColumn) {\r\n return null;\r\n }\r\n const key = hash({\r\n prefix: '8b8050ca-1f44-4860-bad3-20e646c0d68f',\r\n key: configuration.key\r\n });\r\n if(!this.#cache[key]) {\r\n if(configuration?.storage === 'server') {\r\n this.#cache[key] = this.settingService.createServer<SdGeneratedColumn[]>(key, {\r\n args: configuration?.systemColumn?.args,\r\n default: []\r\n });\r\n } else {\r\n this.#cache[key] = this.settingService.create<SdGeneratedColumn[]>(key, {\r\n type: configuration?.storage,\r\n args: configuration?.systemColumn?.args,\r\n default: []\r\n });\r\n }\r\n }\r\n return this.#cache[key];\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ChangeDetectorRef, Input, ChangeDetectionStrategy, OnDestroy } from '@angular/core';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport { SdTranslateService } from '@sd-angular/core/translate';\r\nimport { SdGridMaterialOption } from '../../models/grid-option.model';\r\nimport { SdGridConfigurationService } from '../../services/grid-configuration.service';\r\nimport * as uuid from 'uuid';\r\nimport { SdGeneratedColumnService } from '../../services/generated-column/generated-column.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { SdGeneratedColumn } from '../../services/generated-column/generated-column.model';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { SdSideDrawer } from '@sd-angular/core/side-drawer';\r\nimport { SdGridMaterialColumn } from '../../models/grid-column.model';\r\n\r\n@Component({\r\n selector: 'sd-dynamic-column',\r\n templateUrl: './dynamic-column.component.html',\r\n styleUrls: ['./dynamic-column.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdDynamicColumn implements OnInit, OnDestroy {\r\n @ViewChild(SdSideDrawer) sideDrawer: SdSideDrawer;\r\n @Input() gridOption: SdGridMaterialOption;\r\n systemColumns: SdGeneratedColumn[];\r\n columns: SdGeneratedColumn[];\r\n #subscription = new Subscription();\r\n columnTypes = ['string', 'number', 'bool', 'date', 'datetime', 'time', 'values', 'children', 'children-col'];\r\n form = new FormGroup({});\r\n isDetail = false;\r\n detail: SdGeneratedColumn;\r\n originColumns: SdGridMaterialColumn[] = [];\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private generatedColumnService: SdGeneratedColumnService,\r\n private notifyService: SdNotifyService,\r\n private translateService: SdTranslateService,\r\n private gridConfigurationService: SdGridConfigurationService) {\r\n }\r\n\r\n ngOnInit() {\r\n const systemSetting = this.generatedColumnService.loadSystem(this.gridOption.config);\r\n const setting = this.generatedColumnService.load(this.gridOption?.config);\r\n if (systemSetting) {\r\n this.#subscription?.add(systemSetting.observer.subscribe(columns => {\r\n this.systemColumns = columns;\r\n }));\r\n }\r\n if (setting) {\r\n this.#subscription?.add(setting.observer.subscribe(columns => {\r\n this.columns = columns;\r\n }));\r\n }\r\n this.originColumns = this.gridOption.columns.filter(e => e.type !== 'children' && e.type !== 'children-col');\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n onDetail = (column?: SdGeneratedColumn) => {\r\n this.detail = column || {\r\n field: uuid.v4(),\r\n title: '',\r\n type: 'string',\r\n isSystem: false,\r\n useTemplate: false\r\n };\r\n this.form.markAsUntouched();\r\n this.form.markAsPristine();\r\n this.isDetail = true;\r\n }\r\n\r\n onSave = () => {\r\n const systemSetting = this.generatedColumnService.loadSystem(this.gridOption.config);\r\n const setting = this.generatedColumnService.load(this.gridOption?.config);\r\n if (this.detail.isSystem) {\r\n if (!this.detail.id) {\r\n systemSetting.set([...this.systemColumns, {\r\n ...this.detail,\r\n id: uuid.v4()\r\n }]);\r\n } else {\r\n systemSetting.set([...this.systemColumns]);\r\n }\r\n } else {\r\n if (!this.detail.id) {\r\n setting.set([...this.columns, {\r\n ...this.detail,\r\n id: uuid.v4()\r\n }]);\r\n } else {\r\n setting.set([...this.columns]);\r\n }\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, QueryList, Renderer2 } from '@angular/core';\r\nimport { SdMaterialCellDefDirective } from '../../directives/sd-material-cell-def.directive';\r\nimport { SdGridMaterialColumn } from '../../models/grid-column.model';\r\nimport { SdGridMaterialOption } from '../../models/grid-option.model';\r\n\r\n@Component({\r\n selector: 'sd-desktop-cell',\r\n templateUrl: './desktop-cell.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdDesktopCell {\r\n @Input() sdId: string;\r\n @Input() value: any;\r\n @Input() key: string;\r\n\r\n column: SdGridMaterialColumn;\r\n @Input('column') set _column(column: SdGridMaterialColumn) {\r\n this.column = column;\r\n if (column.width) {\r\n this.renderer.setStyle(this.elementRef.nativeElement, 'min-width', column.width);\r\n }\r\n }\r\n @Input() item: any;\r\n @Input() gridOption: SdGridMaterialOption;\r\n @Input() cellDef: {\r\n [column: string]: SdMaterialCellDefDirective;\r\n } = {};\r\n @Input() idx: number;\r\n constructor(private elementRef: ElementRef, private renderer: Renderer2) {}\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, QueryList } from '@angular/core';\r\nimport { SdGridMaterialColumn, SdGridMaterialColumnValues } from '../../models/grid-column.model';\r\n\r\n@Component({\r\n selector: 'sd-desktop-cell-editor',\r\n templateUrl: './desktop-cell-editor.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdDesktopCellEditor {\r\n @Input() sdId: string;\r\n @Input() column: SdGridMaterialColumn;\r\n @Input() item: any;\r\n constructor(\r\n ) { }\r\n\r\n onChange = (selected: any) => {\r\n if (this.column.type === 'children' || this.column.type === 'children-col') {\r\n return;\r\n }\r\n this.column?.editor?.change?.(this.item, selected);\r\n }\r\n\r\n editorOnAdd = () => {\r\n if (this.column.type === 'children' || this.column.type === 'children-col') {\r\n return;\r\n }\r\n if (this.column.type === 'values') {\r\n this.column.editor?.add?.(this.item);\r\n }\r\n }\r\n\r\n editorOnEdit = (option: any) => {\r\n if (this.column.type === 'children' || this.column.type === 'children-col') {\r\n return;\r\n }\r\n if (this.column.type === 'values') {\r\n this.column.editor?.edit?.(option, this.item);\r\n }\r\n }\r\n\r\n editorOnDelete = (option: any) => {\r\n if (this.column.type === 'children' || this.column.type === 'children-col') {\r\n return;\r\n }\r\n if (this.column.type === 'values') {\r\n this.column.editor?.delete?.(option, this.item);\r\n }\r\n }\r\n}\r\n","import { NgZone, Pipe, PipeTransform } from '@angular/core';\r\nimport { CalculateSdId } from '../functions/calculate-sd-id';\r\nimport { SdGridMaterialColumn } from '../models/grid-column.model';\r\nimport { SdGridMaterialOption } from '../models/grid-option.model';\r\nimport { EditorHandlerRow, SdItem } from '../models/grid.model';\r\n@Pipe({\r\n name: 'sdEditorHandlerRow'\r\n})\r\nexport class SdEditorHandlerRowPipe implements PipeTransform {\r\n constructor(private zone: NgZone) { }\r\n #visible = (col: SdGridMaterialColumn, item: SdItem) => {\r\n if (col.type === 'children' || col.type === 'children-col') {\r\n return false;\r\n }\r\n // Kiểm tra xem có bị disabled hay không?\r\n if (col.editor) {\r\n const isDisabled = typeof (col.editor.disabled) === 'function' ? col.editor.disabled(item) : col.editor.disabled;\r\n if (isDisabled) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n transform(status: 'create' | 'update', item: SdItem, gridOption: SdGridMaterialOption): EditorHandlerRow {\r\n const { editor } = gridOption;\r\n if (!editor) {\r\n return null;\r\n }\r\n let isDisabled = false;\r\n if (typeof (editor?.disabled) === 'function') {\r\n isDisabled = editor.disabled(item);\r\n } else {\r\n isDisabled = editor?.disabled;\r\n }\r\n if (editor.type === 'inline') {\r\n const removable = editor.removable;\r\n item.editorHandlerRow = {\r\n ...item.editorHandlerRow,\r\n visible: !isDisabled,\r\n editable: false,\r\n removable: status !== 'create' && (typeof (removable) === 'function' ? removable(item) : removable),\r\n savable: false,\r\n cancelable: !isDisabled && status === 'create'\r\n }\r\n } else if (editor.type === 'focus') {\r\n if (isDisabled) {\r\n return null;\r\n }\r\n item.editorHandlerRow = {\r\n ...item.editorHandlerRow,\r\n visible: !!status,\r\n editable: !status,\r\n removable: false,\r\n savable: !!status,\r\n cancelable: !!status\r\n }\r\n } else if (editor.type === 'popup') {\r\n if (isDisabled) {\r\n return null;\r\n }\r\n item.editorHandlerRow = {\r\n ...item.editorHandlerRow,\r\n visible: false,\r\n editable: !status,\r\n removable: false,\r\n savable: false,\r\n cancelable: false\r\n }\r\n }\r\n item.editorHandlerColumn = item.editorHandlerColumn || {};\r\n const { columns } = gridOption;\r\n for (const col of columns) {\r\n if (col.type === 'children-col') {\r\n for (const childCol of col.children) {\r\n item.editorHandlerColumn[childCol.field] = {\r\n ...item.editorHandlerColumn[childCol.field],\r\n visible: this.#visible(childCol, item)\r\n }\r\n }\r\n } else {\r\n item.editorHandlerColumn[col.field] = {\r\n ...item.editorHandlerColumn[col.field],\r\n visible: this.#visible(col, item)\r\n }\r\n }\r\n }\r\n this.zone.run(() => {\r\n item.sdId = CalculateSdId(item);\r\n });\r\n return item.editorHandlerRow;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialOption } from '../models/grid-option.model';\r\nimport { SdItem } from '../models/grid.model';\r\n@Pipe({\r\n name: 'sdEditorValidate'\r\n})\r\nexport class SdEditorValidatePipe implements PipeTransform {\r\n #previous: Date;\r\n #delay = 200; // Sau khoảng thời gian delay nếu không có thay đổi thì thì mới bắt đầu thực hiện validate\r\n async transform(sdId: string, item: SdItem, items: SdItem[], gridOption: SdGridMaterialOption): Promise<string> {\r\n const { editor } = gridOption;\r\n if (!editor.validate) {\r\n item.editorErrorMessage = null;\r\n return;\r\n }\r\n if(editor.type === 'popup') {\r\n item.editorErrorMessage = null;\r\n return;\r\n }\r\n if (editor.type === 'focus' && !item.editorStatus) {\r\n item.editorErrorMessage = null;\r\n return;\r\n }\r\n this.#previous = new Date();\r\n await new Promise(resolve => setTimeout(resolve, this.#delay));\r\n const now = new Date();\r\n const dif = now.getTime() - this.#previous.getTime();\r\n if (dif < this.#delay) {\r\n return;\r\n }\r\n const result = editor.validate(item, items?.indexOf(item));\r\n if (result instanceof Promise) {\r\n item.editorErrorMessage = await result;\r\n return;\r\n } else {\r\n item.editorErrorMessage = result;\r\n return;\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdGridMaterialOption } from '../models/grid-option.model';\r\n@Pipe({\r\n name: 'sdStyleRowCss'\r\n})\r\nexport class SdStyleRowCss implements PipeTransform {\r\n transform(item: any, gridOption: SdGridMaterialOption) {\r\n return gridOption?.style?.rowCss?.(item) || {};\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { SdGridMaterialOption } from '../../models/grid-option.model';\r\n\r\n@Component({\r\n selector: 'sd-desktop-editor-validation',\r\n templateUrl: './desktop-editor-validation.component.html',\r\n styleUrls: ['./desktop-editor-validation.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdDesktopEditorValidation {\r\n @Input() sdId: string;\r\n @Input() item: any;\r\n @Input() items: any[];\r\n @Input() gridOption: SdGridMaterialOption;\r\n constructor(\r\n ) { }\r\n}\r\n","import { SdBadgeColor } from '@sd-angular/core/badge';\r\n\r\nexport type SdGridMaterialColumn<T = any> =\r\n | SdGridMaterialColumnText<T>\r\n | SdGridMaterialColumnNumber<T>\r\n | SdGridMaterialBool<T>\r\n | SdGridMaterialColumnDate<T>\r\n | SdGridMaterialColumnValues<T>\r\n | SdGridMaterialColumnImage<T>\r\n | SdGridMaterialColumnChildren<T>\r\n | SdGridMaterialColumnChildrenCol<T>;\r\n\r\nexport type SdFilterOperator =\r\n | 'EQUAL'\r\n | 'NOT_EQUAL'\r\n | 'CONTAIN'\r\n | 'NOT_CONTAIN'\r\n | 'IN'\r\n | 'NOT_IN'\r\n | 'START_WITH'\r\n | 'END_WITH'\r\n | 'GREATER_THAN'\r\n | 'LESS_THAN'\r\n | 'GREATER_OR_EQUAL'\r\n | 'LESS_OR_EQUAL'\r\n | 'NULL'\r\n | 'NOT_NULL';\r\n\r\nexport const SdFilterOperators: { value: SdFilterOperator, symbol?: string, display: string }[] = [\r\n {\r\n value: 'EQUAL',\r\n symbol: '=',\r\n display: 'Bằng',\r\n },\r\n {\r\n value: 'NOT_EQUAL',\r\n symbol: '≠',\r\n display: 'Không bằng',\r\n },\r\n {\r\n value: 'GREATER_THAN',\r\n symbol: '>',\r\n display: 'Lớn hơn',\r\n },\r\n {\r\n value: 'LESS_THAN',\r\n symbol: '<',\r\n display: 'Nhỏ hơn',\r\n },\r\n {\r\n value: 'GREATER_OR_EQUAL',\r\n symbol: '≥',\r\n display: 'Lớn hơn, hoặc bằng'\r\n },\r\n {\r\n value: 'LESS_OR_EQUAL',\r\n symbol: '≤',\r\n display: 'Nhỏ hơn, hoặc bằng'\r\n },\r\n {\r\n value: 'CONTAIN',\r\n symbol: 'join_inner',\r\n display: 'Chứa',\r\n },\r\n {\r\n value: 'NOT_CONTAIN',\r\n symbol: 'join',\r\n display: 'Không chứa',\r\n },\r\n {\r\n value: 'START_WITH',\r\n symbol: 'line_start_circle',\r\n display: 'Bắt đầu bởi'\r\n },\r\n {\r\n value: 'END_WITH',\r\n symbol: 'line_end_circle',\r\n display: 'Kết thúc bởi'\r\n },\r\n {\r\n value: 'IN',\r\n symbol: 'checklist_rtl',\r\n display: 'Nằm trong'\r\n },\r\n {\r\n value: 'NOT_IN',\r\n symbol: 'event_list',\r\n display: 'Không nằm trong'\r\n },\r\n {\r\n value: 'NULL',\r\n symbol: 'motion_photos_off',\r\n display: 'Là rỗng',\r\n },\r\n {\r\n value: 'NOT_NULL',\r\n symbol: 'adjust',\r\n display: 'Không rỗng',\r\n },\r\n];\r\n\r\nexport type TransformFunc<T = any> = (\r\n value: any,\r\n rowData: T,\r\n args?: {\r\n isExport?: boolean;\r\n }\r\n) => string | Promise<string>;\r\n\r\ninterface SdGridMaterialBaseColumn<T = any> {\r\n field: string;\r\n title: string;\r\n titleHtml?: string;\r\n description?: string;\r\n width?: string;\r\n hidden?: boolean;\r\n invisible?: boolean;\r\n fixed?: boolean;\r\n align?: 'center' | 'left' | 'right';\r\n htmlTemplate?: (value: any, rowData: T, isMobileOrTablet: boolean) => string;\r\n transform?: TransformFunc<T>;\r\n tooltip?: (value: any, rowData: T) => string;\r\n click?: (value: any, rowData: T) => void;\r\n sortable?: boolean;\r\n filter?: {\r\n disabled?: boolean;\r\n defaultShowing?: boolean;\r\n default?: any;\r\n // Chỉ dành cho filter inline column\r\n operator?: {\r\n enable?: boolean;\r\n list?: SdFilterOperator[];\r\n };\r\n };\r\n export?: {\r\n disabled?: boolean;\r\n };\r\n}\r\n\r\ninterface SdGridMaterialColumnText<T = any> extends SdGridMaterialBaseColumn<T> {\r\n type: 'string';\r\n badge?: (value: any, rowData: T) => SdBadgeColor;\r\n badgeIcon?: (value: any, rowData: T) => string;\r\n badgeType?: 'circle' | 'icon';\r\n editor?: {\r\n change?: (rowData: T, selected?: any) => void;\r\n hidden?: boolean | ((rowData: T) => boolean);\r\n disabled?: boolean | ((rowData: T) => boolean);\r\n required?: boolean | ((rowData: T) => boolean);\r\n minLength?: number;\r\n maxLength?: number;\r\n validator?: (rowData: T) => string;\r\n };\r\n}\r\n\r\ninterface SdGridMaterialColumnNumber<T = any> extends SdGridMaterialBaseColumn<T> {\r\n type: 'number';\r\n badge?: (value: any, rowData: T) => SdBadgeColor;\r\n badgeIcon?: (value: any, rowData: T) => string;\r\n badgeType?: 'circle' | 'icon';\r\n editor?: {\r\n change?: (rowData: T, selected?: any) => void;\r\n hidden?: boolean | ((rowData: T) => boolean);\r\n disabled?: boolean | ((rowData: T) => boolean);\r\n required?: boolean | ((rowData: T) => boolean);\r\n minValue?: number;\r\n maxValue?: number;\r\n precision?: number;\r\n validator?: (rowData: T) => string;\r\n };\r\n}\r\n\r\ninterface SdGridMaterialBool<T = any> extends SdGridMaterialBaseColumn<T> {\r\n type: 'bool';\r\n option?: {\r\n displayOnTrue?: string;\r\n displayOnFalse?: string;\r\n };\r\n badgeType?: 'circle';\r\n editor?: {\r\n change?: (rowData: T, selected?: any) => void;\r\n hidden?: boolean | ((rowData: T) => boolean);\r\n disabled?: boolean | ((rowData: T) => boolean);\r\n required?: boolean | ((rowData: T) => boolean);\r\n };\r\n}\r\n\r\ninterface SdGridMaterialColumnDate<T = any> extends SdGridMaterialBaseColumn<T> {\r\n type: 'date' | 'datetime' | 'time';\r\n option?: {\r\n useFilterDate?: boolean;\r\n timeDifferent?: 'second' | 'minute' | 'hour' | 'day' | 'month';\r\n };\r\n transformDate?: (value: any, rowData: T) => string | Date;\r\n editor?: {\r\n change?: (rowData: T, selected?: any) => void;\r\n hidden?: boolean | ((rowData: T) => boolean);\r\n disabled?: boolean | ((rowData: T) => boolean);\r\n required?: boolean | ((rowData: T) => boolean);\r\n };\r\n}\r\n\r\nexport interface SdGridMaterialColumnValues<T = any> extends SdGridMaterialBaseColumn<T> {\r\n type: 'values';\r\n badge?: (value: any, rowData: T) => SdBadgeColor;\r\n badgeIcon?: (value: any, rowData: T) => string;\r\n badgeType?: 'circle' | 'icon';\r\n option: {\r\n items: any[] | ((searchText?: string, isFormValue?: boolean) => Promise<any[]>) | ((searchText?: string[], isFormValue?: boolean) => Promise<any[]>);\r\n valueField: string;\r\n displayField: string;\r\n selection?:\r\n | 'AUTOCOMPLETE'\r\n | 'MULTIPLE'\r\n | 'MULTIPLEAUTOCOMPLETE'\r\n | 'AUTOCOMPLETE_EDITOR'\r\n | 'MULTIPLE_EDITOR'\r\n | 'MULTIPLEAUTOCOMPLETE_EDITOR';\r\n };\r\n editor?: {\r\n change?: (rowData: T, selected?: any) => void;\r\n add?: (rowData: T) => void;\r\n edit?: (option: any, rowData: T) => void;\r\n delete?: (option: any, rowData: T) => void;\r\n hidden?: boolean | ((rowData: T) => boolean);\r\n disabled?: boolean | ((rowData: T) => boolean);\r\n required?: boolean | ((rowData: T) => boolean);\r\n };\r\n}\r\n\r\ninterface SdGridMaterialColumnImage<T = any> extends SdGridMaterialBaseColumn<T> {\r\n type: 'image';\r\n option: {\r\n height: number;\r\n width: number;\r\n };\r\n editor?: {\r\n change?: (rowData: T, selected?: any) => void;\r\n hidden?: boolean | ((rowData: T) => boolean);\r\n disabled?: boolean | ((rowData: T) => boolean);\r\n required?: boolean | ((rowData: T) => boolean);\r\n };\r\n}\r\n\r\ntype SdGridMaterialNormalColumn<T> = Exclude<\r\n Exclude<SdGridMaterialColumn<T>, SdGridMaterialColumnChildren<T>>,\r\n SdGridMaterialColumnChildrenCol<T>\r\n>;\r\n\r\nexport type SdGridMaterialChildColumn<T = any> = SdGridMaterialNormalColumn<T> & {\r\n dynamicTitle?: (rowData: T) => string | Promise<string>;\r\n colSpan: 1 | 2;\r\n};\r\n\r\nexport interface SdGridMaterialColumnChildren<T = any> extends SdGridMaterialBaseColumn<T> {\r\n type: 'children';\r\n children: SdGridMaterialChildColumn<T>[];\r\n}\r\n\r\nexport interface SdGridMaterialColumnChildrenCol<T = any> extends SdGridMaterialBaseColumn<T> {\r\n type: 'children-col';\r\n children: SdGridMaterialNormalColumn<T>[];\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, QueryList } from '@angular/core';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { startWith } from 'rxjs/operators';\r\nimport { SdFilterOperator, SdFilterOperators, SdGridMaterialColumn } from '../../models/grid-column.model';\r\n\r\n@Component({\r\n selector: 'sd-column-inline-filter',\r\n templateUrl: './column-inline-filter.component.html',\r\n styleUrls: ['./column-inline-filter.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdColumnInlineFilter implements OnInit {\r\n value: any;\r\n @Input('value') _value(value: any) {\r\n this.value = value;\r\n this.#valueChanges.next();\r\n }\r\n inlineSymbol: string = 'filter_alt';\r\n #inlineOperator: SdFilterOperator;\r\n @Input('inlineOperator') set _inlineOperator(inlineOperator: SdFilterOperator) {\r\n if(this.#inlineOperator !== inlineOperator) {\r\n this.#inlineOperator = inlineOperator;\r\n this.inlineSymbol = SdFilterOperators.find(e => e.value === inlineOperator)?.symbol ?? 'filter_alt';\r\n }\r\n }\r\n @Output() inlineOperatorChange = new EventEmitter<SdFilterOperator>();\r\n @Output() operatorChange = new EventEmitter<SdFilterOperator>();\r\n\r\n columnFilter: Record<string, any> = {};\r\n @Input('columnFilter') set _columnFilter(columnFilter: Record<string, any>) {\r\n this.columnFilter = columnFilter || {};\r\n this.#valueChanges.next();\r\n }\r\n operators: { value: SdFilterOperator, symbol?: string, display: string }[] = [];\r\n column: SdGridMaterialColumn;\r\n @Input('column') set _column(column: SdGridMaterialColumn) {\r\n this.column = column;\r\n if (!column?.filter?.disabled && column?.filter?.operator?.enable) {\r\n this.operators = SdFilterOperators.filter(e => column.filter.operator.list?.includes?.(e.value));\r\n } else {\r\n this.operators = [];\r\n }\r\n }\r\n @Output() filterChange = new EventEmitter();\r\n #valueChanges = new Subject();\r\n #subcription = new Subscription();\r\n constructor(private ref: ChangeDetectorRef) { }\r\n\r\n ngOnInit() {\r\n this.#subcription.add(\r\n this.#valueChanges.pipe(startWith(this.columnFilter)).subscribe(() => {\r\n if (this.column.type === 'date' || this.column.type === 'time' || this.column.type === 'datetime') {\r\n if (!this.column?.option?.useFilterDate) {\r\n this.columnFilter[this.column.field] = this.columnFilter[this.column.field] || {\r\n from: null,\r\n to: null,\r\n };\r\n }\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#subcription.unsubscribe();\r\n }\r\n\r\n onFilterChange = () => {\r\n this.filterChange.emit();\r\n };\r\n\r\n\r\n onChangeOperator = (operator: { value: SdFilterOperator, symbol?: string, display: string }) => {\r\n if (operator) {\r\n this.#inlineOperator = operator.value;\r\n this.inlineSymbol = operator.symbol;\r\n } else {\r\n this.#inlineOperator = null;\r\n this.inlineSymbol = 'filter_alt';\r\n }\r\n this.inlineOperatorChange.emit(this.#inlineOperator);\r\n this.operatorChange.emit(this.#inlineOperator);\r\n this.ref.markForCheck();\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { SdGridMaterialSelection } from '../models/grid-selection.model';\r\nimport { SdItem } from '../models/grid.model';\r\n\r\n@Pipe({\r\n name: 'selectionVisible'\r\n})\r\nexport class SdSelectionVisiblePipe implements PipeTransform {\r\n transform = (rowData: SdItem, selection: SdGridMaterialSelection): boolean => {\r\n const { actions } = selection;\r\n const groupedActions: string[] = [];\r\n rowData.actions = rowData.actions || [];\r\n if (!actions?.length) {\r\n rowData.selectable = true;\r\n return rowData.selectable;\r\n }\r\n for (const action of actions) {\r\n if ('children' in action) {\r\n let flag = false;\r\n let hasGroup = false;\r\n for (const childAction of action.children) {\r\n const { hidden, isGrouped } = childAction;\r\n const key = hash(childAction);\r\n if (isGrouped) {\r\n hasGroup = true;\r\n }\r\n if (typeof (hidden) === 'function') {\r\n if (!hidden(rowData)) {\r\n flag = true;\r\n rowData.actions.push(key);\r\n if (isGrouped) {\r\n groupedActions.push(key);\r\n }\r\n }\r\n } else if (!hidden) {\r\n flag = true;\r\n rowData.actions.push(key);\r\n if (isGrouped) {\r\n groupedActions.push(key);\r\n }\r\n }\r\n }\r\n if (flag) {\r\n rowData.actions.push(hash(action));\r\n if (hasGroup) {\r\n groupedActions.push(hash(action));\r\n }\r\n }\r\n } else {\r\n const { hidden, isGrouped } = action;\r\n const key = hash(action);\r\n if (typeof (hidden) === 'function') {\r\n if (!hidden(rowData)) {\r\n rowData.actions.push(key);\r\n if (isGrouped) {\r\n groupedActions.push(key);\r\n }\r\n }\r\n } else if (!hidden) {\r\n rowData.actions.push(key);\r\n if (isGrouped) {\r\n groupedActions.push(key);\r\n }\r\n }\r\n }\r\n }\r\n rowData.selectable = !!rowData.actions.length;\r\n if (!rowData.selectable || !groupedActions.length || rowData?.sdGroup?.items?.length) {\r\n return rowData.selectable;\r\n }\r\n // Đối với trường hợp grouped, tuy selectable là true nhưng vẫn ẩn đi checkbox\r\n // nếu các action đều thuộc groupedActions và rowData ko phải là dòng group\r\n return rowData.actions.some(action => !groupedActions.includes(action));\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { SdGridMaterialOption } from '../../models/grid-option.model';\r\n\r\n@Component({\r\n selector: 'sd-grid-quick-action',\r\n templateUrl: './quick-action.component.html',\r\n styleUrls: ['./quick-action.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdGridQuickAction {\r\n @Input() gridOption: SdGridMaterialOption;\r\n @Input() selectedItems: any[];\r\n @Output() clear = new EventEmitter();\r\n constructor(\r\n ) { }\r\n onClear = () => {\r\n this.clear.emit();\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SdUtilityService } from '@sd-angular/core/utility';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { SdCellView } from '../models/grid-cell.model';\r\nimport { SdGridMaterialColumn } from '../models/grid-column.model';\r\nimport { SdGridMaterialOption } from '../models/grid-option.model';\r\nimport { SdColumnValuesPipe } from './column-values.pipe';\r\n@Pipe({\r\n name: 'cellView'\r\n})\r\nexport class SdCellViewPipe implements PipeTransform {\r\n #maxSecond = 60;\r\n #maxMinute = this.#maxSecond * 60;\r\n #maxHour = this.#maxMinute * 24;\r\n #maxDay = this.#maxHour * 30;\r\n #maxMonth = this.#maxHour * 365;\r\n #isMobileOrTablet = false;\r\n constructor(\r\n deviceService: DeviceDetectorService,\r\n private utilityService: SdUtilityService,\r\n private columnValuesPipe: SdColumnValuesPipe) {\r\n this.#isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n async transform(\r\n value: any,\r\n rowData: any,\r\n column: SdGridMaterialColumn,\r\n gridOption: SdGridMaterialOption): Promise<SdCellView> {\r\n const { displayOnEmpty } = gridOption;\r\n const { align, click, tooltip, htmlTemplate, transform } = column;\r\n const result: SdCellView = {\r\n badge: null,\r\n tooltip: null,\r\n display: {\r\n align: align || (column.type === 'number' ? 'right' : 'left'),\r\n value\r\n },\r\n click: null\r\n };\r\n // Display\r\n if (typeof (htmlTemplate) === 'function') {\r\n result.display.hasHtml = true;\r\n result.display.html = htmlTemplate(value, rowData, this.#isMobileOrTablet);\r\n } else {\r\n if (column.type === 'datetime' || column.type === 'date' || column.type === 'time') {\r\n const { transformDate } = column;\r\n if (transformDate) {\r\n value = transformDate(value, rowData);\r\n }\r\n }\r\n if (typeof (transform) === 'function') {\r\n const val = transform(value, rowData);\r\n if (val instanceof Promise) {\r\n result.display.value = await val;\r\n } else {\r\n result.display.value = val;\r\n }\r\n } else {\r\n if (column.type === 'date' || column.type === 'datetime') {\r\n const { option } = column;\r\n const seconds = Math.round((new Date().getTime() - new Date(value).getTime()) / 1000);\r\n if (option?.timeDifferent === 'month' && seconds < this.#maxMonth) {\r\n result.display.value = this.utilityService.timeDifference(value);\r\n result.tooltip = Date.toFormat(value, column.type === 'date' ? 'dd/MM/yyyy' : 'dd/MM/yyyy HH:mm');\r\n } else if (option?.timeDifferent === 'day' && seconds < this.#maxDay) {\r\n result.display.value = this.utilityService.timeDifference(value);\r\n result.tooltip = Date.toFormat(value, column.type === 'date' ? 'dd/MM/yyyy' : 'dd/MM/yyyy HH:mm');\r\n } else if (option?.timeDifferent === 'hour' && seconds < this.#maxHour) {\r\n result.display.value = this.utilityService.timeDifference(value);\r\n result.tooltip = Date.toFormat(value, column.type === 'date' ? 'dd/MM/yyyy' : 'dd/MM/yyyy HH:mm');\r\n } else if (option?.timeDifferent === 'minute' && seconds < this.#maxMinute) {\r\n result.display.value = this.utilityService.timeDifference(value);\r\n result.tooltip = Date.toFormat(value, column.type === 'date' ? 'dd/MM/yyyy' : 'dd/MM/yyyy HH:mm');\r\n } else if (option?.timeDifferent === 'second' && seconds < this.#maxSecond) {\r\n result.display.value = this.utilityService.timeDifference(value);\r\n result.tooltip = Date.toFormat(value, column.type === 'date' ? 'dd/MM/yyyy' : 'dd/MM/yyyy HH:mm');\r\n } else {\r\n const date = Date.toFormat(value, 'dd/MM/yyyy');\r\n const time = Date.toFormat(value, 'HH:mm');\r\n const dateTime = Date.toFormat(value, 'HH:mm');\r\n if (column.type === 'datetime' && time && time !== '00:00') {\r\n result.display.value = dateTime;\r\n result.display.hasHtml = true;\r\n result.display.html = `<span class=\"d-block T14R text-black400\">${Date.toFormat(value, 'HH:mm')}</span><span class=\"d-block T14R\">${Date.toFormat(value, 'dd/MM/yyyy')}</span>`;\r\n } else {\r\n result.display.value = date;\r\n }\r\n }\r\n }\r\n if (column.type === 'time') {\r\n result.display.value = Date.toFormat(value, 'HH:mm');\r\n }\r\n if (column.type === 'values') {\r\n result.display.value = await this.columnValuesPipe.transform(value, column);\r\n } else if (column.type === 'number' && Number.isNumber(value)) {\r\n result.display.value = Number.toVNCurrency(value);\r\n }\r\n if (column.type === 'bool') {\r\n const { option } = column;\r\n if (value !== undefined && value !== null && value !== '') {\r\n result.display.value = value === true ? (option?.displayOnTrue || 'True') : (option?.displayOnFalse || 'False');\r\n } else {\r\n result.display.value = null;\r\n }\r\n }\r\n }\r\n if (displayOnEmpty) {\r\n let values = [null, undefined, ''];\r\n if (typeof (displayOnEmpty) === 'object') {\r\n const { display, emptyValues } = displayOnEmpty;\r\n values = [null, undefined, '', ...emptyValues];\r\n if (values.includes(result.display.value)) {\r\n if (typeof (display) === 'function') {\r\n result.display.hasHtml = true;\r\n result.display.html = display(rowData, column);\r\n } else {\r\n result.display.hasHtml = true;\r\n result.display.html = `<div class=\"T16R text-black400\">--</div>`;\r\n }\r\n }\r\n } else {\r\n if (values.includes(result.display.value)) {\r\n if (typeof (displayOnEmpty) === 'function') {\r\n result.display.hasHtml = true;\r\n result.display.html = displayOnEmpty(rowData, column);\r\n } else {\r\n result.display.hasHtml = true;\r\n result.display.html = `<div class=\"T16R text-black400\">--</div>`;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // Badge\r\n if ((column.type === 'string' || column.type === 'number' || column.type === 'values') && column.badge) {\r\n result.badge = {\r\n type: !column?.badgeType ? 'round' : column.badgeType,\r\n color: column.badge(value, rowData),\r\n icon: column?.badgeIcon?.(value, rowData)\r\n };\r\n } else if (column.type === 'bool') {\r\n result.badge = {\r\n type: !column?.badgeType ? 'round' : column.badgeType,\r\n color: !!value ? 'success' : 'danger',\r\n icon: null\r\n };\r\n }\r\n // Tooltip\r\n if (typeof (tooltip) === 'function') {\r\n result.tooltip = tooltip(value, rowData);\r\n }\r\n // Clickable\r\n if (typeof (click) === 'function') {\r\n result.click = () => click(value, rowData);\r\n }\r\n if(result.display.value === null) {\r\n result.display.value = undefined;\r\n }\r\n return result;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { SdGridMaterialOption } from '../models/grid-option.model';\r\nimport { SdGridMaterialItem } from '../models/grid.model';\r\n@Pipe({\r\n name: 'sdGroup'\r\n})\r\nexport class SdGroupPipe implements PipeTransform {\r\n transform(items: any[], gridOption: SdGridMaterialOption): SdGridMaterialItem[] {\r\n const { group } = gridOption;\r\n if (!group) {\r\n return items;\r\n }\r\n const { fields, htmlTemplate } = group;\r\n if (!fields?.length) {\r\n return items;\r\n }\r\n const groupItem: {\r\n [key: string]: SdGridMaterialItem[]\r\n } = {};\r\n for (const item of items) {\r\n let obj = {};\r\n for (const field of fields) {\r\n obj = {\r\n ...obj,\r\n ...(item[field] ?? { [field]: item[field] })\r\n };\r\n }\r\n const key = hash(obj);\r\n if (!groupItem[key]) {\r\n groupItem[key] = [];\r\n }\r\n groupItem[key].push(item);\r\n }\r\n const results: SdGridMaterialItem[] = [];\r\n for (const key of Object.keys(groupItem)) {\r\n results.push({\r\n sdGroup: {\r\n items: groupItem[key],\r\n htmlTemplate: htmlTemplate(groupItem[key])\r\n }\r\n });\r\n for (const item of groupItem[key]) {\r\n results.push(item);\r\n }\r\n }\r\n return results;\r\n }\r\n}\r\n","import { Injectable, NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe, DecimalPipe } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { SdGridMaterial } from './grid-material.component';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatPaginatorIntl, MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { CdkTableModule, CdkColumnDef } from '@angular/cdk/table';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { SdCommandFilterPipe } from './pipes/command-filter.pipe';\r\nimport { SdCommandDisablePipe } from './pipes/command-disable.pipe';\r\nimport { SdCommandIconPipe } from './pipes/command-icon.pipe';\r\nimport { SdCommandTitlePipe } from './pipes/command-title.pipe';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { SdColumnValuesPipe } from './pipes/column-values.pipe';\r\nimport { SdColumnHtmlTemplatePipe } from './pipes/column-html-template.pipe';\r\nimport { SdDesktopCellView } from './components/desktop-cell-view/desktop-cell-view.component';\r\nimport { SdColumnTransformPipe } from './pipes/column-transform.pipe';\r\nimport { SdServiceModule } from '@sd-angular/core/service';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { SdMaterialCellDefDirective } from './directives/sd-material-cell-def.directive';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { SdFilterExternalPipe } from './pipes/filter-external.pipe';\r\nimport { SdFilterColumnPipe } from './pipes/filter-column.pipe';\r\nimport { SdGridFilter } from './components/grid-filter/grid-filter.component';\r\nimport { SdPopupFilter } from './components/popup-filter/popup-filter.component';\r\n\r\nimport { SdGridFilterService } from './services/grid-filter/grid-filter.service';\r\nimport { SdDesktopCellChildrenView } from './components/desktop-cell-children-view/desktop-cell-children-view.component';\r\nimport { SdColumnChildrenFilterPipe } from './pipes/column-children-filter.pipe';\r\nimport { SdColumnTitlePipe } from './pipes/column-title.pipe';\r\nimport { SdDesktopCommand } from './components/desktop-command/desktop-command.component';\r\nimport { SdMaterialFilterDefDirective } from './directives/sd-material-filter-def.directive';\r\nimport { SdMaterialFooterDefDirective } from './directives/sd-material-footer-def.directive';\r\nimport { SdMaterialSubInformationDefDirective } from './directives/sd-material-sub-information-def.directive';\r\nimport { SdFormModule } from '@sd-angular/core/form';\r\nimport { SdMaterialEmptyDataDefDirective } from './directives/sd-material-empty-data-def.directive';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { SdColumnBadgePipe } from './pipes/column-badge.pipe';\r\nimport { SdGridConfigurationResultPipe } from './pipes/grid-configuration-result.pipe';\r\nimport { SdPopupExport } from './components/popup-export/popup-export.component';\r\nimport { SdPopupGridConfiguration } from './components/popup-grid-configuration/popup-grid-configuration.component';\r\nimport { SdGridConfigurationService } from './services/grid-configuration.service';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { SdColumnTooltipPipe } from './pipes/column-tooltip.pipe';\r\nimport { SdSelectionActionFilterPipe } from './pipes/selection-action-filter.pipe';\r\nimport { SdSelectionDisablePipe } from './pipes/selection-disable.pipe';\r\nimport { SdSelectionVisibleSelectAllPipe } from './pipes/selection-visible-select-all.pipe';\r\nimport { SdDynamicColumn } from './components/dynamic-column/dynamic-column.component';\r\nimport { SdGeneratedColumnService } from './services/generated-column/generated-column.service';\r\nimport { SdDesktopCell } from './components/desktop-cell/desktop-cell.component';\r\nimport { SdDesktopCellEditor } from './components/desktop-cell-editor/desktop-cell-editor.component';\r\nimport { SdEditorHandlerRowPipe } from './pipes/editor-handler-row.pipe';\r\nimport { SdEditorHandlerColumnPipe } from './pipes/editor-handler-column.pipe';\r\nimport { SdEditorValidatePipe } from './pipes/editor-validate.pipe';\r\nimport { SdStyleRowCss } from './pipes/style-row-css.pipe';\r\nimport { SdDesktopEditorValidation } from './components/desktop-editor-validation/desktop-editor-validation.component';\r\nimport { SdColumnInlineFilter } from './components/column-inline-filter/column-inline-filter.component';\r\nimport { SdSelectionVisiblePipe } from './pipes/selection-visible.pipe';\r\nimport { SdGridQuickAction } from './components/quick-action/quick-action.component';\r\nimport { SdCommonModule } from '@sd-angular/core/common';\r\nimport { SdCellViewPipe } from './pipes/cell-view.pipe';\r\nimport { SdGroupPipe } from './pipes/sd-group.pipe';\r\nimport { SdGroupModule } from '@sd-angular/core/group';\r\n\r\n@Injectable()\r\nexport class MatPaginatorIntlCro extends MatPaginatorIntl {\r\n firstPageLabel = 'Trang đầu';\r\n lastPageLabel = 'Trang cuối';\r\n itemsPerPageLabel = 'Kích thước trang';\r\n nextPageLabel = 'Trang sau';\r\n previousPageLabel = 'Trang trước';\r\n\r\n getRangeLabel = (page: number, pageSize: number, length: number) => {\r\n if (length === 0 || pageSize === 0) {\r\n return '';\r\n }\r\n const from = page * pageSize + 1;\r\n const to = from + (length - page * pageSize > pageSize ? pageSize : length - page * pageSize) - 1;\r\n return `${from}-${to} trên ${length}`;\r\n }\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatFormFieldModule,\r\n MatSortModule,\r\n MatPaginatorModule,\r\n MatTableModule,\r\n MatMenuModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatProgressSpinnerModule,\r\n MatChipsModule,\r\n MatRadioModule,\r\n MatSlideToggleModule,\r\n MatCheckboxModule,\r\n MatListModule,\r\n MatDividerModule,\r\n CdkTableModule,\r\n DragDropModule,\r\n SdFormModule,\r\n SdServiceModule,\r\n MatSliderModule,\r\n ScrollingModule,\r\n SdCommonModule,\r\n SdGroupModule\r\n ],\r\n declarations: [\r\n SdGridQuickAction,\r\n SdDesktopCell,\r\n SdDesktopCellEditor,\r\n SdDesktopEditorValidation,\r\n SdDesktopCellView,\r\n SdDesktopCellChildrenView,\r\n SdDesktopCommand,\r\n SdColumnInlineFilter,\r\n SdGridMaterial,\r\n\r\n SdMaterialFooterDefDirective,\r\n SdMaterialCellDefDirective,\r\n SdMaterialFilterDefDirective,\r\n SdMaterialSubInformationDefDirective,\r\n SdMaterialEmptyDataDefDirective,\r\n SdPopupExport,\r\n SdPopupGridConfiguration,\r\n SdGridFilter,\r\n SdPopupFilter,\r\n SdDynamicColumn,\r\n\r\n // Pipes\r\n SdGridConfigurationResultPipe,\r\n SdColumnChildrenFilterPipe,\r\n SdColumnTitlePipe,\r\n SdCommandFilterPipe,\r\n SdCommandDisablePipe,\r\n SdCommandIconPipe,\r\n SdCommandTitlePipe,\r\n SdColumnValuesPipe,\r\n SdColumnHtmlTemplatePipe,\r\n SdColumnTransformPipe,\r\n SdColumnTooltipPipe,\r\n SdColumnBadgePipe,\r\n SdFilterColumnPipe,\r\n SdFilterExternalPipe,\r\n SdSelectionActionFilterPipe,\r\n SdSelectionVisiblePipe,\r\n SdSelectionDisablePipe,\r\n SdSelectionVisibleSelectAllPipe,\r\n SdEditorHandlerRowPipe,\r\n SdEditorHandlerColumnPipe,\r\n SdEditorValidatePipe,\r\n SdStyleRowCss,\r\n SdCellViewPipe,\r\n SdGroupPipe\r\n ],\r\n exports: [\r\n SdGridMaterial,\r\n SdMaterialFooterDefDirective,\r\n SdMaterialCellDefDirective,\r\n SdMaterialFilterDefDirective,\r\n SdMaterialEmptyDataDefDirective,\r\n SdMaterialSubInformationDefDirective\r\n ],\r\n providers: [\r\n DatePipe,\r\n DecimalPipe,\r\n CdkColumnDef,\r\n SdGridFilterService,\r\n SdGridConfigurationService,\r\n SdGeneratedColumnService,\r\n SdColumnValuesPipe,\r\n SdEditorHandlerColumnPipe,\r\n {\r\n provide: MatPaginatorIntl, useClass: MatPaginatorIntlCro\r\n }\r\n ]\r\n})\r\nexport class SdGridMaterialModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {SdColumnInlineFilter as ɵp} from './src/lib/components/column-inline-filter/column-inline-filter.component';\nexport {SdDesktopCellChildrenView as ɵn} from './src/lib/components/desktop-cell-children-view/desktop-cell-children-view.component';\nexport {SdDesktopCellEditor as ɵk} from './src/lib/components/desktop-cell-editor/desktop-cell-editor.component';\nexport {SdDesktopCellView as ɵm} from './src/lib/components/desktop-cell-view/desktop-cell-view.component';\nexport {SdDesktopCell as ɵj} from './src/lib/components/desktop-cell/desktop-cell.component';\nexport {SdDesktopCommand as ɵo} from './src/lib/components/desktop-command/desktop-command.component';\nexport {SdDesktopEditorValidation as ɵl} from './src/lib/components/desktop-editor-validation/desktop-editor-validation.component';\nexport {SdDynamicColumn as ɵr} from './src/lib/components/dynamic-column/dynamic-column.component';\nexport {SdGridFilter as ɵb} from './src/lib/components/grid-filter/grid-filter.component';\nexport {SdPopupExport as ɵd} from './src/lib/components/popup-export/popup-export.component';\nexport {SdPopupFilter as ɵc} from './src/lib/components/popup-filter/popup-filter.component';\nexport {SdPopupGridConfiguration as ɵq} from './src/lib/components/popup-grid-configuration/popup-grid-configuration.component';\nexport {SdGridQuickAction as ɵi} from './src/lib/components/quick-action/quick-action.component';\nexport {MatPaginatorIntlCro as ɵa} from './src/lib/grid-material.module';\nexport {SdCellViewPipe as ɵbn} from './src/lib/pipes/cell-view.pipe';\nexport {SdColumnBadgePipe as ɵbd} from './src/lib/pipes/column-badge.pipe';\nexport {SdColumnChildrenFilterPipe as ɵu} from './src/lib/pipes/column-children-filter.pipe';\nexport {SdColumnHtmlTemplatePipe as ɵba} from './src/lib/pipes/column-html-template.pipe';\nexport {SdColumnTitlePipe as ɵv} from './src/lib/pipes/column-title.pipe';\nexport {SdColumnTooltipPipe as ɵbc} from './src/lib/pipes/column-tooltip.pipe';\nexport {SdColumnTransformPipe as ɵbb} from './src/lib/pipes/column-transform.pipe';\nexport {SdColumnValuesPipe as ɵf} from './src/lib/pipes/column-values.pipe';\nexport {SdCommandDisablePipe as ɵx} from './src/lib/pipes/command-disable.pipe';\nexport {SdCommandFilterPipe as ɵw} from './src/lib/pipes/command-filter.pipe';\nexport {SdCommandIconPipe as ɵy} from './src/lib/pipes/command-icon.pipe';\nexport {SdCommandTitlePipe as ɵz} from './src/lib/pipes/command-title.pipe';\nexport {SdEditorHandlerColumnPipe as ɵh} from './src/lib/pipes/editor-handler-column.pipe';\nexport {SdEditorHandlerRowPipe as ɵbk} from './src/lib/pipes/editor-handler-row.pipe';\nexport {SdEditorValidatePipe as ɵbl} from './src/lib/pipes/editor-validate.pipe';\nexport {SdFilterColumnPipe as ɵbe} from './src/lib/pipes/filter-column.pipe';\nexport {SdFilterExternalPipe as ɵbf} from './src/lib/pipes/filter-external.pipe';\nexport {SdGridConfigurationResultPipe as ɵt} from './src/lib/pipes/grid-configuration-result.pipe';\nexport {SdGroupPipe as ɵbo} from './src/lib/pipes/sd-group.pipe';\nexport {SdSelectionActionFilterPipe as ɵbg} from './src/lib/pipes/selection-action-filter.pipe';\nexport {SdSelectionDisablePipe as ɵbi} from './src/lib/pipes/selection-disable.pipe';\nexport {SdSelectionVisibleSelectAllPipe as ɵbj} from './src/lib/pipes/selection-visible-select-all.pipe';\nexport {SdSelectionVisiblePipe as ɵbh} from './src/lib/pipes/selection-visible.pipe';\nexport {SdStyleRowCss as ɵbm} from './src/lib/pipes/style-row-css.pipe';\nexport {SdGeneratedColumnService as ɵs} from './src/lib/services/generated-column/generated-column.service';\nexport {SdGridConfigurationService as ɵe} from './src/lib/services/grid-configuration.service';\nexport {SdGridFilterService as ɵg} from './src/lib/services/grid-filter/grid-filter.service';"],"names":["InjectionToken","Directive","TemplateRef","Input","Component","ChangeDetectionStrategy","ChangeDetectorRef","ViewChild","SdModal","BehaviorSubject","Subscription","startWith","DeviceDetectorService","EventEmitter","FormGroup","hash","SdLoadingService","SdExportService","SdNotifyService","SdTranslateService","Output","Subject","Injectable","SdSettingService","Inject","Optional","_cache","Pipe","NgZone","map","uuid.v4","QueryList","_subscription","_initConfiguration","debounceTime","_load","isObservable","switchMap","combineLatest","moveItemInArray","trigger","state","style","transition","animate","SdScrollDirective","SdQuickAction","MatPaginator","MatSort","ContentChild","ContentChildren","HostListener","SdSideDrawer","ElementRef","Renderer2","_visible","_isMobileOrTablet","SdUtilityService","MatPaginatorIntl","NgModule","CommonModule","FormsModule","ReactiveFormsModule","MatInputModule","MatFormFieldModule","MatSortModule","MatPaginatorModule","MatTableModule","MatMenuModule","MatIconModule","MatButtonModule","MatTooltipModule","MatProgressSpinnerModule","MatChipsModule","MatRadioModule","MatSlideToggleModule","MatCheckboxModule","MatListModule","MatDividerModule","CdkTableModule","DragDropModule","SdFormModule","SdServiceModule","MatSliderModule","ScrollingModule","SdCommonModule","SdGroupModule","DatePipe","DecimalPipe","CdkColumnDef"],"mappings":"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"}
|