@acorex/core 7.1.2 → 7.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/esm2022/config/src/configs.mjs +1 -1
- package/esm2022/dateTime/public-api.mjs +1 -1
- package/esm2022/dateTime/src/datetime.class.mjs +1 -1
- package/esm2022/dateTime/src/datetime.module.mjs +5 -5
- package/esm2022/dateTime/src/datetime.pipe.mjs +4 -4
- package/esm2022/dateTime/src/georgian.calendar.mjs +1 -1
- package/esm2022/dateTime/src/jalali.calendar.mjs +1 -1
- package/esm2022/events/src/event.service.mjs +4 -4
- package/esm2022/file/public-api.mjs +1 -1
- package/esm2022/file/src/file-download-ref.class.mjs +1 -1
- package/esm2022/file/src/file-download-result.class.mjs +1 -1
- package/esm2022/file/src/file-upload-ref.class.mjs +1 -1
- package/esm2022/file/src/file.service.mjs +4 -4
- package/esm2022/http/public-api.mjs +1 -1
- package/esm2022/http/src/http-error.class.mjs +1 -1
- package/esm2022/http/src/http-events.interceptor.mjs +1 -1
- package/esm2022/http/src/http-request.class.mjs +1 -1
- package/esm2022/http/src/http-result.class.mjs +1 -1
- package/esm2022/http/src/http.module.mjs +5 -5
- package/esm2022/http/src/http.service.mjs +4 -4
- package/esm2022/image/src/image.service.mjs +4 -4
- package/esm2022/pipes/public-api.mjs +1 -1
- package/esm2022/pipes/src/pipes.module.mjs +5 -5
- package/esm2022/pipes/src/safe.pipe.mjs +4 -4
- package/esm2022/platform/src/platform.service.mjs +4 -4
- package/esm2022/public-api.mjs +1 -1
- package/esm2022/translation/public-api.mjs +1 -1
- package/esm2022/translation/src/translation.module.mjs +5 -5
- package/esm2022/translation/src/translator.mjs +1 -1
- package/esm2022/translation/src/translator.pipe.mjs +4 -4
- package/esm2022/utils/public-api.mjs +1 -1
- package/esm2022/utils/src/color-util.mjs +1 -1
- package/esm2022/utils/src/drawing-util.mjs +1 -1
- package/esm2022/utils/src/html-util.mjs +1 -1
- package/esm2022/utils/src/object-util.mjs +1 -1
- package/esm2022/utils/src/string-util.mjs +1 -1
- package/fesm2022/acorex-core-config.mjs.map +1 -1
- package/fesm2022/acorex-core-dateTime.mjs +7 -7
- package/fesm2022/acorex-core-dateTime.mjs.map +1 -1
- package/fesm2022/acorex-core-events.mjs +3 -3
- package/fesm2022/acorex-core-events.mjs.map +1 -1
- package/fesm2022/acorex-core-file.mjs +3 -3
- package/fesm2022/acorex-core-file.mjs.map +1 -1
- package/fesm2022/acorex-core-http.mjs +7 -7
- package/fesm2022/acorex-core-http.mjs.map +1 -1
- package/fesm2022/acorex-core-image.mjs +3 -3
- package/fesm2022/acorex-core-image.mjs.map +1 -1
- package/fesm2022/acorex-core-pipes.mjs +7 -7
- package/fesm2022/acorex-core-pipes.mjs.map +1 -1
- package/fesm2022/acorex-core-platform.mjs +3 -3
- package/fesm2022/acorex-core-platform.mjs.map +1 -1
- package/fesm2022/acorex-core-translation.mjs +7 -7
- package/fesm2022/acorex-core-translation.mjs.map +1 -1
- package/fesm2022/acorex-core-utils.mjs.map +1 -1
- package/fesm2022/acorex-core.mjs.map +1 -1
- package/package.json +7 -7
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-core-dateTime.mjs","sources":["../../../../projects/acorex/core/dateTime/src/datetime.class.ts","../../../../projects/acorex/core/dateTime/src/datetime.pipe.ts","../../../../projects/acorex/core/dateTime/src/georgian.calendar.ts","../../../../projects/acorex/core/dateTime/src/jalali.calendar.ts","../../../../projects/acorex/core/dateTime/src/datetime.module.ts","../../../../projects/acorex/core/dateTime/acorex-core-dateTime.ts"],"sourcesContent":["import * as _ from 'lodash';\r\nimport { AXConfig } from '@acorex/core/config';\r\n\r\nexport type TimeUnit =\r\n | 'ms'\r\n | 'second'\r\n | 'minute'\r\n | 'hour'\r\n | 'day'\r\n | 'month'\r\n | 'year'\r\n | 'week';\r\n\r\n\r\n\r\n\r\n\r\nexport interface AXDateValue {\r\n year: number,\r\n month: number,\r\n date: number,\r\n hours?: number,\r\n minutes?: number,\r\n seconds?: number,\r\n ms?: number\r\n calendar: string;\r\n}\r\n\r\n\r\nexport interface AXCalendar {\r\n monthNames: string[];\r\n\r\n monthShortNames: string[];\r\n\r\n dayNames: string[];\r\n\r\n dayShortNames: string[];\r\n\r\n name(): string;\r\n\r\n dayOfMonth(date: Date): number;\r\n\r\n dayOfYear(date: Date): number;\r\n\r\n dayOfWeek(date: Date): number;\r\n\r\n monthOfYear(date: Date): number;\r\n\r\n weekOfYear(date: Date): number;\r\n\r\n year(date: Date): number;\r\n\r\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime;\r\n\r\n set(date: Date, unit: TimeUnit, value: number): AXDateTime;\r\n\r\n startOf(date: Date, unit: TimeUnit): AXDateTime;\r\n\r\n endOf(date: Date, unit: TimeUnit): AXDateTime;\r\n\r\n create(value: AXDateValue): AXDateTime;\r\n \r\n}\r\n\r\n\r\n\r\n\r\n// @dynamic\r\nexport class AXDateTime {\r\n static convert(\r\n value: Date | AXDateTime | string,\r\n calendar: string = AXConfig.get('dateTime.calendar')\r\n ): AXDateTime {\r\n let date: AXDateTime;\r\n if (typeof value === 'string' || value instanceof String) {\r\n date = new AXDateTime(value as string, calendar);\r\n } else if (value instanceof Date) {\r\n date = new AXDateTime(value as Date, calendar);\r\n } else if (value instanceof AXDateTime) {\r\n date = new AXDateTime(value.date, calendar);\r\n }\r\n return date!;\r\n }\r\n\r\n static from(value: AXDateValue = {\r\n calendar: AXConfig.get('dateTime.calendar'),\r\n year: 1,\r\n month: 1,\r\n date: 1,\r\n hours: 0,\r\n minutes: 0,\r\n seconds: 0,\r\n ms: 0\r\n }): AXDateTime {\r\n return AXDateTime.resolveCalendar(value.calendar).create(value);\r\n }\r\n\r\n\r\n static resolveCalendar(calendar: string | AXCalendar): AXCalendar {\r\n return typeof calendar == 'string'\r\n ? AXConfig.get(`dateTime.calendars.${calendar}.class`)\r\n : calendar;\r\n }\r\n\r\n\r\n private _date: Date;\r\n\r\n get date(): Date {\r\n return this._date;\r\n }\r\n\r\n private _calendar: AXCalendar;\r\n get calendar(): AXCalendar {\r\n return this._calendar;\r\n }\r\n\r\n\r\n\r\n constructor(\r\n value: Date | string = new Date(),\r\n calendar: string | AXCalendar = AXConfig.get(`dateTime.calendar`)\r\n ) {\r\n this._calendar = AXDateTime.resolveCalendar(calendar);\r\n if (value instanceof Date) {\r\n this._date = value as Date;\r\n } else {\r\n //TODO: parse jalali\r\n this._date = new Date(value);\r\n }\r\n }\r\n\r\n clone(): AXDateTime {\r\n return new AXDateTime(this.date, this.calendar);\r\n }\r\n\r\n get dayOfMonth(): number {\r\n return this._calendar.dayOfMonth(this.date);\r\n }\r\n\r\n get dayOfYear(): number {\r\n return this._calendar.dayOfYear(this.date);\r\n }\r\n\r\n get dayOfWeek(): number {\r\n return this._calendar.dayOfWeek(this.date);\r\n }\r\n\r\n get hour(): number {\r\n return this._date.getHours();\r\n }\r\n\r\n get minute(): number {\r\n return this._date.getMinutes();\r\n }\r\n\r\n get second(): number {\r\n return this._date.getSeconds();\r\n }\r\n\r\n get year(): number {\r\n return this._calendar.year(this.date);\r\n }\r\n\r\n get monthOfYear(): number {\r\n return this._calendar.monthOfYear(this.date);\r\n }\r\n\r\n get weekOfYear(): number {\r\n return this._calendar.weekOfYear(this.date);\r\n }\r\n\r\n get month(): AXCalendarMonth {\r\n return new AXCalendarMonth(this);\r\n }\r\n\r\n add(unit: TimeUnit, amount: number): AXDateTime {\r\n return this._calendar.add(this.date, unit, amount);\r\n }\r\n\r\n set(unit: TimeUnit = 'day', value: number): AXDateTime {\r\n return this._calendar.set(this.date, unit, value);\r\n }\r\n\r\n duration(\r\n end: Date | AXDateTime,\r\n unit: TimeUnit = 'day'\r\n ): AXTimeSpan {\r\n const range = new AXDateTimeRange(\r\n this,\r\n AXDateTime.convert(end, this.calendar.name())\r\n );\r\n return range.duration();\r\n }\r\n\r\n startOf(unit: TimeUnit = 'day'): AXDateTime {\r\n return this._calendar.startOf(this.date, unit);\r\n }\r\n\r\n endOf(unit: TimeUnit = 'day'): AXDateTime {\r\n return this._calendar.endOf(this.date, unit);\r\n }\r\n\r\n private _formatKeys = {\r\n ss: () => this.pad(this.date.getSeconds(), 2),\r\n s: () => this.date.getSeconds().toString(),\r\n //\r\n dd: () => this.pad(this.calendar.dayOfMonth(this.date), 2),\r\n d: () => this.calendar.dayOfMonth(this.date).toString(),\r\n //\r\n mm: () => this.pad(this.date.getMinutes(), 2),\r\n m: () => this.date.getMinutes().toString(),\r\n //\r\n MMMM: () => this.calendar.monthNames[this.calendar.monthOfYear(this.date) - 1],\r\n MMM: () => this.calendar.monthShortNames[this.calendar.monthOfYear(this.date) - 1],\r\n MM: () => this.pad(this.calendar.monthOfYear(this.date), 2),\r\n //\r\n DDDD: () => this.calendar.dayNames[this.calendar.dayOfWeek(this.date) - 1],\r\n DDD: () => this.calendar.dayShortNames[this.calendar.dayOfWeek(this.date) - 1],\r\n //\r\n yyyy: () => this.calendar.year(this.date).toString(),\r\n YYYY: () => this.calendar.year(this.date).toString(),\r\n yy: () => this.calendar.year(this.date).toString().substring(2),\r\n YY: () => this.calendar.year(this.date).toString().substring(2),\r\n //\r\n HH: () => this.pad(this.date.getHours(), 2),\r\n H: () => this.date.getHours().toString(),\r\n //\r\n hh: () => this.pad((this.date.getHours() % 12 || 12), 2),\r\n h: () => (this.date.getHours() % 12 || 12).toString(),\r\n //\r\n A: () => (this.date.getHours() < 12) ? 'am' : 'pm',\r\n a: () => (this.date.getHours() < 12) ? 'am' : 'pm',\r\n };\r\n\r\n format(\r\n format: string = AXConfig.get('dateTime.shortDateFormat')\r\n ): string {\r\n const re = new RegExp(_.orderBy(Object.keys(this._formatKeys), c => c.length, ['desc']).join(\"|\"), \"gi\");\r\n return format.replace(re, (matched) => {\r\n return this._formatKeys[matched]();\r\n });\r\n }\r\n\r\n private pad(n, width, z = '0') {\r\n n = n + '';\r\n return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;\r\n }\r\n\r\n toString(format: string = AXConfig.get('dateTime.shortDateFormat')): string {\r\n return this.format(format);\r\n }\r\n\r\n equal(value: Date | AXDateTime, unit: TimeUnit = 'day') {\r\n return this.compare(value, unit) == 0;\r\n }\r\n\r\n compare(value: Date | AXDateTime, unit: TimeUnit = 'day') {\r\n const val = AXDateTime.convert(value, this.calendar.name());\r\n const func = (v1: number, v2: number) => {\r\n if (v1 == v2) {\r\n return 0;\r\n } else if (v1 > v2) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n let p = 0;\r\n switch (unit) {\r\n case 'year':\r\n return func(this.year, val.year);\r\n case 'week':\r\n p = this.compare(val, 'year');\r\n return p == 0 ? func(this.weekOfYear, val.weekOfYear) : p;\r\n case 'month':\r\n p = this.compare(val, 'year');\r\n return p == 0 ? func(this.monthOfYear, val.monthOfYear) : p;\r\n case 'day':\r\n p = this.compare(val, 'year');\r\n return p == 0 ? func(this.dayOfYear, val.dayOfYear) : p;\r\n case 'hour':\r\n p = this.compare(val, 'day');\r\n return p == 0 ? func(this.hour, val.hour) : p;\r\n case 'minute':\r\n p = this.compare(val, 'hour');\r\n return p == 0 ? func(this.minute, val.minute) : p;\r\n case 'second':\r\n p = this.compare(val, 'minute');\r\n return p == 0 ? func(this.second, val.second) : p;\r\n default:\r\n return func(this.date.getTime(), val.date.getTime());\r\n }\r\n\r\n }\r\n\r\n convert(calendar: string) {\r\n return AXDateTime.convert(this, calendar);\r\n }\r\n}\r\n\r\nexport class AXCalendarMonth {\r\n private _range: AXDateTimeRange;\r\n public get range(): AXDateTimeRange {\r\n return this._range;\r\n }\r\n public set range(v: AXDateTimeRange) {\r\n this._range = v;\r\n }\r\n\r\n constructor(date: AXDateTime) {\r\n this.index = date.date.getMonth();\r\n this.name = date.format('MMMM');\r\n this.range = new AXDateTimeRange(\r\n new AXDateTime(date.startOf('month').date, date.calendar),\r\n new AXDateTime(date.endOf('month').date, date.calendar)\r\n );\r\n }\r\n\r\n private readonly index: number;\r\n private readonly name: string;\r\n}\r\n\r\nexport interface AXTimeSpanTotal {\r\n miliseconds: number;\r\n seconds: number;\r\n minutes: number;\r\n hours: number;\r\n days: number;\r\n weeks: number;\r\n months: number;\r\n years: number;\r\n}\r\n\r\nexport interface AXTimeSpan {\r\n miliseconds: number;\r\n seconds: number;\r\n minutes: number;\r\n hours: number;\r\n days: number;\r\n months: number;\r\n years: number;\r\n total: AXTimeSpanTotal;\r\n}\r\n\r\nexport class AXDateTimeRange {\r\n private _startTime: AXDateTime;\r\n private _endTime: AXDateTime;\r\n\r\n public get startTime(): AXDateTime {\r\n return this._startTime;\r\n }\r\n\r\n public get endTime(): AXDateTime {\r\n return this._endTime;\r\n }\r\n\r\n constructor(startTime: AXDateTime, endTime: AXDateTime) {\r\n this._startTime = startTime;\r\n this._endTime = endTime;\r\n }\r\n\r\n duration(): AXTimeSpan {\r\n const result: AXTimeSpan = {\r\n miliseconds: 0,\r\n seconds: 0,\r\n minutes: 0,\r\n hours: 0,\r\n days: 0,\r\n months: 0,\r\n years: 0,\r\n total: {\r\n miliseconds: 0,\r\n seconds: 0,\r\n minutes: 0,\r\n hours: 0,\r\n days: 0,\r\n weeks: 0,\r\n months: 0,\r\n years: 0,\r\n },\r\n };\r\n\r\n const one_second = 1000;\r\n const one_min = one_second * 60;\r\n const one_hour = one_min * 60;\r\n const one_day = one_hour * 24;\r\n const one_week = one_day * 7;\r\n const one_year = 365.25 * one_day;\r\n const one_month = one_year / 12;\r\n const startTime = this._startTime.date.getTime();\r\n const endTime = this._endTime.date.getTime();\r\n const diff = Math.abs(endTime - startTime);\r\n //\r\n result.total.miliseconds = diff;\r\n result.total.seconds = Number((diff / one_second).toFixed(2));\r\n result.total.minutes = Number((diff / one_min).toFixed(2));\r\n result.total.hours = Number((diff / one_hour).toFixed(2));\r\n result.total.days = Number((diff / one_day).toFixed(2));\r\n result.total.weeks = Number((diff / one_week).toFixed(2));\r\n //\r\n // let months = (this.endTime.year - this.startTime.year) * 12;\r\n // months += this.endTime.monthOfYear - this.startTime.monthOfYear + 1;\r\n // if (this.endTime.dayOfYear < this.startTime.dayOfYear) {\r\n // months--;\r\n // }\r\n // result.total.months = Math.abs(months);\r\n // TODO: review\r\n result.total.months = Number((diff / one_month).toFixed(2));\r\n result.total.years = Number((diff / one_year).toFixed(2));\r\n //\r\n result.miliseconds = result.total.miliseconds % 1000;\r\n result.seconds = Number((result.total.seconds % 60).toFixed(0));\r\n result.minutes = Number((result.total.minutes % 60).toFixed(0));\r\n result.hours = Number((result.total.hours % 24).toFixed(0));\r\n // TODO: review\r\n result.days = Number((result.total.days % 30.4).toFixed(0));\r\n result.months = Number((result.total.months % 12).toFixed(0));\r\n result.years = Number(result.total.years.toFixed(0));\r\n return result;\r\n }\r\n\r\n enumurate(unit: TimeUnit = 'day', amount: number = 1): AXDateTime[] {\r\n const result: AXDateTime[] = [];\r\n let item = this._startTime.clone();\r\n while (item.compare(this._endTime, unit) < 1) {\r\n if (!result.some(c => c.equal(item, unit))) {\r\n result.push(item);\r\n }\r\n item = item.add(unit, amount)\r\n }\r\n return result;\r\n }\r\n\r\n includes(value: AXDateTime, unit: TimeUnit = 'day'): boolean {\r\n // TODO: ??\r\n return true;\r\n }\r\n\r\n // getViewCompaire(view) {\r\n // switch (view) {\r\n // case 'day':\r\n // return 'YMD';\r\n // case 'month':\r\n // return 'YM';\r\n // case 'year':\r\n // return 'Y';\r\n // }\r\n // }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { AXConfig } from '@acorex/core/config';\r\nimport { AXDateTime } from './datetime.class';\r\n\r\n@Pipe({ name: 'axDate' })\r\nexport class AXDateTimePipe implements PipeTransform {\r\n constructor() { }\r\n\r\n transform(value: any, format?: string, calendar?: string): string {\r\n if (value == null) {\r\n return '';\r\n }\r\n const date: AXDateTime = value instanceof AXDateTime ? value.clone() : AXDateTime.convert(value, calendar);\r\n if (!format) {\r\n return date.format(AXConfig.get('dateTime.shortDateFormat'));\r\n }\r\n else {\r\n return date.format(format);\r\n }\r\n }\r\n}","import { AXCalendar, AXDateTime, AXDateValue, TimeUnit } from \"./datetime.class\";\r\n\r\nexport class GeorgianCalendar implements AXCalendar {\r\n\r\n monthNames = [\r\n \"January\", \"February\", \"March\",\r\n \"April\", \"May\", \"June\", \"July\",\r\n \"August\", \"September\", \"October\",\r\n \"November\", \"December\"\r\n ];\r\n\r\n monthShortNames = [\r\n \"Jan\", \"Feb\", \"Mar\",\r\n \"Apr\", \"May\", \"Jun\", \"Jul\",\r\n \"Aug\", \"Sep\", \"Oct\",\r\n \"Nov\", \"Dec\"\r\n ];\r\n\r\n dayNames = [\r\n \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\",\r\n \"Thursday\", \"Friday\", \"Saturday\"\r\n ];\r\n\r\n dayShortNames = [\r\n \"Sun\", \"Mon\", \"Tue\", \"Wed\",\r\n \"Thu\", \"Fri\", \"Sat\"\r\n ];\r\n\r\n\r\n create(value: AXDateValue): AXDateTime {\r\n return new AXDateTime(new Date(value.year, value.month - 1, value.date, value.hours || 0, value.minutes || 0, value.seconds || 0, value.ms || 0), this.name());\r\n }\r\n\r\n name(): string {\r\n return 'gregorian'\r\n }\r\n\r\n dayOfMonth(date: Date): number {\r\n return date.getDate();\r\n }\r\n\r\n dayOfYear(date: Date): number {\r\n let result = 0;\r\n let m = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n if (this.isLeap(date)) {\r\n m[1] = 29;\r\n }\r\n for (let i = 0; i < date.getMonth(); i++) {\r\n result = result + m[i];\r\n }\r\n result += date.getDate();\r\n return result;\r\n }\r\n\r\n dayOfWeek(date: Date): number {\r\n return date.getDay() + 1;\r\n }\r\n\r\n weekOfYear(date: Date): number {\r\n const firstDay = new AXDateTime(date).startOf('year');\r\n return Math.ceil((((date.getTime() - firstDay.date.getTime()) / 86400000) + firstDay.date.getDay() + 1) / 7);\r\n }\r\n\r\n year(date: Date): number {\r\n return date.getFullYear();\r\n }\r\n\r\n monthOfYear(date: Date): number {\r\n return date.getMonth() + 1;\r\n }\r\n\r\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime {\r\n let value = date.valueOf();\r\n switch (unit) {\r\n case 'second':\r\n value += 1000 * amount;\r\n break\r\n case 'minute':\r\n value += 60000 * amount;\r\n break\r\n case 'hour':\r\n value += 3600000 * amount;\r\n break\r\n case 'month':\r\n const v = new Date(value);\r\n var mo = date.getMonth();\r\n var yr = date.getFullYear();\r\n mo = (mo + amount) % 12;\r\n if (0 > mo) {\r\n yr += (date.getMonth() + amount - mo - 12) / 12;\r\n mo += 12;\r\n }\r\n else\r\n yr += ((date.getMonth() + amount - mo) / 12);\r\n v.setMonth(mo);\r\n v.setFullYear(yr);\r\n value = v.valueOf();\r\n break\r\n case 'week':\r\n value += 7 * 86400000 * amount;\r\n break\r\n case 'year':\r\n const yv = new Date(value);\r\n yv.setFullYear(yv.getFullYear() + amount);\r\n value = yv.valueOf();\r\n break\r\n case 'day':\r\n default:\r\n value += 86400000 * amount;\r\n }\r\n return new AXDateTime(new Date(value), this.name());\r\n }\r\n\r\n set(date: Date, unit: TimeUnit, value: number): AXDateTime {\r\n const clone = new Date(date.valueOf());\r\n switch (unit) {\r\n case 'second':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), value, clone.getMilliseconds());\r\n break;\r\n case 'minute':\r\n clone.setHours(clone.getHours(), value, clone.getSeconds(), clone.getMilliseconds());\r\n break;\r\n case 'hour':\r\n clone.setHours(value, clone.getMinutes(), clone.getSeconds(), clone.getMilliseconds());\r\n break;\r\n default:\r\n case 'day':\r\n clone.setDate(value);\r\n break;\r\n case \"week\":\r\n break;\r\n case \"month\":\r\n clone.setMonth(Math.max(0, value - 1));\r\n break;\r\n case \"year\":\r\n clone.setFullYear(value);\r\n break;\r\n }\r\n return new AXDateTime(clone, this.name());\r\n }\r\n\r\n startOf(date: Date, unit: TimeUnit): AXDateTime {\r\n const clone = new Date(date.valueOf());\r\n switch (unit) {\r\n case 'second':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 0);\r\n return new AXDateTime(clone, this.name());\r\n case 'minute':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n case 'hour':\r\n clone.setHours(clone.getHours(), 0, 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n default:\r\n case 'day':\r\n clone.setHours(0, 0, 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n case \"week\":\r\n const index = 0;\r\n const start = index >= 0 ? index : 0;\r\n const day = clone.getDay();\r\n const diff = clone.getDate() - day + (start > day ? start - 7 : start);\r\n clone.setDate(diff);\r\n return new AXDateTime(clone, this.name()).startOf('day');\r\n case \"month\":\r\n clone.setDate(1)\r\n return new AXDateTime(clone, this.name()).startOf('day');\r\n case \"year\":\r\n clone.setMonth(0);\r\n clone.setDate(1);\r\n return new AXDateTime(clone, this.name()).startOf('day');\r\n }\r\n }\r\n\r\n endOf(date: Date, unit: TimeUnit): AXDateTime {\r\n const clone = new Date(date.valueOf());\r\n switch (unit) {\r\n case 'second':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'minute':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'hour':\r\n clone.setHours(clone.getHours(), 59, 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n default:\r\n case 'day':\r\n clone.setHours(23, 59, 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'week':\r\n return this.startOf(date, 'week').add('day', 6).endOf('day');\r\n case 'month':\r\n return new AXDateTime(new Date(date.getFullYear(), date.getMonth() + 1, 0), this.name()).endOf('day');\r\n case \"year\":\r\n clone.setMonth(11);\r\n return new AXDateTime(clone, this.name()).endOf('month');\r\n }\r\n }\r\n\r\n isLeap(date: Date) {\r\n let leapYear = new Date(date.getFullYear(), 1, 29);\r\n return leapYear.getDate() == 29;\r\n }\r\n}","import { AXCalendar, AXDateTime, AXDateValue, TimeUnit } from \"./datetime.class\";\r\n\r\nexport class JalaliCalendar implements AXCalendar {\r\n\r\n monthNames = (\"فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند\").split(\"_\");\r\n\r\n monthShortNames = (\"فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند\").split(\"_\");\r\n\r\n dayNames = (\"شنبه_یکشنبه_دوشنبه_سه شنبه_چهارشنبه_پنج شنبه_جمعه\").split(\"_\");\r\n\r\n dayShortNames = \"ش_ی_د_س_چ_پ_ج\".split(\"_\");\r\n\r\n\r\n create(value: AXDateValue): AXDateTime {\r\n const a = this.toGregorian(value.year, value.month, value.date);\r\n return new AXDateTime(new Date(a.getFullYear(), a.getMonth(), a.getDate(), value.hours || 0, value.minutes || 0, value.seconds || 0, value.ms || 0), this.name());\r\n }\r\n\r\n name(): string {\r\n return 'jalali'\r\n }\r\n\r\n dayOfMonth(date: Date): number {\r\n return this.toJalali(date).day;\r\n }\r\n\r\n dayOfYear(date: Date): number {\r\n const j = this.toJalali(date);\r\n return (j.month <= 6 ? ((j.month - 1) * 31) : ((6 * 31) + (j.month - 7) * 30)) + j.day;\r\n }\r\n\r\n dayOfWeek(date: Date): number {\r\n return date.getDay() == 6 ? 1 : date.getDay() + 2;\r\n }\r\n\r\n weekOfYear(date: Date): number {\r\n //TODO : apply jalali\r\n const firstDay = new AXDateTime(date).startOf('year');\r\n return Math.ceil((((date.getTime() - firstDay.date.getTime()) / 86400000) + firstDay.date.getDay() + 1) / 7);\r\n }\r\n\r\n year(date: Date): number {\r\n return this.toJalali(date).year;\r\n }\r\n\r\n monthOfYear(date: Date): number {\r\n return this.toJalali(date).month;\r\n }\r\n\r\n\r\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime {\r\n let value = date.valueOf();\r\n switch (unit) {\r\n case 'second':\r\n value += 1000 * amount;\r\n break\r\n case 'minute':\r\n value += 60000 * amount;\r\n break\r\n case 'hour':\r\n value += 3600000 * amount;\r\n break\r\n case 'month':\r\n {\r\n const v = new Date(value);\r\n let jd = this.dayOfMonth(date);\r\n let jm = this.monthOfYear(date);\r\n let jy = this.year(date);\r\n const nm = (jm + amount);\r\n const ny = (nm % 12) ? Math.floor(nm / 12) : 0;\r\n jy += ny;\r\n jm = nm - (ny * 12);\r\n const vv = this.toGregorian(jy, jm, jd);\r\n v.setFullYear(vv.getFullYear());\r\n v.setMonth(vv.getMonth());\r\n v.setDate(vv.getDate());\r\n value = v.valueOf();\r\n break\r\n }\r\n case 'week':\r\n value += 7 * 86400000 * amount;\r\n break\r\n case 'year':\r\n {\r\n // const v = new Date(value);\r\n // v.setFullYear(v.getFullYear() + amount);\r\n // value = v.valueOf();\r\n // break\r\n const v = new Date(value);\r\n let jd = this.dayOfMonth(date);\r\n let jm = this.monthOfYear(date);\r\n let jy = this.year(date);\r\n const vv = this.toGregorian(jy + amount, jm, jd);\r\n v.setFullYear(vv.getFullYear());\r\n v.setMonth(vv.getMonth());\r\n v.setDate(vv.getDate());\r\n value = v.valueOf();\r\n break\r\n }\r\n case 'day':\r\n default:\r\n value += 86400000 * amount;\r\n }\r\n return new AXDateTime(new Date(value), this.name());\r\n }\r\n\r\n set(date: Date, unit: TimeUnit, value: number): AXDateTime {\r\n const clone = new Date(date.valueOf());\r\n const jDate = this.toJalali(clone);\r\n switch (unit) {\r\n case 'second':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), value, clone.getMilliseconds());\r\n break;\r\n case 'minute':\r\n clone.setHours(clone.getHours(), value, clone.getSeconds(), clone.getMilliseconds());\r\n break;\r\n case 'hour':\r\n clone.setHours(value, clone.getMinutes(), clone.getSeconds(), clone.getMilliseconds());\r\n break;\r\n default:\r\n case 'day':\r\n const gDate = this.toGregorian(jDate.year, jDate.month, value);\r\n clone.setDate(gDate.getDate());\r\n break;\r\n case \"week\":\r\n break;\r\n case \"month\":\r\n const gDate2 = this.toGregorian(jDate.year, value, jDate.day);\r\n clone.setMonth(gDate2.getMonth());\r\n break;\r\n case \"year\":\r\n const gDate3 = this.toGregorian(value, jDate.month, jDate.day);\r\n clone.setFullYear(gDate3.getFullYear());\r\n break;\r\n }\r\n return new AXDateTime(clone, this.name());\r\n }\r\n\r\n startOf(date: Date, unit: TimeUnit): AXDateTime {\r\n const clone = new Date(date.valueOf());\r\n switch (unit) {\r\n case 'second':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 0);\r\n return new AXDateTime(clone, this.name());\r\n case 'minute':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n case 'hour':\r\n clone.setHours(clone.getHours(), 0, 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n default:\r\n case 'day':\r\n clone.setHours(0, 0, 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n case \"week\":\r\n return new AXDateTime(clone, this.name()).add('day', -this.dayOfWeek(clone) + 1).startOf('day');\r\n case \"month\":\r\n {\r\n const jy = this.year(date);\r\n const jm = this.monthOfYear(date);\r\n const gDate = this.toGregorian(jy, jm, 1);\r\n return new AXDateTime(gDate, this.name()).startOf('day');\r\n }\r\n case \"year\":\r\n {\r\n const jy = this.year(date);\r\n const gDate = this.toGregorian(jy, 1, 1);\r\n return new AXDateTime(gDate, this.name()).startOf('day');\r\n }\r\n }\r\n }\r\n\r\n endOf(date: Date, unit: TimeUnit): AXDateTime {\r\n const clone = new Date(date.valueOf());\r\n switch (unit) {\r\n case 'second':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'minute':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'hour':\r\n clone.setHours(clone.getHours(), 59, 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n default:\r\n case 'day':\r\n clone.setHours(23, 59, 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'week':\r\n {\r\n return this.startOf(date, 'week').add('day', 6).endOf('day');\r\n }\r\n case 'month':\r\n {\r\n const jy = this.year(date);\r\n const jm = this.monthOfYear(date);\r\n const jd = this.monthLength(jy, jm);\r\n const gDate = this.toGregorian(jy, jm, jd);\r\n return new AXDateTime(gDate, this.name()).endOf('day');\r\n }\r\n case \"year\":\r\n let jy = this.year(date);\r\n const gDate = this.toGregorian(jy, 12, this.monthLength(jy, 12));\r\n return new AXDateTime(gDate, this.name()).endOf('day');\r\n }\r\n }\r\n\r\n\r\n\r\n toJalali(date: Date): { year: number, month: number, day: number } {\r\n const gy = date.getFullYear();\r\n const gm = date.getMonth() + 1;\r\n const gd = date.getDate();\r\n const r = this.d2j(this.g2d(gy, gm, gd))\r\n return {\r\n year: r.jy,\r\n month: r.jm,\r\n day: r.jd,\r\n }\r\n }\r\n\r\n /*\r\n Converts a Jalaali date to Gregorian.\r\n */\r\n toGregorian(jy, jm, jd) {\r\n const g = this.d2g(this.j2d(jy, jm, jd))\r\n return new Date(g.gy, g.gm - 1, g.gd);\r\n }\r\n\r\n /*\r\n Checks whether a Jalaali date is valid or not.\r\n */\r\n isValid(jy, jm, jd) {\r\n return jy >= -61 && jy <= 3177 &&\r\n jm >= 1 && jm <= 12 &&\r\n jd >= 1 && jd <= this.monthLength(jy, jm)\r\n }\r\n\r\n /*\r\n Is this a leap year or not?\r\n */\r\n isLeapYear(jy) {\r\n return this.jalCal(jy).leap === 0\r\n }\r\n\r\n /*\r\n Number of days in a given month in a Jalaali year.\r\n */\r\n monthLength(jy, jm) {\r\n if (jm <= 6) return 31\r\n if (jm <= 11) return 30\r\n if (this.isLeapYear(jy)) return 30\r\n return 29\r\n }\r\n\r\n\r\n private jalCal(jy) {\r\n // Jalaali years starting the 33-year rule.\r\n let breaks = [-61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210\r\n , 1635, 2060, 2097, 2192, 2262, 2324, 2394, 2456, 3178\r\n ]\r\n , bl = breaks.length\r\n , gy = jy + 621\r\n , leapJ = -14\r\n , jp = breaks[0]\r\n , jm\r\n , jump\r\n , leap\r\n , leapG\r\n , march\r\n , n\r\n , i\r\n\r\n if (jy < jp || jy >= breaks[bl - 1])\r\n throw new Error('Invalid Jalaali year ' + jy)\r\n\r\n // Find the limiting years for the Jalaali year jy.\r\n for (i = 1; i < bl; i += 1) {\r\n jm = breaks[i]\r\n jump = jm - jp\r\n if (jy < jm)\r\n break\r\n leapJ = leapJ + this.div(jump, 33) * 8 + this.div(this.mod(jump, 33), 4)\r\n jp = jm\r\n }\r\n n = jy - jp\r\n\r\n // Find the number of leap years from AD 621 to the beginning\r\n // of the current Jalaali year in the Persian calendar.\r\n leapJ = leapJ + this.div(n, 33) * 8 + this.div(this.mod(n, 33) + 3, 4)\r\n if (this.mod(jump, 33) === 4 && jump - n === 4)\r\n leapJ += 1\r\n\r\n // And the same in the Gregorian calendar (until the year gy).\r\n leapG = this.div(gy, 4) - this.div((this.div(gy, 100) + 1) * 3, 4) - 150\r\n\r\n // Determine the Gregorian date of Farvardin the 1st.\r\n march = 20 + leapJ - leapG\r\n\r\n // Find how many years have passed since the last leap year.\r\n if (jump - n < 6)\r\n n = n - jump + this.div(jump + 4, 33) * 33\r\n leap = this.mod(this.mod(n + 1, 33) - 1, 4)\r\n if (leap === -1) {\r\n leap = 4\r\n }\r\n\r\n return {\r\n leap: leap\r\n , gy: gy\r\n , march: march\r\n }\r\n }\r\n\r\n /*\r\n Converts a date of the Jalaali calendar to the Julian Day number.\r\n @param jy Jalaali year (1 to 3100)\r\n @param jm Jalaali month (1 to 12)\r\n @param jd Jalaali day (1 to 29/31)\r\n @return Julian Day number\r\n */\r\n private j2d(jy, jm, jd) {\r\n let r = this.jalCal(jy)\r\n return this.g2d(r.gy, 3, r.march) + (jm - 1) * 31 - this.div(jm, 7) * (jm - 7) + jd - 1\r\n }\r\n\r\n /*\r\n Converts the Julian Day number to a date in the Jalaali calendar.\r\n @param jdn Julian Day number\r\n @return\r\n jy: Jalaali year (1 to 3100)\r\n jm: Jalaali month (1 to 12)\r\n jd: Jalaali day (1 to 29/31)\r\n */\r\n private d2j(jdn) {\r\n let gy = this.d2g(jdn).gy // Calculate Gregorian year (gy).\r\n , jy = gy - 621\r\n , r = this.jalCal(jy)\r\n , jdn1f = this.g2d(gy, 3, r.march)\r\n , jd\r\n , jm\r\n , k\r\n\r\n // Find number of days that passed since 1 Farvardin.\r\n k = jdn - jdn1f\r\n if (k >= 0) {\r\n if (k <= 185) {\r\n // The first 6 months.\r\n jm = 1 + this.div(k, 31)\r\n jd = this.mod(k, 31) + 1\r\n return {\r\n jy: jy\r\n , jm: jm\r\n , jd: jd\r\n }\r\n } else {\r\n // The remaining months.\r\n k -= 186\r\n }\r\n } else {\r\n // Previous Jalaali year.\r\n jy -= 1\r\n k += 179\r\n if (r.leap === 1)\r\n k += 1\r\n }\r\n jm = 7 + this.div(k, 30)\r\n jd = this.mod(k, 30) + 1\r\n return {\r\n jy: jy\r\n , jm: jm\r\n , jd: jd\r\n }\r\n }\r\n\r\n\r\n private g2d(gy, gm, gd) {\r\n let d = this.div((gy + this.div(gm - 8, 6) + 100100) * 1461, 4)\r\n + this.div(153 * this.mod(gm + 9, 12) + 2, 5)\r\n + gd - 34840408\r\n d = d - this.div(this.div(gy + 100100 + this.div(gm - 8, 6), 100) * 3, 4) + 752\r\n return d\r\n }\r\n\r\n\r\n private d2g(jdn) {\r\n let j\r\n , i\r\n , gd\r\n , gm\r\n , gy\r\n j = 4 * jdn + 139361631\r\n j = j + this.div(this.div(4 * jdn + 183187720, 146097) * 3, 4) * 4 - 3908\r\n i = this.div(this.mod(j, 1461), 4) * 5 + 308\r\n gd = this.div(this.mod(i, 153), 5) + 1\r\n gm = this.mod(this.div(i, 153), 12) + 1\r\n gy = this.div(j, 1461) - 100100 + this.div(8 - gm, 6)\r\n return {\r\n gy: gy\r\n , gm: gm\r\n , gd: gd\r\n }\r\n }\r\n\r\n /*\r\n Utility helper functions.\r\n */\r\n private div(a, b) {\r\n return ~~(a / b)\r\n }\r\n\r\n private mod(a, b) {\r\n return a - ~~(a / b) * b\r\n }\r\n\r\n}","import { NgModule } from '@angular/core';\r\nimport { AXConfig } from '@acorex/core/config';\r\nimport { AXDateTimePipe } from './datetime.pipe';\r\nimport { GeorgianCalendar } from './georgian.calendar';\r\nimport { JalaliCalendar } from './jalali.calendar';\r\n\r\n\r\n@NgModule({\r\n imports: [],\r\n exports: [AXDateTimePipe],\r\n declarations: [AXDateTimePipe],\r\n providers: [],\r\n})\r\nexport class AXDateTimeModule {\r\n\r\n constructor() {\r\n AXConfig.set({\r\n dateTime: {\r\n calendars: {\r\n jalali: {\r\n \"class\": new JalaliCalendar(),\r\n weekend: [6, 7]\r\n },\r\n gregorian: {\r\n \"class\": new GeorgianCalendar(),\r\n weekend: [7, 1]\r\n }\r\n },\r\n calendar: 'gregorian',\r\n shortDateFormat: 'DDDD, d MMM yyyy'\r\n }\r\n });\r\n\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-core-dateTime.mjs","sources":["../../../../projects/acorex/core/dateTime/src/datetime.class.ts","../../../../projects/acorex/core/dateTime/src/datetime.pipe.ts","../../../../projects/acorex/core/dateTime/src/georgian.calendar.ts","../../../../projects/acorex/core/dateTime/src/jalali.calendar.ts","../../../../projects/acorex/core/dateTime/src/datetime.module.ts","../../../../projects/acorex/core/dateTime/acorex-core-dateTime.ts"],"sourcesContent":["import * as _ from 'lodash';\nimport { AXConfig } from '@acorex/core/config';\n\nexport type TimeUnit =\n | 'ms'\n | 'second'\n | 'minute'\n | 'hour'\n | 'day'\n | 'month'\n | 'year'\n | 'week';\n\n\n\n\n\nexport interface AXDateValue {\n year: number,\n month: number,\n date: number,\n hours?: number,\n minutes?: number,\n seconds?: number,\n ms?: number\n calendar: string;\n}\n\n\nexport interface AXCalendar {\n monthNames: string[];\n\n monthShortNames: string[];\n\n dayNames: string[];\n\n dayShortNames: string[];\n\n name(): string;\n\n dayOfMonth(date: Date): number;\n\n dayOfYear(date: Date): number;\n\n dayOfWeek(date: Date): number;\n\n monthOfYear(date: Date): number;\n\n weekOfYear(date: Date): number;\n\n year(date: Date): number;\n\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime;\n\n set(date: Date, unit: TimeUnit, value: number): AXDateTime;\n\n startOf(date: Date, unit: TimeUnit): AXDateTime;\n\n endOf(date: Date, unit: TimeUnit): AXDateTime;\n\n create(value: AXDateValue): AXDateTime;\n \n}\n\n\n\n\n// @dynamic\nexport class AXDateTime {\n static convert(\n value: Date | AXDateTime | string,\n calendar: string = AXConfig.get('dateTime.calendar')\n ): AXDateTime {\n let date: AXDateTime;\n if (typeof value === 'string' || value instanceof String) {\n date = new AXDateTime(value as string, calendar);\n } else if (value instanceof Date) {\n date = new AXDateTime(value as Date, calendar);\n } else if (value instanceof AXDateTime) {\n date = new AXDateTime(value.date, calendar);\n }\n return date!;\n }\n\n static from(value: AXDateValue = {\n calendar: AXConfig.get('dateTime.calendar'),\n year: 1,\n month: 1,\n date: 1,\n hours: 0,\n minutes: 0,\n seconds: 0,\n ms: 0\n }): AXDateTime {\n return AXDateTime.resolveCalendar(value.calendar).create(value);\n }\n\n\n static resolveCalendar(calendar: string | AXCalendar): AXCalendar {\n return typeof calendar == 'string'\n ? AXConfig.get(`dateTime.calendars.${calendar}.class`)\n : calendar;\n }\n\n\n private _date: Date;\n\n get date(): Date {\n return this._date;\n }\n\n private _calendar: AXCalendar;\n get calendar(): AXCalendar {\n return this._calendar;\n }\n\n\n\n constructor(\n value: Date | string = new Date(),\n calendar: string | AXCalendar = AXConfig.get(`dateTime.calendar`)\n ) {\n this._calendar = AXDateTime.resolveCalendar(calendar);\n if (value instanceof Date) {\n this._date = value as Date;\n } else {\n //TODO: parse jalali\n this._date = new Date(value);\n }\n }\n\n clone(): AXDateTime {\n return new AXDateTime(this.date, this.calendar);\n }\n\n get dayOfMonth(): number {\n return this._calendar.dayOfMonth(this.date);\n }\n\n get dayOfYear(): number {\n return this._calendar.dayOfYear(this.date);\n }\n\n get dayOfWeek(): number {\n return this._calendar.dayOfWeek(this.date);\n }\n\n get hour(): number {\n return this._date.getHours();\n }\n\n get minute(): number {\n return this._date.getMinutes();\n }\n\n get second(): number {\n return this._date.getSeconds();\n }\n\n get year(): number {\n return this._calendar.year(this.date);\n }\n\n get monthOfYear(): number {\n return this._calendar.monthOfYear(this.date);\n }\n\n get weekOfYear(): number {\n return this._calendar.weekOfYear(this.date);\n }\n\n get month(): AXCalendarMonth {\n return new AXCalendarMonth(this);\n }\n\n add(unit: TimeUnit, amount: number): AXDateTime {\n return this._calendar.add(this.date, unit, amount);\n }\n\n set(unit: TimeUnit = 'day', value: number): AXDateTime {\n return this._calendar.set(this.date, unit, value);\n }\n\n duration(\n end: Date | AXDateTime,\n unit: TimeUnit = 'day'\n ): AXTimeSpan {\n const range = new AXDateTimeRange(\n this,\n AXDateTime.convert(end, this.calendar.name())\n );\n return range.duration();\n }\n\n startOf(unit: TimeUnit = 'day'): AXDateTime {\n return this._calendar.startOf(this.date, unit);\n }\n\n endOf(unit: TimeUnit = 'day'): AXDateTime {\n return this._calendar.endOf(this.date, unit);\n }\n\n private _formatKeys = {\n ss: () => this.pad(this.date.getSeconds(), 2),\n s: () => this.date.getSeconds().toString(),\n //\n dd: () => this.pad(this.calendar.dayOfMonth(this.date), 2),\n d: () => this.calendar.dayOfMonth(this.date).toString(),\n //\n mm: () => this.pad(this.date.getMinutes(), 2),\n m: () => this.date.getMinutes().toString(),\n //\n MMMM: () => this.calendar.monthNames[this.calendar.monthOfYear(this.date) - 1],\n MMM: () => this.calendar.monthShortNames[this.calendar.monthOfYear(this.date) - 1],\n MM: () => this.pad(this.calendar.monthOfYear(this.date), 2),\n //\n DDDD: () => this.calendar.dayNames[this.calendar.dayOfWeek(this.date) - 1],\n DDD: () => this.calendar.dayShortNames[this.calendar.dayOfWeek(this.date) - 1],\n //\n yyyy: () => this.calendar.year(this.date).toString(),\n YYYY: () => this.calendar.year(this.date).toString(),\n yy: () => this.calendar.year(this.date).toString().substring(2),\n YY: () => this.calendar.year(this.date).toString().substring(2),\n //\n HH: () => this.pad(this.date.getHours(), 2),\n H: () => this.date.getHours().toString(),\n //\n hh: () => this.pad((this.date.getHours() % 12 || 12), 2),\n h: () => (this.date.getHours() % 12 || 12).toString(),\n //\n A: () => (this.date.getHours() < 12) ? 'am' : 'pm',\n a: () => (this.date.getHours() < 12) ? 'am' : 'pm',\n };\n\n format(\n format: string = AXConfig.get('dateTime.shortDateFormat')\n ): string {\n const re = new RegExp(_.orderBy(Object.keys(this._formatKeys), c => c.length, ['desc']).join(\"|\"), \"gi\");\n return format.replace(re, (matched) => {\n return this._formatKeys[matched]();\n });\n }\n\n private pad(n, width, z = '0') {\n n = n + '';\n return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;\n }\n\n toString(format: string = AXConfig.get('dateTime.shortDateFormat')): string {\n return this.format(format);\n }\n\n equal(value: Date | AXDateTime, unit: TimeUnit = 'day') {\n return this.compare(value, unit) == 0;\n }\n\n compare(value: Date | AXDateTime, unit: TimeUnit = 'day') {\n const val = AXDateTime.convert(value, this.calendar.name());\n const func = (v1: number, v2: number) => {\n if (v1 == v2) {\n return 0;\n } else if (v1 > v2) {\n return 1;\n } else {\n return -1;\n }\n }\n let p = 0;\n switch (unit) {\n case 'year':\n return func(this.year, val.year);\n case 'week':\n p = this.compare(val, 'year');\n return p == 0 ? func(this.weekOfYear, val.weekOfYear) : p;\n case 'month':\n p = this.compare(val, 'year');\n return p == 0 ? func(this.monthOfYear, val.monthOfYear) : p;\n case 'day':\n p = this.compare(val, 'year');\n return p == 0 ? func(this.dayOfYear, val.dayOfYear) : p;\n case 'hour':\n p = this.compare(val, 'day');\n return p == 0 ? func(this.hour, val.hour) : p;\n case 'minute':\n p = this.compare(val, 'hour');\n return p == 0 ? func(this.minute, val.minute) : p;\n case 'second':\n p = this.compare(val, 'minute');\n return p == 0 ? func(this.second, val.second) : p;\n default:\n return func(this.date.getTime(), val.date.getTime());\n }\n\n }\n\n convert(calendar: string) {\n return AXDateTime.convert(this, calendar);\n }\n}\n\nexport class AXCalendarMonth {\n private _range: AXDateTimeRange;\n public get range(): AXDateTimeRange {\n return this._range;\n }\n public set range(v: AXDateTimeRange) {\n this._range = v;\n }\n\n constructor(date: AXDateTime) {\n this.index = date.date.getMonth();\n this.name = date.format('MMMM');\n this.range = new AXDateTimeRange(\n new AXDateTime(date.startOf('month').date, date.calendar),\n new AXDateTime(date.endOf('month').date, date.calendar)\n );\n }\n\n private readonly index: number;\n private readonly name: string;\n}\n\nexport interface AXTimeSpanTotal {\n miliseconds: number;\n seconds: number;\n minutes: number;\n hours: number;\n days: number;\n weeks: number;\n months: number;\n years: number;\n}\n\nexport interface AXTimeSpan {\n miliseconds: number;\n seconds: number;\n minutes: number;\n hours: number;\n days: number;\n months: number;\n years: number;\n total: AXTimeSpanTotal;\n}\n\nexport class AXDateTimeRange {\n private _startTime: AXDateTime;\n private _endTime: AXDateTime;\n\n public get startTime(): AXDateTime {\n return this._startTime;\n }\n\n public get endTime(): AXDateTime {\n return this._endTime;\n }\n\n constructor(startTime: AXDateTime, endTime: AXDateTime) {\n this._startTime = startTime;\n this._endTime = endTime;\n }\n\n duration(): AXTimeSpan {\n const result: AXTimeSpan = {\n miliseconds: 0,\n seconds: 0,\n minutes: 0,\n hours: 0,\n days: 0,\n months: 0,\n years: 0,\n total: {\n miliseconds: 0,\n seconds: 0,\n minutes: 0,\n hours: 0,\n days: 0,\n weeks: 0,\n months: 0,\n years: 0,\n },\n };\n\n const one_second = 1000;\n const one_min = one_second * 60;\n const one_hour = one_min * 60;\n const one_day = one_hour * 24;\n const one_week = one_day * 7;\n const one_year = 365.25 * one_day;\n const one_month = one_year / 12;\n const startTime = this._startTime.date.getTime();\n const endTime = this._endTime.date.getTime();\n const diff = Math.abs(endTime - startTime);\n //\n result.total.miliseconds = diff;\n result.total.seconds = Number((diff / one_second).toFixed(2));\n result.total.minutes = Number((diff / one_min).toFixed(2));\n result.total.hours = Number((diff / one_hour).toFixed(2));\n result.total.days = Number((diff / one_day).toFixed(2));\n result.total.weeks = Number((diff / one_week).toFixed(2));\n //\n // let months = (this.endTime.year - this.startTime.year) * 12;\n // months += this.endTime.monthOfYear - this.startTime.monthOfYear + 1;\n // if (this.endTime.dayOfYear < this.startTime.dayOfYear) {\n // months--;\n // }\n // result.total.months = Math.abs(months);\n // TODO: review\n result.total.months = Number((diff / one_month).toFixed(2));\n result.total.years = Number((diff / one_year).toFixed(2));\n //\n result.miliseconds = result.total.miliseconds % 1000;\n result.seconds = Number((result.total.seconds % 60).toFixed(0));\n result.minutes = Number((result.total.minutes % 60).toFixed(0));\n result.hours = Number((result.total.hours % 24).toFixed(0));\n // TODO: review\n result.days = Number((result.total.days % 30.4).toFixed(0));\n result.months = Number((result.total.months % 12).toFixed(0));\n result.years = Number(result.total.years.toFixed(0));\n return result;\n }\n\n enumurate(unit: TimeUnit = 'day', amount: number = 1): AXDateTime[] {\n const result: AXDateTime[] = [];\n let item = this._startTime.clone();\n while (item.compare(this._endTime, unit) < 1) {\n if (!result.some(c => c.equal(item, unit))) {\n result.push(item);\n }\n item = item.add(unit, amount)\n }\n return result;\n }\n\n includes(value: AXDateTime, unit: TimeUnit = 'day'): boolean {\n // TODO: ??\n return true;\n }\n\n // getViewCompaire(view) {\n // switch (view) {\n // case 'day':\n // return 'YMD';\n // case 'month':\n // return 'YM';\n // case 'year':\n // return 'Y';\n // }\n // }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { AXConfig } from '@acorex/core/config';\nimport { AXDateTime } from './datetime.class';\n\n@Pipe({ name: 'axDate' })\nexport class AXDateTimePipe implements PipeTransform {\n constructor() { }\n\n transform(value: any, format?: string, calendar?: string): string {\n if (value == null) {\n return '';\n }\n const date: AXDateTime = value instanceof AXDateTime ? value.clone() : AXDateTime.convert(value, calendar);\n if (!format) {\n return date.format(AXConfig.get('dateTime.shortDateFormat'));\n }\n else {\n return date.format(format);\n }\n }\n}","import { AXCalendar, AXDateTime, AXDateValue, TimeUnit } from \"./datetime.class\";\n\nexport class GeorgianCalendar implements AXCalendar {\n\n monthNames = [\n \"January\", \"February\", \"March\",\n \"April\", \"May\", \"June\", \"July\",\n \"August\", \"September\", \"October\",\n \"November\", \"December\"\n ];\n\n monthShortNames = [\n \"Jan\", \"Feb\", \"Mar\",\n \"Apr\", \"May\", \"Jun\", \"Jul\",\n \"Aug\", \"Sep\", \"Oct\",\n \"Nov\", \"Dec\"\n ];\n\n dayNames = [\n \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\",\n \"Thursday\", \"Friday\", \"Saturday\"\n ];\n\n dayShortNames = [\n \"Sun\", \"Mon\", \"Tue\", \"Wed\",\n \"Thu\", \"Fri\", \"Sat\"\n ];\n\n\n create(value: AXDateValue): AXDateTime {\n return new AXDateTime(new Date(value.year, value.month - 1, value.date, value.hours || 0, value.minutes || 0, value.seconds || 0, value.ms || 0), this.name());\n }\n\n name(): string {\n return 'gregorian'\n }\n\n dayOfMonth(date: Date): number {\n return date.getDate();\n }\n\n dayOfYear(date: Date): number {\n let result = 0;\n let m = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n if (this.isLeap(date)) {\n m[1] = 29;\n }\n for (let i = 0; i < date.getMonth(); i++) {\n result = result + m[i];\n }\n result += date.getDate();\n return result;\n }\n\n dayOfWeek(date: Date): number {\n return date.getDay() + 1;\n }\n\n weekOfYear(date: Date): number {\n const firstDay = new AXDateTime(date).startOf('year');\n return Math.ceil((((date.getTime() - firstDay.date.getTime()) / 86400000) + firstDay.date.getDay() + 1) / 7);\n }\n\n year(date: Date): number {\n return date.getFullYear();\n }\n\n monthOfYear(date: Date): number {\n return date.getMonth() + 1;\n }\n\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime {\n let value = date.valueOf();\n switch (unit) {\n case 'second':\n value += 1000 * amount;\n break\n case 'minute':\n value += 60000 * amount;\n break\n case 'hour':\n value += 3600000 * amount;\n break\n case 'month':\n const v = new Date(value);\n var mo = date.getMonth();\n var yr = date.getFullYear();\n mo = (mo + amount) % 12;\n if (0 > mo) {\n yr += (date.getMonth() + amount - mo - 12) / 12;\n mo += 12;\n }\n else\n yr += ((date.getMonth() + amount - mo) / 12);\n v.setMonth(mo);\n v.setFullYear(yr);\n value = v.valueOf();\n break\n case 'week':\n value += 7 * 86400000 * amount;\n break\n case 'year':\n const yv = new Date(value);\n yv.setFullYear(yv.getFullYear() + amount);\n value = yv.valueOf();\n break\n case 'day':\n default:\n value += 86400000 * amount;\n }\n return new AXDateTime(new Date(value), this.name());\n }\n\n set(date: Date, unit: TimeUnit, value: number): AXDateTime {\n const clone = new Date(date.valueOf());\n switch (unit) {\n case 'second':\n clone.setHours(clone.getHours(), clone.getMinutes(), value, clone.getMilliseconds());\n break;\n case 'minute':\n clone.setHours(clone.getHours(), value, clone.getSeconds(), clone.getMilliseconds());\n break;\n case 'hour':\n clone.setHours(value, clone.getMinutes(), clone.getSeconds(), clone.getMilliseconds());\n break;\n default:\n case 'day':\n clone.setDate(value);\n break;\n case \"week\":\n break;\n case \"month\":\n clone.setMonth(Math.max(0, value - 1));\n break;\n case \"year\":\n clone.setFullYear(value);\n break;\n }\n return new AXDateTime(clone, this.name());\n }\n\n startOf(date: Date, unit: TimeUnit): AXDateTime {\n const clone = new Date(date.valueOf());\n switch (unit) {\n case 'second':\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 0);\n return new AXDateTime(clone, this.name());\n case 'minute':\n clone.setHours(clone.getHours(), clone.getMinutes(), 0, 0);\n return new AXDateTime(clone, this.name());\n case 'hour':\n clone.setHours(clone.getHours(), 0, 0, 0);\n return new AXDateTime(clone, this.name());\n default:\n case 'day':\n clone.setHours(0, 0, 0, 0);\n return new AXDateTime(clone, this.name());\n case \"week\":\n const index = 0;\n const start = index >= 0 ? index : 0;\n const day = clone.getDay();\n const diff = clone.getDate() - day + (start > day ? start - 7 : start);\n clone.setDate(diff);\n return new AXDateTime(clone, this.name()).startOf('day');\n case \"month\":\n clone.setDate(1)\n return new AXDateTime(clone, this.name()).startOf('day');\n case \"year\":\n clone.setMonth(0);\n clone.setDate(1);\n return new AXDateTime(clone, this.name()).startOf('day');\n }\n }\n\n endOf(date: Date, unit: TimeUnit): AXDateTime {\n const clone = new Date(date.valueOf());\n switch (unit) {\n case 'second':\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 999);\n return new AXDateTime(clone, this.name());\n case 'minute':\n clone.setHours(clone.getHours(), clone.getMinutes(), 59, 999);\n return new AXDateTime(clone, this.name());\n case 'hour':\n clone.setHours(clone.getHours(), 59, 59, 999);\n return new AXDateTime(clone, this.name());\n default:\n case 'day':\n clone.setHours(23, 59, 59, 999);\n return new AXDateTime(clone, this.name());\n case 'week':\n return this.startOf(date, 'week').add('day', 6).endOf('day');\n case 'month':\n return new AXDateTime(new Date(date.getFullYear(), date.getMonth() + 1, 0), this.name()).endOf('day');\n case \"year\":\n clone.setMonth(11);\n return new AXDateTime(clone, this.name()).endOf('month');\n }\n }\n\n isLeap(date: Date) {\n let leapYear = new Date(date.getFullYear(), 1, 29);\n return leapYear.getDate() == 29;\n }\n}","import { AXCalendar, AXDateTime, AXDateValue, TimeUnit } from \"./datetime.class\";\n\nexport class JalaliCalendar implements AXCalendar {\n\n monthNames = (\"فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند\").split(\"_\");\n\n monthShortNames = (\"فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند\").split(\"_\");\n\n dayNames = (\"شنبه_یکشنبه_دوشنبه_سه شنبه_چهارشنبه_پنج شنبه_جمعه\").split(\"_\");\n\n dayShortNames = \"ش_ی_د_س_چ_پ_ج\".split(\"_\");\n\n\n create(value: AXDateValue): AXDateTime {\n const a = this.toGregorian(value.year, value.month, value.date);\n return new AXDateTime(new Date(a.getFullYear(), a.getMonth(), a.getDate(), value.hours || 0, value.minutes || 0, value.seconds || 0, value.ms || 0), this.name());\n }\n\n name(): string {\n return 'jalali'\n }\n\n dayOfMonth(date: Date): number {\n return this.toJalali(date).day;\n }\n\n dayOfYear(date: Date): number {\n const j = this.toJalali(date);\n return (j.month <= 6 ? ((j.month - 1) * 31) : ((6 * 31) + (j.month - 7) * 30)) + j.day;\n }\n\n dayOfWeek(date: Date): number {\n return date.getDay() == 6 ? 1 : date.getDay() + 2;\n }\n\n weekOfYear(date: Date): number {\n //TODO : apply jalali\n const firstDay = new AXDateTime(date).startOf('year');\n return Math.ceil((((date.getTime() - firstDay.date.getTime()) / 86400000) + firstDay.date.getDay() + 1) / 7);\n }\n\n year(date: Date): number {\n return this.toJalali(date).year;\n }\n\n monthOfYear(date: Date): number {\n return this.toJalali(date).month;\n }\n\n\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime {\n let value = date.valueOf();\n switch (unit) {\n case 'second':\n value += 1000 * amount;\n break\n case 'minute':\n value += 60000 * amount;\n break\n case 'hour':\n value += 3600000 * amount;\n break\n case 'month':\n {\n const v = new Date(value);\n let jd = this.dayOfMonth(date);\n let jm = this.monthOfYear(date);\n let jy = this.year(date);\n const nm = (jm + amount);\n const ny = (nm % 12) ? Math.floor(nm / 12) : 0;\n jy += ny;\n jm = nm - (ny * 12);\n const vv = this.toGregorian(jy, jm, jd);\n v.setFullYear(vv.getFullYear());\n v.setMonth(vv.getMonth());\n v.setDate(vv.getDate());\n value = v.valueOf();\n break\n }\n case 'week':\n value += 7 * 86400000 * amount;\n break\n case 'year':\n {\n // const v = new Date(value);\n // v.setFullYear(v.getFullYear() + amount);\n // value = v.valueOf();\n // break\n const v = new Date(value);\n let jd = this.dayOfMonth(date);\n let jm = this.monthOfYear(date);\n let jy = this.year(date);\n const vv = this.toGregorian(jy + amount, jm, jd);\n v.setFullYear(vv.getFullYear());\n v.setMonth(vv.getMonth());\n v.setDate(vv.getDate());\n value = v.valueOf();\n break\n }\n case 'day':\n default:\n value += 86400000 * amount;\n }\n return new AXDateTime(new Date(value), this.name());\n }\n\n set(date: Date, unit: TimeUnit, value: number): AXDateTime {\n const clone = new Date(date.valueOf());\n const jDate = this.toJalali(clone);\n switch (unit) {\n case 'second':\n clone.setHours(clone.getHours(), clone.getMinutes(), value, clone.getMilliseconds());\n break;\n case 'minute':\n clone.setHours(clone.getHours(), value, clone.getSeconds(), clone.getMilliseconds());\n break;\n case 'hour':\n clone.setHours(value, clone.getMinutes(), clone.getSeconds(), clone.getMilliseconds());\n break;\n default:\n case 'day':\n const gDate = this.toGregorian(jDate.year, jDate.month, value);\n clone.setDate(gDate.getDate());\n break;\n case \"week\":\n break;\n case \"month\":\n const gDate2 = this.toGregorian(jDate.year, value, jDate.day);\n clone.setMonth(gDate2.getMonth());\n break;\n case \"year\":\n const gDate3 = this.toGregorian(value, jDate.month, jDate.day);\n clone.setFullYear(gDate3.getFullYear());\n break;\n }\n return new AXDateTime(clone, this.name());\n }\n\n startOf(date: Date, unit: TimeUnit): AXDateTime {\n const clone = new Date(date.valueOf());\n switch (unit) {\n case 'second':\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 0);\n return new AXDateTime(clone, this.name());\n case 'minute':\n clone.setHours(clone.getHours(), clone.getMinutes(), 0, 0);\n return new AXDateTime(clone, this.name());\n case 'hour':\n clone.setHours(clone.getHours(), 0, 0, 0);\n return new AXDateTime(clone, this.name());\n default:\n case 'day':\n clone.setHours(0, 0, 0, 0);\n return new AXDateTime(clone, this.name());\n case \"week\":\n return new AXDateTime(clone, this.name()).add('day', -this.dayOfWeek(clone) + 1).startOf('day');\n case \"month\":\n {\n const jy = this.year(date);\n const jm = this.monthOfYear(date);\n const gDate = this.toGregorian(jy, jm, 1);\n return new AXDateTime(gDate, this.name()).startOf('day');\n }\n case \"year\":\n {\n const jy = this.year(date);\n const gDate = this.toGregorian(jy, 1, 1);\n return new AXDateTime(gDate, this.name()).startOf('day');\n }\n }\n }\n\n endOf(date: Date, unit: TimeUnit): AXDateTime {\n const clone = new Date(date.valueOf());\n switch (unit) {\n case 'second':\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 999);\n return new AXDateTime(clone, this.name());\n case 'minute':\n clone.setHours(clone.getHours(), clone.getMinutes(), 59, 999);\n return new AXDateTime(clone, this.name());\n case 'hour':\n clone.setHours(clone.getHours(), 59, 59, 999);\n return new AXDateTime(clone, this.name());\n default:\n case 'day':\n clone.setHours(23, 59, 59, 999);\n return new AXDateTime(clone, this.name());\n case 'week':\n {\n return this.startOf(date, 'week').add('day', 6).endOf('day');\n }\n case 'month':\n {\n const jy = this.year(date);\n const jm = this.monthOfYear(date);\n const jd = this.monthLength(jy, jm);\n const gDate = this.toGregorian(jy, jm, jd);\n return new AXDateTime(gDate, this.name()).endOf('day');\n }\n case \"year\":\n let jy = this.year(date);\n const gDate = this.toGregorian(jy, 12, this.monthLength(jy, 12));\n return new AXDateTime(gDate, this.name()).endOf('day');\n }\n }\n\n\n\n toJalali(date: Date): { year: number, month: number, day: number } {\n const gy = date.getFullYear();\n const gm = date.getMonth() + 1;\n const gd = date.getDate();\n const r = this.d2j(this.g2d(gy, gm, gd))\n return {\n year: r.jy,\n month: r.jm,\n day: r.jd,\n }\n }\n\n /*\n Converts a Jalaali date to Gregorian.\n */\n toGregorian(jy, jm, jd) {\n const g = this.d2g(this.j2d(jy, jm, jd))\n return new Date(g.gy, g.gm - 1, g.gd);\n }\n\n /*\n Checks whether a Jalaali date is valid or not.\n */\n isValid(jy, jm, jd) {\n return jy >= -61 && jy <= 3177 &&\n jm >= 1 && jm <= 12 &&\n jd >= 1 && jd <= this.monthLength(jy, jm)\n }\n\n /*\n Is this a leap year or not?\n */\n isLeapYear(jy) {\n return this.jalCal(jy).leap === 0\n }\n\n /*\n Number of days in a given month in a Jalaali year.\n */\n monthLength(jy, jm) {\n if (jm <= 6) return 31\n if (jm <= 11) return 30\n if (this.isLeapYear(jy)) return 30\n return 29\n }\n\n\n private jalCal(jy) {\n // Jalaali years starting the 33-year rule.\n let breaks = [-61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210\n , 1635, 2060, 2097, 2192, 2262, 2324, 2394, 2456, 3178\n ]\n , bl = breaks.length\n , gy = jy + 621\n , leapJ = -14\n , jp = breaks[0]\n , jm\n , jump\n , leap\n , leapG\n , march\n , n\n , i\n\n if (jy < jp || jy >= breaks[bl - 1])\n throw new Error('Invalid Jalaali year ' + jy)\n\n // Find the limiting years for the Jalaali year jy.\n for (i = 1; i < bl; i += 1) {\n jm = breaks[i]\n jump = jm - jp\n if (jy < jm)\n break\n leapJ = leapJ + this.div(jump, 33) * 8 + this.div(this.mod(jump, 33), 4)\n jp = jm\n }\n n = jy - jp\n\n // Find the number of leap years from AD 621 to the beginning\n // of the current Jalaali year in the Persian calendar.\n leapJ = leapJ + this.div(n, 33) * 8 + this.div(this.mod(n, 33) + 3, 4)\n if (this.mod(jump, 33) === 4 && jump - n === 4)\n leapJ += 1\n\n // And the same in the Gregorian calendar (until the year gy).\n leapG = this.div(gy, 4) - this.div((this.div(gy, 100) + 1) * 3, 4) - 150\n\n // Determine the Gregorian date of Farvardin the 1st.\n march = 20 + leapJ - leapG\n\n // Find how many years have passed since the last leap year.\n if (jump - n < 6)\n n = n - jump + this.div(jump + 4, 33) * 33\n leap = this.mod(this.mod(n + 1, 33) - 1, 4)\n if (leap === -1) {\n leap = 4\n }\n\n return {\n leap: leap\n , gy: gy\n , march: march\n }\n }\n\n /*\n Converts a date of the Jalaali calendar to the Julian Day number.\n @param jy Jalaali year (1 to 3100)\n @param jm Jalaali month (1 to 12)\n @param jd Jalaali day (1 to 29/31)\n @return Julian Day number\n */\n private j2d(jy, jm, jd) {\n let r = this.jalCal(jy)\n return this.g2d(r.gy, 3, r.march) + (jm - 1) * 31 - this.div(jm, 7) * (jm - 7) + jd - 1\n }\n\n /*\n Converts the Julian Day number to a date in the Jalaali calendar.\n @param jdn Julian Day number\n @return\n jy: Jalaali year (1 to 3100)\n jm: Jalaali month (1 to 12)\n jd: Jalaali day (1 to 29/31)\n */\n private d2j(jdn) {\n let gy = this.d2g(jdn).gy // Calculate Gregorian year (gy).\n , jy = gy - 621\n , r = this.jalCal(jy)\n , jdn1f = this.g2d(gy, 3, r.march)\n , jd\n , jm\n , k\n\n // Find number of days that passed since 1 Farvardin.\n k = jdn - jdn1f\n if (k >= 0) {\n if (k <= 185) {\n // The first 6 months.\n jm = 1 + this.div(k, 31)\n jd = this.mod(k, 31) + 1\n return {\n jy: jy\n , jm: jm\n , jd: jd\n }\n } else {\n // The remaining months.\n k -= 186\n }\n } else {\n // Previous Jalaali year.\n jy -= 1\n k += 179\n if (r.leap === 1)\n k += 1\n }\n jm = 7 + this.div(k, 30)\n jd = this.mod(k, 30) + 1\n return {\n jy: jy\n , jm: jm\n , jd: jd\n }\n }\n\n\n private g2d(gy, gm, gd) {\n let d = this.div((gy + this.div(gm - 8, 6) + 100100) * 1461, 4)\n + this.div(153 * this.mod(gm + 9, 12) + 2, 5)\n + gd - 34840408\n d = d - this.div(this.div(gy + 100100 + this.div(gm - 8, 6), 100) * 3, 4) + 752\n return d\n }\n\n\n private d2g(jdn) {\n let j\n , i\n , gd\n , gm\n , gy\n j = 4 * jdn + 139361631\n j = j + this.div(this.div(4 * jdn + 183187720, 146097) * 3, 4) * 4 - 3908\n i = this.div(this.mod(j, 1461), 4) * 5 + 308\n gd = this.div(this.mod(i, 153), 5) + 1\n gm = this.mod(this.div(i, 153), 12) + 1\n gy = this.div(j, 1461) - 100100 + this.div(8 - gm, 6)\n return {\n gy: gy\n , gm: gm\n , gd: gd\n }\n }\n\n /*\n Utility helper functions.\n */\n private div(a, b) {\n return ~~(a / b)\n }\n\n private mod(a, b) {\n return a - ~~(a / b) * b\n }\n\n}","import { NgModule } from '@angular/core';\nimport { AXConfig } from '@acorex/core/config';\nimport { AXDateTimePipe } from './datetime.pipe';\nimport { GeorgianCalendar } from './georgian.calendar';\nimport { JalaliCalendar } from './jalali.calendar';\n\n\n@NgModule({\n imports: [],\n exports: [AXDateTimePipe],\n declarations: [AXDateTimePipe],\n providers: [],\n})\nexport class AXDateTimeModule {\n\n constructor() {\n AXConfig.set({\n dateTime: {\n calendars: {\n jalali: {\n \"class\": new JalaliCalendar(),\n weekend: [6, 7]\n },\n gregorian: {\n \"class\": new GeorgianCalendar(),\n weekend: [7, 1]\n }\n },\n calendar: 'gregorian',\n shortDateFormat: 'DDDD, d MMM yyyy'\n }\n });\n\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
@@ -25,10 +25,10 @@ class AXEventService {
|
|
25
25
|
d.events = [];
|
26
26
|
}
|
27
27
|
}
|
28
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.
|
29
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.
|
28
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AXEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
29
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AXEventService, providedIn: 'root' });
|
30
30
|
}
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AXEventService, decorators: [{
|
32
32
|
type: Injectable,
|
33
33
|
args: [{ providedIn: 'root' }]
|
34
34
|
}] });
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-core-events.mjs","sources":["../../../../projects/acorex/core/events/src/event.service.ts","../../../../projects/acorex/core/events/acorex-core-events.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\
|
1
|
+
{"version":3,"file":"acorex-core-events.mjs","sources":["../../../../projects/acorex/core/events/src/event.service.ts","../../../../projects/acorex/core/events/acorex-core-events.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class AXEventService {\n private list: any[] = [];\n\n public broadcast(key: string, options?: any): void {\n const d = this.list.find(c => c.key === key);\n if (d) {\n d.events.forEach((c:any) => {\n c(options);\n });\n }\n }\n\n public on(key: string, callback: (options?: any) => void) {\n let d = this.list.find(c => c.key === key);\n if (!d) {\n d = { key, events: [] };\n this.list.push(d);\n }\n d.events.push(callback);\n }\n\n public destroy(key: string, callback: (options?: any) => void): void {\n const d = this.list.find(c => c.key === key);\n if (d) {\n d.events = [];\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAEA,MACa,cAAc,CAAA;IACf,IAAI,GAAU,EAAE,CAAC;IAElB,SAAS,CAAC,GAAW,EAAE,OAAa,EAAA;AACvC,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,EAAE;YACH,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAK,KAAI;gBACvB,CAAC,CAAC,OAAO,CAAC,CAAC;AACf,aAAC,CAAC,CAAC;AACN,SAAA;KACJ;IAEM,EAAE,CAAC,GAAW,EAAE,QAAiC,EAAA;AACpD,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,CAAC,EAAE;YACJ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrB,SAAA;AACD,QAAA,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC3B;IAEM,OAAO,CAAC,GAAW,EAAE,QAAiC,EAAA;AACzD,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,EAAE;AACH,YAAA,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;AACjB,SAAA;KACJ;uGA1BQ,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cADD,MAAM,EAAA,CAAA,CAAA;;2FACnB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACFlC;;AAEG;;;;"}
|
@@ -163,10 +163,10 @@ class AXFileService {
|
|
163
163
|
};
|
164
164
|
reader.readAsDataURL(blob);
|
165
165
|
});
|
166
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.
|
167
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.
|
166
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AXFileService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
167
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AXFileService, providedIn: 'root' });
|
168
168
|
}
|
169
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.
|
169
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AXFileService, decorators: [{
|
170
170
|
type: Injectable,
|
171
171
|
args: [{ providedIn: 'root' }]
|
172
172
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-core-file.mjs","sources":["../../../../projects/acorex/core/file/src/file-download-ref.class.ts","../../../../projects/acorex/core/file/src/file-download-result.class.ts","../../../../projects/acorex/core/file/src/file-upload-ref.class.ts","../../../../projects/acorex/core/file/src/file.service.ts","../../../../projects/acorex/core/file/acorex-core-file.ts"],"sourcesContent":["import { AXFileDownloadResult } from \"./file-download-result.class\";\r\n\r\nexport class AXFileDownloadRef extends Promise<AXFileDownloadResult>\r\n{\r\n public abortMethod: () => void;\r\n constructor(executor: (resolve: (value?: PromiseLike<AXFileDownloadResult>) => void, reject: (reason?: any) => void) => void) {\r\n super(executor);\r\n\r\n }\r\n //abort the operation\r\n public abort() {\r\n if (this.abortMethod) {\r\n this.abortMethod();\r\n }\r\n }\r\n}","export class AXFileDownloadResult {\r\n _response: Blob;\r\n\r\n constructor(response: Blob) {\r\n this._response = response;\r\n }\r\n\r\n save(filename?: string): Promise<void> {\r\n this._defaultBrowserDownload(filename);\r\n return Promise.resolve();\r\n // else {\r\n // return new Promise((resolve, reject) => {\r\n // const button = document.createElement(\"button\");\r\n // button.addEventListener('click', async () => {\r\n // button.remove();\r\n // const opts = {\r\n // types: [{\r\n // description: 'Save File',\r\n // suggestedName: filename\r\n // // accept: {'text/plain': ['.txt']},\r\n // }],\r\n // };\r\n // const result = await window['showSaveFilePicker'](opts);\r\n // console.log(result);\r\n\r\n // resolve();\r\n // });\r\n // button.click();\r\n // });\r\n\r\n // }\r\n }\r\n\r\n blob() {\r\n return this._response;\r\n }\r\n\r\n base64(): Promise<string> {\r\n return new Promise((resolve, reject) => {\r\n var reader = new window.FileReader();\r\n reader.onloadend = () => resolve(reader.result as string);\r\n reader.onerror = e => reject(e);\r\n reader.readAsDataURL(this._response);\r\n });\r\n }\r\n\r\n private _defaultBrowserDownload(filename: string = 'download') {\r\n const link = document.createElement('a');\r\n link.href = URL.createObjectURL(this._response);\r\n link.download = filename;\r\n link.click();\r\n }\r\n}\r\n","export class AXFileUploadRef<T = any> extends Promise<T>\r\n{\r\n public abortMethod: () => void;\r\n constructor(executor: (resolve: (value?: PromiseLike<T>) => void, reject: (reason?: any) => void) => void) {\r\n super(executor);\r\n\r\n }\r\n //abort the operation\r\n public abort() {\r\n if (this.abortMethod) {\r\n this.abortMethod();\r\n }\r\n }\r\n}","import { HttpClient, HttpContext, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { AXFileDownloadRef } from './file-download-ref.class';\r\nimport { AXFileDownloadResult } from './file-download-result.class';\r\nimport { AXFileUploadRef } from './file-upload-ref.class';\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXFileService {\r\n constructor(private _httpClient: HttpClient) { }\r\n\r\n public download(request: string | Observable<Blob>): AXFileDownloadRef {\r\n let s: Subscription;\r\n const promiseFunc = (resolve, reject) => {\r\n //TODO: add custome http request\r\n //const headers = new HttpHeaders().set('authorization','Bearer '+token);\r\n let b: Observable<Blob>;\r\n if (typeof request === 'string') {\r\n b = this._httpClient.get(request, { responseType: 'blob' });\r\n }\r\n else if (b instanceof Observable<Blob>) {\r\n b = request;\r\n }\r\n s = b?.subscribe({\r\n next: (v) => resolve(new AXFileDownloadResult(v)),\r\n error: (e) => reject(e)\r\n })\r\n };\r\n\r\n const a = new AXFileDownloadRef(promiseFunc);\r\n a.abort = () => {\r\n s?.unsubscribe();\r\n };\r\n\r\n return a;\r\n }\r\n\r\n public upload<T = any>(url: string, files: File[]): AXFileUploadRef<T> {\r\n let s: Subscription;\r\n let formData = new FormData();\r\n files.forEach(f => {\r\n formData.append(\"files\", f);\r\n })\r\n const promiseFunc = (resolve, reject) => {\r\n let b: Observable<T>;\r\n b = this._httpClient.post<T>(url, formData);\r\n\r\n s = b?.subscribe({\r\n next: (v) => resolve(v),\r\n error: (e) => reject(e)\r\n })\r\n };\r\n\r\n const a = new AXFileUploadRef(promiseFunc);\r\n a.abort = () => {\r\n s?.unsubscribe();\r\n };\r\n return a;\r\n }\r\n\r\n public choose(options?: { accept?: string, multiple?: boolean }): Promise<File[]> {\r\n return new Promise<File[]>((resolve, reject) => {\r\n options = Object.assign({ multiple: false }, options);\r\n const input = document.createElement(\"input\");\r\n input.style.display = 'none';\r\n document.body.appendChild(input);\r\n input.type = 'file';\r\n input.accept = options.accept;\r\n input.multiple = options.multiple;\r\n //\r\n const onError = (e) => {\r\n reject(e);\r\n document.body.removeChild(input)\r\n input.remove();\r\n input.removeEventListener('change', onChange);\r\n input.removeEventListener('error', onError);\r\n }\r\n //\r\n const onChange = () => {\r\n resolve(Array.from(input.files));\r\n document.body.removeChild(input)\r\n input.remove();\r\n input.removeEventListener('change', onChange);\r\n input.removeEventListener('error', onError);\r\n }\r\n //\r\n input.addEventListener('change', onChange);\r\n input.addEventListener('error', onError);\r\n input.click();\r\n });\r\n }\r\n\r\n blobToBase64 = (blob: Blob) => new Promise<string>((resolve, reject) => {\r\n const reader = new FileReader;\r\n reader.onerror = reject;\r\n reader.onload = () => {\r\n resolve(reader.result as string);\r\n };\r\n reader.readAsDataURL(blob);\r\n });\r\n}\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-core-file.mjs","sources":["../../../../projects/acorex/core/file/src/file-download-ref.class.ts","../../../../projects/acorex/core/file/src/file-download-result.class.ts","../../../../projects/acorex/core/file/src/file-upload-ref.class.ts","../../../../projects/acorex/core/file/src/file.service.ts","../../../../projects/acorex/core/file/acorex-core-file.ts"],"sourcesContent":["import { AXFileDownloadResult } from \"./file-download-result.class\";\n\nexport class AXFileDownloadRef extends Promise<AXFileDownloadResult>\n{\n public abortMethod: () => void;\n constructor(executor: (resolve: (value?: PromiseLike<AXFileDownloadResult>) => void, reject: (reason?: any) => void) => void) {\n super(executor);\n\n }\n //abort the operation\n public abort() {\n if (this.abortMethod) {\n this.abortMethod();\n }\n }\n}","export class AXFileDownloadResult {\n _response: Blob;\n\n constructor(response: Blob) {\n this._response = response;\n }\n\n save(filename?: string): Promise<void> {\n this._defaultBrowserDownload(filename);\n return Promise.resolve();\n // else {\n // return new Promise((resolve, reject) => {\n // const button = document.createElement(\"button\");\n // button.addEventListener('click', async () => {\n // button.remove();\n // const opts = {\n // types: [{\n // description: 'Save File',\n // suggestedName: filename\n // // accept: {'text/plain': ['.txt']},\n // }],\n // };\n // const result = await window['showSaveFilePicker'](opts);\n // console.log(result);\n\n // resolve();\n // });\n // button.click();\n // });\n\n // }\n }\n\n blob() {\n return this._response;\n }\n\n base64(): Promise<string> {\n return new Promise((resolve, reject) => {\n var reader = new window.FileReader();\n reader.onloadend = () => resolve(reader.result as string);\n reader.onerror = e => reject(e);\n reader.readAsDataURL(this._response);\n });\n }\n\n private _defaultBrowserDownload(filename: string = 'download') {\n const link = document.createElement('a');\n link.href = URL.createObjectURL(this._response);\n link.download = filename;\n link.click();\n }\n}\n","export class AXFileUploadRef<T = any> extends Promise<T>\n{\n public abortMethod: () => void;\n constructor(executor: (resolve: (value?: PromiseLike<T>) => void, reject: (reason?: any) => void) => void) {\n super(executor);\n\n }\n //abort the operation\n public abort() {\n if (this.abortMethod) {\n this.abortMethod();\n }\n }\n}","import { HttpClient, HttpContext, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { AXFileDownloadRef } from './file-download-ref.class';\nimport { AXFileDownloadResult } from './file-download-result.class';\nimport { AXFileUploadRef } from './file-upload-ref.class';\n\n\n@Injectable({ providedIn: 'root' })\nexport class AXFileService {\n constructor(private _httpClient: HttpClient) { }\n\n public download(request: string | Observable<Blob>): AXFileDownloadRef {\n let s: Subscription;\n const promiseFunc = (resolve, reject) => {\n //TODO: add custome http request\n //const headers = new HttpHeaders().set('authorization','Bearer '+token);\n let b: Observable<Blob>;\n if (typeof request === 'string') {\n b = this._httpClient.get(request, { responseType: 'blob' });\n }\n else if (b instanceof Observable<Blob>) {\n b = request;\n }\n s = b?.subscribe({\n next: (v) => resolve(new AXFileDownloadResult(v)),\n error: (e) => reject(e)\n })\n };\n\n const a = new AXFileDownloadRef(promiseFunc);\n a.abort = () => {\n s?.unsubscribe();\n };\n\n return a;\n }\n\n public upload<T = any>(url: string, files: File[]): AXFileUploadRef<T> {\n let s: Subscription;\n let formData = new FormData();\n files.forEach(f => {\n formData.append(\"files\", f);\n })\n const promiseFunc = (resolve, reject) => {\n let b: Observable<T>;\n b = this._httpClient.post<T>(url, formData);\n\n s = b?.subscribe({\n next: (v) => resolve(v),\n error: (e) => reject(e)\n })\n };\n\n const a = new AXFileUploadRef(promiseFunc);\n a.abort = () => {\n s?.unsubscribe();\n };\n return a;\n }\n\n public choose(options?: { accept?: string, multiple?: boolean }): Promise<File[]> {\n return new Promise<File[]>((resolve, reject) => {\n options = Object.assign({ multiple: false }, options);\n const input = document.createElement(\"input\");\n input.style.display = 'none';\n document.body.appendChild(input);\n input.type = 'file';\n input.accept = options.accept;\n input.multiple = options.multiple;\n //\n const onError = (e) => {\n reject(e);\n document.body.removeChild(input)\n input.remove();\n input.removeEventListener('change', onChange);\n input.removeEventListener('error', onError);\n }\n //\n const onChange = () => {\n resolve(Array.from(input.files));\n document.body.removeChild(input)\n input.remove();\n input.removeEventListener('change', onChange);\n input.removeEventListener('error', onError);\n }\n //\n input.addEventListener('change', onChange);\n input.addEventListener('error', onError);\n input.click();\n });\n }\n\n blobToBase64 = (blob: Blob) => new Promise<string>((resolve, reject) => {\n const reader = new FileReader;\n reader.onerror = reject;\n reader.onload = () => {\n resolve(reader.result as string);\n };\n reader.readAsDataURL(blob);\n });\n}\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
@@ -168,24 +168,24 @@ class AXHttpService {
|
|
168
168
|
// };
|
169
169
|
// }
|
170
170
|
}
|
171
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.
|
172
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.
|
171
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AXHttpService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
172
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AXHttpService, providedIn: 'root' });
|
173
173
|
}
|
174
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.
|
174
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AXHttpService, decorators: [{
|
175
175
|
type: Injectable,
|
176
176
|
args: [{ providedIn: 'root' }]
|
177
177
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i0.Injector }]; } });
|
178
178
|
|
179
179
|
class AXHttpModule {
|
180
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.
|
181
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.
|
180
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AXHttpModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
181
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: AXHttpModule, imports: [CommonModule,
|
182
182
|
HttpClientModule], exports: [HttpClientModule] });
|
183
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.
|
183
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AXHttpModule, providers: [
|
184
184
|
AXHttpService
|
185
185
|
], imports: [CommonModule,
|
186
186
|
HttpClientModule, HttpClientModule] });
|
187
187
|
}
|
188
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.
|
188
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AXHttpModule, decorators: [{
|
189
189
|
type: NgModule,
|
190
190
|
args: [{
|
191
191
|
declarations: [],
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-core-http.mjs","sources":["../../../../projects/acorex/core/http/src/http-events.interceptor.ts","../../../../projects/acorex/core/http/src/http-result.class.ts","../../../../projects/acorex/core/http/src/http.service.ts","../../../../projects/acorex/core/http/src/http.module.ts","../../../../projects/acorex/core/http/acorex-core-http.ts"],"sourcesContent":["import { IHttpError } from './http-error.class';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { AXHttpRequestOptions } from './http-request.class';\r\n\r\nexport const AX_HTTP_EVENT_INTERCEPTOR = new InjectionToken<AXHttpEventInterceptor>('ax.http.events');\r\n\r\nexport interface AXHttpEventInterceptor {\r\n begin(request: AXHttpRequestOptions): Promise<AXHttpRequestOptions>;\r\n success(request: AXHttpRequestOptions, result: any): Promise<any>;\r\n complete(request: AXHttpRequestOptions);\r\n error(request: AXHttpRequestOptions, error: IHttpError);\r\n}\r\n\r\n\r\n","import { IHttpError } from './http-error.class';\r\n\r\nexport class HttpResult<T> {\r\n private _executor: (result: (e?: T) => void, error: (e?: IHttpError) => void, complete: () => void) => void;\r\n constructor(\r\n executor: (\r\n result: (e?: T) => void,\r\n error: (e?: IHttpError) => void,\r\n complete: () => void\r\n ) => void\r\n ) {\r\n this._executor = executor;\r\n setTimeout(() => {\r\n this._executor(this.resultAction, this.errorAction, this.completeAction);\r\n }, 50);\r\n }\r\n\r\n private resultAction: (e?: T) => void;\r\n private errorAction: (e?: IHttpError) => void;\r\n private completeAction: () => void;\r\n\r\n result(action: (e?: T) => void): HttpResult<T> { \r\n this.resultAction = action;\r\n return this;\r\n }\r\n error(action: (e?: IHttpError) => void): HttpResult<T> {\r\n this.errorAction = action;\r\n return this;\r\n }\r\n complete(action: () => void): HttpResult<T> {\r\n this.completeAction = action;\r\n return this;\r\n }\r\n}","import { Injectable, Injector, InjectFlags } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams, HttpErrorResponse } from '@angular/common/http';\r\nimport { HttpResult } from './http-result.class';\r\nimport { IHttpError } from './http-error.class';\r\nimport { AXHttpRequestOptions } from './http-request.class';\r\nimport {\r\n AX_HTTP_EVENT_INTERCEPTOR, AXHttpEventInterceptor\r\n} from './http-events.interceptor';\r\n// import { catchError, retry, retryWhen, mergeMap, delay, switchMap, scan, takeWhile, flatMap } from 'rxjs/operators';\r\n// import { of, concat, throwError } from 'rxjs';\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXHttpService {\r\n\r\n private interceptor: AXHttpEventInterceptor;\r\n constructor(private http: HttpClient, private injector: Injector) {\r\n this.interceptor = this.injector.get(AX_HTTP_EVENT_INTERCEPTOR);\r\n }\r\n\r\n\r\n get<T>(url: string, config: AXHttpRequestOptions = {}): HttpResult<T> {\r\n config.url = url;\r\n config.method = \"get\";\r\n return this.request(config);\r\n }\r\n\r\n post<T>(url: string, config: AXHttpRequestOptions = {}): HttpResult<T> {\r\n config.url = url;\r\n config.method = \"post\";\r\n return this.request(config);\r\n }\r\n\r\n delete<T>(url: string, config: AXHttpRequestOptions = {}): HttpResult<T> {\r\n config.url = url;\r\n config.method = \"delete\";\r\n return this.request(config);\r\n }\r\n\r\n put<T>(url: string, config: AXHttpRequestOptions = {}): HttpResult<T> {\r\n config.url = url;\r\n config.method = \"put\";\r\n return this.request(config);\r\n }\r\n\r\n\r\n request<T>(config: AXHttpRequestOptions): HttpResult<T> {\r\n return new HttpResult<T>((result?, error?, complete?) => {\r\n this.handleBegin(config).then(c => {\r\n this.http\r\n //TODO: check ts error\r\n //@ts-ignore\r\n .request<T>(config.method, config.url, this.mapOptions(config))\r\n //.pipe(this.retry)\r\n .subscribe(data => {\r\n this.handleResult(data, result, complete, config);\r\n }, c => {\r\n this.handleError(c, error, complete, config);\r\n });\r\n });\r\n })\r\n }\r\n\r\n\r\n private handleResult(data, result, complete, config: AXHttpRequestOptions) {\r\n if (this.interceptor) {\r\n this.interceptor.success(config, data).then(c => {\r\n if (result)\r\n result(c);\r\n this.handleComplete(complete, config);\r\n });\r\n }\r\n else {\r\n //\r\n if (result)\r\n result(data);\r\n this.handleComplete(complete, config);\r\n }\r\n }\r\n\r\n private handleBegin(config: AXHttpRequestOptions): Promise<AXHttpRequestOptions> {\r\n return new Promise((resolve) => {\r\n if (!config.headers)\r\n config.headers = {};\r\n if (!config.params)\r\n config.params = {};\r\n //\r\n if (this.interceptor) {\r\n this.interceptor.begin(config).then(c => {\r\n resolve(c);\r\n });\r\n }\r\n else {\r\n resolve(config)\r\n }\r\n })\r\n }\r\n\r\n private handleComplete(complete: Function, config: AXHttpRequestOptions) {\r\n if (complete)\r\n complete();\r\n if (this.interceptor)\r\n this.interceptor.complete(config);\r\n }\r\n\r\n private handleError(c: HttpErrorResponse, error: Function, complete: Function, config: AXHttpRequestOptions) {\r\n let r: IHttpError = {\r\n message: c.message,\r\n status: c.status,\r\n code: c.status?.toString(),\r\n handled: false,\r\n error: c.error\r\n }\r\n if (error) {\r\n error(r);\r\n }\r\n if (!r.handled) {\r\n if (this.interceptor)\r\n this.interceptor.error(config, r);\r\n }\r\n this.handleComplete(complete, config);\r\n }\r\n\r\n private mapOptions(options: AXHttpRequestOptions) {\r\n let headers = new HttpHeaders();\r\n\r\n for (const key in options.headers) {\r\n if (options.headers.hasOwnProperty(key)) {\r\n const value = options.headers[key];\r\n headers = headers.set(key, value)\r\n }\r\n }\r\n let params = new HttpParams();\r\n for (const key in options.params) {\r\n if (options.params.hasOwnProperty(key)) {\r\n const value = options.params[key];\r\n params = params.set(key, value);\r\n }\r\n }\r\n return {\r\n headers: headers,\r\n params: params,\r\n body: options.body,\r\n responseType: options.responseType || 'json'\r\n };\r\n // if (options.method == \"get\") {\r\n // return {\r\n // headers: headers,\r\n // params: params\r\n // };\r\n // }\r\n // else {\r\n // return {\r\n // headers: headers,\r\n // params: params,\r\n // body: options.body\r\n // };\r\n // }\r\n }\r\n\r\n}","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { AXHttpService } from './http.service';\r\n\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule\r\n ],\r\n exports: [HttpClientModule],\r\n providers: [\r\n AXHttpService\r\n ]\r\n})\r\nexport class AXHttpModule {\r\n // static forRoot(): ModuleWithProviders {\r\n // return {\r\n // ngModule: AXHttpModule,\r\n // providers: [AXHttpService]\r\n // };\r\n // }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-core-http.mjs","sources":["../../../../projects/acorex/core/http/src/http-events.interceptor.ts","../../../../projects/acorex/core/http/src/http-result.class.ts","../../../../projects/acorex/core/http/src/http.service.ts","../../../../projects/acorex/core/http/src/http.module.ts","../../../../projects/acorex/core/http/acorex-core-http.ts"],"sourcesContent":["import { IHttpError } from './http-error.class';\nimport { InjectionToken } from '@angular/core';\nimport { AXHttpRequestOptions } from './http-request.class';\n\nexport const AX_HTTP_EVENT_INTERCEPTOR = new InjectionToken<AXHttpEventInterceptor>('ax.http.events');\n\nexport interface AXHttpEventInterceptor {\n begin(request: AXHttpRequestOptions): Promise<AXHttpRequestOptions>;\n success(request: AXHttpRequestOptions, result: any): Promise<any>;\n complete(request: AXHttpRequestOptions);\n error(request: AXHttpRequestOptions, error: IHttpError);\n}\n\n\n","import { IHttpError } from './http-error.class';\n\nexport class HttpResult<T> {\n private _executor: (result: (e?: T) => void, error: (e?: IHttpError) => void, complete: () => void) => void;\n constructor(\n executor: (\n result: (e?: T) => void,\n error: (e?: IHttpError) => void,\n complete: () => void\n ) => void\n ) {\n this._executor = executor;\n setTimeout(() => {\n this._executor(this.resultAction, this.errorAction, this.completeAction);\n }, 50);\n }\n\n private resultAction: (e?: T) => void;\n private errorAction: (e?: IHttpError) => void;\n private completeAction: () => void;\n\n result(action: (e?: T) => void): HttpResult<T> { \n this.resultAction = action;\n return this;\n }\n error(action: (e?: IHttpError) => void): HttpResult<T> {\n this.errorAction = action;\n return this;\n }\n complete(action: () => void): HttpResult<T> {\n this.completeAction = action;\n return this;\n }\n}","import { Injectable, Injector, InjectFlags } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams, HttpErrorResponse } from '@angular/common/http';\nimport { HttpResult } from './http-result.class';\nimport { IHttpError } from './http-error.class';\nimport { AXHttpRequestOptions } from './http-request.class';\nimport {\n AX_HTTP_EVENT_INTERCEPTOR, AXHttpEventInterceptor\n} from './http-events.interceptor';\n// import { catchError, retry, retryWhen, mergeMap, delay, switchMap, scan, takeWhile, flatMap } from 'rxjs/operators';\n// import { of, concat, throwError } from 'rxjs';\n\n\n@Injectable({ providedIn: 'root' })\nexport class AXHttpService {\n\n private interceptor: AXHttpEventInterceptor;\n constructor(private http: HttpClient, private injector: Injector) {\n this.interceptor = this.injector.get(AX_HTTP_EVENT_INTERCEPTOR);\n }\n\n\n get<T>(url: string, config: AXHttpRequestOptions = {}): HttpResult<T> {\n config.url = url;\n config.method = \"get\";\n return this.request(config);\n }\n\n post<T>(url: string, config: AXHttpRequestOptions = {}): HttpResult<T> {\n config.url = url;\n config.method = \"post\";\n return this.request(config);\n }\n\n delete<T>(url: string, config: AXHttpRequestOptions = {}): HttpResult<T> {\n config.url = url;\n config.method = \"delete\";\n return this.request(config);\n }\n\n put<T>(url: string, config: AXHttpRequestOptions = {}): HttpResult<T> {\n config.url = url;\n config.method = \"put\";\n return this.request(config);\n }\n\n\n request<T>(config: AXHttpRequestOptions): HttpResult<T> {\n return new HttpResult<T>((result?, error?, complete?) => {\n this.handleBegin(config).then(c => {\n this.http\n //TODO: check ts error\n //@ts-ignore\n .request<T>(config.method, config.url, this.mapOptions(config))\n //.pipe(this.retry)\n .subscribe(data => {\n this.handleResult(data, result, complete, config);\n }, c => {\n this.handleError(c, error, complete, config);\n });\n });\n })\n }\n\n\n private handleResult(data, result, complete, config: AXHttpRequestOptions) {\n if (this.interceptor) {\n this.interceptor.success(config, data).then(c => {\n if (result)\n result(c);\n this.handleComplete(complete, config);\n });\n }\n else {\n //\n if (result)\n result(data);\n this.handleComplete(complete, config);\n }\n }\n\n private handleBegin(config: AXHttpRequestOptions): Promise<AXHttpRequestOptions> {\n return new Promise((resolve) => {\n if (!config.headers)\n config.headers = {};\n if (!config.params)\n config.params = {};\n //\n if (this.interceptor) {\n this.interceptor.begin(config).then(c => {\n resolve(c);\n });\n }\n else {\n resolve(config)\n }\n })\n }\n\n private handleComplete(complete: Function, config: AXHttpRequestOptions) {\n if (complete)\n complete();\n if (this.interceptor)\n this.interceptor.complete(config);\n }\n\n private handleError(c: HttpErrorResponse, error: Function, complete: Function, config: AXHttpRequestOptions) {\n let r: IHttpError = {\n message: c.message,\n status: c.status,\n code: c.status?.toString(),\n handled: false,\n error: c.error\n }\n if (error) {\n error(r);\n }\n if (!r.handled) {\n if (this.interceptor)\n this.interceptor.error(config, r);\n }\n this.handleComplete(complete, config);\n }\n\n private mapOptions(options: AXHttpRequestOptions) {\n let headers = new HttpHeaders();\n\n for (const key in options.headers) {\n if (options.headers.hasOwnProperty(key)) {\n const value = options.headers[key];\n headers = headers.set(key, value)\n }\n }\n let params = new HttpParams();\n for (const key in options.params) {\n if (options.params.hasOwnProperty(key)) {\n const value = options.params[key];\n params = params.set(key, value);\n }\n }\n return {\n headers: headers,\n params: params,\n body: options.body,\n responseType: options.responseType || 'json'\n };\n // if (options.method == \"get\") {\n // return {\n // headers: headers,\n // params: params\n // };\n // }\n // else {\n // return {\n // headers: headers,\n // params: params,\n // body: options.body\n // };\n // }\n }\n\n}","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AXHttpService } from './http.service';\n\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n HttpClientModule\n ],\n exports: [HttpClientModule],\n providers: [\n AXHttpService\n ]\n})\nexport class AXHttpModule {\n // static forRoot(): ModuleWithProviders {\n // return {\n // ngModule: AXHttpModule,\n // providers: [AXHttpService]\n // };\n // }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
@@ -34,10 +34,10 @@ class AXImageService {
|
|
34
34
|
canvas.getContext('2d').drawImage(image, 0, 0, width, height);
|
35
35
|
return new Promise((resolve) => canvas.toBlob(resolve, options.type, options.quality));
|
36
36
|
}
|
37
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.
|
38
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.
|
37
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AXImageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
38
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AXImageService, providedIn: 'root' });
|
39
39
|
}
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AXImageService, decorators: [{
|
41
41
|
type: Injectable,
|
42
42
|
args: [{ providedIn: 'root' }]
|
43
43
|
}], ctorParameters: function () { return []; } });
|