@acorex/core 5.0.4 → 5.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/README.md +24 -24
  2. package/karma.conf.js +44 -0
  3. package/ng-package.json +11 -0
  4. package/package.json +14 -18
  5. package/src/lib/config/configs.ts +36 -0
  6. package/src/lib/core.module.ts +10 -0
  7. package/src/lib/dateTime/datetime.class.ts +395 -0
  8. package/src/lib/dateTime/datetime.module.ts +11 -0
  9. package/src/lib/dateTime/datetime.pipe.ts +20 -0
  10. package/src/lib/dateTime/georgian.calendar.ts +157 -0
  11. package/{lib/dateTime/index.d.ts → src/lib/dateTime/index.ts} +4 -4
  12. package/src/lib/dateTime/jalali.calendar.ts +376 -0
  13. package/src/lib/http/http-error.class.ts +7 -0
  14. package/src/lib/http/http-events.interceptor.ts +14 -0
  15. package/src/lib/http/http-request.class.ts +14 -0
  16. package/src/lib/http/http-result.class.ts +34 -0
  17. package/src/lib/http/http.module.ts +25 -0
  18. package/src/lib/http/http.service.ts +159 -0
  19. package/src/lib/platform/index.ts +1 -0
  20. package/src/lib/platform/platform.service.ts +185 -0
  21. package/{lib/translation/index.d.ts → src/lib/translation/index.ts} +3 -3
  22. package/src/lib/translation/translation.module.ts +12 -0
  23. package/src/lib/translation/translator.pipe.ts +9 -0
  24. package/src/lib/translation/translator.ts +31 -0
  25. package/src/lib/utils/drawing-util.ts +43 -0
  26. package/src/lib/utils/index.ts +3 -0
  27. package/src/lib/utils/object-util.ts +82 -0
  28. package/src/lib/utils/safe.pipe.ts +24 -0
  29. package/{public-api.d.ts → src/public-api.ts} +11 -10
  30. package/src/test.ts +26 -0
  31. package/tsconfig.lib.json +20 -0
  32. package/tsconfig.lib.prod.json +10 -0
  33. package/tsconfig.spec.json +17 -0
  34. package/acorex-core.d.ts +0 -5
  35. package/bundles/acorex-core.umd.js +0 -900
  36. package/bundles/acorex-core.umd.js.map +0 -1
  37. package/esm2015/acorex-core.js +0 -5
  38. package/esm2015/lib/config/configs.js +0 -29
  39. package/esm2015/lib/core.module.js +0 -18
  40. package/esm2015/lib/dateTime/datetime.class.js +0 -236
  41. package/esm2015/lib/dateTime/datetime.module.js +0 -18
  42. package/esm2015/lib/dateTime/datetime.pipe.js +0 -25
  43. package/esm2015/lib/dateTime/georgian.calendar.js +0 -145
  44. package/esm2015/lib/dateTime/index.js +0 -5
  45. package/esm2015/lib/platform/index.js +0 -2
  46. package/esm2015/lib/platform/platform.service.js +0 -119
  47. package/esm2015/lib/translation/index.js +0 -4
  48. package/esm2015/lib/translation/translation.module.js +0 -18
  49. package/esm2015/lib/translation/translator.js +0 -26
  50. package/esm2015/lib/translation/translator.pipe.js +0 -15
  51. package/esm2015/lib/utils/index.js +0 -3
  52. package/esm2015/lib/utils/object-util.js +0 -83
  53. package/esm2015/lib/utils/safe.pipe.js +0 -30
  54. package/esm2015/public-api.js +0 -11
  55. package/fesm2015/acorex-core.js +0 -751
  56. package/fesm2015/acorex-core.js.map +0 -1
  57. package/lib/config/configs.d.ts +0 -9
  58. package/lib/core.module.d.ts +0 -7
  59. package/lib/dateTime/datetime.class.d.ts +0 -96
  60. package/lib/dateTime/datetime.module.d.ts +0 -7
  61. package/lib/dateTime/datetime.pipe.d.ts +0 -8
  62. package/lib/dateTime/georgian.calendar.d.ts +0 -17
  63. package/lib/platform/index.d.ts +0 -1
  64. package/lib/platform/platform.service.d.ts +0 -22
  65. package/lib/translation/translation.module.d.ts +0 -7
  66. package/lib/translation/translator.d.ts +0 -9
  67. package/lib/translation/translator.pipe.d.ts +0 -7
  68. package/lib/utils/index.d.ts +0 -2
  69. package/lib/utils/object-util.d.ts +0 -7
  70. package/lib/utils/safe.pipe.d.ts +0 -10
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-core.umd.js","sources":["../../../../projects/acorex/core/src/lib/utils/object-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/datetime.module.ts","../../../../projects/acorex/core/src/lib/dateTime/georgian.calendar.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\nexport class AXObjectUtil {\n static deepJSONClone(obj: any): any {\n return obj ? JSON.parse(JSON.stringify(obj)) : null;\n }\n\n static deepCopy(obj) {\n let copy;\n // Handle the 3 simple types, and null or undefined\n if (null == obj || 'object' !== typeof obj) { return obj; }\n // Handle Date\n if (obj instanceof Date) {\n copy = new Date();\n copy.setTime(obj.getTime());\n return copy;\n }\n // Handle Array\n if (obj instanceof Array) {\n copy = [];\n for (let i = 0, len = obj.length; i < len; i++) {\n copy[i] = AXObjectUtil.deepCopy(obj[i]);\n }\n return copy;\n }\n // Handle Object\n if (obj instanceof Object) {\n copy = {};\n for (const attr in obj) {\n if (obj.hasOwnProperty(attr)) { copy[attr] = AXObjectUtil.deepCopy(obj[attr]); }\n }\n return copy;\n }\n throw new Error('Unable to copy obj! Its type isn\\'t supported.');\n }\n\n static fetchProp(obj, prop: string) {\n if (typeof obj === 'undefined') {\n return false;\n }\n const index = prop.indexOf('.');\n\n if (index > -1) {\n return AXObjectUtil.fetchProp(obj[prop.substring(0, index)], prop.substr(index + 1));\n }\n\n return obj[prop];\n }\n\n static getPropByPath(obj, path, defaultVal?) {\n path = path\n .replace(/\\[/g, '.')\n .replace(/]/g, '')\n .split('.');\n\n path.forEach((level) => {\n if (obj) {\n obj = obj[level];\n }\n });\n\n if (obj === undefined) {\n return defaultVal;\n }\n return obj;\n }\n\n static setPropByPath(obj, path, value) {\n if (Object(obj) !== obj) { return obj; } // When obj is not an object\n // If not yet an array, get the keys from the string-path\n if (!Array.isArray(path)) { path = path.toString().match(/[^.[\\]]+/g) || []; }\n path.slice(0, -1).reduce((a, c, i) => // Iterate all of them except the last one\n Object(a[c]) === a[c] // Does the key exist and is its value an object?\n // Yes: then follow that path\n ? a[c]\n // No: create the key. Is the next key a potential array-index?\n : a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1]\n ? [] // Yes: assign a new array object\n : {}, // No: assign a new plain object\n obj)[path[path.length - 1]] = value; // Finally assign the value to the last key\n return obj; // Return the top-level object to allow chaining\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';\n\n@Pipe({\n\tname: 'safe',\n\tpure: true\n})\nexport class AXSafePipe implements PipeTransform {\n\n\tconstructor(protected sanitizer: DomSanitizer) { }\n\n\tpublic transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n\t\tif (value == null || value == undefined || value == '')\n\t\t\treturn null;\n\t\tswitch (type) {\n\t\t\tcase 'html': return this.sanitizer.bypassSecurityTrustHtml(value);\n\t\t\tcase 'style': return this.sanitizer.bypassSecurityTrustStyle(value);\n\t\t\tcase 'script': return this.sanitizer.bypassSecurityTrustScript(value);\n\t\t\tcase 'url': return this.sanitizer.bypassSecurityTrustUrl(value);\n\t\t\tcase 'resourceUrl': return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n\t\t\tdefault: throw new Error(`Invalid safe type specified: ${type}`);\n\t\t}\n\t}\n}","import { NgModule } from \"@angular/core\";\nimport { AXSafePipe } from \"./utils\";\n\n@NgModule({\n imports: [],\n exports: [AXSafePipe],\n declarations: [AXSafePipe],\n providers: [],\n})\nexport class AXCoreModule { }\n","import { Subject, Observable } from 'rxjs';\nimport { AXObjectUtil } from '../utils/object-util';\n\n// @dynamic\nexport class AXConfig {\n private static dataModel: any = {};\n private static dataChangeSubject = new Subject<any>();\n\n\n static get onChange(): Observable<any> {\n return AXConfig.dataChangeSubject.asObservable();\n }\n\n static set(config: any): any;\n static set(path: string, value?: any): void;\n static set(arg1?: any, arg2?: any) {\n\n if (arg1 && typeof arg1 == 'string') {\n AXObjectUtil.setPropByPath(AXConfig.dataModel, arg1, arg2);\n AXConfig.dataChangeSubject.next(AXConfig.dataModel);\n return;\n }\n if (arg1 && typeof arg1 == 'object') {\n Object.assign(AXConfig.dataModel, arg1);\n AXConfig.dataChangeSubject.next(AXConfig.dataModel);\n return;\n }\n if (!arg1 && !arg2) {\n return AXConfig.dataChangeSubject.asObservable();\n }\n }\n\n static get(path: string, defaultValue?: any): any {\n return AXObjectUtil.getPropByPath(AXConfig.dataModel, path) || defaultValue;\n }\n}","import { AXConfig } from '../config/configs';\n\n\nexport const AX_CALENDARS: any[] = [\n {\n name: 'gregorian',\n type: 'GeorgianCalendar'\n },\n {\n name: 'jalali',\n type: 'JalaliCalendar'\n }\n];\nexport type TimeUnit =\n | 'second'\n | 'minute'\n | 'hour'\n | 'day'\n | 'month'\n | 'year'\n | 'week';\n\nexport interface AXCalendar {\n monthNames: string[];\n\n monthShortNames: string[];\n\n dayNames: string[];\n\n dayShortNames: string[];\n\n name(): string;\n\n dayInMonth(date: Date): number;\n\n dayOfYear(date: Date): number;\n\n dayInWeek(date: Date): number;\n\n year(date: Date): number;\n\n monthOfYear(date: Date): number;\n\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime;\n\n set(date: Date, unit: TimeUnit, value: number): AXDateTime;\n\n startOf(date: Date, unit: TimeUnit): AXDateTime;\n\n /**\n * This comment _supports_ [Markdown](https://marked.js.org/)\n */\n endOf(date: Date, unit: TimeUnit): AXDateTime;\n}\n\n/**\n * Standard links:\n * {@link Foo} or {@linkplain Foo} or [[Foo]]\n *\n * Code links: (Puts Foo inside <code> tags)\n * {@linkcode Foo} or [[`Foo`]]\n */\n// @dynamic\nexport class AXDateTime {\n static convert(\n value: any,\n calendar: string = AXConfig.get('dateTime.type') || 'gregorian'\n ): AXDateTime {\n let date: AXDateTime;\n if (typeof value === 'string' || value instanceof String) {\n date = new AXDateTime(value as string, calendar);\n } else if (value instanceof Date) {\n date = new AXDateTime(value as Date, calendar);\n } else if (value instanceof AXDateTime) {\n date = new AXDateTime(value.date, calendar);\n }\n return date;\n }\n\n\n private _date: Date;\n /**\n * This comment _supports_ [Markdown](https://marked.js.org/)\n */\n get date(): Date {\n return this._date;\n }\n\n private _calendar: AXCalendar;\n get calendar(): AXCalendar {\n return this._calendar;\n }\n\n constructor(\n value: Date | string = new Date(),\n calendar: string | AXCalendar = AXConfig.get('dateTime.type') || 'gregorian'\n ) {\n this._calendar =\n typeof calendar == 'string'\n ? eval(`new ${AX_CALENDARS.find((c) => c.name == calendar).type}()`)\n : calendar;\n if (value instanceof Date) {\n this._date = value as Date;\n } else {\n this._date = new Date(value);\n }\n }\n\n clone(): AXDateTime {\n return new AXDateTime(this.date, this.calendar.name());\n }\n\n get dayInMonth(): number {\n return this._calendar.dayInMonth(this.date);\n }\n\n get dayOfYear(): number {\n return this._calendar.dayOfYear(this.date);\n }\n\n get dayInWeek(): number {\n return this._calendar.dayInWeek(this.date);\n }\n\n get hour(): number {\n return this._date.getHours();\n }\n\n get minute(): number {\n return this._date.getMinutes();\n }\n\n get second(): number {\n return this._date.getSeconds();\n }\n\n get year(): number {\n return this._calendar.year(this.date);\n }\n\n get monthOfYear(): number {\n return this._calendar.monthOfYear(this.date);\n }\n\n get month(): AXCalendarMonth {\n return new AXCalendarMonth(this);\n }\n\n add(unit: TimeUnit, amount: number): AXDateTime {\n return this._calendar.add(this.date, unit, amount);\n }\n\n set(unit: TimeUnit = 'day', value: number): AXDateTime {\n return this._calendar.set(this.date, unit, value);\n }\n\n duration(\n end: AXDateTime | Date | string,\n unit: TimeUnit = 'day'\n ): AXTimeSpan {\n const range = new AXDateTimeRange(\n this,\n AXDateTime.convert(end, this.calendar.name())\n );\n return range.duration();\n }\n\n startOf(unit: TimeUnit = 'day'): AXDateTime {\n return this._calendar.startOf(this.date, unit);\n }\n\n endOf(unit: TimeUnit = 'day'): AXDateTime {\n return this._calendar.endOf(this.date, unit);\n }\n\n format(\n format: string = AXConfig.get('dateTime.shortDateFormat') ||\n 'DDD, dd MMM yyyy'\n ): string {\n format = format.replace('ss', this.pad(this.date.getSeconds(), 2));\n format = format.replace('s', this.date.getSeconds().toString());\n format = format.replace(\n 'dd',\n this.pad(this.calendar.dayInMonth(this.date), 2)\n );\n format = format.replace(\n 'd',\n this.calendar.dayInMonth(this.date).toString()\n );\n format = format.replace('mm', this.pad(this.date.getMinutes(), 2));\n format = format.replace('m', this.date.getMinutes().toString());\n format = format.replace(\n 'MMMM',\n this.calendar.monthNames[this.calendar.monthOfYear(this.date) - 1]\n );\n format = format.replace(\n 'MMM',\n this.calendar.monthShortNames[this.calendar.monthOfYear(this.date) - 1]\n );\n format = format.replace(\n 'MM',\n this.pad(this.calendar.monthOfYear(this.date), 2)\n );\n format = format.replace(\n /M(?![ao])/,\n this.calendar.monthOfYear(this.date).toString()\n );\n format = format.replace(\n 'DDDD',\n this.calendar.dayNames[this.calendar.dayInWeek(this.date) - 1]\n );\n format = format.replace(\n 'DDD',\n this.calendar.dayShortNames[this.calendar.dayInWeek(this.date) - 1]\n );\n format = format.replace(\n /D(?!e)/,\n this.calendar.dayNames[this.calendar.dayInWeek(this.date) - 1].substring(\n 0,\n 3\n )\n );\n format = format.replace('yyyy', this.calendar.year(this.date).toString());\n format = format.replace('YYYY', this.calendar.year(this.date).toString());\n format = format.replace(\n 'yy',\n this.calendar.year(this.date).toString().substring(2)\n );\n format = format.replace(\n 'YY',\n this.calendar.year(this.date).toString().substring(2)\n );\n format = format.replace('HH', this.pad(this.date.getHours(), 2));\n format = format.replace('H', this.date.getHours().toString());\n return format;\n }\n\n private pad(n, width, z = '0') {\n n = n + '';\n return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;\n }\n\n toString(): string {\n return this.format();\n }\n\n equal(value: any, unit: TimeUnit = 'day') {\n return this.compaire(value, unit) == 0;\n }\n\n compaire(value: any, unit: TimeUnit = 'day') {\n // TODO:\n const val = AXDateTime.convert(value);\n if (this.date == val.date) {\n return 0;\n } else if (this.date > val.date) {\n return 1;\n } else {\n return -1;\n }\n }\n\n convert(calendar: string) {\n return AXDateTime.convert(this, calendar);\n }\n}\n\nexport class AXCalendarMonth {\n private _range: AXDateTimeRange;\n public get range(): AXDateTimeRange {\n return this._range;\n }\n public set range(v: AXDateTimeRange) {\n this._range = v;\n }\n\n constructor(date: AXDateTime) {\n this.index = date.date.getMonth();\n this.name = date.format('MMMM');\n this.range = new AXDateTimeRange(\n new AXDateTime(date.startOf('month').date, date.calendar),\n new AXDateTime(date.endOf('month').date, date.calendar)\n );\n }\n\n private readonly index: number;\n private readonly name: string;\n}\n\nexport interface AXTimeSpanTotal {\n miliseconds: number;\n seconds: number;\n minutes: number;\n hours: number;\n days: number;\n weeks: number;\n months: number;\n years: number;\n}\n\nexport interface AXTimeSpan {\n miliseconds: number;\n seconds: number;\n minutes: number;\n hours: number;\n days: number;\n months: number;\n years: number;\n total: AXTimeSpanTotal;\n}\n\nexport class AXDateTimeRange {\n constructor(public startTime: AXDateTime, public endTime: AXDateTime) { }\n\n duration(): AXTimeSpan {\n const result: AXTimeSpan = {\n miliseconds: 0,\n seconds: 0,\n minutes: 0,\n hours: 0,\n days: 0,\n months: 0,\n years: 0,\n total: {\n miliseconds: 0,\n seconds: 0,\n minutes: 0,\n hours: 0,\n days: 0,\n weeks: 0,\n months: 0,\n years: 0,\n },\n };\n\n const one_second = 1000;\n const one_min = one_second * 60;\n const one_hour = one_min * 60;\n const one_day = one_hour * 24;\n const one_week = one_day * 7;\n const one_year = 365.25 * one_day;\n const one_month = one_year / 12;\n const startTime = this.startTime.date.getTime();\n const endTime = this.endTime.date.getTime();\n const diff = Math.abs(endTime - startTime);\n //\n result.total.miliseconds = diff;\n result.total.seconds = Number((diff / one_second).toFixed(2));\n result.total.minutes = Number((diff / one_min).toFixed(2));\n result.total.hours = Number((diff / one_hour).toFixed(2));\n result.total.days = Number((diff / one_day).toFixed(2));\n result.total.weeks = Number((diff / one_week).toFixed(2));\n //\n // let months = (this.endTime.year - this.startTime.year) * 12;\n // months += this.endTime.monthOfYear - this.startTime.monthOfYear + 1;\n // if (this.endTime.dayOfYear < this.startTime.dayOfYear) {\n // months--;\n // }\n // result.total.months = Math.abs(months);\n // TODO: review\n result.total.months = Number((diff / one_month).toFixed(2));\n result.total.years = Number((diff / one_year).toFixed(2));\n //\n result.miliseconds = result.total.miliseconds % 1000;\n result.seconds = Number((result.total.seconds % 60).toFixed(0));\n result.minutes = Number((result.total.minutes % 60).toFixed(0));\n result.hours = Number((result.total.hours % 24).toFixed(0));\n // TODO: review\n result.days = Number((result.total.days % 30.4).toFixed(0));\n result.months = Number((result.total.months % 12).toFixed(0));\n result.years = Number(result.total.years.toFixed(0));\n return result;\n }\n\n enumurate(unit: TimeUnit = 'day'): AXDateTime[] {\n // TODO: ??\n return [];\n }\n\n includes(value: AXDateTime, unit: TimeUnit = 'day'): boolean {\n // TODO: ??\n return true;\n }\n\n // getViewCompaire(view) {\n // switch (view) {\n // case 'day':\n // return 'YMD';\n // case 'month':\n // return 'YM';\n // case 'year':\n // return 'Y';\n // }\n // }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { AXDateTime } from './datetime.class';\n\n@Pipe({ name: 'axDate' })\nexport class AXDateTimePipe implements PipeTransform {\n constructor() { }\n\n transform(value: any, format?: string, calendar?: string): string {\n if (value == null) {\n return '';\n }\n const date: AXDateTime = value instanceof AXDateTime ? value.clone() : AXDateTime.convert(value, calendar);\n if (!format) {\n return date.toString();\n }\n else {\n return date.format(format);\n }\n }\n}","import { NgModule } from '@angular/core';\nimport { AXDateTimePipe } from './datetime.pipe';\n\n\n@NgModule({\n imports: [],\n exports: [AXDateTimePipe],\n declarations: [AXDateTimePipe],\n providers: [],\n})\nexport class AXDateTimeModule { }\n","import { AXCalendar, AXDateTime, TimeUnit } from \"./datetime.class\";\n\nexport class GeorgianCalendar implements AXCalendar {\n\n monthNames = [\n \"January\", \"February\", \"March\",\n \"April\", \"May\", \"June\", \"July\",\n \"August\", \"September\", \"October\",\n \"November\", \"December\"\n ];\n\n monthShortNames = [\n \"Jan\", \"Feb\", \"Mar\",\n \"Apr\", \"May\", \"Jun\", \"Jul\",\n \"Aug\", \"Sep\", \"Oct\",\n \"Nov\", \"Dec\"\n ];\n\n dayNames = [\n \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\",\n \"Thursday\", \"Friday\", \"Saturday\"\n ];\n\n dayShortNames = [\n \"Sun\", \"Mon\", \"Tue\", \"Wed\",\n \"Thu\", \"Fri\", \"Sat\"\n ];\n\n name(): string {\n return 'gregorian'\n }\n\n dayInMonth(date: Date): number {\n return date.getDate();\n }\n\n dayOfYear(date: Date): number {\n const start = +new Date(date.getFullYear(), 0, 0);\n const diff = +date - start;\n const oneDay = 1000 * 60 * 60 * 24;\n return Math.floor(diff / oneDay);\n }\n\n dayInWeek(date: Date): number {\n return date.getDay() + 1;\n }\n\n year(date: Date): number {\n return date.getFullYear();\n }\n\n monthOfYear(date: Date): number {\n return date.getMonth() + 1;\n }\n\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime {\n let value = date.valueOf();\n switch (unit) {\n case 'second':\n value += 1000 * amount;\n break\n case 'minute':\n value += 60000 * amount;\n break\n case 'hour':\n value += 3600000 * amount;\n break\n case 'month':\n const v = new Date(value);\n var mo = date.getMonth();\n var yr = date.getFullYear();\n mo = (mo + amount) % 12;\n if (0 > mo) {\n yr += (date.getMonth() + amount - mo - 12) / 12;\n mo += 12;\n }\n else\n yr += ((date.getMonth() + amount - mo) / 12);\n v.setMonth(mo);\n v.setFullYear(yr);\n value = v.valueOf();\n break\n case 'week':\n value += 7 * 86400000 * amount;\n break\n case 'year':\n const yv = new Date(value);\n yv.setFullYear(yv.getFullYear() + amount);\n value = v.valueOf();\n break\n case 'day':\n default:\n value += 86400000 * amount;\n }\n return new AXDateTime(new Date(value), this.name());\n }\n\n set(date: Date, unit: TimeUnit, value: number): AXDateTime {\n throw new Error(\"Method not implemented.\");\n }\n\n startOf(date: Date, unit: TimeUnit): AXDateTime {\n const clone = new Date(date.valueOf());\n switch (unit) {\n case 'second':\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 0);\n return new AXDateTime(clone, this.name());\n case 'minute':\n clone.setHours(clone.getHours(), clone.getMinutes(), 0, 0);\n return new AXDateTime(clone, this.name());\n case 'hour':\n clone.setHours(clone.getHours(), 0, 0, 0);\n return new AXDateTime(clone, this.name());\n default:\n case 'day':\n clone.setHours(0, 0, 0, 0);\n return new AXDateTime(clone, this.name());\n case \"week\":\n const diff = clone.getDate() - clone.getDay() + (clone.getDay() === 0 ? -6 : 1);\n clone.setDate(diff)\n return new AXDateTime(clone, this.name()).startOf('day');\n case \"month\":\n clone.setDate(1)\n return new AXDateTime(clone, this.name()).startOf('day');\n case \"year\":\n clone.setMonth(0);\n clone.setDate(1);\n return new AXDateTime(clone, this.name()).startOf('day');\n }\n }\n\n endOf(date: Date, unit: TimeUnit): AXDateTime {\n const clone = new Date(date.valueOf());\n switch (unit) {\n case 'second':\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 999);\n return new AXDateTime(clone, this.name());\n case 'minute':\n clone.setHours(clone.getHours(), clone.getMinutes(), 59, 999);\n return new AXDateTime(clone, this.name());\n case 'hour':\n clone.setHours(clone.getHours(), 59, 59, 999);\n return new AXDateTime(clone, this.name());\n default:\n case 'day':\n clone.setHours(23, 59, 59, 999);\n return new AXDateTime(clone, this.name());\n case 'week':\n return this.startOf(date, 'week').add('day', 6).endOf('day');\n case 'month':\n return new AXDateTime(new Date(date.getFullYear(), date.getMonth() + 1, 0), this.name()).endOf('day');\n case \"year\":\n clone.setMonth(11);\n return new AXDateTime(clone, this.name()).endOf('month');\n }\n }\n}","import { Subject, Observable } from 'rxjs';\nimport merge from 'lodash-es/merge';\nimport { AXObjectUtil } from '../utils/object-util';\n\n// @dynamic\nexport class AXTranslator {\n private static lang: string = 'en';\n private static dataChangeSubject = new Subject<any>();\n\n\n static get onChange(): Observable<any> {\n return AXTranslator.dataChangeSubject.asObservable();\n }\n\n public static load(lang: string, value: any) {\n if (typeof value === 'object') {\n if (!AXTranslator[`__data__${lang}`]) {\n AXTranslator[`__data__${lang}`] = {};\n }\n AXTranslator[`__data__${lang}`] = merge(AXTranslator[`__data__${lang}`], value);\n }\n }\n\n public static use(lang: string) {\n AXTranslator.lang = lang;\n }\n\n public static get(key: string, lang?: string): string {\n return AXObjectUtil.getPropByPath(AXTranslator[`__data__${lang || AXTranslator.lang}`], key) || key;\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { AXTranslator } from './translator';\n\n@Pipe({ name: 'trans', pure: true })\nexport class AXTranslatorPipe implements PipeTransform {\n transform(value: string, lang?: string): string {\n return AXTranslator.get(value, lang);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXTranslatorPipe } from './translator.pipe';\n\n@NgModule({\n imports: [],\n exports: [AXTranslatorPipe],\n declarations: [AXTranslatorPipe],\n providers: [],\n})\nexport class AXTranslationModule {\n \n}\n","import { Injectable } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\n\n\nexport type AXPlatforms = 'Android' | 'Desktop' | 'iOS' | 'Mobile';\nexport type AXBrowsers = 'Chrome' | 'Safari' | 'Edge' | 'Firefox' | 'Opera' | 'MSIE';\nexport type AXTechnologies = 'PWA' | 'Hybrid' | 'Electron';\n\n\n\n\nconst isChrome = (win: Window): boolean =>\n testUserAgent(win, /Chrome/i);\n\nconst isFirefox = (win: Window): boolean =>\n testUserAgent(win, /Firefox/i);\n\nconst isEdge = (win: Window): boolean =>\n testUserAgent(win, /Edge/i);\n\nconst isSafari = (win: Window): boolean =>\n testUserAgent(win, /Safari/i);\n\nconst isOpera = (win: Window): boolean =>\n testUserAgent(win, /Opera/i) || testUserAgent(win, /OPR/i);\n\nconst isMSIE = (win: Window): boolean =>\n testUserAgent(win, /MSIE/i) || testUserAgent(win, /Trident/i);\n\n\nconst isMobileWeb = (win: Window): boolean =>\n isMobile(win) && !isHybrid(win);\n\nconst isIpad = (win: Window) => {\n // iOS 12 and below\n if (testUserAgent(win, /iPad/i)) {\n return true;\n }\n\n // iOS 13+\n if (testUserAgent(win, /Macintosh/i) && isMobile(win)) {\n return true;\n }\n\n return false;\n};\n\nconst isIphone = (win: Window) =>\n testUserAgent(win, /iPhone/i);\n\nconst isIOS = (win: Window) =>\n testUserAgent(win, /iPhone|iPod/i) || isIpad(win);\n\nconst isAndroid = (win: Window) =>\n testUserAgent(win, /android|sink/i);\n\nconst isAndroidTablet = (win: Window) => {\n return isAndroid(win) && !testUserAgent(win, /mobile/i);\n};\n\nconst isPhablet = (win: Window) => {\n const width = win.innerWidth;\n const height = win.innerHeight;\n const smallest = Math.min(width, height);\n const largest = Math.max(width, height);\n\n return (smallest > 390 && smallest < 520) &&\n (largest > 620 && largest < 800);\n};\n\nconst isTablet = (win: Window) => {\n const width = win.innerWidth;\n const height = win.innerHeight;\n const smallest = Math.min(width, height);\n const largest = Math.max(width, height);\n\n return (\n isIpad(win) ||\n isAndroidTablet(win) ||\n (\n (smallest > 460 && smallest < 820) &&\n (largest > 780 && largest < 1400)\n )\n );\n};\n\nconst isMobile = (win: Window) =>\n matchMedia(win, '(any-pointer:coarse)');\n\nconst isDesktop = (win: Window) =>\n !isMobile(win);\n\nconst isHybrid = (win: Window) =>\n isCordova(win) || isCapacitorNative(win);\n\nconst isCordova = (win: any): boolean =>\n !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);\n\nconst isCapacitorNative = (win: any): boolean => {\n const capacitor = win['Capacitor'];\n return !!(capacitor && capacitor.isNative);\n};\n\nconst isElectron = (win: Window): boolean =>\n testUserAgent(win, /electron/i);\n\nconst isPWA = (win: Window): boolean =>\n !!(win.matchMedia('(display-mode: standalone)').matches || (win.navigator as any).standalone);\n\nexport const testUserAgent = (win: Window, expr: RegExp) =>\n expr.test(win.navigator.userAgent);\n\nconst matchMedia = (win: Window, query: string): boolean =>\n win.matchMedia(query).matches;\n\n\nconst PLATFORMS_MAP = {\n 'Android': isAndroid,\n 'iOS': isIOS,\n 'Desktop': isDesktop,\n 'Mobile': isMobile,\n 'Chrome': isChrome,\n 'Firefox': isFirefox,\n 'Safari': isSafari,\n 'Edge': isEdge,\n 'Opera': isOpera,\n 'Hybrid': isHybrid,\n 'PWA': isPWA,\n 'Electron': isElectron,\n};\n\n\nexport class AXPlatformEvent {\n nativeEvent: UIEvent | Event;\n source: AXPlatform\n}\n\n@Injectable({\n providedIn: 'platform',\n})\nexport class AXPlatform {\n resize: Subject<AXPlatformEvent> = new Subject<AXPlatformEvent>();\n click: Subject<AXPlatformEvent> = new Subject<AXPlatformEvent>()\n scroll: Subject<AXPlatformEvent> = new Subject<AXPlatformEvent>()\n\n isRtl(): boolean {\n return document.dir == 'rtl' || document.body.dir == 'rtl' || document.body.style.direction == 'rtl';\n }\n\n\n isLandscape(): boolean {\n return window.innerHeight < window.innerWidth;\n }\n\n isPortrate(): boolean {\n return !this.isLandscape()\n }\n\n is(name: AXPlatforms | AXBrowsers | AXTechnologies): boolean {\n return PLATFORMS_MAP[name](window) || false;\n }\n\n constructor() {\n window.addEventListener('resize', (e) => {\n this.resize.next({\n nativeEvent: e,\n source: this\n });\n })\n\n document.addEventListener('click', (e) => {\n this.click.next({\n nativeEvent: e,\n source: this\n });\n }, true)\n\n document.addEventListener('scroll', (e) => {\n this.scroll.next({\n nativeEvent: e,\n source: this\n });\n }, true)\n }\n}","\n/**\n * Public API refrences of core libraries\n * @module @acorex/core\n */\nexport * from './lib/core.module';\nexport * from './lib/dateTime';\nexport * from './lib/utils';\nexport * from './lib/config/configs';\nexport * from './lib/translation';\nexport * from './lib/platform';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Pipe","NgModule","Subject","merge","Injectable"],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvYWNvcmV4LWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,29 +0,0 @@
1
- import { Subject } from 'rxjs';
2
- import { AXObjectUtil } from '../utils/object-util';
3
- // @dynamic
4
- export class AXConfig {
5
- static get onChange() {
6
- return AXConfig.dataChangeSubject.asObservable();
7
- }
8
- static set(arg1, arg2) {
9
- if (arg1 && typeof arg1 == 'string') {
10
- AXObjectUtil.setPropByPath(AXConfig.dataModel, arg1, arg2);
11
- AXConfig.dataChangeSubject.next(AXConfig.dataModel);
12
- return;
13
- }
14
- if (arg1 && typeof arg1 == 'object') {
15
- Object.assign(AXConfig.dataModel, arg1);
16
- AXConfig.dataChangeSubject.next(AXConfig.dataModel);
17
- return;
18
- }
19
- if (!arg1 && !arg2) {
20
- return AXConfig.dataChangeSubject.asObservable();
21
- }
22
- }
23
- static get(path, defaultValue) {
24
- return AXObjectUtil.getPropByPath(AXConfig.dataModel, path) || defaultValue;
25
- }
26
- }
27
- AXConfig.dataModel = {};
28
- AXConfig.dataChangeSubject = new Subject();
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL3NyYy9saWIvY29uZmlnL2NvbmZpZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFcEQsV0FBVztBQUNYLE1BQU0sT0FBTyxRQUFRO0lBS2pCLE1BQU0sS0FBSyxRQUFRO1FBQ2YsT0FBTyxRQUFRLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUlELE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBVSxFQUFFLElBQVU7UUFFN0IsSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLElBQUksUUFBUSxFQUFFO1lBQ2pDLFlBQVksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDM0QsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDcEQsT0FBTztTQUNWO1FBQ0QsSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLElBQUksUUFBUSxFQUFFO1lBQ2pDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4QyxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwRCxPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2hCLE9BQU8sUUFBUSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3BEO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBWSxFQUFFLFlBQWtCO1FBQ3ZDLE9BQU8sWUFBWSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLFlBQVksQ0FBQztJQUNoRixDQUFDOztBQTdCYyxrQkFBUyxHQUFRLEVBQUUsQ0FBQztBQUNwQiwwQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhPYmplY3RVdGlsIH0gZnJvbSAnLi4vdXRpbHMvb2JqZWN0LXV0aWwnO1xuXG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIEFYQ29uZmlnIHtcbiAgICBwcml2YXRlIHN0YXRpYyBkYXRhTW9kZWw6IGFueSA9IHt9O1xuICAgIHByaXZhdGUgc3RhdGljIGRhdGFDaGFuZ2VTdWJqZWN0ID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG5cbiAgICBzdGF0aWMgZ2V0IG9uQ2hhbmdlKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiBBWENvbmZpZy5kYXRhQ2hhbmdlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgc2V0KGNvbmZpZzogYW55KTogYW55O1xuICAgIHN0YXRpYyBzZXQocGF0aDogc3RyaW5nLCB2YWx1ZT86IGFueSk6IHZvaWQ7XG4gICAgc3RhdGljIHNldChhcmcxPzogYW55LCBhcmcyPzogYW55KSB7XG5cbiAgICAgICAgaWYgKGFyZzEgJiYgdHlwZW9mIGFyZzEgPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIEFYT2JqZWN0VXRpbC5zZXRQcm9wQnlQYXRoKEFYQ29uZmlnLmRhdGFNb2RlbCwgYXJnMSwgYXJnMik7XG4gICAgICAgICAgICBBWENvbmZpZy5kYXRhQ2hhbmdlU3ViamVjdC5uZXh0KEFYQ29uZmlnLmRhdGFNb2RlbCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFyZzEgJiYgdHlwZW9mIGFyZzEgPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oQVhDb25maWcuZGF0YU1vZGVsLCBhcmcxKTtcbiAgICAgICAgICAgIEFYQ29uZmlnLmRhdGFDaGFuZ2VTdWJqZWN0Lm5leHQoQVhDb25maWcuZGF0YU1vZGVsKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWFyZzEgJiYgIWFyZzIpIHtcbiAgICAgICAgICAgIHJldHVybiBBWENvbmZpZy5kYXRhQ2hhbmdlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyBnZXQocGF0aDogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBhbnkpOiBhbnkge1xuICAgICAgICByZXR1cm4gQVhPYmplY3RVdGlsLmdldFByb3BCeVBhdGgoQVhDb25maWcuZGF0YU1vZGVsLCBwYXRoKSB8fCBkZWZhdWx0VmFsdWU7XG4gICAgfVxufSJdfQ==
@@ -1,18 +0,0 @@
1
- import { NgModule } from "@angular/core";
2
- import { AXSafePipe } from "./utils";
3
- import * as i0 from "@angular/core";
4
- export class AXCoreModule {
5
- }
6
- AXCoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- AXCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXCoreModule, declarations: [AXSafePipe], exports: [AXSafePipe] });
8
- AXCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXCoreModule, providers: [], imports: [[]] });
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXCoreModule, decorators: [{
10
- type: NgModule,
11
- args: [{
12
- imports: [],
13
- exports: [AXSafePipe],
14
- declarations: [AXSafePipe],
15
- providers: [],
16
- }]
17
- }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvbGliL2NvcmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFRckMsTUFBTSxPQUFPLFlBQVk7O3lHQUFaLFlBQVk7MEdBQVosWUFBWSxpQkFITixVQUFVLGFBRGYsVUFBVTswR0FJWCxZQUFZLGFBRlYsRUFBRSxZQUhKLEVBQUU7MkZBS0YsWUFBWTtrQkFOeEIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsRUFBRTtvQkFDWCxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUM7b0JBQ3JCLFlBQVksRUFBRSxDQUFDLFVBQVUsQ0FBQztvQkFDMUIsU0FBUyxFQUFFLEVBQUU7aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQVhTYWZlUGlwZSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW10sXG4gICAgZXhwb3J0czogW0FYU2FmZVBpcGVdLFxuICAgIGRlY2xhcmF0aW9uczogW0FYU2FmZVBpcGVdLFxuICAgIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYQ29yZU1vZHVsZSB7IH1cbiJdfQ==
@@ -1,236 +0,0 @@
1
- import { AXConfig } from '../config/configs';
2
- export const AX_CALENDARS = [
3
- {
4
- name: 'gregorian',
5
- type: 'GeorgianCalendar'
6
- },
7
- {
8
- name: 'jalali',
9
- type: 'JalaliCalendar'
10
- }
11
- ];
12
- /**
13
- * Standard links:
14
- * {@link Foo} or {@linkplain Foo} or [[Foo]]
15
- *
16
- * Code links: (Puts Foo inside <code> tags)
17
- * {@linkcode Foo} or [[`Foo`]]
18
- */
19
- // @dynamic
20
- export class AXDateTime {
21
- constructor(value = new Date(), calendar = AXConfig.get('dateTime.type') || 'gregorian') {
22
- this._calendar =
23
- typeof calendar == 'string'
24
- ? eval(`new ${AX_CALENDARS.find((c) => c.name == calendar).type}()`)
25
- : calendar;
26
- if (value instanceof Date) {
27
- this._date = value;
28
- }
29
- else {
30
- this._date = new Date(value);
31
- }
32
- }
33
- static convert(value, calendar = AXConfig.get('dateTime.type') || 'gregorian') {
34
- let date;
35
- if (typeof value === 'string' || value instanceof String) {
36
- date = new AXDateTime(value, calendar);
37
- }
38
- else if (value instanceof Date) {
39
- date = new AXDateTime(value, calendar);
40
- }
41
- else if (value instanceof AXDateTime) {
42
- date = new AXDateTime(value.date, calendar);
43
- }
44
- return date;
45
- }
46
- /**
47
- * This comment _supports_ [Markdown](https://marked.js.org/)
48
- */
49
- get date() {
50
- return this._date;
51
- }
52
- get calendar() {
53
- return this._calendar;
54
- }
55
- clone() {
56
- return new AXDateTime(this.date, this.calendar.name());
57
- }
58
- get dayInMonth() {
59
- return this._calendar.dayInMonth(this.date);
60
- }
61
- get dayOfYear() {
62
- return this._calendar.dayOfYear(this.date);
63
- }
64
- get dayInWeek() {
65
- return this._calendar.dayInWeek(this.date);
66
- }
67
- get hour() {
68
- return this._date.getHours();
69
- }
70
- get minute() {
71
- return this._date.getMinutes();
72
- }
73
- get second() {
74
- return this._date.getSeconds();
75
- }
76
- get year() {
77
- return this._calendar.year(this.date);
78
- }
79
- get monthOfYear() {
80
- return this._calendar.monthOfYear(this.date);
81
- }
82
- get month() {
83
- return new AXCalendarMonth(this);
84
- }
85
- add(unit, amount) {
86
- return this._calendar.add(this.date, unit, amount);
87
- }
88
- set(unit = 'day', value) {
89
- return this._calendar.set(this.date, unit, value);
90
- }
91
- duration(end, unit = 'day') {
92
- const range = new AXDateTimeRange(this, AXDateTime.convert(end, this.calendar.name()));
93
- return range.duration();
94
- }
95
- startOf(unit = 'day') {
96
- return this._calendar.startOf(this.date, unit);
97
- }
98
- endOf(unit = 'day') {
99
- return this._calendar.endOf(this.date, unit);
100
- }
101
- format(format = AXConfig.get('dateTime.shortDateFormat') ||
102
- 'DDD, dd MMM yyyy') {
103
- format = format.replace('ss', this.pad(this.date.getSeconds(), 2));
104
- format = format.replace('s', this.date.getSeconds().toString());
105
- format = format.replace('dd', this.pad(this.calendar.dayInMonth(this.date), 2));
106
- format = format.replace('d', this.calendar.dayInMonth(this.date).toString());
107
- format = format.replace('mm', this.pad(this.date.getMinutes(), 2));
108
- format = format.replace('m', this.date.getMinutes().toString());
109
- format = format.replace('MMMM', this.calendar.monthNames[this.calendar.monthOfYear(this.date) - 1]);
110
- format = format.replace('MMM', this.calendar.monthShortNames[this.calendar.monthOfYear(this.date) - 1]);
111
- format = format.replace('MM', this.pad(this.calendar.monthOfYear(this.date), 2));
112
- format = format.replace(/M(?![ao])/, this.calendar.monthOfYear(this.date).toString());
113
- format = format.replace('DDDD', this.calendar.dayNames[this.calendar.dayInWeek(this.date) - 1]);
114
- format = format.replace('DDD', this.calendar.dayShortNames[this.calendar.dayInWeek(this.date) - 1]);
115
- format = format.replace(/D(?!e)/, this.calendar.dayNames[this.calendar.dayInWeek(this.date) - 1].substring(0, 3));
116
- format = format.replace('yyyy', this.calendar.year(this.date).toString());
117
- format = format.replace('YYYY', this.calendar.year(this.date).toString());
118
- format = format.replace('yy', this.calendar.year(this.date).toString().substring(2));
119
- format = format.replace('YY', this.calendar.year(this.date).toString().substring(2));
120
- format = format.replace('HH', this.pad(this.date.getHours(), 2));
121
- format = format.replace('H', this.date.getHours().toString());
122
- return format;
123
- }
124
- pad(n, width, z = '0') {
125
- n = n + '';
126
- return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
127
- }
128
- toString() {
129
- return this.format();
130
- }
131
- equal(value, unit = 'day') {
132
- return this.compaire(value, unit) == 0;
133
- }
134
- compaire(value, unit = 'day') {
135
- // TODO:
136
- const val = AXDateTime.convert(value);
137
- if (this.date == val.date) {
138
- return 0;
139
- }
140
- else if (this.date > val.date) {
141
- return 1;
142
- }
143
- else {
144
- return -1;
145
- }
146
- }
147
- convert(calendar) {
148
- return AXDateTime.convert(this, calendar);
149
- }
150
- }
151
- export class AXCalendarMonth {
152
- constructor(date) {
153
- this.index = date.date.getMonth();
154
- this.name = date.format('MMMM');
155
- this.range = new AXDateTimeRange(new AXDateTime(date.startOf('month').date, date.calendar), new AXDateTime(date.endOf('month').date, date.calendar));
156
- }
157
- get range() {
158
- return this._range;
159
- }
160
- set range(v) {
161
- this._range = v;
162
- }
163
- }
164
- export class AXDateTimeRange {
165
- constructor(startTime, endTime) {
166
- this.startTime = startTime;
167
- this.endTime = endTime;
168
- }
169
- duration() {
170
- const result = {
171
- miliseconds: 0,
172
- seconds: 0,
173
- minutes: 0,
174
- hours: 0,
175
- days: 0,
176
- months: 0,
177
- years: 0,
178
- total: {
179
- miliseconds: 0,
180
- seconds: 0,
181
- minutes: 0,
182
- hours: 0,
183
- days: 0,
184
- weeks: 0,
185
- months: 0,
186
- years: 0,
187
- },
188
- };
189
- const one_second = 1000;
190
- const one_min = one_second * 60;
191
- const one_hour = one_min * 60;
192
- const one_day = one_hour * 24;
193
- const one_week = one_day * 7;
194
- const one_year = 365.25 * one_day;
195
- const one_month = one_year / 12;
196
- const startTime = this.startTime.date.getTime();
197
- const endTime = this.endTime.date.getTime();
198
- const diff = Math.abs(endTime - startTime);
199
- //
200
- result.total.miliseconds = diff;
201
- result.total.seconds = Number((diff / one_second).toFixed(2));
202
- result.total.minutes = Number((diff / one_min).toFixed(2));
203
- result.total.hours = Number((diff / one_hour).toFixed(2));
204
- result.total.days = Number((diff / one_day).toFixed(2));
205
- result.total.weeks = Number((diff / one_week).toFixed(2));
206
- //
207
- // let months = (this.endTime.year - this.startTime.year) * 12;
208
- // months += this.endTime.monthOfYear - this.startTime.monthOfYear + 1;
209
- // if (this.endTime.dayOfYear < this.startTime.dayOfYear) {
210
- // months--;
211
- // }
212
- // result.total.months = Math.abs(months);
213
- // TODO: review
214
- result.total.months = Number((diff / one_month).toFixed(2));
215
- result.total.years = Number((diff / one_year).toFixed(2));
216
- //
217
- result.miliseconds = result.total.miliseconds % 1000;
218
- result.seconds = Number((result.total.seconds % 60).toFixed(0));
219
- result.minutes = Number((result.total.minutes % 60).toFixed(0));
220
- result.hours = Number((result.total.hours % 24).toFixed(0));
221
- // TODO: review
222
- result.days = Number((result.total.days % 30.4).toFixed(0));
223
- result.months = Number((result.total.months % 12).toFixed(0));
224
- result.years = Number(result.total.years.toFixed(0));
225
- return result;
226
- }
227
- enumurate(unit = 'day') {
228
- // TODO: ??
229
- return [];
230
- }
231
- includes(value, unit = 'day') {
232
- // TODO: ??
233
- return true;
234
- }
235
- }
236
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvbGliL2RhdGVUaW1lL2RhdGV0aW1lLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUc3QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQVU7SUFDakM7UUFDRSxJQUFJLEVBQUUsV0FBVztRQUNqQixJQUFJLEVBQUUsa0JBQWtCO0tBQ3pCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsUUFBUTtRQUNkLElBQUksRUFBRSxnQkFBZ0I7S0FDdkI7Q0FDRixDQUFDO0FBMkNGOzs7Ozs7R0FNRztBQUNILFdBQVc7QUFDWCxNQUFNLE9BQU8sVUFBVTtJQThCckIsWUFDRSxRQUF1QixJQUFJLElBQUksRUFBRSxFQUNqQyxXQUFnQyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLFdBQVc7UUFFNUUsSUFBSSxDQUFDLFNBQVM7WUFDWixPQUFPLFFBQVEsSUFBSSxRQUFRO2dCQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztnQkFDcEUsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUNmLElBQUksS0FBSyxZQUFZLElBQUksRUFBRTtZQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQWEsQ0FBQztTQUM1QjthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM5QjtJQUNILENBQUM7SUExQ0QsTUFBTSxDQUFDLE9BQU8sQ0FDWixLQUFVLEVBQ1YsV0FBbUIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxl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LGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ3BFLENBQUM7UUFDRixNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FDckIsUUFBUSxFQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQ3RFLENBQUMsRUFDRCxDQUFDLENBQ0YsQ0FDRixDQUFDO1FBQ0YsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMxRSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FDckIsSUFBSSxFQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQ3RELENBQUM7UUFDRixNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FDckIsSUFBSSxFQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQ3RELENBQUM7UUFDRixNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEs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S0FBSyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRSxNQUFNLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVELGVBQWU7UUFDZixNQUFNLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUFpQixLQUFLO1FBQzlCLFdBQVc7UUFDWCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBaUIsRUFBRSxPQUFpQixLQUFLO1FBQ2hELFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FZRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlnL2NvbmZpZ3MnO1xuXG5cbmV4cG9ydCBjb25zdCBBWF9DQUxFTkRBUlM6IGFueVtdID0gW1xuICB7XG4gICAgbmFtZTogJ2dyZWdvcmlhbicsXG4gICAgdHlwZTogJ0dlb3JnaWFuQ2FsZW5kYXInXG4gIH0sXG4gIHtcbiAgICBuYW1lOiAnamFsYWxpJyxcbiAgICB0eXBlOiAnSmFsYWxpQ2FsZW5kYXInXG4gIH1cbl07XG5leHBvcnQgdHlwZSBUaW1lVW5pdCA9XG4gIHwgJ3NlY29uZCdcbiAgfCAnbWludXRlJ1xuICB8ICdob3VyJ1xuICB8ICdkYXknXG4gIHwgJ21vbnRoJ1xuICB8ICd5ZWFyJ1xuICB8ICd3ZWVrJztcblxuZXhwb3J0IGludGVyZmFjZSBBWENhbGVuZGFyIHtcbiAgbW9udGhOYW1lczogc3RyaW5nW107XG5cbiAgbW9udGhTaG9ydE5hbWVzOiBzdHJpbmdbXTtcblxuICBkYXlOYW1lczogc3RyaW5nW107XG5cbiAgZGF5U2hvcnROYW1lczogc3RyaW5nW107XG5cbiAgbmFtZSgpOiBzdHJpbmc7XG5cbiAgZGF5SW5Nb250aChkYXRlOiBEYXRlKTogbnVtYmVyO1xuXG4gIGRheU9mWWVhcihkYXRlOiBEYXRlKTogbnVtYmVyO1xuXG4gIGRheUluV2VlayhkYXRlOiBEYXRlKTogbnVtYmVyO1xuXG4gIHllYXIoZGF0ZTogRGF0ZSk6IG51bWJlcjtcblxuICBtb250aE9mWWVhcihkYXRlOiBEYXRlKTogbnVtYmVyO1xuXG4gIGFkZChkYXRlOiBEYXRlLCB1bml0OiBUaW1lVW5pdCwgYW1vdW50OiBudW1iZXIpOiBBWERhdGVUaW1lO1xuXG4gIHNldChkYXRlOiBEYXRlLCB1bml0OiBUaW1lVW5pdCwgdmFsdWU6IG51bWJlcik6IEFYRGF0ZVRpbWU7XG5cbiAgc3RhcnRPZihkYXRlOiBEYXRlLCB1bml0OiBUaW1lVW5pdCk6IEFYRGF0ZVRpbWU7XG5cbiAgLyoqXG4gKiBUaGlzIGNvbW1lbnQgX3N1cHBvcnRzXyBbTWFya2Rvd25dKGh0dHBzOi8vbWFya2VkLmpzLm9yZy8pXG4gKi9cbiAgZW5kT2YoZGF0ZTogRGF0ZSwgdW5pdDogVGltZVVuaXQpOiBBWERhdGVUaW1lO1xufVxuXG4vKipcbiAqIFN0YW5kYXJkIGxpbmtzOlxuICoge0BsaW5rIEZvb30gb3Ige0BsaW5rcGxhaW4gRm9vfSBvciBbW0Zvb11dXG4gKlxuICogQ29kZSBsaW5rczogKFB1dHMgRm9vIGluc2lkZSA8Y29kZT4gdGFncylcbiAqIHtAbGlua2NvZGUgRm9vfSBvciBbW2BGb29gXV1cbiAqL1xuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBBWERhdGVUaW1lIHtcbiAgc3RhdGljIGNvbnZlcnQoXG4gICAgdmFsdWU6IGFueSxcbiAgICBjYWxlbmRhcjogc3RyaW5nID0gQVhDb25maWcuZ2V0KCdkYXRlVGltZS50eXBlJykgfHwgJ2dyZWdvcmlhbidcbiAgKTogQVhEYXRlVGltZSB7XG4gICAgbGV0IGRhdGU6IEFYRGF0ZVRpbWU7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgdmFsdWUgaW5zdGFuY2VvZiBTdHJpbmcpIHtcbiAgICAgIGRhdGUgPSBuZXcgQVhEYXRlVGltZSh2YWx1ZSBhcyBzdHJpbmcsIGNhbGVuZGFyKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgZGF0ZSA9IG5ldyBBWERhdGVUaW1lKHZhbHVlIGFzIERhdGUsIGNhbGVuZGFyKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgQVhEYXRlVGltZSkge1xuICAgICAgZGF0ZSA9IG5ldyBBWERhdGVUaW1lKHZhbHVlLmRhdGUsIGNhbGVuZGFyKTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGU7XG4gIH1cblxuXG4gIHByaXZhdGUgX2RhdGU6IERhdGU7XG4gICAgLyoqXG4gKiBUaGlzIGNvbW1lbnQgX3N1cHBvcnRzXyBbTWFya2Rvd25dKGh0dHBzOi8vbWFya2VkLmpzLm9yZy8pXG4gKi9cbiAgZ2V0IGRhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGU7XG4gIH1cblxuICBwcml2YXRlIF9jYWxlbmRhcjogQVhDYWxlbmRhcjtcbiAgZ2V0IGNhbGVuZGFyKCk6IEFYQ2FsZW5kYXIge1xuICAgIHJldHVybiB0aGlzLl9jYWxlbmRhcjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHZhbHVlOiBEYXRlIHwgc3RyaW5nID0gbmV3IERhdGUoKSxcbiAgICBjYWxlbmRhcjogc3RyaW5nIHwgQVhDYWxlbmRhciA9IEFYQ29uZmlnLmdldCgnZGF0ZVRpbWUudHlwZScpIHx8ICdncmVnb3JpYW4nXG4gICkge1xuICAgIHRoaXMuX2NhbGVuZGFyID1cbiAgICAgIHR5cGVvZiBjYWxlbmRhciA9PSAnc3RyaW5nJ1xuICAgICAgICA/IGV2YWwoYG5ldyAke0FYX0NBTEVOREFSUy5maW5kKChjKSA9PiBjLm5hbWUgPT0gY2FsZW5kYXIpLnR5cGV9KClgKVxuICAgICAgICA6IGNhbGVuZGFyO1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHRoaXMuX2RhdGUgPSB2YWx1ZSBhcyBEYXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9kYXRlID0gbmV3IERhdGUodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGNsb25lKCk6IEFYRGF0ZVRpbWUge1xuICAgIHJldHVybiBuZXcgQVhEYXRlVGltZSh0aGlzLmRhdGUsIHRoaXMuY2FsZW5kYXIubmFtZSgpKTtcbiAgfVxuXG4gIGdldCBkYXlJbk1vbnRoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2NhbGVuZGFyLmRheUluTW9udGgodGhpcy5kYXRlKTtcbiAgfVxuXG4gIGdldCBkYXlPZlllYXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fY2FsZW5kYXIuZGF5T2ZZZWFyKHRoaXMuZGF0ZSk7XG4gIH1cblxuICBnZXQgZGF5SW5XZWVrKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2NhbGVuZGFyLmRheUluV2Vlayh0aGlzLmRhdGUpO1xuICB9XG5cbiAgZ2V0IGhvdXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0ZS5nZXRIb3VycygpO1xuICB9XG5cbiAgZ2V0IG1pbnV0ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9kYXRlLmdldE1pbnV0ZXMoKTtcbiAgfVxuXG4gIGdldCBzZWNvbmQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0ZS5nZXRTZWNvbmRzKCk7XG4gIH1cblxuICBnZXQgeWVhcigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jYWxlbmRhci55ZWFyKHRoaXMuZGF0ZSk7XG4gIH1cblxuICBnZXQgbW9udGhPZlllYXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fY2FsZW5kYXIubW9udGhPZlllYXIodGhpcy5kYXRlKTtcbiAgfVxuXG4gIGdldCBtb250aCgpOiBBWENhbGVuZGFyTW9udGgge1xuICAgIHJldHVybiBuZXcgQVhDYWxlbmRhck1vbnRoKHRoaXMpO1xuICB9XG5cbiAgYWRkKHVuaXQ6IFRpbWVVbml0LCBhbW91bnQ6IG51bWJlcik6IEFYRGF0ZVRpbWUge1xuICAgIHJldHVybiB0aGlzLl9jYWxlbmRhci5hZGQodGhpcy5kYXRlLCB1bml0LCBhbW91bnQpO1xuICB9XG5cbiAgc2V0KHVuaXQ6IFRpbWVVbml0ID0gJ2RheScsIHZhbHVlOiBudW1iZXIpOiBBWERhdGVUaW1lIHtcbiAgICByZXR1cm4gdGhpcy5fY2FsZW5kYXIuc2V0KHRoaXMuZGF0ZSwgdW5pdCwgdmFsdWUpO1xuICB9XG5cbiAgZHVyYXRpb24oXG4gICAgZW5kOiBBWERhdGVUaW1lIHwgRGF0ZSB8IHN0cmluZyxcbiAgICB1bml0OiBUaW1lVW5pdCA9ICdkYXknXG4gICk6IEFYVGltZVNwYW4ge1xuICAgIGNvbnN0IHJhbmdlID0gbmV3IEFYRGF0ZVRpbWVSYW5nZShcbiAgICAgIHRoaXMsXG4gICAgICBBWERhdGVUaW1lLmNvbnZlcnQoZW5kLCB0aGlzLmNhbGVuZGFyLm5hbWUoKSlcbiAgICApO1xuICAgIHJldHVybiByYW5nZS5kdXJhdGlvbigpO1xuICB9XG5cbiAgc3RhcnRPZih1bml0OiBUaW1lVW5pdCA9ICdkYXknKTogQVhEYXRlVGltZSB7XG4gICAgcmV0dXJuIHRoaXMuX2NhbGVuZGFyLnN0YXJ0T2YodGhpcy5kYXRlLCB1bml0KTtcbiAgfVxuXG4gIGVuZE9mKHVuaXQ6IFRpbWVVbml0ID0gJ2RheScpOiBBWERhdGVUaW1lIHtcbiAgICByZXR1cm4gdGhpcy5fY2FsZW5kYXIuZW5kT2YodGhpcy5kYXRlLCB1bml0KTtcbiAgfVxuXG4gIGZvcm1hdChcbiAgICBmb3JtYXQ6IHN0cmluZyA9IEFYQ29uZmlnLmdldCgnZGF0ZVRpbWUuc2hvcnREYXRlRm9ybWF0JykgfHxcbiAgICAgICdEREQsIGRkIE1NTSB5eXl5J1xuICApOiBzdHJpbmcge1xuICAgIGZvcm1hdCA9IGZvcm1hdC5yZXBsYWNlKCdzcycsIHRoaXMucGFkKHRoaXMuZGF0ZS5nZXRTZWNvbmRzKCksIDIpKTtcbiAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZSgncycsIHRoaXMuZGF0ZS5nZXRTZWNvbmRzKCkudG9TdHJpbmcoKSk7XG4gICAgZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoXG4gICAgICAnZGQnLFxuICAgICAgdGhpcy5wYWQodGhpcy5jYWxlbmRhci5kYXlJbk1vbnRoKHRoaXMuZGF0ZSksIDIpXG4gICAgKTtcbiAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZShcbiAgICAgICdkJyxcbiAgICAgIHRoaXMuY2FsZW5kYXIuZGF5SW5Nb250aCh0aGlzLmRhdGUpLnRvU3RyaW5nKClcbiAgICApO1xuICAgIGZvcm1hdCA9IGZvcm1hdC5yZXBsYWNlKCdtbScsIHRoaXMucGFkKHRoaXMuZGF0ZS5nZXRNaW51dGVzKCksIDIpKTtcbiAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZSgnbScsIHRoaXMuZGF0ZS5nZXRNaW51dGVzKCkudG9TdHJpbmcoKSk7XG4gICAgZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoXG4gICAgICAnTU1NTScsXG4gICAgICB0aGlzLmNhbGVuZGFyLm1vbnRoTmFtZXNbdGhpcy5jYWxlbmRhci5tb250aE9mWWVhcih0aGlzLmRhdGUpIC0gMV1cbiAgICApO1xuICAgIGZvcm1hdCA9IGZvcm1hdC5yZXBsYWNlKFxuICAgICAgJ01NTScsXG4gICAgICB0aGlzLmNhbGVuZGFyLm1vbnRoU2hvcnROYW1lc1t0aGlzLmNhbGVuZGFyLm1vbnRoT2ZZZWFyKHRoaXMuZGF0ZSkgLSAxXVxuICAgICk7XG4gICAgZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoXG4gICAgICAnTU0nLFxuICAgICAgdGhpcy5wYWQodGhpcy5jYWxlbmRhci5tb250aE9mWWVhcih0aGlzLmRhdGUpLCAyKVxuICAgICk7XG4gICAgZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoXG4gICAgICAvTSg/IVthb10pLyxcbiAgICAgIHRoaXMuY2FsZW5kYXIubW9udGhPZlllYXIodGhpcy5kYXRlKS50b1N0cmluZygpXG4gICAgKTtcbiAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZShcbiAgICAgICdEREREJyxcbiAgICAgIHRoaXMuY2FsZW5kYXIuZGF5TmFtZXNbdGhpcy5jYWxlbmRhci5kYXlJbldlZWsodGhpcy5kYXRlKSAtIDFdXG4gICAgKTtcbiAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZShcbiAgICAgICdEREQnLFxuICAgICAgdGhpcy5jYWxlbmRhci5kYXlTaG9ydE5hbWVzW3RoaXMuY2FsZW5kYXIuZGF5SW5XZWVrKHRoaXMuZGF0ZSkgLSAxXVxuICAgICk7XG4gICAgZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoXG4gICAgICAvRCg/IWUpLyxcbiAgICAgIHRoaXMuY2FsZW5kYXIuZGF5TmFtZXNbdGhpcy5jYWxlbmRhci5kYXlJbldlZWsodGhpcy5kYXRlKSAtIDFdLnN1YnN0cmluZyhcbiAgICAgICAgMCxcbiAgICAgICAgM1xuICAgICAgKVxuICAgICk7XG4gICAgZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoJ3l5eXknLCB0aGlzLmNhbGVuZGFyLnllYXIodGhpcy5kYXRlKS50b1N0cmluZygpKTtcbiAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZSgnWVlZWScsIHRoaXMuY2FsZW5kYXIueWVhcih0aGlzLmRhdGUpLnRvU3RyaW5nKCkpO1xuICAgIGZvcm1hdCA9IGZvcm1hdC5yZXBsYWNlKFxuICAgICAgJ3l5JyxcbiAgICAgIHRoaXMuY2FsZW5kYXIueWVhcih0aGlzLmRhdGUpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpXG4gICAgKTtcbiAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZShcbiAgICAgICdZWScsXG4gICAgICB0aGlzLmNhbGVuZGFyLnllYXIodGhpcy5kYXRlKS50b1N0cmluZygpLnN1YnN0cmluZygyKVxuICAgICk7XG4gICAgZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoJ0hIJywgdGhpcy5wYWQodGhpcy5kYXRlLmdldEhvdXJzKCksIDIpKTtcbiAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZSgnSCcsIHRoaXMuZGF0ZS5nZXRIb3VycygpLnRvU3RyaW5nKCkpO1xuICAgIHJldHVybiBmb3JtYXQ7XG4gIH1cblxuICBwcml2YXRlIHBhZChuLCB3aWR0aCwgeiA9ICcwJykge1xuICAgIG4gPSBuICsgJyc7XG4gICAgcmV0dXJuIG4ubGVuZ3RoID49IHdpZHRoID8gbiA6IG5ldyBBcnJheSh3aWR0aCAtIG4ubGVuZ3RoICsgMSkuam9pbih6KSArIG47XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZvcm1hdCgpO1xuICB9XG5cbiAgZXF1YWwodmFsdWU6IGFueSwgdW5pdDogVGltZVVuaXQgPSAnZGF5Jykge1xuICAgIHJldHVybiB0aGlzLmNvbXBhaXJlKHZhbHVlLCB1bml0KSA9PSAwO1xuICB9XG5cbiAgY29tcGFpcmUodmFsdWU6IGFueSwgdW5pdDogVGltZVVuaXQgPSAnZGF5Jykge1xuICAgIC8vIFRPRE86XG4gICAgY29uc3QgdmFsID0gQVhEYXRlVGltZS5jb252ZXJ0KHZhbHVlKTtcbiAgICBpZiAodGhpcy5kYXRlID09IHZhbC5kYXRlKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGF0ZSA+IHZhbC5kYXRlKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgfVxuXG4gIGNvbnZlcnQoY2FsZW5kYXI6IHN0cmluZykge1xuICAgIHJldHVybiBBWERhdGVUaW1lLmNvbnZlcnQodGhpcywgY2FsZW5kYXIpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBWENhbGVuZGFyTW9udGgge1xuICBwcml2YXRlIF9yYW5nZTogQVhEYXRlVGltZVJhbmdlO1xuICBwdWJsaWMgZ2V0IHJhbmdlKCk6IEFYRGF0ZVRpbWVSYW5nZSB7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlO1xuICB9XG4gIHB1YmxpYyBzZXQgcmFuZ2UodjogQVhEYXRlVGltZVJhbmdlKSB7XG4gICAgdGhpcy5fcmFuZ2UgPSB2O1xuICB9XG5cbiAgY29uc3RydWN0b3IoZGF0ZTogQVhEYXRlVGltZSkge1xuICAgIHRoaXMuaW5kZXggPSBkYXRlLmRhdGUuZ2V0TW9udGgoKTtcbiAgICB0aGlzLm5hbWUgPSBkYXRlLmZvcm1hdCgnTU1NTScpO1xuICAgIHRoaXMucmFuZ2UgPSBuZXcgQVhEYXRlVGltZVJhbmdlKFxuICAgICAgbmV3IEFYRGF0ZVRpbWUoZGF0ZS5zdGFydE9mKCdtb250aCcpLmRhdGUsIGRhdGUuY2FsZW5kYXIpLFxuICAgICAgbmV3IEFYRGF0ZVRpbWUoZGF0ZS5lbmRPZignbW9udGgnKS5kYXRlLCBkYXRlLmNhbGVuZGFyKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGluZGV4OiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYVGltZVNwYW5Ub3RhbCB7XG4gIG1pbGlzZWNvbmRzOiBudW1iZXI7XG4gIHNlY29uZHM6IG51bWJlcjtcbiAgbWludXRlczogbnVtYmVyO1xuICBob3VyczogbnVtYmVyO1xuICBkYXlzOiBudW1iZXI7XG4gIHdlZWtzOiBudW1iZXI7XG4gIG1vbnRoczogbnVtYmVyO1xuICB5ZWFyczogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYVGltZVNwYW4ge1xuICBtaWxpc2Vjb25kczogbnVtYmVyO1xuICBzZWNvbmRzOiBudW1iZXI7XG4gIG1pbnV0ZXM6IG51bWJlcjtcbiAgaG91cnM6IG51bWJlcjtcbiAgZGF5czogbnVtYmVyO1xuICBtb250aHM6IG51bWJlcjtcbiAgeWVhcnM6IG51bWJlcjtcbiAgdG90YWw6IEFYVGltZVNwYW5Ub3RhbDtcbn1cblxuZXhwb3J0IGNsYXNzIEFYRGF0ZVRpbWVSYW5nZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzdGFydFRpbWU6IEFYRGF0ZVRpbWUsIHB1YmxpYyBlbmRUaW1lOiBBWERhdGVUaW1lKSB7IH1cblxuICBkdXJhdGlvbigpOiBBWFRpbWVTcGFuIHtcbiAgICBjb25zdCByZXN1bHQ6IEFYVGltZVNwYW4gPSB7XG4gICAgICBtaWxpc2Vjb25kczogMCxcbiAgICAgIHNlY29uZHM6IDAsXG4gICAgICBtaW51dGVzOiAwLFxuICAgICAgaG91cnM6IDAsXG4gICAgICBkYXlzOiAwLFxuICAgICAgbW9udGhzOiAwLFxuICAgICAgeWVhcnM6IDAsXG4gICAgICB0b3RhbDoge1xuICAgICAgICBtaWxpc2Vjb25kczogMCxcbiAgICAgICAgc2Vjb25kczogMCxcbiAgICAgICAgbWludXRlczogMCxcbiAgICAgICAgaG91cnM6IDAsXG4gICAgICAgIGRheXM6IDAsXG4gICAgICAgIHdlZWtzOiAwLFxuICAgICAgICBtb250aHM6IDAsXG4gICAgICAgIHllYXJzOiAwLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3Qgb25lX3NlY29uZCA9IDEwMDA7XG4gICAgY29uc3Qgb25lX21pbiA9IG9uZV9zZWNvbmQgKiA2MDtcbiAgICBjb25zdCBvbmVfaG91ciA9IG9uZV9taW4gKiA2MDtcbiAgICBjb25zdCBvbmVfZGF5ID0gb25lX2hvdXIgKiAyNDtcbiAgICBjb25zdCBvbmVfd2VlayA9IG9uZV9kYXkgKiA3O1xuICAgIGNvbnN0IG9uZV95ZWFyID0gMzY1LjI1ICogb25lX2RheTtcbiAgICBjb25zdCBvbmVfbW9udGggPSBvbmVfeWVhciAvIDEyO1xuICAgIGNvbnN0IHN0YXJ0VGltZSA9IHRoaXMuc3RhcnRUaW1lLmRhdGUuZ2V0VGltZSgpO1xuICAgIGNvbnN0IGVuZFRpbWUgPSB0aGlzLmVuZFRpbWUuZGF0ZS5nZXRUaW1lKCk7XG4gICAgY29uc3QgZGlmZiA9IE1hdGguYWJzKGVuZFRpbWUgLSBzdGFydFRpbWUpO1xuICAgIC8vXG4gICAgcmVzdWx0LnRvdGFsLm1pbGlzZWNvbmRzID0gZGlmZjtcbiAgICByZXN1bHQudG90YWwuc2Vjb25kcyA9IE51bWJlcigoZGlmZiAvIG9uZV9zZWNvbmQpLnRvRml4ZWQoMikpO1xuICAgIHJlc3VsdC50b3RhbC5taW51dGVzID0gTnVtYmVyKChkaWZmIC8gb25lX21pbikudG9GaXhlZCgyKSk7XG4gICAgcmVzdWx0LnRvdGFsLmhvdXJzID0gTnVtYmVyKChkaWZmIC8gb25lX2hvdXIpLnRvRml4ZWQoMikpO1xuICAgIHJlc3VsdC50b3RhbC5kYXlzID0gTnVtYmVyKChkaWZmIC8gb25lX2RheSkudG9GaXhlZCgyKSk7XG4gICAgcmVzdWx0LnRvdGFsLndlZWtzID0gTnVtYmVyKChkaWZmIC8gb25lX3dlZWspLnRvRml4ZWQoMikpO1xuICAgIC8vXG4gICAgLy8gbGV0IG1vbnRocyA9ICh0aGlzLmVuZFRpbWUueWVhciAtIHRoaXMuc3RhcnRUaW1lLnllYXIpICogMTI7XG4gICAgLy8gbW9udGhzICs9IHRoaXMuZW5kVGltZS5tb250aE9mWWVhciAtIHRoaXMuc3RhcnRUaW1lLm1vbnRoT2ZZZWFyICsgMTtcbiAgICAvLyBpZiAodGhpcy5lbmRUaW1lLmRheU9mWWVhciA8IHRoaXMuc3RhcnRUaW1lLmRheU9mWWVhcikge1xuICAgIC8vICAgICBtb250aHMtLTtcbiAgICAvLyB9XG4gICAgLy8gcmVzdWx0LnRvdGFsLm1vbnRocyA9IE1hdGguYWJzKG1vbnRocyk7XG4gICAgLy8gVE9ETzogcmV2aWV3XG4gICAgcmVzdWx0LnRvdGFsLm1vbnRocyA9IE51bWJlcigoZGlmZiAvIG9uZV9tb250aCkudG9GaXhlZCgyKSk7XG4gICAgcmVzdWx0LnRvdGFsLnllYXJzID0gTnVtYmVyKChkaWZmIC8gb25lX3llYXIpLnRvRml4ZWQoMikpO1xuICAgIC8vXG4gICAgcmVzdWx0Lm1pbGlzZWNvbmRzID0gcmVzdWx0LnRvdGFsLm1pbGlzZWNvbmRzICUgMTAwMDtcbiAgICByZXN1bHQuc2Vjb25kcyA9IE51bWJlcigocmVzdWx0LnRvdGFsLnNlY29uZHMgJSA2MCkudG9GaXhlZCgwKSk7XG4gICAgcmVzdWx0Lm1pbnV0ZXMgPSBOdW1iZXIoKHJlc3VsdC50b3RhbC5taW51dGVzICUgNjApLnRvRml4ZWQoMCkpO1xuICAgIHJlc3VsdC5ob3VycyA9IE51bWJlcigocmVzdWx0LnRvdGFsLmhvdXJzICUgMjQpLnRvRml4ZWQoMCkpO1xuICAgIC8vIFRPRE86IHJldmlld1xuICAgIHJlc3VsdC5kYXlzID0gTnVtYmVyKChyZXN1bHQudG90YWwuZGF5cyAlIDMwLjQpLnRvRml4ZWQoMCkpO1xuICAgIHJlc3VsdC5tb250aHMgPSBOdW1iZXIoKHJlc3VsdC50b3RhbC5tb250aHMgJSAxMikudG9GaXhlZCgwKSk7XG4gICAgcmVzdWx0LnllYXJzID0gTnVtYmVyKHJlc3VsdC50b3RhbC55ZWFycy50b0ZpeGVkKDApKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZW51bXVyYXRlKHVuaXQ6IFRpbWVVbml0ID0gJ2RheScpOiBBWERhdGVUaW1lW10ge1xuICAgIC8vIFRPRE86ID8/XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgaW5jbHVkZXModmFsdWU6IEFYRGF0ZVRpbWUsIHVuaXQ6IFRpbWVVbml0ID0gJ2RheScpOiBib29sZWFuIHtcbiAgICAvLyBUT0RPOiA/P1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gZ2V0Vmlld0NvbXBhaXJlKHZpZXcpIHtcbiAgLy8gICAgIHN3aXRjaCAodmlldykge1xuICAvLyAgICAgICAgIGNhc2UgJ2RheSc6XG4gIC8vICAgICAgICAgICAgIHJldHVybiAnWU1EJztcbiAgLy8gICAgICAgICBjYXNlICdtb250aCc6XG4gIC8vICAgICAgICAgICAgIHJldHVybiAnWU0nO1xuICAvLyAgICAgICAgIGNhc2UgJ3llYXInOlxuICAvLyAgICAgICAgICAgICByZXR1cm4gJ1knO1xuICAvLyAgICAgfVxuICAvLyB9XG59XG4iXX0=
@@ -1,18 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { AXDateTimePipe } from './datetime.pipe';
3
- import * as i0 from "@angular/core";
4
- export class AXDateTimeModule {
5
- }
6
- AXDateTimeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- AXDateTimeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDateTimeModule, declarations: [AXDateTimePipe], exports: [AXDateTimePipe] });
8
- AXDateTimeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDateTimeModule, providers: [], imports: [[]] });
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDateTimeModule, decorators: [{
10
- type: NgModule,
11
- args: [{
12
- imports: [],
13
- exports: [AXDateTimePipe],
14
- declarations: [AXDateTimePipe],
15
- providers: [],
16
- }]
17
- }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvc3JjL2xpYi9kYXRlVGltZS9kYXRldGltZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBU2pELE1BQU0sT0FBTyxnQkFBZ0I7OzZHQUFoQixnQkFBZ0I7OEdBQWhCLGdCQUFnQixpQkFIVixjQUFjLGFBRG5CLGNBQWM7OEdBSWYsZ0JBQWdCLGFBRmQsRUFBRSxZQUhKLEVBQUU7MkZBS0YsZ0JBQWdCO2tCQU41QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxFQUFFO29CQUNYLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDekIsWUFBWSxFQUFFLENBQUMsY0FBYyxDQUFDO29CQUM5QixTQUFTLEVBQUUsRUFBRTtpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhEYXRlVGltZVBpcGUgfSBmcm9tICcuL2RhdGV0aW1lLnBpcGUnO1xuXG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW10sXG4gICAgZXhwb3J0czogW0FYRGF0ZVRpbWVQaXBlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtBWERhdGVUaW1lUGlwZV0sXG4gICAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhEYXRlVGltZU1vZHVsZSB7IH1cbiJdfQ==
@@ -1,25 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import { AXDateTime } from './datetime.class';
3
- import * as i0 from "@angular/core";
4
- export class AXDateTimePipe {
5
- constructor() { }
6
- transform(value, format, calendar) {
7
- if (value == null) {
8
- return '';
9
- }
10
- const date = value instanceof AXDateTime ? value.clone() : AXDateTime.convert(value, calendar);
11
- if (!format) {
12
- return date.toString();
13
- }
14
- else {
15
- return date.format(format);
16
- }
17
- }
18
- }
19
- AXDateTimePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDateTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
20
- AXDateTimePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDateTimePipe, name: "axDate" });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: AXDateTimePipe, decorators: [{
22
- type: Pipe,
23
- args: [{ name: 'axDate' }]
24
- }], ctorParameters: function () { return []; } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL3NyYy9saWIvZGF0ZVRpbWUvZGF0ZXRpbWUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRzlDLE1BQU0sT0FBTyxjQUFjO0lBQ3ZCLGdCQUFnQixDQUFDO0lBRWpCLFNBQVMsQ0FBQyxLQUFVLEVBQUUsTUFBZSxFQUFFLFFBQWlCO1FBQ3BELElBQUksS0FBSyxJQUFJLElBQUksRUFBRTtZQUNmLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFDRCxNQUFNLElBQUksR0FBZSxLQUFLLFlBQVksVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzNHLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUMxQjthQUNJO1lBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzlCO0lBQ0wsQ0FBQzs7MkdBZFEsY0FBYzt5R0FBZCxjQUFjOzJGQUFkLGNBQWM7a0JBRDFCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZVRyYW5zZm9ybSwgUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhEYXRlVGltZSB9IGZyb20gJy4vZGF0ZXRpbWUuY2xhc3MnO1xuXG5AUGlwZSh7IG5hbWU6ICdheERhdGUnIH0pXG5leHBvcnQgY2xhc3MgQVhEYXRlVGltZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gICAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIGZvcm1hdD86IHN0cmluZywgY2FsZW5kYXI/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRhdGU6IEFYRGF0ZVRpbWUgPSB2YWx1ZSBpbnN0YW5jZW9mIEFYRGF0ZVRpbWUgPyB2YWx1ZS5jbG9uZSgpIDogQVhEYXRlVGltZS5jb252ZXJ0KHZhbHVlLCBjYWxlbmRhcik7XG4gICAgICAgIGlmICghZm9ybWF0KSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGUuZm9ybWF0KGZvcm1hdCk7XG4gICAgICAgIH1cbiAgICB9XG59Il19