@acorex/core 3.0.21 → 3.0.25
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/acorex-core.d.ts +4 -0
- package/acorex-core.metadata.json +1 -0
- package/bundles/acorex-core.umd.js +2539 -0
- package/bundles/acorex-core.umd.js.map +1 -0
- package/bundles/acorex-core.umd.min.js +17 -0
- package/bundles/acorex-core.umd.min.js.map +1 -0
- package/esm2015/acorex-core.js +5 -0
- package/esm2015/lib/classes/base-page.class.js +21 -0
- package/esm2015/lib/classes/color.class.js +49 -0
- package/esm2015/lib/classes/datetime.class.js +314 -0
- package/esm2015/lib/classes/menu.class.js +27 -0
- package/esm2015/lib/classes/navigator.class.js +1 -0
- package/esm2015/lib/classes/popup.class.js +1 -0
- package/esm2015/lib/classes/promise.class.js +19 -0
- package/esm2015/lib/classes/sectionlist.class.js +1 -0
- package/esm2015/lib/classes/select.class.js +3 -0
- package/esm2015/lib/core.module.js +24 -0
- package/esm2015/lib/error/error.class.js +1 -0
- package/esm2015/lib/error/error.module.js +16 -0
- package/esm2015/lib/error/error.service.js +25 -0
- package/esm2015/lib/events/keyboard.js +1 -0
- package/esm2015/lib/http/http-error.class.js +1 -0
- package/esm2015/lib/http/http-events.interceptor.js +3 -0
- package/esm2015/lib/http/http-request.class.js +1 -0
- package/esm2015/lib/http/http-result.class.js +21 -0
- package/esm2015/lib/http/http.module.js +29 -0
- package/esm2015/lib/http/http.service.js +149 -0
- package/{src → esm2015}/lib/locale/en.json +2 -2
- package/{src → esm2015}/lib/locale/fa.json +3 -3
- package/esm2015/lib/pipe/datetime.pipe.js +24 -0
- package/esm2015/lib/pipe/htmlToText.pipe.js +23 -0
- package/esm2015/lib/services/config.js +29 -0
- package/esm2015/lib/services/event.service.js +36 -0
- package/esm2015/lib/services/navigator.service.js +9 -0
- package/esm2015/lib/services/storage.service.js +15 -0
- package/esm2015/lib/translator/translator.js +26 -0
- package/esm2015/lib/translator/translator.module.js +23 -0
- package/esm2015/lib/translator/translator.pipe.js +23 -0
- package/esm2015/lib/translator/translator.service.js +21 -0
- package/esm2015/lib/utils/array/array-util.js +133 -0
- package/esm2015/lib/utils/html/html-util.js +192 -0
- package/esm2015/lib/utils/html/html.module.js +16 -0
- package/esm2015/lib/utils/math/math-util.js +6 -0
- package/esm2015/lib/utils/object/object-util.js +83 -0
- package/esm2015/lib/utils/render/on-demand-preload-strategy.service.js +21 -0
- package/esm2015/lib/utils/render/render.service.js +112 -0
- package/esm2015/lib/utils/render/rendering.module.js +26 -0
- package/esm2015/lib/utils/scroll/scroll.directive.js +66 -0
- package/esm2015/lib/utils/scroll/scroll.module.js +16 -0
- package/esm2015/lib/utils/separator/separator.module.js +16 -0
- package/esm2015/lib/utils/separator/separator.pipe.js +22 -0
- package/esm2015/public-api.js +36 -0
- package/esm5/acorex-core.js +5 -0
- package/esm5/lib/classes/base-page.class.js +23 -0
- package/esm5/lib/classes/color.class.js +54 -0
- package/esm5/lib/classes/datetime.class.js +390 -0
- package/esm5/lib/classes/menu.class.js +42 -0
- package/esm5/lib/classes/navigator.class.js +1 -0
- package/esm5/lib/classes/popup.class.js +1 -0
- package/esm5/lib/classes/promise.class.js +22 -0
- package/esm5/lib/classes/sectionlist.class.js +1 -0
- package/esm5/lib/classes/select.class.js +7 -0
- package/esm5/lib/core.module.js +27 -0
- package/esm5/lib/error/error.class.js +1 -0
- package/esm5/lib/error/error.module.js +19 -0
- package/esm5/lib/error/error.service.js +26 -0
- package/esm5/lib/events/keyboard.js +1 -0
- package/esm5/lib/http/http-error.class.js +1 -0
- package/esm5/lib/http/http-events.interceptor.js +3 -0
- package/esm5/lib/http/http-request.class.js +1 -0
- package/esm5/lib/http/http-result.class.js +24 -0
- package/esm5/lib/http/http.module.js +33 -0
- package/esm5/lib/http/http.service.js +157 -0
- package/esm5/lib/locale/en.json +249 -0
- package/esm5/lib/locale/fa.json +238 -0
- package/esm5/lib/pipe/datetime.pipe.js +26 -0
- package/esm5/lib/pipe/htmlToText.pipe.js +26 -0
- package/esm5/lib/services/config.js +37 -0
- package/esm5/lib/services/event.service.js +37 -0
- package/esm5/lib/services/navigator.service.js +12 -0
- package/esm5/lib/services/storage.service.js +18 -0
- package/esm5/lib/translator/translator.js +34 -0
- package/esm5/lib/translator/translator.module.js +24 -0
- package/esm5/lib/translator/translator.pipe.js +25 -0
- package/esm5/lib/translator/translator.service.js +24 -0
- package/esm5/lib/utils/array/array-util.js +147 -0
- package/esm5/lib/utils/html/html-util.js +224 -0
- package/esm5/lib/utils/html/html.module.js +19 -0
- package/esm5/lib/utils/math/math-util.js +10 -0
- package/esm5/lib/utils/object/object-util.js +88 -0
- package/esm5/lib/utils/render/on-demand-preload-strategy.service.js +22 -0
- package/esm5/lib/utils/render/render.service.js +117 -0
- package/esm5/lib/utils/render/rendering.module.js +29 -0
- package/esm5/lib/utils/scroll/scroll.directive.js +68 -0
- package/esm5/lib/utils/scroll/scroll.module.js +19 -0
- package/esm5/lib/utils/separator/separator.module.js +19 -0
- package/esm5/lib/utils/separator/separator.pipe.js +25 -0
- package/esm5/public-api.js +36 -0
- package/fesm2015/acorex-core.js +2057 -0
- package/fesm2015/acorex-core.js.map +1 -0
- package/fesm5/acorex-core.js +2274 -0
- package/fesm5/acorex-core.js.map +1 -0
- package/lib/classes/base-page.class.d.ts +10 -0
- package/lib/classes/color.class.d.ts +17 -0
- package/lib/classes/datetime.class.d.ts +63 -0
- package/lib/classes/menu.class.d.ts +34 -0
- package/{src/lib/classes/navigator.class.ts → lib/classes/navigator.class.d.ts} +1 -1
- package/{src/lib/classes/popup.class.ts → lib/classes/popup.class.d.ts} +0 -2
- package/lib/classes/promise.class.d.ts +7 -0
- package/{src/lib/classes/sectionlist.class.ts → lib/classes/sectionlist.class.d.ts} +0 -0
- package/lib/classes/select.class.d.ts +7 -0
- package/lib/core.module.d.ts +2 -0
- package/{src/lib/error/error.class.ts → lib/error/error.class.d.ts} +0 -0
- package/lib/error/error.module.d.ts +2 -0
- package/lib/error/error.service.d.ts +10 -0
- package/{src/lib/events/keyboard.ts → lib/events/keyboard.d.ts} +0 -3
- package/{src/lib/http/http-error.class.ts → lib/http/http-error.class.d.ts} +2 -2
- package/{src/lib/http/http-events.interceptor.ts → lib/http/http-events.interceptor.d.ts} +3 -7
- package/{src/lib/http/http-request.class.ts → lib/http/http-request.class.d.ts} +5 -5
- package/lib/http/http-result.class.d.ts +11 -0
- package/lib/http/http.module.d.ts +4 -0
- package/lib/http/http.service.d.ts +20 -0
- package/lib/pipe/datetime.pipe.d.ts +5 -0
- package/lib/pipe/htmlToText.pipe.d.ts +4 -0
- package/lib/services/config.d.ts +9 -0
- package/lib/services/event.service.d.ts +6 -0
- package/lib/services/navigator.service.d.ts +5 -0
- package/lib/services/storage.service.d.ts +4 -0
- package/lib/translator/translator.d.ts +9 -0
- package/lib/translator/translator.module.d.ts +3 -0
- package/lib/translator/translator.pipe.d.ts +5 -0
- package/lib/translator/translator.service.d.ts +5 -0
- package/lib/utils/array/array-util.d.ts +6 -0
- package/lib/utils/html/html-util.d.ts +62 -0
- package/lib/utils/html/html.module.d.ts +2 -0
- package/lib/utils/math/math-util.d.ts +3 -0
- package/lib/utils/object/object-util.d.ts +7 -0
- package/lib/utils/render/on-demand-preload-strategy.service.d.ts +7 -0
- package/lib/utils/render/render.service.d.ts +14 -0
- package/lib/utils/render/rendering.module.d.ts +4 -0
- package/lib/utils/scroll/scroll.directive.d.ts +13 -0
- package/lib/utils/scroll/scroll.module.d.ts +2 -0
- package/lib/utils/separator/separator.module.d.ts +2 -0
- package/lib/utils/separator/separator.pipe.d.ts +4 -0
- package/package.json +23 -13
- package/{src/public-api.ts → public-api.d.ts} +0 -9
- package/karma.conf.js +0 -32
- package/ng-package.json +0 -10
- package/src/lib/classes/base-page.class.ts +0 -27
- package/src/lib/classes/color.class.ts +0 -61
- package/src/lib/classes/datetime.class.ts +0 -374
- package/src/lib/classes/menu.class.ts +0 -37
- package/src/lib/classes/promise.class.ts +0 -25
- package/src/lib/classes/select.class.ts +0 -7
- package/src/lib/core.module.ts +0 -21
- package/src/lib/error/error.module.ts +0 -13
- package/src/lib/error/error.service.ts +0 -23
- package/src/lib/error/index.ts +0 -3
- package/src/lib/http/http-result.class.ts +0 -34
- package/src/lib/http/http.module.ts +0 -25
- package/src/lib/http/http.service.ts +0 -159
- package/src/lib/pipe/datetime.pipe.ts +0 -20
- package/src/lib/pipe/htmlToText.pipe.ts +0 -18
- package/src/lib/services/config.ts +0 -36
- package/src/lib/services/event.service.ts +0 -31
- package/src/lib/services/navigator.service.ts +0 -8
- package/src/lib/services/storage.service.ts +0 -11
- package/src/lib/translator/translator.module.ts +0 -19
- package/src/lib/translator/translator.pipe.ts +0 -22
- package/src/lib/translator/translator.service.ts +0 -19
- package/src/lib/translator/translator.ts +0 -31
- package/src/lib/utils/array/array-util.ts +0 -140
- package/src/lib/utils/html/html-util.ts +0 -264
- package/src/lib/utils/html/html.module.ts +0 -11
- package/src/lib/utils/math/math-util.ts +0 -5
- package/src/lib/utils/object/object-util.ts +0 -87
- package/src/lib/utils/render/on-demand-preload-strategy.service.ts +0 -26
- package/src/lib/utils/render/render.service.ts +0 -107
- package/src/lib/utils/render/rendering.module.ts +0 -25
- package/src/lib/utils/scroll/scroll.directive.ts +0 -35
- package/src/lib/utils/scroll/scroll.module.ts +0 -11
- package/src/lib/utils/separator/separator.module.ts +0 -11
- package/src/lib/utils/separator/separator.pipe.ts +0 -15
- package/src/test.ts +0 -26
- package/tsconfig.lib.json +0 -23
- package/tsconfig.lib.prod.json +0 -6
- package/tsconfig.spec.json +0 -18
- package/tslint.json +0 -17
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@acorex/core/lib/classes/color.class.ts","ng://@acorex/core/lib/utils/object/object-util.ts","ng://@acorex/core/lib/services/config.ts","ng://@acorex/core/lib/classes/datetime.class.ts","ng://@acorex/core/lib/classes/menu.class.ts","ng://@acorex/core/lib/classes/promise.class.ts","ng://@acorex/core/lib/classes/select.class.ts","ng://@acorex/core/lib/classes/base-page.class.ts","ng://@acorex/core/lib/error/error.service.ts","ng://@acorex/core/lib/error/error.module.ts","ng://@acorex/core/lib/http/http-events.interceptor.ts","ng://@acorex/core/lib/http/http-result.class.ts","ng://@acorex/core/lib/http/http.service.ts","ng://@acorex/core/lib/http/http.module.ts","ng://@acorex/core/lib/pipe/datetime.pipe.ts","ng://@acorex/core/lib/pipe/htmlToText.pipe.ts","ng://@acorex/core/lib/services/event.service.ts","ng://@acorex/core/lib/services/navigator.service.ts","ng://@acorex/core/lib/services/storage.service.ts","ng://@acorex/core/lib/translator/translator.ts","ng://@acorex/core/lib/translator/translator.service.ts","ng://@acorex/core/lib/translator/translator.pipe.ts","ng://@acorex/core/lib/translator/translator.module.ts","ng://@acorex/core/lib/utils/array/array-util.ts","ng://@acorex/core/lib/utils/math/math-util.ts","ng://@acorex/core/lib/utils/html/html-util.ts","ng://@acorex/core/lib/utils/html/html.module.ts","ng://@acorex/core/lib/utils/render/on-demand-preload-strategy.service.ts","ng://@acorex/core/lib/utils/render/render.service.ts","ng://@acorex/core/lib/utils/render/rendering.module.ts","ng://@acorex/core/lib/utils/scroll/scroll.directive.ts","ng://@acorex/core/lib/utils/scroll/scroll.module.ts","ng://@acorex/core/lib/utils/separator/separator.pipe.ts","ng://@acorex/core/lib/utils/separator/separator.module.ts","ng://@acorex/core/lib/core.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__metadata","metadataKey","metadataValue","metadata","__read","o","n","m","Symbol","iterator","e","call","ar","next","done","push","value","error","__spread","concat","AXColorUtil","hex2Rgb","hexColor","result","exec","parseInt","g","rgb2Hex","a","alpha","hex","toString","slice","Math","round","hexAlpha","substr","toUpperCase","illuminance","rgbColor","map","v","pow","contrastToWhite","AXObjectUtil","deepJSONClone","obj","JSON","parse","stringify","deepCopy","copy","Date","setTime","getTime","len","attr","Error","AXFetchProp","prop","index","indexOf","substring","getPropByPath","path","defaultVal","replace","split","forEach","level","undefined","setPropByPath","isArray","match","reduce","abs","AXConfig","dataChangeSubject","asObservable","set","arg1","arg2","dataModel","assign","get","Subject","moment","moment_","AXDateTime","type","_date","_moment","date","locale","convert","String","resolveUnit","unit","clone","dayOfYear","day","hour","minute","second","year","month","AXCalendarMonth","startOf","toDate","endOf","convertStringToJalali","format","convertStringToGregorian","from","add","amount","addDay","addMonth","addHour","duration","end","diff","as","fromNow","equal","isSame","convertToJalaliDate","jDate","toLocaleDateString","numberingSystem","item","minutes","seconds","toJalaliString","convertToGregorianDate","toLocaleString","toGregorianString","compaireNew","str1","str2","range","compaire","isAfter","toISOString","getMonth","name","AXDateTimeRange","_range","startTime","endTime","enumurate","getViewCompaire","includes","view","uid","visible","disable","selected","style","orderIndex","AXMenuItem","_this","_super","apply","divider","AXBaseMenuItem","AXButtonItem","dropdown","submitBehavior","cancelBehavior","AXPromise","executor","_executor","setTimeout","thenAction","resolve","z","then","action","AXBasePageComponent","onClosed","EventEmitter","close","data","emit","component","onClosing","ngOnDestroy","unsubscribe","AX_ERROR_DISPLAY_INTERCEPTOR","InjectionToken","AXErrorService","injector","handle","message","instance","show","Injector","Injectable","providedIn","AXErrorModule","NgModule","declarations","imports","CommonModule","exports","providers","AX_HTTP_EVENT_INTERCEPTOR","HttpResult","resultAction","errorAction","completeAction","complete","AXHttpService","http","interceptor","url","config","method","request","post","delete","put","handleBegin","mapOptions","subscribe","handleResult","handleError","success","handleComplete","Promise","headers","params","begin","status","code","_a","handled","options","HttpHeaders","HttpParams","body","responseType","HttpClient","AXHttpModule","forRoot","ngModule","AXHttpModule_1","HttpClientModule","AXDateTimePipe","transform","Pipe","AXHtmlToTextPipe","AXEventService","list","broadcast","find","events","on","callback","destroy","AXNavigator","AXStorageService","localStorage","getItem","setItem","AXTranslator","load","lang","merge","use","AXTranslatorService","AXTranslatorPipe","pure","AXTranslatorModule","en","fa","AXArrayUtil","pickRandom","array","floor","random","insert","rest","_i","splice","min","max","fill","filter","filters","f","vals","mt","field","p1","p2_1","j","v1","v2","dataType","condition","toLowerCase","startsWith","endsWith","console","Number","AXMathUtil","randomRange","x","y","AXClientRec","rec","_left","left","_top","top","_width","width","_height","height","_right","_bottom","intersect","AXHtmlUtil","getBoundingRectPoint","el","placement","getBoundingClientRect","offsetWidth","offsetHeight","AXPoint","isInRecPoint","pos","isInElementBound","element","elBound","getDimensions","winW","winH","document","compatMode","documentElement","window","innerWidth","innerHeight","getOffsetRight","elem","right","offsetParent","offsetLeft","getUID","getRelatedPosition","source","alignment","sourcePos","collision","ac","bc","AXHtmlModule","AXOnDemandPreloadService","subject","tmp","startPreload","routePath","AXRenderService","appRef","router","componentFactoryResolver","modulePreloadService","appendComponent","componentClass","location","componentRef","resolveComponentFactory","attachView","hostView","domElem","rootNodes","onDestroy","detachView","appendChild","changeDetectorRef","detectChanges","findLoadedComponentByRoute","timeoutTime","loop","reject","found","preload","theLoop","_findLoadedComponentByRoute","search","route","pp","_loadedConfig","routes","ApplicationRef","Router","ComponentFactoryResolver","getOnDemandPreloadServiceFactory","AXRenderingModule","provide","useFactory","AXHorizontalScrollDirective","scrollValue","onMouseWheel","delta","wheelDelta","detail","nativeElement","scrollLeft","ElementRef","Input","HostListener","Directive","selector","AXVerticalScrollDirective","scrollTop","AXScrollModule","AXSeparatorPipe","AXSeparatorModule","PIPES","MODULES","SERVICES","AXCoreModule"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export interface AXColor {\r\n id?: string;\r\n color?: string;\r\n code: string;\r\n selected?: boolean;\r\n active?: boolean;\r\n}\r\n\r\nexport class AXColorUtil {\r\n\r\n\r\n static hex2Rgb(hexColor: string) {\r\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hexColor);\r\n return result ? {\r\n r: parseInt(result[1], 16),\r\n g: parseInt(result[2], 16),\r\n b: parseInt(result[3], 16)\r\n } : null;\r\n }\r\n\r\n static rgb2Hex(r: number, g: number, b: number, a: number = 255): string {\r\n let alpha;\r\n let hex = (r | 1 << 8).toString(16).slice(1) +\r\n (g | 1 << 8).toString(16).slice(1) +\r\n (b | 1 << 8).toString(16).slice(1);\r\n if (a !== 255) {\r\n alpha = a;\r\n } else {\r\n alpha = 1;\r\n }\r\n\r\n alpha = Math.round(alpha * 100) / 100;\r\n alpha = Math.round(alpha * 255);\r\n const hexAlpha = (alpha + 0x10000).toString(16).substr(-2).toUpperCase();\r\n return '#' + hex + (alpha == 255 ? '' : hexAlpha);\r\n };\r\n\r\n static illuminance(hexColor: string) {\r\n const rgbColor = AXColorUtil.hex2Rgb(hexColor);\r\n if (!rgbColor) {\r\n return -1;\r\n }\r\n const r = rgbColor.r;\r\n const g = rgbColor.g;\r\n const b = rgbColor.b;\r\n const a = [r, g, b].map(v => {\r\n v /= 255;\r\n return (v <= 0.03928) ?\r\n v / 12.92 :\r\n Math.pow(((v + 0.055) / 1.055), 2.4);\r\n });\r\n return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722;\r\n }\r\n\r\n static contrastToWhite(hexColor: string) {\r\n const whiteIlluminance = 1;\r\n const illuminance = AXColorUtil.illuminance(hexColor);\r\n return whiteIlluminance / illuminance;\r\n }\r\n\r\n}\r\n","// @dynamic\r\nexport class AXObjectUtil {\r\n static deepJSONClone(obj: any): any {\r\n return obj ? JSON.parse(JSON.stringify(obj)) : null;\r\n }\r\n\r\n static deepCopy(obj) {\r\n let copy;\r\n // Handle the 3 simple types, and null or undefined\r\n if (null == obj || 'object' !== typeof obj) { return obj; }\r\n // Handle Date\r\n if (obj instanceof Date) {\r\n copy = new Date();\r\n copy.setTime(obj.getTime());\r\n return copy;\r\n }\r\n // Handle Array\r\n if (obj instanceof Array) {\r\n copy = [];\r\n for (let i = 0, len = obj.length; i < len; i++) {\r\n copy[i] = AXObjectUtil.deepCopy(obj[i]);\r\n }\r\n return copy;\r\n }\r\n // Handle Object\r\n if (obj instanceof Object) {\r\n copy = {};\r\n for (const attr in obj) {\r\n if (obj.hasOwnProperty(attr)) { copy[attr] = AXObjectUtil.deepCopy(obj[attr]); }\r\n }\r\n return copy;\r\n }\r\n throw new Error('Unable to copy obj! Its type isn\\'t supported.');\r\n }\r\n}\r\n\r\nexport function AXFetchProp(obj, prop: string) {\r\n if (typeof obj === 'undefined') {\r\n return false;\r\n }\r\n const index = prop.indexOf('.');\r\n\r\n if (index > -1) {\r\n return AXFetchProp(obj[prop.substring(0, index)], prop.substr(index + 1));\r\n }\r\n\r\n return obj[prop];\r\n}\r\n\r\n\r\n\r\n\r\nexport function getPropByPath(obj, path, defaultVal?) {\r\n path = path\r\n .replace(/\\[/g, '.')\r\n .replace(/]/g, '')\r\n .split('.');\r\n\r\n path.forEach((level) => {\r\n if (obj) {\r\n obj = obj[level];\r\n }\r\n });\r\n\r\n if (obj === undefined) {\r\n return defaultVal;\r\n }\r\n return obj;\r\n}\r\n\r\nexport function setPropByPath(obj, path, value) {\r\n if (Object(obj) !== obj) { return obj; } // When obj is not an object\r\n // If not yet an array, get the keys from the string-path\r\n if (!Array.isArray(path)) { path = path.toString().match(/[^.[\\]]+/g) || []; }\r\n path.slice(0, -1).reduce((a, c, i) => // Iterate all of them except the last one\r\n Object(a[c]) === a[c] // Does the key exist and is its value an object?\r\n // Yes: then follow that path\r\n ? a[c]\r\n // No: create the key. Is the next key a potential array-index?\r\n : a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1]\r\n ? [] // Yes: assign a new array object\r\n : {}, // No: assign a new plain object\r\n obj)[path[path.length - 1]] = value; // Finally assign the value to the last key\r\n return obj; // Return the top-level object to allow chaining\r\n}\r\n\r\n\r\n","import { Subject, Observable } from 'rxjs';\r\nimport { getPropByPath, setPropByPath } from '../utils/object/object-util';\r\n\r\n// @dynamic\r\nexport class AXConfig {\r\n private static dataModel: any = {};\r\n private static dataChangeSubject = new Subject<any>();\r\n\r\n\r\n static get onChange(): Observable<any> {\r\n return AXConfig.dataChangeSubject.asObservable();\r\n }\r\n\r\n static set(config: any): any;\r\n static set(path: string, value?: any): void;\r\n static set(arg1?: any, arg2?: any) {\r\n\r\n if (arg1 && typeof arg1 == 'string') {\r\n setPropByPath(AXConfig.dataModel, arg1, arg2);\r\n AXConfig.dataChangeSubject.next(AXConfig.dataModel);\r\n return;\r\n }\r\n if (arg1 && typeof arg1 == 'object') {\r\n Object.assign(AXConfig.dataModel, arg1);\r\n AXConfig.dataChangeSubject.next(AXConfig.dataModel);\r\n return;\r\n }\r\n if (!arg1 && !arg2) {\r\n return AXConfig.dataChangeSubject.asObservable();\r\n }\r\n }\r\n\r\n static get(path: string): any {\r\n return getPropByPath(AXConfig.dataModel, path);\r\n }\r\n}","import * as moment_ from 'jalali-moment';\r\nimport { AXConfig } from '../services/config';\r\nconst moment = moment_;\r\n\r\nexport type TimeUnit = 'second' | 'minute' | 'minutes' | 'hour' | 'hours' | 'day' | 'days' | 'month' | 'year' | 'week';\r\n\r\nexport type TimeDuration = 'seconds' | 'minutes' | 'hours' | 'days' | 'weeks' | 'month' | 'years';\r\n\r\nexport type TimeStep = 'Y' | 'M' | 'D' | 'YM' | 'YMD' | 'YMDh' | 'YMDhm' | 'YMDhms' | 'h' | 'm' | 's';\r\n\r\nexport type AXCalendarType = 'jalali' | 'gregorian';\r\n\r\nexport class AXDateTime {\r\n static convert(value: any, type: AXCalendarType = AXConfig.get('dateTime.type') || 'gregorian'): AXDateTime {\r\n let date: AXDateTime;\r\n if (typeof value === 'string' || value instanceof String) {\r\n date = new AXDateTime(value as string, type);\r\n } else if (value instanceof Date) {\r\n date = new AXDateTime(value as Date, type);\r\n } else if (value instanceof AXDateTime) {\r\n date = value;\r\n }\r\n return date;\r\n }\r\n\r\n private _date: Date;\r\n get date(): Date {\r\n return this._date;\r\n }\r\n\r\n private resolveUnit(unit: TimeUnit): any {\r\n return this.type === 'jalali' ? 'j' + unit : unit;\r\n }\r\n\r\n private _moment: moment_.Moment;\r\n\r\n // private get _moment(): moment_.Moment {\r\n // const m = moment(this.date);\r\n // if (this.type === 'jalali') {\r\n // m.locale('fa');\r\n // }\r\n // return m;\r\n // }\r\n\r\n constructor(value: Date | string = new Date(), public type: AXCalendarType = AXConfig.get('dateTime.type') || 'gregorian') {\r\n if (value instanceof Date) {\r\n this._date = value as Date;\r\n } else {\r\n this._date = new Date(value);\r\n }\r\n this._moment = moment(this.date);\r\n if (this.type === 'jalali') {\r\n this._moment.locale('fa');\r\n }\r\n }\r\n\r\n clone(): AXDateTime {\r\n return new AXDateTime(this.date, this.type);\r\n }\r\n\r\n get dayInMonth(): number {\r\n return this._moment.date();\r\n }\r\n\r\n get dayOfYear(): number {\r\n return this._moment.dayOfYear();\r\n }\r\n\r\n get dayInWeek(): number {\r\n return this._moment.day();\r\n }\r\n\r\n get hour(): number {\r\n return this._moment.hour();\r\n }\r\n\r\n get minute(): number {\r\n return this._moment.minute();\r\n }\r\n\r\n get second(): number {\r\n return this._moment.second();\r\n }\r\n\r\n get year(): number {\r\n return this._moment.year();\r\n }\r\n\r\n get monthOfYear(): number {\r\n return this._moment.month();\r\n }\r\n\r\n get month(): AXCalendarMonth {\r\n return new AXCalendarMonth(this);\r\n }\r\n\r\n get firstDayOfWeek(): AXDateTime {\r\n const a = moment(this.date);\r\n if (this.type === 'jalali') {\r\n this._moment.locale('fa');\r\n }\r\n return new AXDateTime(a.startOf('w').toDate(), this.type);\r\n }\r\n\r\n get endDayOfWeek(): AXDateTime {\r\n const a = moment(this.date);\r\n if (this.type === 'jalali') {\r\n this._moment.locale('fa');\r\n }\r\n return new AXDateTime(moment(this.date).endOf('w').toDate(), this.type);\r\n }\r\n\r\n convertStringToJalali(date: string, format: string) {\r\n return moment(date).locale('fa').format('YYYY/M/D');\r\n\r\n\r\n }\r\n convertStringToGregorian(date: string, format: string) {\r\n return new Date((moment.from(date, 'fa', 'YYYY/MM/DD').format('YYYY/MM/DD')));\r\n }\r\n\r\n add(unit: TimeUnit = 'day', amount: number): AXDateTime {\r\n return new AXDateTime(moment(this.date).add(amount, this.resolveUnit(unit)).toDate(), this.type);\r\n }\r\n\r\n addDay(amount: number): AXDateTime {\r\n return new AXDateTime(moment(this.date).add(amount, 'd').toDate(), this.type);\r\n }\r\n\r\n addMonth(amount: number): AXDateTime {\r\n return new AXDateTime(moment(this.date).add(amount, 'months').toDate(), this.type);\r\n }\r\n addHour(amount: number) {\r\n return new AXDateTime(moment(this.date).add(amount, 'hours').toDate(), this.type);\r\n }\r\n\r\n set(unit: TimeUnit = 'day', value: number): AXDateTime {\r\n return new AXDateTime(this._moment.set(unit, value).toDate(), this.type);\r\n }\r\n\r\n duration(end: AXDateTime, unit: TimeDuration = 'days'): number {\r\n const duration = moment.duration(this._moment.diff(end._moment));\r\n return Math.round(duration.as(unit));\r\n }\r\n\r\n startOf(unit: TimeUnit = 'day'): AXDateTime {\r\n return new AXDateTime(moment(this.date).startOf(this.resolveUnit(unit)).toDate(), this.type);\r\n }\r\n\r\n endOf(unit: TimeUnit = 'day'): AXDateTime {\r\n return new AXDateTime(moment(this.date).endOf(this.resolveUnit(unit)).toDate(), this.type);\r\n }\r\n\r\n format(format: string = AXConfig.get('dateTime.shortDateFormat') || (this.type === 'gregorian' ? 'DD-MM-YYYY' : 'YYYY-MM-DD')): string {\r\n if (format === 'P') {\r\n return this._moment.fromNow();\r\n }\r\n return this._moment.format(format);\r\n }\r\n\r\n toString(): string {\r\n return this.format();\r\n }\r\n\r\n equal(value: AXDateTime, unit: TimeUnit = 'day') {\r\n if (!value) {\r\n return false;\r\n }\r\n return this._moment.isSame(moment(value.date), this.resolveUnit(unit));\r\n }\r\n\r\n convertToJalaliDate(value) {\r\n const options = {\r\n numberingSystem: 'latn',\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit'\r\n };\r\n const jDate = new Date(value).toLocaleDateString('fa-IR', options);\r\n const item: any = {};\r\n item.year = jDate.slice(0, 4);\r\n item.month = jDate.slice(5, 7);\r\n item.day = jDate.slice(8, 10);\r\n item.hour = jDate.slice(13, 15);\r\n item.minutes = jDate.slice(16, 18);\r\n item.seconds = jDate.slice(19, 21);\r\n return item;\r\n }\r\n\r\n toJalaliString(value) {\r\n const date = this.convertToJalaliDate(value);\r\n let str = '';\r\n str = date.year + '-' + date.month + '-' + date.day + 'T' + date.hour + ':' + date.minutes + ':' + date.seconds;\r\n return str;\r\n }\r\n\r\n convertToGregorianDate(value) {\r\n const options = {\r\n numberingSystem: 'latn',\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit'\r\n };\r\n const date = new Date(value).toLocaleString('en-us', options);\r\n const item: any = {};\r\n item.year = date.slice(6, 10);\r\n item.month = date.slice(0, 2);\r\n item.day = date.slice(3, 5);\r\n item.hour = date.slice(12, 14);\r\n item.minutes = date.slice(15, 17);\r\n item.seconds = date.slice(18, 20);\r\n return item;\r\n }\r\n\r\n toGregorianString(value) {\r\n const date = this.convertToGregorianDate(value);\r\n let str = '';\r\n str = date.year + '-' + date.month + '-' + date.day + 'T' + date.hour + ':' + date.minutes + ':' + date.seconds;\r\n return str;\r\n }\r\n\r\n compaireNew(value: AXDateTime, unit: TimeStep = 'YMD', type = 'jalali') {\r\n const range = [0, 0];\r\n let str1;\r\n let str2;\r\n if (type === 'jalali') {\r\n str1 = this.toJalaliString(this.date);\r\n str2 = this.toJalaliString(value.date ? value.date : value);\r\n } else {\r\n str1 = this.toGregorianString(this.date);\r\n str2 = this.toGregorianString(value.date ? value.date : value);\r\n }\r\n switch (unit) {\r\n case 'YMDhms':\r\n range[0] = 0;\r\n range[1] = 19;\r\n break;\r\n case 'YMDhm':\r\n range[0] = 0;\r\n range[1] = 16;\r\n break;\r\n case 'YMDh':\r\n range[0] = 0;\r\n range[1] = 13;\r\n break;\r\n case 'YMD':\r\n range[0] = 0;\r\n range[1] = 10;\r\n break;\r\n\r\n case 'YM':\r\n range[0] = 0;\r\n range[1] = 7;\r\n break;\r\n\r\n case 'h':\r\n range[0] = 11;\r\n range[1] = 13;\r\n break;\r\n\r\n case 'm':\r\n range[0] = 14;\r\n range[1] = 16;\r\n break;\r\n\r\n case 's':\r\n range[0] = 17;\r\n range[1] = 19;\r\n break;\r\n case 'D':\r\n range[0] = 8;\r\n range[1] = 10;\r\n break;\r\n\r\n case 'M':\r\n range[0] = 5;\r\n range[1] = 7;\r\n break;\r\n\r\n case 'Y':\r\n range[0] = 0;\r\n range[1] = 4;\r\n break;\r\n }\r\n\r\n if (str1.slice(range[0], range[1]) === str2.slice(range[0], range[1])) {\r\n return 0;\r\n } else if (str1.slice(range[0], range[1]) > str2.slice(range[0], range[1])) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n\r\n compaire(value: AXDateTime, unit: TimeUnit = 'day') {\r\n if (this._moment.isSame(moment(value.date), this.resolveUnit(unit))) {\r\n return 0;\r\n } else if (this._moment.isAfter(moment(value.date), this.resolveUnit(unit))) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n\r\n toISOString() {\r\n return this._date.toISOString();\r\n }\r\n}\r\n\r\nexport class AXCalendarMonth {\r\n private _moment: moment_.Moment;\r\n\r\n private _range: AXDateTimeRange;\r\n public get range(): AXDateTimeRange {\r\n return this._range;\r\n }\r\n public set range(v: AXDateTimeRange) {\r\n this._range = v;\r\n }\r\n\r\n constructor(date: AXDateTime) {\r\n this._moment = moment(date.date);\r\n this.index = date.date.getMonth();\r\n this.name = this._moment.format('MMMM');\r\n this.range = new AXDateTimeRange(\r\n new AXDateTime(this._moment.startOf('month').toDate(), date.type),\r\n new AXDateTime(this._moment.endOf('month').toDate(), date.type)\r\n );\r\n }\r\n\r\n private readonly index: number;\r\n private readonly name: string;\r\n}\r\n\r\nexport class AXDateTimeRange {\r\n constructor(public startTime: AXDateTime, public endTime: AXDateTime) { }\r\n\r\n duration(unit: TimeDuration = 'days'): number {\r\n const duration = moment.duration(moment(this.startTime.date).diff(moment(this.endTime.date)));\r\n return duration.as(unit);\r\n }\r\n\r\n enumurate(unit: TimeUnit = 'day', type: AXCalendarType = AXConfig.get('dateTime.type') || 'jalali'): AXDateTime[] {\r\n const result: AXDateTime[] = [];\r\n for (let index = 0; this.startTime.add(unit, index).compaireNew(this.endTime, this.getViewCompaire(unit), type) <= 0; index++) {\r\n result.push(this.startTime.add(unit, index));\r\n }\r\n return result;\r\n }\r\n\r\n includes(value: AXDateTime, unit: TimeUnit = 'day', type = 'jalali'): boolean {\r\n return (\r\n value.compaireNew(this.startTime, this.getViewCompaire(unit), type) >= 0 &&\r\n value.compaireNew(this.endTime, this.getViewCompaire(unit), type) <= 0\r\n );\r\n }\r\n\r\n getViewCompaire(view) {\r\n switch (view) {\r\n case 'day':\r\n return 'YMD';\r\n case 'month':\r\n return 'YM';\r\n case 'year':\r\n return 'Y';\r\n }\r\n }\r\n}\r\n","export class AXBaseMenuItem {\r\n uid?: string = new Date().getTime().toString();\r\n id?: string;\r\n name?: string;\r\n text?: string;\r\n tooltip?: string;\r\n tooltipPlacement?: 'top' | 'right' | 'bottom' | 'left';\r\n icon?: string;\r\n visible?: boolean = true;\r\n disable?: boolean = false;\r\n selected?: boolean = false;\r\n groupName?: string;\r\n data?: any;\r\n style?: string = 'ax light';\r\n orderIndex?: number = 0;\r\n endIcon?: string;\r\n startIcon?: string;\r\n onClick?: (e?: any) => void;\r\n}\r\n\r\nexport class AXMenuItem extends AXBaseMenuItem {\r\n items?: AXMenuItem[];\r\n parentId?: string;\r\n divider?: boolean = false;\r\n}\r\n\r\nexport class AXButtonItem extends AXBaseMenuItem {\r\n dropdown?: boolean = false;\r\n submitBehavior?: boolean = false;\r\n cancelBehavior?: boolean = false;\r\n}\r\n\r\nexport class AXCheckItem {\r\n text?: string;\r\n value?: any;\r\n selected?: boolean;\r\n}\r\n","export class AXPromise<T> {\r\n\r\n private _executor: (then?: (e?: T) => void) => void;\r\n private thenAction?: (e?: T) => void;\r\n\r\n static resolve<T>(value: T): AXPromise<T> {\r\n const r = new AXPromise<T>(z => {\r\n z(value);\r\n }).then(() => { });\r\n return r;\r\n }\r\n\r\n constructor(executor: (then?: (e?: T) => void) => void) {\r\n this._executor = executor;\r\n setTimeout(() => {\r\n this._executor(this.thenAction);\r\n }, 50);\r\n }\r\n\r\n\r\n then(action?: (e?: T) => void): AXPromise<T> {\r\n this.thenAction = action;\r\n return this;\r\n }\r\n}\r\n","export class AXSelectItem {\r\n id: string;\r\n name?: string;\r\n text: string;\r\n visible?: boolean;\r\n disable?: boolean;\r\n}\r\n","import { EventEmitter } from '@angular/core';\r\n\r\n/**\r\n * @deprecated Use AXBasePageComponent from @acorex/components\r\n */\r\nexport abstract class AXBasePageComponent {\r\n\r\n onClosed: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n close(data?: any) {\r\n this.onClosed.emit({\r\n component: this,\r\n data: data\r\n });\r\n }\r\n\r\n onClosing(e: any): void | Promise<void> {\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onClosed.unsubscribe();\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n","import { InjectionToken, Injectable, Injector } from '@angular/core';\r\n\r\nexport const AX_ERROR_DISPLAY_INTERCEPTOR = new InjectionToken<AXErrorDisplayInterceptor>('ax.error');\r\n\r\nexport interface AXErrorDisplayInterceptor {\r\n show(message: string);\r\n}\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class AXErrorService {\r\n\r\n constructor(private injector: Injector) {\r\n\r\n }\r\n\r\n handle(message: string) {\r\n const instance = this.injector.get(AX_ERROR_DISPLAY_INTERCEPTOR);\r\n if (instance) {\r\n instance.show(message);\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXErrorService } from './error.service';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [CommonModule],\r\n exports: [],\r\n providers: [AXErrorService],\r\n})\r\nexport class AXErrorModule {\r\n\r\n}\r\n","import { IHttpError } from './http-error.class';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { AXHttpRequestOptions } from './http-request.class';\r\n\r\nexport const AX_HTTP_EVENT_INTERCEPTOR = new InjectionToken<AXHttpEventInterceptor>('ax.http.events');\r\n\r\nexport interface AXHttpEventInterceptor {\r\n begin(request: AXHttpRequestOptions): Promise<AXHttpRequestOptions>;\r\n success(request: AXHttpRequestOptions, result: any): Promise<any>;\r\n complete(request: AXHttpRequestOptions);\r\n error(request: AXHttpRequestOptions, error: IHttpError);\r\n}\r\n\r\n\r\n","import { IHttpError } from './http-error.class';\r\n\r\nexport class HttpResult<T> {\r\n private _executor: (result: (e?: T) => void, error: (e?: IHttpError) => void, complete: () => void) => void;\r\n constructor(\r\n executor: (\r\n result: (e?: T) => void,\r\n error: (e?: IHttpError) => void,\r\n complete: () => void\r\n ) => void\r\n ) {\r\n this._executor = executor;\r\n setTimeout(() => {\r\n this._executor(this.resultAction, this.errorAction, this.completeAction);\r\n }, 50);\r\n }\r\n\r\n private resultAction: (e?: T) => void;\r\n private errorAction: (e?: IHttpError) => void;\r\n private completeAction: () => void;\r\n\r\n result(action: (e?: T) => void): HttpResult<T> { \r\n this.resultAction = action;\r\n return this;\r\n }\r\n error(action: (e?: IHttpError) => void): HttpResult<T> {\r\n this.errorAction = action;\r\n return this;\r\n }\r\n complete(action: () => void): HttpResult<T> {\r\n this.completeAction = action;\r\n return this;\r\n }\r\n}","import { Injectable, Injector, InjectFlags } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams, HttpErrorResponse } from '@angular/common/http';\r\nimport { HttpResult } from './http-result.class';\r\nimport { IHttpError } from './http-error.class';\r\nimport { AXHttpRequestOptions } from './http-request.class';\r\nimport {\r\n AX_HTTP_EVENT_INTERCEPTOR, AXHttpEventInterceptor\r\n} from './http-events.interceptor';\r\n// import { catchError, retry, retryWhen, mergeMap, delay, switchMap, scan, takeWhile, flatMap } from 'rxjs/operators';\r\n// import { of, concat, throwError } from 'rxjs';\r\n\r\n\r\n@Injectable()\r\nexport class AXHttpService {\r\n\r\n private interceptor: AXHttpEventInterceptor;\r\n constructor(private http: HttpClient, private injector: Injector) {\r\n this.interceptor = this.injector.get(AX_HTTP_EVENT_INTERCEPTOR);\r\n }\r\n\r\n\r\n get<T>(url: string, config: AXHttpRequestOptions = {}): HttpResult<T> {\r\n config.url = url;\r\n config.method = \"get\";\r\n return this.request(config);\r\n }\r\n\r\n post<T>(url: string, config: AXHttpRequestOptions = {}): HttpResult<T> {\r\n config.url = url;\r\n config.method = \"post\";\r\n return this.request(config);\r\n }\r\n\r\n delete<T>(url: string, config: AXHttpRequestOptions = {}): HttpResult<T> {\r\n config.url = url;\r\n config.method = \"delete\";\r\n return this.request(config);\r\n }\r\n\r\n put<T>(url: string, config: AXHttpRequestOptions = {}): HttpResult<T> {\r\n config.url = url;\r\n config.method = \"put\";\r\n return this.request(config);\r\n }\r\n\r\n\r\n request<T>(config: AXHttpRequestOptions): HttpResult<T> {\r\n return new HttpResult<T>((result?, error?, complete?) => {\r\n this.handleBegin(config).then(c => {\r\n this.http\r\n .request<T>(config.method, config.url, this.mapOptions(config))\r\n //.pipe(this.retry)\r\n .subscribe(data => {\r\n this.handleResult(data, result, complete, config);\r\n }, c => {\r\n this.handleError(c, error, complete, config);\r\n });\r\n });\r\n })\r\n }\r\n\r\n\r\n private handleResult(data, result, complete, config: AXHttpRequestOptions) {\r\n if (this.interceptor) {\r\n this.interceptor.success(config, data).then(c => {\r\n if (result)\r\n result(c);\r\n this.handleComplete(complete, config);\r\n });\r\n }\r\n else {\r\n //\r\n if (result)\r\n result(data);\r\n this.handleComplete(complete, config);\r\n }\r\n }\r\n\r\n private handleBegin(config: AXHttpRequestOptions): Promise<AXHttpRequestOptions> {\r\n return new Promise((resolve) => {\r\n if (!config.headers)\r\n config.headers = {};\r\n if (!config.params)\r\n config.params = {};\r\n //\r\n if (this.interceptor) {\r\n this.interceptor.begin(config).then(c => {\r\n resolve(c);\r\n });\r\n }\r\n else {\r\n resolve(config)\r\n }\r\n })\r\n }\r\n\r\n private handleComplete(complete: Function, config: AXHttpRequestOptions) {\r\n if (complete)\r\n complete();\r\n if (this.interceptor)\r\n this.interceptor.complete(config);\r\n }\r\n\r\n private handleError(c: HttpErrorResponse, error: Function, complete: Function, config: AXHttpRequestOptions) {\r\n let r: IHttpError = {\r\n message: c.message,\r\n status: c.status,\r\n code: c.status?.toString(),\r\n handled: false,\r\n error: c.error\r\n }\r\n if (error) {\r\n error(r);\r\n }\r\n if (!r.handled) {\r\n if (this.interceptor)\r\n this.interceptor.error(config, r);\r\n }\r\n this.handleComplete(complete, config);\r\n }\r\n\r\n private mapOptions(options: AXHttpRequestOptions) {\r\n let headers = new HttpHeaders();\r\n\r\n for (const key in options.headers) {\r\n if (options.headers.hasOwnProperty(key)) {\r\n const value = options.headers[key];\r\n headers = headers.set(key, value)\r\n }\r\n }\r\n let params = new HttpParams();\r\n for (const key in options.params) {\r\n if (options.params.hasOwnProperty(key)) {\r\n const value = options.params[key];\r\n params = params.set(key, value);\r\n }\r\n }\r\n return {\r\n headers: headers,\r\n params: params,\r\n body: options.body,\r\n responseType: options.responseType || 'json'\r\n };\r\n // if (options.method == \"get\") {\r\n // return {\r\n // headers: headers,\r\n // params: params\r\n // };\r\n // }\r\n // else {\r\n // return {\r\n // headers: headers,\r\n // params: params,\r\n // body: options.body\r\n // };\r\n // }\r\n }\r\n\r\n}","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { AXHttpService } from './http.service';\r\n\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule\r\n ],\r\n exports: [HttpClientModule],\r\n providers: [\r\n AXHttpService\r\n ]\r\n})\r\nexport class AXHttpModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: AXHttpModule,\r\n providers: [AXHttpService]\r\n };\r\n }\r\n}","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { AXDateTime } from '../classes/datetime.class';\r\n\r\n@Pipe({ name: 'dt' })\r\nexport class AXDateTimePipe implements PipeTransform {\r\n constructor() { }\r\n\r\n transform(value: any, format?: string): string {\r\n const date: AXDateTime = AXDateTime.convert(value);\r\n if (value == null) {\r\n return '';\r\n }\r\n if (!format) {\r\n return date.toString();\r\n }\r\n else {\r\n return date.format(format);\r\n }\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'html2text' })\r\nexport class AXHtmlToTextPipe implements PipeTransform {\r\n transform(value: string) {\r\n if (value) {\r\n const regexHtml = /<\\/?[^>]+>/gi;\r\n const regexNbsp = / /gi;\r\n const regexAmp = /&/gi;\r\n return value\r\n .replace(regexHtml, '')\r\n .replace(regexNbsp, '')\r\n .replace(regexAmp, '');\r\n } else {\r\n return '';\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXEventService {\r\n private list: any[] = [];\r\n\r\n public broadcast(key: string, options?: any): void {\r\n const d = this.list.find(c => c.key === key);\r\n if (d) {\r\n d.events.forEach(c => {\r\n c(options);\r\n });\r\n }\r\n }\r\n\r\n public on(key: string, callback: (options?: any) => void) {\r\n let d = this.list.find(c => c.key === key);\r\n if (!d) {\r\n d = { key, events: [] };\r\n this.list.push(d);\r\n }\r\n d.events.push(callback);\r\n }\r\n\r\n public destroy(key: string, callback: (options?: any) => void): void {\r\n const d = this.list.find(c => c.key === key);\r\n if (d) {\r\n d.events = [];\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AXNavigatorParam } from '../classes/navigator.class';\r\n\r\n@Injectable()\r\nexport abstract class AXNavigator {\r\n abstract navigate(params: AXNavigatorParam);\r\n abstract popup(params: AXNavigatorParam);\r\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class AXStorageService {\r\n get(key: string): any {\r\n return localStorage.getItem(key) as any;\r\n }\r\n set(key: string, value: any): void {\r\n localStorage.setItem(key, value as string);\r\n }\r\n}\r\n","import { Subject, Observable } from 'rxjs';\r\nimport { getPropByPath} from '../utils/object/object-util';\r\nimport merge from 'lodash-es/merge';\r\n\r\n// @dynamic\r\nexport class AXTranslator {\r\n private static lang: string = 'en';\r\n private static dataChangeSubject = new Subject<any>();\r\n\r\n\r\n static get onChange(): Observable<any> {\r\n return AXTranslator.dataChangeSubject.asObservable();\r\n }\r\n\r\n public static load(lang: string, value: any) {\r\n if (typeof value === 'object') {\r\n if (!AXTranslator[`__data__${lang}`]) {\r\n AXTranslator[`__data__${lang}`] = {};\r\n }\r\n AXTranslator[`__data__${lang}`] = merge(AXTranslator[`__data__${lang}`], value);\r\n }\r\n }\r\n\r\n public static use(lang: string) {\r\n AXTranslator.lang = lang;\r\n }\r\n\r\n public static get(key: string, lang?: string): string {\r\n return getPropByPath(AXTranslator[`__data__${lang || AXTranslator.lang}`], key) || key;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { AXTranslator } from './translator';\r\n\r\n@Injectable({ providedIn: 'platform' })\r\nexport class AXTranslatorService {\r\n\r\n public load(lang: string, value: any) {\r\n AXTranslator.load(lang, value);\r\n }\r\n\r\n public use(lang: string) {\r\n AXTranslator.use(lang);\r\n }\r\n\r\n public get(key: string, lang?: string): string {\r\n return AXTranslator.get(lang, lang);\r\n }\r\n}\r\n\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { AXTranslator } from './translator';\r\n\r\n@Pipe({ name: 'trans', pure: true })\r\nexport class AXTranslatorPipe implements PipeTransform {\r\n\r\n constructor() { }\r\n\r\n // transform(value: string, lang?: string): Promise<string> {\r\n // return new Promise<string>((resolve, reject) => {\r\n // if (!value) {\r\n // resolve(value);\r\n // }\r\n // resolve(this.translate.get(value, lang));\r\n // });\r\n\r\n // }\r\n\r\n transform(value: string, lang?: string): string {\r\n return AXTranslator.get(value, lang);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { AXTranslatorPipe } from './translator.pipe';\r\nimport * as en from '../locale/en.json';\r\nimport * as fa from '../locale/fa.json';\r\nimport { AXTranslator } from './translator';\r\n\r\n\r\n@NgModule({\r\n imports: [],\r\n exports: [AXTranslatorPipe],\r\n declarations: [AXTranslatorPipe],\r\n providers: [],\r\n})\r\nexport class AXTranslatorModule {\r\n constructor() {\r\n AXTranslator.load('en', en);\r\n AXTranslator.load('fa', fa);\r\n }\r\n}\r\n","import { AXFetchProp } from '../object/object-util';\r\n\r\n// @dynamic\r\nexport class AXArrayUtil {\r\n\r\n\r\n static pickRandom(array: any[]): any {\r\n return array[Math.floor(Math.random() * array.length)];\r\n }\r\n\r\n\r\n static insert(array: any[], index, ...rest) {\r\n array.splice.apply(array, [index, 0].concat(Array.prototype.slice.call(rest, 1)));\r\n return array;\r\n }\r\n\r\n static range(min: number, max: number): number[] {\r\n return new Array(max - min).fill(1).map((d, i) => i);\r\n }\r\n\r\n static filter(array: any[], filters: any[]): any[] {\r\n if (filters == null || filters.length === 0) {\r\n return array;\r\n }\r\n const lamda = (item) => {\r\n let result = true;\r\n for (const key in filters) {\r\n if (filters.hasOwnProperty(key)) {\r\n const f = filters[key];\r\n if (f !== 'AND') {\r\n const vals = [];\r\n const mt = f.field.match(/\\[\\:(.*?)\\]/);\r\n if (mt && mt.length > 1) {\r\n const p1 = f.field.replace(mt[0], '');\r\n const p2 = mt[1];\r\n const prop = AXFetchProp(item, p1);\r\n if (prop instanceof Array && prop.length) {\r\n vals.push(...prop.map(m => (AXFetchProp(m, p2))));\r\n } else {\r\n result = false;\r\n }\r\n } else {\r\n vals.push(AXFetchProp(item, f.field));\r\n }\r\n for (const j in vals) {\r\n if (vals.hasOwnProperty(j)) {\r\n let v1 = vals[j];\r\n const v2 = f.value;\r\n if (f.dataType === 'string') {\r\n v1 = v1.toString();\r\n switch (f.condition) {\r\n case 'equal':\r\n result = (v1 && v2) && v1.toLowerCase() === v2.toLowerCase();\r\n break;\r\n case 'not-equal':\r\n result = !((v1 && v2) && v1.toLowerCase() === v2.toLowerCase());\r\n break;\r\n case 'contains':\r\n result = ((v1 && v2) && (v1.toLowerCase().includes(v2.toLowerCase())));\r\n break;\r\n case 'not-contains':\r\n result = !((v1 && v2) && (v1.toLowerCase().includes(v2.toLowerCase())));\r\n break;\r\n case 'start-with':\r\n result = ((v1 && v2) && (v1.toLowerCase().startsWith(v2.toLowerCase())));\r\n break;\r\n case 'end-with':\r\n result = ((v1 && v2) && (v1.toLowerCase().endsWith(v2.toLowerCase())));\r\n break;\r\n case 'is-empty':\r\n result = v1 == null || v1 === undefined;\r\n break;\r\n case 'is-not-empty':\r\n result = !(v1 == null || v1 === undefined);\r\n break;\r\n default:\r\n console.error('The condition is not defined');\r\n result = false;\r\n }\r\n } else if (f.dataType === 'date') {\r\n } else if (f.dataType === 'number') {\r\n v1 = Number(v1);\r\n switch (f.condition) {\r\n case 'equal':\r\n result = v1 === v2;\r\n break;\r\n case 'not-equal':\r\n result = v1 !== v2;\r\n break;\r\n case 'contains':\r\n result = v2 && v2 instanceof Array && v2.includes(v1);\r\n break;\r\n case 'less-than':\r\n result = v1 < v2;\r\n break;\r\n case 'less-than-equal':\r\n result = v1 <= v2;\r\n break;\r\n case 'greater-than':\r\n result = v1 > v2;\r\n break;\r\n case 'greater-than-equal':\r\n result = v1 >= v2;\r\n break;\r\n case 'is-empty':\r\n result = v1 == null || v1 === undefined;\r\n break;\r\n case 'is-not-empty':\r\n result = !(v1 == null || v1 === undefined);\r\n break;\r\n default:\r\n console.error('The condition is not defined');\r\n result = false;\r\n }\r\n } else {\r\n console.error('The datatype is not supported');\r\n result = false;\r\n }\r\n if (result) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (!result) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n return array.filter(lamda);\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","export class AXMathUtil {\r\n static randomRange(min: number, max: number): number {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n}\r\n","import { AXMathUtil } from '../math/math-util';\r\n\r\nexport type AXPlacement =\r\n | 'top-start'\r\n | 'top-middle'\r\n | 'top-end'\r\n | 'center-start'\r\n | 'center-end'\r\n | 'bottom-start'\r\n | 'bottom-middle'\r\n | 'bottom-end';\r\n\r\nexport interface AXIPoint {\r\n x: number;\r\n y: number;\r\n}\r\n\r\nexport interface AXConnectedPosition {\r\n originX: 'start' | 'center' | 'end';\r\n originY: 'top' | 'center' | 'bottom';\r\n overlayX: 'start' | 'center' | 'end';\r\n overlayY: 'top' | 'center' | 'bottom';\r\n weight?: number;\r\n offsetX?: number;\r\n offsetY?: number;\r\n}\r\n\r\nexport class AXPoint implements AXIPoint {\r\n constructor(public x: number, public y: number) {\r\n }\r\n}\r\n\r\nexport interface AXClientRecCtor {\r\n left?: number;\r\n top?: number;\r\n width?: number;\r\n height?: number;\r\n bottom?: number;\r\n right?: number;\r\n}\r\nexport class AXClientRec implements AXClientRecCtor {\r\n\r\n\r\n private _left: number;\r\n public get left(): number {\r\n return this._left;\r\n }\r\n public set left(v: number) {\r\n this._left = v;\r\n }\r\n\r\n\r\n private _top: number;\r\n public get top(): number {\r\n return this._top;\r\n }\r\n public set top(v: number) {\r\n this._top = v;\r\n }\r\n\r\n\r\n private _right: number;\r\n public get right(): number {\r\n return this._right;\r\n }\r\n public set right(v: number) {\r\n this._right = v;\r\n }\r\n\r\n\r\n private _bottom: number;\r\n public get bottom(): number {\r\n return this._bottom;\r\n }\r\n public set bottom(v: number) {\r\n this._bottom = v;\r\n }\r\n\r\n\r\n\r\n private _width: number;\r\n public get width(): number {\r\n return this._width;\r\n }\r\n public set width(v: number) {\r\n this._width = v;\r\n }\r\n\r\n\r\n private _height: number;\r\n public get height(): number {\r\n return this._height;\r\n }\r\n public set height(v: number) {\r\n this._height = v;\r\n }\r\n\r\n\r\n constructor(rec: AXClientRecCtor) {\r\n this._left = rec.left;\r\n this._top = rec.top;\r\n this._width = rec.width;\r\n this._height = rec.height;\r\n this._right = this._left + this._width;\r\n this._bottom = this._top + this._height;\r\n }\r\n\r\n public intersect(rec: AXClientRecCtor): boolean {\r\n return (this.left < rec.left + rec.width &&\r\n this.left + this.width > rec.left &&\r\n this.top < rec.top + rec.height &&\r\n this.top + this.height > rec.top);\r\n }\r\n\r\n\r\n}\r\n// @dynamic\r\nexport class AXHtmlUtil {\r\n static getBoundingRectPoint(el: HTMLElement, placement: AXPlacement): AXPoint {\r\n const rec = el.getBoundingClientRect();\r\n const width = el.offsetWidth;\r\n const height = el.offsetHeight;\r\n switch (placement) {\r\n case 'top-start':\r\n return new AXPoint(rec.left, rec.top);\r\n case 'top-middle':\r\n return new AXPoint(rec.left + (width / 2), rec.top);\r\n case 'top-end':\r\n return new AXPoint(rec.left + (width), rec.top);\r\n case 'center-end':\r\n return new AXPoint(rec.left + (width), rec.top + (height / 2));\r\n case 'bottom-end':\r\n return new AXPoint(rec.left + (width), rec.top + (height));\r\n case 'bottom-middle':\r\n return new AXPoint(rec.left + (width / 2), rec.top + (height));\r\n case 'bottom-start':\r\n return new AXPoint(rec.left, rec.top + (height));\r\n case 'center-start':\r\n return new AXPoint(rec.left, rec.top + (height / 2));\r\n default:\r\n return new AXPoint(rec.left + (width / 2), rec.top + (height));\r\n }\r\n }\r\n\r\n static isInRecPoint(pos: AXIPoint, rec: AXClientRecCtor): boolean {\r\n return pos.x >= rec.left && pos.x <= (rec.left + rec.width) && pos.y >= rec.top && (pos.y <= (rec.top + rec.height));\r\n }\r\n\r\n // static isOverLap(rec1: AXClientRecCtor, rec2: AXClientRecCtor): boolean {\r\n // const r1: AXClientRec = new AXClientRec(rec1);\r\n // const r2: AXClientRec = new AXClientRec(rec2);\r\n\r\n // return ;\r\n // }\r\n\r\n static isInElementBound(pos: AXIPoint, element: HTMLElement): boolean {\r\n const elBound = element.getBoundingClientRect();\r\n return AXHtmlUtil.isInRecPoint(pos, {\r\n left: elBound.left,\r\n width: elBound.width,\r\n top: elBound.top,\r\n height: elBound.height\r\n });\r\n }\r\n\r\n static getDimensions(): { width: number, height: number } {\r\n let winW = 630;\r\n let winH = 460;\r\n if (document.body && document.body.offsetWidth) {\r\n winW = document.body.offsetWidth;\r\n winH = document.body.offsetHeight;\r\n }\r\n if (document.compatMode === 'CSS1Compat' && document.documentElement && document.documentElement.offsetWidth) {\r\n winW = document.documentElement.offsetWidth;\r\n winH = document.documentElement.offsetHeight;\r\n }\r\n if (window.innerWidth && window.innerHeight) {\r\n winW = window.innerWidth;\r\n winH = window.innerHeight;\r\n }\r\n return { width: winW, height: winH };\r\n }\r\n\r\n static getOffsetRight(elem: HTMLElement): number {\r\n let element = elem;\r\n const width = element.offsetWidth;\r\n let right = 0;\r\n while (element.offsetParent) {\r\n right += element.offsetLeft;\r\n element = element.offsetParent as HTMLElement;\r\n }\r\n right += element.offsetLeft;\r\n right = AXHtmlUtil.getDimensions().width - right;\r\n right -= width;\r\n return right;\r\n }\r\n\r\n static getUID(): string {\r\n return 'el-' + AXMathUtil.randomRange(1000000000, 9999999999).toString();\r\n }\r\n\r\n\r\n static getRelatedPosition(source: HTMLElement, placement: AXPlacement, target: HTMLElement, alignment: AXPlacement): AXIPoint {\r\n const result: AXIPoint = { x: 0, y: 0 };\r\n\r\n const sourcePos: AXPoint = AXHtmlUtil.getBoundingRectPoint(source, placement);\r\n\r\n\r\n let top: number = 0;\r\n let left: number = 0;\r\n switch (alignment) {\r\n case 'top-start':\r\n top = sourcePos.y;\r\n left = sourcePos.x;\r\n break;\r\n case 'top-middle':\r\n top = sourcePos.y;\r\n left = sourcePos.x - target.offsetWidth / 2;\r\n break;\r\n case 'top-end':\r\n top = sourcePos.y;\r\n left = sourcePos.x - target.offsetWidth;\r\n break;\r\n case 'center-end':\r\n top = sourcePos.y - target.offsetHeight / 2;\r\n left = sourcePos.x - target.offsetWidth;\r\n break;\r\n case 'bottom-end':\r\n top = sourcePos.y - target.offsetHeight;\r\n left = sourcePos.x - target.offsetWidth;\r\n break;\r\n case 'bottom-middle':\r\n top = sourcePos.y - target.offsetHeight;\r\n left = sourcePos.x - target.offsetWidth / 2;\r\n break;\r\n case 'bottom-start':\r\n top = sourcePos.y - target.offsetHeight;\r\n left = sourcePos.x;\r\n break;\r\n case 'center-start':\r\n top = sourcePos.y - target.offsetHeight / 2;\r\n left = sourcePos.x;\r\n break;\r\n }\r\n result.y = top;\r\n result.x = left;\r\n return result;\r\n }\r\n\r\n\r\n static collision(a: HTMLElement, b: HTMLElement): boolean {\r\n const ac = a.getBoundingClientRect();\r\n const bc = b.getBoundingClientRect();\r\n\r\n if (ac.left < bc.left + bc.width && ac.left + ac.width > bc.left &&\r\n ac.top < bc.top + bc.height && ac.top + ac.height > bc.top) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXHtmlToTextPipe } from '../../pipe/htmlToText.pipe';\r\n\r\n@NgModule({\r\n declarations: [AXHtmlToTextPipe],\r\n imports: [CommonModule],\r\n exports: [AXHtmlToTextPipe],\r\n providers: []\r\n})\r\nexport class AXHtmlModule { }\r\n","import { PreloadingStrategy, Route } from '@angular/router';\r\nimport { Injectable } from '@angular/core';\r\nimport { Subject, Observable, of } from 'rxjs';\r\nimport { mergeMap } from 'rxjs/operators';\r\nimport { AXHtmlUtil } from '../html/html-util';\r\n\r\n\r\n\r\n\r\n@Injectable()\r\nexport class AXOnDemandPreloadService {\r\n subject = new Subject<string>();\r\n tmp: string;\r\n\r\n constructor() {\r\n this.tmp = AXHtmlUtil.getUID();\r\n }\r\n\r\n startPreload(routePath: string) {\r\n const slices: string[] = [];\r\n \r\n\r\n this.subject.next(routePath);\r\n //console.log('ss', this.tmp);\r\n }\r\n}\r\n","import {\r\n ApplicationRef, ComponentFactoryResolver, ComponentRef, Injectable,\r\n Injector, EmbeddedViewRef, Type\r\n} from '@angular/core';\r\nimport { Router, Route } from '@angular/router';\r\nimport { AXOnDemandPreloadService } from './on-demand-preload-strategy.service';\r\n\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXRenderService {\r\n constructor(\r\n private appRef: ApplicationRef,\r\n private router: Router,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private modulePreloadService: AXOnDemandPreloadService,\r\n private injector: Injector) {\r\n }\r\n\r\n\r\n\r\n appendComponent<T>(\r\n componentClass: Type<T>,\r\n options: any = {},\r\n location?: Element): ComponentRef<any> {\r\n\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentClass);\r\n const componentRef = componentFactory.create(this.injector);\r\n this.appRef.attachView(componentRef.hostView);\r\n Object.assign(componentRef.instance, options);\r\n //\r\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n componentRef.onDestroy(() => {\r\n this.appRef.detachView(componentRef.hostView);\r\n });\r\n if (location) {\r\n location.appendChild(domElem);\r\n } else {\r\n document.body.appendChild(domElem);\r\n }\r\n setTimeout(() => {\r\n componentRef.changeDetectorRef.detectChanges();\r\n }, 0);\r\n return componentRef;\r\n }\r\n\r\n findLoadedComponentByRoute(path: string, timeoutTime: number = 10): Promise<Route> {\r\n const delay = 200;\r\n const loop = timeoutTime * 1000 / delay;\r\n return new Promise((resolve, reject) => {\r\n let found: Route = null;\r\n let preload: boolean = false;\r\n const theLoop = (i) => {\r\n setTimeout(() => {\r\n found = this._findLoadedComponentByRoute(path);\r\n if (--i && found == null) {\r\n if (!preload) {\r\n this.modulePreloadService.startPreload(path);\r\n preload = true;\r\n }\r\n theLoop(i);\r\n }\r\n else if (found) {\r\n resolve(found);\r\n }\r\n else {\r\n reject();\r\n }\r\n }, delay);\r\n };\r\n theLoop(loop);\r\n });\r\n }\r\n\r\n private _findLoadedComponentByRoute(search) {\r\n let found: Route = null;\r\n const f = (list, path) => {\r\n for (const p in list) {\r\n if (list.hasOwnProperty(p)) {\r\n const route = list[p];\r\n const pp = (route.path != '' && route.path != null) ? path + '/' + route.path : path;\r\n if (pp == search && !route._loadedConfig && route.component) {\r\n found = route;\r\n break;\r\n } else if (route._loadedConfig) {\r\n f(route._loadedConfig.routes, pp);\r\n }\r\n }\r\n }\r\n };\r\n\r\n for (const p in this.router.config) {\r\n if (this.router.config.hasOwnProperty(p)) {\r\n const route = this.router.config[p];\r\n if (route.path === search && route.component) {\r\n found = route;\r\n }\r\n else if (route['_loadedConfig']) {\r\n f(route['_loadedConfig'].routes, route.path);\r\n }\r\n\r\n }\r\n }\r\n return found;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { AXRenderService } from './render.service';\r\nimport { AXOnDemandPreloadService } from './on-demand-preload-strategy.service';\r\n\r\n\r\n// @dynamic\r\nexport function getOnDemandPreloadServiceFactory() {\r\n return new AXOnDemandPreloadService();\r\n}\r\n\r\n@NgModule({\r\n imports: [],\r\n exports: [],\r\n declarations: [],\r\n providers: [\r\n {\r\n provide: AXOnDemandPreloadService,\r\n useFactory: getOnDemandPreloadServiceFactory\r\n },\r\n AXRenderService\r\n ],\r\n})\r\nexport class AXRenderingModule {\r\n\r\n}\r\n","import { Directive, HostListener, Input } from '@angular/core';\r\nimport { ElementRef } from '@angular/core';\r\n\r\n@Directive({\r\n // tslint:disable-next-line: directive-selector\r\n selector: '[horizontalScroll]'\r\n})\r\nexport class AXHorizontalScrollDirective {\r\n constructor(private el: ElementRef<HTMLElement>) { }\r\n\r\n @Input('horizontalScroll')\r\n scrollValue = 40;\r\n\r\n @HostListener('wheel', ['$event'])\r\n onMouseWheel(e) {\r\n const delta = Math.max(-1, Math.min(1, e.wheelDelta || -e.detail));\r\n this.el.nativeElement.scrollLeft -= delta * this.scrollValue;\r\n }\r\n}\r\n@Directive({\r\n // tslint:disable-next-line: directive-selector\r\n selector: '[verticalScroll]'\r\n})\r\nexport class AXVerticalScrollDirective {\r\n constructor(private el: ElementRef<HTMLElement>) { }\r\n\r\n @Input('verticalScroll')\r\n scrollValue = 40;\r\n\r\n @HostListener('wheel', ['$event'])\r\n onMouseWheel(e) {\r\n const delta = Math.max(-1, Math.min(1, e.wheelDelta || -e.detail));\r\n this.el.nativeElement.scrollTop -= delta * this.scrollValue;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXHorizontalScrollDirective, AXVerticalScrollDirective } from './scroll.directive';\r\n\r\n@NgModule({\r\n declarations: [AXHorizontalScrollDirective, AXVerticalScrollDirective],\r\n imports: [CommonModule],\r\n exports: [AXHorizontalScrollDirective, AXVerticalScrollDirective],\r\n providers: []\r\n})\r\nexport class AXScrollModule { }\r\n","import { Pipe, PipeTransform, Injectable } from '@angular/core';\r\n\r\n@Pipe({ name: 'separator' })\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AXSeparatorPipe implements PipeTransform {\r\n transform(value: any) {\r\n if (value) {\r\n return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n } else {\r\n return '0';\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXSeparatorPipe } from './separator.pipe';\r\n\r\n@NgModule({\r\n declarations: [AXSeparatorPipe],\r\n imports: [CommonModule],\r\n exports: [AXSeparatorPipe],\r\n providers: []\r\n})\r\nexport class AXSeparatorModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { AXDateTimePipe } from './pipe/datetime.pipe';\r\nimport { AXEventService } from './services/event.service';\r\nimport { AXStorageService } from './services/storage.service';\r\nimport { AXScrollModule } from './utils/scroll/scroll.module';\r\nimport { AXTranslatorModule } from './translator/translator.module';\r\n\r\nconst PIPES = [AXDateTimePipe];\r\nconst MODULES = [AXScrollModule, AXTranslatorModule];\r\nconst SERVICES = [AXEventService,\r\n AXStorageService\r\n];\r\n\r\n\r\n@NgModule({\r\n declarations: [...PIPES],\r\n imports: [...MODULES],\r\n exports: [...PIPES],\r\n providers: [...SERVICES]\r\n})\r\nexport class AXCoreModule { }\r\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvcmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNvcmV4L2NvcmUvIiwic291cmNlcyI6WyJhY29yZXgtY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated Use AXBasePageComponent from @acorex/components
|
|
4
|
+
*/
|
|
5
|
+
export class AXBasePageComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.onClosed = new EventEmitter();
|
|
8
|
+
}
|
|
9
|
+
close(data) {
|
|
10
|
+
this.onClosed.emit({
|
|
11
|
+
component: this,
|
|
12
|
+
data: data
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
onClosing(e) {
|
|
16
|
+
}
|
|
17
|
+
ngOnDestroy() {
|
|
18
|
+
this.onClosed.unsubscribe();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wYWdlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9jb3JlLyIsInNvdXJjZXMiOlsibGliL2NsYXNzZXMvYmFzZS1wYWdlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0M7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLG1CQUFtQjtJQUF6QztRQUVJLGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQWlCMUQsQ0FBQztJQWZHLEtBQUssQ0FBQyxJQUFVO1FBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDZixTQUFTLEVBQUUsSUFBSTtZQUNmLElBQUksRUFBRSxJQUFJO1NBQ2IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFNBQVMsQ0FBQyxDQUFNO0lBQ2hCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0NBR0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVhCYXNlUGFnZUNvbXBvbmVudCBmcm9tIEBhY29yZXgvY29tcG9uZW50c1xyXG4gKi9cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYQmFzZVBhZ2VDb21wb25lbnQge1xyXG5cclxuICAgIG9uQ2xvc2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIGNsb3NlKGRhdGE/OiBhbnkpIHtcclxuICAgICAgICB0aGlzLm9uQ2xvc2VkLmVtaXQoe1xyXG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgICAgIGRhdGE6IGRhdGFcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNsb3NpbmcoZTogYW55KTogdm9pZCB8IFByb21pc2U8dm9pZD4ge1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMub25DbG9zZWQudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcblxyXG59XHJcblxyXG5cclxuIl19
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export class AXColorUtil {
|
|
2
|
+
static hex2Rgb(hexColor) {
|
|
3
|
+
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexColor);
|
|
4
|
+
return result ? {
|
|
5
|
+
r: parseInt(result[1], 16),
|
|
6
|
+
g: parseInt(result[2], 16),
|
|
7
|
+
b: parseInt(result[3], 16)
|
|
8
|
+
} : null;
|
|
9
|
+
}
|
|
10
|
+
static rgb2Hex(r, g, b, a = 255) {
|
|
11
|
+
let alpha;
|
|
12
|
+
let hex = (r | 1 << 8).toString(16).slice(1) +
|
|
13
|
+
(g | 1 << 8).toString(16).slice(1) +
|
|
14
|
+
(b | 1 << 8).toString(16).slice(1);
|
|
15
|
+
if (a !== 255) {
|
|
16
|
+
alpha = a;
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
alpha = 1;
|
|
20
|
+
}
|
|
21
|
+
alpha = Math.round(alpha * 100) / 100;
|
|
22
|
+
alpha = Math.round(alpha * 255);
|
|
23
|
+
const hexAlpha = (alpha + 0x10000).toString(16).substr(-2).toUpperCase();
|
|
24
|
+
return '#' + hex + (alpha == 255 ? '' : hexAlpha);
|
|
25
|
+
}
|
|
26
|
+
;
|
|
27
|
+
static illuminance(hexColor) {
|
|
28
|
+
const rgbColor = AXColorUtil.hex2Rgb(hexColor);
|
|
29
|
+
if (!rgbColor) {
|
|
30
|
+
return -1;
|
|
31
|
+
}
|
|
32
|
+
const r = rgbColor.r;
|
|
33
|
+
const g = rgbColor.g;
|
|
34
|
+
const b = rgbColor.b;
|
|
35
|
+
const a = [r, g, b].map(v => {
|
|
36
|
+
v /= 255;
|
|
37
|
+
return (v <= 0.03928) ?
|
|
38
|
+
v / 12.92 :
|
|
39
|
+
Math.pow(((v + 0.055) / 1.055), 2.4);
|
|
40
|
+
});
|
|
41
|
+
return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722;
|
|
42
|
+
}
|
|
43
|
+
static contrastToWhite(hexColor) {
|
|
44
|
+
const whiteIlluminance = 1;
|
|
45
|
+
const illuminance = AXColorUtil.illuminance(hexColor);
|
|
46
|
+
return whiteIlluminance / illuminance;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNvcmV4L2NvcmUvIiwic291cmNlcyI6WyJsaWIvY2xhc3Nlcy9jb2xvci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLE9BQU8sV0FBVztJQUdwQixNQUFNLENBQUMsT0FBTyxDQUFDLFFBQWdCO1FBQzNCLE1BQU0sTUFBTSxHQUFHLDJDQUEyQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxRSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDWixDQUFDLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDMUIsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzFCLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztTQUM3QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxJQUFZLEdBQUc7UUFDM0QsSUFBSSxLQUFLLENBQUM7UUFDVixJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDeEMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRTtZQUNYLEtBQUssR0FBRyxDQUFDLENBQUM7U0FDYjthQUFNO1lBQ0gsS0FBSyxHQUFHLENBQUMsQ0FBQztTQUNiO1FBRUQsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUN0QyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDaEMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pFLE9BQU8sR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUFBLENBQUM7SUFFRixNQUFNLENBQUMsV0FBVyxDQUFDLFFBQWdCO1FBQy9CLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNYLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDYjtRQUNELE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDckIsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNyQixNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDeEIsQ0FBQyxJQUFJLEdBQUcsQ0FBQztZQUNULE9BQU8sQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDbkIsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO2dCQUNYLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDekQsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsUUFBZ0I7UUFDbkMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDM0IsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RCxPQUFPLGdCQUFnQixHQUFHLFdBQVcsQ0FBQztJQUMxQyxDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFYQ29sb3Ige1xyXG4gICAgaWQ/OiBzdHJpbmc7XHJcbiAgICBjb2xvcj86IHN0cmluZztcclxuICAgIGNvZGU6IHN0cmluZztcclxuICAgIHNlbGVjdGVkPzogYm9vbGVhbjtcclxuICAgIGFjdGl2ZT86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBWENvbG9yVXRpbCB7XHJcblxyXG5cclxuICAgIHN0YXRpYyBoZXgyUmdiKGhleENvbG9yOiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSAvXiM/KFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pJC9pLmV4ZWMoaGV4Q29sb3IpO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQgPyB7XHJcbiAgICAgICAgICAgIHI6IHBhcnNlSW50KHJlc3VsdFsxXSwgMTYpLFxyXG4gICAgICAgICAgICBnOiBwYXJzZUludChyZXN1bHRbMl0sIDE2KSxcclxuICAgICAgICAgICAgYjogcGFyc2VJbnQocmVzdWx0WzNdLCAxNilcclxuICAgICAgICB9IDogbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgcmdiMkhleChyOiBudW1iZXIsIGc6IG51bWJlciwgYjogbnVtYmVyLCBhOiBudW1iZXIgPSAyNTUpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBhbHBoYTtcclxuICAgICAgICBsZXQgaGV4ID0gKHIgfCAxIDw8IDgpLnRvU3RyaW5nKDE2KS5zbGljZSgxKSArXHJcbiAgICAgICAgICAgIChnIHwgMSA8PCA4KS50b1N0cmluZygxNikuc2xpY2UoMSkgK1xyXG4gICAgICAgICAgICAoYiB8IDEgPDwgOCkudG9TdHJpbmcoMTYpLnNsaWNlKDEpO1xyXG4gICAgICAgIGlmIChhICE9PSAyNTUpIHtcclxuICAgICAgICAgICAgYWxwaGEgPSBhO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGFscGhhID0gMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGFscGhhID0gTWF0aC5yb3VuZChhbHBoYSAqIDEwMCkgLyAxMDA7XHJcbiAgICAgICAgYWxwaGEgPSBNYXRoLnJvdW5kKGFscGhhICogMjU1KTtcclxuICAgICAgICBjb25zdCBoZXhBbHBoYSA9IChhbHBoYSArIDB4MTAwMDApLnRvU3RyaW5nKDE2KS5zdWJzdHIoLTIpLnRvVXBwZXJDYXNlKCk7XHJcbiAgICAgICAgcmV0dXJuICcjJyArIGhleCArIChhbHBoYSA9PSAyNTUgPyAnJyA6IGhleEFscGhhKTtcclxuICAgIH07XHJcblxyXG4gICAgc3RhdGljIGlsbHVtaW5hbmNlKGhleENvbG9yOiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCByZ2JDb2xvciA9IEFYQ29sb3JVdGlsLmhleDJSZ2IoaGV4Q29sb3IpO1xyXG4gICAgICAgIGlmICghcmdiQ29sb3IpIHtcclxuICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCByID0gcmdiQ29sb3IucjtcclxuICAgICAgICBjb25zdCBnID0gcmdiQ29sb3IuZztcclxuICAgICAgICBjb25zdCBiID0gcmdiQ29sb3IuYjtcclxuICAgICAgICBjb25zdCBhID0gW3IsIGcsIGJdLm1hcCh2ID0+IHtcclxuICAgICAgICAgICAgdiAvPSAyNTU7XHJcbiAgICAgICAgICAgIHJldHVybiAodiA8PSAwLjAzOTI4KSA/XHJcbiAgICAgICAgICAgICAgICB2IC8gMTIuOTIgOlxyXG4gICAgICAgICAgICAgICAgTWF0aC5wb3coKCh2ICsgMC4wNTUpIC8gMS4wNTUpLCAyLjQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBhWzBdICogMC4yMTI2ICsgYVsxXSAqIDAuNzE1MiArIGFbMl0gKiAwLjA3MjI7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGNvbnRyYXN0VG9XaGl0ZShoZXhDb2xvcjogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3Qgd2hpdGVJbGx1bWluYW5jZSA9IDE7XHJcbiAgICAgICAgY29uc3QgaWxsdW1pbmFuY2UgPSBBWENvbG9yVXRpbC5pbGx1bWluYW5jZShoZXhDb2xvcik7XHJcbiAgICAgICAgcmV0dXJuIHdoaXRlSWxsdW1pbmFuY2UgLyBpbGx1bWluYW5jZTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19
|