@sd-angular/core 1.3.80 → 1.3.81
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/sd-angular-core-common.umd.js +1 -1
- package/bundles/sd-angular-core-common.umd.js.map +1 -1
- package/bundles/sd-angular-core-common.umd.min.js +1 -1
- package/bundles/sd-angular-core-common.umd.min.js.map +1 -1
- package/esm2015/common/src/lib/typings/utility.extension.js +2 -2
- package/fesm2015/sd-angular-core-common.js +1 -1
- package/fesm2015/sd-angular-core-common.js.map +1 -1
- package/package.json +1 -1
- package/{sd-angular-core-1.3.80.tgz → sd-angular-core-1.3.81.tgz} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"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/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-lable.directive.ts","../../../../projects/sd-core/common/src/lib/common.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","pop","length","push","create","__values","o","s","m","i","__read","r","ar","error","__spread","arguments","concat","__classPrivateFieldGet","receiver","state","kind","has","get","__classPrivateFieldSet","set","search","searchText","fields","items","toString","isArray","fs_1","filter","item","some","field","String","aliasIncludes","paging","pageSize","page","index","toObject","key","reduce","obj","_a","union","args","_i","results","filterUnion","val","self","findIndex","args_1","args_1_1","arg","asObservable","of","Date","equal","date1","date2","isDate","getTime","parseFrom","format","dmy","indexOf","hms","strDate","dd","substr","MM","yyyy","today","getFullYear","getMonth","padStart","getDate","date","isNaN","toFormat","addMiliseconds","miliseconds","addHours","hours","addDays","days","addMonths","months","begin","end","diffDays","from","to","diffTime","Math","round","setMilliseconds","getMilliseconds","setHours","getHours","setDate","setMonth","replace","getMinutes","getSeconds","Number","toVNCurrency","digits","toLocaleString","maximumFractionDigits","isPositiveInteger","test","isPositiveNumber","isNumber","pow","isValidEmail","isValidPhone","isValidCode","isNullOrEmpty","isNullOrWhiteSpace","match","changeAliasLowerCase","alias","str","toLowerCase","trim","includes","template","arr","regexp","RegExp","templateToDisplay","entity","matches","matches_1","matches_1_1","slice","SALT","encrypt","l","JSON","stringify","split","encodeURI","join","decrypt","encripted","decodeURI","Error","strs","substring","parse","upload","option","uploadId","document","getElementsByTagName","existedElement","getElementById","remove","element","createElement","setAttribute","style","display","appendChild","addEventListener","evt","file","target","files","lastDot","name","lastIndexOf","extension_1","extensions","toUpperCase","maxSizeInMb","size","message","validator","click","download","filePath","fileName","link","href","visibility","downloadBlob","blob","url","window","URL","createObjectURL","undefined","revokeObjectURL","console","copyToClipboard","text","navigator","clipboard","writeText","allWithPaging","func","defaultPageSize","pageNumber","count","res","_b","total","SdUtility","globalThis","FIREBASE_CONFIG","InjectionToken","FORM_CONFIG","SdFormControl","formState","asyncValidator","_this","_super","sdChanges","Subject","untouchChanges","touchChanges","pristineChanges","__","constructor","__extends","markAsUntouched","onlySelf","markAsTouched","markAsPristine","opts","FormControl","SdBrowserService","_getBrowserNameAndVersion","tem","ua","userAgent","M","version","exec","appName","appVersion","splice","browserNameAndVersion","browerName","browserVersion","defineProperty","Injectable","providedIn","templateRef","Directive","selector","TemplateRef","SdLetDirective","vcRef","context","_updateView","clear","createEmbeddedView","$implicit","sdLet","ViewContainerRef","Input","SdScrollDirective","elementRef","renderer","browserService","_overflow","scrollTop","setTimeout","nativeElement","onMouseOver","isFirefox","setStyle","onMouseOut","ngOnInit","ElementRef","Renderer2","HostListener","NgModule","imports","CommonModule","declarations","SdViewDefDirective","SdSuffixDirective","SdLabelDefDirective","exports","providers"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (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?: string | string[]): T[];\r\n union<T = any>(key: string, ...args: T[][]): T[];\r\n toObject<T = any>(items: T[], key?: string): { [key: string]: T };\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\r\n && 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.filter(item => item !== undefined && item !== null).reduce((obj, item) => { obj[item?.toString()] = item; return obj; }, {});\r\n }\r\n return items.filter(item => item !== undefined && item !== null).reduce((obj, item) => { obj[item[key]?.toString()] = item; return obj; }, {});\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[]) => 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?: string | 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: 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\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","export { };\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}\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 download = (filePath: string, fileName?: string) => {\r\n const link = document.createElement('a');\r\n link.download = `${fileName || 'File'}_${new Date().toFormat('yyyy_MM_dd_HH_mm')}`;\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 = `${fileName || 'File'}_${new Date().toFormat('yyyy_MM_dd_HH_mm')}`;\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\nvar SdUtility: SdUtilityContructor = {\r\n upload,\r\n download,\r\n downloadBlob,\r\n changeAliasLowerCase,\r\n copyToClipboard,\r\n allWithPaging\r\n};\r\n\r\ndeclare global {\r\n var SdUtility: SdUtilityContructor;\r\n}\r\nglobalThis.SdUtility = SdUtility;","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, 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 { 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\n// import './typings';\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n SdViewDefDirective,\r\n SdLetDirective,\r\n SdScrollDirective,\r\n SdSuffixDirective,\r\n SdLabelDefDirective\r\n ],\r\n exports: [\r\n SdViewDefDirective,\r\n SdLetDirective,\r\n SdScrollDirective,\r\n SdSuffixDirective,\r\n SdLabelDefDirective\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdCommonModule { }\r\n"]}
|
|
1
|
+
{"version":3,"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/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-lable.directive.ts","../../../../projects/sd-core/common/src/lib/common.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","pop","length","push","create","__values","o","s","m","i","__read","r","ar","error","__spread","arguments","concat","__classPrivateFieldGet","receiver","state","kind","has","get","__classPrivateFieldSet","set","search","searchText","fields","items","toString","isArray","fs_1","filter","item","some","field","String","aliasIncludes","paging","pageSize","page","index","toObject","key","reduce","obj","_a","union","args","_i","results","filterUnion","val","self","findIndex","args_1","args_1_1","arg","asObservable","of","Date","equal","date1","date2","isDate","getTime","parseFrom","format","dmy","indexOf","hms","strDate","dd","substr","MM","yyyy","today","getFullYear","getMonth","padStart","getDate","date","isNaN","toFormat","addMiliseconds","miliseconds","addHours","hours","addDays","days","addMonths","months","begin","end","diffDays","from","to","diffTime","Math","round","setMilliseconds","getMilliseconds","setHours","getHours","setDate","setMonth","replace","getMinutes","getSeconds","Number","toVNCurrency","digits","toLocaleString","maximumFractionDigits","isPositiveInteger","test","isPositiveNumber","isNumber","pow","isValidEmail","isValidPhone","isValidCode","isNullOrEmpty","isNullOrWhiteSpace","match","changeAliasLowerCase","alias","str","toLowerCase","trim","includes","template","arr","regexp","RegExp","templateToDisplay","entity","matches","matches_1","matches_1_1","slice","SALT","encrypt","l","JSON","stringify","split","encodeURI","join","decrypt","encripted","decodeURI","Error","strs","substring","parse","upload","option","uploadId","document","getElementsByTagName","existedElement","getElementById","remove","element","createElement","setAttribute","style","display","appendChild","addEventListener","evt","file","target","files","lastDot","name","lastIndexOf","extension_1","extensions","toUpperCase","maxSizeInMb","size","message","validator","click","download","filePath","fileName","link","href","visibility","downloadBlob","blob","url","window","URL","createObjectURL","undefined","revokeObjectURL","console","copyToClipboard","text","navigator","clipboard","writeText","allWithPaging","func","defaultPageSize","pageNumber","count","res","_b","total","SdUtility","globalThis","FIREBASE_CONFIG","InjectionToken","FORM_CONFIG","SdFormControl","formState","asyncValidator","_this","_super","sdChanges","Subject","untouchChanges","touchChanges","pristineChanges","__","constructor","__extends","markAsUntouched","onlySelf","markAsTouched","markAsPristine","opts","FormControl","SdBrowserService","_getBrowserNameAndVersion","tem","ua","userAgent","M","version","exec","appName","appVersion","splice","browserNameAndVersion","browerName","browserVersion","defineProperty","Injectable","providedIn","templateRef","Directive","selector","TemplateRef","SdLetDirective","vcRef","context","_updateView","clear","createEmbeddedView","$implicit","sdLet","ViewContainerRef","Input","SdScrollDirective","elementRef","renderer","browserService","_overflow","scrollTop","setTimeout","nativeElement","onMouseOver","isFirefox","setStyle","onMouseOut","ngOnInit","ElementRef","Renderer2","HostListener","NgModule","imports","CommonModule","declarations","SdViewDefDirective","SdSuffixDirective","SdLabelDefDirective","exports","providers"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (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?: string | string[]): T[];\r\n union<T = any>(key: string, ...args: T[][]): T[];\r\n toObject<T = any>(items: T[], key?: string): { [key: string]: T };\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\r\n && 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.filter(item => item !== undefined && item !== null).reduce((obj, item) => { obj[item?.toString()] = item; return obj; }, {});\r\n }\r\n return items.filter(item => item !== undefined && item !== null).reduce((obj, item) => { obj[item[key]?.toString()] = item; return obj; }, {});\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[]) => 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?: string | 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: 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\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","export { };\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}\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 download = (filePath: string, fileName?: string) => {\r\n const link = document.createElement('a');\r\n link.download = `${fileName || 'File'}_${new Date().toFormat('yyyy_MM_dd_HH_mm')}`;\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 = `${new Date().toFormat('yyyy_MM_dd_HH_mm')}_${fileName || 'File'}`;\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\nvar SdUtility: SdUtilityContructor = {\r\n upload,\r\n download,\r\n downloadBlob,\r\n changeAliasLowerCase,\r\n copyToClipboard,\r\n allWithPaging\r\n};\r\n\r\ndeclare global {\r\n var SdUtility: SdUtilityContructor;\r\n}\r\nglobalThis.SdUtility = SdUtility;","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, 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 { 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\n// import './typings';\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n SdViewDefDirective,\r\n SdLetDirective,\r\n SdScrollDirective,\r\n SdSuffixDirective,\r\n SdLabelDefDirective\r\n ],\r\n exports: [\r\n SdViewDefDirective,\r\n SdLetDirective,\r\n SdScrollDirective,\r\n SdSuffixDirective,\r\n SdLabelDefDirective\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdCommonModule { }\r\n"]}
|
|
@@ -68,7 +68,7 @@ const downloadBlob = (blob, fileName) => {
|
|
|
68
68
|
const url = window.URL.createObjectURL(blob);
|
|
69
69
|
const link = document.createElement('a');
|
|
70
70
|
if (link.download !== undefined) { // feature detection
|
|
71
|
-
link.download = `${
|
|
71
|
+
link.download = `${new Date().toFormat('yyyy_MM_dd_HH_mm')}_${fileName || 'File'}`;
|
|
72
72
|
link.href = url;
|
|
73
73
|
link.style.visibility = 'hidden';
|
|
74
74
|
document.body.appendChild(link);
|
|
@@ -135,4 +135,4 @@ var SdUtility = {
|
|
|
135
135
|
};
|
|
136
136
|
globalThis.SdUtility = SdUtility;
|
|
137
137
|
export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5 };
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5leHRlbnNpb24uanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2NvbW1vbi8iLCJzb3VyY2VzIjpbInNyYy9saWIvdHlwaW5ncy91dGlsaXR5LmV4dGVuc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBbUJBLE1BQU0sTUFBTSxHQUFHLENBQUMsTUFJZixFQUFFLEVBQUU7SUFDSCxNQUFNLFFBQVEsR0FBRyx1Q0FBdUMsQ0FBQztJQUN6RCxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBYyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTs7UUFDM0QsTUFBTSxJQUFJLFNBQUcsUUFBUSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQywwQ0FBRyxDQUFDLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2QsT0FBTztTQUNSO1FBQ0QsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6RCxJQUFJLGNBQWMsRUFBRTtZQUNsQixjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDekI7UUFDRCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFRLEVB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RyxDQUFFLEtBQUssQ0FBQyxJQUFJLENBQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLEtBQUssSUFBRyxDQUFDLEVBQUU7WUFDdkMsS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzFCLFVBQVUsRUFBRSxDQUFDO1lBQ2IsSUFBSSxLQUFLLElBQUksR0FBRyxDQUFDLEtBQUssSUFBSSxRQUFDLEdBQUcsQ0FBQyxLQUFLLDBDQUFFLE1BQU0sQ0FBQSxFQUFFO2dCQUM1QyxPQUFPLEtBQUssQ0FBQzthQUNkO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sRUFBRSxDQUFDO1NBQ1g7S0FDRjtBQUNILENBQUMsQ0FBQSxDQUFBOztBQUVELElBQUksU0FBUyxHQUF3QjtJQUNuQyxNQUFNO0lBQ04sUUFBUTtJQUNSLFlBQVk7SUFDWixvQkFBb0I7SUFDcEIsZUFBZTtJQUNmLGFBQWE7Q0FDZCxDQUFDO0FBS0YsVUFBVSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyB9O1xyXG4vLyBkZWNsYXJlIHZhciBEYXRlOiBEYXRlQ29uc3RydWN0b3I7XHJcbmludGVyZmFjZSBTZFV0aWxpdHlDb250cnVjdG9yIHtcclxuICB1cGxvYWQ6IChvcHRpb24/OiB7XHJcbiAgICBleHRlbnNpb25zPzogc3RyaW5nW107XHJcbiAgICBtYXhTaXplSW5NYj86IG51bWJlcjtcclxuICAgIHZhbGlkYXRvcj86IChmaWxlTmFtZTogc3RyaW5nKSA9PiBzdHJpbmc7XHJcbiAgfSkgPT4gUHJvbWlzZTxGaWxlIHwgbnVsbD47XHJcbiAgZG93bmxvYWQ6IChmaWxlUGF0aDogc3RyaW5nLCBmaWxlTmFtZT86IHN0cmluZykgPT4gdm9pZFxyXG4gIGRvd25sb2FkQmxvYjogKGJsb2I6IEJsb2IsIGZpbGVOYW1lPzogc3RyaW5nKSA9PiB2b2lkO1xyXG4gIGNoYW5nZUFsaWFzTG93ZXJDYXNlOiAoYWxpYXM6IHN0cmluZykgPT4gc3RyaW5nO1xyXG4gIGNvcHlUb0NsaXBib2FyZDogKHRleHQ6IHN0cmluZykgPT4gdm9pZDtcclxuICBhbGxXaXRoUGFnaW5nOiA8VCA9IGFueT4oZnVuYzogKHBhZ2VTaXplOiBudW1iZXIsIHBhZ2VOdW1iZXI6IG51bWJlcikgPT4gUHJvbWlzZTx7XHJcbiAgICBpdGVtczogVFtdO1xyXG4gICAgdG90YWw6IG51bWJlcjtcclxuICB9PiwgZGVmYXVsdFBhZ2VTaXplPzogbnVtYmVyKSA9PiBQcm9taXNlPFRbXT5cclxufVxyXG5cclxuXHJcbmNvbnN0IHVwbG9hZCA9IChvcHRpb24/OiB7XHJcbiAgZXh0ZW5zaW9ucz86IHN0cmluZ1tdLFxyXG4gIG1heFNpemVJbk1iPzogbnVtYmVyLFxyXG4gIHZhbGlkYXRvcj86IChmaWxlTmFtZTogc3RyaW5nKSA9PiBzdHJpbmdcclxufSkgPT4ge1xyXG4gIGNvbnN0IHVwbG9hZElkID0gJ1UxZTA5YzFjMC1iNjQ3LTQzN2UtOTk1ZS1kN2ExYTFiNjA1NTAnO1xyXG4gIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZTxGaWxlIHwgbnVsbD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgY29uc3QgYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5Jyk/LlswXTtcclxuICAgIGlmICghYm9keSkge1xyXG4gICAgICByZXNvbHZlKG51bGwpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBleGlzdGVkRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHVwbG9hZElkKTtcclxuICAgIGlmIChleGlzdGVkRWxlbWVudCkge1xyXG4gICAgICBleGlzdGVkRWxlbWVudC5yZW1vdmUoKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xyXG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2lkJywgdXBsb2FkSWQpO1xyXG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnZmlsZScpO1xyXG4gICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAgYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTtcclxuICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGV2dDogYW55KSA9PiB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldCBhcyBEYXRhVHJhbnNmZXI7XHJcbiAgICAgICAgY29uc3QgZmlsZSA9IHRhcmdldC5maWxlcy5pdGVtKDApO1xyXG4gICAgICAgIGlmIChmaWxlKSB7XHJcbiAgICAgICAgICBjb25zdCBsYXN0RG90ID0gZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJyk7XHJcbiAgICAgICAgICBpZiAobGFzdERvdCA9PT0gLTEpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGaWxlIGtow7RuZyDEkcO6bmcgxJHhu4tuaCBk4bqhbmdgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnN0IGV4dGVuc2lvbiA9IGZpbGUubmFtZS5zdWJzdHJpbmcobGFzdERvdCArIDEpO1xyXG4gICAgICAgICAgaWYgKG9wdGlvbikge1xyXG4gICAgICAgICAgICBpZiAob3B0aW9uLmV4dGVuc2lvbnM/Lmxlbmd0aCAmJiAhb3B0aW9uLmV4dGVuc2lvbnMuc29tZShlID0+IGUudG9VcHBlckNhc2UoKSA9PT0gZXh0ZW5zaW9uLnRvVXBwZXJDYXNlKCkpKSB7XHJcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGaWxlIGtow7RuZyDEkcO6bmcgxJHhu4tuaCBk4bqhbmdgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAob3B0aW9uLm1heFNpemVJbk1iICYmIG9wdGlvbi5tYXhTaXplSW5NYiA+IDAgJiYgb3B0aW9uLm1heFNpemVJbk1iICogMTAyNCAqIDEwMjQgPCBmaWxlLnNpemUpIHtcclxuICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYFske2ZpbGUubmFtZX1dIER1bmcgbMaw4bujbmcgdOG7kWkgxJFhICR7b3B0aW9uLm1heFNpemVJbk1ifSBNYnNgO1xyXG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAob3B0aW9uLnZhbGlkYXRvciAmJiBvcHRpb24udmFsaWRhdG9yKGZpbGUubmFtZSkpIHtcclxuICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gb3B0aW9uLnZhbGlkYXRvcihmaWxlLm5hbWUpO1xyXG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmVzb2x2ZShmaWxlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgcmVqZWN0KGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBlbGVtZW50LmNsaWNrKCk7XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHByb21pc2U7XHJcbn1cclxuXHJcbmNvbnN0IGRvd25sb2FkID0gKGZpbGVQYXRoOiBzdHJpbmcsIGZpbGVOYW1lPzogc3RyaW5nKSA9PiB7XHJcbiAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICBsaW5rLmRvd25sb2FkID0gYCR7ZmlsZU5hbWUgfHwgJ0ZpbGUnfV8ke25ldyBEYXRlKCkudG9Gb3JtYXQoJ3l5eXlfTU1fZGRfSEhfbW0nKX1gO1xyXG4gIGxpbmsuaHJlZiA9IGZpbGVQYXRoO1xyXG4gIGxpbmsuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgbGluay5jbGljaygpO1xyXG4gIGxpbmsucmVtb3ZlKCk7XHJcbn1cclxuXHJcbmNvbnN0IGRvd25sb2FkQmxvYiA9IChibG9iOiBCbG9iLCBmaWxlTmFtZT86IHN0cmluZykgPT4ge1xyXG4gIHRyeSB7XHJcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBpZiAobGluay5kb3dubG9hZCAhPT0gdW5kZWZpbmVkKSB7IC8vIGZlYXR1cmUgZGV0ZWN0aW9uXHJcbiAgICAgIGxpbmsuZG93bmxvYWQgPSBgJHtmaWxlTmFtZSB8fCAnRmlsZSd9XyR7bmV3IERhdGUoKS50b0Zvcm1hdCgneXl5eV9NTV9kZF9ISF9tbScpfWA7XHJcbiAgICAgIGxpbmsuaHJlZiA9IHVybDtcclxuICAgICAgbGluay5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgICAgIGxpbmsuY2xpY2soKTtcclxuICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcclxuICAgICAgbGluay5yZW1vdmUoKTtcclxuICAgIH1cclxuICB9IGNhdGNoIChlKSB7XHJcbiAgICBjb25zb2xlLmVycm9yKCdCbG9iVG9TYXZlQXMgZXJyb3InLCBlKTtcclxuICB9XHJcbn1cclxuXHJcbmNvbnN0IGNoYW5nZUFsaWFzTG93ZXJDYXNlID0gKGFsaWFzOiBzdHJpbmcpID0+IHtcclxuICBsZXQgc3RyID0gYWxpYXM/LnRvU3RyaW5nKCkgPz8gJyc7XHJcbiAgc3RyID0gc3RyLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcclxuICBzdHIgPSBzdHIucmVwbGFjZSgvw6B8w6F84bqhfOG6o3zDo3zDonzhuqd84bqlfOG6rXzhuql84bqrfMSDfOG6sXzhuq984bq3fOG6s3zhurUvZywgJ2EnKTtcclxuICBzdHIgPSBzdHIucmVwbGFjZSgvw6h8w6l84bq5fOG6u3zhur18w6p84buBfOG6v3zhu4d84buDfOG7hS9nLCAnZScpO1xyXG4gIHN0ciA9IHN0ci5yZXBsYWNlKC/DrHzDrXzhu4t84buJfMSpL2csICdpJyk7XHJcbiAgc3RyID0gc3RyLnJlcGxhY2UoL8OyfMOzfOG7jXzhu498w7V8w7R84buTfOG7kXzhu5l84buVfOG7l3zGoXzhu5184bubfOG7o3zhu5984buhL2csICdvJyk7XHJcbiAgc3RyID0gc3RyLnJlcGxhY2UoL8O5fMO6fOG7pXzhu6d8xal8xrB84burfOG7qXzhu7F84butfOG7ry9nLCAndScpO1xyXG4gIHN0ciA9IHN0ci5yZXBsYWNlKC/hu7N8w7184bu1fOG7t3zhu7kvZywgJ3knKTtcclxuICBzdHIgPSBzdHIucmVwbGFjZSgvxJEvZywgJ2QnKTtcclxuICBzdHIgPSBzdHIucmVwbGFjZSgvIXxAfCV8XFxefFxcKnxcXCh8XFwpfFxcK3xcXD18XFw8fFxcPnxcXD98XFwvfCx8XFwufFxcOnxcXDt8XFwnfFxcXCJ8XFwmfFxcI3xcXFt8XFxdfH58XFwkfF98YHwtfHt8fXxcXHx8XFxcXC9nLCAnICcpO1xyXG4gIHN0ciA9IHN0ci5yZXBsYWNlKC8gKyAvZywgJyAnKTtcclxuICBzdHIgPSBzdHIudHJpbSgpO1xyXG4gIHJldHVybiBzdHI7XHJcbn1cclxuXHJcbmNvbnN0IGNvcHlUb0NsaXBib2FyZCA9ICh0ZXh0OiBzdHJpbmcpID0+IHtcclxuICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KTtcclxufVxyXG5cclxuY29uc3QgYWxsV2l0aFBhZ2luZyA9IGFzeW5jIDxUID0gYW55PihmdW5jOiAocGFnZVNpemU6IG51bWJlciwgcGFnZU51bWJlcjogbnVtYmVyKSA9PiBQcm9taXNlPHsgaXRlbXM6IFRbXSwgdG90YWw6IG51bWJlciB9PiwgZGVmYXVsdFBhZ2VTaXplPzogbnVtYmVyKTogUHJvbWlzZTxUW10+ID0+IHtcclxuICBsZXQgcGFnZVNpemUgPSBkZWZhdWx0UGFnZVNpemUgfHwgMTAwMDtcclxuICBsZXQgcGFnZU51bWJlciA9IDA7XHJcbiAgbGV0IGNvdW50ID0gMDtcclxuICBsZXQgaXRlbXM6IFRbXSA9IFtdO1xyXG4gIHdoaWxlICh0cnVlKSB7XHJcbiAgICBjb25zdCByZXMgPSBhd2FpdCBmdW5jKHBhZ2VTaXplLCBwYWdlTnVtYmVyKTtcclxuICAgIGlmIChBcnJheShyZXM/Lml0ZW1zKSAmJiByZXM/LnRvdGFsID4gMCkge1xyXG4gICAgICBpdGVtcyA9IFsuLi5pdGVtcywgLi4ucmVzLml0ZW1zXTtcclxuICAgICAgY291bnQgKz0gcmVzLml0ZW1zLmxlbmd0aDtcclxuICAgICAgcGFnZU51bWJlcisrO1xyXG4gICAgICBpZiAoY291bnQgPj0gcmVzLnRvdGFsIHx8ICFyZXMuaXRlbXM/Lmxlbmd0aCkge1xyXG4gICAgICAgIHJldHVybiBpdGVtcztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxudmFyIFNkVXRpbGl0eTogU2RVdGlsaXR5Q29udHJ1Y3RvciA9IHtcclxuICB1cGxvYWQsXHJcbiAgZG93bmxvYWQsXHJcbiAgZG93bmxvYWRCbG9iLFxyXG4gIGNoYW5nZUFsaWFzTG93ZXJDYXNlLFxyXG4gIGNvcHlUb0NsaXBib2FyZCxcclxuICBhbGxXaXRoUGFnaW5nXHJcbn07XHJcblxyXG5kZWNsYXJlIGdsb2JhbCB7XHJcbiAgdmFyIFNkVXRpbGl0eTogU2RVdGlsaXR5Q29udHJ1Y3RvcjtcclxufVxyXG5nbG9iYWxUaGlzLlNkVXRpbGl0eSA9IFNkVXRpbGl0eTsiXX0=
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5leHRlbnNpb24uanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2NvbW1vbi8iLCJzb3VyY2VzIjpbInNyYy9saWIvdHlwaW5ncy91dGlsaXR5LmV4dGVuc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBbUJBLE1BQU0sTUFBTSxHQUFHLENBQUMsTUFJZixFQUFFLEVBQUU7SUFDSCxNQUFNLFFBQVEsR0FBRyx1Q0FBdUMsQ0FBQztJQUN6RCxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBYyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTs7UUFDM0QsTUFBTSxJQUFJLFNBQUcsUUFBUSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQywwQ0FBRyxDQUFDLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2QsT0FBTztTQUNSO1FBQ0QsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6RCxJQUFJLGNBQWMsRUFBRTtZQUNsQixjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDekI7UUFDRCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFRLEVB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RyxDQUFFLEtBQUssQ0FBQyxJQUFJLENBQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLEtBQUssSUFBRyxDQUFDLEVBQUU7WUFDdkMsS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzFCLFVBQVUsRUFBRSxDQUFDO1lBQ2IsSUFBSSxLQUFLLElBQUksR0FBRyxDQUFDLEtBQUssSUFBSSxRQUFDLEdBQUcsQ0FBQyxLQUFLLDBDQUFFLE1BQU0sQ0FBQSxFQUFFO2dCQUM1QyxPQUFPLEtBQUssQ0FBQzthQUNkO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sRUFBRSxDQUFDO1NBQ1g7S0FDRjtBQUNILENBQUMsQ0FBQSxDQUFBOztBQUVELElBQUksU0FBUyxHQUF3QjtJQUNuQyxNQUFNO0lBQ04sUUFBUTtJQUNSLFlBQVk7SUFDWixvQkFBb0I7SUFDcEIsZUFBZTtJQUNmLGFBQWE7Q0FDZCxDQUFDO0FBS0YsVUFBVSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyB9O1xyXG4vLyBkZWNsYXJlIHZhciBEYXRlOiBEYXRlQ29uc3RydWN0b3I7XHJcbmludGVyZmFjZSBTZFV0aWxpdHlDb250cnVjdG9yIHtcclxuICB1cGxvYWQ6IChvcHRpb24/OiB7XHJcbiAgICBleHRlbnNpb25zPzogc3RyaW5nW107XHJcbiAgICBtYXhTaXplSW5NYj86IG51bWJlcjtcclxuICAgIHZhbGlkYXRvcj86IChmaWxlTmFtZTogc3RyaW5nKSA9PiBzdHJpbmc7XHJcbiAgfSkgPT4gUHJvbWlzZTxGaWxlIHwgbnVsbD47XHJcbiAgZG93bmxvYWQ6IChmaWxlUGF0aDogc3RyaW5nLCBmaWxlTmFtZT86IHN0cmluZykgPT4gdm9pZFxyXG4gIGRvd25sb2FkQmxvYjogKGJsb2I6IEJsb2IsIGZpbGVOYW1lPzogc3RyaW5nKSA9PiB2b2lkO1xyXG4gIGNoYW5nZUFsaWFzTG93ZXJDYXNlOiAoYWxpYXM6IHN0cmluZykgPT4gc3RyaW5nO1xyXG4gIGNvcHlUb0NsaXBib2FyZDogKHRleHQ6IHN0cmluZykgPT4gdm9pZDtcclxuICBhbGxXaXRoUGFnaW5nOiA8VCA9IGFueT4oZnVuYzogKHBhZ2VTaXplOiBudW1iZXIsIHBhZ2VOdW1iZXI6IG51bWJlcikgPT4gUHJvbWlzZTx7XHJcbiAgICBpdGVtczogVFtdO1xyXG4gICAgdG90YWw6IG51bWJlcjtcclxuICB9PiwgZGVmYXVsdFBhZ2VTaXplPzogbnVtYmVyKSA9PiBQcm9taXNlPFRbXT5cclxufVxyXG5cclxuXHJcbmNvbnN0IHVwbG9hZCA9IChvcHRpb24/OiB7XHJcbiAgZXh0ZW5zaW9ucz86IHN0cmluZ1tdLFxyXG4gIG1heFNpemVJbk1iPzogbnVtYmVyLFxyXG4gIHZhbGlkYXRvcj86IChmaWxlTmFtZTogc3RyaW5nKSA9PiBzdHJpbmdcclxufSkgPT4ge1xyXG4gIGNvbnN0IHVwbG9hZElkID0gJ1UxZTA5YzFjMC1iNjQ3LTQzN2UtOTk1ZS1kN2ExYTFiNjA1NTAnO1xyXG4gIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZTxGaWxlIHwgbnVsbD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgY29uc3QgYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5Jyk/LlswXTtcclxuICAgIGlmICghYm9keSkge1xyXG4gICAgICByZXNvbHZlKG51bGwpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBleGlzdGVkRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHVwbG9hZElkKTtcclxuICAgIGlmIChleGlzdGVkRWxlbWVudCkge1xyXG4gICAgICBleGlzdGVkRWxlbWVudC5yZW1vdmUoKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xyXG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2lkJywgdXBsb2FkSWQpO1xyXG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnZmlsZScpO1xyXG4gICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAgYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTtcclxuICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGV2dDogYW55KSA9PiB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldCBhcyBEYXRhVHJhbnNmZXI7XHJcbiAgICAgICAgY29uc3QgZmlsZSA9IHRhcmdldC5maWxlcy5pdGVtKDApO1xyXG4gICAgICAgIGlmIChmaWxlKSB7XHJcbiAgICAgICAgICBjb25zdCBsYXN0RG90ID0gZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJyk7XHJcbiAgICAgICAgICBpZiAobGFzdERvdCA9PT0gLTEpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGaWxlIGtow7RuZyDEkcO6bmcgxJHhu4tuaCBk4bqhbmdgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnN0IGV4dGVuc2lvbiA9IGZpbGUubmFtZS5zdWJzdHJpbmcobGFzdERvdCArIDEpO1xyXG4gICAgICAgICAgaWYgKG9wdGlvbikge1xyXG4gICAgICAgICAgICBpZiAob3B0aW9uLmV4dGVuc2lvbnM/Lmxlbmd0aCAmJiAhb3B0aW9uLmV4dGVuc2lvbnMuc29tZShlID0+IGUudG9VcHBlckNhc2UoKSA9PT0gZXh0ZW5zaW9uLnRvVXBwZXJDYXNlKCkpKSB7XHJcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGaWxlIGtow7RuZyDEkcO6bmcgxJHhu4tuaCBk4bqhbmdgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAob3B0aW9uLm1heFNpemVJbk1iICYmIG9wdGlvbi5tYXhTaXplSW5NYiA+IDAgJiYgb3B0aW9uLm1heFNpemVJbk1iICogMTAyNCAqIDEwMjQgPCBmaWxlLnNpemUpIHtcclxuICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYFske2ZpbGUubmFtZX1dIER1bmcgbMaw4bujbmcgdOG7kWkgxJFhICR7b3B0aW9uLm1heFNpemVJbk1ifSBNYnNgO1xyXG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAob3B0aW9uLnZhbGlkYXRvciAmJiBvcHRpb24udmFsaWRhdG9yKGZpbGUubmFtZSkpIHtcclxuICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gb3B0aW9uLnZhbGlkYXRvcihmaWxlLm5hbWUpO1xyXG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmVzb2x2ZShmaWxlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgcmVqZWN0KGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBlbGVtZW50LmNsaWNrKCk7XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHByb21pc2U7XHJcbn1cclxuXHJcbmNvbnN0IGRvd25sb2FkID0gKGZpbGVQYXRoOiBzdHJpbmcsIGZpbGVOYW1lPzogc3RyaW5nKSA9PiB7XHJcbiAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICBsaW5rLmRvd25sb2FkID0gYCR7ZmlsZU5hbWUgfHwgJ0ZpbGUnfV8ke25ldyBEYXRlKCkudG9Gb3JtYXQoJ3l5eXlfTU1fZGRfSEhfbW0nKX1gO1xyXG4gIGxpbmsuaHJlZiA9IGZpbGVQYXRoO1xyXG4gIGxpbmsuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgbGluay5jbGljaygpO1xyXG4gIGxpbmsucmVtb3ZlKCk7XHJcbn1cclxuXHJcbmNvbnN0IGRvd25sb2FkQmxvYiA9IChibG9iOiBCbG9iLCBmaWxlTmFtZT86IHN0cmluZykgPT4ge1xyXG4gIHRyeSB7XHJcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBpZiAobGluay5kb3dubG9hZCAhPT0gdW5kZWZpbmVkKSB7IC8vIGZlYXR1cmUgZGV0ZWN0aW9uXHJcbiAgICAgIGxpbmsuZG93bmxvYWQgPSBgJHtuZXcgRGF0ZSgpLnRvRm9ybWF0KCd5eXl5X01NX2RkX0hIX21tJyl9XyR7ZmlsZU5hbWUgfHwgJ0ZpbGUnfWA7XHJcbiAgICAgIGxpbmsuaHJlZiA9IHVybDtcclxuICAgICAgbGluay5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgICAgIGxpbmsuY2xpY2soKTtcclxuICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcclxuICAgICAgbGluay5yZW1vdmUoKTtcclxuICAgIH1cclxuICB9IGNhdGNoIChlKSB7XHJcbiAgICBjb25zb2xlLmVycm9yKCdCbG9iVG9TYXZlQXMgZXJyb3InLCBlKTtcclxuICB9XHJcbn1cclxuXHJcbmNvbnN0IGNoYW5nZUFsaWFzTG93ZXJDYXNlID0gKGFsaWFzOiBzdHJpbmcpID0+IHtcclxuICBsZXQgc3RyID0gYWxpYXM/LnRvU3RyaW5nKCkgPz8gJyc7XHJcbiAgc3RyID0gc3RyLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcclxuICBzdHIgPSBzdHIucmVwbGFjZSgvw6B8w6F84bqhfOG6o3zDo3zDonzhuqd84bqlfOG6rXzhuql84bqrfMSDfOG6sXzhuq984bq3fOG6s3zhurUvZywgJ2EnKTtcclxuICBzdHIgPSBzdHIucmVwbGFjZSgvw6h8w6l84bq5fOG6u3zhur18w6p84buBfOG6v3zhu4d84buDfOG7hS9nLCAnZScpO1xyXG4gIHN0ciA9IHN0ci5yZXBsYWNlKC/DrHzDrXzhu4t84buJfMSpL2csICdpJyk7XHJcbiAgc3RyID0gc3RyLnJlcGxhY2UoL8OyfMOzfOG7jXzhu498w7V8w7R84buTfOG7kXzhu5l84buVfOG7l3zGoXzhu5184bubfOG7o3zhu5984buhL2csICdvJyk7XHJcbiAgc3RyID0gc3RyLnJlcGxhY2UoL8O5fMO6fOG7pXzhu6d8xal8xrB84burfOG7qXzhu7F84butfOG7ry9nLCAndScpO1xyXG4gIHN0ciA9IHN0ci5yZXBsYWNlKC/hu7N8w7184bu1fOG7t3zhu7kvZywgJ3knKTtcclxuICBzdHIgPSBzdHIucmVwbGFjZSgvxJEvZywgJ2QnKTtcclxuICBzdHIgPSBzdHIucmVwbGFjZSgvIXxAfCV8XFxefFxcKnxcXCh8XFwpfFxcK3xcXD18XFw8fFxcPnxcXD98XFwvfCx8XFwufFxcOnxcXDt8XFwnfFxcXCJ8XFwmfFxcI3xcXFt8XFxdfH58XFwkfF98YHwtfHt8fXxcXHx8XFxcXC9nLCAnICcpO1xyXG4gIHN0ciA9IHN0ci5yZXBsYWNlKC8gKyAvZywgJyAnKTtcclxuICBzdHIgPSBzdHIudHJpbSgpO1xyXG4gIHJldHVybiBzdHI7XHJcbn1cclxuXHJcbmNvbnN0IGNvcHlUb0NsaXBib2FyZCA9ICh0ZXh0OiBzdHJpbmcpID0+IHtcclxuICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KTtcclxufVxyXG5cclxuY29uc3QgYWxsV2l0aFBhZ2luZyA9IGFzeW5jIDxUID0gYW55PihmdW5jOiAocGFnZVNpemU6IG51bWJlciwgcGFnZU51bWJlcjogbnVtYmVyKSA9PiBQcm9taXNlPHsgaXRlbXM6IFRbXSwgdG90YWw6IG51bWJlciB9PiwgZGVmYXVsdFBhZ2VTaXplPzogbnVtYmVyKTogUHJvbWlzZTxUW10+ID0+IHtcclxuICBsZXQgcGFnZVNpemUgPSBkZWZhdWx0UGFnZVNpemUgfHwgMTAwMDtcclxuICBsZXQgcGFnZU51bWJlciA9IDA7XHJcbiAgbGV0IGNvdW50ID0gMDtcclxuICBsZXQgaXRlbXM6IFRbXSA9IFtdO1xyXG4gIHdoaWxlICh0cnVlKSB7XHJcbiAgICBjb25zdCByZXMgPSBhd2FpdCBmdW5jKHBhZ2VTaXplLCBwYWdlTnVtYmVyKTtcclxuICAgIGlmIChBcnJheShyZXM/Lml0ZW1zKSAmJiByZXM/LnRvdGFsID4gMCkge1xyXG4gICAgICBpdGVtcyA9IFsuLi5pdGVtcywgLi4ucmVzLml0ZW1zXTtcclxuICAgICAgY291bnQgKz0gcmVzLml0ZW1zLmxlbmd0aDtcclxuICAgICAgcGFnZU51bWJlcisrO1xyXG4gICAgICBpZiAoY291bnQgPj0gcmVzLnRvdGFsIHx8ICFyZXMuaXRlbXM/Lmxlbmd0aCkge1xyXG4gICAgICAgIHJldHVybiBpdGVtcztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxudmFyIFNkVXRpbGl0eTogU2RVdGlsaXR5Q29udHJ1Y3RvciA9IHtcclxuICB1cGxvYWQsXHJcbiAgZG93bmxvYWQsXHJcbiAgZG93bmxvYWRCbG9iLFxyXG4gIGNoYW5nZUFsaWFzTG93ZXJDYXNlLFxyXG4gIGNvcHlUb0NsaXBib2FyZCxcclxuICBhbGxXaXRoUGFnaW5nXHJcbn07XHJcblxyXG5kZWNsYXJlIGdsb2JhbCB7XHJcbiAgdmFyIFNkVXRpbGl0eTogU2RVdGlsaXR5Q29udHJ1Y3RvcjtcclxufVxyXG5nbG9iYWxUaGlzLlNkVXRpbGl0eSA9IFNkVXRpbGl0eTsiXX0=
|
|
@@ -420,7 +420,7 @@ const downloadBlob = (blob, fileName) => {
|
|
|
420
420
|
const url = window.URL.createObjectURL(blob);
|
|
421
421
|
const link = document.createElement('a');
|
|
422
422
|
if (link.download !== undefined) { // feature detection
|
|
423
|
-
link.download = `${
|
|
423
|
+
link.download = `${new Date().toFormat('yyyy_MM_dd_HH_mm')}_${fileName || 'File'}`;
|
|
424
424
|
link.href = url;
|
|
425
425
|
link.style.visibility = 'hidden';
|
|
426
426
|
document.body.appendChild(link);
|