@acorex/core 6.5.14 → 6.5.15
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/acorex-core.d.ts +5 -0
- package/esm2020/acorex-core.mjs +5 -0
- package/esm2020/lib/classes/base-page.class.mjs +28 -0
- package/esm2020/lib/classes/color.class.mjs +49 -0
- package/esm2020/lib/classes/datetime.class.mjs +314 -0
- package/esm2020/lib/classes/menu.class.mjs +27 -0
- package/esm2020/lib/classes/navigator.class.mjs +2 -0
- package/esm2020/lib/classes/popup.class.mjs +2 -0
- package/esm2020/lib/classes/promise.class.mjs +19 -0
- package/esm2020/lib/classes/sectionlist.class.mjs +2 -0
- package/esm2020/lib/classes/select.class.mjs +3 -0
- package/esm2020/lib/core.module.mjs +27 -0
- package/esm2020/lib/error/error.class.mjs +2 -0
- package/esm2020/lib/error/error.module.mjs +19 -0
- package/esm2020/lib/error/error.service.mjs +21 -0
- package/esm2020/lib/events/keyboard.mjs +2 -0
- package/esm2020/lib/http/http-error.class.mjs +2 -0
- package/esm2020/lib/http/http-events.interceptor.mjs +3 -0
- package/esm2020/lib/http/http-request.class.mjs +2 -0
- package/esm2020/lib/http/http-result.class.mjs +21 -0
- package/esm2020/lib/http/http.module.mjs +37 -0
- package/esm2020/lib/http/http.service.mjs +145 -0
- package/{src → esm2020}/lib/locale/en.json +6 -6
- package/{src → esm2020}/lib/locale/fa.json +7 -7
- package/esm2020/lib/pipe/datetime.pipe.mjs +25 -0
- package/esm2020/lib/pipe/htmlToText.pipe.mjs +25 -0
- package/esm2020/lib/platform/index.mjs +2 -0
- package/esm2020/lib/platform/platform.service.mjs +138 -0
- package/esm2020/lib/services/config.mjs +29 -0
- package/esm2020/lib/services/event.service.mjs +36 -0
- package/esm2020/lib/services/navigator.service.mjs +10 -0
- package/esm2020/lib/services/storage.service.mjs +16 -0
- package/esm2020/lib/translator/translator.mjs +26 -0
- package/esm2020/lib/translator/translator.module.mjs +25 -0
- package/esm2020/lib/translator/translator.pipe.mjs +24 -0
- package/esm2020/lib/translator/translator.service.mjs +21 -0
- package/esm2020/lib/utils/array/array-util.mjs +133 -0
- package/esm2020/lib/utils/html/html-util.mjs +192 -0
- package/esm2020/lib/utils/html/html.module.mjs +19 -0
- package/esm2020/lib/utils/math/math-util.mjs +6 -0
- package/esm2020/lib/utils/object/object-util.mjs +83 -0
- package/esm2020/lib/utils/render/on-demand-preload-strategy.service.mjs +20 -0
- package/esm2020/lib/utils/render/render.service.mjs +103 -0
- package/esm2020/lib/utils/render/rendering.module.mjs +35 -0
- package/esm2020/lib/utils/scroll/scroll.directive.mjs +54 -0
- package/esm2020/lib/utils/scroll/scroll.module.mjs +19 -0
- package/esm2020/lib/utils/separator/separator.module.mjs +19 -0
- package/esm2020/lib/utils/separator/separator.pipe.mjs +33 -0
- package/esm2020/public-api.mjs +44 -0
- package/fesm2015/acorex-core.mjs +2262 -0
- package/fesm2015/acorex-core.mjs.map +1 -0
- package/fesm2020/acorex-core.mjs +2258 -0
- package/fesm2020/acorex-core.mjs.map +1 -0
- package/lib/classes/base-page.class.d.ts +13 -0
- package/lib/classes/color.class.d.ts +17 -0
- package/lib/classes/datetime.class.d.ts +63 -0
- package/lib/classes/menu.class.d.ts +34 -0
- package/{src/lib/classes/navigator.class.ts → lib/classes/navigator.class.d.ts} +1 -1
- package/{src/lib/classes/popup.class.ts → lib/classes/popup.class.d.ts} +0 -2
- package/lib/classes/promise.class.d.ts +7 -0
- package/lib/classes/select.class.d.ts +7 -0
- package/lib/core.module.d.ts +9 -0
- package/lib/error/error.module.d.ts +7 -0
- package/lib/error/error.service.d.ts +13 -0
- package/{src/lib/events/keyboard.ts → lib/events/keyboard.d.ts} +0 -3
- package/{src/lib/http/http-error.class.ts → lib/http/http-error.class.d.ts} +2 -2
- package/{src/lib/http/http-events.interceptor.ts → lib/http/http-events.interceptor.d.ts} +3 -7
- package/{src/lib/http/http-request.class.ts → lib/http/http-request.class.d.ts} +5 -5
- package/lib/http/http-result.class.d.ts +11 -0
- package/lib/http/http.module.d.ts +10 -0
- package/lib/http/http.service.d.ts +23 -0
- package/lib/pipe/datetime.pipe.d.ts +8 -0
- package/lib/pipe/htmlToText.pipe.d.ts +7 -0
- package/lib/platform/index.d.ts +1 -0
- package/lib/platform/platform.service.d.ts +25 -0
- package/lib/services/config.d.ts +9 -0
- package/lib/services/event.service.d.ts +9 -0
- package/lib/services/navigator.service.d.ts +8 -0
- package/lib/services/storage.service.d.ts +7 -0
- package/lib/translator/translator.d.ts +9 -0
- package/lib/translator/translator.module.d.ts +8 -0
- package/lib/translator/translator.pipe.d.ts +8 -0
- package/lib/translator/translator.service.d.ts +8 -0
- package/lib/utils/array/array-util.d.ts +6 -0
- package/lib/utils/html/html-util.d.ts +62 -0
- package/lib/utils/html/html.module.d.ts +8 -0
- package/lib/utils/math/math-util.d.ts +3 -0
- package/lib/utils/object/object-util.d.ts +7 -0
- package/lib/utils/render/on-demand-preload-strategy.service.d.ts +10 -0
- package/lib/utils/render/render.service.d.ts +18 -0
- package/lib/utils/render/rendering.module.d.ts +8 -0
- package/lib/utils/scroll/scroll.directive.d.ts +18 -0
- package/lib/utils/scroll/scroll.module.d.ts +8 -0
- package/lib/utils/separator/separator.module.d.ts +8 -0
- package/lib/utils/separator/separator.pipe.d.ts +8 -0
- package/package.json +33 -13
- package/{src/public-api.ts → public-api.d.ts} +0 -10
- package/karma.conf.js +0 -32
- package/ng-package.json +0 -10
- package/src/lib/classes/base-page.class.ts +0 -29
- package/src/lib/classes/color.class.ts +0 -61
- package/src/lib/classes/datetime.class.ts +0 -373
- package/src/lib/classes/menu.class.ts +0 -37
- package/src/lib/classes/promise.class.ts +0 -25
- package/src/lib/classes/select.class.ts +0 -7
- package/src/lib/core.module.ts +0 -21
- package/src/lib/error/error.module.ts +0 -13
- package/src/lib/error/error.service.ts +0 -23
- package/src/lib/error/index.ts +0 -3
- package/src/lib/http/http-result.class.ts +0 -34
- package/src/lib/http/http.module.ts +0 -25
- package/src/lib/http/http.service.ts +0 -159
- package/src/lib/pipe/datetime.pipe.ts +0 -20
- package/src/lib/pipe/htmlToText.pipe.ts +0 -18
- package/src/lib/platform/index.ts +0 -1
- package/src/lib/platform/platform.service.ts +0 -211
- package/src/lib/services/config.ts +0 -36
- package/src/lib/services/event.service.ts +0 -31
- package/src/lib/services/navigator.service.ts +0 -8
- package/src/lib/services/storage.service.ts +0 -11
- package/src/lib/translator/translator.module.ts +0 -19
- package/src/lib/translator/translator.pipe.ts +0 -22
- package/src/lib/translator/translator.service.ts +0 -19
- package/src/lib/translator/translator.ts +0 -31
- package/src/lib/utils/array/array-util.ts +0 -140
- package/src/lib/utils/html/html-util.ts +0 -264
- package/src/lib/utils/html/html.module.ts +0 -11
- package/src/lib/utils/math/math-util.ts +0 -5
- package/src/lib/utils/object/object-util.ts +0 -87
- package/src/lib/utils/render/on-demand-preload-strategy.service.ts +0 -25
- package/src/lib/utils/render/render.service.ts +0 -110
- package/src/lib/utils/render/rendering.module.ts +0 -25
- package/src/lib/utils/scroll/scroll.directive.ts +0 -35
- package/src/lib/utils/scroll/scroll.module.ts +0 -11
- package/src/lib/utils/separator/separator.module.ts +0 -11
- package/src/lib/utils/separator/separator.pipe.ts +0 -27
- package/src/test.ts +0 -28
- package/tsconfig.lib.json +0 -25
- package/tsconfig.lib.prod.json +0 -6
- package/tsconfig.spec.json +0 -18
- package/tslint.json +0 -17
- /package/{src/lib/classes/sectionlist.class.ts → lib/classes/sectionlist.class.d.ts} +0 -0
- /package/{src/lib/error/error.class.ts → lib/error/error.class.d.ts} +0 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class AXStorageService {
|
|
4
|
+
get(key) {
|
|
5
|
+
return localStorage.getItem(key);
|
|
6
|
+
}
|
|
7
|
+
set(key, value) {
|
|
8
|
+
localStorage.setItem(key, value);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
AXStorageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12
|
+
AXStorageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXStorageService });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXStorageService, decorators: [{
|
|
14
|
+
type: Injectable
|
|
15
|
+
}] });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUMxQixHQUFHLENBQUMsR0FBVztRQUNaLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQVEsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFVO1FBQ3hCLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQWUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7OzhHQU5TLGdCQUFnQjtrSEFBaEIsZ0JBQWdCOzRGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBWFN0b3JhZ2VTZXJ2aWNlIHtcclxuICAgZ2V0KGtleTogc3RyaW5nKTogYW55IHtcclxuICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkgYXMgYW55O1xyXG4gICB9XHJcbiAgIHNldChrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIHZhbHVlIGFzIHN0cmluZyk7XHJcbiAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Subject } from 'rxjs';
|
|
2
|
+
import { getPropByPath } from '../utils/object/object-util';
|
|
3
|
+
import merge from 'lodash-es/merge';
|
|
4
|
+
// @dynamic
|
|
5
|
+
export class AXTranslator {
|
|
6
|
+
static get onChange() {
|
|
7
|
+
return AXTranslator.dataChangeSubject.asObservable();
|
|
8
|
+
}
|
|
9
|
+
static load(lang, value) {
|
|
10
|
+
if (typeof value === 'object') {
|
|
11
|
+
if (!AXTranslator[`__data__${lang}`]) {
|
|
12
|
+
AXTranslator[`__data__${lang}`] = {};
|
|
13
|
+
}
|
|
14
|
+
AXTranslator[`__data__${lang}`] = merge(AXTranslator[`__data__${lang}`], value);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
static use(lang) {
|
|
18
|
+
AXTranslator.lang = lang;
|
|
19
|
+
}
|
|
20
|
+
static get(key, lang) {
|
|
21
|
+
return getPropByPath(AXTranslator[`__data__${lang || AXTranslator.lang}`], key) || key;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
AXTranslator.lang = 'en';
|
|
25
|
+
AXTranslator.dataChangeSubject = new Subject();
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL3NyYy9saWIvdHJhbnNsYXRvci90cmFuc2xhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sS0FBSyxNQUFNLGlCQUFpQixDQUFDO0FBRXBDLFdBQVc7QUFDWCxNQUFNLE9BQU8sWUFBWTtJQUtyQixNQUFNLEtBQUssUUFBUTtRQUNmLE9BQU8sWUFBWSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFTSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQVksRUFBRSxLQUFVO1FBQ3ZDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxFQUFFO2dCQUNsQyxZQUFZLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQzthQUN4QztZQUNELFlBQVksQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDbkY7SUFDTCxDQUFDO0lBRU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFZO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFFTSxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQVcsRUFBRSxJQUFhO1FBQ3hDLE9BQU8sYUFBYSxDQUFDLFlBQVksQ0FBQyxXQUFXLElBQUksSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUM7SUFDM0YsQ0FBQzs7QUF2QmMsaUJBQUksR0FBVyxJQUFJLENBQUM7QUFDcEIsOEJBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZ2V0UHJvcEJ5UGF0aH0gZnJvbSAnLi4vdXRpbHMvb2JqZWN0L29iamVjdC11dGlsJztcclxuaW1wb3J0IG1lcmdlIGZyb20gJ2xvZGFzaC1lcy9tZXJnZSc7XHJcblxyXG4vLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgQVhUcmFuc2xhdG9yIHtcclxuICAgIHByaXZhdGUgc3RhdGljIGxhbmc6IHN0cmluZyA9ICdlbic7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBkYXRhQ2hhbmdlU3ViamVjdCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuXHJcblxyXG4gICAgc3RhdGljIGdldCBvbkNoYW5nZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiBBWFRyYW5zbGF0b3IuZGF0YUNoYW5nZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBsb2FkKGxhbmc6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgIGlmICghQVhUcmFuc2xhdG9yW2BfX2RhdGFfXyR7bGFuZ31gXSkge1xyXG4gICAgICAgICAgICAgICAgQVhUcmFuc2xhdG9yW2BfX2RhdGFfXyR7bGFuZ31gXSA9IHt9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEFYVHJhbnNsYXRvcltgX19kYXRhX18ke2xhbmd9YF0gPSBtZXJnZShBWFRyYW5zbGF0b3JbYF9fZGF0YV9fJHtsYW5nfWBdLCB2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgdXNlKGxhbmc6IHN0cmluZykge1xyXG4gICAgICAgIEFYVHJhbnNsYXRvci5sYW5nID0gbGFuZztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldChrZXk6IHN0cmluZywgbGFuZz86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGdldFByb3BCeVBhdGgoQVhUcmFuc2xhdG9yW2BfX2RhdGFfXyR7bGFuZyB8fCBBWFRyYW5zbGF0b3IubGFuZ31gXSwga2V5KSB8fCBrZXk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { AXTranslatorPipe } from './translator.pipe';
|
|
3
|
+
import * as en from '../locale/en.json';
|
|
4
|
+
import * as fa from '../locale/fa.json';
|
|
5
|
+
import { AXTranslator } from './translator';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class AXTranslatorModule {
|
|
8
|
+
constructor() {
|
|
9
|
+
AXTranslator.load('en', en);
|
|
10
|
+
AXTranslator.load('fa', fa);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
AXTranslatorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTranslatorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14
|
+
AXTranslatorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTranslatorModule, declarations: [AXTranslatorPipe], exports: [AXTranslatorPipe] });
|
|
15
|
+
AXTranslatorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTranslatorModule, providers: [], imports: [[]] });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTranslatorModule, decorators: [{
|
|
17
|
+
type: NgModule,
|
|
18
|
+
args: [{
|
|
19
|
+
imports: [],
|
|
20
|
+
exports: [AXTranslatorPipe],
|
|
21
|
+
declarations: [AXTranslatorPipe],
|
|
22
|
+
providers: [],
|
|
23
|
+
}]
|
|
24
|
+
}], ctorParameters: function () { return []; } });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvbGliL3RyYW5zbGF0b3IvdHJhbnNsYXRvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFTNUMsTUFBTSxPQUFPLGtCQUFrQjtJQUMzQjtRQUNJLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7O2dIQUpRLGtCQUFrQjtpSEFBbEIsa0JBQWtCLGlCQUhaLGdCQUFnQixhQURyQixnQkFBZ0I7aUhBSWpCLGtCQUFrQixhQUZoQixFQUFFLFlBSEosRUFBRTs0RkFLRixrQkFBa0I7a0JBTjlCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQzNCLFlBQVksRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUNoQyxTQUFTLEVBQUUsRUFBRTtpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWFRyYW5zbGF0b3JQaXBlIH0gZnJvbSAnLi90cmFuc2xhdG9yLnBpcGUnO1xyXG5pbXBvcnQgKiBhcyBlbiBmcm9tICcuLi9sb2NhbGUvZW4uanNvbic7XHJcbmltcG9ydCAqIGFzIGZhIGZyb20gJy4uL2xvY2FsZS9mYS5qc29uJztcclxuaW1wb3J0IHsgQVhUcmFuc2xhdG9yIH0gZnJvbSAnLi90cmFuc2xhdG9yJztcclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW10sXHJcbiAgICBleHBvcnRzOiBbQVhUcmFuc2xhdG9yUGlwZV0sXHJcbiAgICBkZWNsYXJhdGlvbnM6IFtBWFRyYW5zbGF0b3JQaXBlXSxcclxuICAgIHByb3ZpZGVyczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFRyYW5zbGF0b3JNb2R1bGUge1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgQVhUcmFuc2xhdG9yLmxvYWQoJ2VuJywgZW4pO1xyXG4gICAgICAgIEFYVHJhbnNsYXRvci5sb2FkKCdmYScsIGZhKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { AXTranslator } from './translator';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class AXTranslatorPipe {
|
|
5
|
+
constructor() { }
|
|
6
|
+
// transform(value: string, lang?: string): Promise<string> {
|
|
7
|
+
// return new Promise<string>((resolve, reject) => {
|
|
8
|
+
// if (!value) {
|
|
9
|
+
// resolve(value);
|
|
10
|
+
// }
|
|
11
|
+
// resolve(this.translate.get(value, lang));
|
|
12
|
+
// });
|
|
13
|
+
// }
|
|
14
|
+
transform(value, lang) {
|
|
15
|
+
return AXTranslator.get(value, lang);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
AXTranslatorPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTranslatorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
19
|
+
AXTranslatorPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTranslatorPipe, name: "trans" });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTranslatorPipe, decorators: [{
|
|
21
|
+
type: Pipe,
|
|
22
|
+
args: [{ name: 'trans', pure: true }]
|
|
23
|
+
}], ctorParameters: function () { return []; } });
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRvci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvc3JjL2xpYi90cmFuc2xhdG9yL3RyYW5zbGF0b3IucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUc1QyxNQUFNLE9BQU8sZ0JBQWdCO0lBRXpCLGdCQUFnQixDQUFDO0lBRWpCLDZEQUE2RDtJQUM3RCx3REFBd0Q7SUFDeEQsd0JBQXdCO0lBQ3hCLDhCQUE4QjtJQUM5QixZQUFZO0lBQ1osb0RBQW9EO0lBQ3BELFVBQVU7SUFFVixJQUFJO0lBRUosU0FBUyxDQUFDLEtBQWEsRUFBRSxJQUFhO1FBQ2xDLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQzs7OEdBaEJRLGdCQUFnQjs0R0FBaEIsZ0JBQWdCOzRGQUFoQixnQkFBZ0I7a0JBRDVCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYVHJhbnNsYXRvciB9IGZyb20gJy4vdHJhbnNsYXRvcic7XHJcblxyXG5AUGlwZSh7IG5hbWU6ICd0cmFucycsIHB1cmU6IHRydWUgfSlcclxuZXhwb3J0IGNsYXNzIEFYVHJhbnNsYXRvclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICAgIC8vIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nLCBsYW5nPzogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIC8vICAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAvLyAgICAgICAgIGlmICghdmFsdWUpIHtcclxuICAgIC8vICAgICAgICAgICAgIHJlc29sdmUodmFsdWUpO1xyXG4gICAgLy8gICAgICAgICB9XHJcbiAgICAvLyAgICAgICAgIHJlc29sdmUodGhpcy50cmFuc2xhdGUuZ2V0KHZhbHVlLCBsYW5nKSk7XHJcbiAgICAvLyAgICAgfSk7XHJcblxyXG4gICAgLy8gfVxyXG5cclxuICAgIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nLCBsYW5nPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gQVhUcmFuc2xhdG9yLmdldCh2YWx1ZSwgbGFuZyk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { AXTranslator } from './translator';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class AXTranslatorService {
|
|
5
|
+
load(lang, value) {
|
|
6
|
+
AXTranslator.load(lang, value);
|
|
7
|
+
}
|
|
8
|
+
use(lang) {
|
|
9
|
+
AXTranslator.use(lang);
|
|
10
|
+
}
|
|
11
|
+
get(key, lang) {
|
|
12
|
+
return AXTranslator.get(lang, lang);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
AXTranslatorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTranslatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
16
|
+
AXTranslatorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTranslatorService, providedIn: 'platform' });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTranslatorService, decorators: [{
|
|
18
|
+
type: Injectable,
|
|
19
|
+
args: [{ providedIn: 'platform' }]
|
|
20
|
+
}] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvc3JjL2xpYi90cmFuc2xhdG9yL3RyYW5zbGF0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRzVDLE1BQU0sT0FBTyxtQkFBbUI7SUFFckIsSUFBSSxDQUFDLElBQVksRUFBRSxLQUFVO1FBQ2hDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxHQUFHLENBQUMsSUFBWTtRQUNuQixZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTSxHQUFHLENBQUMsR0FBVyxFQUFFLElBQWE7UUFDakMsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDOztpSEFaUSxtQkFBbUI7cUhBQW5CLG1CQUFtQixjQUROLFVBQVU7NEZBQ3ZCLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYVHJhbnNsYXRvciB9IGZyb20gJy4vdHJhbnNsYXRvcic7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdwbGF0Zm9ybScgfSlcclxuZXhwb3J0IGNsYXNzIEFYVHJhbnNsYXRvclNlcnZpY2Uge1xyXG5cclxuICAgIHB1YmxpYyBsb2FkKGxhbmc6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG4gICAgICAgIEFYVHJhbnNsYXRvci5sb2FkKGxhbmcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdXNlKGxhbmc6IHN0cmluZykge1xyXG4gICAgICAgIEFYVHJhbnNsYXRvci51c2UobGFuZyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldChrZXk6IHN0cmluZywgbGFuZz86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIEFYVHJhbnNsYXRvci5nZXQobGFuZywgbGFuZyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { AXFetchProp } from '../object/object-util';
|
|
2
|
+
// @dynamic
|
|
3
|
+
export class AXArrayUtil {
|
|
4
|
+
static pickRandom(array) {
|
|
5
|
+
return array[Math.floor(Math.random() * array.length)];
|
|
6
|
+
}
|
|
7
|
+
static insert(array, index, ...rest) {
|
|
8
|
+
array.splice.apply(array, [index, 0].concat(Array.prototype.slice.call(rest, 1)));
|
|
9
|
+
return array;
|
|
10
|
+
}
|
|
11
|
+
static range(min, max) {
|
|
12
|
+
return new Array(max - min).fill(1).map((d, i) => i);
|
|
13
|
+
}
|
|
14
|
+
static filter(array, filters) {
|
|
15
|
+
if (filters == null || filters.length === 0) {
|
|
16
|
+
return array;
|
|
17
|
+
}
|
|
18
|
+
const lamda = (item) => {
|
|
19
|
+
let result = true;
|
|
20
|
+
for (const key in filters) {
|
|
21
|
+
if (filters.hasOwnProperty(key)) {
|
|
22
|
+
const f = filters[key];
|
|
23
|
+
if (f !== 'AND') {
|
|
24
|
+
const vals = [];
|
|
25
|
+
const mt = f.field.match(/\[\:(.*?)\]/);
|
|
26
|
+
if (mt && mt.length > 1) {
|
|
27
|
+
const p1 = f.field.replace(mt[0], '');
|
|
28
|
+
const p2 = mt[1];
|
|
29
|
+
const prop = AXFetchProp(item, p1);
|
|
30
|
+
if (prop instanceof Array && prop.length) {
|
|
31
|
+
vals.push(...prop.map(m => (AXFetchProp(m, p2))));
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
result = false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
vals.push(AXFetchProp(item, f.field));
|
|
39
|
+
}
|
|
40
|
+
for (const j in vals) {
|
|
41
|
+
if (vals.hasOwnProperty(j)) {
|
|
42
|
+
let v1 = vals[j];
|
|
43
|
+
const v2 = f.value;
|
|
44
|
+
if (f.dataType === 'string') {
|
|
45
|
+
v1 = v1.toString();
|
|
46
|
+
switch (f.condition) {
|
|
47
|
+
case 'equal':
|
|
48
|
+
result = (v1 && v2) && v1.toLowerCase() === v2.toLowerCase();
|
|
49
|
+
break;
|
|
50
|
+
case 'not-equal':
|
|
51
|
+
result = !((v1 && v2) && v1.toLowerCase() === v2.toLowerCase());
|
|
52
|
+
break;
|
|
53
|
+
case 'contains':
|
|
54
|
+
result = ((v1 && v2) && (v1.toLowerCase().includes(v2.toLowerCase())));
|
|
55
|
+
break;
|
|
56
|
+
case 'not-contains':
|
|
57
|
+
result = !((v1 && v2) && (v1.toLowerCase().includes(v2.toLowerCase())));
|
|
58
|
+
break;
|
|
59
|
+
case 'start-with':
|
|
60
|
+
result = ((v1 && v2) && (v1.toLowerCase().startsWith(v2.toLowerCase())));
|
|
61
|
+
break;
|
|
62
|
+
case 'end-with':
|
|
63
|
+
result = ((v1 && v2) && (v1.toLowerCase().endsWith(v2.toLowerCase())));
|
|
64
|
+
break;
|
|
65
|
+
case 'is-empty':
|
|
66
|
+
result = v1 == null || v1 === undefined;
|
|
67
|
+
break;
|
|
68
|
+
case 'is-not-empty':
|
|
69
|
+
result = !(v1 == null || v1 === undefined);
|
|
70
|
+
break;
|
|
71
|
+
default:
|
|
72
|
+
console.error('The condition is not defined');
|
|
73
|
+
result = false;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else if (f.dataType === 'date') {
|
|
77
|
+
}
|
|
78
|
+
else if (f.dataType === 'number') {
|
|
79
|
+
v1 = Number(v1);
|
|
80
|
+
switch (f.condition) {
|
|
81
|
+
case 'equal':
|
|
82
|
+
result = v1 === v2;
|
|
83
|
+
break;
|
|
84
|
+
case 'not-equal':
|
|
85
|
+
result = v1 !== v2;
|
|
86
|
+
break;
|
|
87
|
+
case 'contains':
|
|
88
|
+
result = v2 && v2 instanceof Array && v2.includes(v1);
|
|
89
|
+
break;
|
|
90
|
+
case 'less-than':
|
|
91
|
+
result = v1 < v2;
|
|
92
|
+
break;
|
|
93
|
+
case 'less-than-equal':
|
|
94
|
+
result = v1 <= v2;
|
|
95
|
+
break;
|
|
96
|
+
case 'greater-than':
|
|
97
|
+
result = v1 > v2;
|
|
98
|
+
break;
|
|
99
|
+
case 'greater-than-equal':
|
|
100
|
+
result = v1 >= v2;
|
|
101
|
+
break;
|
|
102
|
+
case 'is-empty':
|
|
103
|
+
result = v1 == null || v1 === undefined;
|
|
104
|
+
break;
|
|
105
|
+
case 'is-not-empty':
|
|
106
|
+
result = !(v1 == null || v1 === undefined);
|
|
107
|
+
break;
|
|
108
|
+
default:
|
|
109
|
+
console.error('The condition is not defined');
|
|
110
|
+
result = false;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
console.error('The datatype is not supported');
|
|
115
|
+
result = false;
|
|
116
|
+
}
|
|
117
|
+
if (result) {
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (!result) {
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return true;
|
|
129
|
+
};
|
|
130
|
+
return array.filter(lamda);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL3NyYy9saWIvdXRpbHMvYXJyYXkvYXJyYXktdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQsV0FBVztBQUNYLE1BQU0sT0FBTyxXQUFXO0lBR3BCLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBWTtRQUMxQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBR0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFZLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSTtRQUN0QyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQVcsRUFBRSxHQUFXO1FBQ2pDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFZLEVBQUUsT0FBYztRQUN0QyxJQUFJLE9BQU8sSUFBSSxJQUFJLElBQUksT0FBTyxDQUFDLE1BQU0sS0FB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QU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEZldGNoUHJvcCB9IGZyb20gJy4uL29iamVjdC9vYmplY3QtdXRpbCc7XHJcblxyXG4vLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgQVhBcnJheVV0aWwge1xyXG5cclxuXHJcbiAgICBzdGF0aWMgcGlja1JhbmRvbShhcnJheTogYW55W10pOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBhcnJheVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBhcnJheS5sZW5ndGgpXTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc3RhdGljIGluc2VydChhcnJheTogYW55W10sIGluZGV4LCAuLi5yZXN0KSB7XHJcbiAgICAgICAgYXJyYXkuc3BsaWNlLmFwcGx5KGFycmF5LCBbaW5kZXgsIDBdLmNvbmNhdChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChyZXN0LCAxKSkpO1xyXG4gICAgICAgIHJldHVybiBhcnJheTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgcmFuZ2UobWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogbnVtYmVyW10ge1xyXG4gICAgICAgIHJldHVybiBuZXcgQXJyYXkobWF4IC0gbWluKS5maWxsKDEpLm1hcCgoZCwgaSkgPT4gaSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGZpbHRlcihhcnJheTogYW55W10sIGZpbHRlcnM6IGFueVtdKTogYW55W10ge1xyXG4gICAgICAgIGlmIChmaWx0ZXJzID09IG51bGwgfHwgZmlsdGVycy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGFycmF5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBsYW1kYSA9IChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCByZXN1bHQgPSB0cnVlO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBmaWx0ZXJzKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVycy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZiA9IGZpbHRlcnNba2V5XTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZiAhPT0gJ0FORCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFscyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtdCA9IGYuZmllbGQubWF0Y2goL1xcW1xcOiguKj8pXFxdLyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtdCAmJiBtdC5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwMSA9IGYuZmllbGQucmVwbGFjZShtdFswXSwgJycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcDIgPSBtdFsxXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb3AgPSBBWEZldGNoUHJvcChpdGVtLCBwMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJvcCBpbnN0YW5jZW9mIEFycmF5ICYmIHByb3AubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFscy5wdXNoKC4uLnByb3AubWFwKG0gPT4gKEFYRmV0Y2hQcm9wKG0sIHAyKSkpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxzLnB1c2goQVhGZXRjaFByb3AoaXRlbSwgZi5maWVsZCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgaiBpbiB2YWxzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFscy5oYXNPd25Qcm9wZXJ0eShqKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2MSA9IHZhbHNbal07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdjIgPSBmLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmLmRhdGFUeXBlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MSA9IHYxLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZi5jb25kaXRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2VxdWFsJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAodjEgJiYgdjIpICYmIHYxLnRvTG93ZXJDYXNlKCkgPT09IHYyLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdub3QtZXF1YWwnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9ICEoKHYxICYmIHYyKSAmJiB2MS50b0xvd2VyQ2FzZSgpID09PSB2Mi50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NvbnRhaW5zJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAoKHYxICYmIHYyKSAmJiAodjEudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh2Mi50b0xvd2VyQ2FzZSgpKSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnbm90LWNvbnRhaW5zJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAhKCh2MSAmJiB2MikgJiYgKHYxLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModjIudG9Mb3dlckNhc2UoKSkpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N0YXJ0LXdpdGgnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9ICgodjEgJiYgdjIpICYmICh2MS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgodjIudG9Mb3dlckNhc2UoKSkpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2VuZC13aXRoJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAoKHYxICYmIHYyKSAmJiAodjEudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCh2Mi50b0xvd2VyQ2FzZSgpKSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnaXMtZW1wdHknOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHYxID09IG51bGwgfHwgdjEgPT09IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2lzLW5vdC1lbXB0eSc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gISh2MSA9PSBudWxsIHx8IHYxID09PSB1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdUaGUgY29uZGl0aW9uIGlzIG5vdCBkZWZpbmVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGYuZGF0YVR5cGUgPT09ICdkYXRlJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZi5kYXRhVHlwZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEgPSBOdW1iZXIodjEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGYuY29uZGl0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdlcXVhbCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdjEgPT09IHYyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnbm90LWVxdWFsJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB2MSAhPT0gdjI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdjb250YWlucyc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdjIgJiYgdjIgaW5zdGFuY2VvZiBBcnJheSAmJiB2Mi5pbmNsdWRlcyh2MSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdsZXNzLXRoYW4nOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHYxIDwgdjI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdsZXNzLXRoYW4tZXF1YWwnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHYxIDw9IHYyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnZ3JlYXRlci10aGFuJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB2MSA+IHYyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnZ3JlYXRlci10aGFuLWVxdWFsJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB2MSA+PSB2MjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2lzLWVtcHR5JzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB2MSA9PSBudWxsIHx8IHYxID09PSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdpcy1ub3QtZW1wdHknOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9ICEodjEgPT0gbnVsbCB8fCB2MSA9PT0gdW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignVGhlIGNvbmRpdGlvbiBpcyBub3QgZGVmaW5lZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignVGhlIGRhdGF0eXBlIGlzIG5vdCBzdXBwb3J0ZWQnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gYXJyYXkuZmlsdGVyKGxhbWRhKTtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG4iXX0=
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { AXMathUtil } from '../math/math-util';
|
|
2
|
+
export class AXPoint {
|
|
3
|
+
constructor(x, y) {
|
|
4
|
+
this.x = x;
|
|
5
|
+
this.y = y;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export class AXClientRec {
|
|
9
|
+
constructor(rec) {
|
|
10
|
+
this._left = rec.left;
|
|
11
|
+
this._top = rec.top;
|
|
12
|
+
this._width = rec.width;
|
|
13
|
+
this._height = rec.height;
|
|
14
|
+
this._right = this._left + this._width;
|
|
15
|
+
this._bottom = this._top + this._height;
|
|
16
|
+
}
|
|
17
|
+
get left() {
|
|
18
|
+
return this._left;
|
|
19
|
+
}
|
|
20
|
+
set left(v) {
|
|
21
|
+
this._left = v;
|
|
22
|
+
}
|
|
23
|
+
get top() {
|
|
24
|
+
return this._top;
|
|
25
|
+
}
|
|
26
|
+
set top(v) {
|
|
27
|
+
this._top = v;
|
|
28
|
+
}
|
|
29
|
+
get right() {
|
|
30
|
+
return this._right;
|
|
31
|
+
}
|
|
32
|
+
set right(v) {
|
|
33
|
+
this._right = v;
|
|
34
|
+
}
|
|
35
|
+
get bottom() {
|
|
36
|
+
return this._bottom;
|
|
37
|
+
}
|
|
38
|
+
set bottom(v) {
|
|
39
|
+
this._bottom = v;
|
|
40
|
+
}
|
|
41
|
+
get width() {
|
|
42
|
+
return this._width;
|
|
43
|
+
}
|
|
44
|
+
set width(v) {
|
|
45
|
+
this._width = v;
|
|
46
|
+
}
|
|
47
|
+
get height() {
|
|
48
|
+
return this._height;
|
|
49
|
+
}
|
|
50
|
+
set height(v) {
|
|
51
|
+
this._height = v;
|
|
52
|
+
}
|
|
53
|
+
intersect(rec) {
|
|
54
|
+
return (this.left < rec.left + rec.width &&
|
|
55
|
+
this.left + this.width > rec.left &&
|
|
56
|
+
this.top < rec.top + rec.height &&
|
|
57
|
+
this.top + this.height > rec.top);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// @dynamic
|
|
61
|
+
export class AXHtmlUtil {
|
|
62
|
+
static getBoundingRectPoint(el, placement) {
|
|
63
|
+
const rec = el.getBoundingClientRect();
|
|
64
|
+
const width = el.offsetWidth;
|
|
65
|
+
const height = el.offsetHeight;
|
|
66
|
+
switch (placement) {
|
|
67
|
+
case 'top-start':
|
|
68
|
+
return new AXPoint(rec.left, rec.top);
|
|
69
|
+
case 'top-middle':
|
|
70
|
+
return new AXPoint(rec.left + (width / 2), rec.top);
|
|
71
|
+
case 'top-end':
|
|
72
|
+
return new AXPoint(rec.left + (width), rec.top);
|
|
73
|
+
case 'center-end':
|
|
74
|
+
return new AXPoint(rec.left + (width), rec.top + (height / 2));
|
|
75
|
+
case 'bottom-end':
|
|
76
|
+
return new AXPoint(rec.left + (width), rec.top + (height));
|
|
77
|
+
case 'bottom-middle':
|
|
78
|
+
return new AXPoint(rec.left + (width / 2), rec.top + (height));
|
|
79
|
+
case 'bottom-start':
|
|
80
|
+
return new AXPoint(rec.left, rec.top + (height));
|
|
81
|
+
case 'center-start':
|
|
82
|
+
return new AXPoint(rec.left, rec.top + (height / 2));
|
|
83
|
+
default:
|
|
84
|
+
return new AXPoint(rec.left + (width / 2), rec.top + (height));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
static isInRecPoint(pos, rec) {
|
|
88
|
+
return pos.x >= rec.left && pos.x <= (rec.left + rec.width) && pos.y >= rec.top && (pos.y <= (rec.top + rec.height));
|
|
89
|
+
}
|
|
90
|
+
// static isOverLap(rec1: AXClientRecCtor, rec2: AXClientRecCtor): boolean {
|
|
91
|
+
// const r1: AXClientRec = new AXClientRec(rec1);
|
|
92
|
+
// const r2: AXClientRec = new AXClientRec(rec2);
|
|
93
|
+
// return ;
|
|
94
|
+
// }
|
|
95
|
+
static isInElementBound(pos, element) {
|
|
96
|
+
const elBound = element.getBoundingClientRect();
|
|
97
|
+
return AXHtmlUtil.isInRecPoint(pos, {
|
|
98
|
+
left: elBound.left,
|
|
99
|
+
width: elBound.width,
|
|
100
|
+
top: elBound.top,
|
|
101
|
+
height: elBound.height
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
static getDimensions() {
|
|
105
|
+
let winW = 630;
|
|
106
|
+
let winH = 460;
|
|
107
|
+
if (document.body && document.body.offsetWidth) {
|
|
108
|
+
winW = document.body.offsetWidth;
|
|
109
|
+
winH = document.body.offsetHeight;
|
|
110
|
+
}
|
|
111
|
+
if (document.compatMode === 'CSS1Compat' && document.documentElement && document.documentElement.offsetWidth) {
|
|
112
|
+
winW = document.documentElement.offsetWidth;
|
|
113
|
+
winH = document.documentElement.offsetHeight;
|
|
114
|
+
}
|
|
115
|
+
if (window.innerWidth && window.innerHeight) {
|
|
116
|
+
winW = window.innerWidth;
|
|
117
|
+
winH = window.innerHeight;
|
|
118
|
+
}
|
|
119
|
+
return { width: winW, height: winH };
|
|
120
|
+
}
|
|
121
|
+
static getOffsetRight(elem) {
|
|
122
|
+
let element = elem;
|
|
123
|
+
const width = element.offsetWidth;
|
|
124
|
+
let right = 0;
|
|
125
|
+
while (element.offsetParent) {
|
|
126
|
+
right += element.offsetLeft;
|
|
127
|
+
element = element.offsetParent;
|
|
128
|
+
}
|
|
129
|
+
right += element.offsetLeft;
|
|
130
|
+
right = AXHtmlUtil.getDimensions().width - right;
|
|
131
|
+
right -= width;
|
|
132
|
+
return right;
|
|
133
|
+
}
|
|
134
|
+
static getUID() {
|
|
135
|
+
return 'el-' + AXMathUtil.randomRange(1000000000, 9999999999).toString();
|
|
136
|
+
}
|
|
137
|
+
static getRelatedPosition(source, placement, target, alignment) {
|
|
138
|
+
const result = { x: 0, y: 0 };
|
|
139
|
+
const sourcePos = AXHtmlUtil.getBoundingRectPoint(source, placement);
|
|
140
|
+
let top = 0;
|
|
141
|
+
let left = 0;
|
|
142
|
+
switch (alignment) {
|
|
143
|
+
case 'top-start':
|
|
144
|
+
top = sourcePos.y;
|
|
145
|
+
left = sourcePos.x;
|
|
146
|
+
break;
|
|
147
|
+
case 'top-middle':
|
|
148
|
+
top = sourcePos.y;
|
|
149
|
+
left = sourcePos.x - target.offsetWidth / 2;
|
|
150
|
+
break;
|
|
151
|
+
case 'top-end':
|
|
152
|
+
top = sourcePos.y;
|
|
153
|
+
left = sourcePos.x - target.offsetWidth;
|
|
154
|
+
break;
|
|
155
|
+
case 'center-end':
|
|
156
|
+
top = sourcePos.y - target.offsetHeight / 2;
|
|
157
|
+
left = sourcePos.x - target.offsetWidth;
|
|
158
|
+
break;
|
|
159
|
+
case 'bottom-end':
|
|
160
|
+
top = sourcePos.y - target.offsetHeight;
|
|
161
|
+
left = sourcePos.x - target.offsetWidth;
|
|
162
|
+
break;
|
|
163
|
+
case 'bottom-middle':
|
|
164
|
+
top = sourcePos.y - target.offsetHeight;
|
|
165
|
+
left = sourcePos.x - target.offsetWidth / 2;
|
|
166
|
+
break;
|
|
167
|
+
case 'bottom-start':
|
|
168
|
+
top = sourcePos.y - target.offsetHeight;
|
|
169
|
+
left = sourcePos.x;
|
|
170
|
+
break;
|
|
171
|
+
case 'center-start':
|
|
172
|
+
top = sourcePos.y - target.offsetHeight / 2;
|
|
173
|
+
left = sourcePos.x;
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
176
|
+
result.y = top;
|
|
177
|
+
result.x = left;
|
|
178
|
+
return result;
|
|
179
|
+
}
|
|
180
|
+
static collision(a, b) {
|
|
181
|
+
const ac = a.getBoundingClientRect();
|
|
182
|
+
const bc = b.getBoundingClientRect();
|
|
183
|
+
if (ac.left < bc.left + bc.width && ac.left + ac.width > bc.left &&
|
|
184
|
+
ac.top < bc.top + bc.height && ac.top + ac.height > bc.top) {
|
|
185
|
+
return true;
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvc3JjL2xpYi91dGlscy9odG1sL2h0bWwtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUEyQi9DLE1BQU0sT0FBTyxPQUFPO0lBQ2xCLFlBQW1CLENBQVMsRUFBUyxDQUFTO1FBQTNCLE1BQUMsR0FBRCxDQUFDLENBQVE7UUFBUyxNQUFDLEdBQUQsQ0FBQyxDQUFRO0lBQzlDLENBQUM7Q0FDRjtBQVVELE1BQU0sT0FBTyxXQUFXO0lBMER0QixZQUFZLEdBQW9CO1FBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUMxQyxDQUFDO0lBN0RELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBVyxJQUFJLENBQUMsQ0FBUztRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBSUQsSUFBVyxHQUFHO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFDRCxJQUFXLEdBQUcsQ0FBQyxDQUFTO1FBQ3RC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RSxDQUFjO1FBQzdDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRXJDLElBQUksRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxJQUFJO1lBQzlELEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQzVELE9BQU8sSUFBSSxDQUFDO1NBQ2I7YUFDSTtZQUNILE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWE1hdGhVdGlsIH0gZnJvbSAnLi4vbWF0aC9tYXRoLXV0aWwnO1xyXG5cclxuZXhwb3J0IHR5cGUgQVhQbGFjZW1lbnQgPVxyXG4gIHwgJ3RvcC1zdGFydCdcclxuICB8ICd0b3AtbWlkZGxlJ1xyXG4gIHwgJ3RvcC1lbmQnXHJcbiAgfCAnY2VudGVyLXN0YXJ0J1xyXG4gIHwgJ2NlbnRlci1lbmQnXHJcbiAgfCAnYm90dG9tLXN0YXJ0J1xyXG4gIHwgJ2JvdHRvbS1taWRkbGUnXHJcbiAgfCAnYm90dG9tLWVuZCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYSVBvaW50IHtcclxuICB4OiBudW1iZXI7XHJcbiAgeTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYQ29ubmVjdGVkUG9zaXRpb24ge1xyXG4gIG9yaWdpblg6ICdzdGFydCcgfCAnY2VudGVyJyB8ICdlbmQnO1xyXG4gIG9yaWdpblk6ICd0b3AnIHwgJ2NlbnRlcicgfCAnYm90dG9tJztcclxuICBvdmVybGF5WDogJ3N0YXJ0JyB8ICdjZW50ZXInIHwgJ2VuZCc7XHJcbiAgb3ZlcmxheVk6ICd0b3AnIHwgJ2NlbnRlcicgfCAnYm90dG9tJztcclxuICB3ZWlnaHQ/OiBudW1iZXI7XHJcbiAgb2Zmc2V0WD86IG51bWJlcjtcclxuICBvZmZzZXRZPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhQb2ludCBpbXBsZW1lbnRzIEFYSVBvaW50IHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgeDogbnVtYmVyLCBwdWJsaWMgeTogbnVtYmVyKSB7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYQ2xpZW50UmVjQ3RvciB7XHJcbiAgbGVmdD86IG51bWJlcjtcclxuICB0b3A/OiBudW1iZXI7XHJcbiAgd2lkdGg/OiBudW1iZXI7XHJcbiAgaGVpZ2h0PzogbnVtYmVyO1xyXG4gIGJvdHRvbT86IG51bWJlcjtcclxuICByaWdodD86IG51bWJlcjtcclxufVxyXG5leHBvcnQgY2xhc3MgQVhDbGllbnRSZWMgaW1wbGVtZW50cyBBWENsaWVudFJlY0N0b3Ige1xyXG5cclxuXHJcbiAgcHJpdmF0ZSBfbGVmdDogbnVtYmVyO1xyXG4gIHB1YmxpYyBnZXQgbGVmdCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xlZnQ7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgbGVmdCh2OiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2xlZnQgPSB2O1xyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgX3RvcDogbnVtYmVyO1xyXG4gIHB1YmxpYyBnZXQgdG9wKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fdG9wO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHRvcCh2OiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3RvcCA9IHY7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBfcmlnaHQ6IG51bWJlcjtcclxuICBwdWJsaWMgZ2V0IHJpZ2h0KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmlnaHQ7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgcmlnaHQodjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9yaWdodCA9IHY7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBfYm90dG9tOiBudW1iZXI7XHJcbiAgcHVibGljIGdldCBib3R0b20oKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9ib3R0b207XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgYm90dG9tKHY6IG51bWJlcikge1xyXG4gICAgdGhpcy5fYm90dG9tID0gdjtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgcHJpdmF0ZSBfd2lkdGg6IG51bWJlcjtcclxuICBwdWJsaWMgZ2V0IHdpZHRoKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fd2lkdGg7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgd2lkdGgodjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl93aWR0aCA9IHY7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBfaGVpZ2h0OiBudW1iZXI7XHJcbiAgcHVibGljIGdldCBoZWlnaHQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9oZWlnaHQ7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgaGVpZ2h0KHY6IG51bWJlcikge1xyXG4gICAgdGhpcy5faGVpZ2h0ID0gdjtcclxuICB9XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihyZWM6IEFYQ2xpZW50UmVjQ3Rvcikge1xyXG4gICAgdGhpcy5fbGVmdCA9IHJlYy5sZWZ0O1xyXG4gICAgdGhpcy5fdG9wID0gcmVjLnRvcDtcclxuICAgIHRoaXMuX3dpZHRoID0gcmVjLndpZHRoO1xyXG4gICAgdGhpcy5faGVpZ2h0ID0gcmVjLmhlaWdodDtcclxuICAgIHRoaXMuX3JpZ2h0ID0gdGhpcy5fbGVmdCArIHRoaXMuX3dpZHRoO1xyXG4gICAgdGhpcy5fYm90dG9tID0gdGhpcy5fdG9wICsgdGhpcy5faGVpZ2h0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGludGVyc2VjdChyZWM6IEFYQ2xpZW50UmVjQ3Rvcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICh0aGlzLmxlZnQgPCByZWMubGVmdCArIHJlYy53aWR0aCAmJlxyXG4gICAgICB0aGlzLmxlZnQgKyB0aGlzLndpZHRoID4gcmVjLmxlZnQgJiZcclxuICAgICAgdGhpcy50b3AgPCByZWMudG9wICsgcmVjLmhlaWdodCAmJlxyXG4gICAgICB0aGlzLnRvcCArIHRoaXMuaGVpZ2h0ID4gcmVjLnRvcCk7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuLy8gQGR5bmFtaWNcclxuZXhwb3J0IGNsYXNzIEFYSHRtbFV0aWwge1xyXG4gIHN0YXRpYyBnZXRCb3VuZGluZ1JlY3RQb2ludChlbDogSFRNTEVsZW1lbnQsIHBsYWNlbWVudDogQVhQbGFjZW1lbnQpOiBBWFBvaW50IHtcclxuICAgIGNvbnN0IHJlYyA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBlbC5vZmZzZXRXaWR0aDtcclxuICAgIGNvbnN0IGhlaWdodCA9IGVsLm9mZnNldEhlaWdodDtcclxuICAgIHN3aXRjaCAocGxhY2VtZW50KSB7XHJcbiAgICAgIGNhc2UgJ3RvcC1zdGFydCc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBBWFBvaW50KHJlYy5sZWZ0LCByZWMudG9wKTtcclxuICAgICAgY2FzZSAndG9wLW1pZGRsZSc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBBWFBvaW50KHJlYy5sZWZ0ICsgKHdpZHRoIC8gMiksIHJlYy50b3ApO1xyXG4gICAgICBjYXNlICd0b3AtZW5kJzpcclxuICAgICAgICByZXR1cm4gbmV3IEFYUG9pbnQocmVjLmxlZnQgKyAod2lkdGgpLCByZWMudG9wKTtcclxuICAgICAgY2FzZSAnY2VudGVyLWVuZCc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBBWFBvaW50KHJlYy5sZWZ0ICsgKHdpZHRoKSwgcmVjLnRvcCArIChoZWlnaHQgLyAyKSk7XHJcbiAgICAgIGNhc2UgJ2JvdHRvbS1lbmQnOlxyXG4gICAgICAgIHJldHVybiBuZXcgQVhQb2ludChyZWMubGVmdCArICh3aWR0aCksIHJlYy50b3AgKyAoaGVpZ2h0KSk7XHJcbiAgICAgIGNhc2UgJ2JvdHRvbS1taWRkbGUnOlxyXG4gICAgICAgIHJldHVybiBuZXcgQVhQb2ludChyZWMubGVmdCArICh3aWR0aCAvIDIpLCByZWMudG9wICsgKGhlaWdodCkpO1xyXG4gICAgICBjYXNlICdib3R0b20tc3RhcnQnOlxyXG4gICAgICAgIHJldHVybiBuZXcgQVhQb2ludChyZWMubGVmdCwgcmVjLnRvcCArIChoZWlnaHQpKTtcclxuICAgICAgY2FzZSAnY2VudGVyLXN0YXJ0JzpcclxuICAgICAgICByZXR1cm4gbmV3IEFYUG9pbnQocmVjLmxlZnQsIHJlYy50b3AgKyAoaGVpZ2h0IC8gMikpO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBuZXcgQVhQb2ludChyZWMubGVmdCArICh3aWR0aCAvIDIpLCByZWMudG9wICsgKGhlaWdodCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGlzSW5SZWNQb2ludChwb3M6IEFYSVBvaW50LCByZWM6IEFYQ2xpZW50UmVjQ3Rvcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHBvcy54ID49IHJlYy5sZWZ0ICYmIHBvcy54IDw9IChyZWMubGVmdCArIHJlYy53aWR0aCkgJiYgcG9zLnkgPj0gcmVjLnRvcCAmJiAocG9zLnkgPD0gKHJlYy50b3AgKyByZWMuaGVpZ2h0KSk7XHJcbiAgfVxyXG5cclxuICAvLyBzdGF0aWMgaXNPdmVyTGFwKHJlYzE6IEFYQ2xpZW50UmVjQ3RvciwgcmVjMjogQVhDbGllbnRSZWNDdG9yKTogYm9vbGVhbiB7XHJcbiAgLy8gICBjb25zdCByMTogQVhDbGllbnRSZWMgPSBuZXcgQVhDbGllbnRSZWMocmVjMSk7XHJcbiAgLy8gICBjb25zdCByMjogQVhDbGllbnRSZWMgPSBuZXcgQVhDbGllbnRSZWMocmVjMik7XHJcblxyXG4gIC8vICAgcmV0dXJuIDtcclxuICAvLyB9XHJcblxyXG4gIHN0YXRpYyBpc0luRWxlbWVudEJvdW5kKHBvczogQVhJUG9pbnQsIGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBlbEJvdW5kID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIHJldHVybiBBWEh0bWxVdGlsLmlzSW5SZWNQb2ludChwb3MsIHtcclxuICAgICAgbGVmdDogZWxCb3VuZC5sZWZ0LFxyXG4gICAgICB3aWR0aDogZWxCb3VuZC53aWR0aCxcclxuICAgICAgdG9wOiBlbEJvdW5kLnRvcCxcclxuICAgICAgaGVpZ2h0OiBlbEJvdW5kLmhlaWdodFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0RGltZW5zaW9ucygpOiB7IHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyIH0ge1xyXG4gICAgbGV0IHdpblcgPSA2MzA7XHJcbiAgICBsZXQgd2luSCA9IDQ2MDtcclxuICAgIGlmIChkb2N1bWVudC5ib2R5ICYmIGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGgpIHtcclxuICAgICAgd2luVyA9IGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGg7XHJcbiAgICAgIHdpbkggPSBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDtcclxuICAgIH1cclxuICAgIGlmIChkb2N1bWVudC5jb21wYXRNb2RlID09PSAnQ1NTMUNvbXBhdCcgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRXaWR0aCkge1xyXG4gICAgICB3aW5XID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgICB3aW5IID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgIH1cclxuICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCAmJiB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcclxuICAgICAgd2luVyA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgICB3aW5IID0gd2luZG93LmlubmVySGVpZ2h0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHsgd2lkdGg6IHdpblcsIGhlaWdodDogd2luSCB9O1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldE9mZnNldFJpZ2h0KGVsZW06IEhUTUxFbGVtZW50KTogbnVtYmVyIHtcclxuICAgIGxldCBlbGVtZW50ID0gZWxlbTtcclxuICAgIGNvbnN0IHdpZHRoID0gZWxlbWVudC5vZmZzZXRXaWR0aDtcclxuICAgIGxldCByaWdodCA9IDA7XHJcbiAgICB3aGlsZSAoZWxlbWVudC5vZmZzZXRQYXJlbnQpIHtcclxuICAgICAgcmlnaHQgKz0gZWxlbWVudC5vZmZzZXRMZWZ0O1xyXG4gICAgICBlbGVtZW50ID0gZWxlbWVudC5vZmZzZXRQYXJlbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICB9XHJcbiAgICByaWdodCArPSBlbGVtZW50Lm9mZnNldExlZnQ7XHJcbiAgICByaWdodCA9IEFYSHRtbFV0aWwuZ2V0RGltZW5zaW9ucygpLndpZHRoIC0gcmlnaHQ7XHJcbiAgICByaWdodCAtPSB3aWR0aDtcclxuICAgIHJldHVybiByaWdodDtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRVSUQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnZWwtJyArIEFYTWF0aFV0aWwucmFuZG9tUmFuZ2UoMTAwMDAwMDAwMCwgOTk5OTk5OTk5OSkudG9TdHJpbmcoKTtcclxuICB9XHJcblxyXG5cclxuICBzdGF0aWMgZ2V0UmVsYXRlZFBvc2l0aW9uKHNvdXJjZTogSFRNTEVsZW1lbnQsIHBsYWNlbWVudDogQVhQbGFjZW1lbnQsIHRhcmdldDogSFRNTEVsZW1lbnQsIGFsaWdubWVudDogQVhQbGFjZW1lbnQpOiBBWElQb2ludCB7XHJcbiAgICBjb25zdCByZXN1bHQ6IEFYSVBvaW50ID0geyB4OiAwLCB5OiAwIH07XHJcblxyXG4gICAgY29uc3Qgc291cmNlUG9zOiBBWFBvaW50ID0gQVhIdG1sVXRpbC5nZXRCb3VuZGluZ1JlY3RQb2ludChzb3VyY2UsIHBsYWNlbWVudCk7XHJcblxyXG5cclxuICAgIGxldCB0b3A6IG51bWJlciA9IDA7XHJcbiAgICBsZXQgbGVmdDogbnVtYmVyID0gMDtcclxuICAgIHN3aXRjaCAoYWxpZ25tZW50KSB7XHJcbiAgICAgIGNhc2UgJ3RvcC1zdGFydCc6XHJcbiAgICAgICAgdG9wID0gc291cmNlUG9zLnk7XHJcbiAgICAgICAgbGVmdCA9IHNvdXJjZVBvcy54O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0b3AtbWlkZGxlJzpcclxuICAgICAgICB0b3AgPSBzb3VyY2VQb3MueTtcclxuICAgICAgICBsZWZ0ID0gc291cmNlUG9zLnggLSB0YXJnZXQub2Zmc2V0V2lkdGggLyAyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0b3AtZW5kJzpcclxuICAgICAgICB0b3AgPSBzb3VyY2VQb3MueTtcclxuICAgICAgICBsZWZ0ID0gc291cmNlUG9zLnggLSB0YXJnZXQub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2NlbnRlci1lbmQnOlxyXG4gICAgICAgIHRvcCA9IHNvdXJjZVBvcy55IC0gdGFyZ2V0Lm9mZnNldEhlaWdodCAvIDI7XHJcbiAgICAgICAgbGVmdCA9IHNvdXJjZVBvcy54IC0gdGFyZ2V0Lm9mZnNldFdpZHRoO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20tZW5kJzpcclxuICAgICAgICB0b3AgPSBzb3VyY2VQb3MueSAtIHRhcmdldC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgICAgbGVmdCA9IHNvdXJjZVBvcy54IC0gdGFyZ2V0Lm9mZnNldFdpZHRoO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20tbWlkZGxlJzpcclxuICAgICAgICB0b3AgPSBzb3VyY2VQb3MueSAtIHRhcmdldC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgICAgbGVmdCA9IHNvdXJjZVBvcy54IC0gdGFyZ2V0Lm9mZnNldFdpZHRoIC8gMjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnYm90dG9tLXN0YXJ0JzpcclxuICAgICAgICB0b3AgPSBzb3VyY2VQb3MueSAtIHRhcmdldC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgICAgbGVmdCA9IHNvdXJjZVBvcy54O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdjZW50ZXItc3RhcnQnOlxyXG4gICAgICAgIHRvcCA9IHNvdXJjZVBvcy55IC0gdGFyZ2V0Lm9mZnNldEhlaWdodCAvIDI7XHJcbiAgICAgICAgbGVmdCA9IHNvdXJjZVBvcy54O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmVzdWx0LnkgPSB0b3A7XHJcbiAgICByZXN1bHQueCA9IGxlZnQ7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcblxyXG4gIHN0YXRpYyBjb2xsaXNpb24oYTogSFRNTEVsZW1lbnQsIGI6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBhYyA9IGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCBiYyA9IGIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblxyXG4gICAgaWYgKGFjLmxlZnQgPCBiYy5sZWZ0ICsgYmMud2lkdGggJiYgYWMubGVmdCArIGFjLndpZHRoID4gYmMubGVmdCAmJlxyXG4gICAgICBhYy50b3AgPCBiYy50b3AgKyBiYy5oZWlnaHQgJiYgYWMudG9wICsgYWMuaGVpZ2h0ID4gYmMudG9wKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { AXHtmlToTextPipe } from '../../pipe/htmlToText.pipe';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class AXHtmlModule {
|
|
6
|
+
}
|
|
7
|
+
AXHtmlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXHtmlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
+
AXHtmlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXHtmlModule, declarations: [AXHtmlToTextPipe], imports: [CommonModule], exports: [AXHtmlToTextPipe] });
|
|
9
|
+
AXHtmlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXHtmlModule, providers: [], imports: [[CommonModule]] });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXHtmlModule, decorators: [{
|
|
11
|
+
type: NgModule,
|
|
12
|
+
args: [{
|
|
13
|
+
declarations: [AXHtmlToTextPipe],
|
|
14
|
+
imports: [CommonModule],
|
|
15
|
+
exports: [AXHtmlToTextPipe],
|
|
16
|
+
providers: []
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvbGliL3V0aWxzL2h0bWwvaHRtbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBUTlELE1BQU0sT0FBTyxZQUFZOzswR0FBWixZQUFZOzJHQUFaLFlBQVksaUJBTFIsZ0JBQWdCLGFBQ3JCLFlBQVksYUFDWixnQkFBZ0I7MkdBR2YsWUFBWSxhQUZaLEVBQUUsWUFGSixDQUFDLFlBQVksQ0FBQzs0RkFJWixZQUFZO2tCQU54QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUNoQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUMzQixTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFYSHRtbFRvVGV4dFBpcGUgfSBmcm9tICcuLi8uLi9waXBlL2h0bWxUb1RleHQucGlwZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0FYSHRtbFRvVGV4dFBpcGVdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtBWEh0bWxUb1RleHRQaXBlXSxcclxuICBwcm92aWRlcnM6IFtdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWEh0bWxNb2R1bGUgeyB9XHJcbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export class AXMathUtil {
|
|
2
|
+
static randomRange(min, max) {
|
|
3
|
+
return Math.floor(Math.random() * (max - min + 1) + min);
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvc3JjL2xpYi91dGlscy9tYXRoL21hdGgtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sVUFBVTtJQUNuQixNQUFNLENBQUMsV0FBVyxDQUFDLEdBQVcsRUFBRSxHQUFXO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQzdELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBBWE1hdGhVdGlsIHtcclxuICAgIHN0YXRpYyByYW5kb21SYW5nZShtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluICsgMSkgKyBtaW4pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|