@acorex/core 5.1.1 → 5.1.5

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.
Files changed (131) hide show
  1. package/README.md +2 -23
  2. package/esm2020/lib/classes/base-page.class.mjs +28 -0
  3. package/esm2020/lib/classes/color.class.mjs +49 -0
  4. package/esm2020/lib/classes/datetime.class.mjs +314 -0
  5. package/esm2020/lib/classes/menu.class.mjs +27 -0
  6. package/esm2020/lib/classes/navigator.class.mjs +2 -0
  7. package/esm2020/lib/classes/popup.class.mjs +2 -0
  8. package/esm2020/lib/classes/promise.class.mjs +19 -0
  9. package/esm2020/lib/classes/sectionlist.class.mjs +2 -0
  10. package/esm2020/lib/classes/select.class.mjs +3 -0
  11. package/esm2020/lib/core.module.mjs +20 -11
  12. package/esm2020/lib/error/error.class.mjs +2 -0
  13. package/esm2020/lib/error/error.module.mjs +19 -0
  14. package/esm2020/lib/error/error.service.mjs +21 -0
  15. package/esm2020/lib/events/keyboard.mjs +2 -0
  16. package/esm2020/lib/http/http-error.class.mjs +2 -0
  17. package/esm2020/lib/http/http-events.interceptor.mjs +3 -0
  18. package/esm2020/lib/http/http-request.class.mjs +2 -0
  19. package/esm2020/lib/http/http-result.class.mjs +21 -0
  20. package/esm2020/lib/http/http.module.mjs +37 -0
  21. package/esm2020/lib/http/http.service.mjs +145 -0
  22. package/esm2020/lib/locale/en.json +255 -0
  23. package/esm2020/lib/locale/fa.json +244 -0
  24. package/esm2020/lib/pipe/datetime.pipe.mjs +25 -0
  25. package/esm2020/lib/pipe/htmlToText.pipe.mjs +25 -0
  26. package/esm2020/lib/platform/platform.service.mjs +10 -6
  27. package/esm2020/lib/services/config.mjs +29 -0
  28. package/esm2020/lib/services/event.service.mjs +36 -0
  29. package/esm2020/lib/services/navigator.service.mjs +10 -0
  30. package/esm2020/lib/services/storage.service.mjs +16 -0
  31. package/esm2020/lib/translator/translator.mjs +26 -0
  32. package/esm2020/lib/translator/translator.module.mjs +25 -0
  33. package/esm2020/lib/translator/translator.pipe.mjs +24 -0
  34. package/esm2020/lib/translator/translator.service.mjs +21 -0
  35. package/esm2020/lib/utils/array/array-util.mjs +133 -0
  36. package/esm2020/lib/utils/html/html-util.mjs +192 -0
  37. package/esm2020/lib/utils/html/html.module.mjs +19 -0
  38. package/esm2020/lib/utils/math/math-util.mjs +6 -0
  39. package/esm2020/lib/utils/object/object-util.mjs +83 -0
  40. package/esm2020/lib/utils/render/on-demand-preload-strategy.service.mjs +20 -0
  41. package/esm2020/lib/utils/render/render.service.mjs +103 -0
  42. package/esm2020/lib/utils/render/rendering.module.mjs +35 -0
  43. package/esm2020/lib/utils/scroll/scroll.directive.mjs +54 -0
  44. package/esm2020/lib/utils/scroll/scroll.module.mjs +19 -0
  45. package/esm2020/lib/utils/separator/separator.module.mjs +19 -0
  46. package/esm2020/lib/utils/separator/separator.pipe.mjs +33 -0
  47. package/esm2020/public-api.mjs +43 -12
  48. package/fesm2015/acorex-core.mjs +1939 -1006
  49. package/fesm2015/acorex-core.mjs.map +1 -1
  50. package/fesm2020/acorex-core.mjs +1939 -1007
  51. package/fesm2020/acorex-core.mjs.map +1 -1
  52. package/lib/classes/base-page.class.d.ts +13 -0
  53. package/lib/classes/color.class.d.ts +17 -0
  54. package/lib/classes/datetime.class.d.ts +63 -0
  55. package/lib/classes/menu.class.d.ts +34 -0
  56. package/lib/classes/navigator.class.d.ts +5 -0
  57. package/lib/classes/popup.class.d.ts +12 -0
  58. package/lib/classes/promise.class.d.ts +7 -0
  59. package/lib/classes/sectionlist.class.d.ts +8 -0
  60. package/lib/classes/select.class.d.ts +7 -0
  61. package/lib/core.module.d.ts +4 -2
  62. package/lib/error/error.class.d.ts +4 -0
  63. package/lib/error/error.module.d.ts +7 -0
  64. package/lib/error/error.service.d.ts +13 -0
  65. package/lib/events/keyboard.d.ts +2 -0
  66. package/lib/http/http-error.class.d.ts +7 -0
  67. package/lib/http/http-events.interceptor.d.ts +10 -0
  68. package/lib/http/http-request.class.d.ts +14 -0
  69. package/lib/http/http-result.class.d.ts +11 -0
  70. package/lib/http/http.module.d.ts +10 -0
  71. package/lib/http/http.service.d.ts +23 -0
  72. package/lib/{dateTime → pipe}/datetime.pipe.d.ts +2 -2
  73. package/lib/pipe/htmlToText.pipe.d.ts +7 -0
  74. package/lib/{config/configs.d.ts → services/config.d.ts} +1 -1
  75. package/lib/{events → services}/event.service.d.ts +0 -0
  76. package/lib/services/navigator.service.d.ts +8 -0
  77. package/lib/services/storage.service.d.ts +7 -0
  78. package/lib/{translation → translator}/translator.d.ts +1 -3
  79. package/lib/translator/translator.module.d.ts +8 -0
  80. package/lib/{translation → translator}/translator.pipe.d.ts +1 -0
  81. package/lib/translator/translator.service.d.ts +8 -0
  82. package/lib/utils/array/array-util.d.ts +6 -0
  83. package/lib/utils/html/html-util.d.ts +62 -0
  84. package/lib/utils/html/html.module.d.ts +8 -0
  85. package/lib/utils/math/math-util.d.ts +3 -0
  86. package/lib/utils/object/object-util.d.ts +7 -0
  87. package/lib/utils/render/on-demand-preload-strategy.service.d.ts +10 -0
  88. package/lib/utils/render/render.service.d.ts +18 -0
  89. package/lib/utils/render/rendering.module.d.ts +8 -0
  90. package/lib/utils/scroll/scroll.directive.d.ts +18 -0
  91. package/lib/utils/scroll/scroll.module.d.ts +8 -0
  92. package/lib/utils/separator/separator.module.d.ts +8 -0
  93. package/lib/utils/separator/separator.pipe.d.ts +8 -0
  94. package/package.json +6 -11
  95. package/public-api.d.ts +42 -11
  96. package/config/ax-preset.js +0 -182
  97. package/esm2020/lib/config/configs.mjs +0 -29
  98. package/esm2020/lib/dateTime/datetime.class.mjs +0 -295
  99. package/esm2020/lib/dateTime/datetime.module.mjs +0 -33
  100. package/esm2020/lib/dateTime/datetime.pipe.mjs +0 -26
  101. package/esm2020/lib/dateTime/georgian.calendar.mjs +0 -189
  102. package/esm2020/lib/dateTime/index.mjs +0 -6
  103. package/esm2020/lib/dateTime/jalali.calendar.mjs +0 -359
  104. package/esm2020/lib/events/event.service.mjs +0 -36
  105. package/esm2020/lib/events/index.mjs +0 -2
  106. package/esm2020/lib/hotkeys/hotkeys.service.mjs +0 -37
  107. package/esm2020/lib/hotkeys/index.mjs +0 -2
  108. package/esm2020/lib/translation/index.mjs +0 -4
  109. package/esm2020/lib/translation/translation.module.mjs +0 -18
  110. package/esm2020/lib/translation/translator.mjs +0 -42
  111. package/esm2020/lib/translation/translator.pipe.mjs +0 -15
  112. package/esm2020/lib/utils/drawing-util.mjs +0 -27
  113. package/esm2020/lib/utils/index.mjs +0 -5
  114. package/esm2020/lib/utils/object-util.mjs +0 -39
  115. package/esm2020/lib/utils/safe.pipe.mjs +0 -30
  116. package/esm2020/lib/utils/string-util.mjs +0 -19
  117. package/lib/dateTime/datetime.class.d.ts +0 -100
  118. package/lib/dateTime/datetime.module.d.ts +0 -8
  119. package/lib/dateTime/georgian.calendar.d.ts +0 -20
  120. package/lib/dateTime/index.d.ts +0 -5
  121. package/lib/dateTime/jalali.calendar.d.ts +0 -35
  122. package/lib/events/index.d.ts +0 -1
  123. package/lib/hotkeys/hotkeys.service.d.ts +0 -17
  124. package/lib/hotkeys/index.d.ts +0 -1
  125. package/lib/translation/index.d.ts +0 -3
  126. package/lib/translation/translation.module.d.ts +0 -7
  127. package/lib/utils/drawing-util.d.ts +0 -17
  128. package/lib/utils/index.d.ts +0 -4
  129. package/lib/utils/object-util.d.ts +0 -4
  130. package/lib/utils/safe.pipe.d.ts +0 -10
  131. package/lib/utils/string-util.d.ts +0 -6
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-core.mjs","sources":["../../../../projects/acorex/core/src/lib/utils/object-util.ts","../../../../projects/acorex/core/src/lib/utils/drawing-util.ts","../../../../projects/acorex/core/src/lib/utils/string-util.ts","../../../../projects/acorex/core/src/lib/utils/safe.pipe.ts","../../../../projects/acorex/core/src/lib/core.module.ts","../../../../projects/acorex/core/src/lib/config/configs.ts","../../../../projects/acorex/core/src/lib/dateTime/datetime.class.ts","../../../../projects/acorex/core/src/lib/dateTime/datetime.pipe.ts","../../../../projects/acorex/core/src/lib/dateTime/georgian.calendar.ts","../../../../projects/acorex/core/src/lib/dateTime/jalali.calendar.ts","../../../../projects/acorex/core/src/lib/dateTime/datetime.module.ts","../../../../projects/acorex/core/src/lib/events/event.service.ts","../../../../projects/acorex/core/src/lib/hotkeys/hotkeys.service.ts","../../../../projects/acorex/core/src/lib/translation/translator.ts","../../../../projects/acorex/core/src/lib/translation/translator.pipe.ts","../../../../projects/acorex/core/src/lib/translation/translation.module.ts","../../../../projects/acorex/core/src/lib/platform/platform.service.ts","../../../../projects/acorex/core/src/public-api.ts","../../../../projects/acorex/core/src/acorex-core.ts"],"sourcesContent":["// @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 // static fetchProp(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 AXObjectUtil.fetchProp(obj[prop.substring(0, index)], prop.substr(index + 1));\r\n // }\r\n\r\n // return obj[prop];\r\n // }\r\n\r\n // static 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\n // static 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}","export interface AXPoint {\r\n x: number;\r\n y: number;\r\n}\r\n\r\nexport interface AXBoundingClientRect {\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\n// @dynamic\r\nexport class AXDrawingUtil {\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 static isInElementBound(pos: AXPoint, element: HTMLElement): boolean {\r\n const elBound = element.getBoundingClientRect();\r\n return AXDrawingUtil.isInRecPoint(pos, {\r\n left: elBound.x,\r\n width: elBound.width,\r\n top: elBound.y,\r\n height: elBound.height\r\n });\r\n }\r\n\r\n static isInRecPoint(pos: AXPoint, rec: AXBoundingClientRect): 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}","// @dynamic\r\nexport class AXStringUtil {\r\n\r\n static getWordBoundsAtPosition(str: string, position: number): { start: number, end: number } {\r\n const isSpace = (c) => /[^a-zA-Z0-9]+/i.test(c);\r\n let start = position - 1;\r\n\r\n while (start >= 0 && !isSpace(str[start])) {\r\n start -= 1;\r\n }\r\n start = Math.max(0, start + 1);\r\n const leftSideString = str.slice(start).match(/[a-zA-Z0-9]+/i);\r\n start += leftSideString.index;\r\n let end = start + leftSideString[0].length;\r\n return {\r\n start,\r\n end\r\n };\r\n }\r\n\r\n\r\n\r\n\r\n\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n\tname: 'safe',\r\n\tpure: true\r\n})\r\nexport class AXSafePipe implements PipeTransform {\r\n\r\n\tconstructor(protected sanitizer: DomSanitizer) { }\r\n\r\n\tpublic transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\r\n\t\tif (value == null || value == undefined || value == '')\r\n\t\t\treturn null;\r\n\t\tswitch (type) {\r\n\t\t\tcase 'html': return this.sanitizer.bypassSecurityTrustHtml(value);\r\n\t\t\tcase 'style': return this.sanitizer.bypassSecurityTrustStyle(value);\r\n\t\t\tcase 'script': return this.sanitizer.bypassSecurityTrustScript(value);\r\n\t\t\tcase 'url': return this.sanitizer.bypassSecurityTrustUrl(value);\r\n\t\t\tcase 'resourceUrl': return this.sanitizer.bypassSecurityTrustResourceUrl(value);\r\n\t\t\tdefault: throw new Error(`Invalid safe type specified: ${type}`);\r\n\t\t}\r\n\t}\r\n}","import { NgModule } from \"@angular/core\";\r\nimport { AXSafePipe } from \"./utils\";\r\n\r\n@NgModule({\r\n imports: [],\r\n exports: [AXSafePipe],\r\n declarations: [AXSafePipe],\r\n providers: [],\r\n})\r\nexport class AXCoreModule { }\r\n","import _ from 'lodash';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { AXObjectUtil } from '../utils/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 \r\n _.set(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 _.merge(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, defaultValue?: any): any {\r\n return _.get(AXConfig.dataModel,path,defaultValue);\r\n }\r\n}","import _ from 'lodash';\r\nimport { AXConfig } from '../config/configs';\r\n\r\n\r\n\r\nexport type TimeUnit =\r\n | 'ms'\r\n | 'second'\r\n | 'minute'\r\n | 'hour'\r\n | 'day'\r\n | 'month'\r\n | 'year'\r\n | 'week';\r\n\r\n\r\nexport interface AXDateValue {\r\n year: number,\r\n month: number,\r\n date: number,\r\n hours?: number,\r\n minutes?: number,\r\n seconds?: number,\r\n ms?: number\r\n calendar: string;\r\n}\r\n\r\n\r\nexport interface AXCalendar {\r\n monthNames: string[];\r\n\r\n monthShortNames: string[];\r\n\r\n dayNames: string[];\r\n\r\n dayShortNames: string[];\r\n\r\n name(): string;\r\n\r\n dayOfMonth(date: Date): number;\r\n\r\n dayOfYear(date: Date): number;\r\n\r\n dayOfWeek(date: Date): number;\r\n\r\n monthOfYear(date: Date): number;\r\n\r\n weekOfYear(date: Date): number;\r\n\r\n year(date: Date): number;\r\n\r\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime;\r\n\r\n set(date: Date, unit: TimeUnit, value: number): AXDateTime;\r\n\r\n startOf(date: Date, unit: TimeUnit): AXDateTime;\r\n\r\n endOf(date: Date, unit: TimeUnit): AXDateTime;\r\n\r\n create(value: AXDateValue): AXDateTime;\r\n}\r\n\r\n\r\n\r\n\r\n// @dynamic\r\nexport class AXDateTime {\r\n static convert(\r\n value: Date | AXDateTime | string,\r\n calendar: string = AXConfig.get('dateTime.calendar')\r\n ): AXDateTime {\r\n let date: AXDateTime;\r\n if (typeof value === 'string' || value instanceof String) {\r\n date = new AXDateTime(value as string, calendar);\r\n } else if (value instanceof Date) {\r\n date = new AXDateTime(value as Date, calendar);\r\n } else if (value instanceof AXDateTime) {\r\n date = new AXDateTime(value.date, calendar);\r\n }\r\n return date;\r\n }\r\n\r\n static from(value: AXDateValue = {\r\n calendar: AXConfig.get('dateTime.calendar'),\r\n year: 1,\r\n month: 1,\r\n date: 1,\r\n hours: 0,\r\n minutes: 0,\r\n seconds: 0,\r\n ms: 0\r\n }): AXDateTime {\r\n // let date: AXDateTime = new AXDateTime(new Date(), value.calendar);\r\n // date.set('year', value.year);\r\n // date.set('month', value.month);\r\n // date.set('day', value.date);\r\n // date.set('hour', value.hours);\r\n // date.set('minute', value.minutes);\r\n // date.set('second', value.seconds);\r\n // date.set('ms', value.ms);\r\n\r\n return AXDateTime.resolveCalendar(value.calendar).create(value);\r\n }\r\n\r\n\r\n static resolveCalendar(calendar: string | AXCalendar): AXCalendar {\r\n return typeof calendar == 'string'\r\n ? AXConfig.get(`dateTime.calendars.${calendar}`)\r\n : calendar;\r\n }\r\n\r\n\r\n private _date: Date;\r\n\r\n get date(): Date {\r\n return this._date;\r\n }\r\n\r\n private _calendar: AXCalendar;\r\n get calendar(): AXCalendar {\r\n return this._calendar;\r\n }\r\n\r\n\r\n\r\n constructor(\r\n value: Date | string = new Date(),\r\n calendar: string | AXCalendar = AXConfig.get(`dateTime.calendar`)\r\n ) {\r\n this._calendar = AXDateTime.resolveCalendar(calendar);\r\n if (value instanceof Date) {\r\n this._date = value as Date;\r\n } else {\r\n //TODO: parse jalali\r\n this._date = new Date(value);\r\n }\r\n }\r\n\r\n clone(): AXDateTime {\r\n return new AXDateTime(this.date, this.calendar);\r\n }\r\n\r\n get dayOfMonth(): number {\r\n return this._calendar.dayOfMonth(this.date);\r\n }\r\n\r\n get dayOfYear(): number {\r\n return this._calendar.dayOfYear(this.date);\r\n }\r\n\r\n get dayOfWeek(): number {\r\n return this._calendar.dayOfWeek(this.date);\r\n }\r\n\r\n get hour(): number {\r\n return this._date.getHours();\r\n }\r\n\r\n get minute(): number {\r\n return this._date.getMinutes();\r\n }\r\n\r\n get second(): number {\r\n return this._date.getSeconds();\r\n }\r\n\r\n get year(): number {\r\n return this._calendar.year(this.date);\r\n }\r\n\r\n get monthOfYear(): number {\r\n return this._calendar.monthOfYear(this.date);\r\n }\r\n\r\n get weekOfYear(): number {\r\n return this._calendar.weekOfYear(this.date);\r\n }\r\n\r\n get month(): AXCalendarMonth {\r\n return new AXCalendarMonth(this);\r\n }\r\n\r\n add(unit: TimeUnit, amount: number): AXDateTime {\r\n return this._calendar.add(this.date, unit, amount);\r\n }\r\n\r\n set(unit: TimeUnit = 'day', value: number): AXDateTime {\r\n return this._calendar.set(this.date, unit, value);\r\n }\r\n\r\n duration(\r\n end: Date | AXDateTime,\r\n unit: TimeUnit = 'day'\r\n ): AXTimeSpan {\r\n const range = new AXDateTimeRange(\r\n this,\r\n AXDateTime.convert(end, this.calendar.name())\r\n );\r\n return range.duration();\r\n }\r\n\r\n startOf(unit: TimeUnit = 'day'): AXDateTime {\r\n return this._calendar.startOf(this.date, unit);\r\n }\r\n\r\n endOf(unit: TimeUnit = 'day'): AXDateTime {\r\n return this._calendar.endOf(this.date, unit);\r\n }\r\n\r\n private _formatKeys = {\r\n ss: () => this.pad(this.date.getSeconds(), 2),\r\n s: () => this.date.getSeconds().toString(),\r\n //\r\n dd: () => this.pad(this.calendar.dayOfMonth(this.date), 2),\r\n d: () => this.calendar.dayOfMonth(this.date).toString(),\r\n //\r\n mm: () => this.pad(this.date.getMinutes(), 2),\r\n m: () => this.date.getMinutes().toString(),\r\n //\r\n MMMM: () => this.calendar.monthNames[this.calendar.monthOfYear(this.date) - 1],\r\n MMM: () => this.calendar.monthShortNames[this.calendar.monthOfYear(this.date) - 1],\r\n MM: () => this.pad(this.calendar.monthOfYear(this.date), 2),\r\n //\r\n DDDD: () => this.calendar.dayNames[this.calendar.dayOfWeek(this.date) - 1],\r\n DDD: () => this.calendar.dayShortNames[this.calendar.dayOfWeek(this.date) - 1],\r\n //\r\n yyyy: () => this.calendar.year(this.date).toString(),\r\n YYYY: () => this.calendar.year(this.date).toString(),\r\n yy: () => this.calendar.year(this.date).toString().substring(2),\r\n YY: () => this.calendar.year(this.date).toString().substring(2),\r\n //\r\n HH: () => this.pad(this.date.getHours(), 2),\r\n H: () => this.date.getHours().toString(),\r\n //\r\n hh: () => this.pad((this.date.getHours() % 12 || 12), 2),\r\n h: () => (this.date.getHours() % 12 || 12).toString(),\r\n //\r\n A: () => (this.date.getHours() < 12) ? 'am' : 'pm',\r\n a: () => (this.date.getHours() < 12) ? 'am' : 'pm',\r\n };\r\n\r\n format(\r\n format: string = AXConfig.get('dateTime.shortDateFormat')\r\n ): string {\r\n const re = new RegExp(_.orderBy(Object.keys(this._formatKeys), c => c.length, ['desc']).join(\"|\"), \"gi\");\r\n return format.replace(re, (matched) => {\r\n return this._formatKeys[matched]();\r\n });\r\n }\r\n\r\n private pad(n, width, z = '0') {\r\n n = n + '';\r\n return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;\r\n }\r\n\r\n toString(format: string = AXConfig.get('dateTime.shortDateFormat')): string {\r\n return this.format(format);\r\n }\r\n\r\n equal(value: Date | AXDateTime, unit: TimeUnit = 'day') {\r\n return this.compare(value, unit) == 0;\r\n }\r\n\r\n compare(value: Date | AXDateTime, unit: TimeUnit = 'day') {\r\n const val = AXDateTime.convert(value, this.calendar.name());\r\n const func = (v1: number, v2: number) => {\r\n if (v1 == v2) {\r\n return 0;\r\n } else if (v1 > v2) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n let p = 0;\r\n switch (unit) {\r\n case 'year':\r\n return func(this.year, val.year);\r\n case 'week':\r\n p = this.compare(val, 'year');\r\n return p == 0 ? func(this.weekOfYear, val.weekOfYear) : p;\r\n case 'month':\r\n p = this.compare(val, 'year');\r\n return p == 0 ? func(this.monthOfYear, val.monthOfYear) : p;\r\n case 'day':\r\n p = this.compare(val, 'year');\r\n return p == 0 ? func(this.dayOfYear, val.dayOfYear) : p;\r\n case 'hour':\r\n p = this.compare(val, 'day');\r\n return p == 0 ? func(this.hour, val.hour) : p;\r\n case 'minute':\r\n p = this.compare(val, 'hour');\r\n return p == 0 ? func(this.minute, val.minute) : p;\r\n case 'second':\r\n p = this.compare(val, 'minute');\r\n return p == 0 ? func(this.second, val.second) : p;\r\n default:\r\n return func(this.date.getTime(), val.date.getTime());\r\n }\r\n\r\n }\r\n\r\n convert(calendar: string) {\r\n return AXDateTime.convert(this, calendar);\r\n }\r\n}\r\n\r\nexport class AXCalendarMonth {\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.index = date.date.getMonth();\r\n this.name = date.format('MMMM');\r\n this.range = new AXDateTimeRange(\r\n new AXDateTime(date.startOf('month').date, date.calendar),\r\n new AXDateTime(date.endOf('month').date, date.calendar)\r\n );\r\n }\r\n\r\n private readonly index: number;\r\n private readonly name: string;\r\n}\r\n\r\nexport interface AXTimeSpanTotal {\r\n miliseconds: number;\r\n seconds: number;\r\n minutes: number;\r\n hours: number;\r\n days: number;\r\n weeks: number;\r\n months: number;\r\n years: number;\r\n}\r\n\r\nexport interface AXTimeSpan {\r\n miliseconds: number;\r\n seconds: number;\r\n minutes: number;\r\n hours: number;\r\n days: number;\r\n months: number;\r\n years: number;\r\n total: AXTimeSpanTotal;\r\n}\r\n\r\nexport class AXDateTimeRange {\r\n private _startTime: AXDateTime;\r\n private _endTime: AXDateTime;\r\n\r\n public get startTime(): AXDateTime {\r\n return this._startTime;\r\n }\r\n\r\n public get endTime(): AXDateTime {\r\n return this._endTime;\r\n }\r\n\r\n constructor(startTime: AXDateTime, endTime: AXDateTime) {\r\n this._startTime = startTime;\r\n this._endTime = endTime;\r\n }\r\n\r\n duration(): AXTimeSpan {\r\n const result: AXTimeSpan = {\r\n miliseconds: 0,\r\n seconds: 0,\r\n minutes: 0,\r\n hours: 0,\r\n days: 0,\r\n months: 0,\r\n years: 0,\r\n total: {\r\n miliseconds: 0,\r\n seconds: 0,\r\n minutes: 0,\r\n hours: 0,\r\n days: 0,\r\n weeks: 0,\r\n months: 0,\r\n years: 0,\r\n },\r\n };\r\n\r\n const one_second = 1000;\r\n const one_min = one_second * 60;\r\n const one_hour = one_min * 60;\r\n const one_day = one_hour * 24;\r\n const one_week = one_day * 7;\r\n const one_year = 365.25 * one_day;\r\n const one_month = one_year / 12;\r\n const startTime = this._startTime.date.getTime();\r\n const endTime = this._endTime.date.getTime();\r\n const diff = Math.abs(endTime - startTime);\r\n //\r\n result.total.miliseconds = diff;\r\n result.total.seconds = Number((diff / one_second).toFixed(2));\r\n result.total.minutes = Number((diff / one_min).toFixed(2));\r\n result.total.hours = Number((diff / one_hour).toFixed(2));\r\n result.total.days = Number((diff / one_day).toFixed(2));\r\n result.total.weeks = Number((diff / one_week).toFixed(2));\r\n //\r\n // let months = (this.endTime.year - this.startTime.year) * 12;\r\n // months += this.endTime.monthOfYear - this.startTime.monthOfYear + 1;\r\n // if (this.endTime.dayOfYear < this.startTime.dayOfYear) {\r\n // months--;\r\n // }\r\n // result.total.months = Math.abs(months);\r\n // TODO: review\r\n result.total.months = Number((diff / one_month).toFixed(2));\r\n result.total.years = Number((diff / one_year).toFixed(2));\r\n //\r\n result.miliseconds = result.total.miliseconds % 1000;\r\n result.seconds = Number((result.total.seconds % 60).toFixed(0));\r\n result.minutes = Number((result.total.minutes % 60).toFixed(0));\r\n result.hours = Number((result.total.hours % 24).toFixed(0));\r\n // TODO: review\r\n result.days = Number((result.total.days % 30.4).toFixed(0));\r\n result.months = Number((result.total.months % 12).toFixed(0));\r\n result.years = Number(result.total.years.toFixed(0));\r\n return result;\r\n }\r\n\r\n enumurate(unit: TimeUnit = 'day', amount: number = 1): AXDateTime[] {\r\n // TODO: setptemper savingtime issue\r\n const result: AXDateTime[] = [];\r\n let item = this._startTime.clone();\r\n while (item.compare(this._endTime, unit) < 1) {\r\n result.push(item);\r\n item = item.add(unit, amount)\r\n }\r\n return result;\r\n }\r\n\r\n includes(value: AXDateTime, unit: TimeUnit = 'day'): boolean {\r\n // TODO: ??\r\n return true;\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","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { AXConfig } from '../config/configs';\r\nimport { AXDateTime } from './datetime.class';\r\n\r\n@Pipe({ name: 'axDate' })\r\nexport class AXDateTimePipe implements PipeTransform {\r\n constructor() { }\r\n\r\n transform(value: any, format?: string, calendar?: string): string {\r\n if (value == null) {\r\n return '';\r\n }\r\n const date: AXDateTime = value instanceof AXDateTime ? value.clone() : AXDateTime.convert(value, calendar);\r\n if (!format) {\r\n return date.format(AXConfig.get('dateTime.shortDateFormat'));\r\n }\r\n else {\r\n return date.format(format);\r\n }\r\n }\r\n}","import { AXCalendar, AXDateTime, AXDateValue, TimeUnit } from \"./datetime.class\";\r\n\r\nexport class GeorgianCalendar implements AXCalendar {\r\n\r\n monthNames = [\r\n \"January\", \"February\", \"March\",\r\n \"April\", \"May\", \"June\", \"July\",\r\n \"August\", \"September\", \"October\",\r\n \"November\", \"December\"\r\n ];\r\n\r\n monthShortNames = [\r\n \"Jan\", \"Feb\", \"Mar\",\r\n \"Apr\", \"May\", \"Jun\", \"Jul\",\r\n \"Aug\", \"Sep\", \"Oct\",\r\n \"Nov\", \"Dec\"\r\n ];\r\n\r\n dayNames = [\r\n \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\",\r\n \"Thursday\", \"Friday\", \"Saturday\"\r\n ];\r\n\r\n dayShortNames = [\r\n \"Sun\", \"Mon\", \"Tue\", \"Wed\",\r\n \"Thu\", \"Fri\", \"Sat\"\r\n ];\r\n\r\n\r\n create(value: AXDateValue): AXDateTime {\r\n return new AXDateTime(new Date(value.year, value.month - 1, value.date, value.hours || 0, value.minutes || 0, value.seconds || 0, value.ms || 0), this.name());\r\n }\r\n\r\n name(): string {\r\n return 'gregorian'\r\n }\r\n\r\n dayOfMonth(date: Date): number {\r\n return date.getDate();\r\n }\r\n\r\n dayOfYear(date: Date): number {\r\n let result = 0;\r\n let m = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n if (this.isLeap(date)) {\r\n m[1] = 29;\r\n }\r\n for (let i = 0; i < date.getMonth(); i++) {\r\n result = result + m[i];\r\n }\r\n result += date.getDate();\r\n return result;\r\n }\r\n\r\n dayOfWeek(date: Date): number {\r\n return date.getDay() + 1;\r\n }\r\n\r\n weekOfYear(date: Date): number {\r\n const firstDay = new AXDateTime(date).startOf('year');\r\n return Math.ceil((((date.getTime() - firstDay.date.getTime()) / 86400000) + firstDay.date.getDay() + 1) / 7);\r\n }\r\n\r\n year(date: Date): number {\r\n return date.getFullYear();\r\n }\r\n\r\n monthOfYear(date: Date): number {\r\n return date.getMonth() + 1;\r\n }\r\n\r\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime {\r\n let value = date.valueOf();\r\n switch (unit) {\r\n case 'second':\r\n value += 1000 * amount;\r\n break\r\n case 'minute':\r\n value += 60000 * amount;\r\n break\r\n case 'hour':\r\n value += 3600000 * amount;\r\n break\r\n case 'month':\r\n const v = new Date(value);\r\n var mo = date.getMonth();\r\n var yr = date.getFullYear();\r\n mo = (mo + amount) % 12;\r\n if (0 > mo) {\r\n yr += (date.getMonth() + amount - mo - 12) / 12;\r\n mo += 12;\r\n }\r\n else\r\n yr += ((date.getMonth() + amount - mo) / 12);\r\n v.setMonth(mo);\r\n v.setFullYear(yr);\r\n value = v.valueOf();\r\n break\r\n case 'week':\r\n value += 7 * 86400000 * amount;\r\n break\r\n case 'year':\r\n const yv = new Date(value);\r\n yv.setFullYear(yv.getFullYear() + amount);\r\n value = yv.valueOf();\r\n break\r\n case 'day':\r\n default:\r\n value += 86400000 * amount;\r\n }\r\n return new AXDateTime(new Date(value), this.name());\r\n }\r\n\r\n set(date: Date, unit: TimeUnit, value: number): AXDateTime {\r\n const clone = new Date(date.valueOf());\r\n switch (unit) {\r\n case 'second':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), value, clone.getMilliseconds());\r\n break;\r\n case 'minute':\r\n clone.setHours(clone.getHours(), value, clone.getSeconds(), clone.getMilliseconds());\r\n break;\r\n case 'hour':\r\n clone.setHours(value, clone.getMinutes(), clone.getSeconds(), clone.getMilliseconds());\r\n break;\r\n default:\r\n case 'day':\r\n clone.setDate(value);\r\n break;\r\n case \"week\":\r\n break;\r\n case \"month\":\r\n clone.setMonth(Math.max(0, value - 1));\r\n break;\r\n case \"year\":\r\n clone.setFullYear(value);\r\n break;\r\n }\r\n return new AXDateTime(clone, this.name());\r\n }\r\n\r\n startOf(date: Date, unit: TimeUnit): AXDateTime {\r\n const clone = new Date(date.valueOf());\r\n switch (unit) {\r\n case 'second':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 0);\r\n return new AXDateTime(clone, this.name());\r\n case 'minute':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n case 'hour':\r\n clone.setHours(clone.getHours(), 0, 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n default:\r\n case 'day':\r\n clone.setHours(0, 0, 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n case \"week\":\r\n const index = 0;\r\n const start = index >= 0 ? index : 0;\r\n const day = clone.getDay();\r\n const diff = clone.getDate() - day + (start > day ? start - 7 : start);\r\n clone.setDate(diff);\r\n return new AXDateTime(clone, this.name()).startOf('day');\r\n case \"month\":\r\n clone.setDate(1)\r\n return new AXDateTime(clone, this.name()).startOf('day');\r\n case \"year\":\r\n clone.setMonth(0);\r\n clone.setDate(1);\r\n return new AXDateTime(clone, this.name()).startOf('day');\r\n }\r\n }\r\n\r\n endOf(date: Date, unit: TimeUnit): AXDateTime {\r\n const clone = new Date(date.valueOf());\r\n switch (unit) {\r\n case 'second':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'minute':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'hour':\r\n clone.setHours(clone.getHours(), 59, 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n default:\r\n case 'day':\r\n clone.setHours(23, 59, 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'week':\r\n return this.startOf(date, 'week').add('day', 6).endOf('day');\r\n case 'month':\r\n return new AXDateTime(new Date(date.getFullYear(), date.getMonth() + 1, 0), this.name()).endOf('day');\r\n case \"year\":\r\n clone.setMonth(11);\r\n return new AXDateTime(clone, this.name()).endOf('month');\r\n }\r\n }\r\n\r\n isLeap(date: Date) {\r\n let leapYear = new Date(date.getFullYear(), 1, 29);\r\n return leapYear.getDate() == 29;\r\n }\r\n}","import { AXCalendar, AXDateTime, AXDateValue, TimeUnit } from \"./datetime.class\";\r\n\r\nexport class JalaliCalendar implements AXCalendar {\r\n\r\n monthNames = (\"فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند\").split(\"_\");\r\n\r\n monthShortNames = (\"فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند\").split(\"_\");\r\n\r\n dayNames = (\"شنبه_یکشنبه_دوشنبه_سه شنبه_چهارشنبه_پنج شنبه_جمعه\").split(\"_\");\r\n\r\n dayShortNames = \"ش_ی_د_س_چ_پ_ج\".split(\"_\");\r\n\r\n\r\n create(value: AXDateValue): AXDateTime {\r\n const a = this.toGregorian(value.year, value.month, value.date);\r\n return new AXDateTime(new Date(a.getFullYear(), a.getMonth(), a.getDate(), value.hours || 0, value.minutes || 0, value.seconds || 0, value.ms || 0), this.name());\r\n }\r\n\r\n name(): string {\r\n return 'jalali'\r\n }\r\n\r\n dayOfMonth(date: Date): number {\r\n return this.toJalali(date).day;\r\n }\r\n\r\n dayOfYear(date: Date): number {\r\n const j = this.toJalali(date);\r\n return (j.month <= 6 ? ((j.month - 1) * 31) : ((6 * 31) + (j.month - 7) * 30)) + j.day;\r\n }\r\n\r\n dayOfWeek(date: Date): number {\r\n return date.getDay() == 6 ? 1 : date.getDay() + 2;\r\n }\r\n\r\n weekOfYear(date: Date): number {\r\n //TODO : apply jalali\r\n const firstDay = new AXDateTime(date).startOf('year');\r\n return Math.ceil((((date.getTime() - firstDay.date.getTime()) / 86400000) + firstDay.date.getDay() + 1) / 7);\r\n }\r\n\r\n year(date: Date): number {\r\n return this.toJalali(date).year;\r\n }\r\n\r\n monthOfYear(date: Date): number {\r\n return this.toJalali(date).month;\r\n }\r\n\r\n\r\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime {\r\n let value = date.valueOf();\r\n switch (unit) {\r\n case 'second':\r\n value += 1000 * amount;\r\n break\r\n case 'minute':\r\n value += 60000 * amount;\r\n break\r\n case 'hour':\r\n value += 3600000 * amount;\r\n break\r\n case 'month':\r\n {\r\n const v = new Date(value);\r\n let jd = this.dayOfMonth(date);\r\n let jm = this.monthOfYear(date);\r\n let jy = this.year(date);\r\n const nm = (jm + amount);\r\n const ny = (nm % 12) ? Math.floor(nm / 12) : 0;\r\n jy += ny;\r\n jm = nm - (ny * 12);\r\n const vv = this.toGregorian(jy, jm, jd);\r\n v.setFullYear(vv.getFullYear());\r\n v.setMonth(vv.getMonth());\r\n v.setDate(vv.getDate());\r\n value = v.valueOf();\r\n break\r\n }\r\n case 'week':\r\n value += 7 * 86400000 * amount;\r\n break\r\n case 'year':\r\n {\r\n // const v = new Date(value);\r\n // v.setFullYear(v.getFullYear() + amount);\r\n // value = v.valueOf();\r\n // break\r\n const v = new Date(value);\r\n let jd = this.dayOfMonth(date);\r\n let jm = this.monthOfYear(date);\r\n let jy = this.year(date);\r\n const vv = this.toGregorian(jy + amount, jm, jd);\r\n v.setFullYear(vv.getFullYear());\r\n v.setMonth(vv.getMonth());\r\n v.setDate(vv.getDate());\r\n value = v.valueOf();\r\n break\r\n }\r\n case 'day':\r\n default:\r\n value += 86400000 * amount;\r\n }\r\n return new AXDateTime(new Date(value), this.name());\r\n }\r\n\r\n set(date: Date, unit: TimeUnit, value: number): AXDateTime {\r\n const clone = new Date(date.valueOf());\r\n const jDate = this.toJalali(clone);\r\n switch (unit) {\r\n case 'second':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), value, clone.getMilliseconds());\r\n break;\r\n case 'minute':\r\n clone.setHours(clone.getHours(), value, clone.getSeconds(), clone.getMilliseconds());\r\n break;\r\n case 'hour':\r\n clone.setHours(value, clone.getMinutes(), clone.getSeconds(), clone.getMilliseconds());\r\n break;\r\n default:\r\n case 'day':\r\n const gDate = this.toGregorian(jDate.year, jDate.month, value);\r\n clone.setDate(gDate.getDate());\r\n break;\r\n case \"week\":\r\n break;\r\n case \"month\":\r\n const gDate2 = this.toGregorian(jDate.year, value, jDate.day);\r\n clone.setMonth(gDate2.getMonth());\r\n break;\r\n case \"year\":\r\n const gDate3 = this.toGregorian(value, jDate.month, jDate.day);\r\n clone.setFullYear(gDate3.getFullYear());\r\n break;\r\n }\r\n return new AXDateTime(clone, this.name());\r\n }\r\n\r\n startOf(date: Date, unit: TimeUnit): AXDateTime {\r\n const clone = new Date(date.valueOf());\r\n switch (unit) {\r\n case 'second':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 0);\r\n return new AXDateTime(clone, this.name());\r\n case 'minute':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n case 'hour':\r\n clone.setHours(clone.getHours(), 0, 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n default:\r\n case 'day':\r\n clone.setHours(0, 0, 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n case \"week\":\r\n return new AXDateTime(clone, this.name()).add('day', -this.dayOfWeek(clone) + 1).startOf('day');\r\n case \"month\":\r\n {\r\n const jy = this.year(date);\r\n const jm = this.monthOfYear(date);\r\n const gDate = this.toGregorian(jy, jm, 1);\r\n return new AXDateTime(gDate, this.name()).startOf('day');\r\n }\r\n case \"year\":\r\n {\r\n const jy = this.year(date);\r\n const gDate = this.toGregorian(jy, 1, 1);\r\n return new AXDateTime(gDate, this.name()).startOf('day');\r\n }\r\n }\r\n }\r\n\r\n endOf(date: Date, unit: TimeUnit): AXDateTime {\r\n const clone = new Date(date.valueOf());\r\n switch (unit) {\r\n case 'second':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'minute':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'hour':\r\n clone.setHours(clone.getHours(), 59, 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n default:\r\n case 'day':\r\n clone.setHours(23, 59, 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'week':\r\n {\r\n return this.startOf(date, 'week').add('day', 6).endOf('day');\r\n }\r\n case 'month':\r\n {\r\n const jy = this.year(date);\r\n const jm = this.monthOfYear(date);\r\n const jd = this.monthLength(jy, jm);\r\n const gDate = this.toGregorian(jy, jm, jd);\r\n return new AXDateTime(gDate, this.name()).endOf('day');\r\n }\r\n case \"year\":\r\n let jy = this.year(date);\r\n const gDate = this.toGregorian(jy, 12, this.monthLength(jy, 12));\r\n return new AXDateTime(gDate, this.name()).endOf('day');\r\n }\r\n }\r\n\r\n\r\n\r\n toJalali(date: Date): { year: number, month: number, day: number } {\r\n const gy = date.getFullYear();\r\n const gm = date.getMonth() + 1;\r\n const gd = date.getDate();\r\n const r = this.d2j(this.g2d(gy, gm, gd))\r\n return {\r\n year: r.jy,\r\n month: r.jm,\r\n day: r.jd,\r\n }\r\n }\r\n\r\n /*\r\n Converts a Jalaali date to Gregorian.\r\n */\r\n toGregorian(jy, jm, jd) {\r\n const g = this.d2g(this.j2d(jy, jm, jd))\r\n return new Date(g.gy, g.gm - 1, g.gd);\r\n }\r\n\r\n /*\r\n Checks whether a Jalaali date is valid or not.\r\n */\r\n isValid(jy, jm, jd) {\r\n return jy >= -61 && jy <= 3177 &&\r\n jm >= 1 && jm <= 12 &&\r\n jd >= 1 && jd <= this.monthLength(jy, jm)\r\n }\r\n\r\n /*\r\n Is this a leap year or not?\r\n */\r\n isLeapYear(jy) {\r\n return this.jalCal(jy).leap === 0\r\n }\r\n\r\n /*\r\n Number of days in a given month in a Jalaali year.\r\n */\r\n monthLength(jy, jm) {\r\n if (jm <= 6) return 31\r\n if (jm <= 11) return 30\r\n if (this.isLeapYear(jy)) return 30\r\n return 29\r\n }\r\n\r\n\r\n private jalCal(jy) {\r\n // Jalaali years starting the 33-year rule.\r\n let breaks = [-61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210\r\n , 1635, 2060, 2097, 2192, 2262, 2324, 2394, 2456, 3178\r\n ]\r\n , bl = breaks.length\r\n , gy = jy + 621\r\n , leapJ = -14\r\n , jp = breaks[0]\r\n , jm\r\n , jump\r\n , leap\r\n , leapG\r\n , march\r\n , n\r\n , i\r\n\r\n if (jy < jp || jy >= breaks[bl - 1])\r\n throw new Error('Invalid Jalaali year ' + jy)\r\n\r\n // Find the limiting years for the Jalaali year jy.\r\n for (i = 1; i < bl; i += 1) {\r\n jm = breaks[i]\r\n jump = jm - jp\r\n if (jy < jm)\r\n break\r\n leapJ = leapJ + this.div(jump, 33) * 8 + this.div(this.mod(jump, 33), 4)\r\n jp = jm\r\n }\r\n n = jy - jp\r\n\r\n // Find the number of leap years from AD 621 to the beginning\r\n // of the current Jalaali year in the Persian calendar.\r\n leapJ = leapJ + this.div(n, 33) * 8 + this.div(this.mod(n, 33) + 3, 4)\r\n if (this.mod(jump, 33) === 4 && jump - n === 4)\r\n leapJ += 1\r\n\r\n // And the same in the Gregorian calendar (until the year gy).\r\n leapG = this.div(gy, 4) - this.div((this.div(gy, 100) + 1) * 3, 4) - 150\r\n\r\n // Determine the Gregorian date of Farvardin the 1st.\r\n march = 20 + leapJ - leapG\r\n\r\n // Find how many years have passed since the last leap year.\r\n if (jump - n < 6)\r\n n = n - jump + this.div(jump + 4, 33) * 33\r\n leap = this.mod(this.mod(n + 1, 33) - 1, 4)\r\n if (leap === -1) {\r\n leap = 4\r\n }\r\n\r\n return {\r\n leap: leap\r\n , gy: gy\r\n , march: march\r\n }\r\n }\r\n\r\n /*\r\n Converts a date of the Jalaali calendar to the Julian Day number.\r\n @param jy Jalaali year (1 to 3100)\r\n @param jm Jalaali month (1 to 12)\r\n @param jd Jalaali day (1 to 29/31)\r\n @return Julian Day number\r\n */\r\n private j2d(jy, jm, jd) {\r\n let r = this.jalCal(jy)\r\n return this.g2d(r.gy, 3, r.march) + (jm - 1) * 31 - this.div(jm, 7) * (jm - 7) + jd - 1\r\n }\r\n\r\n /*\r\n Converts the Julian Day number to a date in the Jalaali calendar.\r\n @param jdn Julian Day number\r\n @return\r\n jy: Jalaali year (1 to 3100)\r\n jm: Jalaali month (1 to 12)\r\n jd: Jalaali day (1 to 29/31)\r\n */\r\n private d2j(jdn) {\r\n let gy = this.d2g(jdn).gy // Calculate Gregorian year (gy).\r\n , jy = gy - 621\r\n , r = this.jalCal(jy)\r\n , jdn1f = this.g2d(gy, 3, r.march)\r\n , jd\r\n , jm\r\n , k\r\n\r\n // Find number of days that passed since 1 Farvardin.\r\n k = jdn - jdn1f\r\n if (k >= 0) {\r\n if (k <= 185) {\r\n // The first 6 months.\r\n jm = 1 + this.div(k, 31)\r\n jd = this.mod(k, 31) + 1\r\n return {\r\n jy: jy\r\n , jm: jm\r\n , jd: jd\r\n }\r\n } else {\r\n // The remaining months.\r\n k -= 186\r\n }\r\n } else {\r\n // Previous Jalaali year.\r\n jy -= 1\r\n k += 179\r\n if (r.leap === 1)\r\n k += 1\r\n }\r\n jm = 7 + this.div(k, 30)\r\n jd = this.mod(k, 30) + 1\r\n return {\r\n jy: jy\r\n , jm: jm\r\n , jd: jd\r\n }\r\n }\r\n\r\n\r\n private g2d(gy, gm, gd) {\r\n let d = this.div((gy + this.div(gm - 8, 6) + 100100) * 1461, 4)\r\n + this.div(153 * this.mod(gm + 9, 12) + 2, 5)\r\n + gd - 34840408\r\n d = d - this.div(this.div(gy + 100100 + this.div(gm - 8, 6), 100) * 3, 4) + 752\r\n return d\r\n }\r\n\r\n\r\n private d2g(jdn) {\r\n let j\r\n , i\r\n , gd\r\n , gm\r\n , gy\r\n j = 4 * jdn + 139361631\r\n j = j + this.div(this.div(4 * jdn + 183187720, 146097) * 3, 4) * 4 - 3908\r\n i = this.div(this.mod(j, 1461), 4) * 5 + 308\r\n gd = this.div(this.mod(i, 153), 5) + 1\r\n gm = this.mod(this.div(i, 153), 12) + 1\r\n gy = this.div(j, 1461) - 100100 + this.div(8 - gm, 6)\r\n return {\r\n gy: gy\r\n , gm: gm\r\n , gd: gd\r\n }\r\n }\r\n\r\n /*\r\n Utility helper functions.\r\n */\r\n private div(a, b) {\r\n return ~~(a / b)\r\n }\r\n\r\n private mod(a, b) {\r\n return a - ~~(a / b) * b\r\n }\r\n\r\n}","import { NgModule } from '@angular/core';\r\nimport { AXConfig } from '../config/configs';\r\nimport { AXDateTimePipe } from './datetime.pipe';\r\nimport { GeorgianCalendar } from './georgian.calendar';\r\nimport { JalaliCalendar } from './jalali.calendar';\r\n\r\n\r\n@NgModule({\r\n imports: [],\r\n exports: [AXDateTimePipe],\r\n declarations: [AXDateTimePipe],\r\n providers: [],\r\n})\r\nexport class AXDateTimeModule {\r\n\r\n constructor() {\r\n AXConfig.set({\r\n dateTime: {\r\n calendars: {\r\n jalali: new JalaliCalendar(),\r\n gregorian: new GeorgianCalendar()\r\n },\r\n calendar:'gregorian',\r\n shortDateFormat:'DDDD, d MMM yyyy'\r\n }\r\n });\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 { DOCUMENT } from \"@angular/common\";\r\nimport { Inject, Injectable } from \"@angular/core\";\r\nimport { EventManager } from \"@angular/platform-browser\";\r\nimport { Observable } from \"rxjs/internal/Observable\";\r\n\r\ntype Options = {\r\n element: any;\r\n keys: string;\r\n}\r\n\r\n@Injectable()\r\nexport class AXHotkeysService {\r\n defaults: Partial<Options> = {\r\n element: this.document\r\n }\r\n\r\n constructor(private eventManager: EventManager,\r\n @Inject(DOCUMENT) private document: Document) {\r\n }\r\n\r\n addShortcut(options: Partial<Options>) {\r\n const merged = { ...this.defaults, ...options };\r\n const event = `keydown.${merged.keys}`;\r\n\r\n return new Observable(observer => {\r\n const handler = (e) => {\r\n e.preventDefault()\r\n observer.next(e);\r\n };\r\n\r\n const dispose = this.eventManager.addEventListener(\r\n merged.element, event, handler\r\n );\r\n\r\n return () => {\r\n dispose();\r\n };\r\n })\r\n }\r\n}","import { Subject, Observable } from 'rxjs';\r\nimport merge from 'lodash-es/merge';\r\nimport _ from 'lodash';\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 private static _varsRegx = /((\\$\\{[a-zA-Z_0-9\\.]+\\})+)/gm;\r\n private static _varNameRegx = /[a-zA-Z_0-9\\.]+/gm;\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, params?: any): string {\r\n lang = lang || AXTranslator.lang;\r\n let result = _.get(AXTranslator[`__data__${lang}`], key, key);\r\n const vars = typeof (result) == 'string' ? result?.match(this._varsRegx) : [];\r\n if (vars?.length) {\r\n vars.forEach(v => {\r\n const varKey = v.match(this._varNameRegx)?.length ? v.match(this._varNameRegx)[0] : null;\r\n if (varKey) {\r\n const p = _.get(params, varKey) || this.get(varKey, lang);\r\n if (p) {\r\n result = result.replace(v, p);\r\n }\r\n }\r\n })\r\n }\r\n return typeof (result) == 'string' ? result : JSON.stringify(result);\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 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\n\r\n@NgModule({\r\n imports: [],\r\n exports: [AXTranslatorPipe],\r\n declarations: [AXTranslatorPipe],\r\n providers: [],\r\n})\r\nexport class AXTranslationModule {\r\n \r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n\r\nexport type AXPlatforms = 'Android' | 'Desktop' | 'iOS' | 'Mobile';\r\nexport type AXBrowsers = 'Chrome' | 'Safari' | 'Edge' | 'Firefox' | 'Opera' | 'MSIE';\r\nexport type AXTechnologies = 'PWA' | 'Hybrid' | 'Electron';\r\n\r\n\r\n\r\n\r\nconst isChrome = (win: Window): boolean =>\r\n testUserAgent(win, /Chrome/i);\r\n\r\nconst isFirefox = (win: Window): boolean =>\r\n testUserAgent(win, /Firefox/i);\r\n\r\nconst isEdge = (win: Window): boolean =>\r\n testUserAgent(win, /Edge/i);\r\n\r\nconst isSafari = (win: Window): boolean =>\r\n testUserAgent(win, /Safari/i);\r\n\r\nconst isOpera = (win: Window): boolean =>\r\n testUserAgent(win, /Opera/i) || testUserAgent(win, /OPR/i);\r\n\r\nconst isMSIE = (win: Window): boolean =>\r\n testUserAgent(win, /MSIE/i) || testUserAgent(win, /Trident/i);\r\n\r\n\r\nconst isMobileWeb = (win: Window): boolean =>\r\n isMobile(win) && !isHybrid(win);\r\n\r\nconst isIpad = (win: Window) => {\r\n // iOS 12 and below\r\n if (testUserAgent(win, /iPad/i)) {\r\n return true;\r\n }\r\n\r\n // iOS 13+\r\n if (testUserAgent(win, /Macintosh/i) && isMobile(win)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst isIphone = (win: Window) =>\r\n testUserAgent(win, /iPhone/i);\r\n\r\nconst isIOS = (win: Window) =>\r\n testUserAgent(win, /iPhone|iPod/i) || isIpad(win);\r\n\r\nconst isAndroid = (win: Window) =>\r\n testUserAgent(win, /android|sink/i);\r\n\r\nconst isAndroidTablet = (win: Window) => {\r\n return isAndroid(win) && !testUserAgent(win, /mobile/i);\r\n};\r\n\r\nconst isPhablet = (win: Window) => {\r\n const width = win.innerWidth;\r\n const height = win.innerHeight;\r\n const smallest = Math.min(width, height);\r\n const largest = Math.max(width, height);\r\n\r\n return (smallest > 390 && smallest < 520) &&\r\n (largest > 620 && largest < 800);\r\n};\r\n\r\nconst isTablet = (win: Window) => {\r\n const width = win.innerWidth;\r\n const height = win.innerHeight;\r\n const smallest = Math.min(width, height);\r\n const largest = Math.max(width, height);\r\n\r\n return (\r\n isIpad(win) ||\r\n isAndroidTablet(win) ||\r\n (\r\n (smallest > 460 && smallest < 820) &&\r\n (largest > 780 && largest < 1400)\r\n )\r\n );\r\n};\r\n\r\nconst isMobile = (win: Window) =>\r\n matchMedia(win, '(any-pointer:coarse)');\r\n\r\nconst isDesktop = (win: Window) =>\r\n !isMobile(win);\r\n\r\nconst isHybrid = (win: Window) =>\r\n isCordova(win) || isCapacitorNative(win);\r\n\r\nconst isCordova = (win: any): boolean =>\r\n !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);\r\n\r\nconst isCapacitorNative = (win: any): boolean => {\r\n const capacitor = win['Capacitor'];\r\n return !!(capacitor && capacitor.isNative);\r\n};\r\n\r\nconst isElectron = (win: Window): boolean =>\r\n testUserAgent(win, /electron/i);\r\n\r\nconst isPWA = (win: Window): boolean =>\r\n !!(win.matchMedia('(display-mode: standalone)').matches || (win.navigator as any).standalone);\r\n\r\nexport const testUserAgent = (win: Window, expr: RegExp) =>\r\n expr.test(win.navigator.userAgent);\r\n\r\nconst matchMedia = (win: Window, query: string): boolean =>\r\n win.matchMedia(query).matches;\r\n\r\n\r\nconst PLATFORMS_MAP = {\r\n 'Android': isAndroid,\r\n 'iOS': isIOS,\r\n 'Desktop': isDesktop,\r\n 'Mobile': isMobile,\r\n 'Chrome': isChrome,\r\n 'Firefox': isFirefox,\r\n 'Safari': isSafari,\r\n 'Edge': isEdge,\r\n 'Opera': isOpera,\r\n 'Hybrid': isHybrid,\r\n 'PWA': isPWA,\r\n 'Electron': isElectron,\r\n};\r\n\r\n\r\nexport class AXPlatformEvent {\r\n nativeEvent: UIEvent | Event;\r\n source: AXPlatform\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'platform',\r\n})\r\nexport class AXPlatform {\r\n resize: Subject<AXPlatformEvent> = new Subject<AXPlatformEvent>();\r\n click: Subject<AXPlatformEvent> = new Subject<AXPlatformEvent>()\r\n scroll: Subject<AXPlatformEvent> = new Subject<AXPlatformEvent>()\r\n\r\n isRtl(): boolean {\r\n return document.dir == 'rtl' || document.body.dir == 'rtl' || document.body.style.direction == 'rtl';\r\n }\r\n\r\n\r\n isLandscape(): boolean {\r\n return window.innerHeight < window.innerWidth;\r\n }\r\n\r\n isPortrate(): boolean {\r\n return !this.isLandscape()\r\n }\r\n\r\n is(name: AXPlatforms | AXBrowsers | AXTechnologies): boolean {\r\n return PLATFORMS_MAP[name](window) || false;\r\n }\r\n\r\n\r\n switchDarkMode() {\r\n const _html = document.getElementsByTagName(\"html\")[0];\r\n _html.classList.add('ax-dark')\r\n\r\n }\r\n\r\n switchLightMode() {\r\n const _html = document.getElementsByTagName(\"html\")[0];\r\n _html.classList.remove('ax-dark')\r\n }\r\n\r\n private _setFullHeightRatio() {\r\n document.querySelector<HTMLElement>(':root').style.setProperty('--ax-vh', window.innerHeight / 100 + 'px');\r\n }\r\n\r\n constructor() {\r\n window.addEventListener('resize', (e) => {\r\n this.resize.next({\r\n nativeEvent: e,\r\n source: this\r\n });\r\n //\r\n this._setFullHeightRatio();\r\n })\r\n\r\n document.addEventListener('click', (e) => {\r\n this.click.next({\r\n nativeEvent: e,\r\n source: this\r\n });\r\n }, true)\r\n\r\n document.addEventListener('scroll', (e) => {\r\n this.scroll.next({\r\n nativeEvent: e,\r\n source: this\r\n });\r\n }, true);\r\n // init functions\r\n this._setFullHeightRatio();\r\n }\r\n}","\r\n/**\r\n * Public API refrences of core libraries\r\n * @module @acorex/core\r\n */\r\nexport * from './lib/core.module';\r\nexport * from './lib/dateTime';\r\nexport * from './lib/events';\r\nexport * from './lib/hotkeys';\r\nexport * from './lib/utils';\r\nexport * from './lib/config/configs';\r\nexport * from './lib/translation';\r\nexport * from './lib/platform';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-core.mjs","sources":["../../../../projects/acorex/core/src/lib/classes/color.class.ts","../../../../projects/acorex/core/src/lib/utils/object/object-util.ts","../../../../projects/acorex/core/src/lib/services/config.ts","../../../../projects/acorex/core/src/lib/classes/datetime.class.ts","../../../../projects/acorex/core/src/lib/classes/menu.class.ts","../../../../projects/acorex/core/src/lib/classes/promise.class.ts","../../../../projects/acorex/core/src/lib/classes/select.class.ts","../../../../projects/acorex/core/src/lib/classes/base-page.class.ts","../../../../projects/acorex/core/src/lib/error/error.service.ts","../../../../projects/acorex/core/src/lib/error/error.module.ts","../../../../projects/acorex/core/src/lib/http/http-events.interceptor.ts","../../../../projects/acorex/core/src/lib/http/http-result.class.ts","../../../../projects/acorex/core/src/lib/http/http.service.ts","../../../../projects/acorex/core/src/lib/http/http.module.ts","../../../../projects/acorex/core/src/lib/platform/platform.service.ts","../../../../projects/acorex/core/src/lib/pipe/datetime.pipe.ts","../../../../projects/acorex/core/src/lib/pipe/htmlToText.pipe.ts","../../../../projects/acorex/core/src/lib/services/event.service.ts","../../../../projects/acorex/core/src/lib/services/navigator.service.ts","../../../../projects/acorex/core/src/lib/services/storage.service.ts","../../../../projects/acorex/core/src/lib/translator/translator.ts","../../../../projects/acorex/core/src/lib/translator/translator.service.ts","../../../../projects/acorex/core/src/lib/translator/translator.pipe.ts","../../../../projects/acorex/core/src/lib/translator/translator.module.ts","../../../../projects/acorex/core/src/lib/utils/array/array-util.ts","../../../../projects/acorex/core/src/lib/utils/math/math-util.ts","../../../../projects/acorex/core/src/lib/utils/html/html-util.ts","../../../../projects/acorex/core/src/lib/utils/html/html.module.ts","../../../../projects/acorex/core/src/lib/utils/render/on-demand-preload-strategy.service.ts","../../../../projects/acorex/core/src/lib/utils/render/render.service.ts","../../../../projects/acorex/core/src/lib/utils/render/rendering.module.ts","../../../../projects/acorex/core/src/lib/utils/scroll/scroll.directive.ts","../../../../projects/acorex/core/src/lib/utils/scroll/scroll.module.ts","../../../../projects/acorex/core/src/lib/utils/separator/separator.pipe.ts","../../../../projects/acorex/core/src/lib/utils/separator/separator.module.ts","../../../../projects/acorex/core/src/lib/core.module.ts","../../../../projects/acorex/core/src/acorex-core.ts"],"sourcesContent":["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[path[0]]; // 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 moment from 'jalali-moment';\r\nimport { AXConfig } from '../services/config';\r\n// const 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 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: any = {\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 // TODO: check this fucking type\r\n const options: any = {\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, Injectable } from '@angular/core';\r\n\r\n/**\r\n * @deprecated Use AXBasePageComponent from @acorex/components\r\n */\r\n// TODO: Add Angular decorator.\r\n@Injectable()\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<AXHttpModule> {\r\n return {\r\n ngModule: AXHttpModule,\r\n providers: [AXHttpService]\r\n };\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { from, fromEvent, Subject } from \"rxjs\";\r\nimport { debounceTime, distinctUntilChanged } from \"rxjs/operators\";\r\n\r\n\r\nexport type AXPlatforms = 'Android' | 'Desktop' | 'iOS' | 'Mobile';\r\nexport type AXBrowsers = 'Chrome' | 'Safari' | 'Edge' | 'Firefox' | 'Opera' | 'MSIE';\r\nexport type AXTechnologies = 'PWA' | 'Hybrid' | 'Electron';\r\n\r\n\r\n\r\n\r\nconst isChrome = (win: Window): boolean =>\r\n testUserAgent(win, /Chrome/i);\r\n\r\nconst isFirefox = (win: Window): boolean =>\r\n testUserAgent(win, /Firefox/i);\r\n\r\nconst isEdge = (win: Window): boolean =>\r\n testUserAgent(win, /Edge/i);\r\n\r\nconst isSafari = (win: Window): boolean =>\r\n testUserAgent(win, /Safari/i);\r\n\r\nconst isOpera = (win: Window): boolean =>\r\n testUserAgent(win, /Opera/i) || testUserAgent(win, /OPR/i);\r\n\r\nconst isMSIE = (win: Window): boolean =>\r\n testUserAgent(win, /MSIE/i) || testUserAgent(win, /Trident/i);\r\n\r\n\r\nconst isMobileWeb = (win: Window): boolean =>\r\n isMobile(win) && !isHybrid(win);\r\n\r\nconst isIpad = (win: Window) => {\r\n // iOS 12 and below\r\n if (testUserAgent(win, /iPad/i)) {\r\n return true;\r\n }\r\n\r\n // iOS 13+\r\n if (testUserAgent(win, /Macintosh/i) && isMobile(win)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst isIphone = (win: Window) =>\r\n testUserAgent(win, /iPhone/i);\r\n\r\nconst isIOS = (win: Window) =>\r\n testUserAgent(win, /iPhone|iPod/i) || isIpad(win);\r\n\r\nconst isAndroid = (win: Window) =>\r\n testUserAgent(win, /android|sink/i);\r\n\r\nconst isAndroidTablet = (win: Window) => {\r\n return isAndroid(win) && !testUserAgent(win, /mobile/i);\r\n};\r\n\r\nconst isPhablet = (win: Window) => {\r\n const width = win.innerWidth;\r\n const height = win.innerHeight;\r\n const smallest = Math.min(width, height);\r\n const largest = Math.max(width, height);\r\n\r\n return (smallest > 390 && smallest < 520) &&\r\n (largest > 620 && largest < 800);\r\n};\r\n\r\nconst isTablet = (win: Window) => {\r\n const width = win.innerWidth;\r\n const height = win.innerHeight;\r\n const smallest = Math.min(width, height);\r\n const largest = Math.max(width, height);\r\n\r\n return (\r\n isIpad(win) ||\r\n isAndroidTablet(win) ||\r\n (\r\n (smallest > 460 && smallest < 820) &&\r\n (largest > 780 && largest < 1400)\r\n )\r\n );\r\n};\r\n\r\nconst isMobile = (win: Window) =>\r\n matchMedia(win, '(any-pointer:coarse)');\r\n\r\nconst isDesktop = (win: Window) =>\r\n !isMobile(win);\r\n\r\nconst isHybrid = (win: Window) =>\r\n isCordova(win) || isCapacitorNative(win);\r\n\r\nconst isCordova = (win: any): boolean =>\r\n !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);\r\n\r\nconst isCapacitorNative = (win: any): boolean => {\r\n const capacitor = win['Capacitor'];\r\n return !!(capacitor && capacitor.isNative);\r\n};\r\n\r\nconst isElectron = (win: Window): boolean =>\r\n testUserAgent(win, /electron/i);\r\n\r\nconst isPWA = (win: Window): boolean =>\r\n !!(win.matchMedia('(display-mode: standalone)').matches || (win.navigator as any).standalone);\r\n\r\nexport const testUserAgent = (win: Window, expr: RegExp) =>\r\n expr.test(win.navigator.userAgent);\r\n\r\nconst matchMedia = (win: Window, query: string): boolean =>\r\n win.matchMedia(query).matches;\r\n\r\n\r\nconst PLATFORMS_MAP = {\r\n 'Android': isAndroid,\r\n 'iOS': isIOS,\r\n 'Desktop': isDesktop,\r\n 'Mobile': isMobile,\r\n 'Chrome': isChrome,\r\n 'Firefox': isFirefox,\r\n 'Safari': isSafari,\r\n 'Edge': isEdge,\r\n 'Opera': isOpera,\r\n 'Hybrid': isHybrid,\r\n 'PWA': isPWA,\r\n 'Electron': isElectron,\r\n};\r\n\r\n\r\nexport class AXPlatformEvent {\r\n nativeEvent: UIEvent | Event;\r\n source: AXPlatform\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'platform',\r\n})\r\nexport class AXPlatform {\r\n resize: Subject<AXPlatformEvent> = new Subject<AXPlatformEvent>();\r\n click: Subject<AXPlatformEvent> = new Subject<AXPlatformEvent>()\r\n scroll: Subject<AXPlatformEvent> = new Subject<AXPlatformEvent>()\r\n\r\n isRtl(): boolean {\r\n return document.dir == 'rtl' || document.body.dir == 'rtl' || document.body.style.direction == 'rtl';\r\n }\r\n\r\n\r\n isLandscape(): boolean {\r\n return window.innerHeight < window.innerWidth;\r\n }\r\n\r\n isPortrate(): boolean {\r\n return !this.isLandscape()\r\n }\r\n\r\n is(name: AXPlatforms | AXBrowsers | AXTechnologies): boolean {\r\n return PLATFORMS_MAP[name](window) || false;\r\n }\r\n\r\n\r\n switchDarkMode() {\r\n const _html = document.getElementsByTagName(\"html\")[0];\r\n _html.classList.add('ax-dark')\r\n\r\n }\r\n\r\n switchLightMode() {\r\n const _html = document.getElementsByTagName(\"html\")[0];\r\n _html.classList.remove('ax-dark')\r\n }\r\n\r\n private _setFullHeightRatio() {\r\n document.querySelector<HTMLElement>(':root').style.setProperty('--ax-vh', window.innerHeight / 100 + 'px');\r\n }\r\n\r\n constructor() {\r\n\r\n fromEvent<UIEvent>(window, 'resize')\r\n .pipe(debounceTime(100))\r\n .pipe(distinctUntilChanged())\r\n .subscribe((e) => {\r\n this.resize.next({\r\n nativeEvent: e,\r\n source: this\r\n });\r\n //\r\n this._setFullHeightRatio();\r\n });\r\n\r\n\r\n document.addEventListener('click', (e) => {\r\n this.click.next({\r\n nativeEvent: e,\r\n source: this\r\n });\r\n }, true)\r\n\r\n document.addEventListener('scroll', (e) => {\r\n this.scroll.next({\r\n nativeEvent: e,\r\n source: this\r\n });\r\n }, true);\r\n // init functions\r\n this._setFullHeightRatio();\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 = /&nbsp;/gi;\r\n const regexAmp = /&amp;/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 }\r\n}\r\n","import {\r\n ApplicationRef, ComponentFactoryResolver, ComponentRef, Injectable,\r\n Injector, EmbeddedViewRef, Type, Compiler, NgModuleFactory\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 compiler: Compiler,\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(async () => {\r\n found = await 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 async _findLoadedComponentByRoute(search) {\r\n\r\n let found: Route = null;\r\n const f = (children, parentPath) => {\r\n for (const p in children) {\r\n if (children.hasOwnProperty(p)) {\r\n const route = children[p];\r\n const pp = (route.path != '' && route.path != null) ? parentPath + '/' + route.path : parentPath;\r\n if (pp == search && !route._loadedConfig && route.component) {\r\n found = route;\r\n return;\r\n } else if (route._loadedConfig || route.children) {\r\n f(route.children || 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'] || route.children) {\r\n f(route.children || route['_loadedConfig'].routes, route.path);\r\n }\r\n if (found)\r\n break;\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\nimport { AXConfig } from '../../services/config';\r\n\r\n@Pipe({ name: 'separator' })\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\n// export class AXSeparatorPipe2 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\nexport class AXSeparatorPipe implements PipeTransform {\r\n transform(value: number | string, currency: string = '', decimal: number = 0, locale: string = AXConfig.get('layout.rtl') ? 'fa' : 'en'): string {\r\n return (\r\n new Intl.NumberFormat(locale, {\r\n minimumFractionDigits: 0,\r\n maximumFractionDigits: decimal\r\n }).format(Number(value)) + (currency != '' ? ' ' + currency : '')\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["en","fa","i1","i2.AXOnDemandPreloadService"],"mappings":"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"}