@acorex/core 5.0.13 → 5.0.17

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 (32) hide show
  1. package/{esm2015/acorex-core.js → esm2020/acorex-core.mjs} +0 -0
  2. package/{esm2015/lib/config/configs.js → esm2020/lib/config/configs.mjs} +0 -0
  3. package/{esm2015/lib/core.module.js → esm2020/lib/core.module.mjs} +4 -4
  4. package/{esm2015/lib/dateTime/datetime.class.js → esm2020/lib/dateTime/datetime.class.mjs} +0 -0
  5. package/{esm2015/lib/dateTime/datetime.module.js → esm2020/lib/dateTime/datetime.module.mjs} +4 -4
  6. package/{esm2015/lib/dateTime/datetime.pipe.js → esm2020/lib/dateTime/datetime.pipe.mjs} +3 -3
  7. package/{esm2015/lib/dateTime/georgian.calendar.js → esm2020/lib/dateTime/georgian.calendar.mjs} +0 -0
  8. package/{esm2015/lib/dateTime/index.js → esm2020/lib/dateTime/index.mjs} +0 -0
  9. package/{esm2015/lib/dateTime/jalali.calendar.js → esm2020/lib/dateTime/jalali.calendar.mjs} +0 -0
  10. package/esm2020/lib/hotkeys/hotkeys.service.mjs +37 -0
  11. package/{esm2015/lib/hotkeys/index.js → esm2020/lib/hotkeys/index.mjs} +0 -0
  12. package/{esm2015/lib/platform/index.js → esm2020/lib/platform/index.mjs} +0 -0
  13. package/{esm2015/lib/platform/platform.service.js → esm2020/lib/platform/platform.service.mjs} +3 -3
  14. package/{esm2015/lib/translation/index.js → esm2020/lib/translation/index.mjs} +0 -0
  15. package/{esm2015/lib/translation/translation.module.js → esm2020/lib/translation/translation.module.mjs} +4 -4
  16. package/{esm2015/lib/translation/translator.js → esm2020/lib/translation/translator.mjs} +0 -0
  17. package/{esm2015/lib/translation/translator.pipe.js → esm2020/lib/translation/translator.pipe.mjs} +3 -3
  18. package/{esm2015/lib/utils/drawing-util.js → esm2020/lib/utils/drawing-util.mjs} +0 -0
  19. package/{esm2015/lib/utils/index.js → esm2020/lib/utils/index.mjs} +0 -0
  20. package/{esm2015/lib/utils/object-util.js → esm2020/lib/utils/object-util.mjs} +0 -0
  21. package/{esm2015/lib/utils/safe.pipe.js → esm2020/lib/utils/safe.pipe.mjs} +3 -3
  22. package/{esm2015/lib/utils/string-util.js → esm2020/lib/utils/string-util.mjs} +0 -0
  23. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  24. package/fesm2015/acorex-core.mjs +1221 -0
  25. package/fesm2015/acorex-core.mjs.map +1 -0
  26. package/{fesm2015/acorex-core.js → fesm2020/acorex-core.mjs} +29 -29
  27. package/fesm2020/acorex-core.mjs.map +1 -0
  28. package/package.json +25 -8
  29. package/bundles/acorex-core.umd.js +0 -1390
  30. package/bundles/acorex-core.umd.js.map +0 -1
  31. package/esm2015/lib/hotkeys/hotkeys.service.js +0 -37
  32. package/fesm2015/acorex-core.js.map +0 -1
@@ -0,0 +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/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.exec(c);\r\n let start = position - 1;\r\n let end = position;\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\r\n while (end < str.length && !isSpace(str[end])) {\r\n end += 1;\r\n }\r\n end = Math.max(start, end);\r\n\r\n return { \r\n start, \r\n end \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 { 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 AXObjectUtil.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 //TODO : fix override\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, defaultValue?: any): any {\r\n return AXObjectUtil.getPropByPath(AXConfig.dataModel, path) || defaultValue;\r\n }\r\n}","import { AXConfig } from '../config/configs';\r\n\r\n\r\n// export const AX_CALENDARS: any[] = [\r\n// {\r\n// name: 'gregorian',\r\n// type: 'GeorgianCalendar'\r\n// },\r\n// {\r\n// name: 'jalali',\r\n// type: 'JalaliCalendar'\r\n// }\r\n// ];\r\nexport type TimeUnit =\r\n | 'second'\r\n | 'minute'\r\n | 'hour'\r\n | 'day'\r\n | 'month'\r\n | 'year'\r\n | 'week';\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\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\r\n endOf(date: Date, unit: TimeUnit): AXDateTime;\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.type') || 'gregorian'\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\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 constructor(\r\n value: Date | string = new Date(),\r\n calendar: string | AXCalendar = AXConfig.get('dateTime.type') || 'gregorian'\r\n ) {\r\n this._calendar =\r\n // typeof calendar == 'string'\r\n // ? eval(`new ${AX_CALENDARS.find((c) => c.name == calendar).type}()`)\r\n // : calendar;\r\n typeof calendar == 'string'\r\n ? AXConfig.get(`dateTime.calendars.${calendar}`)\r\n : calendar;\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 }\r\n\r\n clone(): AXDateTime {\r\n return new AXDateTime(this.date, this.calendar.name());\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 format(\r\n format: string = AXConfig.get('dateTime.shortDateFormat') ||\r\n 'DDD, dd MMM yyyy'\r\n ): string {\r\n format = format.replace('ss', this.pad(this.date.getSeconds(), 2));\r\n format = format.replace('s', this.date.getSeconds().toString());\r\n format = format.replace(\r\n 'dd',\r\n this.pad(this.calendar.dayOfMonth(this.date), 2)\r\n );\r\n format = format.replace(\r\n 'd',\r\n this.calendar.dayOfMonth(this.date).toString()\r\n );\r\n format = format.replace('mm', this.pad(this.date.getMinutes(), 2));\r\n format = format.replace('m', this.date.getMinutes().toString());\r\n format = format.replace(\r\n 'MMMM',\r\n this.calendar.monthNames[this.calendar.monthOfYear(this.date) - 1]\r\n );\r\n format = format.replace(\r\n 'MMM',\r\n this.calendar.monthShortNames[this.calendar.monthOfYear(this.date) - 1]\r\n );\r\n format = format.replace(\r\n 'MM',\r\n this.pad(this.calendar.monthOfYear(this.date), 2)\r\n );\r\n format = format.replace(\r\n /M(?![ao])/,\r\n this.calendar.monthOfYear(this.date).toString()\r\n );\r\n format = format.replace(\r\n 'DDDD',\r\n this.calendar.dayNames[this.calendar.dayOfWeek(this.date) - 1]\r\n );\r\n format = format.replace(\r\n 'DDD',\r\n this.calendar.dayShortNames[this.calendar.dayOfWeek(this.date) - 1]\r\n );\r\n format = format.replace(\r\n /D(?!e)/,\r\n this.calendar.dayNames[this.calendar.dayOfWeek(this.date) - 1].substring(\r\n 0,\r\n 3\r\n )\r\n );\r\n format = format.replace('yyyy', this.calendar.year(this.date).toString());\r\n format = format.replace('YYYY', this.calendar.year(this.date).toString());\r\n format = format.replace(\r\n 'yy',\r\n this.calendar.year(this.date).toString().substring(2)\r\n );\r\n format = format.replace(\r\n 'YY',\r\n this.calendar.year(this.date).toString().substring(2)\r\n );\r\n format = format.replace('HH', this.pad(this.date.getHours(), 2));\r\n format = format.replace('H', this.date.getHours().toString());\r\n return format;\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(): string {\r\n return this.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);\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 { 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.toString();\r\n }\r\n else {\r\n return date.format(format);\r\n }\r\n }\r\n}","import { AXCalendar, AXDateTime, 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 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 throw new Error(\"Method not implemented.\");\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, 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 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 jm = (jm + amount) % 12;\r\n if (0 > jm) {\r\n jy += (this.monthOfYear(date) + amount - jm - 12) / 12;\r\n jm += 12;\r\n }\r\n else {\r\n jy += ((this.monthOfYear(date) + amount - jm) / 12);\r\n }\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 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 }\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 throw new Error(\"Method not implemented.\");\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 }\r\n });\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 { AXObjectUtil } from '../utils/object-util';\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 AXObjectUtil.getPropByPath(AXTranslator[`__data__${lang || AXTranslator.lang}`], key) || key;\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 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\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 }\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/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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"}
@@ -154,9 +154,9 @@ class AXSafePipe {
154
154
  }
155
155
  }
156
156
  }
157
- AXSafePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXSafePipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
158
- AXSafePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXSafePipe, name: "safe" });
159
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXSafePipe, decorators: [{
157
+ AXSafePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXSafePipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
158
+ AXSafePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXSafePipe, name: "safe" });
159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXSafePipe, decorators: [{
160
160
  type: Pipe,
161
161
  args: [{
162
162
  name: 'safe',
@@ -166,10 +166,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImpor
166
166
 
167
167
  class AXCoreModule {
168
168
  }
169
- AXCoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
170
- AXCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXCoreModule, declarations: [AXSafePipe], exports: [AXSafePipe] });
171
- AXCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXCoreModule, providers: [], imports: [[]] });
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXCoreModule, decorators: [{
169
+ AXCoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
170
+ AXCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXCoreModule, declarations: [AXSafePipe], exports: [AXSafePipe] });
171
+ AXCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXCoreModule, providers: [], imports: [[]] });
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXCoreModule, decorators: [{
173
173
  type: NgModule,
174
174
  args: [{
175
175
  imports: [],
@@ -481,9 +481,9 @@ class AXDateTimePipe {
481
481
  }
482
482
  }
483
483
  }
484
- AXDateTimePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDateTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
485
- AXDateTimePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDateTimePipe, name: "axDate" });
486
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDateTimePipe, decorators: [{
484
+ AXDateTimePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXDateTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
485
+ AXDateTimePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXDateTimePipe, name: "axDate" });
486
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXDateTimePipe, decorators: [{
487
487
  type: Pipe,
488
488
  args: [{ name: 'axDate' }]
489
489
  }], ctorParameters: function () { return []; } });
@@ -987,10 +987,10 @@ class AXDateTimeModule {
987
987
  });
988
988
  }
989
989
  }
990
- AXDateTimeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
991
- AXDateTimeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDateTimeModule, declarations: [AXDateTimePipe], exports: [AXDateTimePipe] });
992
- AXDateTimeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDateTimeModule, providers: [], imports: [[]] });
993
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDateTimeModule, decorators: [{
990
+ AXDateTimeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
991
+ AXDateTimeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXDateTimeModule, declarations: [AXDateTimePipe], exports: [AXDateTimePipe] });
992
+ AXDateTimeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXDateTimeModule, providers: [], imports: [[]] });
993
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXDateTimeModule, decorators: [{
994
994
  type: NgModule,
995
995
  args: [{
996
996
  imports: [],
@@ -1009,7 +1009,7 @@ class AXHotkeysService {
1009
1009
  };
1010
1010
  }
1011
1011
  addShortcut(options) {
1012
- const merged = Object.assign(Object.assign({}, this.defaults), options);
1012
+ const merged = { ...this.defaults, ...options };
1013
1013
  const event = `keydown.${merged.keys}`;
1014
1014
  return new Observable(observer => {
1015
1015
  const handler = (e) => {
@@ -1023,9 +1023,9 @@ class AXHotkeysService {
1023
1023
  });
1024
1024
  }
1025
1025
  }
1026
- AXHotkeysService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXHotkeysService, deps: [{ token: i1.EventManager }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
1027
- AXHotkeysService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXHotkeysService });
1028
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXHotkeysService, decorators: [{
1026
+ AXHotkeysService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXHotkeysService, deps: [{ token: i1.EventManager }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
1027
+ AXHotkeysService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXHotkeysService });
1028
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXHotkeysService, decorators: [{
1029
1029
  type: Injectable
1030
1030
  }], ctorParameters: function () { return [{ type: i1.EventManager }, { type: Document, decorators: [{
1031
1031
  type: Inject,
@@ -1060,19 +1060,19 @@ class AXTranslatorPipe {
1060
1060
  return AXTranslator.get(value, lang);
1061
1061
  }
1062
1062
  }
1063
- AXTranslatorPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXTranslatorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1064
- AXTranslatorPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXTranslatorPipe, name: "trans" });
1065
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXTranslatorPipe, decorators: [{
1063
+ AXTranslatorPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXTranslatorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1064
+ AXTranslatorPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXTranslatorPipe, name: "trans" });
1065
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXTranslatorPipe, decorators: [{
1066
1066
  type: Pipe,
1067
1067
  args: [{ name: 'trans', pure: true }]
1068
1068
  }] });
1069
1069
 
1070
1070
  class AXTranslationModule {
1071
1071
  }
1072
- AXTranslationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXTranslationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1073
- AXTranslationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXTranslationModule, declarations: [AXTranslatorPipe], exports: [AXTranslatorPipe] });
1074
- AXTranslationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXTranslationModule, providers: [], imports: [[]] });
1075
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXTranslationModule, decorators: [{
1072
+ AXTranslationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXTranslationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1073
+ AXTranslationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXTranslationModule, declarations: [AXTranslatorPipe], exports: [AXTranslatorPipe] });
1074
+ AXTranslationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXTranslationModule, providers: [], imports: [[]] });
1075
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXTranslationModule, decorators: [{
1076
1076
  type: NgModule,
1077
1077
  args: [{
1078
1078
  imports: [],
@@ -1197,9 +1197,9 @@ class AXPlatform {
1197
1197
  _html.classList.remove('ax-dark');
1198
1198
  }
1199
1199
  }
1200
- AXPlatform.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXPlatform, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1201
- AXPlatform.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXPlatform, providedIn: 'platform' });
1202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXPlatform, decorators: [{
1200
+ AXPlatform.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXPlatform, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1201
+ AXPlatform.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXPlatform, providedIn: 'platform' });
1202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AXPlatform, decorators: [{
1203
1203
  type: Injectable,
1204
1204
  args: [{
1205
1205
  providedIn: 'platform',
@@ -1216,4 +1216,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImpor
1216
1216
  */
1217
1217
 
1218
1218
  export { AXCalendarMonth, AXConfig, AXCoreModule, AXDateTime, AXDateTimeModule, AXDateTimePipe, AXDateTimeRange, AXDrawingUtil, AXHotkeysService, AXObjectUtil, AXPlatform, AXPlatformEvent, AXSafePipe, AXStringUtil, AXTranslationModule, AXTranslator, AXTranslatorPipe, GeorgianCalendar, testUserAgent };
1219
- //# sourceMappingURL=acorex-core.js.map
1219
+ //# sourceMappingURL=acorex-core.mjs.map
@@ -0,0 +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/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.exec(c);\r\n let start = position - 1;\r\n let end = position;\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\r\n while (end < str.length && !isSpace(str[end])) {\r\n end += 1;\r\n }\r\n end = Math.max(start, end);\r\n\r\n return { \r\n start, \r\n end \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 { 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 AXObjectUtil.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 //TODO : fix override\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, defaultValue?: any): any {\r\n return AXObjectUtil.getPropByPath(AXConfig.dataModel, path) || defaultValue;\r\n }\r\n}","import { AXConfig } from '../config/configs';\r\n\r\n\r\n// export const AX_CALENDARS: any[] = [\r\n// {\r\n// name: 'gregorian',\r\n// type: 'GeorgianCalendar'\r\n// },\r\n// {\r\n// name: 'jalali',\r\n// type: 'JalaliCalendar'\r\n// }\r\n// ];\r\nexport type TimeUnit =\r\n | 'second'\r\n | 'minute'\r\n | 'hour'\r\n | 'day'\r\n | 'month'\r\n | 'year'\r\n | 'week';\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\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\r\n endOf(date: Date, unit: TimeUnit): AXDateTime;\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.type') || 'gregorian'\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\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 constructor(\r\n value: Date | string = new Date(),\r\n calendar: string | AXCalendar = AXConfig.get('dateTime.type') || 'gregorian'\r\n ) {\r\n this._calendar =\r\n // typeof calendar == 'string'\r\n // ? eval(`new ${AX_CALENDARS.find((c) => c.name == calendar).type}()`)\r\n // : calendar;\r\n typeof calendar == 'string'\r\n ? AXConfig.get(`dateTime.calendars.${calendar}`)\r\n : calendar;\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 }\r\n\r\n clone(): AXDateTime {\r\n return new AXDateTime(this.date, this.calendar.name());\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 format(\r\n format: string = AXConfig.get('dateTime.shortDateFormat') ||\r\n 'DDD, dd MMM yyyy'\r\n ): string {\r\n format = format.replace('ss', this.pad(this.date.getSeconds(), 2));\r\n format = format.replace('s', this.date.getSeconds().toString());\r\n format = format.replace(\r\n 'dd',\r\n this.pad(this.calendar.dayOfMonth(this.date), 2)\r\n );\r\n format = format.replace(\r\n 'd',\r\n this.calendar.dayOfMonth(this.date).toString()\r\n );\r\n format = format.replace('mm', this.pad(this.date.getMinutes(), 2));\r\n format = format.replace('m', this.date.getMinutes().toString());\r\n format = format.replace(\r\n 'MMMM',\r\n this.calendar.monthNames[this.calendar.monthOfYear(this.date) - 1]\r\n );\r\n format = format.replace(\r\n 'MMM',\r\n this.calendar.monthShortNames[this.calendar.monthOfYear(this.date) - 1]\r\n );\r\n format = format.replace(\r\n 'MM',\r\n this.pad(this.calendar.monthOfYear(this.date), 2)\r\n );\r\n format = format.replace(\r\n /M(?![ao])/,\r\n this.calendar.monthOfYear(this.date).toString()\r\n );\r\n format = format.replace(\r\n 'DDDD',\r\n this.calendar.dayNames[this.calendar.dayOfWeek(this.date) - 1]\r\n );\r\n format = format.replace(\r\n 'DDD',\r\n this.calendar.dayShortNames[this.calendar.dayOfWeek(this.date) - 1]\r\n );\r\n format = format.replace(\r\n /D(?!e)/,\r\n this.calendar.dayNames[this.calendar.dayOfWeek(this.date) - 1].substring(\r\n 0,\r\n 3\r\n )\r\n );\r\n format = format.replace('yyyy', this.calendar.year(this.date).toString());\r\n format = format.replace('YYYY', this.calendar.year(this.date).toString());\r\n format = format.replace(\r\n 'yy',\r\n this.calendar.year(this.date).toString().substring(2)\r\n );\r\n format = format.replace(\r\n 'YY',\r\n this.calendar.year(this.date).toString().substring(2)\r\n );\r\n format = format.replace('HH', this.pad(this.date.getHours(), 2));\r\n format = format.replace('H', this.date.getHours().toString());\r\n return format;\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(): string {\r\n return this.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);\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 { 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.toString();\r\n }\r\n else {\r\n return date.format(format);\r\n }\r\n }\r\n}","import { AXCalendar, AXDateTime, 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 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 throw new Error(\"Method not implemented.\");\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, 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 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 jm = (jm + amount) % 12;\r\n if (0 > jm) {\r\n jy += (this.monthOfYear(date) + amount - jm - 12) / 12;\r\n jm += 12;\r\n }\r\n else {\r\n jy += ((this.monthOfYear(date) + amount - jm) / 12);\r\n }\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 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 }\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 throw new Error(\"Method not implemented.\");\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 }\r\n });\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 { AXObjectUtil } from '../utils/object-util';\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 AXObjectUtil.getPropByPath(AXTranslator[`__data__${lang || AXTranslator.lang}`], key) || key;\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 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\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 }\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/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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"}