@sd-angular/core 1.3.221 → 1.3.222

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.
@@ -1294,39 +1294,24 @@
1294
1294
  { type: i0.TemplateRef }
1295
1295
  ]; };
1296
1296
 
1297
+ var SD_SUFIX_ICON = new i0.InjectionToken('SdSuffixIconDirective');
1297
1298
  var SdSuffixIconDirective = /** @class */ (function () {
1298
- // #elementClass: string[] = [];
1299
- // @Input('class')
1300
- // @HostBinding('class')
1301
- // get elementClass(): string {
1302
- // return this.#elementClass.join(' ');
1303
- // }
1304
- // set(val: string) {
1305
- // this.#elementClass = val.split(' ');
1306
- // }
1307
- function SdSuffixIconDirective(templateRef, renderer, hostElement) {
1308
- this.templateRef = templateRef;
1309
- this.renderer = renderer;
1310
- // Thêm class cho suffix icon
1311
- // this.renderer.addClass(hostElement.nativeElement.children[0], 'sd-suffix-icon');
1312
- // this.renderer.addClass(hostElement.nativeElement.children[0], 'sd-hover');
1313
- // this.renderer.addClass(hostElement.nativeElement.children[0], 'pointer');
1314
- // this.#elementClass.push('sd-suffix-icon'); // Thêm class cho suffix icon
1315
- // this.#elementClass.push('sd-hover'); // Thêm class cho suffix icon
1316
- // this.#elementClass.push('pointer'); // Thêm class cho suffix icon
1299
+ function SdSuffixIconDirective() {
1317
1300
  }
1318
1301
  return SdSuffixIconDirective;
1319
1302
  }());
1320
1303
  SdSuffixIconDirective.decorators = [
1321
1304
  { type: i0.Directive, args: [{
1322
1305
  selector: '[sdSuffixIcon]',
1306
+ providers: [{ provide: SD_SUFIX_ICON, useExisting: SdSuffixIconDirective }],
1307
+ host: {
1308
+ '[class.sd-suffix-icon]': 'true',
1309
+ '[class.sd-hover]': 'true',
1310
+ '[class.pointer]': 'true',
1311
+ },
1323
1312
  },] }
1324
1313
  ];
1325
- SdSuffixIconDirective.ctorParameters = function () { return [
1326
- { type: i0.TemplateRef },
1327
- { type: i0.Renderer2 },
1328
- { type: i0.ElementRef }
1329
- ]; };
1314
+ SdSuffixIconDirective.ctorParameters = function () { return []; };
1330
1315
 
1331
1316
  var SdLabelDefDirective = /** @class */ (function () {
1332
1317
  // @Input() sdLableDef: string;
@@ -1472,6 +1457,7 @@
1472
1457
 
1473
1458
  exports.FIREBASE_CONFIG = FIREBASE_CONFIG;
1474
1459
  exports.FORM_CONFIG = FORM_CONFIG;
1460
+ exports.SD_SUFIX_ICON = SD_SUFIX_ICON;
1475
1461
  exports.SdBrowserService = SdBrowserService;
1476
1462
  exports.SdCommonModule = SdCommonModule;
1477
1463
  exports.SdFormControl = SdFormControl;
@@ -1 +1 @@
1
- {"version":3,"file":"sd-angular-core-common.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/common/src/lib/typings/array.extension.ts","../../../../projects/sd-core/common/src/lib/typings/date.extension.ts","../../../../projects/sd-core/common/src/lib/typings/number.extension.ts","../../../../projects/sd-core/common/src/lib/typings/string.extension.ts","../../../../projects/sd-core/common/src/lib/others/detectIncognito.ts","../../../../projects/sd-core/common/src/lib/typings/utility.extension.ts","../../../../projects/sd-core/common/src/lib/configurations/firebase.configuration.ts","../../../../projects/sd-core/common/src/lib/configurations/form.configuration.ts","../../../../projects/sd-core/common/src/lib/models/sd-form-control.ts","../../../../projects/sd-core/common/src/lib/services/browser.service.ts","../../../../projects/sd-core/common/src/lib/directives/view-def.directive.ts","../../../../projects/sd-core/common/src/lib/directives/sd-let.directive.ts","../../../../projects/sd-core/common/src/lib/directives/sd-scroll.directive.ts","../../../../projects/sd-core/common/src/lib/directives/sd-suffix.directive.ts","../../../../projects/sd-core/common/src/lib/directives/sd-suffix-icon.directive.ts","../../../../projects/sd-core/common/src/lib/directives/sd-lable.directive.ts","../../../../projects/sd-core/common/src/lib/directives/sd-for.directive.ts","../../../../projects/sd-core/common/src/lib/common.module.ts","../../../../projects/sd-core/common/sd-angular-core-common.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (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 { Observable, of } from 'rxjs';\r\n\r\nexport {};\r\n\r\ndeclare global {\r\n interface Array<T = any> {\r\n search(searchText: string | number, fields?: string | string[]): T[];\r\n paging(pageSize: number, page?: number): T[];\r\n toObject(key?: string): { [key: string]: T };\r\n union(key?: string, ...args: T[][]): T[];\r\n asObservable(): Observable<T[]>;\r\n }\r\n interface ArrayConstructor {\r\n search<T = any>(items: T[], searchText: string | number, fields?: Extract<keyof T, string> | Extract<keyof T, string>[]): T[];\r\n union<T = any>(key: Extract<keyof T, string>, ...args: T[][]): T[];\r\n toObject<T = any>(items: T[], key?: string): { [key: string]: T };\r\n sum<T = any>(items: T[], key: Extract<keyof T, string>): number;\r\n }\r\n}\r\n\r\nArray.prototype.search = function <T = any>(searchText: any, fields?: string | string[]): T[] {\r\n const items: T[] = this;\r\n if (!searchText?.toString()) {\r\n return items;\r\n }\r\n if (Array.isArray(fields)) {\r\n const fs = fields.filter(e => e !== undefined && e !== null && e !== '');\r\n if (!fs.length) {\r\n return items.filter(item => item !== undefined && item !== null && String.aliasIncludes(item, searchText));\r\n }\r\n return items.filter(item => item !== undefined && item !== null && fs.some(field => String.aliasIncludes(item[field], searchText)));\r\n }\r\n if (!fields) {\r\n return items.filter(item => item !== undefined && item !== null && String.aliasIncludes(item, searchText));\r\n }\r\n return items.filter(item => item !== undefined && item !== null && String.aliasIncludes(item[fields], searchText));\r\n};\r\n\r\nArray.prototype.paging = function <T = any>(pageSize: number, page: number = 0): T[] {\r\n const items: T[] = this;\r\n return items.filter((item, index) => {\r\n return index >= page * pageSize && index < (page + 1) * pageSize;\r\n });\r\n};\r\n\r\nArray.prototype.toObject = function <T = any>(key: string): { [key: string]: T } {\r\n const items: T[] = this;\r\n if (!key) {\r\n return items\r\n .filter(item => item !== undefined && item !== null)\r\n .reduce((obj, item) => {\r\n obj[item?.toString()] = item;\r\n return obj;\r\n }, {});\r\n }\r\n return items\r\n .filter(item => item !== undefined && item !== null)\r\n .reduce((obj, item) => {\r\n obj[item[key]?.toString()] = item;\r\n return obj;\r\n }, {});\r\n};\r\n\r\nArray.prototype.union = function <T = any>(key?: string, ...args: T[][]) {\r\n let results: T[] = this;\r\n const filterUnion = <T = any>(val: T, index: number, self: T[]) =>\r\n val !== undefined && val !== null && self.findIndex((e: { [x: string]: any }) => (!!key ? e[key] === val[key] : e === val)) === index;\r\n if (!args?.length) {\r\n return results.filter(filterUnion);\r\n }\r\n for (const arg of args) {\r\n if (Array.isArray(arg)) {\r\n results = [...results, ...arg].filter(filterUnion);\r\n }\r\n }\r\n return results;\r\n};\r\n\r\nArray.prototype.asObservable = function <T = any>() {\r\n const items: T[] = this;\r\n return of(items);\r\n};\r\n\r\nArray.search = <T = any>(items: T[], searchText: string | number, fields?: Extract<keyof T, string> | Extract<keyof T, string>[]) => {\r\n if (!Array.isArray(items)) {\r\n return [];\r\n }\r\n return items.search(searchText, fields);\r\n};\r\n\r\nArray.union = <T = any>(key: Extract<keyof T, string>, ...args: T[][]) => {\r\n return [].union(key, ...args);\r\n};\r\n\r\nArray.toObject = <T>(items: T[], key?: string): { [key: string]: T } => {\r\n if (!Array.isArray(items)) {\r\n return {};\r\n }\r\n return items.toObject(key);\r\n};\r\n\r\nArray.sum = <T>(items: T[], key: Extract<keyof T, string>) => {\r\n return items?.map(e => +e[key] || 0).reduce((current, next) => current + next, 0);\r\n};\r\n","export { };\r\n\r\ndeclare global {\r\n interface Date {\r\n begin(): Date;\r\n end(): Date;\r\n addMiliseconds(miliseconds: number): Date;\r\n addHours(hours: number): Date;\r\n addDays(days: number): Date;\r\n addMonths(months: number): Date;\r\n toFormat(format: string): string;\r\n }\r\n interface DateConstructor {\r\n equal(date1: any, date2: any): boolean;\r\n parseFrom(value: any, format: string): Date;\r\n isDate(value: any): boolean;\r\n toFormat(value: any, format: string): string;\r\n addMiliseconds(value: any, miliseconds: number): Date;\r\n addHours(value: any, hours: number): Date;\r\n addDays(value: any, days: number): Date;\r\n addMonths(value: any, months: number): Date;\r\n begin(value: any): Date;\r\n end(value: any): Date;\r\n diffDays(from: any, to: any): number;\r\n }\r\n}\r\n\r\nDate.equal = (date1: any, date2: any) => {\r\n if (!Date.isDate(date1) && !Date.isDate(date2)) {\r\n return true;\r\n }\r\n if (!Date.isDate(date1) || !Date.isDate(date2)) {\r\n return false;\r\n }\r\n return new Date(date1).getTime() === new Date(date2).getTime();\r\n};\r\n\r\nDate.parseFrom = (value: any, format: string) => {\r\n if (!value) {\r\n return null;\r\n }\r\n if (!format) {\r\n return null;\r\n }\r\n value = value.toString();\r\n const dmy = format.indexOf('dd') > -1 && format.indexOf('MM') > -1 && format.indexOf('yyyy') > -1;\r\n const hms = format.indexOf('HH') > -1 || format.indexOf('mm') > -1 || format.indexOf('ss') > -1;\r\n let strDate = '';\r\n if (dmy) {\r\n const dd = value.substr(format.indexOf('dd'), 'dd'.length);\r\n const MM = value.substr(format.indexOf('MM'), 'MM'.length);\r\n const yyyy = value.substr(format.indexOf('yyyy'), 'yyyy'.length);\r\n if (+yyyy > 0 && +MM > 0 && +dd > 0) {\r\n strDate += `${MM}/${dd}/${yyyy}`;\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n const today = new Date();\r\n const yyyy = today.getFullYear().toString();\r\n const MM = (today.getMonth() + 1).toString().padStart(2, '0');\r\n const dd = today.getDate().toString().padStart(2, '0');\r\n strDate += `${MM}/${dd}/${yyyy}`;\r\n }\r\n if (hms) {\r\n const HH = format.indexOf('HH') > -1 ? value.substr(format.indexOf('HH'), 'HH'.length) : '00';\r\n const mm = format.indexOf('mm') > -1 ? value.substr(format.indexOf('mm'), 'mm'.length) : '00';\r\n const ss = format.indexOf('ss') > -1 ? value.substr(format.indexOf('ss'), 'ss'.length) : '00';\r\n strDate += ` ${HH || '00'}:${mm || '00'}:${ss || '00'}`;\r\n }\r\n if (!Date.isDate(strDate)) {\r\n return null;\r\n }\r\n return new Date(strDate);\r\n};\r\n\r\nDate.isDate = (value: any) => {\r\n if (!value) {\r\n return false;\r\n }\r\n const date = new Date(value);\r\n return !isNaN(date.getTime());\r\n};\r\n\r\nDate.toFormat = (value: any, format: string): string => {\r\n if (!Date.isDate(value)) {\r\n return '';\r\n }\r\n const date: Date = new Date(value);\r\n return date.toFormat(format);\r\n};\r\n\r\nDate.addMiliseconds = (value: any, miliseconds: number): Date => {\r\n if (!Date.isDate(value)) {\r\n return null;\r\n }\r\n const date: Date = new Date(value);\r\n return date.addMiliseconds(miliseconds);\r\n};\r\n\r\nDate.addHours = (value: any, hours: number): Date => {\r\n if (!Date.isDate(value)) {\r\n return null;\r\n }\r\n const date: Date = new Date(value);\r\n return date.addHours(hours);\r\n};\r\n\r\nDate.addDays = (value: any, days: number): Date => {\r\n if (!Date.isDate(value)) {\r\n return null;\r\n }\r\n const date: Date = new Date(value);\r\n return date.addDays(days);\r\n};\r\n\r\nDate.addMonths = (value: any, months: number): Date => {\r\n if (!Date.isDate(value)) {\r\n return null;\r\n }\r\n const date: Date = new Date(value);\r\n return date.addMonths(months);\r\n};\r\n\r\nDate.begin = (value: any) => {\r\n if (!Date.isDate(value)) {\r\n return null;\r\n }\r\n return new Date(Date.toFormat(value, 'MM/dd/yyyy'));\r\n};\r\n\r\nDate.end = (value: any) => {\r\n if (!Date.isDate(value)) {\r\n return null;\r\n }\r\n return new Date(value).addDays(1).begin().addMiliseconds(-1);\r\n};\r\n\r\nDate.diffDays = (from: any, to: any) => {\r\n if (!Date.isDate(from) || !Date.isDate(to)) {\r\n return undefined;\r\n }\r\n const diffTime = new Date(to).getTime() - new Date(from).getTime();\r\n const diffDays = Math.round((diffTime / (1000 * 60 * 60 * 24)) * 100) / 100; \r\n return diffDays;\r\n};\r\n\r\nDate.prototype.begin = function () {\r\n return new Date(this.toFormat('MM/dd/yyyy'));\r\n};\r\n\r\nDate.prototype.end = function () {\r\n const date: Date = this;\r\n return date.addDays(1).begin().addMiliseconds(-1);\r\n};\r\n\r\nDate.prototype.addMiliseconds = function (miliseconds: number) {\r\n const date: Date = this;\r\n date.setMilliseconds(date.getMilliseconds() + miliseconds);\r\n return date;\r\n};\r\n\r\nDate.prototype.addHours = function (hours: number) {\r\n const date: Date = this;\r\n date.setHours(date.getHours() + hours);\r\n return date;\r\n};\r\n\r\nDate.prototype.addDays = function (days: number) {\r\n const date: Date = this;\r\n date.setDate(date.getDate() + days);\r\n return date;\r\n};\r\n\r\nDate.prototype.addMonths = function (months: number) {\r\n const date: Date = this;\r\n date.setMonth(date.getMonth() + months);\r\n return date;\r\n};\r\n\r\nDate.prototype.toFormat = function (format: string) {\r\n const date: Date = this;\r\n let result = format;\r\n result = result.replace('yyyy', date.getFullYear().toString());\r\n result = result.replace('MM', (date.getMonth() + 1).toString().padStart(2, '0'));\r\n result = result.replace('dd', date.getDate().toString().padStart(2, '0'));\r\n result = result.replace('HH', date.getHours().toString().padStart(2, '0'));\r\n result = result.replace('mm', date.getMinutes().toString().padStart(2, '0'));\r\n result = result.replace('ss', date.getSeconds().toString().padStart(2, '0'));\r\n return result;\r\n};\r\n","export { };\r\n\r\ndeclare global {\r\n interface NumberConstructor {\r\n toVNCurrency(value: any, digits?: number): string;\r\n isNumber(value: any): boolean;\r\n isPositiveInteger(value: any): boolean;\r\n isPositiveNumber(value: any): boolean;\r\n round(value: any, digits?: number): number;\r\n }\r\n}\r\n\r\nNumber.toVNCurrency = (value: any, digits?: number) => {\r\n value = (value ?? '').toString().replace(/,/g, '');\r\n if (!value) {\r\n return null;\r\n }\r\n const val = +value;\r\n if (!Number.isNaN(val)) {\r\n if(!digits && digits !== 0) {\r\n return val.toLocaleString('vi-VN', { maximumFractionDigits: 10 });\r\n }\r\n return val.toLocaleString('vi-VN', { maximumFractionDigits: digits });\r\n }\r\n return null;\r\n};\r\n\r\nNumber.isPositiveInteger = (value: any) => {\r\n if (!value) {\r\n return false;\r\n }\r\n const regex = /^([0-9]*)$/;\r\n return regex.test(value) && +value > 0;\r\n};\r\n\r\nNumber.isPositiveNumber = (value: any) => {\r\n if (!value) {\r\n return false;\r\n }\r\n const regex = /^([0-9]*)(\\.[0-9]+$){0,1}$/;\r\n return regex.test(value) && +value > 0;\r\n};\r\n\r\nNumber.isNumber = (value: any) => {\r\n if (value === undefined || value === null || value === '') {\r\n return false;\r\n }\r\n return !Number.isNaN(+value);\r\n};\r\n\r\nNumber.round = (value: any, digits?: number) => {\r\n digits = digits ?? 2;\r\n if (!Number.isNumber(value)) {\r\n return null;\r\n }\r\n const val = Math.pow(10, digits);\r\n return Math.round(value * val) / val;\r\n};","export { };\r\n\r\ndeclare global {\r\n interface StringConstructor {\r\n isValidEmail(value: any): boolean;\r\n isValidPhone(value: any): boolean;\r\n isValidCode(value: any): boolean;\r\n changeAliasLowerCase(alias: any): string;\r\n aliasIncludes(alias: any, searchText: any): boolean;\r\n format(template: string, ...arr: any[]): string;\r\n templateToDisplay(template: string, entity: any): string; // Convert theo format ${key}\r\n encrypt(obj: any): string;\r\n decrypt(encripted: string): any;\r\n isNullOrEmpty(value: any): boolean;\r\n isNullOrWhiteSpace(value: any): boolean;\r\n }\r\n}\r\n\r\nString.isValidEmail = (value: any) => {\r\n if (!value) {\r\n return false;\r\n }\r\n const re = /^(([^<>()\\[\\]\\.,;:\\s@\\\"]+(\\.[^<>()\\[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\r\n return re.test(value);\r\n};\r\n\r\nString.isValidPhone = (value: any) => {\r\n if (!value) {\r\n return false;\r\n }\r\n const re = /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/;\r\n return re.test(value);\r\n};\r\n\r\nString.isValidCode = (value: any) => {\r\n if (!value) {\r\n return false;\r\n }\r\n const re = /^[a-zA-Z0-9\\@\\_\\-]{2,20}$/;\r\n return re.test(value);\r\n};\r\n\r\nString.isNullOrEmpty = (value: any) => {\r\n return value === undefined || value === null || value === '';\r\n};\r\n\r\nString.isNullOrWhiteSpace = (value: any) => {\r\n return value === undefined || value === null || typeof value !== 'string' || value.match(/^ *$/) !== null;\r\n};\r\n\r\nString.changeAliasLowerCase = (alias: any) => {\r\n let str: string = alias?.toString() ?? '';\r\n str = str.toString().toLowerCase();\r\n str = str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, 'a');\r\n str = str.replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g, 'e');\r\n str = str.replace(/ì|í|ị|ỉ|ĩ/g, 'i');\r\n str = str.replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g, 'o');\r\n str = str.replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g, 'u');\r\n str = str.replace(/ỳ|ý|ỵ|ỷ|ỹ/g, 'y');\r\n str = str.replace(/đ/g, 'd');\r\n str = str.replace(/!|@|%|\\^|\\*|\\(|\\)|\\+|\\=|\\<|\\>|\\?|\\/|,|\\.|\\:|\\;|\\'|\\\"|\\&|\\#|\\[|\\]|~|\\$|_|`|-|{|}|\\||\\\\/g, ' ');\r\n str = str.replace(/ + /g, ' ');\r\n str = str.trim();\r\n return str;\r\n}\r\n\r\nString.aliasIncludes = (alias: any, searchText: any) => {\r\n return String.changeAliasLowerCase(alias).includes(String.changeAliasLowerCase(searchText));\r\n}\r\n\r\nString.format = (template: string, ...arr: any[]) => {\r\n for (let i = 0; i < arr.length; i++) {\r\n const regexp = new RegExp(`\\\\{${i}\\\\}`, 'gi');\r\n template = template.replace(regexp, arr[i]);\r\n }\r\n return template;\r\n}\r\n\r\nString.templateToDisplay = (template: string, entity: any) => {\r\n if (!template) {\r\n return template;\r\n }\r\n const regex = /\\$\\{([A-Za-z._\\-]*)\\}/g;\r\n const matches = template.match(regex) || [];\r\n for (const match of matches) {\r\n const key = match.slice(2, match.length - 1);\r\n if (key) {\r\n template = template.replace(match, entity?.[key] || '');\r\n }\r\n }\r\n return template;\r\n}\r\n\r\nconst SALT = 'cb9f4b2a-d26c-4787-a66e-e7130ee00f95';\r\n\r\nString.encrypt = (obj: any) => {\r\n obj = JSON.stringify(obj).split('');\r\n for (var i = 0, l = obj.length; i < l; i++)\r\n if (obj[i] == '{')\r\n obj[i] = '}';\r\n else if (obj[i] == '}')\r\n obj[i] = '{';\r\n return encodeURI(SALT + obj.join(''));\r\n}\r\n\r\nString.decrypt = (encripted: string) => {\r\n encripted = decodeURI(encripted);\r\n if (SALT && encripted.indexOf(SALT) != 0)\r\n throw new Error('object cannot be decrypted');\r\n const strs = encripted.substring(SALT.length).split('');\r\n for (let i = 0, l = strs.length; i < l; i++)\r\n if (strs[i] == '{')\r\n strs[i] = '}';\r\n else if (encripted[i] == '}')\r\n strs[i] = '{';\r\n return JSON.parse(strs.join(''));\r\n}\r\n","/**\r\n *\r\n * detectIncognito v1.3.0 - (c) 2022 Joe Rutkowski <Joe@dreggle.com> (https://github.com/Joe12387/detectIncognito)\r\n *\r\n **/\r\nexport const detectIncognito = (): Promise<{\r\n isPrivate: boolean;\r\n browserName: string;\r\n}> => {\r\n return new Promise( (resolve, reject) => {\r\n let browserName = 'Unknown';\r\n\r\n function __callback(isPrivate: any): void {\r\n resolve({\r\n isPrivate,\r\n browserName,\r\n });\r\n }\r\n\r\n function identifyChromium(): string {\r\n const ua = navigator.userAgent;\r\n if (ua.match(/Chrome/)) {\r\n if ((navigator as any).brave !== undefined) {\r\n return 'Brave';\r\n } else if (ua.match(/Edg/)) {\r\n return 'Edge';\r\n } else if (ua.match(/OPR/)) {\r\n return 'Opera';\r\n }\r\n return 'Chrome';\r\n } else {\r\n return 'Chromium';\r\n }\r\n }\r\n\r\n function assertEvalToString(value: any): boolean {\r\n return value === eval.toString().length;\r\n }\r\n\r\n function isSafari(): boolean {\r\n const v = navigator.vendor;\r\n return (\r\n v !== undefined && v.indexOf('Apple') === 0 && assertEvalToString(37)\r\n );\r\n }\r\n\r\n function isChrome(): boolean {\r\n const v = navigator.vendor;\r\n return (\r\n v !== undefined && v.indexOf('Google') === 0 && assertEvalToString(33)\r\n );\r\n }\r\n\r\n function isFirefox(): boolean {\r\n return (\r\n document.documentElement !== undefined &&\r\n (document as any).documentElement.style.MozAppearance !== undefined &&\r\n assertEvalToString(37)\r\n );\r\n }\r\n\r\n function isMSIE(): boolean {\r\n return (\r\n (navigator as any).msSaveBlob !== undefined && assertEvalToString(39)\r\n );\r\n }\r\n\r\n /**\r\n * Safari (Safari for iOS & macOS)\r\n **/\r\n\r\n function newSafariTest(): void {\r\n // tslint:disable-next-line:variable-name\r\n const tmp_name = String(Math.random());\r\n\r\n try {\r\n const db = window.indexedDB.open(tmp_name, 1);\r\n\r\n db.onupgradeneeded = (i) => {\r\n // @ts-ignore\r\n const res = i.target?.result;\r\n\r\n try {\r\n res.createObjectStore('test', {\r\n autoIncrement: true,\r\n // tslint:disable-next-line:new-parens\r\n }).put(new Blob);\r\n\r\n __callback(false);\r\n } catch (e) {\r\n let message = e;\r\n\r\n if (e instanceof Error) {\r\n message = e.message ?? e;\r\n }\r\n\r\n if (typeof message !== 'string') {\r\n return __callback(false);\r\n }\r\n\r\n const matchesExpectedError = /BlobURLs are not yet supported/.test(message);\r\n\r\n return __callback(matchesExpectedError);\r\n } finally {\r\n res.close();\r\n window.indexedDB.deleteDatabase(tmp_name);\r\n }\r\n };\r\n } catch (e) {\r\n return __callback(false);\r\n }\r\n }\r\n\r\n function oldSafariTest(): void {\r\n const openDB = (window as any).openDatabase;\r\n const storage = window.localStorage;\r\n try {\r\n openDB(null, null, null, null);\r\n } catch (e) {\r\n return __callback(true);\r\n }\r\n try {\r\n storage.setItem('test', '1');\r\n storage.removeItem('test');\r\n } catch (e) {\r\n return __callback(true);\r\n }\r\n return __callback(false);\r\n }\r\n\r\n function safariPrivateTest(): void {\r\n if (navigator.maxTouchPoints !== undefined) {\r\n newSafariTest();\r\n } else {\r\n oldSafariTest();\r\n }\r\n }\r\n\r\n /**\r\n * Chrome\r\n **/\r\n\r\n function getQuotaLimit(): number {\r\n const w = window as any;\r\n if (\r\n w.performance !== undefined &&\r\n w.performance.memory !== undefined &&\r\n w.performance.memory.jsHeapSizeLimit !== undefined\r\n ) {\r\n return (performance as any).memory.jsHeapSizeLimit;\r\n }\r\n return 1073741824;\r\n }\r\n\r\n // >= 76\r\n function storageQuotaChromePrivateTest(): void {\r\n (navigator as any).webkitTemporaryStorage.queryUsageAndQuota(\r\n (_: number, quota: number) => {\r\n const quotaInMib = Math.round(quota / (1024 * 1024));\r\n const quotaLimitInMib = Math.round(getQuotaLimit() / (1024 * 1024)) * 2;\r\n\r\n __callback(quotaInMib < quotaLimitInMib);\r\n },\r\n (e: any) => {\r\n reject(\r\n new Error(\r\n 'detectIncognito somehow failed to query storage quota: ' +\r\n e.message\r\n )\r\n );\r\n }\r\n );\r\n }\r\n\r\n // 50 to 75\r\n function oldChromePrivateTest(): void {\r\n const fs = (window as any).webkitRequestFileSystem;\r\n const success = () => {\r\n __callback(false);\r\n };\r\n const error = () => {\r\n __callback(true);\r\n };\r\n fs(0, 1, success, error);\r\n }\r\n\r\n function chromePrivateTest(): void {\r\n if (self.Promise !== undefined && (self.Promise as any).allSettled !== undefined) {\r\n storageQuotaChromePrivateTest();\r\n } else {\r\n oldChromePrivateTest();\r\n }\r\n }\r\n\r\n /**\r\n * Firefox\r\n **/\r\n\r\n function firefoxPrivateTest(): void {\r\n __callback(navigator.serviceWorker === undefined);\r\n }\r\n\r\n /**\r\n * MSIE\r\n **/\r\n\r\n function msiePrivateTest(): void {\r\n __callback(window.indexedDB === undefined);\r\n }\r\n\r\n function main(): void {\r\n if (isSafari()) {\r\n browserName = 'Safari';\r\n safariPrivateTest();\r\n } else if (isChrome()) {\r\n browserName = identifyChromium();\r\n chromePrivateTest();\r\n } else if (isFirefox()) {\r\n browserName = 'Firefox';\r\n firefoxPrivateTest();\r\n } else if (isMSIE()) {\r\n browserName = 'Internet Explorer';\r\n msiePrivateTest();\r\n } else {\r\n reject(new Error('detectIncognito cannot determine the browser'));\r\n }\r\n }\r\n\r\n main();\r\n });\r\n};\r\n","import { detectIncognito } from '../others/detectIncognito';\r\n\r\nexport { };\r\n// declare var Date: DateConstructor;\r\ninterface SdUtilityContructor {\r\n upload: (option?: {\r\n extensions?: string[];\r\n maxSizeInMb?: number;\r\n validator?: (fileName: string) => string;\r\n }) => Promise<File | null>;\r\n download: (filePath: string, fileName?: string) => void;\r\n downloadBlob: (blob: Blob, fileName?: string) => void;\r\n changeAliasLowerCase: (alias: string) => string;\r\n copyToClipboard: (text: string) => void;\r\n allWithPaging: <T = any>(func: (pageSize: number, pageNumber: number) => Promise<{\r\n items: T[];\r\n total: number;\r\n }>, defaultPageSize?: number) => Promise<T[]>;\r\n isPrivateMode: () => Promise<boolean>;\r\n}\r\n\r\n\r\nconst upload = (option?: {\r\n extensions?: string[],\r\n maxSizeInMb?: number,\r\n validator?: (fileName: string) => string\r\n}) => {\r\n const uploadId = 'U1e09c1c0-b647-437e-995e-d7a1a1b60550';\r\n const promise = new Promise<File | null>((resolve, reject) => {\r\n const body = document.getElementsByTagName('body')?.[0];\r\n if (!body) {\r\n resolve(null);\r\n return;\r\n }\r\n const existedElement = document.getElementById(uploadId);\r\n if (existedElement) {\r\n existedElement.remove();\r\n }\r\n const element = document.createElement('input');\r\n element.setAttribute('id', uploadId);\r\n element.setAttribute('type', 'file');\r\n element.style.display = 'none';\r\n body.appendChild(element);\r\n element.addEventListener('change', (evt: any) => {\r\n try {\r\n const target = evt.target as DataTransfer;\r\n const file = target.files.item(0);\r\n if (file) {\r\n const lastDot = file.name.lastIndexOf('.');\r\n if (lastDot === -1) {\r\n throw new Error(`File không đúng định dạng`);\r\n }\r\n const extension = file.name.substring(lastDot + 1);\r\n if (option) {\r\n if (option.extensions?.length && !option.extensions.some(e => e.toUpperCase() === extension.toUpperCase())) {\r\n throw new Error(`File không đúng định dạng`);\r\n }\r\n if (option.maxSizeInMb && option.maxSizeInMb > 0 && option.maxSizeInMb * 1024 * 1024 < file.size) {\r\n const message = `[${file.name}] Dung lượng tối đa ${option.maxSizeInMb} Mbs`;\r\n throw new Error(message);\r\n }\r\n if (option.validator && option.validator(file.name)) {\r\n const message = option.validator(file.name);\r\n throw new Error(message);\r\n }\r\n }\r\n resolve(file);\r\n }\r\n } catch (error) {\r\n reject(error);\r\n }\r\n });\r\n element.click();\r\n });\r\n return promise;\r\n}\r\n\r\nconst generateFileName = (fileName?: string) => {\r\n if (!fileName) {\r\n return `File_${new Date().toFormat('yyyy_MM_dd_HH_mm')}`;\r\n }\r\n const strs = fileName.split('.');\r\n if (strs.length > 1) {\r\n const ext = strs.splice(strs.length - 1, 1)[0];\r\n return `${strs.join('.')}_${new Date().toFormat('yyyy_MM_dd_HH_mm')}.${ext}`;\r\n }\r\n return `${fileName}_${new Date().toFormat('yyyy_MM_dd_HH_mm')}`;\r\n}\r\n\r\nconst download = (filePath: string, fileName?: string) => {\r\n const link = document.createElement('a');\r\n link.download = generateFileName(fileName);\r\n link.href = filePath;\r\n link.style.visibility = 'hidden';\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n}\r\n\r\nconst downloadBlob = (blob: Blob, fileName?: string) => {\r\n try {\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n if (link.download !== undefined) { // feature detection\r\n link.download = generateFileName(fileName);\r\n link.href = url;\r\n link.style.visibility = 'hidden';\r\n document.body.appendChild(link);\r\n link.click();\r\n window.URL.revokeObjectURL(url);\r\n link.remove();\r\n }\r\n } catch (e) {\r\n console.error('BlobToSaveAs error', e);\r\n }\r\n}\r\n\r\nconst changeAliasLowerCase = (alias: string) => {\r\n let str = alias?.toString() ?? '';\r\n str = str.toString().toLowerCase();\r\n str = str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, 'a');\r\n str = str.replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g, 'e');\r\n str = str.replace(/ì|í|ị|ỉ|ĩ/g, 'i');\r\n str = str.replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g, 'o');\r\n str = str.replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g, 'u');\r\n str = str.replace(/ỳ|ý|ỵ|ỷ|ỹ/g, 'y');\r\n str = str.replace(/đ/g, 'd');\r\n str = str.replace(/!|@|%|\\^|\\*|\\(|\\)|\\+|\\=|\\<|\\>|\\?|\\/|,|\\.|\\:|\\;|\\'|\\\"|\\&|\\#|\\[|\\]|~|\\$|_|`|-|{|}|\\||\\\\/g, ' ');\r\n str = str.replace(/ + /g, ' ');\r\n str = str.trim();\r\n return str;\r\n}\r\n\r\nconst copyToClipboard = (text: string) => {\r\n navigator.clipboard.writeText(text);\r\n}\r\n\r\nconst allWithPaging = async <T = any>(func: (pageSize: number, pageNumber: number) => Promise<{ items: T[], total: number }>, defaultPageSize?: number): Promise<T[]> => {\r\n let pageSize = defaultPageSize || 1000;\r\n let pageNumber = 0;\r\n let count = 0;\r\n let items: T[] = [];\r\n while (true) {\r\n const res = await func(pageSize, pageNumber);\r\n if (Array(res?.items) && res?.total > 0) {\r\n items = [...items, ...res.items];\r\n count += res.items.length;\r\n pageNumber++;\r\n if (count >= res.total || !res.items?.length) {\r\n return items;\r\n }\r\n } else {\r\n return [];\r\n }\r\n }\r\n}\r\n\r\nconst isPrivateMode = async (): Promise<boolean> => {\r\n const check = await detectIncognito();\r\n return check.isPrivate;\r\n}\r\n\r\nvar SdUtility: SdUtilityContructor = {\r\n upload,\r\n download,\r\n downloadBlob,\r\n changeAliasLowerCase,\r\n copyToClipboard,\r\n allWithPaging,\r\n isPrivateMode,\r\n};\r\n\r\ndeclare global {\r\n var SdUtility: SdUtilityContructor;\r\n}\r\nglobalThis.SdUtility = SdUtility;\r\n","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport interface IFirebaseConfiguration {\r\n functionUrl: string;\r\n project: string;\r\n env: string;\r\n folder?: string | (() => string);\r\n}\r\n\r\nexport const FIREBASE_CONFIG = new InjectionToken<IFirebaseConfiguration>('sd.firebase.configuration');","import { InjectionToken } from \"@angular/core\";\r\nimport { MatFormFieldAppearance } from \"@angular/material/form-field\";\r\n\r\nexport interface IFormConfiguration {\r\n appearance?: MatFormFieldAppearance; \r\n}\r\n\r\nexport const FORM_CONFIG = new InjectionToken<IFormConfiguration>('sd.form.configuration');","import { FormControl, AsyncValidatorFn, ValidatorFn } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nexport class SdFormControl extends FormControl {\r\n sdChanges: Subject<boolean> = new Subject<boolean>();\r\n untouchChanges: Subject<boolean> = new Subject<boolean>();\r\n touchChanges: Subject<boolean> = new Subject<boolean>();\r\n pristineChanges: Subject<boolean> = new Subject<boolean>();\r\n constructor(\r\n formState?: Object,\r\n validator: ValidatorFn | ValidatorFn[] = null,\r\n asyncValidator: AsyncValidatorFn | AsyncValidatorFn[] = null\r\n ) {\r\n super(formState, validator, asyncValidator);\r\n }\r\n\r\n markAsUntouched({ onlySelf }: { onlySelf?: boolean } = {}): void {\r\n super.markAsUntouched({ onlySelf });\r\n this.untouchChanges.next(true);\r\n this.sdChanges.next(true);\r\n }\r\n\r\n markAsTouched({ onlySelf }: { onlySelf?: boolean } = {}): void {\r\n super.markAsTouched({ onlySelf });\r\n this.touchChanges.next(true);\r\n this.sdChanges.next(true);\r\n }\r\n\r\n markAsPristine(opts?: {\r\n onlySelf?: boolean;\r\n }): void {\r\n super.markAsPristine(opts);\r\n this.pristineChanges.next(true);\r\n this.sdChanges.next(true);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdBrowserService {\r\n browerName: string;\r\n browserVersion: string;\r\n get isChrome() { return this.browerName === 'Chrome'; }\r\n get isFirefox() { return this.browerName === 'Firefox'; }\r\n get isSafari() { return this.browerName === 'Safari'; }\r\n constructor() {\r\n const browserNameAndVersion = this.#getBrowserNameAndVersion();\r\n this.browerName = browserNameAndVersion.name;\r\n this.browserVersion = browserNameAndVersion.version;\r\n }\r\n\r\n #getBrowserNameAndVersion = () => {\r\n const ua = navigator.userAgent;\r\n let M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [];\r\n let tem: RegExpMatchArray;\r\n if (/trident/i.test(M[1])) {\r\n tem = /\\brv[ :]+(\\d+)/g.exec(ua) || [];\r\n return { name: 'IE', version: (tem[1] || '') };\r\n }\r\n if (M[1] === 'Chrome') {\r\n tem = ua.match(/\\bEdg\\/(\\d+)/);\r\n if (tem != null) { return { name: 'Edge(Chromium)', version: tem[1] }; }\r\n tem = ua.match(/\\bOPR\\/(\\d+)/);\r\n if (tem != null) { return { name: 'Opera', version: tem[1] }; }\r\n }\r\n M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?'];\r\n tem = ua.match(/version\\/(\\d+)/i);\r\n if (tem != null) { M.splice(1, 1, tem[1]); }\r\n return {\r\n name: M[0],\r\n version: M[1]\r\n };\r\n }\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdViewDef]'\r\n})\r\nexport class SdViewDefDirective {\r\n // @Input() sdViewDef: string;\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Directive, Input, TemplateRef, ViewContainerRef } from \"@angular/core\";\r\n@Directive({\r\n selector: '[sdLet]',\r\n})\r\nexport class SdLetDirective {\r\n @Input()\r\n set sdLet(context: any) {\r\n this.context.$implicit = this.context.sdLet = context;\r\n this.#updateView();\r\n }\r\n context: any = {};\r\n\r\n constructor(private vcRef: ViewContainerRef, private templateRef: TemplateRef<any>) { }\r\n\r\n #updateView = () => {\r\n this.vcRef.clear();\r\n this.vcRef.createEmbeddedView(this.templateRef, this.context);\r\n }\r\n}","import { Directive, ElementRef, HostListener, OnInit, Renderer2 } from \"@angular/core\";\r\nimport { SdBrowserService } from '../services/browser.service';\r\n\r\n@Directive({\r\n selector: \"[sdScroll]\",\r\n})\r\nexport class SdScrollDirective implements OnInit {\r\n #overflow: 'hidden' | 'auto' | 'overlay' = 'hidden';\r\n @HostListener('mouseover')\r\n onMouseOver() {\r\n this.#overflow = this.browserService.isFirefox ? 'auto' : 'overlay';\r\n this.renderer.setStyle(this.elementRef.nativeElement, 'overflow', this.#overflow);\r\n }\r\n\r\n @HostListener('mouseout')\r\n onMouseOut() {\r\n this.#overflow = 'hidden';\r\n this.renderer.setStyle(this.elementRef.nativeElement, 'overflow', this.#overflow);\r\n }\r\n constructor(\r\n private elementRef: ElementRef,\r\n private renderer: Renderer2,\r\n private browserService: SdBrowserService) { }\r\n\r\n ngOnInit(): void {\r\n this.renderer.setStyle(this.elementRef.nativeElement, '-webkit-transform', 'translate3d(0, 0, 0)');\r\n this.renderer.setStyle(this.elementRef.nativeElement, 'overflow', this.#overflow);\r\n }\r\n\r\n scrollTop = () => {\r\n setTimeout(() => {\r\n if (this.elementRef?.nativeElement) {\r\n this.elementRef.nativeElement.scrollTop = 0; \r\n }\r\n }, 1);\r\n }\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdSuffix]'\r\n})\r\nexport class SdSuffixDirective {\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Directive, ElementRef, HostBinding, Input, Renderer2, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdSuffixIcon]',\r\n})\r\nexport class SdSuffixIconDirective {\r\n // #elementClass: string[] = [];\r\n\r\n // @Input('class')\r\n // @HostBinding('class')\r\n // get elementClass(): string {\r\n // return this.#elementClass.join(' ');\r\n // }\r\n // set(val: string) {\r\n // this.#elementClass = val.split(' ');\r\n // }\r\n\r\n constructor(public templateRef: TemplateRef<any>, private renderer: Renderer2, hostElement: ElementRef) {\r\n // Thêm class cho suffix icon\r\n // this.renderer.addClass(hostElement.nativeElement.children[0], 'sd-suffix-icon');\r\n // this.renderer.addClass(hostElement.nativeElement.children[0], 'sd-hover');\r\n // this.renderer.addClass(hostElement.nativeElement.children[0], 'pointer');\r\n // this.#elementClass.push('sd-suffix-icon'); // Thêm class cho suffix icon\r\n // this.#elementClass.push('sd-hover'); // Thêm class cho suffix icon\r\n // this.#elementClass.push('pointer'); // Thêm class cho suffix icon\r\n }\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdLabelDef]'\r\n})\r\nexport class SdLabelDefDirective {\r\n // @Input() sdLableDef: string;\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import {\r\n Directive,\r\n Input,\r\n IterableChangeRecord,\r\n IterableDiffer,\r\n IterableDiffers,\r\n TemplateRef,\r\n ViewContainerRef,\r\n ViewRef\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdFor]'\r\n})\r\nexport class SdForDirective {\r\n private items: any[] = [];\r\n private viewRefsMap: Map<any, ViewRef> = new Map<any, ViewRef>();\r\n private _diffrence: IterableDiffer<any> | undefined;\r\n\r\n constructor(\r\n private templateRef: TemplateRef<any>,\r\n private viewContainer: ViewContainerRef,\r\n private differs: IterableDiffers\r\n ) {}\r\n\r\n @Input('sdForOf')\r\n public set sdForOf(items: any) {\r\n this.items = items;\r\n if (items) {\r\n this._diffrence = this.differs.find(items).create();\r\n }\r\n //Clear any existing items\r\n this.viewContainer.clear();\r\n }\r\n\r\n @Input('sdForItemsAtOnce')\r\n public itemsAtOnce: number = 20;\r\n\r\n @Input('sdForIntervalLength')\r\n public intervalLength: number = 50;\r\n\r\n public ngDoCheck(): void {\r\n if (this._diffrence) {\r\n const changes = this._diffrence.diff(this.items);\r\n if (changes) {\r\n const itemsAdded: any[] = [];\r\n changes.forEachAddedItem(item => {\r\n itemsAdded.push(item);\r\n });\r\n\r\n this.progressiveRender(itemsAdded);\r\n\r\n changes.forEachRemovedItem(item => {\r\n const mapView = this.viewRefsMap.get(item.item) as ViewRef;\r\n const viewIndex = this.viewContainer.indexOf(mapView);\r\n this.viewContainer.remove(viewIndex);\r\n this.viewRefsMap.delete(item.item);\r\n });\r\n }\r\n }\r\n }\r\n\r\n private progressiveRender(items: IterableChangeRecord<any>[]) {\r\n let interval: any;\r\n let start = 0;\r\n let end = start + this.itemsAtOnce;\r\n if (end > items.length) {\r\n end = items.length;\r\n }\r\n this.renderItems(items, start, end);\r\n\r\n interval = setInterval(() => {\r\n start = end;\r\n end = start + this.itemsAtOnce;\r\n if (end > items.length) {\r\n end = items.length;\r\n }\r\n this.renderItems(items, start, end);\r\n if (start >= items.length) {\r\n clearInterval(interval);\r\n }\r\n }, this.intervalLength);\r\n }\r\n\r\n private renderItems(\r\n items: IterableChangeRecord<any>[],\r\n start: number,\r\n end: number\r\n ) {\r\n items.slice(start, end).forEach(item => {\r\n const embeddedView = this.viewContainer.createEmbeddedView(\r\n this.templateRef,\r\n {\r\n $implicit: item.item\r\n },\r\n item.currentIndex || 0\r\n );\r\n this.viewRefsMap.set(item.item, embeddedView);\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SdViewDefDirective } from './directives/view-def.directive';\r\nimport { SdLetDirective } from './directives/sd-let.directive';\r\nimport { SdScrollDirective } from './directives/sd-scroll.directive';\r\nimport { SdSuffixDirective } from './directives/sd-suffix.directive';\r\nimport { SdLabelDefDirective } from './directives/sd-lable.directive';\r\nimport { SdForDirective } from './directives/sd-for.directive';\r\nimport { SdSuffixIconDirective } from './directives/sd-suffix-icon.directive';\r\n// import './typings';\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n SdForDirective,\r\n SdViewDefDirective,\r\n SdLetDirective,\r\n SdScrollDirective,\r\n SdSuffixDirective,\r\n SdSuffixIconDirective,\r\n SdLabelDefDirective\r\n ],\r\n exports: [\r\n SdForDirective,\r\n SdViewDefDirective,\r\n SdLetDirective,\r\n SdScrollDirective,\r\n SdSuffixDirective,\r\n SdSuffixIconDirective,\r\n SdLabelDefDirective\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdCommonModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {SdForDirective as ɵa} from './src/lib/directives/sd-for.directive';"],"names":["of","InjectionToken","Subject","FormControl","Injectable","Directive","TemplateRef","ViewContainerRef","Input","ElementRef","Renderer2","HostListener","IterableDiffers","NgModule","CommonModule"],"mappings":"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"}
1
+ {"version":3,"file":"sd-angular-core-common.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/common/src/lib/typings/array.extension.ts","../../../../projects/sd-core/common/src/lib/typings/date.extension.ts","../../../../projects/sd-core/common/src/lib/typings/number.extension.ts","../../../../projects/sd-core/common/src/lib/typings/string.extension.ts","../../../../projects/sd-core/common/src/lib/others/detectIncognito.ts","../../../../projects/sd-core/common/src/lib/typings/utility.extension.ts","../../../../projects/sd-core/common/src/lib/configurations/firebase.configuration.ts","../../../../projects/sd-core/common/src/lib/configurations/form.configuration.ts","../../../../projects/sd-core/common/src/lib/models/sd-form-control.ts","../../../../projects/sd-core/common/src/lib/services/browser.service.ts","../../../../projects/sd-core/common/src/lib/directives/view-def.directive.ts","../../../../projects/sd-core/common/src/lib/directives/sd-let.directive.ts","../../../../projects/sd-core/common/src/lib/directives/sd-scroll.directive.ts","../../../../projects/sd-core/common/src/lib/directives/sd-suffix.directive.ts","../../../../projects/sd-core/common/src/lib/directives/sd-suffix-icon.directive.ts","../../../../projects/sd-core/common/src/lib/directives/sd-lable.directive.ts","../../../../projects/sd-core/common/src/lib/directives/sd-for.directive.ts","../../../../projects/sd-core/common/src/lib/common.module.ts","../../../../projects/sd-core/common/sd-angular-core-common.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (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 { Observable, of } from 'rxjs';\r\n\r\nexport {};\r\n\r\ndeclare global {\r\n interface Array<T = any> {\r\n search(searchText: string | number, fields?: string | string[]): T[];\r\n paging(pageSize: number, page?: number): T[];\r\n toObject(key?: string): { [key: string]: T };\r\n union(key?: string, ...args: T[][]): T[];\r\n asObservable(): Observable<T[]>;\r\n }\r\n interface ArrayConstructor {\r\n search<T = any>(items: T[], searchText: string | number, fields?: Extract<keyof T, string> | Extract<keyof T, string>[]): T[];\r\n union<T = any>(key: Extract<keyof T, string>, ...args: T[][]): T[];\r\n toObject<T = any>(items: T[], key?: string): { [key: string]: T };\r\n sum<T = any>(items: T[], key: Extract<keyof T, string>): number;\r\n }\r\n}\r\n\r\nArray.prototype.search = function <T = any>(searchText: any, fields?: string | string[]): T[] {\r\n const items: T[] = this;\r\n if (!searchText?.toString()) {\r\n return items;\r\n }\r\n if (Array.isArray(fields)) {\r\n const fs = fields.filter(e => e !== undefined && e !== null && e !== '');\r\n if (!fs.length) {\r\n return items.filter(item => item !== undefined && item !== null && String.aliasIncludes(item, searchText));\r\n }\r\n return items.filter(item => item !== undefined && item !== null && fs.some(field => String.aliasIncludes(item[field], searchText)));\r\n }\r\n if (!fields) {\r\n return items.filter(item => item !== undefined && item !== null && String.aliasIncludes(item, searchText));\r\n }\r\n return items.filter(item => item !== undefined && item !== null && String.aliasIncludes(item[fields], searchText));\r\n};\r\n\r\nArray.prototype.paging = function <T = any>(pageSize: number, page: number = 0): T[] {\r\n const items: T[] = this;\r\n return items.filter((item, index) => {\r\n return index >= page * pageSize && index < (page + 1) * pageSize;\r\n });\r\n};\r\n\r\nArray.prototype.toObject = function <T = any>(key: string): { [key: string]: T } {\r\n const items: T[] = this;\r\n if (!key) {\r\n return items\r\n .filter(item => item !== undefined && item !== null)\r\n .reduce((obj, item) => {\r\n obj[item?.toString()] = item;\r\n return obj;\r\n }, {});\r\n }\r\n return items\r\n .filter(item => item !== undefined && item !== null)\r\n .reduce((obj, item) => {\r\n obj[item[key]?.toString()] = item;\r\n return obj;\r\n }, {});\r\n};\r\n\r\nArray.prototype.union = function <T = any>(key?: string, ...args: T[][]) {\r\n let results: T[] = this;\r\n const filterUnion = <T = any>(val: T, index: number, self: T[]) =>\r\n val !== undefined && val !== null && self.findIndex((e: { [x: string]: any }) => (!!key ? e[key] === val[key] : e === val)) === index;\r\n if (!args?.length) {\r\n return results.filter(filterUnion);\r\n }\r\n for (const arg of args) {\r\n if (Array.isArray(arg)) {\r\n results = [...results, ...arg].filter(filterUnion);\r\n }\r\n }\r\n return results;\r\n};\r\n\r\nArray.prototype.asObservable = function <T = any>() {\r\n const items: T[] = this;\r\n return of(items);\r\n};\r\n\r\nArray.search = <T = any>(items: T[], searchText: string | number, fields?: Extract<keyof T, string> | Extract<keyof T, string>[]) => {\r\n if (!Array.isArray(items)) {\r\n return [];\r\n }\r\n return items.search(searchText, fields);\r\n};\r\n\r\nArray.union = <T = any>(key: Extract<keyof T, string>, ...args: T[][]) => {\r\n return [].union(key, ...args);\r\n};\r\n\r\nArray.toObject = <T>(items: T[], key?: string): { [key: string]: T } => {\r\n if (!Array.isArray(items)) {\r\n return {};\r\n }\r\n return items.toObject(key);\r\n};\r\n\r\nArray.sum = <T>(items: T[], key: Extract<keyof T, string>) => {\r\n return items?.map(e => +e[key] || 0).reduce((current, next) => current + next, 0);\r\n};\r\n","export { };\r\n\r\ndeclare global {\r\n interface Date {\r\n begin(): Date;\r\n end(): Date;\r\n addMiliseconds(miliseconds: number): Date;\r\n addHours(hours: number): Date;\r\n addDays(days: number): Date;\r\n addMonths(months: number): Date;\r\n toFormat(format: string): string;\r\n }\r\n interface DateConstructor {\r\n equal(date1: any, date2: any): boolean;\r\n parseFrom(value: any, format: string): Date;\r\n isDate(value: any): boolean;\r\n toFormat(value: any, format: string): string;\r\n addMiliseconds(value: any, miliseconds: number): Date;\r\n addHours(value: any, hours: number): Date;\r\n addDays(value: any, days: number): Date;\r\n addMonths(value: any, months: number): Date;\r\n begin(value: any): Date;\r\n end(value: any): Date;\r\n diffDays(from: any, to: any): number;\r\n }\r\n}\r\n\r\nDate.equal = (date1: any, date2: any) => {\r\n if (!Date.isDate(date1) && !Date.isDate(date2)) {\r\n return true;\r\n }\r\n if (!Date.isDate(date1) || !Date.isDate(date2)) {\r\n return false;\r\n }\r\n return new Date(date1).getTime() === new Date(date2).getTime();\r\n};\r\n\r\nDate.parseFrom = (value: any, format: string) => {\r\n if (!value) {\r\n return null;\r\n }\r\n if (!format) {\r\n return null;\r\n }\r\n value = value.toString();\r\n const dmy = format.indexOf('dd') > -1 && format.indexOf('MM') > -1 && format.indexOf('yyyy') > -1;\r\n const hms = format.indexOf('HH') > -1 || format.indexOf('mm') > -1 || format.indexOf('ss') > -1;\r\n let strDate = '';\r\n if (dmy) {\r\n const dd = value.substr(format.indexOf('dd'), 'dd'.length);\r\n const MM = value.substr(format.indexOf('MM'), 'MM'.length);\r\n const yyyy = value.substr(format.indexOf('yyyy'), 'yyyy'.length);\r\n if (+yyyy > 0 && +MM > 0 && +dd > 0) {\r\n strDate += `${MM}/${dd}/${yyyy}`;\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n const today = new Date();\r\n const yyyy = today.getFullYear().toString();\r\n const MM = (today.getMonth() + 1).toString().padStart(2, '0');\r\n const dd = today.getDate().toString().padStart(2, '0');\r\n strDate += `${MM}/${dd}/${yyyy}`;\r\n }\r\n if (hms) {\r\n const HH = format.indexOf('HH') > -1 ? value.substr(format.indexOf('HH'), 'HH'.length) : '00';\r\n const mm = format.indexOf('mm') > -1 ? value.substr(format.indexOf('mm'), 'mm'.length) : '00';\r\n const ss = format.indexOf('ss') > -1 ? value.substr(format.indexOf('ss'), 'ss'.length) : '00';\r\n strDate += ` ${HH || '00'}:${mm || '00'}:${ss || '00'}`;\r\n }\r\n if (!Date.isDate(strDate)) {\r\n return null;\r\n }\r\n return new Date(strDate);\r\n};\r\n\r\nDate.isDate = (value: any) => {\r\n if (!value) {\r\n return false;\r\n }\r\n const date = new Date(value);\r\n return !isNaN(date.getTime());\r\n};\r\n\r\nDate.toFormat = (value: any, format: string): string => {\r\n if (!Date.isDate(value)) {\r\n return '';\r\n }\r\n const date: Date = new Date(value);\r\n return date.toFormat(format);\r\n};\r\n\r\nDate.addMiliseconds = (value: any, miliseconds: number): Date => {\r\n if (!Date.isDate(value)) {\r\n return null;\r\n }\r\n const date: Date = new Date(value);\r\n return date.addMiliseconds(miliseconds);\r\n};\r\n\r\nDate.addHours = (value: any, hours: number): Date => {\r\n if (!Date.isDate(value)) {\r\n return null;\r\n }\r\n const date: Date = new Date(value);\r\n return date.addHours(hours);\r\n};\r\n\r\nDate.addDays = (value: any, days: number): Date => {\r\n if (!Date.isDate(value)) {\r\n return null;\r\n }\r\n const date: Date = new Date(value);\r\n return date.addDays(days);\r\n};\r\n\r\nDate.addMonths = (value: any, months: number): Date => {\r\n if (!Date.isDate(value)) {\r\n return null;\r\n }\r\n const date: Date = new Date(value);\r\n return date.addMonths(months);\r\n};\r\n\r\nDate.begin = (value: any) => {\r\n if (!Date.isDate(value)) {\r\n return null;\r\n }\r\n return new Date(Date.toFormat(value, 'MM/dd/yyyy'));\r\n};\r\n\r\nDate.end = (value: any) => {\r\n if (!Date.isDate(value)) {\r\n return null;\r\n }\r\n return new Date(value).addDays(1).begin().addMiliseconds(-1);\r\n};\r\n\r\nDate.diffDays = (from: any, to: any) => {\r\n if (!Date.isDate(from) || !Date.isDate(to)) {\r\n return undefined;\r\n }\r\n const diffTime = new Date(to).getTime() - new Date(from).getTime();\r\n const diffDays = Math.round((diffTime / (1000 * 60 * 60 * 24)) * 100) / 100; \r\n return diffDays;\r\n};\r\n\r\nDate.prototype.begin = function () {\r\n return new Date(this.toFormat('MM/dd/yyyy'));\r\n};\r\n\r\nDate.prototype.end = function () {\r\n const date: Date = this;\r\n return date.addDays(1).begin().addMiliseconds(-1);\r\n};\r\n\r\nDate.prototype.addMiliseconds = function (miliseconds: number) {\r\n const date: Date = this;\r\n date.setMilliseconds(date.getMilliseconds() + miliseconds);\r\n return date;\r\n};\r\n\r\nDate.prototype.addHours = function (hours: number) {\r\n const date: Date = this;\r\n date.setHours(date.getHours() + hours);\r\n return date;\r\n};\r\n\r\nDate.prototype.addDays = function (days: number) {\r\n const date: Date = this;\r\n date.setDate(date.getDate() + days);\r\n return date;\r\n};\r\n\r\nDate.prototype.addMonths = function (months: number) {\r\n const date: Date = this;\r\n date.setMonth(date.getMonth() + months);\r\n return date;\r\n};\r\n\r\nDate.prototype.toFormat = function (format: string) {\r\n const date: Date = this;\r\n let result = format;\r\n result = result.replace('yyyy', date.getFullYear().toString());\r\n result = result.replace('MM', (date.getMonth() + 1).toString().padStart(2, '0'));\r\n result = result.replace('dd', date.getDate().toString().padStart(2, '0'));\r\n result = result.replace('HH', date.getHours().toString().padStart(2, '0'));\r\n result = result.replace('mm', date.getMinutes().toString().padStart(2, '0'));\r\n result = result.replace('ss', date.getSeconds().toString().padStart(2, '0'));\r\n return result;\r\n};\r\n","export { };\r\n\r\ndeclare global {\r\n interface NumberConstructor {\r\n toVNCurrency(value: any, digits?: number): string;\r\n isNumber(value: any): boolean;\r\n isPositiveInteger(value: any): boolean;\r\n isPositiveNumber(value: any): boolean;\r\n round(value: any, digits?: number): number;\r\n }\r\n}\r\n\r\nNumber.toVNCurrency = (value: any, digits?: number) => {\r\n value = (value ?? '').toString().replace(/,/g, '');\r\n if (!value) {\r\n return null;\r\n }\r\n const val = +value;\r\n if (!Number.isNaN(val)) {\r\n if(!digits && digits !== 0) {\r\n return val.toLocaleString('vi-VN', { maximumFractionDigits: 10 });\r\n }\r\n return val.toLocaleString('vi-VN', { maximumFractionDigits: digits });\r\n }\r\n return null;\r\n};\r\n\r\nNumber.isPositiveInteger = (value: any) => {\r\n if (!value) {\r\n return false;\r\n }\r\n const regex = /^([0-9]*)$/;\r\n return regex.test(value) && +value > 0;\r\n};\r\n\r\nNumber.isPositiveNumber = (value: any) => {\r\n if (!value) {\r\n return false;\r\n }\r\n const regex = /^([0-9]*)(\\.[0-9]+$){0,1}$/;\r\n return regex.test(value) && +value > 0;\r\n};\r\n\r\nNumber.isNumber = (value: any) => {\r\n if (value === undefined || value === null || value === '') {\r\n return false;\r\n }\r\n return !Number.isNaN(+value);\r\n};\r\n\r\nNumber.round = (value: any, digits?: number) => {\r\n digits = digits ?? 2;\r\n if (!Number.isNumber(value)) {\r\n return null;\r\n }\r\n const val = Math.pow(10, digits);\r\n return Math.round(value * val) / val;\r\n};","export { };\r\n\r\ndeclare global {\r\n interface StringConstructor {\r\n isValidEmail(value: any): boolean;\r\n isValidPhone(value: any): boolean;\r\n isValidCode(value: any): boolean;\r\n changeAliasLowerCase(alias: any): string;\r\n aliasIncludes(alias: any, searchText: any): boolean;\r\n format(template: string, ...arr: any[]): string;\r\n templateToDisplay(template: string, entity: any): string; // Convert theo format ${key}\r\n encrypt(obj: any): string;\r\n decrypt(encripted: string): any;\r\n isNullOrEmpty(value: any): boolean;\r\n isNullOrWhiteSpace(value: any): boolean;\r\n }\r\n}\r\n\r\nString.isValidEmail = (value: any) => {\r\n if (!value) {\r\n return false;\r\n }\r\n const re = /^(([^<>()\\[\\]\\.,;:\\s@\\\"]+(\\.[^<>()\\[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\r\n return re.test(value);\r\n};\r\n\r\nString.isValidPhone = (value: any) => {\r\n if (!value) {\r\n return false;\r\n }\r\n const re = /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/;\r\n return re.test(value);\r\n};\r\n\r\nString.isValidCode = (value: any) => {\r\n if (!value) {\r\n return false;\r\n }\r\n const re = /^[a-zA-Z0-9\\@\\_\\-]{2,20}$/;\r\n return re.test(value);\r\n};\r\n\r\nString.isNullOrEmpty = (value: any) => {\r\n return value === undefined || value === null || value === '';\r\n};\r\n\r\nString.isNullOrWhiteSpace = (value: any) => {\r\n return value === undefined || value === null || typeof value !== 'string' || value.match(/^ *$/) !== null;\r\n};\r\n\r\nString.changeAliasLowerCase = (alias: any) => {\r\n let str: string = alias?.toString() ?? '';\r\n str = str.toString().toLowerCase();\r\n str = str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, 'a');\r\n str = str.replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g, 'e');\r\n str = str.replace(/ì|í|ị|ỉ|ĩ/g, 'i');\r\n str = str.replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g, 'o');\r\n str = str.replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g, 'u');\r\n str = str.replace(/ỳ|ý|ỵ|ỷ|ỹ/g, 'y');\r\n str = str.replace(/đ/g, 'd');\r\n str = str.replace(/!|@|%|\\^|\\*|\\(|\\)|\\+|\\=|\\<|\\>|\\?|\\/|,|\\.|\\:|\\;|\\'|\\\"|\\&|\\#|\\[|\\]|~|\\$|_|`|-|{|}|\\||\\\\/g, ' ');\r\n str = str.replace(/ + /g, ' ');\r\n str = str.trim();\r\n return str;\r\n}\r\n\r\nString.aliasIncludes = (alias: any, searchText: any) => {\r\n return String.changeAliasLowerCase(alias).includes(String.changeAliasLowerCase(searchText));\r\n}\r\n\r\nString.format = (template: string, ...arr: any[]) => {\r\n for (let i = 0; i < arr.length; i++) {\r\n const regexp = new RegExp(`\\\\{${i}\\\\}`, 'gi');\r\n template = template.replace(regexp, arr[i]);\r\n }\r\n return template;\r\n}\r\n\r\nString.templateToDisplay = (template: string, entity: any) => {\r\n if (!template) {\r\n return template;\r\n }\r\n const regex = /\\$\\{([A-Za-z._\\-]*)\\}/g;\r\n const matches = template.match(regex) || [];\r\n for (const match of matches) {\r\n const key = match.slice(2, match.length - 1);\r\n if (key) {\r\n template = template.replace(match, entity?.[key] || '');\r\n }\r\n }\r\n return template;\r\n}\r\n\r\nconst SALT = 'cb9f4b2a-d26c-4787-a66e-e7130ee00f95';\r\n\r\nString.encrypt = (obj: any) => {\r\n obj = JSON.stringify(obj).split('');\r\n for (var i = 0, l = obj.length; i < l; i++)\r\n if (obj[i] == '{')\r\n obj[i] = '}';\r\n else if (obj[i] == '}')\r\n obj[i] = '{';\r\n return encodeURI(SALT + obj.join(''));\r\n}\r\n\r\nString.decrypt = (encripted: string) => {\r\n encripted = decodeURI(encripted);\r\n if (SALT && encripted.indexOf(SALT) != 0)\r\n throw new Error('object cannot be decrypted');\r\n const strs = encripted.substring(SALT.length).split('');\r\n for (let i = 0, l = strs.length; i < l; i++)\r\n if (strs[i] == '{')\r\n strs[i] = '}';\r\n else if (encripted[i] == '}')\r\n strs[i] = '{';\r\n return JSON.parse(strs.join(''));\r\n}\r\n","/**\r\n *\r\n * detectIncognito v1.3.0 - (c) 2022 Joe Rutkowski <Joe@dreggle.com> (https://github.com/Joe12387/detectIncognito)\r\n *\r\n **/\r\nexport const detectIncognito = (): Promise<{\r\n isPrivate: boolean;\r\n browserName: string;\r\n}> => {\r\n return new Promise( (resolve, reject) => {\r\n let browserName = 'Unknown';\r\n\r\n function __callback(isPrivate: any): void {\r\n resolve({\r\n isPrivate,\r\n browserName,\r\n });\r\n }\r\n\r\n function identifyChromium(): string {\r\n const ua = navigator.userAgent;\r\n if (ua.match(/Chrome/)) {\r\n if ((navigator as any).brave !== undefined) {\r\n return 'Brave';\r\n } else if (ua.match(/Edg/)) {\r\n return 'Edge';\r\n } else if (ua.match(/OPR/)) {\r\n return 'Opera';\r\n }\r\n return 'Chrome';\r\n } else {\r\n return 'Chromium';\r\n }\r\n }\r\n\r\n function assertEvalToString(value: any): boolean {\r\n return value === eval.toString().length;\r\n }\r\n\r\n function isSafari(): boolean {\r\n const v = navigator.vendor;\r\n return (\r\n v !== undefined && v.indexOf('Apple') === 0 && assertEvalToString(37)\r\n );\r\n }\r\n\r\n function isChrome(): boolean {\r\n const v = navigator.vendor;\r\n return (\r\n v !== undefined && v.indexOf('Google') === 0 && assertEvalToString(33)\r\n );\r\n }\r\n\r\n function isFirefox(): boolean {\r\n return (\r\n document.documentElement !== undefined &&\r\n (document as any).documentElement.style.MozAppearance !== undefined &&\r\n assertEvalToString(37)\r\n );\r\n }\r\n\r\n function isMSIE(): boolean {\r\n return (\r\n (navigator as any).msSaveBlob !== undefined && assertEvalToString(39)\r\n );\r\n }\r\n\r\n /**\r\n * Safari (Safari for iOS & macOS)\r\n **/\r\n\r\n function newSafariTest(): void {\r\n // tslint:disable-next-line:variable-name\r\n const tmp_name = String(Math.random());\r\n\r\n try {\r\n const db = window.indexedDB.open(tmp_name, 1);\r\n\r\n db.onupgradeneeded = (i) => {\r\n // @ts-ignore\r\n const res = i.target?.result;\r\n\r\n try {\r\n res.createObjectStore('test', {\r\n autoIncrement: true,\r\n // tslint:disable-next-line:new-parens\r\n }).put(new Blob);\r\n\r\n __callback(false);\r\n } catch (e) {\r\n let message = e;\r\n\r\n if (e instanceof Error) {\r\n message = e.message ?? e;\r\n }\r\n\r\n if (typeof message !== 'string') {\r\n return __callback(false);\r\n }\r\n\r\n const matchesExpectedError = /BlobURLs are not yet supported/.test(message);\r\n\r\n return __callback(matchesExpectedError);\r\n } finally {\r\n res.close();\r\n window.indexedDB.deleteDatabase(tmp_name);\r\n }\r\n };\r\n } catch (e) {\r\n return __callback(false);\r\n }\r\n }\r\n\r\n function oldSafariTest(): void {\r\n const openDB = (window as any).openDatabase;\r\n const storage = window.localStorage;\r\n try {\r\n openDB(null, null, null, null);\r\n } catch (e) {\r\n return __callback(true);\r\n }\r\n try {\r\n storage.setItem('test', '1');\r\n storage.removeItem('test');\r\n } catch (e) {\r\n return __callback(true);\r\n }\r\n return __callback(false);\r\n }\r\n\r\n function safariPrivateTest(): void {\r\n if (navigator.maxTouchPoints !== undefined) {\r\n newSafariTest();\r\n } else {\r\n oldSafariTest();\r\n }\r\n }\r\n\r\n /**\r\n * Chrome\r\n **/\r\n\r\n function getQuotaLimit(): number {\r\n const w = window as any;\r\n if (\r\n w.performance !== undefined &&\r\n w.performance.memory !== undefined &&\r\n w.performance.memory.jsHeapSizeLimit !== undefined\r\n ) {\r\n return (performance as any).memory.jsHeapSizeLimit;\r\n }\r\n return 1073741824;\r\n }\r\n\r\n // >= 76\r\n function storageQuotaChromePrivateTest(): void {\r\n (navigator as any).webkitTemporaryStorage.queryUsageAndQuota(\r\n (_: number, quota: number) => {\r\n const quotaInMib = Math.round(quota / (1024 * 1024));\r\n const quotaLimitInMib = Math.round(getQuotaLimit() / (1024 * 1024)) * 2;\r\n\r\n __callback(quotaInMib < quotaLimitInMib);\r\n },\r\n (e: any) => {\r\n reject(\r\n new Error(\r\n 'detectIncognito somehow failed to query storage quota: ' +\r\n e.message\r\n )\r\n );\r\n }\r\n );\r\n }\r\n\r\n // 50 to 75\r\n function oldChromePrivateTest(): void {\r\n const fs = (window as any).webkitRequestFileSystem;\r\n const success = () => {\r\n __callback(false);\r\n };\r\n const error = () => {\r\n __callback(true);\r\n };\r\n fs(0, 1, success, error);\r\n }\r\n\r\n function chromePrivateTest(): void {\r\n if (self.Promise !== undefined && (self.Promise as any).allSettled !== undefined) {\r\n storageQuotaChromePrivateTest();\r\n } else {\r\n oldChromePrivateTest();\r\n }\r\n }\r\n\r\n /**\r\n * Firefox\r\n **/\r\n\r\n function firefoxPrivateTest(): void {\r\n __callback(navigator.serviceWorker === undefined);\r\n }\r\n\r\n /**\r\n * MSIE\r\n **/\r\n\r\n function msiePrivateTest(): void {\r\n __callback(window.indexedDB === undefined);\r\n }\r\n\r\n function main(): void {\r\n if (isSafari()) {\r\n browserName = 'Safari';\r\n safariPrivateTest();\r\n } else if (isChrome()) {\r\n browserName = identifyChromium();\r\n chromePrivateTest();\r\n } else if (isFirefox()) {\r\n browserName = 'Firefox';\r\n firefoxPrivateTest();\r\n } else if (isMSIE()) {\r\n browserName = 'Internet Explorer';\r\n msiePrivateTest();\r\n } else {\r\n reject(new Error('detectIncognito cannot determine the browser'));\r\n }\r\n }\r\n\r\n main();\r\n });\r\n};\r\n","import { detectIncognito } from '../others/detectIncognito';\r\n\r\nexport { };\r\n// declare var Date: DateConstructor;\r\ninterface SdUtilityContructor {\r\n upload: (option?: {\r\n extensions?: string[];\r\n maxSizeInMb?: number;\r\n validator?: (fileName: string) => string;\r\n }) => Promise<File | null>;\r\n download: (filePath: string, fileName?: string) => void;\r\n downloadBlob: (blob: Blob, fileName?: string) => void;\r\n changeAliasLowerCase: (alias: string) => string;\r\n copyToClipboard: (text: string) => void;\r\n allWithPaging: <T = any>(func: (pageSize: number, pageNumber: number) => Promise<{\r\n items: T[];\r\n total: number;\r\n }>, defaultPageSize?: number) => Promise<T[]>;\r\n isPrivateMode: () => Promise<boolean>;\r\n}\r\n\r\n\r\nconst upload = (option?: {\r\n extensions?: string[],\r\n maxSizeInMb?: number,\r\n validator?: (fileName: string) => string\r\n}) => {\r\n const uploadId = 'U1e09c1c0-b647-437e-995e-d7a1a1b60550';\r\n const promise = new Promise<File | null>((resolve, reject) => {\r\n const body = document.getElementsByTagName('body')?.[0];\r\n if (!body) {\r\n resolve(null);\r\n return;\r\n }\r\n const existedElement = document.getElementById(uploadId);\r\n if (existedElement) {\r\n existedElement.remove();\r\n }\r\n const element = document.createElement('input');\r\n element.setAttribute('id', uploadId);\r\n element.setAttribute('type', 'file');\r\n element.style.display = 'none';\r\n body.appendChild(element);\r\n element.addEventListener('change', (evt: any) => {\r\n try {\r\n const target = evt.target as DataTransfer;\r\n const file = target.files.item(0);\r\n if (file) {\r\n const lastDot = file.name.lastIndexOf('.');\r\n if (lastDot === -1) {\r\n throw new Error(`File không đúng định dạng`);\r\n }\r\n const extension = file.name.substring(lastDot + 1);\r\n if (option) {\r\n if (option.extensions?.length && !option.extensions.some(e => e.toUpperCase() === extension.toUpperCase())) {\r\n throw new Error(`File không đúng định dạng`);\r\n }\r\n if (option.maxSizeInMb && option.maxSizeInMb > 0 && option.maxSizeInMb * 1024 * 1024 < file.size) {\r\n const message = `[${file.name}] Dung lượng tối đa ${option.maxSizeInMb} Mbs`;\r\n throw new Error(message);\r\n }\r\n if (option.validator && option.validator(file.name)) {\r\n const message = option.validator(file.name);\r\n throw new Error(message);\r\n }\r\n }\r\n resolve(file);\r\n }\r\n } catch (error) {\r\n reject(error);\r\n }\r\n });\r\n element.click();\r\n });\r\n return promise;\r\n}\r\n\r\nconst generateFileName = (fileName?: string) => {\r\n if (!fileName) {\r\n return `File_${new Date().toFormat('yyyy_MM_dd_HH_mm')}`;\r\n }\r\n const strs = fileName.split('.');\r\n if (strs.length > 1) {\r\n const ext = strs.splice(strs.length - 1, 1)[0];\r\n return `${strs.join('.')}_${new Date().toFormat('yyyy_MM_dd_HH_mm')}.${ext}`;\r\n }\r\n return `${fileName}_${new Date().toFormat('yyyy_MM_dd_HH_mm')}`;\r\n}\r\n\r\nconst download = (filePath: string, fileName?: string) => {\r\n const link = document.createElement('a');\r\n link.download = generateFileName(fileName);\r\n link.href = filePath;\r\n link.style.visibility = 'hidden';\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n}\r\n\r\nconst downloadBlob = (blob: Blob, fileName?: string) => {\r\n try {\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n if (link.download !== undefined) { // feature detection\r\n link.download = generateFileName(fileName);\r\n link.href = url;\r\n link.style.visibility = 'hidden';\r\n document.body.appendChild(link);\r\n link.click();\r\n window.URL.revokeObjectURL(url);\r\n link.remove();\r\n }\r\n } catch (e) {\r\n console.error('BlobToSaveAs error', e);\r\n }\r\n}\r\n\r\nconst changeAliasLowerCase = (alias: string) => {\r\n let str = alias?.toString() ?? '';\r\n str = str.toString().toLowerCase();\r\n str = str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, 'a');\r\n str = str.replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g, 'e');\r\n str = str.replace(/ì|í|ị|ỉ|ĩ/g, 'i');\r\n str = str.replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g, 'o');\r\n str = str.replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g, 'u');\r\n str = str.replace(/ỳ|ý|ỵ|ỷ|ỹ/g, 'y');\r\n str = str.replace(/đ/g, 'd');\r\n str = str.replace(/!|@|%|\\^|\\*|\\(|\\)|\\+|\\=|\\<|\\>|\\?|\\/|,|\\.|\\:|\\;|\\'|\\\"|\\&|\\#|\\[|\\]|~|\\$|_|`|-|{|}|\\||\\\\/g, ' ');\r\n str = str.replace(/ + /g, ' ');\r\n str = str.trim();\r\n return str;\r\n}\r\n\r\nconst copyToClipboard = (text: string) => {\r\n navigator.clipboard.writeText(text);\r\n}\r\n\r\nconst allWithPaging = async <T = any>(func: (pageSize: number, pageNumber: number) => Promise<{ items: T[], total: number }>, defaultPageSize?: number): Promise<T[]> => {\r\n let pageSize = defaultPageSize || 1000;\r\n let pageNumber = 0;\r\n let count = 0;\r\n let items: T[] = [];\r\n while (true) {\r\n const res = await func(pageSize, pageNumber);\r\n if (Array(res?.items) && res?.total > 0) {\r\n items = [...items, ...res.items];\r\n count += res.items.length;\r\n pageNumber++;\r\n if (count >= res.total || !res.items?.length) {\r\n return items;\r\n }\r\n } else {\r\n return [];\r\n }\r\n }\r\n}\r\n\r\nconst isPrivateMode = async (): Promise<boolean> => {\r\n const check = await detectIncognito();\r\n return check.isPrivate;\r\n}\r\n\r\nvar SdUtility: SdUtilityContructor = {\r\n upload,\r\n download,\r\n downloadBlob,\r\n changeAliasLowerCase,\r\n copyToClipboard,\r\n allWithPaging,\r\n isPrivateMode,\r\n};\r\n\r\ndeclare global {\r\n var SdUtility: SdUtilityContructor;\r\n}\r\nglobalThis.SdUtility = SdUtility;\r\n","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport interface IFirebaseConfiguration {\r\n functionUrl: string;\r\n project: string;\r\n env: string;\r\n folder?: string | (() => string);\r\n}\r\n\r\nexport const FIREBASE_CONFIG = new InjectionToken<IFirebaseConfiguration>('sd.firebase.configuration');","import { InjectionToken } from \"@angular/core\";\r\nimport { MatFormFieldAppearance } from \"@angular/material/form-field\";\r\n\r\nexport interface IFormConfiguration {\r\n appearance?: MatFormFieldAppearance; \r\n}\r\n\r\nexport const FORM_CONFIG = new InjectionToken<IFormConfiguration>('sd.form.configuration');","import { FormControl, AsyncValidatorFn, ValidatorFn } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nexport class SdFormControl extends FormControl {\r\n sdChanges: Subject<boolean> = new Subject<boolean>();\r\n untouchChanges: Subject<boolean> = new Subject<boolean>();\r\n touchChanges: Subject<boolean> = new Subject<boolean>();\r\n pristineChanges: Subject<boolean> = new Subject<boolean>();\r\n constructor(\r\n formState?: Object,\r\n validator: ValidatorFn | ValidatorFn[] = null,\r\n asyncValidator: AsyncValidatorFn | AsyncValidatorFn[] = null\r\n ) {\r\n super(formState, validator, asyncValidator);\r\n }\r\n\r\n markAsUntouched({ onlySelf }: { onlySelf?: boolean } = {}): void {\r\n super.markAsUntouched({ onlySelf });\r\n this.untouchChanges.next(true);\r\n this.sdChanges.next(true);\r\n }\r\n\r\n markAsTouched({ onlySelf }: { onlySelf?: boolean } = {}): void {\r\n super.markAsTouched({ onlySelf });\r\n this.touchChanges.next(true);\r\n this.sdChanges.next(true);\r\n }\r\n\r\n markAsPristine(opts?: {\r\n onlySelf?: boolean;\r\n }): void {\r\n super.markAsPristine(opts);\r\n this.pristineChanges.next(true);\r\n this.sdChanges.next(true);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdBrowserService {\r\n browerName: string;\r\n browserVersion: string;\r\n get isChrome() { return this.browerName === 'Chrome'; }\r\n get isFirefox() { return this.browerName === 'Firefox'; }\r\n get isSafari() { return this.browerName === 'Safari'; }\r\n constructor() {\r\n const browserNameAndVersion = this.#getBrowserNameAndVersion();\r\n this.browerName = browserNameAndVersion.name;\r\n this.browserVersion = browserNameAndVersion.version;\r\n }\r\n\r\n #getBrowserNameAndVersion = () => {\r\n const ua = navigator.userAgent;\r\n let M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [];\r\n let tem: RegExpMatchArray;\r\n if (/trident/i.test(M[1])) {\r\n tem = /\\brv[ :]+(\\d+)/g.exec(ua) || [];\r\n return { name: 'IE', version: (tem[1] || '') };\r\n }\r\n if (M[1] === 'Chrome') {\r\n tem = ua.match(/\\bEdg\\/(\\d+)/);\r\n if (tem != null) { return { name: 'Edge(Chromium)', version: tem[1] }; }\r\n tem = ua.match(/\\bOPR\\/(\\d+)/);\r\n if (tem != null) { return { name: 'Opera', version: tem[1] }; }\r\n }\r\n M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?'];\r\n tem = ua.match(/version\\/(\\d+)/i);\r\n if (tem != null) { M.splice(1, 1, tem[1]); }\r\n return {\r\n name: M[0],\r\n version: M[1]\r\n };\r\n }\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdViewDef]'\r\n})\r\nexport class SdViewDefDirective {\r\n // @Input() sdViewDef: string;\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Directive, Input, TemplateRef, ViewContainerRef } from \"@angular/core\";\r\n@Directive({\r\n selector: '[sdLet]',\r\n})\r\nexport class SdLetDirective {\r\n @Input()\r\n set sdLet(context: any) {\r\n this.context.$implicit = this.context.sdLet = context;\r\n this.#updateView();\r\n }\r\n context: any = {};\r\n\r\n constructor(private vcRef: ViewContainerRef, private templateRef: TemplateRef<any>) { }\r\n\r\n #updateView = () => {\r\n this.vcRef.clear();\r\n this.vcRef.createEmbeddedView(this.templateRef, this.context);\r\n }\r\n}","import { Directive, ElementRef, HostListener, OnInit, Renderer2 } from \"@angular/core\";\r\nimport { SdBrowserService } from '../services/browser.service';\r\n\r\n@Directive({\r\n selector: \"[sdScroll]\",\r\n})\r\nexport class SdScrollDirective implements OnInit {\r\n #overflow: 'hidden' | 'auto' | 'overlay' = 'hidden';\r\n @HostListener('mouseover')\r\n onMouseOver() {\r\n this.#overflow = this.browserService.isFirefox ? 'auto' : 'overlay';\r\n this.renderer.setStyle(this.elementRef.nativeElement, 'overflow', this.#overflow);\r\n }\r\n\r\n @HostListener('mouseout')\r\n onMouseOut() {\r\n this.#overflow = 'hidden';\r\n this.renderer.setStyle(this.elementRef.nativeElement, 'overflow', this.#overflow);\r\n }\r\n constructor(\r\n private elementRef: ElementRef,\r\n private renderer: Renderer2,\r\n private browserService: SdBrowserService) { }\r\n\r\n ngOnInit(): void {\r\n this.renderer.setStyle(this.elementRef.nativeElement, '-webkit-transform', 'translate3d(0, 0, 0)');\r\n this.renderer.setStyle(this.elementRef.nativeElement, 'overflow', this.#overflow);\r\n }\r\n\r\n scrollTop = () => {\r\n setTimeout(() => {\r\n if (this.elementRef?.nativeElement) {\r\n this.elementRef.nativeElement.scrollTop = 0; \r\n }\r\n }, 1);\r\n }\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdSuffix]'\r\n})\r\nexport class SdSuffixDirective {\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Directive, HostBinding, InjectionToken, Input } from '@angular/core';\r\n\r\nexport const SD_SUFIX_ICON = new InjectionToken<SdSuffixIconDirective>('SdSuffixIconDirective');\r\n@Directive({\r\n selector: '[sdSuffixIcon]',\r\n providers: [{ provide: SD_SUFIX_ICON, useExisting: SdSuffixIconDirective }], // Dùng để sử dụng với ng-content thay vì templateRef\r\n host: {\r\n '[class.sd-suffix-icon]': 'true',\r\n '[class.sd-hover]': 'true',\r\n '[class.pointer]': 'true',\r\n },\r\n})\r\nexport class SdSuffixIconDirective {\r\n constructor() {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdLabelDef]'\r\n})\r\nexport class SdLabelDefDirective {\r\n // @Input() sdLableDef: string;\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import {\r\n Directive,\r\n Input,\r\n IterableChangeRecord,\r\n IterableDiffer,\r\n IterableDiffers,\r\n TemplateRef,\r\n ViewContainerRef,\r\n ViewRef\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdFor]'\r\n})\r\nexport class SdForDirective {\r\n private items: any[] = [];\r\n private viewRefsMap: Map<any, ViewRef> = new Map<any, ViewRef>();\r\n private _diffrence: IterableDiffer<any> | undefined;\r\n\r\n constructor(\r\n private templateRef: TemplateRef<any>,\r\n private viewContainer: ViewContainerRef,\r\n private differs: IterableDiffers\r\n ) {}\r\n\r\n @Input('sdForOf')\r\n public set sdForOf(items: any) {\r\n this.items = items;\r\n if (items) {\r\n this._diffrence = this.differs.find(items).create();\r\n }\r\n //Clear any existing items\r\n this.viewContainer.clear();\r\n }\r\n\r\n @Input('sdForItemsAtOnce')\r\n public itemsAtOnce: number = 20;\r\n\r\n @Input('sdForIntervalLength')\r\n public intervalLength: number = 50;\r\n\r\n public ngDoCheck(): void {\r\n if (this._diffrence) {\r\n const changes = this._diffrence.diff(this.items);\r\n if (changes) {\r\n const itemsAdded: any[] = [];\r\n changes.forEachAddedItem(item => {\r\n itemsAdded.push(item);\r\n });\r\n\r\n this.progressiveRender(itemsAdded);\r\n\r\n changes.forEachRemovedItem(item => {\r\n const mapView = this.viewRefsMap.get(item.item) as ViewRef;\r\n const viewIndex = this.viewContainer.indexOf(mapView);\r\n this.viewContainer.remove(viewIndex);\r\n this.viewRefsMap.delete(item.item);\r\n });\r\n }\r\n }\r\n }\r\n\r\n private progressiveRender(items: IterableChangeRecord<any>[]) {\r\n let interval: any;\r\n let start = 0;\r\n let end = start + this.itemsAtOnce;\r\n if (end > items.length) {\r\n end = items.length;\r\n }\r\n this.renderItems(items, start, end);\r\n\r\n interval = setInterval(() => {\r\n start = end;\r\n end = start + this.itemsAtOnce;\r\n if (end > items.length) {\r\n end = items.length;\r\n }\r\n this.renderItems(items, start, end);\r\n if (start >= items.length) {\r\n clearInterval(interval);\r\n }\r\n }, this.intervalLength);\r\n }\r\n\r\n private renderItems(\r\n items: IterableChangeRecord<any>[],\r\n start: number,\r\n end: number\r\n ) {\r\n items.slice(start, end).forEach(item => {\r\n const embeddedView = this.viewContainer.createEmbeddedView(\r\n this.templateRef,\r\n {\r\n $implicit: item.item\r\n },\r\n item.currentIndex || 0\r\n );\r\n this.viewRefsMap.set(item.item, embeddedView);\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SdViewDefDirective } from './directives/view-def.directive';\r\nimport { SdLetDirective } from './directives/sd-let.directive';\r\nimport { SdScrollDirective } from './directives/sd-scroll.directive';\r\nimport { SdSuffixDirective } from './directives/sd-suffix.directive';\r\nimport { SdLabelDefDirective } from './directives/sd-lable.directive';\r\nimport { SdForDirective } from './directives/sd-for.directive';\r\nimport { SdSuffixIconDirective } from './directives/sd-suffix-icon.directive';\r\n// import './typings';\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n SdForDirective,\r\n SdViewDefDirective,\r\n SdLetDirective,\r\n SdScrollDirective,\r\n SdSuffixDirective,\r\n SdSuffixIconDirective,\r\n SdLabelDefDirective\r\n ],\r\n exports: [\r\n SdForDirective,\r\n SdViewDefDirective,\r\n SdLetDirective,\r\n SdScrollDirective,\r\n SdSuffixDirective,\r\n SdSuffixIconDirective,\r\n SdLabelDefDirective\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdCommonModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {SdForDirective as ɵa} from './src/lib/directives/sd-for.directive';"],"names":["of","InjectionToken","Subject","FormControl","Injectable","Directive","TemplateRef","ViewContainerRef","Input","ElementRef","Renderer2","HostListener","IterableDiffers","NgModule","CommonModule"],"mappings":"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"}