@acorex/core 4.0.22 → 4.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -23
- package/acorex-core.d.ts +1 -0
- package/{esm2015/acorex-core.js → esm2020/acorex-core.mjs} +1 -1
- package/esm2020/lib/classes/base-page.class.mjs +28 -0
- package/esm2020/lib/classes/color.class.mjs +49 -0
- package/esm2020/lib/classes/datetime.class.mjs +314 -0
- package/esm2020/lib/classes/menu.class.mjs +27 -0
- package/esm2020/lib/classes/navigator.class.mjs +2 -0
- package/esm2020/lib/classes/popup.class.mjs +2 -0
- package/esm2020/lib/classes/promise.class.mjs +19 -0
- package/esm2020/lib/classes/sectionlist.class.mjs +2 -0
- package/esm2020/lib/classes/select.class.mjs +3 -0
- package/esm2020/lib/core.module.mjs +27 -0
- package/esm2020/lib/error/error.class.mjs +2 -0
- package/esm2020/lib/error/error.module.mjs +19 -0
- package/esm2020/lib/error/error.service.mjs +21 -0
- package/esm2020/lib/events/keyboard.mjs +2 -0
- package/esm2020/lib/http/http-error.class.mjs +2 -0
- package/esm2020/lib/http/http-events.interceptor.mjs +3 -0
- package/esm2020/lib/http/http-request.class.mjs +2 -0
- package/esm2020/lib/http/http-result.class.mjs +21 -0
- package/esm2020/lib/http/http.module.mjs +37 -0
- package/esm2020/lib/http/http.service.mjs +145 -0
- package/esm2020/lib/locale/en.json +253 -0
- package/esm2020/lib/locale/fa.json +242 -0
- package/esm2020/lib/pipe/datetime.pipe.mjs +25 -0
- package/esm2020/lib/pipe/htmlToText.pipe.mjs +25 -0
- package/esm2020/lib/services/config.mjs +29 -0
- package/esm2020/lib/services/event.service.mjs +36 -0
- package/esm2020/lib/services/navigator.service.mjs +10 -0
- package/esm2020/lib/services/storage.service.mjs +16 -0
- package/esm2020/lib/translator/translator.mjs +26 -0
- package/esm2020/lib/translator/translator.module.mjs +25 -0
- package/esm2020/lib/translator/translator.pipe.mjs +24 -0
- package/esm2020/lib/translator/translator.service.mjs +21 -0
- package/esm2020/lib/utils/array/array-util.mjs +133 -0
- package/esm2020/lib/utils/html/html-util.mjs +192 -0
- package/esm2020/lib/utils/html/html.module.mjs +19 -0
- package/esm2020/lib/utils/math/math-util.mjs +6 -0
- package/esm2020/lib/utils/object/object-util.mjs +83 -0
- package/esm2020/lib/utils/render/on-demand-preload-strategy.service.mjs +21 -0
- package/esm2020/lib/utils/render/render.service.mjs +103 -0
- package/esm2020/lib/utils/render/rendering.module.mjs +35 -0
- package/esm2020/lib/utils/scroll/scroll.directive.mjs +54 -0
- package/esm2020/lib/utils/scroll/scroll.module.mjs +19 -0
- package/esm2020/lib/utils/separator/separator.module.mjs +19 -0
- package/esm2020/lib/utils/separator/separator.pipe.mjs +33 -0
- package/esm2020/public-api.mjs +43 -0
- package/fesm2015/acorex-core.mjs +2123 -0
- package/fesm2015/acorex-core.mjs.map +1 -0
- package/fesm2020/acorex-core.mjs +2119 -0
- package/fesm2020/acorex-core.mjs.map +1 -0
- package/lib/classes/base-page.class.d.ts +13 -0
- package/lib/classes/color.class.d.ts +17 -0
- package/lib/classes/datetime.class.d.ts +63 -0
- package/lib/classes/menu.class.d.ts +34 -0
- package/lib/classes/navigator.class.d.ts +5 -0
- package/lib/classes/popup.class.d.ts +12 -0
- package/lib/classes/promise.class.d.ts +7 -0
- package/lib/classes/sectionlist.class.d.ts +8 -0
- package/lib/classes/select.class.d.ts +7 -0
- package/lib/core.module.d.ts +9 -0
- package/lib/error/error.class.d.ts +4 -0
- package/lib/error/error.module.d.ts +7 -0
- package/lib/error/error.service.d.ts +13 -0
- package/lib/events/keyboard.d.ts +2 -0
- package/lib/http/http-error.class.d.ts +7 -0
- package/lib/http/http-events.interceptor.d.ts +10 -0
- package/lib/http/http-request.class.d.ts +14 -0
- package/lib/http/http-result.class.d.ts +11 -0
- package/lib/http/http.module.d.ts +10 -0
- package/lib/http/http.service.d.ts +23 -0
- package/lib/pipe/datetime.pipe.d.ts +8 -0
- package/lib/pipe/htmlToText.pipe.d.ts +7 -0
- package/lib/{config/configs.d.ts → services/config.d.ts} +1 -1
- package/lib/services/event.service.d.ts +9 -0
- package/lib/services/navigator.service.d.ts +8 -0
- package/lib/services/storage.service.d.ts +7 -0
- package/lib/{translation → translator}/translator.d.ts +0 -0
- package/lib/translator/translator.module.d.ts +8 -0
- package/lib/translator/translator.pipe.d.ts +8 -0
- package/lib/translator/translator.service.d.ts +8 -0
- package/lib/utils/array/array-util.d.ts +6 -0
- package/lib/utils/html/html-util.d.ts +62 -0
- package/lib/utils/html/html.module.d.ts +8 -0
- package/lib/utils/math/math-util.d.ts +3 -0
- package/lib/utils/object/object-util.d.ts +7 -0
- package/lib/utils/render/on-demand-preload-strategy.service.d.ts +10 -0
- package/lib/utils/render/render.service.d.ts +18 -0
- package/lib/utils/render/rendering.module.d.ts +8 -0
- package/lib/utils/scroll/scroll.directive.d.ts +18 -0
- package/lib/utils/scroll/scroll.module.d.ts +8 -0
- package/lib/utils/separator/separator.module.d.ts +8 -0
- package/lib/utils/separator/separator.pipe.d.ts +8 -0
- package/package.json +24 -12
- package/public-api.d.ts +42 -4
- package/acorex-core.metadata.json +0 -1
- package/bundles/acorex-core.umd.js +0 -678
- package/bundles/acorex-core.umd.js.map +0 -1
- package/bundles/acorex-core.umd.min.js +0 -2
- package/bundles/acorex-core.umd.min.js.map +0 -1
- package/esm2015/lib/config/configs.js +0 -29
- package/esm2015/lib/dateTime/datetime.class.js +0 -226
- package/esm2015/lib/dateTime/datetime.module.js +0 -13
- package/esm2015/lib/dateTime/datetime.pipe.js +0 -22
- package/esm2015/lib/dateTime/georgian.calendar.js +0 -145
- package/esm2015/lib/dateTime/index.js +0 -5
- package/esm2015/lib/translation/index.js +0 -4
- package/esm2015/lib/translation/translation.module.js +0 -13
- package/esm2015/lib/translation/translator.js +0 -26
- package/esm2015/lib/translation/translator.pipe.js +0 -11
- package/esm2015/lib/utils/object-util.js +0 -83
- package/esm2015/public-api.js +0 -5
- package/fesm2015/acorex-core.js +0 -563
- package/fesm2015/acorex-core.js.map +0 -1
- package/lib/dateTime/datetime.class.d.ts +0 -83
- package/lib/dateTime/datetime.module.d.ts +0 -2
- package/lib/dateTime/datetime.pipe.d.ts +0 -5
- package/lib/dateTime/georgian.calendar.d.ts +0 -17
- package/lib/dateTime/index.d.ts +0 -4
- package/lib/translation/index.d.ts +0 -3
- package/lib/translation/translation.module.d.ts +0 -2
- package/lib/translation/translator.pipe.d.ts +0 -4
- package/lib/utils/object-util.d.ts +0 -7
|
@@ -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/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/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}","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 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\nexport 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 dayInMonth(date: Date): number;\r\n\r\n dayOfYear(date: Date): number;\r\n\r\n dayInWeek(date: Date): number;\r\n\r\n year(date: Date): number;\r\n\r\n monthOfYear(date: Date): number;\r\n\r\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime;\r\n\r\n set(date: Date, unit: TimeUnit, value: number): AXDateTime;\r\n\r\n startOf(date: Date, unit: TimeUnit): AXDateTime;\r\n\r\n endOf(date: Date, unit: TimeUnit): AXDateTime;\r\n}\r\n\r\n// @dynamic\r\nexport class AXDateTime {\r\n static convert(\r\n value: any,\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 private _date: Date;\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 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 dayInMonth(): number {\r\n return this._calendar.dayInMonth(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 dayInWeek(): number {\r\n return this._calendar.dayInWeek(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 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: AXDateTime | Date | string,\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.dayInMonth(this.date), 2)\r\n );\r\n format = format.replace(\r\n 'd',\r\n this.calendar.dayInMonth(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.dayInWeek(this.date) - 1]\r\n );\r\n format = format.replace(\r\n 'DDD',\r\n this.calendar.dayShortNames[this.calendar.dayInWeek(this.date) - 1]\r\n );\r\n format = format.replace(\r\n /D(?!e)/,\r\n this.calendar.dayNames[this.calendar.dayInWeek(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: any, unit: TimeUnit = 'day') {\r\n return this.compaire(value, unit) == 0;\r\n }\r\n\r\n compaire(value: any, unit: TimeUnit = 'day') {\r\n // TODO:\r\n const val = AXDateTime.convert(value);\r\n if (this.date == val.date) {\r\n return 0;\r\n } else if (this.date > val.date) {\r\n return 1;\r\n } else {\r\n return -1;\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 constructor(public startTime: AXDateTime, public endTime: AXDateTime) {}\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'): AXDateTime[] {\r\n // TODO: ??\r\n return [];\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 { NgModule } from '@angular/core';\r\nimport { AXDateTimePipe } from './datetime.pipe';\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","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 dayInMonth(date: Date): number {\r\n return date.getDate();\r\n }\r\n\r\n dayOfYear(date: Date): number {\r\n const start = +new Date(date.getFullYear(), 0, 0);\r\n const diff = +date - start;\r\n const oneDay = 1000 * 60 * 60 * 24;\r\n return Math.floor(diff / oneDay);\r\n }\r\n\r\n dayInWeek(date: Date): number {\r\n return date.getDay() + 1;\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 = v.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 diff = clone.getDate() - clone.getDay() + (clone.getDay() === 0 ? -6 : 1);\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}","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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Subject","Pipe","NgModule","merge"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("rxjs"),require("@angular/core"),require("lodash-es/merge")):"function"==typeof define&&define.amd?define("@acorex/core",["exports","rxjs","@angular/core","lodash-es/merge"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).acorex=e.acorex||{},e.acorex.core={}),e.rxjs,e.ng.core,e["lodash-es/merge"])}(this,(function(exports,rxjs,core,merge){"use strict";function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var merge__default=_interopDefaultLegacy(merge),AXObjectUtil=function(){function e(){}return e.deepJSONClone=function(e){return e?JSON.parse(JSON.stringify(e)):null},e.deepCopy=function(t){var a;if(null==t||"object"!=typeof t)return t;if(t instanceof Date)return(a=new Date).setTime(t.getTime()),a;if(t instanceof Array){a=[];for(var r=0,n=t.length;r<n;r++)a[r]=e.deepCopy(t[r]);return a}if(t instanceof Object){for(var o in a={},t)t.hasOwnProperty(o)&&(a[o]=e.deepCopy(t[o]));return a}throw new Error("Unable to copy obj! Its type isn't supported.")},e.fetchProp=function(t,a){if(void 0===t)return!1;var r=a.indexOf(".");return r>-1?e.fetchProp(t[a.substring(0,r)],a.substr(r+1)):t[a]},e.getPropByPath=function(e,t,a){return(t=t.replace(/\[/g,".").replace(/]/g,"").split(".")).forEach((function(t){e&&(e=e[t])})),void 0===e?a:e},e.setPropByPath=function(e,t,a){return Object(e)!==e||(Array.isArray(t)||(t=t.toString().match(/[^.[\]]+/g)||[]),t.slice(0,-1).reduce((function(e,a,r){return Object(e[a])===e[a]?e[a]:e[a]=Math.abs(t[r+1])>>0==+t[r+1]?[]:{}}),e)[t[t.length-1]]=a),e},e}(),AXConfig=function(){function e(){}return Object.defineProperty(e,"onChange",{get:function(){return e.dataChangeSubject.asObservable()},enumerable:!1,configurable:!0}),e.set=function(t,a){return t&&"string"==typeof t?(AXObjectUtil.setPropByPath(e.dataModel,t,a),void e.dataChangeSubject.next(e.dataModel)):t&&"object"==typeof t?(Object.assign(e.dataModel,t),void e.dataChangeSubject.next(e.dataModel)):t||a?void 0:e.dataChangeSubject.asObservable()},e.get=function(t,a){return AXObjectUtil.getPropByPath(e.dataModel,t)||a},e}();AXConfig.dataModel={},AXConfig.dataChangeSubject=new rxjs.Subject;var AX_CALENDARS=[{name:"gregorian",type:"GeorgianCalendar"},{name:"jalali",type:"JalaliCalendar"}],AXDateTime=function(){function AXDateTime(value,calendar){void 0===value&&(value=new Date),void 0===calendar&&(calendar=AXConfig.get("dateTime.type")||"gregorian"),this._calendar="string"==typeof calendar?eval("new "+AX_CALENDARS.find((function(e){return e.name==calendar})).type+"()"):calendar,value instanceof Date?this._date=value:this._date=new Date(value)}return AXDateTime.convert=function(e,t){var a;return void 0===t&&(t=AXConfig.get("dateTime.type")||"gregorian"),"string"==typeof e||e instanceof String||e instanceof Date?a=new AXDateTime(e,t):e instanceof AXDateTime&&(a=new AXDateTime(e.date,t)),a},Object.defineProperty(AXDateTime.prototype,"date",{get:function(){return this._date},enumerable:!1,configurable:!0}),Object.defineProperty(AXDateTime.prototype,"calendar",{get:function(){return this._calendar},enumerable:!1,configurable:!0}),AXDateTime.prototype.clone=function(){return new AXDateTime(this.date,this.calendar.name())},Object.defineProperty(AXDateTime.prototype,"dayInMonth",{get:function(){return this._calendar.dayInMonth(this.date)},enumerable:!1,configurable:!0}),Object.defineProperty(AXDateTime.prototype,"dayOfYear",{get:function(){return this._calendar.dayOfYear(this.date)},enumerable:!1,configurable:!0}),Object.defineProperty(AXDateTime.prototype,"dayInWeek",{get:function(){return this._calendar.dayInWeek(this.date)},enumerable:!1,configurable:!0}),Object.defineProperty(AXDateTime.prototype,"hour",{get:function(){return this._date.getHours()},enumerable:!1,configurable:!0}),Object.defineProperty(AXDateTime.prototype,"minute",{get:function(){return this._date.getMinutes()},enumerable:!1,configurable:!0}),Object.defineProperty(AXDateTime.prototype,"second",{get:function(){return this._date.getSeconds()},enumerable:!1,configurable:!0}),Object.defineProperty(AXDateTime.prototype,"year",{get:function(){return this._calendar.year(this.date)},enumerable:!1,configurable:!0}),Object.defineProperty(AXDateTime.prototype,"monthOfYear",{get:function(){return this._calendar.monthOfYear(this.date)},enumerable:!1,configurable:!0}),Object.defineProperty(AXDateTime.prototype,"month",{get:function(){return new AXCalendarMonth(this)},enumerable:!1,configurable:!0}),AXDateTime.prototype.add=function(e,t){return this._calendar.add(this.date,e,t)},AXDateTime.prototype.set=function(e,t){return void 0===e&&(e="day"),this._calendar.set(this.date,e,t)},AXDateTime.prototype.duration=function(e,t){return void 0===t&&(t="day"),new AXDateTimeRange(this,AXDateTime.convert(e,this.calendar.name())).duration()},AXDateTime.prototype.startOf=function(e){return void 0===e&&(e="day"),this._calendar.startOf(this.date,e)},AXDateTime.prototype.endOf=function(e){return void 0===e&&(e="day"),this._calendar.endOf(this.date,e)},AXDateTime.prototype.format=function(e){return void 0===e&&(e=AXConfig.get("dateTime.shortDateFormat")||"DDD, dd MMM yyyy"),e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=e.replace("ss",this.pad(this.date.getSeconds(),2))).replace("s",this.date.getSeconds().toString())).replace("dd",this.pad(this.calendar.dayInMonth(this.date),2))).replace("d",this.calendar.dayInMonth(this.date).toString())).replace("mm",this.pad(this.date.getMinutes(),2))).replace("m",this.date.getMinutes().toString())).replace("MMMM",this.calendar.monthNames[this.calendar.monthOfYear(this.date)-1])).replace("MMM",this.calendar.monthShortNames[this.calendar.monthOfYear(this.date)-1])).replace("MM",this.pad(this.calendar.monthOfYear(this.date),2))).replace(/M(?![ao])/,this.calendar.monthOfYear(this.date).toString())).replace("DDDD",this.calendar.dayNames[this.calendar.dayInWeek(this.date)-1])).replace("DDD",this.calendar.dayShortNames[this.calendar.dayInWeek(this.date)-1])).replace(/D(?!e)/,this.calendar.dayNames[this.calendar.dayInWeek(this.date)-1].substring(0,3))).replace("yyyy",this.calendar.year(this.date).toString())).replace("YYYY",this.calendar.year(this.date).toString())).replace("yy",this.calendar.year(this.date).toString().substring(2))).replace("YY",this.calendar.year(this.date).toString().substring(2))).replace("HH",this.pad(this.date.getHours(),2))).replace("H",this.date.getHours().toString())},AXDateTime.prototype.pad=function(e,t,a){return void 0===a&&(a="0"),(e+="").length>=t?e:new Array(t-e.length+1).join(a)+e},AXDateTime.prototype.toString=function(){return this.format()},AXDateTime.prototype.equal=function(e,t){return void 0===t&&(t="day"),0==this.compaire(e,t)},AXDateTime.prototype.compaire=function(e,t){void 0===t&&(t="day");var a=AXDateTime.convert(e);return this.date==a.date?0:this.date>a.date?1:-1},AXDateTime.prototype.convert=function(e){return AXDateTime.convert(this,e)},AXDateTime}(),AXCalendarMonth=function(){function e(e){this.index=e.date.getMonth(),this.name=e.format("MMMM"),this.range=new AXDateTimeRange(new AXDateTime(e.startOf("month").date,e.calendar),new AXDateTime(e.endOf("month").date,e.calendar))}return Object.defineProperty(e.prototype,"range",{get:function(){return this._range},set:function(e){this._range=e},enumerable:!1,configurable:!0}),e}(),AXDateTimeRange=function(){function e(e,t){this.startTime=e,this.endTime=t}return e.prototype.duration=function(){var e={miliseconds:0,seconds:0,minutes:0,hours:0,days:0,months:0,years:0,total:{miliseconds:0,seconds:0,minutes:0,hours:0,days:0,weeks:0,months:0,years:0}},t=36e5,a=864e5,r=315576e5,n=this.startTime.date.getTime(),o=this.endTime.date.getTime(),i=Math.abs(o-n);return e.total.miliseconds=i,e.total.seconds=Number((i/1e3).toFixed(2)),e.total.minutes=Number((i/6e4).toFixed(2)),e.total.hours=Number((i/t).toFixed(2)),e.total.days=Number((i/a).toFixed(2)),e.total.weeks=Number((i/6048e5).toFixed(2)),e.total.months=Number((i/26298e5).toFixed(2)),e.total.years=Number((i/r).toFixed(2)),e.miliseconds=e.total.miliseconds%1e3,e.seconds=Number((e.total.seconds%60).toFixed(0)),e.minutes=Number((e.total.minutes%60).toFixed(0)),e.hours=Number((e.total.hours%24).toFixed(0)),e.days=Number((e.total.days%30.4).toFixed(0)),e.months=Number((e.total.months%12).toFixed(0)),e.years=Number(e.total.years.toFixed(0)),e},e.prototype.enumurate=function(e){return void 0===e&&(e="day"),[]},e.prototype.includes=function(e,t){return void 0===t&&(t="day"),!0},e}(),AXDateTimePipe=function(){function e(){}return e.prototype.transform=function(e,t,a){if(null==e)return"";var r=e instanceof AXDateTime?e.clone():AXDateTime.convert(e,a);return t?r.format(t):r.toString()},e}();AXDateTimePipe.decorators=[{type:core.Pipe,args:[{name:"axDate"}]}],AXDateTimePipe.ctorParameters=function(){return[]};var AXDateTimeModule=function(){};AXDateTimeModule.decorators=[{type:core.NgModule,args:[{imports:[],exports:[AXDateTimePipe],declarations:[AXDateTimePipe],providers:[]}]}];var GeorgianCalendar=function(){function e(){this.monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"],this.monthShortNames=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],this.dayNames=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],this.dayShortNames=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]}return e.prototype.name=function(){return"gregorian"},e.prototype.dayInMonth=function(e){return e.getDate()},e.prototype.dayOfYear=function(e){var t=+new Date(e.getFullYear(),0,0),a=+e-t;return Math.floor(a/864e5)},e.prototype.dayInWeek=function(e){return e.getDay()+1},e.prototype.year=function(e){return e.getFullYear()},e.prototype.monthOfYear=function(e){return e.getMonth()+1},e.prototype.add=function(e,t,a){var r=e.valueOf();switch(t){case"second":r+=1e3*a;break;case"minute":r+=6e4*a;break;case"hour":r+=36e5*a;break;case"month":var n=new Date(r),o=e.getMonth(),i=e.getFullYear();0>(o=(o+a)%12)?(i+=(e.getMonth()+a-o-12)/12,o+=12):i+=(e.getMonth()+a-o)/12,n.setMonth(o),n.setFullYear(i),r=n.valueOf();break;case"week":r+=6048e5*a;break;case"year":var s=new Date(r);s.setFullYear(s.getFullYear()+a),r=n.valueOf();break;case"day":default:r+=864e5*a}return new AXDateTime(new Date(r),this.name())},e.prototype.set=function(e,t,a){throw new Error("Method not implemented.")},e.prototype.startOf=function(e,t){var a=new Date(e.valueOf());switch(t){case"second":return a.setHours(a.getHours(),a.getMinutes(),a.getSeconds(),0),new AXDateTime(a,this.name());case"minute":return a.setHours(a.getHours(),a.getMinutes(),0,0),new AXDateTime(a,this.name());case"hour":return a.setHours(a.getHours(),0,0,0),new AXDateTime(a,this.name());default:case"day":return a.setHours(0,0,0,0),new AXDateTime(a,this.name());case"week":var r=a.getDate()-a.getDay()+(0===a.getDay()?-6:1);return a.setDate(r),new AXDateTime(a,this.name()).startOf("day");case"month":return a.setDate(1),new AXDateTime(a,this.name()).startOf("day");case"year":return a.setMonth(0),a.setDate(1),new AXDateTime(a,this.name()).startOf("day")}},e.prototype.endOf=function(e,t){var a=new Date(e.valueOf());switch(t){case"second":return a.setHours(a.getHours(),a.getMinutes(),a.getSeconds(),999),new AXDateTime(a,this.name());case"minute":return a.setHours(a.getHours(),a.getMinutes(),59,999),new AXDateTime(a,this.name());case"hour":return a.setHours(a.getHours(),59,59,999),new AXDateTime(a,this.name());default:case"day":return a.setHours(23,59,59,999),new AXDateTime(a,this.name());case"week":return this.startOf(e,"week").add("day",6).endOf("day");case"month":return new AXDateTime(new Date(e.getFullYear(),e.getMonth()+1,0),this.name()).endOf("day");case"year":return a.setMonth(11),new AXDateTime(a,this.name()).endOf("month")}},e}(),AXTranslator=function(){function e(){}return Object.defineProperty(e,"onChange",{get:function(){return e.dataChangeSubject.asObservable()},enumerable:!1,configurable:!0}),e.load=function(t,a){"object"==typeof a&&(e["__data__"+t]||(e["__data__"+t]={}),e["__data__"+t]=merge__default.default(e["__data__"+t],a))},e.use=function(t){e.lang=t},e.get=function(t,a){return AXObjectUtil.getPropByPath(e["__data__"+(a||e.lang)],t)||t},e}();AXTranslator.lang="en",AXTranslator.dataChangeSubject=new rxjs.Subject;var AXTranslatorPipe=function(){function e(){}return e.prototype.transform=function(e,t){return AXTranslator.get(e,t)},e}();AXTranslatorPipe.decorators=[{type:core.Pipe,args:[{name:"trans",pure:!0}]}];var AXTranslationModule=function(){};AXTranslationModule.decorators=[{type:core.NgModule,args:[{imports:[],exports:[AXTranslatorPipe],declarations:[AXTranslatorPipe],providers:[]}]}],exports.AXCalendarMonth=AXCalendarMonth,exports.AXConfig=AXConfig,exports.AXDateTime=AXDateTime,exports.AXDateTimeModule=AXDateTimeModule,exports.AXDateTimePipe=AXDateTimePipe,exports.AXDateTimeRange=AXDateTimeRange,exports.AXObjectUtil=AXObjectUtil,exports.AXTranslationModule=AXTranslationModule,exports.AXTranslator=AXTranslator,exports.AXTranslatorPipe=AXTranslatorPipe,exports.AX_CALENDARS=AX_CALENDARS,exports.GeorgianCalendar=GeorgianCalendar,Object.defineProperty(exports,"__esModule",{value:!0})}));
|
|
2
|
-
//# sourceMappingURL=acorex-core.umd.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../projects/acorex/core/src/lib/utils/object-util.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"],"names":["AXObjectUtil","deepJSONClone","obj","JSON","parse","stringify","deepCopy","copy","Date","setTime","getTime","Array","i","len","length","Object","attr","hasOwnProperty","Error","fetchProp","prop","index","indexOf","substring","substr","getPropByPath","path","defaultVal","replace","split","forEach","level","undefined","setPropByPath","value","isArray","toString","match","slice","reduce","a","c","Math","abs","AXConfig","defineProperty","dataChangeSubject","asObservable","set","arg1","arg2","dataModel","next","assign","get","defaultValue","Subject","AX_CALENDARS","name","type","AXDateTime","calendar","this","_calendar","eval","find","_date","convert","date","String","prototype","clone","dayInMonth","dayOfYear","dayInWeek","getHours","getMinutes","getSeconds","year","monthOfYear","AXCalendarMonth","add","unit","amount","duration","end","AXDateTimeRange","startOf","endOf","format","pad","monthNames","monthShortNames","dayNames","dayShortNames","n","width","z","join","equal","compaire","val","getMonth","range","_range","v","startTime","endTime","result","miliseconds","seconds","minutes","hours","days","months","years","total","weeks","one_hour","one_min","one_day","one_year","diff","Number","toFixed","one_second","enumurate","includes","AXDateTimePipe","transform","Pipe","args","NgModule","imports","exports","declarations","providers","GeorgianCalendar","getDate","start","getFullYear","floor","getDay","valueOf","mo","yr","setMonth","setFullYear","yv","setHours","setDate","AXTranslator","load","lang","merge","use","key","AXTranslatorPipe","pure"],"mappings":"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","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}","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 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\nexport 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 dayInMonth(date: Date): number;\r\n\r\n dayOfYear(date: Date): number;\r\n\r\n dayInWeek(date: Date): number;\r\n\r\n year(date: Date): number;\r\n\r\n monthOfYear(date: Date): number;\r\n\r\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime;\r\n\r\n set(date: Date, unit: TimeUnit, value: number): AXDateTime;\r\n\r\n startOf(date: Date, unit: TimeUnit): AXDateTime;\r\n\r\n endOf(date: Date, unit: TimeUnit): AXDateTime;\r\n}\r\n\r\n// @dynamic\r\nexport class AXDateTime {\r\n static convert(\r\n value: any,\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 private _date: Date;\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 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 dayInMonth(): number {\r\n return this._calendar.dayInMonth(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 dayInWeek(): number {\r\n return this._calendar.dayInWeek(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 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: AXDateTime | Date | string,\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.dayInMonth(this.date), 2)\r\n );\r\n format = format.replace(\r\n 'd',\r\n this.calendar.dayInMonth(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.dayInWeek(this.date) - 1]\r\n );\r\n format = format.replace(\r\n 'DDD',\r\n this.calendar.dayShortNames[this.calendar.dayInWeek(this.date) - 1]\r\n );\r\n format = format.replace(\r\n /D(?!e)/,\r\n this.calendar.dayNames[this.calendar.dayInWeek(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: any, unit: TimeUnit = 'day') {\r\n return this.compaire(value, unit) == 0;\r\n }\r\n\r\n compaire(value: any, unit: TimeUnit = 'day') {\r\n // TODO:\r\n const val = AXDateTime.convert(value);\r\n if (this.date == val.date) {\r\n return 0;\r\n } else if (this.date > val.date) {\r\n return 1;\r\n } else {\r\n return -1;\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 constructor(public startTime: AXDateTime, public endTime: AXDateTime) {}\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'): AXDateTime[] {\r\n // TODO: ??\r\n return [];\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 { NgModule } from '@angular/core';\r\nimport { AXDateTimePipe } from './datetime.pipe';\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","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 dayInMonth(date: Date): number {\r\n return date.getDate();\r\n }\r\n\r\n dayOfYear(date: Date): number {\r\n const start = +new Date(date.getFullYear(), 0, 0);\r\n const diff = +date - start;\r\n const oneDay = 1000 * 60 * 60 * 24;\r\n return Math.floor(diff / oneDay);\r\n }\r\n\r\n dayInWeek(date: Date): number {\r\n return date.getDay() + 1;\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 = v.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 diff = clone.getDate() - clone.getDay() + (clone.getDay() === 0 ? -6 : 1);\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}","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"]}
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlncy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29uZmlnL2NvbmZpZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFcEQsV0FBVztBQUNYLE1BQU0sT0FBTyxRQUFRO0lBS2pCLE1BQU0sS0FBSyxRQUFRO1FBQ2YsT0FBTyxRQUFRLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUlELE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBVSxFQUFFLElBQVU7UUFFN0IsSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLElBQUksUUFBUSxFQUFFO1lBQ2pDLFlBQVksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDM0QsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDcEQsT0FBTztTQUNWO1FBQ0QsSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLElBQUksUUFBUSxFQUFFO1lBQ2pDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4QyxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwRCxPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2hCLE9BQU8sUUFBUSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3BEO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBWSxFQUFFLFlBQWtCO1FBQ3ZDLE9BQU8sWUFBWSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLFlBQVksQ0FBQztJQUNoRixDQUFDOztBQTdCYyxrQkFBUyxHQUFRLEVBQUUsQ0FBQztBQUNwQiwwQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBWE9iamVjdFV0aWwgfSBmcm9tICcuLi91dGlscy9vYmplY3QtdXRpbCc7XHJcblxyXG4vLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgQVhDb25maWcge1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgZGF0YU1vZGVsOiBhbnkgPSB7fTtcclxuICAgIHByaXZhdGUgc3RhdGljIGRhdGFDaGFuZ2VTdWJqZWN0ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG5cclxuXHJcbiAgICBzdGF0aWMgZ2V0IG9uQ2hhbmdlKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIEFYQ29uZmlnLmRhdGFDaGFuZ2VTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBzZXQoY29uZmlnOiBhbnkpOiBhbnk7XHJcbiAgICBzdGF0aWMgc2V0KHBhdGg6IHN0cmluZywgdmFsdWU/OiBhbnkpOiB2b2lkO1xyXG4gICAgc3RhdGljIHNldChhcmcxPzogYW55LCBhcmcyPzogYW55KSB7XHJcblxyXG4gICAgICAgIGlmIChhcmcxICYmIHR5cGVvZiBhcmcxID09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIEFYT2JqZWN0VXRpbC5zZXRQcm9wQnlQYXRoKEFYQ29uZmlnLmRhdGFNb2RlbCwgYXJnMSwgYXJnMik7XHJcbiAgICAgICAgICAgIEFYQ29uZmlnLmRhdGFDaGFuZ2VTdWJqZWN0Lm5leHQoQVhDb25maWcuZGF0YU1vZGVsKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYXJnMSAmJiB0eXBlb2YgYXJnMSA9PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKEFYQ29uZmlnLmRhdGFNb2RlbCwgYXJnMSk7XHJcbiAgICAgICAgICAgIEFYQ29uZmlnLmRhdGFDaGFuZ2VTdWJqZWN0Lm5leHQoQVhDb25maWcuZGF0YU1vZGVsKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWFyZzEgJiYgIWFyZzIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIEFYQ29uZmlnLmRhdGFDaGFuZ2VTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0KHBhdGg6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogYW55KTogYW55IHtcclxuICAgICAgICByZXR1cm4gQVhPYmplY3RVdGlsLmdldFByb3BCeVBhdGgoQVhDb25maWcuZGF0YU1vZGVsLCBwYXRoKSB8fCBkZWZhdWx0VmFsdWU7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -1,226 +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
|
-
// @dynamic
|
|
13
|
-
export class AXDateTime {
|
|
14
|
-
constructor(value = new Date(), calendar = AXConfig.get('dateTime.type') || 'gregorian') {
|
|
15
|
-
this._calendar =
|
|
16
|
-
typeof calendar == 'string'
|
|
17
|
-
? eval(`new ${AX_CALENDARS.find((c) => c.name == calendar).type}()`)
|
|
18
|
-
: calendar;
|
|
19
|
-
if (value instanceof Date) {
|
|
20
|
-
this._date = value;
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
this._date = new Date(value);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
static convert(value, calendar = AXConfig.get('dateTime.type') || 'gregorian') {
|
|
27
|
-
let date;
|
|
28
|
-
if (typeof value === 'string' || value instanceof String) {
|
|
29
|
-
date = new AXDateTime(value, calendar);
|
|
30
|
-
}
|
|
31
|
-
else if (value instanceof Date) {
|
|
32
|
-
date = new AXDateTime(value, calendar);
|
|
33
|
-
}
|
|
34
|
-
else if (value instanceof AXDateTime) {
|
|
35
|
-
date = new AXDateTime(value.date, calendar);
|
|
36
|
-
}
|
|
37
|
-
return date;
|
|
38
|
-
}
|
|
39
|
-
get date() {
|
|
40
|
-
return this._date;
|
|
41
|
-
}
|
|
42
|
-
get calendar() {
|
|
43
|
-
return this._calendar;
|
|
44
|
-
}
|
|
45
|
-
clone() {
|
|
46
|
-
return new AXDateTime(this.date, this.calendar.name());
|
|
47
|
-
}
|
|
48
|
-
get dayInMonth() {
|
|
49
|
-
return this._calendar.dayInMonth(this.date);
|
|
50
|
-
}
|
|
51
|
-
get dayOfYear() {
|
|
52
|
-
return this._calendar.dayOfYear(this.date);
|
|
53
|
-
}
|
|
54
|
-
get dayInWeek() {
|
|
55
|
-
return this._calendar.dayInWeek(this.date);
|
|
56
|
-
}
|
|
57
|
-
get hour() {
|
|
58
|
-
return this._date.getHours();
|
|
59
|
-
}
|
|
60
|
-
get minute() {
|
|
61
|
-
return this._date.getMinutes();
|
|
62
|
-
}
|
|
63
|
-
get second() {
|
|
64
|
-
return this._date.getSeconds();
|
|
65
|
-
}
|
|
66
|
-
get year() {
|
|
67
|
-
return this._calendar.year(this.date);
|
|
68
|
-
}
|
|
69
|
-
get monthOfYear() {
|
|
70
|
-
return this._calendar.monthOfYear(this.date);
|
|
71
|
-
}
|
|
72
|
-
get month() {
|
|
73
|
-
return new AXCalendarMonth(this);
|
|
74
|
-
}
|
|
75
|
-
add(unit, amount) {
|
|
76
|
-
return this._calendar.add(this.date, unit, amount);
|
|
77
|
-
}
|
|
78
|
-
set(unit = 'day', value) {
|
|
79
|
-
return this._calendar.set(this.date, unit, value);
|
|
80
|
-
}
|
|
81
|
-
duration(end, unit = 'day') {
|
|
82
|
-
const range = new AXDateTimeRange(this, AXDateTime.convert(end, this.calendar.name()));
|
|
83
|
-
return range.duration();
|
|
84
|
-
}
|
|
85
|
-
startOf(unit = 'day') {
|
|
86
|
-
return this._calendar.startOf(this.date, unit);
|
|
87
|
-
}
|
|
88
|
-
endOf(unit = 'day') {
|
|
89
|
-
return this._calendar.endOf(this.date, unit);
|
|
90
|
-
}
|
|
91
|
-
format(format = AXConfig.get('dateTime.shortDateFormat') ||
|
|
92
|
-
'DDD, dd MMM yyyy') {
|
|
93
|
-
format = format.replace('ss', this.pad(this.date.getSeconds(), 2));
|
|
94
|
-
format = format.replace('s', this.date.getSeconds().toString());
|
|
95
|
-
format = format.replace('dd', this.pad(this.calendar.dayInMonth(this.date), 2));
|
|
96
|
-
format = format.replace('d', this.calendar.dayInMonth(this.date).toString());
|
|
97
|
-
format = format.replace('mm', this.pad(this.date.getMinutes(), 2));
|
|
98
|
-
format = format.replace('m', this.date.getMinutes().toString());
|
|
99
|
-
format = format.replace('MMMM', this.calendar.monthNames[this.calendar.monthOfYear(this.date) - 1]);
|
|
100
|
-
format = format.replace('MMM', this.calendar.monthShortNames[this.calendar.monthOfYear(this.date) - 1]);
|
|
101
|
-
format = format.replace('MM', this.pad(this.calendar.monthOfYear(this.date), 2));
|
|
102
|
-
format = format.replace(/M(?![ao])/, this.calendar.monthOfYear(this.date).toString());
|
|
103
|
-
format = format.replace('DDDD', this.calendar.dayNames[this.calendar.dayInWeek(this.date) - 1]);
|
|
104
|
-
format = format.replace('DDD', this.calendar.dayShortNames[this.calendar.dayInWeek(this.date) - 1]);
|
|
105
|
-
format = format.replace(/D(?!e)/, this.calendar.dayNames[this.calendar.dayInWeek(this.date) - 1].substring(0, 3));
|
|
106
|
-
format = format.replace('yyyy', this.calendar.year(this.date).toString());
|
|
107
|
-
format = format.replace('YYYY', this.calendar.year(this.date).toString());
|
|
108
|
-
format = format.replace('yy', this.calendar.year(this.date).toString().substring(2));
|
|
109
|
-
format = format.replace('YY', this.calendar.year(this.date).toString().substring(2));
|
|
110
|
-
format = format.replace('HH', this.pad(this.date.getHours(), 2));
|
|
111
|
-
format = format.replace('H', this.date.getHours().toString());
|
|
112
|
-
return format;
|
|
113
|
-
}
|
|
114
|
-
pad(n, width, z = '0') {
|
|
115
|
-
n = n + '';
|
|
116
|
-
return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
|
|
117
|
-
}
|
|
118
|
-
toString() {
|
|
119
|
-
return this.format();
|
|
120
|
-
}
|
|
121
|
-
equal(value, unit = 'day') {
|
|
122
|
-
return this.compaire(value, unit) == 0;
|
|
123
|
-
}
|
|
124
|
-
compaire(value, unit = 'day') {
|
|
125
|
-
// TODO:
|
|
126
|
-
const val = AXDateTime.convert(value);
|
|
127
|
-
if (this.date == val.date) {
|
|
128
|
-
return 0;
|
|
129
|
-
}
|
|
130
|
-
else if (this.date > val.date) {
|
|
131
|
-
return 1;
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
return -1;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
convert(calendar) {
|
|
138
|
-
return AXDateTime.convert(this, calendar);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
export class AXCalendarMonth {
|
|
142
|
-
constructor(date) {
|
|
143
|
-
this.index = date.date.getMonth();
|
|
144
|
-
this.name = date.format('MMMM');
|
|
145
|
-
this.range = new AXDateTimeRange(new AXDateTime(date.startOf('month').date, date.calendar), new AXDateTime(date.endOf('month').date, date.calendar));
|
|
146
|
-
}
|
|
147
|
-
get range() {
|
|
148
|
-
return this._range;
|
|
149
|
-
}
|
|
150
|
-
set range(v) {
|
|
151
|
-
this._range = v;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
export class AXDateTimeRange {
|
|
155
|
-
constructor(startTime, endTime) {
|
|
156
|
-
this.startTime = startTime;
|
|
157
|
-
this.endTime = endTime;
|
|
158
|
-
}
|
|
159
|
-
duration() {
|
|
160
|
-
const result = {
|
|
161
|
-
miliseconds: 0,
|
|
162
|
-
seconds: 0,
|
|
163
|
-
minutes: 0,
|
|
164
|
-
hours: 0,
|
|
165
|
-
days: 0,
|
|
166
|
-
months: 0,
|
|
167
|
-
years: 0,
|
|
168
|
-
total: {
|
|
169
|
-
miliseconds: 0,
|
|
170
|
-
seconds: 0,
|
|
171
|
-
minutes: 0,
|
|
172
|
-
hours: 0,
|
|
173
|
-
days: 0,
|
|
174
|
-
weeks: 0,
|
|
175
|
-
months: 0,
|
|
176
|
-
years: 0,
|
|
177
|
-
},
|
|
178
|
-
};
|
|
179
|
-
const one_second = 1000;
|
|
180
|
-
const one_min = one_second * 60;
|
|
181
|
-
const one_hour = one_min * 60;
|
|
182
|
-
const one_day = one_hour * 24;
|
|
183
|
-
const one_week = one_day * 7;
|
|
184
|
-
const one_year = 365.25 * one_day;
|
|
185
|
-
const one_month = one_year / 12;
|
|
186
|
-
const startTime = this.startTime.date.getTime();
|
|
187
|
-
const endTime = this.endTime.date.getTime();
|
|
188
|
-
const diff = Math.abs(endTime - startTime);
|
|
189
|
-
//
|
|
190
|
-
result.total.miliseconds = diff;
|
|
191
|
-
result.total.seconds = Number((diff / one_second).toFixed(2));
|
|
192
|
-
result.total.minutes = Number((diff / one_min).toFixed(2));
|
|
193
|
-
result.total.hours = Number((diff / one_hour).toFixed(2));
|
|
194
|
-
result.total.days = Number((diff / one_day).toFixed(2));
|
|
195
|
-
result.total.weeks = Number((diff / one_week).toFixed(2));
|
|
196
|
-
//
|
|
197
|
-
// let months = (this.endTime.year - this.startTime.year) * 12;
|
|
198
|
-
// months += this.endTime.monthOfYear - this.startTime.monthOfYear + 1;
|
|
199
|
-
// if (this.endTime.dayOfYear < this.startTime.dayOfYear) {
|
|
200
|
-
// months--;
|
|
201
|
-
// }
|
|
202
|
-
// result.total.months = Math.abs(months);
|
|
203
|
-
// TODO: review
|
|
204
|
-
result.total.months = Number((diff / one_month).toFixed(2));
|
|
205
|
-
result.total.years = Number((diff / one_year).toFixed(2));
|
|
206
|
-
//
|
|
207
|
-
result.miliseconds = result.total.miliseconds % 1000;
|
|
208
|
-
result.seconds = Number((result.total.seconds % 60).toFixed(0));
|
|
209
|
-
result.minutes = Number((result.total.minutes % 60).toFixed(0));
|
|
210
|
-
result.hours = Number((result.total.hours % 24).toFixed(0));
|
|
211
|
-
// TODO: review
|
|
212
|
-
result.days = Number((result.total.days % 30.4).toFixed(0));
|
|
213
|
-
result.months = Number((result.total.months % 12).toFixed(0));
|
|
214
|
-
result.years = Number(result.total.years.toFixed(0));
|
|
215
|
-
return result;
|
|
216
|
-
}
|
|
217
|
-
enumurate(unit = 'day') {
|
|
218
|
-
// TODO: ??
|
|
219
|
-
return [];
|
|
220
|
-
}
|
|
221
|
-
includes(value, unit = 'day') {
|
|
222
|
-
// TODO: ??
|
|
223
|
-
return true;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL2RhdGVUaW1lL2RhdGV0aW1lLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUc3QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQVU7SUFDL0I7UUFDSSxJQUFJLEVBQUUsV0FBVztRQUNqQixJQUFJLEVBQUUsa0JBQWtCO0tBQzNCO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsUUFBUTtRQUNkLElBQUksRUFBRSxnQkFBZ0I7S0FDekI7Q0FDSixDQUFDO0FBd0NGLFdBQVc7QUFDWCxNQUFNLE9BQU8sVUFBVTtJQTBCckIsWUFDRSxRQUF1QixJQUFJLElBQUksRUFBRSxFQUNqQyxXQUFnQyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLFdBQVc7UUFFNUUsSUFBSSxDQUFDLFNBQVM7WUFDWixPQUFPLFFBQVEsSUFBSSxRQUFRO2dCQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztnQkFDcEUsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUNmLElBQUksS0FBSyxZQUFZLElBQUksRUFBRTtZQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQWEsQ0FBQztTQUM1QjthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM5QjtJQUNILENBQUM7SUF0Q0QsTUFBTSxDQUFDLE9BQU8sQ0FDWixLQUFVLEVBQ1YsV0FBbUIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxXQUFXO1FB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QUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNwRSxDQUFDO1FBQ0YsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQ3JCLFFBQVEsRUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUN0RSxDQUFDLEVBQ0QsQ0FBQyxDQUNGLENBQ0YsQ0FBQztRQUNGLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMxRSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDMUUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQ3JCLElBQUksRUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUN0RCxDQUFDO1FBQ0YsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQ3JCLElBQUksRUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUN0RCxDQUFDO1FBQ0YsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FB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QUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RCxlQUFlO1FBQ2YsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlELE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBaUIsS0FBSztRQUM5QixXQUFXO1FBQ1gsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWlCLEVBQUUsT0FBaUIsS0FBSztRQUNoRCxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBWUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy9jb25maWdzJztcclxuXHJcblxyXG5leHBvcnQgY29uc3QgQVhfQ0FMRU5EQVJTOiBhbnlbXSA9IFtcclxuICAgIHtcclxuICAgICAgICBuYW1lOiAnZ3JlZ29yaWFuJyxcclxuICAgICAgICB0eXBlOiAnR2VvcmdpYW5DYWxlbmRhcidcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogJ2phbGFsaScsXHJcbiAgICAgICAgdHlwZTogJ0phbGFsaUNhbGVuZGFyJ1xyXG4gICAgfVxyXG5dO1xyXG5leHBvcnQgdHlwZSBUaW1lVW5pdCA9XHJcbiAgfCAnc2Vjb25kJ1xyXG4gIHwgJ21pbnV0ZSdcclxuICB8ICdob3VyJ1xyXG4gIHwgJ2RheSdcclxuICB8ICdtb250aCdcclxuICB8ICd5ZWFyJ1xyXG4gIHwgJ3dlZWsnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBWENhbGVuZGFyIHtcclxuICBtb250aE5hbWVzOiBzdHJpbmdbXTtcclxuXHJcbiAgbW9udGhTaG9ydE5hbWVzOiBzdHJpbmdbXTtcclxuXHJcbiAgZGF5TmFtZXM6IHN0cmluZ1tdO1xyXG5cclxuICBkYXlTaG9ydE5hbWVzOiBzdHJpbmdbXTtcclxuXHJcbiAgbmFtZSgpOiBzdHJpbmc7XHJcblxyXG4gIGRheUluTW9udGgoZGF0ZTogRGF0ZSk6IG51bWJlcjtcclxuXHJcbiAgZGF5T2ZZZWFyKGRhdGU6IERhdGUpOiBudW1iZXI7XHJcblxyXG4gIGRheUluV2VlayhkYXRlOiBEYXRlKTogbnVtYmVyO1xyXG5cclxuICB5ZWFyKGRhdGU6IERhdGUpOiBudW1iZXI7XHJcblxyXG4gIG1vbnRoT2ZZZWFyKGRhdGU6IERhdGUpOiBudW1iZXI7XHJcblxyXG4gIGFkZChkYXRlOiBEYXRlLCB1bml0OiBUaW1lVW5pdCwgYW1vdW50OiBudW1iZXIpOiBBWERhdGVUaW1lO1xyXG5cclxuICBzZXQoZGF0ZTogRGF0ZSwgdW5pdDogVGltZVVuaXQsIHZhbHVlOiBudW1iZXIpOiBBWERhdGVUaW1lO1xyXG5cclxuICBzdGFydE9mKGRhdGU6IERhdGUsIHVuaXQ6IFRpbWVVbml0KTogQVhEYXRlVGltZTtcclxuXHJcbiAgZW5kT2YoZGF0ZTogRGF0ZSwgdW5pdDogVGltZVVuaXQpOiBBWERhdGVUaW1lO1xyXG59XHJcblxyXG4vLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgQVhEYXRlVGltZSB7XHJcbiAgc3RhdGljIGNvbnZlcnQoXHJcbiAgICB2YWx1ZTogYW55LFxyXG4gICAgY2FsZW5kYXI6IHN0cmluZyA9IEFYQ29uZmlnLmdldCgnZGF0ZVRpbWUudHlwZScpIHx8ICdncmVnb3JpYW4nXHJcbiAgKTogQVhEYXRlVGltZSB7XHJcbiAgICBsZXQgZGF0ZTogQVhEYXRlVGltZTtcclxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHZhbHVlIGluc3RhbmNlb2YgU3RyaW5nKSB7XHJcbiAgICAgIGRhdGUgPSBuZXcgQVhEYXRlVGltZSh2YWx1ZSBhcyBzdHJpbmcsIGNhbGVuZGFyKTtcclxuICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgIGRhdGUgPSBuZXcgQVhEYXRlVGltZSh2YWx1ZSBhcyBEYXRlLCBjYWxlbmRhcik7XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgQVhEYXRlVGltZSkge1xyXG4gICAgICBkYXRlID0gbmV3IEFYRGF0ZVRpbWUodmFsdWUuZGF0ZSwgY2FsZW5kYXIpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRhdGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kYXRlOiBEYXRlO1xyXG4gIGdldCBkYXRlKCk6IERhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jYWxlbmRhcjogQVhDYWxlbmRhcjtcclxuICBnZXQgY2FsZW5kYXIoKTogQVhDYWxlbmRhciB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2FsZW5kYXI7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHZhbHVlOiBEYXRlIHwgc3RyaW5nID0gbmV3IERhdGUoKSxcclxuICAgIGNhbGVuZGFyOiBzdHJpbmcgfCBBWENhbGVuZGFyID0gQVhDb25maWcuZ2V0KCdkYXRlVGltZS50eXBlJykgfHwgJ2dyZWdvcmlhbidcclxuICApIHtcclxuICAgIHRoaXMuX2NhbGVuZGFyID1cclxuICAgICAgdHlwZW9mIGNhbGVuZGFyID09ICdzdHJpbmcnXHJcbiAgICAgICAgPyBldmFsKGBuZXcgJHtBWF9DQUxFTkRBUlMuZmluZCgoYykgPT4gYy5uYW1lID09IGNhbGVuZGFyKS50eXBlfSgpYClcclxuICAgICAgICA6IGNhbGVuZGFyO1xyXG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICB0aGlzLl9kYXRlID0gdmFsdWUgYXMgRGF0ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2RhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9uZSgpOiBBWERhdGVUaW1lIHtcclxuICAgIHJldHVybiBuZXcgQVhEYXRlVGltZSh0aGlzLmRhdGUsIHRoaXMuY2FsZW5kYXIubmFtZSgpKTtcclxuICB9XHJcblxyXG4gIGdldCBkYXlJbk1vbnRoKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2FsZW5kYXIuZGF5SW5Nb250aCh0aGlzLmRhdGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRheU9mWWVhcigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NhbGVuZGFyLmRheU9mWWVhcih0aGlzLmRhdGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRheUluV2VlaygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NhbGVuZGFyLmRheUluV2Vlayh0aGlzLmRhdGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhvdXIoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRlLmdldEhvdXJzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgbWludXRlKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0ZS5nZXRNaW51dGVzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgc2Vjb25kKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0ZS5nZXRTZWNvbmRzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgeWVhcigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NhbGVuZGFyLnllYXIodGhpcy5kYXRlKTtcclxuICB9XHJcblxyXG4gIGdldCBtb250aE9mWWVhcigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NhbGVuZGFyLm1vbnRoT2ZZZWFyKHRoaXMuZGF0ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgbW9udGgoKTogQVhDYWxlbmRhck1vbnRoIHtcclxuICAgIHJldHVybiBuZXcgQVhDYWxlbmRhck1vbnRoKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgYWRkKHVuaXQ6IFRpbWVVbml0LCBhbW91bnQ6IG51bWJlcik6IEFYRGF0ZVRpbWUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NhbGVuZGFyLmFkZCh0aGlzLmRhdGUsIHVuaXQsIGFtb3VudCk7XHJcbiAgfVxyXG5cclxuICBzZXQodW5pdDogVGltZVVuaXQgPSAnZGF5JywgdmFsdWU6IG51bWJlcik6IEFYRGF0ZVRpbWUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NhbGVuZGFyLnNldCh0aGlzLmRhdGUsIHVuaXQsIHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGR1cmF0aW9uKFxyXG4gICAgZW5kOiBBWERhdGVUaW1lIHwgRGF0ZSB8IHN0cmluZyxcclxuICAgIHVuaXQ6IFRpbWVVbml0ID0gJ2RheSdcclxuICApOiBBWFRpbWVTcGFuIHtcclxuICAgIGNvbnN0IHJhbmdlID0gbmV3IEFYRGF0ZVRpbWVSYW5nZShcclxuICAgICAgdGhpcyxcclxuICAgICAgQVhEYXRlVGltZS5jb252ZXJ0KGVuZCwgdGhpcy5jYWxlbmRhci5uYW1lKCkpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHJhbmdlLmR1cmF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzdGFydE9mKHVuaXQ6IFRpbWVVbml0ID0gJ2RheScpOiBBWERhdGVUaW1lIHtcclxuICAgIHJldHVybiB0aGlzLl9jYWxlbmRhci5zdGFydE9mKHRoaXMuZGF0ZSwgdW5pdCk7XHJcbiAgfVxyXG5cclxuICBlbmRPZih1bml0OiBUaW1lVW5pdCA9ICdkYXknKTogQVhEYXRlVGltZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2FsZW5kYXIuZW5kT2YodGhpcy5kYXRlLCB1bml0KTtcclxuICB9XHJcblxyXG4gIGZvcm1hdChcclxuICAgIGZvcm1hdDogc3RyaW5nID0gQVhDb25maWcuZ2V0KCdkYXRlVGltZS5zaG9ydERhdGVGb3JtYXQnKSB8fFxyXG4gICAgICAnRERELCBkZCBNTU0geXl5eSdcclxuICApOiBzdHJpbmcge1xyXG4gICAgZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoJ3NzJywgdGhpcy5wYWQodGhpcy5kYXRlLmdldFNlY29uZHMoKSwgMikpO1xyXG4gICAgZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoJ3MnLCB0aGlzLmRhdGUuZ2V0U2Vjb25kcygpLnRvU3RyaW5nKCkpO1xyXG4gICAgZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoXHJcbiAgICAgICdkZCcsXHJcbiAgICAgIHRoaXMucGFkKHRoaXMuY2FsZW5kYXIuZGF5SW5Nb250aCh0aGlzLmRhdGUpLCAyKVxyXG4gICAgKTtcclxuICAgIGZvcm1hdCA9IGZvcm1hdC5yZXBsYWNlKFxyXG4gICAgICAnZCcsXHJcbiAgICAgIHRoaXMuY2FsZW5kYXIuZGF5SW5Nb250aCh0aGlzLmRhdGUpLnRvU3RyaW5nKClcclxuICAgICk7XHJcbiAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZSgnbW0nLCB0aGlzLnBhZCh0aGlzLmRhdGUuZ2V0TWludXRlcygpLCAyKSk7XHJcbiAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZSgnbScsIHRoaXMuZGF0ZS5nZXRNaW51dGVzKCkudG9TdHJpbmcoKSk7XHJcbiAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZShcclxuICAgICAgJ01NTU0nLFxyXG4gICAgICB0aGlzLmNhbGVuZGFyLm1vbnRoTmFtZXNbdGhpcy5jYWxlbmRhci5tb250aE9mWWVhcih0aGlzLmRhdGUpIC0gMV1cclxuICAgICk7XHJcbiAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZShcclxuICAgICAgJ01NTScsXHJcbiAgICAgIHRoaXMuY2FsZW5kYXIubW9udGhTaG9ydE5hbWVzW3RoaXMuY2FsZW5kYXIubW9udGhPZlllYXIodGhpcy5kYXRlKSAtIDFdXHJcbiAgICApO1xyXG4gICAgZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoXHJcbiAgICAgICdNTScsXHJcbiAgICAgIHRoaXMucGFkKHRoaXMuY2FsZW5kYXIubW9udGhPZlllYXIodGhpcy5kYXRlKSwgMilcclxuICAgICk7XHJcbiAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZShcclxuICAgICAgL00oPyFbYW9dKS8sXHJcbiAgICAgIHRoaXMuY2FsZW5kYXIubW9udGhPZlllYXIodGhpcy5kYXRlKS50b1N0cmluZygpXHJcbiAgICApO1xyXG4gICAgZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoXHJcbiAgICAgICdEREREJyxcclxuICAgICAgdGhpcy5jYWxlbmRhci5kYXlOYW1lc1t0aGlzLmNhbGVuZGFyLmRheUluV2Vlayh0aGlzLmRhdGUpIC0gMV1cclxuICAgICk7XHJcbiAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZShcclxuICAgICAgJ0RERCcsXHJcbiAgICAgIHRoaXMuY2FsZW5kYXIuZGF5U2hvcnROYW1lc1t0aGlzLmNhbGVuZGFyLmRheUluV2Vlayh0aGlzLmRhdGUpIC0gMV1cclxuICAgICk7XHJcbiAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZShcclxuICAgICAgL0QoPyFlKS8sXHJcbiAgICAgIHRoaXMuY2FsZW5kYXIuZGF5TmFtZXNbdGhpcy5jYWxlbmRhci5kYXlJbldlZWsodGhpcy5kYXRlKSAtIDFdLnN1YnN0cmluZyhcclxuICAgICAgICAwLFxyXG4gICAgICAgIDNcclxuICAgICAgKVxyXG4gICAgKTtcclxuICAgIGZvcm1hdCA9IGZvcm1hdC5yZXBsYWNlKCd5eXl5JywgdGhpcy5jYWxlbmRhci55ZWFyKHRoaXMuZGF0ZSkudG9TdHJpbmcoKSk7XHJcbiAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZSgnWVlZWScsIHRoaXMuY2FsZW5kYXIueWVhcih0aGlzLmRhdGUpLnRvU3RyaW5nKCkpO1xyXG4gICAgZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoXHJcbiAgICAgICd5eScsXHJcbiAgICAgIHRoaXMuY2FsZW5kYXIueWVhcih0aGlzLmRhdGUpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpXHJcbiAgICApO1xyXG4gICAgZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoXHJcbiAgICAgICdZWScsXHJcbiAgICAgIHRoaXMuY2FsZW5kYXIueWVhcih0aGlzLmRhdGUpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpXHJcbiAgICApO1xyXG4gICAgZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoJ0hIJywgdGhpcy5wYWQodGhpcy5kYXRlLmdldEhvdXJzKCksIDIpKTtcclxuICAgIGZvcm1hdCA9IGZvcm1hdC5yZXBsYWNlKCdIJywgdGhpcy5kYXRlLmdldEhvdXJzKCkudG9TdHJpbmcoKSk7XHJcbiAgICByZXR1cm4gZm9ybWF0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYWQobiwgd2lkdGgsIHogPSAnMCcpIHtcclxuICAgIG4gPSBuICsgJyc7XHJcbiAgICByZXR1cm4gbi5sZW5ndGggPj0gd2lkdGggPyBuIDogbmV3IEFycmF5KHdpZHRoIC0gbi5sZW5ndGggKyAxKS5qb2luKHopICsgbjtcclxuICB9XHJcblxyXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtYXQoKTtcclxuICB9XHJcblxyXG4gIGVxdWFsKHZhbHVlOiBhbnksIHVuaXQ6IFRpbWVVbml0ID0gJ2RheScpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbXBhaXJlKHZhbHVlLCB1bml0KSA9PSAwO1xyXG4gIH1cclxuXHJcbiAgY29tcGFpcmUodmFsdWU6IGFueSwgdW5pdDogVGltZVVuaXQgPSAnZGF5Jykge1xyXG4gICAgLy8gVE9ETzpcclxuICAgIGNvbnN0IHZhbCA9IEFYRGF0ZVRpbWUuY29udmVydCh2YWx1ZSk7XHJcbiAgICBpZiAodGhpcy5kYXRlID09IHZhbC5kYXRlKSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmRhdGUgPiB2YWwuZGF0ZSkge1xyXG4gICAgICByZXR1cm4gMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAtMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnZlcnQoY2FsZW5kYXI6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIEFYRGF0ZVRpbWUuY29udmVydCh0aGlzLCBjYWxlbmRhcik7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhDYWxlbmRhck1vbnRoIHtcclxuICBwcml2YXRlIF9yYW5nZTogQVhEYXRlVGltZVJhbmdlO1xyXG4gIHB1YmxpYyBnZXQgcmFuZ2UoKTogQVhEYXRlVGltZVJhbmdlIHtcclxuICAgIHJldHVybiB0aGlzLl9yYW5nZTtcclxuICB9XHJcbiAgcHVibGljIHNldCByYW5nZSh2OiBBWERhdGVUaW1lUmFuZ2UpIHtcclxuICAgIHRoaXMuX3JhbmdlID0gdjtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKGRhdGU6IEFYRGF0ZVRpbWUpIHtcclxuICAgIHRoaXMuaW5kZXggPSBkYXRlLmRhdGUuZ2V0TW9udGgoKTtcclxuICAgIHRoaXMubmFtZSA9IGRhdGUuZm9ybWF0KCdNTU1NJyk7XHJcbiAgICB0aGlzLnJhbmdlID0gbmV3IEFYRGF0ZVRpbWVSYW5nZShcclxuICAgICAgbmV3IEFYRGF0ZVRpbWUoZGF0ZS5zdGFydE9mKCdtb250aCcpLmRhdGUsIGRhdGUuY2FsZW5kYXIpLFxyXG4gICAgICBuZXcgQVhEYXRlVGltZShkYXRlLmVuZE9mKCdtb250aCcpLmRhdGUsIGRhdGUuY2FsZW5kYXIpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBpbmRleDogbnVtYmVyO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYVGltZVNwYW5Ub3RhbCB7XHJcbiAgbWlsaXNlY29uZHM6IG51bWJlcjtcclxuICBzZWNvbmRzOiBudW1iZXI7XHJcbiAgbWludXRlczogbnVtYmVyO1xyXG4gIGhvdXJzOiBudW1iZXI7XHJcbiAgZGF5czogbnVtYmVyO1xyXG4gIHdlZWtzOiBudW1iZXI7XHJcbiAgbW9udGhzOiBudW1iZXI7XHJcbiAgeWVhcnM6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBWFRpbWVTcGFuIHtcclxuICBtaWxpc2Vjb25kczogbnVtYmVyO1xyXG4gIHNlY29uZHM6IG51bWJlcjtcclxuICBtaW51dGVzOiBudW1iZXI7XHJcbiAgaG91cnM6IG51bWJlcjtcclxuICBkYXlzOiBudW1iZXI7XHJcbiAgbW9udGhzOiBudW1iZXI7XHJcbiAgeWVhcnM6IG51bWJlcjtcclxuICB0b3RhbDogQVhUaW1lU3BhblRvdGFsO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhEYXRlVGltZVJhbmdlIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc3RhcnRUaW1lOiBBWERhdGVUaW1lLCBwdWJsaWMgZW5kVGltZTogQVhEYXRlVGltZSkge31cclxuXHJcbiAgZHVyYXRpb24oKTogQVhUaW1lU3BhbiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IEFYVGltZVNwYW4gPSB7XHJcbiAgICAgIG1pbGlzZWNvbmRzOiAwLFxyXG4gICAgICBzZWNvbmRzOiAwLFxyXG4gICAgICBtaW51dGVzOiAwLFxyXG4gICAgICBob3VyczogMCxcclxuICAgICAgZGF5czogMCxcclxuICAgICAgbW9udGhzOiAwLFxyXG4gICAgICB5ZWFyczogMCxcclxuICAgICAgdG90YWw6IHtcclxuICAgICAgICBtaWxpc2Vjb25kczogMCxcclxuICAgICAgICBzZWNvbmRzOiAwLFxyXG4gICAgICAgIG1pbnV0ZXM6IDAsXHJcbiAgICAgICAgaG91cnM6IDAsXHJcbiAgICAgICAgZGF5czogMCxcclxuICAgICAgICB3ZWVrczogMCxcclxuICAgICAgICBtb250aHM6IDAsXHJcbiAgICAgICAgeWVhcnM6IDAsXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IG9uZV9zZWNvbmQgPSAxMDAwO1xyXG4gICAgY29uc3Qgb25lX21pbiA9IG9uZV9zZWNvbmQgKiA2MDtcclxuICAgIGNvbnN0IG9uZV9ob3VyID0gb25lX21pbiAqIDYwO1xyXG4gICAgY29uc3Qgb25lX2RheSA9IG9uZV9ob3VyICogMjQ7XHJcbiAgICBjb25zdCBvbmVfd2VlayA9IG9uZV9kYXkgKiA3O1xyXG4gICAgY29uc3Qgb25lX3llYXIgPSAzNjUuMjUgKiBvbmVfZGF5O1xyXG4gICAgY29uc3Qgb25lX21vbnRoID0gb25lX3llYXIgLyAxMjtcclxuICAgIGNvbnN0IHN0YXJ0VGltZSA9IHRoaXMuc3RhcnRUaW1lLmRhdGUuZ2V0VGltZSgpO1xyXG4gICAgY29uc3QgZW5kVGltZSA9IHRoaXMuZW5kVGltZS5kYXRlLmdldFRpbWUoKTtcclxuICAgIGNvbnN0IGRpZmYgPSBNYXRoLmFicyhlbmRUaW1lIC0gc3RhcnRUaW1lKTtcclxuICAgIC8vXHJcbiAgICByZXN1bHQudG90YWwubWlsaXNlY29uZHMgPSBkaWZmO1xyXG4gICAgcmVzdWx0LnRvdGFsLnNlY29uZHMgPSBOdW1iZXIoKGRpZmYgLyBvbmVfc2Vjb25kKS50b0ZpeGVkKDIpKTtcclxuICAgIHJlc3VsdC50b3RhbC5taW51dGVzID0gTnVtYmVyKChkaWZmIC8gb25lX21pbikudG9GaXhlZCgyKSk7XHJcbiAgICByZXN1bHQudG90YWwuaG91cnMgPSBOdW1iZXIoKGRpZmYgLyBvbmVfaG91cikudG9GaXhlZCgyKSk7XHJcbiAgICByZXN1bHQudG90YWwuZGF5cyA9IE51bWJlcigoZGlmZiAvIG9uZV9kYXkpLnRvRml4ZWQoMikpO1xyXG4gICAgcmVzdWx0LnRvdGFsLndlZWtzID0gTnVtYmVyKChkaWZmIC8gb25lX3dlZWspLnRvRml4ZWQoMikpO1xyXG4gICAgLy9cclxuICAgIC8vIGxldCBtb250aHMgPSAodGhpcy5lbmRUaW1lLnllYXIgLSB0aGlzLnN0YXJ0VGltZS55ZWFyKSAqIDEyO1xyXG4gICAgLy8gbW9udGhzICs9IHRoaXMuZW5kVGltZS5tb250aE9mWWVhciAtIHRoaXMuc3RhcnRUaW1lLm1vbnRoT2ZZZWFyICsgMTtcclxuICAgIC8vIGlmICh0aGlzLmVuZFRpbWUuZGF5T2ZZZWFyIDwgdGhpcy5zdGFydFRpbWUuZGF5T2ZZZWFyKSB7XHJcbiAgICAvLyAgICAgbW9udGhzLS07XHJcbiAgICAvLyB9XHJcbiAgICAvLyByZXN1bHQudG90YWwubW9udGhzID0gTWF0aC5hYnMobW9udGhzKTtcclxuICAgIC8vIFRPRE86IHJldmlld1xyXG4gICAgcmVzdWx0LnRvdGFsLm1vbnRocyA9IE51bWJlcigoZGlmZiAvIG9uZV9tb250aCkudG9GaXhlZCgyKSk7XHJcbiAgICByZXN1bHQudG90YWwueWVhcnMgPSBOdW1iZXIoKGRpZmYgLyBvbmVfeWVhcikudG9GaXhlZCgyKSk7XHJcbiAgICAvL1xyXG4gICAgcmVzdWx0Lm1pbGlzZWNvbmRzID0gcmVzdWx0LnRvdGFsLm1pbGlzZWNvbmRzICUgMTAwMDtcclxuICAgIHJlc3VsdC5zZWNvbmRzID0gTnVtYmVyKChyZXN1bHQudG90YWwuc2Vjb25kcyAlIDYwKS50b0ZpeGVkKDApKTtcclxuICAgIHJlc3VsdC5taW51dGVzID0gTnVtYmVyKChyZXN1bHQudG90YWwubWludXRlcyAlIDYwKS50b0ZpeGVkKDApKTtcclxuICAgIHJlc3VsdC5ob3VycyA9IE51bWJlcigocmVzdWx0LnRvdGFsLmhvdXJzICUgMjQpLnRvRml4ZWQoMCkpO1xyXG4gICAgLy8gVE9ETzogcmV2aWV3XHJcbiAgICByZXN1bHQuZGF5cyA9IE51bWJlcigocmVzdWx0LnRvdGFsLmRheXMgJSAzMC40KS50b0ZpeGVkKDApKTtcclxuICAgIHJlc3VsdC5tb250aHMgPSBOdW1iZXIoKHJlc3VsdC50b3RhbC5tb250aHMgJSAxMikudG9GaXhlZCgwKSk7XHJcbiAgICByZXN1bHQueWVhcnMgPSBOdW1iZXIocmVzdWx0LnRvdGFsLnllYXJzLnRvRml4ZWQoMCkpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIGVudW11cmF0ZSh1bml0OiBUaW1lVW5pdCA9ICdkYXknKTogQVhEYXRlVGltZVtdIHtcclxuICAgIC8vIFRPRE86ID8/XHJcbiAgICByZXR1cm4gW107XHJcbiAgfVxyXG5cclxuICBpbmNsdWRlcyh2YWx1ZTogQVhEYXRlVGltZSwgdW5pdDogVGltZVVuaXQgPSAnZGF5Jyk6IGJvb2xlYW4ge1xyXG4gICAgLy8gVE9ETzogPz9cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy8gZ2V0Vmlld0NvbXBhaXJlKHZpZXcpIHtcclxuICAvLyAgICAgc3dpdGNoICh2aWV3KSB7XHJcbiAgLy8gICAgICAgICBjYXNlICdkYXknOlxyXG4gIC8vICAgICAgICAgICAgIHJldHVybiAnWU1EJztcclxuICAvLyAgICAgICAgIGNhc2UgJ21vbnRoJzpcclxuICAvLyAgICAgICAgICAgICByZXR1cm4gJ1lNJztcclxuICAvLyAgICAgICAgIGNhc2UgJ3llYXInOlxyXG4gIC8vICAgICAgICAgICAgIHJldHVybiAnWSc7XHJcbiAgLy8gICAgIH1cclxuICAvLyB9XHJcbn1cclxuIl19
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { AXDateTimePipe } from './datetime.pipe';
|
|
3
|
-
export class AXDateTimeModule {
|
|
4
|
-
}
|
|
5
|
-
AXDateTimeModule.decorators = [
|
|
6
|
-
{ type: NgModule, args: [{
|
|
7
|
-
imports: [],
|
|
8
|
-
exports: [AXDateTimePipe],
|
|
9
|
-
declarations: [AXDateTimePipe],
|
|
10
|
-
providers: [],
|
|
11
|
-
},] }
|
|
12
|
-
];
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kYXRlVGltZS9kYXRldGltZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFTakQsTUFBTSxPQUFPLGdCQUFnQjs7O1lBTjVCLFFBQVEsU0FBQztnQkFDTixPQUFPLEVBQUUsRUFBRTtnQkFDWCxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7Z0JBQ3pCLFlBQVksRUFBRSxDQUFDLGNBQWMsQ0FBQztnQkFDOUIsU0FBUyxFQUFFLEVBQUU7YUFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWERhdGVUaW1lUGlwZSB9IGZyb20gJy4vZGF0ZXRpbWUucGlwZSc7XHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtdLFxyXG4gICAgZXhwb3J0czogW0FYRGF0ZVRpbWVQaXBlXSxcclxuICAgIGRlY2xhcmF0aW9uczogW0FYRGF0ZVRpbWVQaXBlXSxcclxuICAgIHByb3ZpZGVyczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWERhdGVUaW1lTW9kdWxlIHsgfVxyXG4iXX0=
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import { AXDateTime } from './datetime.class';
|
|
3
|
-
export class AXDateTimePipe {
|
|
4
|
-
constructor() { }
|
|
5
|
-
transform(value, format, calendar) {
|
|
6
|
-
if (value == null) {
|
|
7
|
-
return '';
|
|
8
|
-
}
|
|
9
|
-
const date = value instanceof AXDateTime ? value.clone() : AXDateTime.convert(value, calendar);
|
|
10
|
-
if (!format) {
|
|
11
|
-
return date.toString();
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
return date.format(format);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
AXDateTimePipe.decorators = [
|
|
19
|
-
{ type: Pipe, args: [{ name: 'axDate' },] }
|
|
20
|
-
];
|
|
21
|
-
AXDateTimePipe.ctorParameters = () => [];
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGF0ZVRpbWUvZGF0ZXRpbWUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHOUMsTUFBTSxPQUFPLGNBQWM7SUFDdkIsZ0JBQWdCLENBQUM7SUFFakIsU0FBUyxDQUFDLEtBQVUsRUFBRSxNQUFlLEVBQUUsUUFBaUI7UUFDcEQsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFO1lBQ2YsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUNELE1BQU0sSUFBSSxHQUFlLEtBQUssWUFBWSxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0csSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQzFCO2FBQ0k7WUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDOUI7SUFDTCxDQUFDOzs7WUFmSixJQUFJLFNBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZVRyYW5zZm9ybSwgUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWERhdGVUaW1lIH0gZnJvbSAnLi9kYXRldGltZS5jbGFzcyc7XHJcblxyXG5AUGlwZSh7IG5hbWU6ICdheERhdGUnIH0pXHJcbmV4cG9ydCBjbGFzcyBBWERhdGVUaW1lUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgZm9ybWF0Pzogc3RyaW5nLCBjYWxlbmRhcj86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBkYXRlOiBBWERhdGVUaW1lID0gdmFsdWUgaW5zdGFuY2VvZiBBWERhdGVUaW1lID8gdmFsdWUuY2xvbmUoKSA6IEFYRGF0ZVRpbWUuY29udmVydCh2YWx1ZSwgY2FsZW5kYXIpO1xyXG4gICAgICAgIGlmICghZm9ybWF0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBkYXRlLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0ZS5mb3JtYXQoZm9ybWF0KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0=
|