@acorex/core 5.0.7 → 5.0.13
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/bundles/acorex-core.umd.js +74 -4
- package/bundles/acorex-core.umd.js.map +1 -1
- package/config/tailwind.config.js +189 -0
- package/esm2015/lib/hotkeys/hotkeys.service.js +37 -0
- package/esm2015/lib/hotkeys/index.js +2 -0
- package/esm2015/lib/platform/platform.service.js +9 -1
- package/esm2015/lib/utils/index.js +2 -1
- package/esm2015/lib/utils/string-util.js +21 -0
- package/esm2015/public-api.js +2 -1
- package/fesm2015/acorex-core.js +65 -2
- package/fesm2015/acorex-core.js.map +1 -1
- package/lib/hotkeys/hotkeys.service.d.ts +17 -0
- package/lib/hotkeys/index.d.ts +1 -0
- package/lib/platform/platform.service.d.ts +2 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/string-util.d.ts +6 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/platform-browser'), require('rxjs'), require('lodash-es/merge')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define('@acorex/core', ['exports', '@angular/core', '@angular/platform-browser', 'rxjs', 'lodash-es/merge'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.acorex = global.acorex || {}, global.acorex.core = {}), global.ng.core, global.ng.platformBrowser, global.rxjs, global['lodash-es/merge']));
|
|
5
|
-
}(this, (function (exports, i0, i1, rxjs, merge) { 'use strict';
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/platform-browser'), require('rxjs'), require('@angular/common'), require('rxjs/internal/Observable'), require('lodash-es/merge')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define('@acorex/core', ['exports', '@angular/core', '@angular/platform-browser', 'rxjs', '@angular/common', 'rxjs/internal/Observable', 'lodash-es/merge'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.acorex = global.acorex || {}, global.acorex.core = {}), global.ng.core, global.ng.platformBrowser, global.rxjs, global.ng.common, global.rxjs['internal/Observable'], global['lodash-es/merge']));
|
|
5
|
+
}(this, (function (exports, i0, i1, rxjs, common, Observable, merge) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
8
|
|
|
@@ -147,6 +147,30 @@
|
|
|
147
147
|
return AXDrawingUtil;
|
|
148
148
|
}());
|
|
149
149
|
|
|
150
|
+
// @dynamic
|
|
151
|
+
var AXStringUtil = /** @class */ (function () {
|
|
152
|
+
function AXStringUtil() {
|
|
153
|
+
}
|
|
154
|
+
AXStringUtil.getWordBoundsAtPosition = function (str, position) {
|
|
155
|
+
var isSpace = function (c) { return /[^a-zA-Z0-9]+/i.exec(c); };
|
|
156
|
+
var start = position - 1;
|
|
157
|
+
var end = position;
|
|
158
|
+
while (start >= 0 && !isSpace(str[start])) {
|
|
159
|
+
start -= 1;
|
|
160
|
+
}
|
|
161
|
+
start = Math.max(0, start + 1);
|
|
162
|
+
while (end < str.length && !isSpace(str[end])) {
|
|
163
|
+
end += 1;
|
|
164
|
+
}
|
|
165
|
+
end = Math.max(start, end);
|
|
166
|
+
return {
|
|
167
|
+
start: start,
|
|
168
|
+
end: end
|
|
169
|
+
};
|
|
170
|
+
};
|
|
171
|
+
return AXStringUtil;
|
|
172
|
+
}());
|
|
173
|
+
|
|
150
174
|
var AXSafePipe = /** @class */ (function () {
|
|
151
175
|
function AXSafePipe(sanitizer) {
|
|
152
176
|
this.sanitizer = sanitizer;
|
|
@@ -1103,6 +1127,42 @@
|
|
|
1103
1127
|
}]
|
|
1104
1128
|
}], ctorParameters: function () { return []; } });
|
|
1105
1129
|
|
|
1130
|
+
var AXHotkeysService = /** @class */ (function () {
|
|
1131
|
+
function AXHotkeysService(eventManager, document) {
|
|
1132
|
+
this.eventManager = eventManager;
|
|
1133
|
+
this.document = document;
|
|
1134
|
+
this.defaults = {
|
|
1135
|
+
element: this.document
|
|
1136
|
+
};
|
|
1137
|
+
}
|
|
1138
|
+
AXHotkeysService.prototype.addShortcut = function (options) {
|
|
1139
|
+
var _this = this;
|
|
1140
|
+
var merged = Object.assign(Object.assign({}, this.defaults), options);
|
|
1141
|
+
var event = "keydown." + merged.keys;
|
|
1142
|
+
return new Observable.Observable(function (observer) {
|
|
1143
|
+
var handler = function (e) {
|
|
1144
|
+
e.preventDefault();
|
|
1145
|
+
observer.next(e);
|
|
1146
|
+
};
|
|
1147
|
+
var dispose = _this.eventManager.addEventListener(merged.element, event, handler);
|
|
1148
|
+
return function () {
|
|
1149
|
+
dispose();
|
|
1150
|
+
};
|
|
1151
|
+
});
|
|
1152
|
+
};
|
|
1153
|
+
return AXHotkeysService;
|
|
1154
|
+
}());
|
|
1155
|
+
AXHotkeysService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: AXHotkeysService, deps: [{ token: i1__namespace.EventManager }, { token: common.DOCUMENT }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
|
|
1156
|
+
AXHotkeysService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: AXHotkeysService });
|
|
1157
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: AXHotkeysService, decorators: [{
|
|
1158
|
+
type: i0.Injectable
|
|
1159
|
+
}], ctorParameters: function () {
|
|
1160
|
+
return [{ type: i1__namespace.EventManager }, { type: Document, decorators: [{
|
|
1161
|
+
type: i0.Inject,
|
|
1162
|
+
args: [common.DOCUMENT]
|
|
1163
|
+
}] }];
|
|
1164
|
+
} });
|
|
1165
|
+
|
|
1106
1166
|
// @dynamic
|
|
1107
1167
|
var AXTranslator = /** @class */ (function () {
|
|
1108
1168
|
function AXTranslator() {
|
|
@@ -1276,6 +1336,14 @@
|
|
|
1276
1336
|
AXPlatform.prototype.is = function (name) {
|
|
1277
1337
|
return PLATFORMS_MAP[name](window) || false;
|
|
1278
1338
|
};
|
|
1339
|
+
AXPlatform.prototype.switchDarkMode = function () {
|
|
1340
|
+
var _html = document.getElementsByTagName("html")[0];
|
|
1341
|
+
_html.classList.add('ax-dark');
|
|
1342
|
+
};
|
|
1343
|
+
AXPlatform.prototype.switchLightMode = function () {
|
|
1344
|
+
var _html = document.getElementsByTagName("html")[0];
|
|
1345
|
+
_html.classList.remove('ax-dark');
|
|
1346
|
+
};
|
|
1279
1347
|
return AXPlatform;
|
|
1280
1348
|
}());
|
|
1281
1349
|
AXPlatform.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: AXPlatform, deps: [], target: i0__namespace.ɵɵFactoryTarget.Injectable });
|
|
@@ -1304,10 +1372,12 @@
|
|
|
1304
1372
|
exports.AXDateTimePipe = AXDateTimePipe;
|
|
1305
1373
|
exports.AXDateTimeRange = AXDateTimeRange;
|
|
1306
1374
|
exports.AXDrawingUtil = AXDrawingUtil;
|
|
1375
|
+
exports.AXHotkeysService = AXHotkeysService;
|
|
1307
1376
|
exports.AXObjectUtil = AXObjectUtil;
|
|
1308
1377
|
exports.AXPlatform = AXPlatform;
|
|
1309
1378
|
exports.AXPlatformEvent = AXPlatformEvent;
|
|
1310
1379
|
exports.AXSafePipe = AXSafePipe;
|
|
1380
|
+
exports.AXStringUtil = AXStringUtil;
|
|
1311
1381
|
exports.AXTranslationModule = AXTranslationModule;
|
|
1312
1382
|
exports.AXTranslator = AXTranslator;
|
|
1313
1383
|
exports.AXTranslatorPipe = AXTranslatorPipe;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-core.umd.js","sources":["../../../../projects/acorex/core/src/lib/utils/object-util.ts","../../../../projects/acorex/core/src/lib/utils/drawing-util.ts","../../../../projects/acorex/core/src/lib/utils/safe.pipe.ts","../../../../projects/acorex/core/src/lib/core.module.ts","../../../../projects/acorex/core/src/lib/config/configs.ts","../../../../projects/acorex/core/src/lib/dateTime/datetime.class.ts","../../../../projects/acorex/core/src/lib/dateTime/datetime.pipe.ts","../../../../projects/acorex/core/src/lib/dateTime/georgian.calendar.ts","../../../../projects/acorex/core/src/lib/dateTime/jalali.calendar.ts","../../../../projects/acorex/core/src/lib/dateTime/datetime.module.ts","../../../../projects/acorex/core/src/lib/translation/translator.ts","../../../../projects/acorex/core/src/lib/translation/translator.pipe.ts","../../../../projects/acorex/core/src/lib/translation/translation.module.ts","../../../../projects/acorex/core/src/lib/platform/platform.service.ts","../../../../projects/acorex/core/src/public-api.ts","../../../../projects/acorex/core/src/acorex-core.ts"],"sourcesContent":["// @dynamic\r\nexport class AXObjectUtil {\r\n static deepJSONClone(obj: any): any {\r\n return obj ? JSON.parse(JSON.stringify(obj)) : null;\r\n }\r\n\r\n static deepCopy(obj) {\r\n let copy;\r\n // Handle the 3 simple types, and null or undefined\r\n if (null == obj || 'object' !== typeof obj) { return obj; }\r\n // Handle Date\r\n if (obj instanceof Date) {\r\n copy = new Date();\r\n copy.setTime(obj.getTime());\r\n return copy;\r\n }\r\n // Handle Array\r\n if (obj instanceof Array) {\r\n copy = [];\r\n for (let i = 0, len = obj.length; i < len; i++) {\r\n copy[i] = AXObjectUtil.deepCopy(obj[i]);\r\n }\r\n return copy;\r\n }\r\n // Handle Object\r\n if (obj instanceof Object) {\r\n copy = {};\r\n for (const attr in obj) {\r\n if (obj.hasOwnProperty(attr)) { copy[attr] = AXObjectUtil.deepCopy(obj[attr]); }\r\n }\r\n return copy;\r\n }\r\n throw new Error('Unable to copy obj! Its type isn\\'t supported.');\r\n }\r\n\r\n static fetchProp(obj, prop: string) {\r\n if (typeof obj === 'undefined') {\r\n return false;\r\n }\r\n const index = prop.indexOf('.');\r\n\r\n if (index > -1) {\r\n return AXObjectUtil.fetchProp(obj[prop.substring(0, index)], prop.substr(index + 1));\r\n }\r\n\r\n return obj[prop];\r\n }\r\n\r\n static getPropByPath(obj, path, defaultVal?) {\r\n path = path\r\n .replace(/\\[/g, '.')\r\n .replace(/]/g, '')\r\n .split('.');\r\n\r\n path.forEach((level) => {\r\n if (obj) {\r\n obj = obj[level];\r\n }\r\n });\r\n\r\n if (obj === undefined) {\r\n return defaultVal;\r\n }\r\n return obj;\r\n }\r\n\r\n static setPropByPath(obj, path, value) {\r\n if (Object(obj) !== obj) { return obj; } // When obj is not an object\r\n // If not yet an array, get the keys from the string-path\r\n if (!Array.isArray(path)) { path = path.toString().match(/[^.[\\]]+/g) || []; }\r\n path.slice(0, -1).reduce((a, c, i) => // Iterate all of them except the last one\r\n Object(a[c]) === a[c] // Does the key exist and is its value an object?\r\n // Yes: then follow that path\r\n ? a[c]\r\n // No: create the key. Is the next key a potential array-index?\r\n : a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1]\r\n ? [] // Yes: assign a new array object\r\n : {}, // No: assign a new plain object\r\n obj)[path[path.length - 1]] = value; // Finally assign the value to the last key\r\n return obj; // Return the top-level object to allow chaining\r\n }\r\n}","export interface AXPoint {\r\n x: number;\r\n y: number;\r\n}\r\n\r\nexport interface AXBoundingClientRect {\r\n left?: number;\r\n top?: number;\r\n width?: number;\r\n height?: number;\r\n bottom?: number;\r\n right?: number;\r\n}\r\n// @dynamic\r\nexport class AXDrawingUtil {\r\n static collision(a: HTMLElement, b: HTMLElement): boolean {\r\n const ac = a.getBoundingClientRect();\r\n const bc = b.getBoundingClientRect();\r\n\r\n if (ac.left < bc.left + bc.width && ac.left + ac.width > bc.left &&\r\n ac.top < bc.top + bc.height && ac.top + ac.height > bc.top) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n static isInElementBound(pos: AXPoint, element: HTMLElement): boolean {\r\n const elBound = element.getBoundingClientRect();\r\n return AXDrawingUtil.isInRecPoint(pos, {\r\n left: elBound.x,\r\n width: elBound.width,\r\n top: elBound.y,\r\n height: elBound.height\r\n });\r\n }\r\n\r\n static isInRecPoint(pos: AXPoint, rec: AXBoundingClientRect): boolean {\r\n return pos.x >= rec.left && pos.x <= (rec.left + rec.width) && pos.y >= rec.top && (pos.y <= (rec.top + rec.height));\r\n }\r\n\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n\tname: 'safe',\r\n\tpure: true\r\n})\r\nexport class AXSafePipe implements PipeTransform {\r\n\r\n\tconstructor(protected sanitizer: DomSanitizer) { }\r\n\r\n\tpublic transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\r\n\t\tif (value == null || value == undefined || value == '')\r\n\t\t\treturn null;\r\n\t\tswitch (type) {\r\n\t\t\tcase 'html': return this.sanitizer.bypassSecurityTrustHtml(value);\r\n\t\t\tcase 'style': return this.sanitizer.bypassSecurityTrustStyle(value);\r\n\t\t\tcase 'script': return this.sanitizer.bypassSecurityTrustScript(value);\r\n\t\t\tcase 'url': return this.sanitizer.bypassSecurityTrustUrl(value);\r\n\t\t\tcase 'resourceUrl': return this.sanitizer.bypassSecurityTrustResourceUrl(value);\r\n\t\t\tdefault: throw new Error(`Invalid safe type specified: ${type}`);\r\n\t\t}\r\n\t}\r\n}","import { NgModule } from \"@angular/core\";\r\nimport { AXSafePipe } from \"./utils\";\r\n\r\n@NgModule({\r\n imports: [],\r\n exports: [AXSafePipe],\r\n declarations: [AXSafePipe],\r\n providers: [],\r\n})\r\nexport class AXCoreModule { }\r\n","import { Subject, Observable } from 'rxjs';\r\nimport { AXObjectUtil } from '../utils/object-util';\r\n\r\n// @dynamic\r\nexport class AXConfig {\r\n private static dataModel: any = {};\r\n private static dataChangeSubject = new Subject<any>();\r\n\r\n\r\n static get onChange(): Observable<any> {\r\n return AXConfig.dataChangeSubject.asObservable();\r\n }\r\n\r\n static set(config: any): any;\r\n static set(path: string, value?: any): void;\r\n static set(arg1?: any, arg2?: any) {\r\n\r\n if (arg1 && typeof arg1 == 'string') {\r\n AXObjectUtil.setPropByPath(AXConfig.dataModel, arg1, arg2);\r\n AXConfig.dataChangeSubject.next(AXConfig.dataModel);\r\n return;\r\n }\r\n if (arg1 && typeof arg1 == 'object') {\r\n //TODO : fix override\r\n Object.assign(AXConfig.dataModel, arg1);\r\n AXConfig.dataChangeSubject.next(AXConfig.dataModel);\r\n return;\r\n }\r\n if (!arg1 && !arg2) {\r\n return AXConfig.dataChangeSubject.asObservable();\r\n }\r\n }\r\n\r\n static get(path: string, defaultValue?: any): any {\r\n return AXObjectUtil.getPropByPath(AXConfig.dataModel, path) || defaultValue;\r\n }\r\n}","import { AXConfig } from '../config/configs';\r\n\r\n\r\n// export const AX_CALENDARS: any[] = [\r\n// {\r\n// name: 'gregorian',\r\n// type: 'GeorgianCalendar'\r\n// },\r\n// {\r\n// name: 'jalali',\r\n// type: 'JalaliCalendar'\r\n// }\r\n// ];\r\nexport type TimeUnit =\r\n | 'second'\r\n | 'minute'\r\n | 'hour'\r\n | 'day'\r\n | 'month'\r\n | 'year'\r\n | 'week';\r\n\r\nexport interface AXCalendar {\r\n monthNames: string[];\r\n\r\n monthShortNames: string[];\r\n\r\n dayNames: string[];\r\n\r\n dayShortNames: string[];\r\n\r\n name(): string;\r\n\r\n dayOfMonth(date: Date): number;\r\n\r\n dayOfYear(date: Date): number;\r\n\r\n dayOfWeek(date: Date): number;\r\n\r\n monthOfYear(date: Date): number;\r\n\r\n weekOfYear(date: Date): number;\r\n\r\n year(date: Date): number;\r\n\r\n\r\n\r\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime;\r\n\r\n set(date: Date, unit: TimeUnit, value: number): AXDateTime;\r\n\r\n startOf(date: Date, unit: TimeUnit): AXDateTime;\r\n\r\n\r\n endOf(date: Date, unit: TimeUnit): AXDateTime;\r\n}\r\n\r\n\r\n// @dynamic\r\nexport class AXDateTime {\r\n static convert(\r\n value: Date | AXDateTime | string,\r\n calendar: string = AXConfig.get('dateTime.type') || 'gregorian'\r\n ): AXDateTime {\r\n let date: AXDateTime;\r\n if (typeof value === 'string' || value instanceof String) {\r\n date = new AXDateTime(value as string, calendar);\r\n } else if (value instanceof Date) {\r\n date = new AXDateTime(value as Date, calendar);\r\n } else if (value instanceof AXDateTime) {\r\n date = new AXDateTime(value.date, calendar);\r\n }\r\n return date;\r\n }\r\n\r\n\r\n private _date: Date;\r\n\r\n get date(): Date {\r\n return this._date;\r\n }\r\n\r\n private _calendar: AXCalendar;\r\n get calendar(): AXCalendar {\r\n return this._calendar;\r\n }\r\n\r\n constructor(\r\n value: Date | string = new Date(),\r\n calendar: string | AXCalendar = AXConfig.get('dateTime.type') || 'gregorian'\r\n ) {\r\n this._calendar =\r\n // typeof calendar == 'string'\r\n // ? eval(`new ${AX_CALENDARS.find((c) => c.name == calendar).type}()`)\r\n // : calendar;\r\n typeof calendar == 'string'\r\n ? AXConfig.get(`dateTime.calendars.${calendar}`)\r\n : calendar;\r\n if (value instanceof Date) {\r\n this._date = value as Date;\r\n } else {\r\n this._date = new Date(value);\r\n }\r\n }\r\n\r\n clone(): AXDateTime {\r\n return new AXDateTime(this.date, this.calendar.name());\r\n }\r\n\r\n get dayOfMonth(): number {\r\n return this._calendar.dayOfMonth(this.date);\r\n }\r\n\r\n get dayOfYear(): number {\r\n return this._calendar.dayOfYear(this.date);\r\n }\r\n\r\n get dayOfWeek(): number {\r\n return this._calendar.dayOfWeek(this.date);\r\n }\r\n\r\n get hour(): number {\r\n return this._date.getHours();\r\n }\r\n\r\n get minute(): number {\r\n return this._date.getMinutes();\r\n }\r\n\r\n get second(): number {\r\n return this._date.getSeconds();\r\n }\r\n\r\n get year(): number {\r\n return this._calendar.year(this.date);\r\n }\r\n\r\n get monthOfYear(): number {\r\n return this._calendar.monthOfYear(this.date);\r\n }\r\n\r\n get weekOfYear(): number {\r\n return this._calendar.weekOfYear(this.date);\r\n }\r\n\r\n get month(): AXCalendarMonth {\r\n return new AXCalendarMonth(this);\r\n }\r\n\r\n add(unit: TimeUnit, amount: number): AXDateTime {\r\n return this._calendar.add(this.date, unit, amount);\r\n }\r\n\r\n set(unit: TimeUnit = 'day', value: number): AXDateTime {\r\n return this._calendar.set(this.date, unit, value);\r\n }\r\n\r\n duration(\r\n end: Date | AXDateTime,\r\n unit: TimeUnit = 'day'\r\n ): AXTimeSpan {\r\n const range = new AXDateTimeRange(\r\n this,\r\n AXDateTime.convert(end, this.calendar.name())\r\n );\r\n return range.duration();\r\n }\r\n\r\n startOf(unit: TimeUnit = 'day'): AXDateTime {\r\n return this._calendar.startOf(this.date, unit);\r\n }\r\n\r\n endOf(unit: TimeUnit = 'day'): AXDateTime {\r\n return this._calendar.endOf(this.date, unit);\r\n }\r\n\r\n format(\r\n format: string = AXConfig.get('dateTime.shortDateFormat') ||\r\n 'DDD, dd MMM yyyy'\r\n ): string {\r\n format = format.replace('ss', this.pad(this.date.getSeconds(), 2));\r\n format = format.replace('s', this.date.getSeconds().toString());\r\n format = format.replace(\r\n 'dd',\r\n this.pad(this.calendar.dayOfMonth(this.date), 2)\r\n );\r\n format = format.replace(\r\n 'd',\r\n this.calendar.dayOfMonth(this.date).toString()\r\n );\r\n format = format.replace('mm', this.pad(this.date.getMinutes(), 2));\r\n format = format.replace('m', this.date.getMinutes().toString());\r\n format = format.replace(\r\n 'MMMM',\r\n this.calendar.monthNames[this.calendar.monthOfYear(this.date) - 1]\r\n );\r\n format = format.replace(\r\n 'MMM',\r\n this.calendar.monthShortNames[this.calendar.monthOfYear(this.date) - 1]\r\n );\r\n format = format.replace(\r\n 'MM',\r\n this.pad(this.calendar.monthOfYear(this.date), 2)\r\n );\r\n format = format.replace(\r\n /M(?![ao])/,\r\n this.calendar.monthOfYear(this.date).toString()\r\n );\r\n format = format.replace(\r\n 'DDDD',\r\n this.calendar.dayNames[this.calendar.dayOfWeek(this.date) - 1]\r\n );\r\n format = format.replace(\r\n 'DDD',\r\n this.calendar.dayShortNames[this.calendar.dayOfWeek(this.date) - 1]\r\n );\r\n format = format.replace(\r\n /D(?!e)/,\r\n this.calendar.dayNames[this.calendar.dayOfWeek(this.date) - 1].substring(\r\n 0,\r\n 3\r\n )\r\n );\r\n format = format.replace('yyyy', this.calendar.year(this.date).toString());\r\n format = format.replace('YYYY', this.calendar.year(this.date).toString());\r\n format = format.replace(\r\n 'yy',\r\n this.calendar.year(this.date).toString().substring(2)\r\n );\r\n format = format.replace(\r\n 'YY',\r\n this.calendar.year(this.date).toString().substring(2)\r\n );\r\n format = format.replace('HH', this.pad(this.date.getHours(), 2));\r\n format = format.replace('H', this.date.getHours().toString());\r\n return format;\r\n }\r\n\r\n private pad(n, width, z = '0') {\r\n n = n + '';\r\n return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;\r\n }\r\n\r\n toString(): string {\r\n return this.format();\r\n }\r\n\r\n equal(value: Date | AXDateTime, unit: TimeUnit = 'day') {\r\n return this.compare(value, unit) == 0;\r\n }\r\n\r\n compare(value: Date | AXDateTime, unit: TimeUnit = 'day') {\r\n const val = AXDateTime.convert(value);\r\n const func = (v1: number, v2: number) => {\r\n if (v1 == v2) {\r\n return 0;\r\n } else if (v1 > v2) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n let p = 0;\r\n switch (unit) {\r\n case 'year':\r\n return func(this.year, val.year);\r\n case 'week':\r\n p = this.compare(val, 'year');\r\n return p == 0 ? func(this.weekOfYear, val.weekOfYear) : p;\r\n case 'month':\r\n p = this.compare(val, 'year');\r\n return p == 0 ? func(this.monthOfYear, val.monthOfYear) : p;\r\n case 'day':\r\n p = this.compare(val, 'year');\r\n return p == 0 ? func(this.dayOfYear, val.dayOfYear) : p;\r\n case 'hour':\r\n p = this.compare(val, 'day');\r\n return p == 0 ? func(this.hour, val.hour) : p;\r\n case 'minute':\r\n p = this.compare(val, 'hour');\r\n return p == 0 ? func(this.minute, val.minute) : p;\r\n case 'second':\r\n p = this.compare(val, 'minute');\r\n return p == 0 ? func(this.second, val.second) : p;\r\n default:\r\n return func(this.date.getTime(), val.date.getTime());\r\n }\r\n\r\n }\r\n\r\n convert(calendar: string) {\r\n return AXDateTime.convert(this, calendar);\r\n }\r\n}\r\n\r\nexport class AXCalendarMonth {\r\n private _range: AXDateTimeRange;\r\n public get range(): AXDateTimeRange {\r\n return this._range;\r\n }\r\n public set range(v: AXDateTimeRange) {\r\n this._range = v;\r\n }\r\n\r\n constructor(date: AXDateTime) {\r\n this.index = date.date.getMonth();\r\n this.name = date.format('MMMM');\r\n this.range = new AXDateTimeRange(\r\n new AXDateTime(date.startOf('month').date, date.calendar),\r\n new AXDateTime(date.endOf('month').date, date.calendar)\r\n );\r\n }\r\n\r\n private readonly index: number;\r\n private readonly name: string;\r\n}\r\n\r\nexport interface AXTimeSpanTotal {\r\n miliseconds: number;\r\n seconds: number;\r\n minutes: number;\r\n hours: number;\r\n days: number;\r\n weeks: number;\r\n months: number;\r\n years: number;\r\n}\r\n\r\nexport interface AXTimeSpan {\r\n miliseconds: number;\r\n seconds: number;\r\n minutes: number;\r\n hours: number;\r\n days: number;\r\n months: number;\r\n years: number;\r\n total: AXTimeSpanTotal;\r\n}\r\n\r\nexport class AXDateTimeRange {\r\n private _startTime: AXDateTime;\r\n private _endTime: AXDateTime;\r\n\r\n public get startTime(): AXDateTime {\r\n return this._startTime;\r\n }\r\n\r\n public get endTime(): AXDateTime {\r\n return this._endTime;\r\n }\r\n\r\n constructor(startTime: AXDateTime , endTime: AXDateTime ) {\r\n this._startTime = startTime;\r\n this._endTime = endTime;\r\n }\r\n\r\n duration(): AXTimeSpan {\r\n const result: AXTimeSpan = {\r\n miliseconds: 0,\r\n seconds: 0,\r\n minutes: 0,\r\n hours: 0,\r\n days: 0,\r\n months: 0,\r\n years: 0,\r\n total: {\r\n miliseconds: 0,\r\n seconds: 0,\r\n minutes: 0,\r\n hours: 0,\r\n days: 0,\r\n weeks: 0,\r\n months: 0,\r\n years: 0,\r\n },\r\n };\r\n\r\n const one_second = 1000;\r\n const one_min = one_second * 60;\r\n const one_hour = one_min * 60;\r\n const one_day = one_hour * 24;\r\n const one_week = one_day * 7;\r\n const one_year = 365.25 * one_day;\r\n const one_month = one_year / 12;\r\n const startTime = this._startTime.date.getTime();\r\n const endTime = this._endTime.date.getTime();\r\n const diff = Math.abs(endTime - startTime);\r\n //\r\n result.total.miliseconds = diff;\r\n result.total.seconds = Number((diff / one_second).toFixed(2));\r\n result.total.minutes = Number((diff / one_min).toFixed(2));\r\n result.total.hours = Number((diff / one_hour).toFixed(2));\r\n result.total.days = Number((diff / one_day).toFixed(2));\r\n result.total.weeks = Number((diff / one_week).toFixed(2));\r\n //\r\n // let months = (this.endTime.year - this.startTime.year) * 12;\r\n // months += this.endTime.monthOfYear - this.startTime.monthOfYear + 1;\r\n // if (this.endTime.dayOfYear < this.startTime.dayOfYear) {\r\n // months--;\r\n // }\r\n // result.total.months = Math.abs(months);\r\n // TODO: review\r\n result.total.months = Number((diff / one_month).toFixed(2));\r\n result.total.years = Number((diff / one_year).toFixed(2));\r\n //\r\n result.miliseconds = result.total.miliseconds % 1000;\r\n result.seconds = Number((result.total.seconds % 60).toFixed(0));\r\n result.minutes = Number((result.total.minutes % 60).toFixed(0));\r\n result.hours = Number((result.total.hours % 24).toFixed(0));\r\n // TODO: review\r\n result.days = Number((result.total.days % 30.4).toFixed(0));\r\n result.months = Number((result.total.months % 12).toFixed(0));\r\n result.years = Number(result.total.years.toFixed(0));\r\n return result;\r\n }\r\n\r\n enumurate(unit: TimeUnit = 'day', amount: number = 1): AXDateTime[] {\r\n // TODO: setptemper savingtime issue\r\n const result: AXDateTime[] = [];\r\n let item = this._startTime.clone();\r\n while (item.compare(this._endTime, unit) < 1) {\r\n result.push(item);\r\n item = item.add(unit, amount)\r\n }\r\n return result;\r\n }\r\n\r\n includes(value: AXDateTime, unit: TimeUnit = 'day'): boolean {\r\n // TODO: ??\r\n return true;\r\n }\r\n\r\n // getViewCompaire(view) {\r\n // switch (view) {\r\n // case 'day':\r\n // return 'YMD';\r\n // case 'month':\r\n // return 'YM';\r\n // case 'year':\r\n // return 'Y';\r\n // }\r\n // }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { AXDateTime } from './datetime.class';\r\n\r\n@Pipe({ name: 'axDate' })\r\nexport class AXDateTimePipe implements PipeTransform {\r\n constructor() { }\r\n\r\n transform(value: any, format?: string, calendar?: string): string {\r\n if (value == null) {\r\n return '';\r\n }\r\n const date: AXDateTime = value instanceof AXDateTime ? value.clone() : AXDateTime.convert(value, calendar);\r\n if (!format) {\r\n return date.toString();\r\n }\r\n else {\r\n return date.format(format);\r\n }\r\n }\r\n}","import { AXCalendar, AXDateTime, TimeUnit } from \"./datetime.class\";\r\n\r\nexport class GeorgianCalendar implements AXCalendar {\r\n\r\n monthNames = [\r\n \"January\", \"February\", \"March\",\r\n \"April\", \"May\", \"June\", \"July\",\r\n \"August\", \"September\", \"October\",\r\n \"November\", \"December\"\r\n ];\r\n\r\n monthShortNames = [\r\n \"Jan\", \"Feb\", \"Mar\",\r\n \"Apr\", \"May\", \"Jun\", \"Jul\",\r\n \"Aug\", \"Sep\", \"Oct\",\r\n \"Nov\", \"Dec\"\r\n ];\r\n\r\n dayNames = [\r\n \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\",\r\n \"Thursday\", \"Friday\", \"Saturday\"\r\n ];\r\n\r\n dayShortNames = [\r\n \"Sun\", \"Mon\", \"Tue\", \"Wed\",\r\n \"Thu\", \"Fri\", \"Sat\"\r\n ];\r\n\r\n name(): string {\r\n return 'gregorian'\r\n }\r\n\r\n dayOfMonth(date: Date): number {\r\n return date.getDate();\r\n }\r\n\r\n dayOfYear(date: Date): number {\r\n let result = 0;\r\n let m = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n if (this.isLeap(date)) { \r\n m[1] = 29;\r\n }\r\n for (let i = 0; i < date.getMonth(); i++) {\r\n result = result + m[i];\r\n }\r\n result += date.getDate();\r\n return result;\r\n }\r\n\r\n dayOfWeek(date: Date): number {\r\n return date.getDay() + 1;\r\n }\r\n\r\n weekOfYear(date: Date): number {\r\n const firstDay = new AXDateTime(date).startOf('year');\r\n return Math.ceil((((date.getTime() - firstDay.date.getTime()) / 86400000) + firstDay.date.getDay() + 1) / 7);\r\n }\r\n\r\n year(date: Date): number {\r\n return date.getFullYear();\r\n }\r\n\r\n monthOfYear(date: Date): number {\r\n return date.getMonth() + 1;\r\n }\r\n\r\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime {\r\n let value = date.valueOf();\r\n switch (unit) {\r\n case 'second':\r\n value += 1000 * amount;\r\n break\r\n case 'minute':\r\n value += 60000 * amount;\r\n break\r\n case 'hour':\r\n value += 3600000 * amount;\r\n break\r\n case 'month':\r\n const v = new Date(value);\r\n var mo = date.getMonth();\r\n var yr = date.getFullYear();\r\n mo = (mo + amount) % 12;\r\n if (0 > mo) {\r\n yr += (date.getMonth() + amount - mo - 12) / 12;\r\n mo += 12;\r\n }\r\n else\r\n yr += ((date.getMonth() + amount - mo) / 12);\r\n v.setMonth(mo);\r\n v.setFullYear(yr);\r\n value = v.valueOf();\r\n break\r\n case 'week':\r\n value += 7 * 86400000 * amount;\r\n break\r\n case 'year':\r\n const yv = new Date(value);\r\n yv.setFullYear(yv.getFullYear() + amount);\r\n value = yv.valueOf();\r\n break\r\n case 'day':\r\n default:\r\n value += 86400000 * amount;\r\n }\r\n return new AXDateTime(new Date(value), this.name());\r\n }\r\n\r\n set(date: Date, unit: TimeUnit, value: number): AXDateTime {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n startOf(date: Date, unit: TimeUnit): AXDateTime {\r\n const clone = new Date(date.valueOf());\r\n switch (unit) {\r\n case 'second':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 0);\r\n return new AXDateTime(clone, this.name());\r\n case 'minute':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n case 'hour':\r\n clone.setHours(clone.getHours(), 0, 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n default:\r\n case 'day':\r\n clone.setHours(0, 0, 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n case \"week\":\r\n const index = 0;\r\n const start = index >= 0 ? index : 0;\r\n const day = clone.getDay();\r\n const diff = clone.getDate() - day + (start > day ? start - 7 : start);\r\n clone.setDate(diff);\r\n return new AXDateTime(clone, this.name()).startOf('day');\r\n case \"month\":\r\n clone.setDate(1)\r\n return new AXDateTime(clone, this.name()).startOf('day');\r\n case \"year\":\r\n clone.setMonth(0);\r\n clone.setDate(1);\r\n return new AXDateTime(clone, this.name()).startOf('day');\r\n }\r\n }\r\n\r\n endOf(date: Date, unit: TimeUnit): AXDateTime {\r\n const clone = new Date(date.valueOf());\r\n switch (unit) {\r\n case 'second':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'minute':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'hour':\r\n clone.setHours(clone.getHours(), 59, 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n default:\r\n case 'day':\r\n clone.setHours(23, 59, 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'week':\r\n return this.startOf(date, 'week').add('day', 6).endOf('day');\r\n case 'month':\r\n return new AXDateTime(new Date(date.getFullYear(), date.getMonth() + 1, 0), this.name()).endOf('day');\r\n case \"year\":\r\n clone.setMonth(11);\r\n return new AXDateTime(clone, this.name()).endOf('month');\r\n }\r\n }\r\n\r\n isLeap(date: Date) {\r\n let leapYear = new Date(date.getFullYear(), 1, 29);\r\n return leapYear.getDate() == 29;\r\n }\r\n}","import { AXCalendar, AXDateTime, TimeUnit } from \"./datetime.class\";\r\n\r\nexport class JalaliCalendar implements AXCalendar {\r\n\r\n monthNames = (\"فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند\").split(\"_\");\r\n\r\n monthShortNames = (\"فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند\").split(\"_\");\r\n\r\n dayNames = (\"شنبه_یکشنبه_دوشنبه_سه شنبه_چهارشنبه_پنج شنبه_جمعه\").split(\"_\");\r\n\r\n dayShortNames = \"ش_ی_د_س_چ_پ_ج\".split(\"_\")\r\n\r\n name(): string {\r\n return 'jalali'\r\n }\r\n\r\n dayOfMonth(date: Date): number {\r\n return this.toJalali(date).day;\r\n }\r\n\r\n dayOfYear(date: Date): number {\r\n const j = this.toJalali(date);\r\n return (j.month <= 6 ? ((j.month - 1) * 31) : ((6 * 31) + (j.month - 7) * 30)) + j.day;\r\n }\r\n\r\n dayOfWeek(date: Date): number {\r\n return date.getDay() == 6 ? 1 : date.getDay() + 2;\r\n }\r\n\r\n weekOfYear(date: Date): number {\r\n //TODO : apply jalali\r\n const firstDay = new AXDateTime(date).startOf('year');\r\n return Math.ceil((((date.getTime() - firstDay.date.getTime()) / 86400000) + firstDay.date.getDay() + 1) / 7);\r\n }\r\n\r\n year(date: Date): number {\r\n return this.toJalali(date).year;\r\n }\r\n\r\n monthOfYear(date: Date): number {\r\n return this.toJalali(date).month;\r\n }\r\n\r\n\r\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime {\r\n let value = date.valueOf();\r\n switch (unit) {\r\n case 'second':\r\n value += 1000 * amount;\r\n break\r\n case 'minute':\r\n value += 60000 * amount;\r\n break\r\n case 'hour':\r\n value += 3600000 * amount;\r\n break\r\n case 'month':\r\n {\r\n const v = new Date(value);\r\n let jd = this.dayOfMonth(date);\r\n let jm = this.monthOfYear(date);\r\n let jy = this.year(date);\r\n jm = (jm + amount) % 12;\r\n if (0 > jm) {\r\n jy += (this.monthOfYear(date) + amount - jm - 12) / 12;\r\n jm += 12;\r\n }\r\n else {\r\n jy += ((this.monthOfYear(date) + amount - jm) / 12);\r\n }\r\n const vv = this.toGregorian(jy, jm, jd);\r\n v.setFullYear(vv.getFullYear());\r\n v.setMonth(vv.getMonth());\r\n v.setDate(vv.getDate());\r\n value = v.valueOf();\r\n break\r\n }\r\n case 'week':\r\n value += 7 * 86400000 * amount;\r\n break\r\n case 'year':\r\n {\r\n const v = new Date(value);\r\n let jd = this.dayOfMonth(date);\r\n let jm = this.monthOfYear(date);\r\n let jy = this.year(date);\r\n const vv = this.toGregorian(jy + amount, jm, jd);\r\n v.setFullYear(vv.getFullYear());\r\n v.setMonth(vv.getMonth());\r\n v.setDate(vv.getDate());\r\n value = v.valueOf();\r\n }\r\n break\r\n case 'day':\r\n default:\r\n value += 86400000 * amount;\r\n }\r\n return new AXDateTime(new Date(value), this.name());\r\n }\r\n\r\n set(date: Date, unit: TimeUnit, value: number): AXDateTime {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n startOf(date: Date, unit: TimeUnit): AXDateTime {\r\n const clone = new Date(date.valueOf());\r\n switch (unit) {\r\n case 'second':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 0);\r\n return new AXDateTime(clone, this.name());\r\n case 'minute':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n case 'hour':\r\n clone.setHours(clone.getHours(), 0, 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n default:\r\n case 'day':\r\n clone.setHours(0, 0, 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n case \"week\":\r\n return new AXDateTime(clone, this.name()).add('day', -this.dayOfWeek(clone) + 1).startOf('day');\r\n case \"month\":\r\n {\r\n const jy = this.year(date);\r\n const jm = this.monthOfYear(date);\r\n const gDate = this.toGregorian(jy, jm, 1);\r\n return new AXDateTime(gDate, this.name()).startOf('day');\r\n }\r\n case \"year\":\r\n {\r\n const jy = this.year(date);\r\n const gDate = this.toGregorian(jy, 1, 1);\r\n return new AXDateTime(gDate, this.name()).startOf('day');\r\n }\r\n }\r\n }\r\n\r\n endOf(date: Date, unit: TimeUnit): AXDateTime {\r\n const clone = new Date(date.valueOf());\r\n switch (unit) {\r\n case 'second':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'minute':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'hour':\r\n clone.setHours(clone.getHours(), 59, 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n default:\r\n case 'day':\r\n clone.setHours(23, 59, 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'week':\r\n {\r\n return this.startOf(date, 'week').add('day', 6).endOf('day');\r\n }\r\n case 'month':\r\n {\r\n const jy = this.year(date);\r\n const jm = this.monthOfYear(date);\r\n const jd = this.monthLength(jy, jm);\r\n const gDate = this.toGregorian(jy, jm, jd);\r\n return new AXDateTime(gDate, this.name()).endOf('day');\r\n }\r\n case \"year\":\r\n let jy = this.year(date);\r\n const gDate = this.toGregorian(jy, 12, this.monthLength(jy, 12));\r\n return new AXDateTime(gDate, this.name()).endOf('day');\r\n }\r\n }\r\n\r\n\r\n\r\n toJalali(date: Date): { year: number, month: number, day: number } {\r\n const gy = date.getFullYear();\r\n const gm = date.getMonth() + 1;\r\n const gd = date.getDate();\r\n const r = this.d2j(this.g2d(gy, gm, gd))\r\n return {\r\n year: r.jy,\r\n month: r.jm,\r\n day: r.jd,\r\n }\r\n }\r\n\r\n /*\r\n Converts a Jalaali date to Gregorian.\r\n */\r\n toGregorian(jy, jm, jd) {\r\n const g = this.d2g(this.j2d(jy, jm, jd))\r\n return new Date(g.gy, g.gm - 1, g.gd);\r\n }\r\n\r\n /*\r\n Checks whether a Jalaali date is valid or not.\r\n */\r\n isValid(jy, jm, jd) {\r\n return jy >= -61 && jy <= 3177 &&\r\n jm >= 1 && jm <= 12 &&\r\n jd >= 1 && jd <= this.monthLength(jy, jm)\r\n }\r\n\r\n /*\r\n Is this a leap year or not?\r\n */\r\n isLeapYear(jy) {\r\n return this.jalCal(jy).leap === 0\r\n }\r\n\r\n /*\r\n Number of days in a given month in a Jalaali year.\r\n */\r\n monthLength(jy, jm) {\r\n if (jm <= 6) return 31\r\n if (jm <= 11) return 30\r\n if (this.isLeapYear(jy)) return 30\r\n return 29\r\n }\r\n\r\n\r\n private jalCal(jy) {\r\n // Jalaali years starting the 33-year rule.\r\n let breaks = [-61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210\r\n , 1635, 2060, 2097, 2192, 2262, 2324, 2394, 2456, 3178\r\n ]\r\n , bl = breaks.length\r\n , gy = jy + 621\r\n , leapJ = -14\r\n , jp = breaks[0]\r\n , jm\r\n , jump\r\n , leap\r\n , leapG\r\n , march\r\n , n\r\n , i\r\n\r\n if (jy < jp || jy >= breaks[bl - 1])\r\n throw new Error('Invalid Jalaali year ' + jy)\r\n\r\n // Find the limiting years for the Jalaali year jy.\r\n for (i = 1; i < bl; i += 1) {\r\n jm = breaks[i]\r\n jump = jm - jp\r\n if (jy < jm)\r\n break\r\n leapJ = leapJ + this.div(jump, 33) * 8 + this.div(this.mod(jump, 33), 4)\r\n jp = jm\r\n }\r\n n = jy - jp\r\n\r\n // Find the number of leap years from AD 621 to the beginning\r\n // of the current Jalaali year in the Persian calendar.\r\n leapJ = leapJ + this.div(n, 33) * 8 + this.div(this.mod(n, 33) + 3, 4)\r\n if (this.mod(jump, 33) === 4 && jump - n === 4)\r\n leapJ += 1\r\n\r\n // And the same in the Gregorian calendar (until the year gy).\r\n leapG = this.div(gy, 4) - this.div((this.div(gy, 100) + 1) * 3, 4) - 150\r\n\r\n // Determine the Gregorian date of Farvardin the 1st.\r\n march = 20 + leapJ - leapG\r\n\r\n // Find how many years have passed since the last leap year.\r\n if (jump - n < 6)\r\n n = n - jump + this.div(jump + 4, 33) * 33\r\n leap = this.mod(this.mod(n + 1, 33) - 1, 4)\r\n if (leap === -1) {\r\n leap = 4\r\n }\r\n\r\n return {\r\n leap: leap\r\n , gy: gy\r\n , march: march\r\n }\r\n }\r\n\r\n /*\r\n Converts a date of the Jalaali calendar to the Julian Day number.\r\n @param jy Jalaali year (1 to 3100)\r\n @param jm Jalaali month (1 to 12)\r\n @param jd Jalaali day (1 to 29/31)\r\n @return Julian Day number\r\n */\r\n private j2d(jy, jm, jd) {\r\n let r = this.jalCal(jy)\r\n return this.g2d(r.gy, 3, r.march) + (jm - 1) * 31 - this.div(jm, 7) * (jm - 7) + jd - 1\r\n }\r\n\r\n /*\r\n Converts the Julian Day number to a date in the Jalaali calendar.\r\n @param jdn Julian Day number\r\n @return\r\n jy: Jalaali year (1 to 3100)\r\n jm: Jalaali month (1 to 12)\r\n jd: Jalaali day (1 to 29/31)\r\n */\r\n private d2j(jdn) {\r\n let gy = this.d2g(jdn).gy // Calculate Gregorian year (gy).\r\n , jy = gy - 621\r\n , r = this.jalCal(jy)\r\n , jdn1f = this.g2d(gy, 3, r.march)\r\n , jd\r\n , jm\r\n , k\r\n\r\n // Find number of days that passed since 1 Farvardin.\r\n k = jdn - jdn1f\r\n if (k >= 0) {\r\n if (k <= 185) {\r\n // The first 6 months.\r\n jm = 1 + this.div(k, 31)\r\n jd = this.mod(k, 31) + 1\r\n return {\r\n jy: jy\r\n , jm: jm\r\n , jd: jd\r\n }\r\n } else {\r\n // The remaining months.\r\n k -= 186\r\n }\r\n } else {\r\n // Previous Jalaali year.\r\n jy -= 1\r\n k += 179\r\n if (r.leap === 1)\r\n k += 1\r\n }\r\n jm = 7 + this.div(k, 30)\r\n jd = this.mod(k, 30) + 1\r\n return {\r\n jy: jy\r\n , jm: jm\r\n , jd: jd\r\n }\r\n }\r\n\r\n\r\n private g2d(gy, gm, gd) {\r\n let d = this.div((gy + this.div(gm - 8, 6) + 100100) * 1461, 4)\r\n + this.div(153 * this.mod(gm + 9, 12) + 2, 5)\r\n + gd - 34840408\r\n d = d - this.div(this.div(gy + 100100 + this.div(gm - 8, 6), 100) * 3, 4) + 752\r\n return d\r\n }\r\n\r\n\r\n private d2g(jdn) {\r\n let j\r\n , i\r\n , gd\r\n , gm\r\n , gy\r\n j = 4 * jdn + 139361631\r\n j = j + this.div(this.div(4 * jdn + 183187720, 146097) * 3, 4) * 4 - 3908\r\n i = this.div(this.mod(j, 1461), 4) * 5 + 308\r\n gd = this.div(this.mod(i, 153), 5) + 1\r\n gm = this.mod(this.div(i, 153), 12) + 1\r\n gy = this.div(j, 1461) - 100100 + this.div(8 - gm, 6)\r\n return {\r\n gy: gy\r\n , gm: gm\r\n , gd: gd\r\n }\r\n }\r\n\r\n /*\r\n Utility helper functions.\r\n */\r\n private div(a, b) {\r\n return ~~(a / b)\r\n }\r\n\r\n private mod(a, b) {\r\n return a - ~~(a / b) * b\r\n }\r\n\r\n}","import { NgModule } from '@angular/core';\r\nimport { AXConfig } from '../config/configs';\r\nimport { AXDateTimePipe } from './datetime.pipe';\r\nimport { GeorgianCalendar } from './georgian.calendar';\r\nimport { JalaliCalendar } from './jalali.calendar';\r\n\r\n\r\n@NgModule({\r\n imports: [],\r\n exports: [AXDateTimePipe],\r\n declarations: [AXDateTimePipe],\r\n providers: [],\r\n})\r\nexport class AXDateTimeModule {\r\n\r\n constructor() {\r\n AXConfig.set({\r\n dateTime: {\r\n calendars: {\r\n jalali: new JalaliCalendar(),\r\n gregorian: new GeorgianCalendar()\r\n }\r\n }\r\n });\r\n\r\n }\r\n}\r\n","import { Subject, Observable } from 'rxjs';\r\nimport merge from 'lodash-es/merge';\r\nimport { AXObjectUtil } from '../utils/object-util';\r\n\r\n// @dynamic\r\nexport class AXTranslator {\r\n private static lang: string = 'en';\r\n private static dataChangeSubject = new Subject<any>();\r\n\r\n\r\n static get onChange(): Observable<any> {\r\n return AXTranslator.dataChangeSubject.asObservable();\r\n }\r\n\r\n public static load(lang: string, value: any) {\r\n if (typeof value === 'object') {\r\n if (!AXTranslator[`__data__${lang}`]) {\r\n AXTranslator[`__data__${lang}`] = {};\r\n }\r\n AXTranslator[`__data__${lang}`] = merge(AXTranslator[`__data__${lang}`], value);\r\n }\r\n }\r\n\r\n public static use(lang: string) {\r\n AXTranslator.lang = lang;\r\n }\r\n\r\n public static get(key: string, lang?: string): string {\r\n return AXObjectUtil.getPropByPath(AXTranslator[`__data__${lang || AXTranslator.lang}`], key) || key;\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { AXTranslator } from './translator';\r\n\r\n@Pipe({ name: 'trans', pure: true })\r\nexport class AXTranslatorPipe implements PipeTransform {\r\n transform(value: string, lang?: string): string {\r\n return AXTranslator.get(value, lang);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { AXTranslatorPipe } from './translator.pipe';\r\n\r\n@NgModule({\r\n imports: [],\r\n exports: [AXTranslatorPipe],\r\n declarations: [AXTranslatorPipe],\r\n providers: [],\r\n})\r\nexport class AXTranslationModule {\r\n \r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n\r\nexport type AXPlatforms = 'Android' | 'Desktop' | 'iOS' | 'Mobile';\r\nexport type AXBrowsers = 'Chrome' | 'Safari' | 'Edge' | 'Firefox' | 'Opera' | 'MSIE';\r\nexport type AXTechnologies = 'PWA' | 'Hybrid' | 'Electron';\r\n\r\n\r\n\r\n\r\nconst isChrome = (win: Window): boolean =>\r\n testUserAgent(win, /Chrome/i);\r\n\r\nconst isFirefox = (win: Window): boolean =>\r\n testUserAgent(win, /Firefox/i);\r\n\r\nconst isEdge = (win: Window): boolean =>\r\n testUserAgent(win, /Edge/i);\r\n\r\nconst isSafari = (win: Window): boolean =>\r\n testUserAgent(win, /Safari/i);\r\n\r\nconst isOpera = (win: Window): boolean =>\r\n testUserAgent(win, /Opera/i) || testUserAgent(win, /OPR/i);\r\n\r\nconst isMSIE = (win: Window): boolean =>\r\n testUserAgent(win, /MSIE/i) || testUserAgent(win, /Trident/i);\r\n\r\n\r\nconst isMobileWeb = (win: Window): boolean =>\r\n isMobile(win) && !isHybrid(win);\r\n\r\nconst isIpad = (win: Window) => {\r\n // iOS 12 and below\r\n if (testUserAgent(win, /iPad/i)) {\r\n return true;\r\n }\r\n\r\n // iOS 13+\r\n if (testUserAgent(win, /Macintosh/i) && isMobile(win)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst isIphone = (win: Window) =>\r\n testUserAgent(win, /iPhone/i);\r\n\r\nconst isIOS = (win: Window) =>\r\n testUserAgent(win, /iPhone|iPod/i) || isIpad(win);\r\n\r\nconst isAndroid = (win: Window) =>\r\n testUserAgent(win, /android|sink/i);\r\n\r\nconst isAndroidTablet = (win: Window) => {\r\n return isAndroid(win) && !testUserAgent(win, /mobile/i);\r\n};\r\n\r\nconst isPhablet = (win: Window) => {\r\n const width = win.innerWidth;\r\n const height = win.innerHeight;\r\n const smallest = Math.min(width, height);\r\n const largest = Math.max(width, height);\r\n\r\n return (smallest > 390 && smallest < 520) &&\r\n (largest > 620 && largest < 800);\r\n};\r\n\r\nconst isTablet = (win: Window) => {\r\n const width = win.innerWidth;\r\n const height = win.innerHeight;\r\n const smallest = Math.min(width, height);\r\n const largest = Math.max(width, height);\r\n\r\n return (\r\n isIpad(win) ||\r\n isAndroidTablet(win) ||\r\n (\r\n (smallest > 460 && smallest < 820) &&\r\n (largest > 780 && largest < 1400)\r\n )\r\n );\r\n};\r\n\r\nconst isMobile = (win: Window) =>\r\n matchMedia(win, '(any-pointer:coarse)');\r\n\r\nconst isDesktop = (win: Window) =>\r\n !isMobile(win);\r\n\r\nconst isHybrid = (win: Window) =>\r\n isCordova(win) || isCapacitorNative(win);\r\n\r\nconst isCordova = (win: any): boolean =>\r\n !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);\r\n\r\nconst isCapacitorNative = (win: any): boolean => {\r\n const capacitor = win['Capacitor'];\r\n return !!(capacitor && capacitor.isNative);\r\n};\r\n\r\nconst isElectron = (win: Window): boolean =>\r\n testUserAgent(win, /electron/i);\r\n\r\nconst isPWA = (win: Window): boolean =>\r\n !!(win.matchMedia('(display-mode: standalone)').matches || (win.navigator as any).standalone);\r\n\r\nexport const testUserAgent = (win: Window, expr: RegExp) =>\r\n expr.test(win.navigator.userAgent);\r\n\r\nconst matchMedia = (win: Window, query: string): boolean =>\r\n win.matchMedia(query).matches;\r\n\r\n\r\nconst PLATFORMS_MAP = {\r\n 'Android': isAndroid,\r\n 'iOS': isIOS,\r\n 'Desktop': isDesktop,\r\n 'Mobile': isMobile,\r\n 'Chrome': isChrome,\r\n 'Firefox': isFirefox,\r\n 'Safari': isSafari,\r\n 'Edge': isEdge,\r\n 'Opera': isOpera,\r\n 'Hybrid': isHybrid,\r\n 'PWA': isPWA,\r\n 'Electron': isElectron,\r\n};\r\n\r\n\r\nexport class AXPlatformEvent {\r\n nativeEvent: UIEvent | Event;\r\n source: AXPlatform\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'platform',\r\n})\r\nexport class AXPlatform {\r\n resize: Subject<AXPlatformEvent> = new Subject<AXPlatformEvent>();\r\n click: Subject<AXPlatformEvent> = new Subject<AXPlatformEvent>()\r\n scroll: Subject<AXPlatformEvent> = new Subject<AXPlatformEvent>()\r\n\r\n isRtl(): boolean {\r\n return document.dir == 'rtl' || document.body.dir == 'rtl' || document.body.style.direction == 'rtl';\r\n }\r\n\r\n\r\n isLandscape(): boolean {\r\n return window.innerHeight < window.innerWidth;\r\n }\r\n\r\n isPortrate(): boolean {\r\n return !this.isLandscape()\r\n }\r\n\r\n is(name: AXPlatforms | AXBrowsers | AXTechnologies): boolean {\r\n return PLATFORMS_MAP[name](window) || false;\r\n }\r\n\r\n constructor() {\r\n window.addEventListener('resize', (e) => {\r\n this.resize.next({\r\n nativeEvent: e,\r\n source: this\r\n });\r\n })\r\n\r\n document.addEventListener('click', (e) => {\r\n this.click.next({\r\n nativeEvent: e,\r\n source: this\r\n });\r\n }, true)\r\n\r\n document.addEventListener('scroll', (e) => {\r\n this.scroll.next({\r\n nativeEvent: e,\r\n source: this\r\n });\r\n }, true)\r\n }\r\n}","\r\n/**\r\n * Public API refrences of core libraries\r\n * @module @acorex/core\r\n */\r\nexport * from './lib/core.module';\r\nexport * from './lib/dateTime';\r\nexport * from './lib/utils';\r\nexport * from './lib/config/configs';\r\nexport * from './lib/translation';\r\nexport * from './lib/platform';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Pipe","NgModule","Subject","merge","Injectable"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-core.umd.js","sources":["../../../../projects/acorex/core/src/lib/utils/object-util.ts","../../../../projects/acorex/core/src/lib/utils/drawing-util.ts","../../../../projects/acorex/core/src/lib/utils/string-util.ts","../../../../projects/acorex/core/src/lib/utils/safe.pipe.ts","../../../../projects/acorex/core/src/lib/core.module.ts","../../../../projects/acorex/core/src/lib/config/configs.ts","../../../../projects/acorex/core/src/lib/dateTime/datetime.class.ts","../../../../projects/acorex/core/src/lib/dateTime/datetime.pipe.ts","../../../../projects/acorex/core/src/lib/dateTime/georgian.calendar.ts","../../../../projects/acorex/core/src/lib/dateTime/jalali.calendar.ts","../../../../projects/acorex/core/src/lib/dateTime/datetime.module.ts","../../../../projects/acorex/core/src/lib/hotkeys/hotkeys.service.ts","../../../../projects/acorex/core/src/lib/translation/translator.ts","../../../../projects/acorex/core/src/lib/translation/translator.pipe.ts","../../../../projects/acorex/core/src/lib/translation/translation.module.ts","../../../../projects/acorex/core/src/lib/platform/platform.service.ts","../../../../projects/acorex/core/src/public-api.ts","../../../../projects/acorex/core/src/acorex-core.ts"],"sourcesContent":["// @dynamic\r\nexport class AXObjectUtil {\r\n static deepJSONClone(obj: any): any {\r\n return obj ? JSON.parse(JSON.stringify(obj)) : null;\r\n }\r\n\r\n static deepCopy(obj) {\r\n let copy;\r\n // Handle the 3 simple types, and null or undefined\r\n if (null == obj || 'object' !== typeof obj) { return obj; }\r\n // Handle Date\r\n if (obj instanceof Date) {\r\n copy = new Date();\r\n copy.setTime(obj.getTime());\r\n return copy;\r\n }\r\n // Handle Array\r\n if (obj instanceof Array) {\r\n copy = [];\r\n for (let i = 0, len = obj.length; i < len; i++) {\r\n copy[i] = AXObjectUtil.deepCopy(obj[i]);\r\n }\r\n return copy;\r\n }\r\n // Handle Object\r\n if (obj instanceof Object) {\r\n copy = {};\r\n for (const attr in obj) {\r\n if (obj.hasOwnProperty(attr)) { copy[attr] = AXObjectUtil.deepCopy(obj[attr]); }\r\n }\r\n return copy;\r\n }\r\n throw new Error('Unable to copy obj! Its type isn\\'t supported.');\r\n }\r\n\r\n static fetchProp(obj, prop: string) {\r\n if (typeof obj === 'undefined') {\r\n return false;\r\n }\r\n const index = prop.indexOf('.');\r\n\r\n if (index > -1) {\r\n return AXObjectUtil.fetchProp(obj[prop.substring(0, index)], prop.substr(index + 1));\r\n }\r\n\r\n return obj[prop];\r\n }\r\n\r\n static getPropByPath(obj, path, defaultVal?) {\r\n path = path\r\n .replace(/\\[/g, '.')\r\n .replace(/]/g, '')\r\n .split('.');\r\n\r\n path.forEach((level) => {\r\n if (obj) {\r\n obj = obj[level];\r\n }\r\n });\r\n\r\n if (obj === undefined) {\r\n return defaultVal;\r\n }\r\n return obj;\r\n }\r\n\r\n static setPropByPath(obj, path, value) {\r\n if (Object(obj) !== obj) { return obj; } // When obj is not an object\r\n // If not yet an array, get the keys from the string-path\r\n if (!Array.isArray(path)) { path = path.toString().match(/[^.[\\]]+/g) || []; }\r\n path.slice(0, -1).reduce((a, c, i) => // Iterate all of them except the last one\r\n Object(a[c]) === a[c] // Does the key exist and is its value an object?\r\n // Yes: then follow that path\r\n ? a[c]\r\n // No: create the key. Is the next key a potential array-index?\r\n : a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1]\r\n ? [] // Yes: assign a new array object\r\n : {}, // No: assign a new plain object\r\n obj)[path[path.length - 1]] = value; // Finally assign the value to the last key\r\n return obj; // Return the top-level object to allow chaining\r\n }\r\n}","export interface AXPoint {\r\n x: number;\r\n y: number;\r\n}\r\n\r\nexport interface AXBoundingClientRect {\r\n left?: number;\r\n top?: number;\r\n width?: number;\r\n height?: number;\r\n bottom?: number;\r\n right?: number;\r\n}\r\n// @dynamic\r\nexport class AXDrawingUtil {\r\n static collision(a: HTMLElement, b: HTMLElement): boolean {\r\n const ac = a.getBoundingClientRect();\r\n const bc = b.getBoundingClientRect();\r\n\r\n if (ac.left < bc.left + bc.width && ac.left + ac.width > bc.left &&\r\n ac.top < bc.top + bc.height && ac.top + ac.height > bc.top) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n static isInElementBound(pos: AXPoint, element: HTMLElement): boolean {\r\n const elBound = element.getBoundingClientRect();\r\n return AXDrawingUtil.isInRecPoint(pos, {\r\n left: elBound.x,\r\n width: elBound.width,\r\n top: elBound.y,\r\n height: elBound.height\r\n });\r\n }\r\n\r\n static isInRecPoint(pos: AXPoint, rec: AXBoundingClientRect): boolean {\r\n return pos.x >= rec.left && pos.x <= (rec.left + rec.width) && pos.y >= rec.top && (pos.y <= (rec.top + rec.height));\r\n }\r\n\r\n}","// @dynamic\r\nexport class AXStringUtil {\r\n\r\n static getWordBoundsAtPosition(str: string, position: number): { start: number, end: number } {\r\n const isSpace = (c) => /[^a-zA-Z0-9]+/i.exec(c);\r\n let start = position - 1;\r\n let end = position;\r\n\r\n while (start >= 0 && !isSpace(str[start])) {\r\n start -= 1;\r\n }\r\n start = Math.max(0, start + 1);\r\n\r\n while (end < str.length && !isSpace(str[end])) {\r\n end += 1;\r\n }\r\n end = Math.max(start, end);\r\n\r\n return { \r\n start, \r\n end \r\n };\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n\tname: 'safe',\r\n\tpure: true\r\n})\r\nexport class AXSafePipe implements PipeTransform {\r\n\r\n\tconstructor(protected sanitizer: DomSanitizer) { }\r\n\r\n\tpublic transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\r\n\t\tif (value == null || value == undefined || value == '')\r\n\t\t\treturn null;\r\n\t\tswitch (type) {\r\n\t\t\tcase 'html': return this.sanitizer.bypassSecurityTrustHtml(value);\r\n\t\t\tcase 'style': return this.sanitizer.bypassSecurityTrustStyle(value);\r\n\t\t\tcase 'script': return this.sanitizer.bypassSecurityTrustScript(value);\r\n\t\t\tcase 'url': return this.sanitizer.bypassSecurityTrustUrl(value);\r\n\t\t\tcase 'resourceUrl': return this.sanitizer.bypassSecurityTrustResourceUrl(value);\r\n\t\t\tdefault: throw new Error(`Invalid safe type specified: ${type}`);\r\n\t\t}\r\n\t}\r\n}","import { NgModule } from \"@angular/core\";\r\nimport { AXSafePipe } from \"./utils\";\r\n\r\n@NgModule({\r\n imports: [],\r\n exports: [AXSafePipe],\r\n declarations: [AXSafePipe],\r\n providers: [],\r\n})\r\nexport class AXCoreModule { }\r\n","import { Subject, Observable } from 'rxjs';\r\nimport { AXObjectUtil } from '../utils/object-util';\r\n\r\n// @dynamic\r\nexport class AXConfig {\r\n private static dataModel: any = {};\r\n private static dataChangeSubject = new Subject<any>();\r\n\r\n\r\n static get onChange(): Observable<any> {\r\n return AXConfig.dataChangeSubject.asObservable();\r\n }\r\n\r\n static set(config: any): any;\r\n static set(path: string, value?: any): void;\r\n static set(arg1?: any, arg2?: any) {\r\n\r\n if (arg1 && typeof arg1 == 'string') {\r\n AXObjectUtil.setPropByPath(AXConfig.dataModel, arg1, arg2);\r\n AXConfig.dataChangeSubject.next(AXConfig.dataModel);\r\n return;\r\n }\r\n if (arg1 && typeof arg1 == 'object') {\r\n //TODO : fix override\r\n Object.assign(AXConfig.dataModel, arg1);\r\n AXConfig.dataChangeSubject.next(AXConfig.dataModel);\r\n return;\r\n }\r\n if (!arg1 && !arg2) {\r\n return AXConfig.dataChangeSubject.asObservable();\r\n }\r\n }\r\n\r\n static get(path: string, defaultValue?: any): any {\r\n return AXObjectUtil.getPropByPath(AXConfig.dataModel, path) || defaultValue;\r\n }\r\n}","import { AXConfig } from '../config/configs';\r\n\r\n\r\n// export const AX_CALENDARS: any[] = [\r\n// {\r\n// name: 'gregorian',\r\n// type: 'GeorgianCalendar'\r\n// },\r\n// {\r\n// name: 'jalali',\r\n// type: 'JalaliCalendar'\r\n// }\r\n// ];\r\nexport type TimeUnit =\r\n | 'second'\r\n | 'minute'\r\n | 'hour'\r\n | 'day'\r\n | 'month'\r\n | 'year'\r\n | 'week';\r\n\r\nexport interface AXCalendar {\r\n monthNames: string[];\r\n\r\n monthShortNames: string[];\r\n\r\n dayNames: string[];\r\n\r\n dayShortNames: string[];\r\n\r\n name(): string;\r\n\r\n dayOfMonth(date: Date): number;\r\n\r\n dayOfYear(date: Date): number;\r\n\r\n dayOfWeek(date: Date): number;\r\n\r\n monthOfYear(date: Date): number;\r\n\r\n weekOfYear(date: Date): number;\r\n\r\n year(date: Date): number;\r\n\r\n\r\n\r\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime;\r\n\r\n set(date: Date, unit: TimeUnit, value: number): AXDateTime;\r\n\r\n startOf(date: Date, unit: TimeUnit): AXDateTime;\r\n\r\n\r\n endOf(date: Date, unit: TimeUnit): AXDateTime;\r\n}\r\n\r\n\r\n// @dynamic\r\nexport class AXDateTime {\r\n static convert(\r\n value: Date | AXDateTime | string,\r\n calendar: string = AXConfig.get('dateTime.type') || 'gregorian'\r\n ): AXDateTime {\r\n let date: AXDateTime;\r\n if (typeof value === 'string' || value instanceof String) {\r\n date = new AXDateTime(value as string, calendar);\r\n } else if (value instanceof Date) {\r\n date = new AXDateTime(value as Date, calendar);\r\n } else if (value instanceof AXDateTime) {\r\n date = new AXDateTime(value.date, calendar);\r\n }\r\n return date;\r\n }\r\n\r\n\r\n private _date: Date;\r\n\r\n get date(): Date {\r\n return this._date;\r\n }\r\n\r\n private _calendar: AXCalendar;\r\n get calendar(): AXCalendar {\r\n return this._calendar;\r\n }\r\n\r\n constructor(\r\n value: Date | string = new Date(),\r\n calendar: string | AXCalendar = AXConfig.get('dateTime.type') || 'gregorian'\r\n ) {\r\n this._calendar =\r\n // typeof calendar == 'string'\r\n // ? eval(`new ${AX_CALENDARS.find((c) => c.name == calendar).type}()`)\r\n // : calendar;\r\n typeof calendar == 'string'\r\n ? AXConfig.get(`dateTime.calendars.${calendar}`)\r\n : calendar;\r\n if (value instanceof Date) {\r\n this._date = value as Date;\r\n } else {\r\n this._date = new Date(value);\r\n }\r\n }\r\n\r\n clone(): AXDateTime {\r\n return new AXDateTime(this.date, this.calendar.name());\r\n }\r\n\r\n get dayOfMonth(): number {\r\n return this._calendar.dayOfMonth(this.date);\r\n }\r\n\r\n get dayOfYear(): number {\r\n return this._calendar.dayOfYear(this.date);\r\n }\r\n\r\n get dayOfWeek(): number {\r\n return this._calendar.dayOfWeek(this.date);\r\n }\r\n\r\n get hour(): number {\r\n return this._date.getHours();\r\n }\r\n\r\n get minute(): number {\r\n return this._date.getMinutes();\r\n }\r\n\r\n get second(): number {\r\n return this._date.getSeconds();\r\n }\r\n\r\n get year(): number {\r\n return this._calendar.year(this.date);\r\n }\r\n\r\n get monthOfYear(): number {\r\n return this._calendar.monthOfYear(this.date);\r\n }\r\n\r\n get weekOfYear(): number {\r\n return this._calendar.weekOfYear(this.date);\r\n }\r\n\r\n get month(): AXCalendarMonth {\r\n return new AXCalendarMonth(this);\r\n }\r\n\r\n add(unit: TimeUnit, amount: number): AXDateTime {\r\n return this._calendar.add(this.date, unit, amount);\r\n }\r\n\r\n set(unit: TimeUnit = 'day', value: number): AXDateTime {\r\n return this._calendar.set(this.date, unit, value);\r\n }\r\n\r\n duration(\r\n end: Date | AXDateTime,\r\n unit: TimeUnit = 'day'\r\n ): AXTimeSpan {\r\n const range = new AXDateTimeRange(\r\n this,\r\n AXDateTime.convert(end, this.calendar.name())\r\n );\r\n return range.duration();\r\n }\r\n\r\n startOf(unit: TimeUnit = 'day'): AXDateTime {\r\n return this._calendar.startOf(this.date, unit);\r\n }\r\n\r\n endOf(unit: TimeUnit = 'day'): AXDateTime {\r\n return this._calendar.endOf(this.date, unit);\r\n }\r\n\r\n format(\r\n format: string = AXConfig.get('dateTime.shortDateFormat') ||\r\n 'DDD, dd MMM yyyy'\r\n ): string {\r\n format = format.replace('ss', this.pad(this.date.getSeconds(), 2));\r\n format = format.replace('s', this.date.getSeconds().toString());\r\n format = format.replace(\r\n 'dd',\r\n this.pad(this.calendar.dayOfMonth(this.date), 2)\r\n );\r\n format = format.replace(\r\n 'd',\r\n this.calendar.dayOfMonth(this.date).toString()\r\n );\r\n format = format.replace('mm', this.pad(this.date.getMinutes(), 2));\r\n format = format.replace('m', this.date.getMinutes().toString());\r\n format = format.replace(\r\n 'MMMM',\r\n this.calendar.monthNames[this.calendar.monthOfYear(this.date) - 1]\r\n );\r\n format = format.replace(\r\n 'MMM',\r\n this.calendar.monthShortNames[this.calendar.monthOfYear(this.date) - 1]\r\n );\r\n format = format.replace(\r\n 'MM',\r\n this.pad(this.calendar.monthOfYear(this.date), 2)\r\n );\r\n format = format.replace(\r\n /M(?![ao])/,\r\n this.calendar.monthOfYear(this.date).toString()\r\n );\r\n format = format.replace(\r\n 'DDDD',\r\n this.calendar.dayNames[this.calendar.dayOfWeek(this.date) - 1]\r\n );\r\n format = format.replace(\r\n 'DDD',\r\n this.calendar.dayShortNames[this.calendar.dayOfWeek(this.date) - 1]\r\n );\r\n format = format.replace(\r\n /D(?!e)/,\r\n this.calendar.dayNames[this.calendar.dayOfWeek(this.date) - 1].substring(\r\n 0,\r\n 3\r\n )\r\n );\r\n format = format.replace('yyyy', this.calendar.year(this.date).toString());\r\n format = format.replace('YYYY', this.calendar.year(this.date).toString());\r\n format = format.replace(\r\n 'yy',\r\n this.calendar.year(this.date).toString().substring(2)\r\n );\r\n format = format.replace(\r\n 'YY',\r\n this.calendar.year(this.date).toString().substring(2)\r\n );\r\n format = format.replace('HH', this.pad(this.date.getHours(), 2));\r\n format = format.replace('H', this.date.getHours().toString());\r\n return format;\r\n }\r\n\r\n private pad(n, width, z = '0') {\r\n n = n + '';\r\n return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;\r\n }\r\n\r\n toString(): string {\r\n return this.format();\r\n }\r\n\r\n equal(value: Date | AXDateTime, unit: TimeUnit = 'day') {\r\n return this.compare(value, unit) == 0;\r\n }\r\n\r\n compare(value: Date | AXDateTime, unit: TimeUnit = 'day') {\r\n const val = AXDateTime.convert(value);\r\n const func = (v1: number, v2: number) => {\r\n if (v1 == v2) {\r\n return 0;\r\n } else if (v1 > v2) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n let p = 0;\r\n switch (unit) {\r\n case 'year':\r\n return func(this.year, val.year);\r\n case 'week':\r\n p = this.compare(val, 'year');\r\n return p == 0 ? func(this.weekOfYear, val.weekOfYear) : p;\r\n case 'month':\r\n p = this.compare(val, 'year');\r\n return p == 0 ? func(this.monthOfYear, val.monthOfYear) : p;\r\n case 'day':\r\n p = this.compare(val, 'year');\r\n return p == 0 ? func(this.dayOfYear, val.dayOfYear) : p;\r\n case 'hour':\r\n p = this.compare(val, 'day');\r\n return p == 0 ? func(this.hour, val.hour) : p;\r\n case 'minute':\r\n p = this.compare(val, 'hour');\r\n return p == 0 ? func(this.minute, val.minute) : p;\r\n case 'second':\r\n p = this.compare(val, 'minute');\r\n return p == 0 ? func(this.second, val.second) : p;\r\n default:\r\n return func(this.date.getTime(), val.date.getTime());\r\n }\r\n\r\n }\r\n\r\n convert(calendar: string) {\r\n return AXDateTime.convert(this, calendar);\r\n }\r\n}\r\n\r\nexport class AXCalendarMonth {\r\n private _range: AXDateTimeRange;\r\n public get range(): AXDateTimeRange {\r\n return this._range;\r\n }\r\n public set range(v: AXDateTimeRange) {\r\n this._range = v;\r\n }\r\n\r\n constructor(date: AXDateTime) {\r\n this.index = date.date.getMonth();\r\n this.name = date.format('MMMM');\r\n this.range = new AXDateTimeRange(\r\n new AXDateTime(date.startOf('month').date, date.calendar),\r\n new AXDateTime(date.endOf('month').date, date.calendar)\r\n );\r\n }\r\n\r\n private readonly index: number;\r\n private readonly name: string;\r\n}\r\n\r\nexport interface AXTimeSpanTotal {\r\n miliseconds: number;\r\n seconds: number;\r\n minutes: number;\r\n hours: number;\r\n days: number;\r\n weeks: number;\r\n months: number;\r\n years: number;\r\n}\r\n\r\nexport interface AXTimeSpan {\r\n miliseconds: number;\r\n seconds: number;\r\n minutes: number;\r\n hours: number;\r\n days: number;\r\n months: number;\r\n years: number;\r\n total: AXTimeSpanTotal;\r\n}\r\n\r\nexport class AXDateTimeRange {\r\n private _startTime: AXDateTime;\r\n private _endTime: AXDateTime;\r\n\r\n public get startTime(): AXDateTime {\r\n return this._startTime;\r\n }\r\n\r\n public get endTime(): AXDateTime {\r\n return this._endTime;\r\n }\r\n\r\n constructor(startTime: AXDateTime , endTime: AXDateTime ) {\r\n this._startTime = startTime;\r\n this._endTime = endTime;\r\n }\r\n\r\n duration(): AXTimeSpan {\r\n const result: AXTimeSpan = {\r\n miliseconds: 0,\r\n seconds: 0,\r\n minutes: 0,\r\n hours: 0,\r\n days: 0,\r\n months: 0,\r\n years: 0,\r\n total: {\r\n miliseconds: 0,\r\n seconds: 0,\r\n minutes: 0,\r\n hours: 0,\r\n days: 0,\r\n weeks: 0,\r\n months: 0,\r\n years: 0,\r\n },\r\n };\r\n\r\n const one_second = 1000;\r\n const one_min = one_second * 60;\r\n const one_hour = one_min * 60;\r\n const one_day = one_hour * 24;\r\n const one_week = one_day * 7;\r\n const one_year = 365.25 * one_day;\r\n const one_month = one_year / 12;\r\n const startTime = this._startTime.date.getTime();\r\n const endTime = this._endTime.date.getTime();\r\n const diff = Math.abs(endTime - startTime);\r\n //\r\n result.total.miliseconds = diff;\r\n result.total.seconds = Number((diff / one_second).toFixed(2));\r\n result.total.minutes = Number((diff / one_min).toFixed(2));\r\n result.total.hours = Number((diff / one_hour).toFixed(2));\r\n result.total.days = Number((diff / one_day).toFixed(2));\r\n result.total.weeks = Number((diff / one_week).toFixed(2));\r\n //\r\n // let months = (this.endTime.year - this.startTime.year) * 12;\r\n // months += this.endTime.monthOfYear - this.startTime.monthOfYear + 1;\r\n // if (this.endTime.dayOfYear < this.startTime.dayOfYear) {\r\n // months--;\r\n // }\r\n // result.total.months = Math.abs(months);\r\n // TODO: review\r\n result.total.months = Number((diff / one_month).toFixed(2));\r\n result.total.years = Number((diff / one_year).toFixed(2));\r\n //\r\n result.miliseconds = result.total.miliseconds % 1000;\r\n result.seconds = Number((result.total.seconds % 60).toFixed(0));\r\n result.minutes = Number((result.total.minutes % 60).toFixed(0));\r\n result.hours = Number((result.total.hours % 24).toFixed(0));\r\n // TODO: review\r\n result.days = Number((result.total.days % 30.4).toFixed(0));\r\n result.months = Number((result.total.months % 12).toFixed(0));\r\n result.years = Number(result.total.years.toFixed(0));\r\n return result;\r\n }\r\n\r\n enumurate(unit: TimeUnit = 'day', amount: number = 1): AXDateTime[] {\r\n // TODO: setptemper savingtime issue\r\n const result: AXDateTime[] = [];\r\n let item = this._startTime.clone();\r\n while (item.compare(this._endTime, unit) < 1) {\r\n result.push(item);\r\n item = item.add(unit, amount)\r\n }\r\n return result;\r\n }\r\n\r\n includes(value: AXDateTime, unit: TimeUnit = 'day'): boolean {\r\n // TODO: ??\r\n return true;\r\n }\r\n\r\n // getViewCompaire(view) {\r\n // switch (view) {\r\n // case 'day':\r\n // return 'YMD';\r\n // case 'month':\r\n // return 'YM';\r\n // case 'year':\r\n // return 'Y';\r\n // }\r\n // }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { AXDateTime } from './datetime.class';\r\n\r\n@Pipe({ name: 'axDate' })\r\nexport class AXDateTimePipe implements PipeTransform {\r\n constructor() { }\r\n\r\n transform(value: any, format?: string, calendar?: string): string {\r\n if (value == null) {\r\n return '';\r\n }\r\n const date: AXDateTime = value instanceof AXDateTime ? value.clone() : AXDateTime.convert(value, calendar);\r\n if (!format) {\r\n return date.toString();\r\n }\r\n else {\r\n return date.format(format);\r\n }\r\n }\r\n}","import { AXCalendar, AXDateTime, TimeUnit } from \"./datetime.class\";\r\n\r\nexport class GeorgianCalendar implements AXCalendar {\r\n\r\n monthNames = [\r\n \"January\", \"February\", \"March\",\r\n \"April\", \"May\", \"June\", \"July\",\r\n \"August\", \"September\", \"October\",\r\n \"November\", \"December\"\r\n ];\r\n\r\n monthShortNames = [\r\n \"Jan\", \"Feb\", \"Mar\",\r\n \"Apr\", \"May\", \"Jun\", \"Jul\",\r\n \"Aug\", \"Sep\", \"Oct\",\r\n \"Nov\", \"Dec\"\r\n ];\r\n\r\n dayNames = [\r\n \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\",\r\n \"Thursday\", \"Friday\", \"Saturday\"\r\n ];\r\n\r\n dayShortNames = [\r\n \"Sun\", \"Mon\", \"Tue\", \"Wed\",\r\n \"Thu\", \"Fri\", \"Sat\"\r\n ];\r\n\r\n name(): string {\r\n return 'gregorian'\r\n }\r\n\r\n dayOfMonth(date: Date): number {\r\n return date.getDate();\r\n }\r\n\r\n dayOfYear(date: Date): number {\r\n let result = 0;\r\n let m = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n if (this.isLeap(date)) { \r\n m[1] = 29;\r\n }\r\n for (let i = 0; i < date.getMonth(); i++) {\r\n result = result + m[i];\r\n }\r\n result += date.getDate();\r\n return result;\r\n }\r\n\r\n dayOfWeek(date: Date): number {\r\n return date.getDay() + 1;\r\n }\r\n\r\n weekOfYear(date: Date): number {\r\n const firstDay = new AXDateTime(date).startOf('year');\r\n return Math.ceil((((date.getTime() - firstDay.date.getTime()) / 86400000) + firstDay.date.getDay() + 1) / 7);\r\n }\r\n\r\n year(date: Date): number {\r\n return date.getFullYear();\r\n }\r\n\r\n monthOfYear(date: Date): number {\r\n return date.getMonth() + 1;\r\n }\r\n\r\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime {\r\n let value = date.valueOf();\r\n switch (unit) {\r\n case 'second':\r\n value += 1000 * amount;\r\n break\r\n case 'minute':\r\n value += 60000 * amount;\r\n break\r\n case 'hour':\r\n value += 3600000 * amount;\r\n break\r\n case 'month':\r\n const v = new Date(value);\r\n var mo = date.getMonth();\r\n var yr = date.getFullYear();\r\n mo = (mo + amount) % 12;\r\n if (0 > mo) {\r\n yr += (date.getMonth() + amount - mo - 12) / 12;\r\n mo += 12;\r\n }\r\n else\r\n yr += ((date.getMonth() + amount - mo) / 12);\r\n v.setMonth(mo);\r\n v.setFullYear(yr);\r\n value = v.valueOf();\r\n break\r\n case 'week':\r\n value += 7 * 86400000 * amount;\r\n break\r\n case 'year':\r\n const yv = new Date(value);\r\n yv.setFullYear(yv.getFullYear() + amount);\r\n value = yv.valueOf();\r\n break\r\n case 'day':\r\n default:\r\n value += 86400000 * amount;\r\n }\r\n return new AXDateTime(new Date(value), this.name());\r\n }\r\n\r\n set(date: Date, unit: TimeUnit, value: number): AXDateTime {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n startOf(date: Date, unit: TimeUnit): AXDateTime {\r\n const clone = new Date(date.valueOf());\r\n switch (unit) {\r\n case 'second':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 0);\r\n return new AXDateTime(clone, this.name());\r\n case 'minute':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n case 'hour':\r\n clone.setHours(clone.getHours(), 0, 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n default:\r\n case 'day':\r\n clone.setHours(0, 0, 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n case \"week\":\r\n const index = 0;\r\n const start = index >= 0 ? index : 0;\r\n const day = clone.getDay();\r\n const diff = clone.getDate() - day + (start > day ? start - 7 : start);\r\n clone.setDate(diff);\r\n return new AXDateTime(clone, this.name()).startOf('day');\r\n case \"month\":\r\n clone.setDate(1)\r\n return new AXDateTime(clone, this.name()).startOf('day');\r\n case \"year\":\r\n clone.setMonth(0);\r\n clone.setDate(1);\r\n return new AXDateTime(clone, this.name()).startOf('day');\r\n }\r\n }\r\n\r\n endOf(date: Date, unit: TimeUnit): AXDateTime {\r\n const clone = new Date(date.valueOf());\r\n switch (unit) {\r\n case 'second':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'minute':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'hour':\r\n clone.setHours(clone.getHours(), 59, 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n default:\r\n case 'day':\r\n clone.setHours(23, 59, 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'week':\r\n return this.startOf(date, 'week').add('day', 6).endOf('day');\r\n case 'month':\r\n return new AXDateTime(new Date(date.getFullYear(), date.getMonth() + 1, 0), this.name()).endOf('day');\r\n case \"year\":\r\n clone.setMonth(11);\r\n return new AXDateTime(clone, this.name()).endOf('month');\r\n }\r\n }\r\n\r\n isLeap(date: Date) {\r\n let leapYear = new Date(date.getFullYear(), 1, 29);\r\n return leapYear.getDate() == 29;\r\n }\r\n}","import { AXCalendar, AXDateTime, TimeUnit } from \"./datetime.class\";\r\n\r\nexport class JalaliCalendar implements AXCalendar {\r\n\r\n monthNames = (\"فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند\").split(\"_\");\r\n\r\n monthShortNames = (\"فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند\").split(\"_\");\r\n\r\n dayNames = (\"شنبه_یکشنبه_دوشنبه_سه شنبه_چهارشنبه_پنج شنبه_جمعه\").split(\"_\");\r\n\r\n dayShortNames = \"ش_ی_د_س_چ_پ_ج\".split(\"_\")\r\n\r\n name(): string {\r\n return 'jalali'\r\n }\r\n\r\n dayOfMonth(date: Date): number {\r\n return this.toJalali(date).day;\r\n }\r\n\r\n dayOfYear(date: Date): number {\r\n const j = this.toJalali(date);\r\n return (j.month <= 6 ? ((j.month - 1) * 31) : ((6 * 31) + (j.month - 7) * 30)) + j.day;\r\n }\r\n\r\n dayOfWeek(date: Date): number {\r\n return date.getDay() == 6 ? 1 : date.getDay() + 2;\r\n }\r\n\r\n weekOfYear(date: Date): number {\r\n //TODO : apply jalali\r\n const firstDay = new AXDateTime(date).startOf('year');\r\n return Math.ceil((((date.getTime() - firstDay.date.getTime()) / 86400000) + firstDay.date.getDay() + 1) / 7);\r\n }\r\n\r\n year(date: Date): number {\r\n return this.toJalali(date).year;\r\n }\r\n\r\n monthOfYear(date: Date): number {\r\n return this.toJalali(date).month;\r\n }\r\n\r\n\r\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime {\r\n let value = date.valueOf();\r\n switch (unit) {\r\n case 'second':\r\n value += 1000 * amount;\r\n break\r\n case 'minute':\r\n value += 60000 * amount;\r\n break\r\n case 'hour':\r\n value += 3600000 * amount;\r\n break\r\n case 'month':\r\n {\r\n const v = new Date(value);\r\n let jd = this.dayOfMonth(date);\r\n let jm = this.monthOfYear(date);\r\n let jy = this.year(date);\r\n jm = (jm + amount) % 12;\r\n if (0 > jm) {\r\n jy += (this.monthOfYear(date) + amount - jm - 12) / 12;\r\n jm += 12;\r\n }\r\n else {\r\n jy += ((this.monthOfYear(date) + amount - jm) / 12);\r\n }\r\n const vv = this.toGregorian(jy, jm, jd);\r\n v.setFullYear(vv.getFullYear());\r\n v.setMonth(vv.getMonth());\r\n v.setDate(vv.getDate());\r\n value = v.valueOf();\r\n break\r\n }\r\n case 'week':\r\n value += 7 * 86400000 * amount;\r\n break\r\n case 'year':\r\n {\r\n const v = new Date(value);\r\n let jd = this.dayOfMonth(date);\r\n let jm = this.monthOfYear(date);\r\n let jy = this.year(date);\r\n const vv = this.toGregorian(jy + amount, jm, jd);\r\n v.setFullYear(vv.getFullYear());\r\n v.setMonth(vv.getMonth());\r\n v.setDate(vv.getDate());\r\n value = v.valueOf();\r\n }\r\n break\r\n case 'day':\r\n default:\r\n value += 86400000 * amount;\r\n }\r\n return new AXDateTime(new Date(value), this.name());\r\n }\r\n\r\n set(date: Date, unit: TimeUnit, value: number): AXDateTime {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n startOf(date: Date, unit: TimeUnit): AXDateTime {\r\n const clone = new Date(date.valueOf());\r\n switch (unit) {\r\n case 'second':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 0);\r\n return new AXDateTime(clone, this.name());\r\n case 'minute':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n case 'hour':\r\n clone.setHours(clone.getHours(), 0, 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n default:\r\n case 'day':\r\n clone.setHours(0, 0, 0, 0);\r\n return new AXDateTime(clone, this.name());\r\n case \"week\":\r\n return new AXDateTime(clone, this.name()).add('day', -this.dayOfWeek(clone) + 1).startOf('day');\r\n case \"month\":\r\n {\r\n const jy = this.year(date);\r\n const jm = this.monthOfYear(date);\r\n const gDate = this.toGregorian(jy, jm, 1);\r\n return new AXDateTime(gDate, this.name()).startOf('day');\r\n }\r\n case \"year\":\r\n {\r\n const jy = this.year(date);\r\n const gDate = this.toGregorian(jy, 1, 1);\r\n return new AXDateTime(gDate, this.name()).startOf('day');\r\n }\r\n }\r\n }\r\n\r\n endOf(date: Date, unit: TimeUnit): AXDateTime {\r\n const clone = new Date(date.valueOf());\r\n switch (unit) {\r\n case 'second':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'minute':\r\n clone.setHours(clone.getHours(), clone.getMinutes(), 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'hour':\r\n clone.setHours(clone.getHours(), 59, 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n default:\r\n case 'day':\r\n clone.setHours(23, 59, 59, 999);\r\n return new AXDateTime(clone, this.name());\r\n case 'week':\r\n {\r\n return this.startOf(date, 'week').add('day', 6).endOf('day');\r\n }\r\n case 'month':\r\n {\r\n const jy = this.year(date);\r\n const jm = this.monthOfYear(date);\r\n const jd = this.monthLength(jy, jm);\r\n const gDate = this.toGregorian(jy, jm, jd);\r\n return new AXDateTime(gDate, this.name()).endOf('day');\r\n }\r\n case \"year\":\r\n let jy = this.year(date);\r\n const gDate = this.toGregorian(jy, 12, this.monthLength(jy, 12));\r\n return new AXDateTime(gDate, this.name()).endOf('day');\r\n }\r\n }\r\n\r\n\r\n\r\n toJalali(date: Date): { year: number, month: number, day: number } {\r\n const gy = date.getFullYear();\r\n const gm = date.getMonth() + 1;\r\n const gd = date.getDate();\r\n const r = this.d2j(this.g2d(gy, gm, gd))\r\n return {\r\n year: r.jy,\r\n month: r.jm,\r\n day: r.jd,\r\n }\r\n }\r\n\r\n /*\r\n Converts a Jalaali date to Gregorian.\r\n */\r\n toGregorian(jy, jm, jd) {\r\n const g = this.d2g(this.j2d(jy, jm, jd))\r\n return new Date(g.gy, g.gm - 1, g.gd);\r\n }\r\n\r\n /*\r\n Checks whether a Jalaali date is valid or not.\r\n */\r\n isValid(jy, jm, jd) {\r\n return jy >= -61 && jy <= 3177 &&\r\n jm >= 1 && jm <= 12 &&\r\n jd >= 1 && jd <= this.monthLength(jy, jm)\r\n }\r\n\r\n /*\r\n Is this a leap year or not?\r\n */\r\n isLeapYear(jy) {\r\n return this.jalCal(jy).leap === 0\r\n }\r\n\r\n /*\r\n Number of days in a given month in a Jalaali year.\r\n */\r\n monthLength(jy, jm) {\r\n if (jm <= 6) return 31\r\n if (jm <= 11) return 30\r\n if (this.isLeapYear(jy)) return 30\r\n return 29\r\n }\r\n\r\n\r\n private jalCal(jy) {\r\n // Jalaali years starting the 33-year rule.\r\n let breaks = [-61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210\r\n , 1635, 2060, 2097, 2192, 2262, 2324, 2394, 2456, 3178\r\n ]\r\n , bl = breaks.length\r\n , gy = jy + 621\r\n , leapJ = -14\r\n , jp = breaks[0]\r\n , jm\r\n , jump\r\n , leap\r\n , leapG\r\n , march\r\n , n\r\n , i\r\n\r\n if (jy < jp || jy >= breaks[bl - 1])\r\n throw new Error('Invalid Jalaali year ' + jy)\r\n\r\n // Find the limiting years for the Jalaali year jy.\r\n for (i = 1; i < bl; i += 1) {\r\n jm = breaks[i]\r\n jump = jm - jp\r\n if (jy < jm)\r\n break\r\n leapJ = leapJ + this.div(jump, 33) * 8 + this.div(this.mod(jump, 33), 4)\r\n jp = jm\r\n }\r\n n = jy - jp\r\n\r\n // Find the number of leap years from AD 621 to the beginning\r\n // of the current Jalaali year in the Persian calendar.\r\n leapJ = leapJ + this.div(n, 33) * 8 + this.div(this.mod(n, 33) + 3, 4)\r\n if (this.mod(jump, 33) === 4 && jump - n === 4)\r\n leapJ += 1\r\n\r\n // And the same in the Gregorian calendar (until the year gy).\r\n leapG = this.div(gy, 4) - this.div((this.div(gy, 100) + 1) * 3, 4) - 150\r\n\r\n // Determine the Gregorian date of Farvardin the 1st.\r\n march = 20 + leapJ - leapG\r\n\r\n // Find how many years have passed since the last leap year.\r\n if (jump - n < 6)\r\n n = n - jump + this.div(jump + 4, 33) * 33\r\n leap = this.mod(this.mod(n + 1, 33) - 1, 4)\r\n if (leap === -1) {\r\n leap = 4\r\n }\r\n\r\n return {\r\n leap: leap\r\n , gy: gy\r\n , march: march\r\n }\r\n }\r\n\r\n /*\r\n Converts a date of the Jalaali calendar to the Julian Day number.\r\n @param jy Jalaali year (1 to 3100)\r\n @param jm Jalaali month (1 to 12)\r\n @param jd Jalaali day (1 to 29/31)\r\n @return Julian Day number\r\n */\r\n private j2d(jy, jm, jd) {\r\n let r = this.jalCal(jy)\r\n return this.g2d(r.gy, 3, r.march) + (jm - 1) * 31 - this.div(jm, 7) * (jm - 7) + jd - 1\r\n }\r\n\r\n /*\r\n Converts the Julian Day number to a date in the Jalaali calendar.\r\n @param jdn Julian Day number\r\n @return\r\n jy: Jalaali year (1 to 3100)\r\n jm: Jalaali month (1 to 12)\r\n jd: Jalaali day (1 to 29/31)\r\n */\r\n private d2j(jdn) {\r\n let gy = this.d2g(jdn).gy // Calculate Gregorian year (gy).\r\n , jy = gy - 621\r\n , r = this.jalCal(jy)\r\n , jdn1f = this.g2d(gy, 3, r.march)\r\n , jd\r\n , jm\r\n , k\r\n\r\n // Find number of days that passed since 1 Farvardin.\r\n k = jdn - jdn1f\r\n if (k >= 0) {\r\n if (k <= 185) {\r\n // The first 6 months.\r\n jm = 1 + this.div(k, 31)\r\n jd = this.mod(k, 31) + 1\r\n return {\r\n jy: jy\r\n , jm: jm\r\n , jd: jd\r\n }\r\n } else {\r\n // The remaining months.\r\n k -= 186\r\n }\r\n } else {\r\n // Previous Jalaali year.\r\n jy -= 1\r\n k += 179\r\n if (r.leap === 1)\r\n k += 1\r\n }\r\n jm = 7 + this.div(k, 30)\r\n jd = this.mod(k, 30) + 1\r\n return {\r\n jy: jy\r\n , jm: jm\r\n , jd: jd\r\n }\r\n }\r\n\r\n\r\n private g2d(gy, gm, gd) {\r\n let d = this.div((gy + this.div(gm - 8, 6) + 100100) * 1461, 4)\r\n + this.div(153 * this.mod(gm + 9, 12) + 2, 5)\r\n + gd - 34840408\r\n d = d - this.div(this.div(gy + 100100 + this.div(gm - 8, 6), 100) * 3, 4) + 752\r\n return d\r\n }\r\n\r\n\r\n private d2g(jdn) {\r\n let j\r\n , i\r\n , gd\r\n , gm\r\n , gy\r\n j = 4 * jdn + 139361631\r\n j = j + this.div(this.div(4 * jdn + 183187720, 146097) * 3, 4) * 4 - 3908\r\n i = this.div(this.mod(j, 1461), 4) * 5 + 308\r\n gd = this.div(this.mod(i, 153), 5) + 1\r\n gm = this.mod(this.div(i, 153), 12) + 1\r\n gy = this.div(j, 1461) - 100100 + this.div(8 - gm, 6)\r\n return {\r\n gy: gy\r\n , gm: gm\r\n , gd: gd\r\n }\r\n }\r\n\r\n /*\r\n Utility helper functions.\r\n */\r\n private div(a, b) {\r\n return ~~(a / b)\r\n }\r\n\r\n private mod(a, b) {\r\n return a - ~~(a / b) * b\r\n }\r\n\r\n}","import { NgModule } from '@angular/core';\r\nimport { AXConfig } from '../config/configs';\r\nimport { AXDateTimePipe } from './datetime.pipe';\r\nimport { GeorgianCalendar } from './georgian.calendar';\r\nimport { JalaliCalendar } from './jalali.calendar';\r\n\r\n\r\n@NgModule({\r\n imports: [],\r\n exports: [AXDateTimePipe],\r\n declarations: [AXDateTimePipe],\r\n providers: [],\r\n})\r\nexport class AXDateTimeModule {\r\n\r\n constructor() {\r\n AXConfig.set({\r\n dateTime: {\r\n calendars: {\r\n jalali: new JalaliCalendar(),\r\n gregorian: new GeorgianCalendar()\r\n }\r\n }\r\n });\r\n\r\n }\r\n}\r\n","import { DOCUMENT } from \"@angular/common\";\r\nimport { Inject, Injectable } from \"@angular/core\";\r\nimport { EventManager } from \"@angular/platform-browser\";\r\nimport { Observable } from \"rxjs/internal/Observable\";\r\n\r\ntype Options = {\r\n element: any;\r\n keys: string;\r\n}\r\n\r\n@Injectable()\r\nexport class AXHotkeysService {\r\n defaults: Partial<Options> = {\r\n element: this.document\r\n }\r\n\r\n constructor(private eventManager: EventManager,\r\n @Inject(DOCUMENT) private document: Document) {\r\n }\r\n\r\n addShortcut(options: Partial<Options>) {\r\n const merged = { ...this.defaults, ...options };\r\n const event = `keydown.${merged.keys}`;\r\n\r\n return new Observable(observer => {\r\n const handler = (e) => {\r\n e.preventDefault()\r\n observer.next(e);\r\n };\r\n\r\n const dispose = this.eventManager.addEventListener(\r\n merged.element, event, handler\r\n );\r\n\r\n return () => {\r\n dispose();\r\n };\r\n })\r\n }\r\n}","import { Subject, Observable } from 'rxjs';\r\nimport merge from 'lodash-es/merge';\r\nimport { AXObjectUtil } from '../utils/object-util';\r\n\r\n// @dynamic\r\nexport class AXTranslator {\r\n private static lang: string = 'en';\r\n private static dataChangeSubject = new Subject<any>();\r\n\r\n\r\n static get onChange(): Observable<any> {\r\n return AXTranslator.dataChangeSubject.asObservable();\r\n }\r\n\r\n public static load(lang: string, value: any) {\r\n if (typeof value === 'object') {\r\n if (!AXTranslator[`__data__${lang}`]) {\r\n AXTranslator[`__data__${lang}`] = {};\r\n }\r\n AXTranslator[`__data__${lang}`] = merge(AXTranslator[`__data__${lang}`], value);\r\n }\r\n }\r\n\r\n public static use(lang: string) {\r\n AXTranslator.lang = lang;\r\n }\r\n\r\n public static get(key: string, lang?: string): string {\r\n return AXObjectUtil.getPropByPath(AXTranslator[`__data__${lang || AXTranslator.lang}`], key) || key;\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { AXTranslator } from './translator';\r\n\r\n@Pipe({ name: 'trans', pure: true })\r\nexport class AXTranslatorPipe implements PipeTransform {\r\n transform(value: string, lang?: string): string {\r\n return AXTranslator.get(value, lang);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { AXTranslatorPipe } from './translator.pipe';\r\n\r\n@NgModule({\r\n imports: [],\r\n exports: [AXTranslatorPipe],\r\n declarations: [AXTranslatorPipe],\r\n providers: [],\r\n})\r\nexport class AXTranslationModule {\r\n \r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n\r\nexport type AXPlatforms = 'Android' | 'Desktop' | 'iOS' | 'Mobile';\r\nexport type AXBrowsers = 'Chrome' | 'Safari' | 'Edge' | 'Firefox' | 'Opera' | 'MSIE';\r\nexport type AXTechnologies = 'PWA' | 'Hybrid' | 'Electron';\r\n\r\n\r\n\r\n\r\nconst isChrome = (win: Window): boolean =>\r\n testUserAgent(win, /Chrome/i);\r\n\r\nconst isFirefox = (win: Window): boolean =>\r\n testUserAgent(win, /Firefox/i);\r\n\r\nconst isEdge = (win: Window): boolean =>\r\n testUserAgent(win, /Edge/i);\r\n\r\nconst isSafari = (win: Window): boolean =>\r\n testUserAgent(win, /Safari/i);\r\n\r\nconst isOpera = (win: Window): boolean =>\r\n testUserAgent(win, /Opera/i) || testUserAgent(win, /OPR/i);\r\n\r\nconst isMSIE = (win: Window): boolean =>\r\n testUserAgent(win, /MSIE/i) || testUserAgent(win, /Trident/i);\r\n\r\n\r\nconst isMobileWeb = (win: Window): boolean =>\r\n isMobile(win) && !isHybrid(win);\r\n\r\nconst isIpad = (win: Window) => {\r\n // iOS 12 and below\r\n if (testUserAgent(win, /iPad/i)) {\r\n return true;\r\n }\r\n\r\n // iOS 13+\r\n if (testUserAgent(win, /Macintosh/i) && isMobile(win)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst isIphone = (win: Window) =>\r\n testUserAgent(win, /iPhone/i);\r\n\r\nconst isIOS = (win: Window) =>\r\n testUserAgent(win, /iPhone|iPod/i) || isIpad(win);\r\n\r\nconst isAndroid = (win: Window) =>\r\n testUserAgent(win, /android|sink/i);\r\n\r\nconst isAndroidTablet = (win: Window) => {\r\n return isAndroid(win) && !testUserAgent(win, /mobile/i);\r\n};\r\n\r\nconst isPhablet = (win: Window) => {\r\n const width = win.innerWidth;\r\n const height = win.innerHeight;\r\n const smallest = Math.min(width, height);\r\n const largest = Math.max(width, height);\r\n\r\n return (smallest > 390 && smallest < 520) &&\r\n (largest > 620 && largest < 800);\r\n};\r\n\r\nconst isTablet = (win: Window) => {\r\n const width = win.innerWidth;\r\n const height = win.innerHeight;\r\n const smallest = Math.min(width, height);\r\n const largest = Math.max(width, height);\r\n\r\n return (\r\n isIpad(win) ||\r\n isAndroidTablet(win) ||\r\n (\r\n (smallest > 460 && smallest < 820) &&\r\n (largest > 780 && largest < 1400)\r\n )\r\n );\r\n};\r\n\r\nconst isMobile = (win: Window) =>\r\n matchMedia(win, '(any-pointer:coarse)');\r\n\r\nconst isDesktop = (win: Window) =>\r\n !isMobile(win);\r\n\r\nconst isHybrid = (win: Window) =>\r\n isCordova(win) || isCapacitorNative(win);\r\n\r\nconst isCordova = (win: any): boolean =>\r\n !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);\r\n\r\nconst isCapacitorNative = (win: any): boolean => {\r\n const capacitor = win['Capacitor'];\r\n return !!(capacitor && capacitor.isNative);\r\n};\r\n\r\nconst isElectron = (win: Window): boolean =>\r\n testUserAgent(win, /electron/i);\r\n\r\nconst isPWA = (win: Window): boolean =>\r\n !!(win.matchMedia('(display-mode: standalone)').matches || (win.navigator as any).standalone);\r\n\r\nexport const testUserAgent = (win: Window, expr: RegExp) =>\r\n expr.test(win.navigator.userAgent);\r\n\r\nconst matchMedia = (win: Window, query: string): boolean =>\r\n win.matchMedia(query).matches;\r\n\r\n\r\nconst PLATFORMS_MAP = {\r\n 'Android': isAndroid,\r\n 'iOS': isIOS,\r\n 'Desktop': isDesktop,\r\n 'Mobile': isMobile,\r\n 'Chrome': isChrome,\r\n 'Firefox': isFirefox,\r\n 'Safari': isSafari,\r\n 'Edge': isEdge,\r\n 'Opera': isOpera,\r\n 'Hybrid': isHybrid,\r\n 'PWA': isPWA,\r\n 'Electron': isElectron,\r\n};\r\n\r\n\r\nexport class AXPlatformEvent {\r\n nativeEvent: UIEvent | Event;\r\n source: AXPlatform\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'platform',\r\n})\r\nexport class AXPlatform {\r\n resize: Subject<AXPlatformEvent> = new Subject<AXPlatformEvent>();\r\n click: Subject<AXPlatformEvent> = new Subject<AXPlatformEvent>()\r\n scroll: Subject<AXPlatformEvent> = new Subject<AXPlatformEvent>()\r\n\r\n isRtl(): boolean {\r\n return document.dir == 'rtl' || document.body.dir == 'rtl' || document.body.style.direction == 'rtl';\r\n }\r\n\r\n\r\n isLandscape(): boolean {\r\n return window.innerHeight < window.innerWidth;\r\n }\r\n\r\n isPortrate(): boolean {\r\n return !this.isLandscape()\r\n }\r\n\r\n is(name: AXPlatforms | AXBrowsers | AXTechnologies): boolean {\r\n return PLATFORMS_MAP[name](window) || false;\r\n }\r\n\r\n\r\n switchDarkMode() {\r\n const _html = document.getElementsByTagName(\"html\")[0];\r\n _html.classList.add('ax-dark')\r\n\r\n }\r\n\r\n switchLightMode() {\r\n const _html = document.getElementsByTagName(\"html\")[0];\r\n _html.classList.remove('ax-dark')\r\n }\r\n\r\n constructor() {\r\n window.addEventListener('resize', (e) => {\r\n this.resize.next({\r\n nativeEvent: e,\r\n source: this\r\n });\r\n })\r\n\r\n document.addEventListener('click', (e) => {\r\n this.click.next({\r\n nativeEvent: e,\r\n source: this\r\n });\r\n }, true)\r\n\r\n document.addEventListener('scroll', (e) => {\r\n this.scroll.next({\r\n nativeEvent: e,\r\n source: this\r\n });\r\n }, true)\r\n }\r\n}","\r\n/**\r\n * Public API refrences of core libraries\r\n * @module @acorex/core\r\n */\r\nexport * from './lib/core.module';\r\nexport * from './lib/dateTime';\r\nexport * from './lib/hotkeys';\r\nexport * from './lib/utils';\r\nexport * from './lib/config/configs';\r\nexport * from './lib/translation';\r\nexport * from './lib/platform';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Pipe","NgModule","Subject","Observable","DOCUMENT","Injectable","Inject","merge"],"mappings":"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"}
|